PartMC 2.1.0
|
The aero_binned_t structure and associated subroutines. More...
Data Types | |
type | aero_binned_t |
Aerosol number and volume distributions stored per bin. More... | |
Functions/Subroutines | |
subroutine | aero_binned_allocate (aero_binned) |
Allocate an aero_binned_t. | |
subroutine | aero_binned_allocate_size (aero_binned, n_bin, n_spec) |
Allocate an aero_binned_t of the given size. | |
subroutine | aero_binned_deallocate (aero_binned) |
Free internal memory in an aero_binned_t structure. | |
subroutine | aero_binned_zero (aero_binned) |
Set all internal data in an aero_binned_t structure to zero. | |
subroutine | aero_binned_add_particle_in_bin (aero_binned, bin_grid, bin, comp_vol, aero_particle) |
Update aero_binned_t structure for the addition of the given particle whose bin is also given. | |
subroutine | aero_binned_add_particle (aero_binned, bin_grid, comp_vol, aero_particle) |
Update aero_binned_t structure for the addition of the given particle. | |
subroutine | aero_binned_remove_particle_in_bin (aero_binned, bin_grid, bin, comp_vol, aero_particle) |
Update aero_binned_t structure for the removal of the given particle whose bin is also given. | |
subroutine | aero_binned_remove_particle (aero_binned, bin_grid, comp_vol, aero_particle) |
Update the aero_binned_t structure for the removal of the given particle. | |
subroutine | aero_binned_add (aero_binned, aero_binned_delta) |
Add two aero_binned_t structures together. | |
subroutine | aero_binned_sub (aero_binned, aero_binned_delta) |
Subtract one aero_binned_t structure from another. | |
subroutine | aero_binned_scale (aero_binned, alpha) |
Scale an aero_binned_t by a real number. | |
subroutine | aero_binned_copy (aero_binned_from, aero_binned_to) |
Copy one aero_binned_t structure to another. | |
subroutine | aero_binned_add_aero_dist (aero_binned, bin_grid, aero_data, aero_dist) |
Add an aero_dist_t to an aero_binned_t. | |
integer | pmc_mpi_pack_size_aero_binned (val) |
Determine the number of bytes required to pack the structure. | |
subroutine | pmc_mpi_pack_aero_binned (buffer, position, val) |
Pack the structure into the buffer and advance position. | |
subroutine | pmc_mpi_unpack_aero_binned (buffer, position, val) |
Unpack the structure from the buffer and advance position. | |
subroutine | pmc_mpi_reduce_avg_aero_binned (val, val_avg) |
Computes the average of the structure across all processes, storing the result on the root process. | |
subroutine | aero_binned_output_netcdf (aero_binned, ncid, bin_grid, aero_data) |
Write full state. | |
subroutine | aero_binned_input_netcdf (aero_binned, ncid, bin_grid, aero_data) |
Read full state. |
The aero_binned_t structure and associated subroutines.
subroutine pmc_aero_binned::aero_binned_add | ( | type(aero_binned_t),intent(inout) | aero_binned, |
type(aero_binned_t),intent(in) | aero_binned_delta | ||
) |
Add two aero_binned_t structures together.
Symbolically does aero_binned = aero_binned + aero_binned_delta.
aero_binned | Base aero_binned_t structure that will be added to. |
aero_binned_delta | Structure to add to aero_binned. |
subroutine pmc_aero_binned::aero_binned_add_aero_dist | ( | type(aero_binned_t),intent(inout) | aero_binned, |
type(bin_grid_t),intent(in) | bin_grid, | ||
type(aero_data_t),intent(in) | aero_data, | ||
type(aero_dist_t),intent(in) | aero_dist | ||
) |
Add an aero_dist_t to an aero_binned_t.
Symbolically does aero_binned = aero_binned + aero_dist.
aero_binned | Base aero_binned_t structure to add to. |
bin_grid | Bin grid. |
aero_data | Aerosol data. |
aero_dist | The aero_dist_t structure to add. |
subroutine pmc_aero_binned::aero_binned_add_particle | ( | type(aero_binned_t),intent(inout) | aero_binned, |
type(bin_grid_t),intent(in) | bin_grid, | ||
real(kind=dp),intent(in) | comp_vol, | ||
type(aero_particle_t),intent(in) | aero_particle | ||
) |
Update aero_binned_t structure for the addition of the given particle.
If the correct bin for the particle is already known then it is cheaper to call aero_binned_add_particle_in_bin().
aero_binned | Structure to update with the new particle. |
bin_grid | Bin grid. |
comp_vol | Computational volume (m^3). |
aero_particle | Particle to add. |
subroutine pmc_aero_binned::aero_binned_add_particle_in_bin | ( | type(aero_binned_t),intent(inout) | aero_binned, |
type(bin_grid_t),intent(in) | bin_grid, | ||
integer,intent(in) | bin, | ||
real(kind=dp),intent(in) | comp_vol, | ||
type(aero_particle_t),intent(in) | aero_particle | ||
) |
Update aero_binned_t structure for the addition of the given particle whose bin is also given.
If the bin of the particle is not known the more expensive aero_binned_add_particle() can be used.
aero_binned | Structure to update with the new particle. |
bin_grid | Bin grid. |
bin | Bin number that new particle is in (must be correct). |
comp_vol | Computational volume (m^3). |
aero_particle | Particle to add. |
subroutine pmc_aero_binned::aero_binned_allocate | ( | type(aero_binned_t),intent(out) | aero_binned | ) |
Allocate an aero_binned_t.
aero_binned | Structure to be allocated. |
subroutine pmc_aero_binned::aero_binned_allocate_size | ( | type(aero_binned_t),intent(out) | aero_binned, |
integer,intent(in) | n_bin, | ||
integer,intent(in) | n_spec | ||
) |
Allocate an aero_binned_t of the given size.
aero_binned | Structure to be allocated. |
n_bin | Number of aerosol bins to allocate (typically bin_grid%n_bin ). |
n_spec | Number of aerosol species to allocate (typically aero_data%n_spec ). |
subroutine pmc_aero_binned::aero_binned_copy | ( | type(aero_binned_t),intent(in) | aero_binned_from, |
type(aero_binned_t),intent(inout) | aero_binned_to | ||
) |
Copy one aero_binned_t structure to another.
Symbolically does aero_binned_to = aero_binned_from.
aero_binned_from | Base aero_binned_t structure to copy from. |
aero_binned_to | Structure to copy to. |
subroutine pmc_aero_binned::aero_binned_deallocate | ( | type(aero_binned_t),intent(inout) | aero_binned | ) |
Free internal memory in an aero_binned_t structure.
aero_binned | Structure to free. |
subroutine pmc_aero_binned::aero_binned_input_netcdf | ( | type(aero_binned_t),intent(inout) | aero_binned, |
integer,intent(in) | ncid, | ||
type(bin_grid_t),intent(in) | bin_grid, | ||
type(aero_data_t),intent(in) | aero_data | ||
) |
Read full state.
aero_binned | Aero_binned to write. |
ncid | NetCDF file ID, in data mode. |
bin_grid | bin_grid structure. |
aero_data | aero_data structure. |
subroutine pmc_aero_binned::aero_binned_output_netcdf | ( | type(aero_binned_t),intent(in) | aero_binned, |
integer,intent(in) | ncid, | ||
type(bin_grid_t),intent(in) | bin_grid, | ||
type(aero_data_t),intent(in) | aero_data | ||
) |
Write full state.
aero_binned | Aero_binned to write. |
ncid | NetCDF file ID, in data mode. |
bin_grid | bin_grid structure. |
aero_data | aero_data structure. |
subroutine pmc_aero_binned::aero_binned_remove_particle | ( | type(aero_binned_t),intent(inout) | aero_binned, |
type(bin_grid_t),intent(in) | bin_grid, | ||
real(kind=dp),intent(in) | comp_vol, | ||
type(aero_particle_t),intent(in) | aero_particle | ||
) |
Update the aero_binned_t structure for the removal of the given particle.
If the correct bin for the particle is already known then it is cheaper to call aero_binned_remove_particle_in_bin().
aero_binned | Structure to remove the particle from. |
bin_grid | Bin grid. |
comp_vol | Computational volume (m^3). |
aero_particle | Particle to remove. |
subroutine pmc_aero_binned::aero_binned_remove_particle_in_bin | ( | type(aero_binned_t),intent(inout) | aero_binned, |
type(bin_grid_t),intent(in) | bin_grid, | ||
integer,intent(in) | bin, | ||
real(kind=dp),intent(in) | comp_vol, | ||
type(aero_particle_t),intent(in) | aero_particle | ||
) |
Update aero_binned_t structure for the removal of the given particle whose bin is also given.
If the bin of the particle is not known the more expensive aero_binned_remove_particle() can be used.
aero_binned | Structure to remove the particle from. |
bin_grid | Bin grid. |
bin | Bin number of the aero_particle. |
comp_vol | Computational volume (m^3). |
aero_particle | Particle to remove. |
subroutine pmc_aero_binned::aero_binned_scale | ( | type(aero_binned_t),intent(inout) | aero_binned, |
real(kind=dp),intent(in) | alpha | ||
) |
Scale an aero_binned_t by a real number.
Symbolically does aero_binned = aero_binned * alpha.
aero_binned | Base aero_binned to scale. |
alpha | Scale factor. |
subroutine pmc_aero_binned::aero_binned_sub | ( | type(aero_binned_t),intent(inout) | aero_binned, |
type(aero_binned_t),intent(in) | aero_binned_delta | ||
) |
Subtract one aero_binned_t structure from another.
Symbolically does aero_binned = aero_binned - aero_binned_delta.
aero_binned | Base aero_binned_t structure that will be subtracted from. |
aero_binned_delta | Structure to subtract from aero_binned. |
subroutine pmc_aero_binned::aero_binned_zero | ( | type(aero_binned_t),intent(inout) | aero_binned | ) |
Set all internal data in an aero_binned_t structure to zero.
aero_binned | Structure to zero. |
subroutine pmc_aero_binned::pmc_mpi_pack_aero_binned | ( | character,dimension(:),intent(inout) | buffer, |
integer,intent(inout) | position, | ||
type(aero_binned_t),intent(in) | val | ||
) |
Pack the structure into the buffer and advance position.
See pmc_mpi for usage details.
buffer | Memory buffer. |
position | Current buffer position. |
val | Structure to pack. |
integer pmc_aero_binned::pmc_mpi_pack_size_aero_binned | ( | type(aero_binned_t),intent(in) | val | ) |
Determine the number of bytes required to pack the structure.
See pmc_mpi for usage details.
val | Structure to pack. |
subroutine pmc_aero_binned::pmc_mpi_reduce_avg_aero_binned | ( | type(aero_binned_t),intent(in) | val, |
type(aero_binned_t),intent(inout) | val_avg | ||
) |
Computes the average of the structure across all processes, storing the result on the root process.
val | Per-process value to average. |
val_avg | Averaged result (only valid on root process). |
subroutine pmc_aero_binned::pmc_mpi_unpack_aero_binned | ( | character,dimension(:),intent(inout) | buffer, |
integer,intent(inout) | position, | ||
type(aero_binned_t),intent(inout) | val | ||
) |
Unpack the structure from the buffer and advance position.
See pmc_mpi for usage details.
buffer | Memory buffer. |
position | Current buffer position. |
val | Structure to unpack into (must not be allocated). |