The aero_binned_t structure and associated subroutines. More...
Classes | |
struct | aero_binned_t |
Aerosol number and volume distributions stored per bin. More... | |
Functions | |
subroutine | aero_binned_alloc (aero_binned, n_bin, n_spec) |
Allocate internal memory in an aero_binned_t structure. | |
subroutine | aero_binned_free (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 | inout_write_aero_binned (file, aero_binned) |
Write the aero_binned_t to a file. | |
subroutine | inout_read_aero_binned (file, aero_binned) |
Read an aero_binned_t from a file. | |
subroutine | aero_binned_average (aero_binned_vec, aero_binned_avg) |
Compute the average of an array of aero_binned_t structures. | |
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_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 processors, storing the result on the root processor. |
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(out) | aero_binned, | |
type(bin_grid_t),intent(in) | bin_grid, | |||
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_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*8,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*8,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_alloc | ( | type(aero_binned_t),intent(out) | aero_binned, | |
integer,intent(in) | n_bin, | |||
integer,intent(in) | n_spec | |||
) |
Allocate internal memory in an aero_binned_t structure.
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_average | ( | type(aero_binned_t),dimension(:),intent(in) | aero_binned_vec, | |
type(aero_binned_t),intent(out) | aero_binned_avg | |||
) |
Compute the average of an array of aero_binned_t structures.
aero_binned_vec | Array of structures to average. | |
aero_binned_avg | Average structure (should not be allocated on entry). |
subroutine pmc_aero_binned::aero_binned_copy | ( | type(aero_binned_t),intent(in) | aero_binned_from, | |
type(aero_binned_t),intent(out) | 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_free | ( | 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_remove_particle | ( | type(aero_binned_t),intent(inout) | aero_binned, | |
type(bin_grid_t),intent(in) | bin_grid, | |||
real*8,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*8,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*8,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::inout_read_aero_binned | ( | type(inout_file_t),intent(inout) | file, | |
type(aero_binned_t),intent(out) | aero_binned | |||
) |
Read an aero_binned_t from a file.
file | File to read from. | |
aero_binned | Structure to read (must not have internal memory allocated). |
subroutine pmc_aero_binned::inout_write_aero_binned | ( | type(inout_file_t),intent(inout) | file, | |
type(aero_binned_t),intent(in) | aero_binned | |||
) |
Write the aero_binned_t to a file.
file | File to write to. | |
aero_binned | Structure to write. |
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(out) | val_avg | |||
) |
Computes the average of the structure across all processors, storing the result on the root processor.
val | Per-processor Value to average. | |
val_avg | Averaged result (only valid on root processor). |
subroutine pmc_aero_binned::pmc_mpi_unpack_aero_binned | ( | character,dimension(:),intent(inout) | buffer, | |
integer,intent(inout) | position, | |||
type(aero_binned_t),intent(out) | 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). |