The pmc_aero_state module. More...
Classes | |
struct | pmc_aero_state::aero_state_t |
The current collection of aerosol particles. More... | |
Namespaces | |
namespace | pmc_aero_state |
The aero_state_t structure and assocated subroutines. | |
Functions | |
subroutine | pmc_aero_state::aero_state_alloc (n_bin, n_spec, aero_state) |
Initializes aerosol arrays to have zero particles in each bin. Do not call this more than once on a given aerosol, use aero_state_zero() instead to reset to zero. | |
subroutine | pmc_aero_state::aero_state_free (aero_state) |
Deallocates a previously allocated aerosol. | |
subroutine | pmc_aero_state::aero_state_copy (aero_state_from, aero_state_to) |
Copies aerosol to a destination that has already had aero_state_alloc() called on it. | |
integer | pmc_aero_state::aero_state_total_particles (aero_state) |
Returns the total number of particles in an aerosol distribution. | |
subroutine | pmc_aero_state::aero_state_zero (aero_state) |
Resets an aero_state to have zero particles per bin. This must already have had aero_state_alloc() called on it. This function can be called more than once on the same state. | |
subroutine | pmc_aero_state::aero_state_add_particle (aero_state, i_bin, aero_particle) |
Add the given particle. | |
subroutine | pmc_aero_state::aero_state_remove_particle (aero_state, i_bin, index) |
Remove the given particle. | |
subroutine | pmc_aero_state::aero_state_add (aero_state, aero_state_delta) |
aero_state += aero_state_delta | |
subroutine | pmc_aero_state::aero_state_add_disc_mode (bin_grid, aero_data, vol_frac, bin_n, aero_state) |
Makes particles from the given number distribution and appends them to the aero_statev array. | |
subroutine | pmc_aero_state::aero_dist_to_state (bin_grid, aero_data, aero_dist, n_part, aero_state) |
Convert a continuous distribution into particles. | |
subroutine | pmc_aero_state::aero_dist_sample (bin_grid, aero_data, aero_dist, sample_prop, aero_state) |
Generates a Poisson sample of an aero_dist, adding to aero_state. The sampled amount is sample_prop * aero_statecomp_vol. | |
subroutine | pmc_aero_state::aero_state_rand_particle (aero_state, i_bin, i_part) |
Choose a random particle from the aero_state. | |
subroutine | pmc_aero_state::aero_state_sample (aero_state_from, aero_state_to, sample_prop) |
Generates a Poisson sample by removing particles from aero_state_from and adding them to aero_state_to, which must be already allocated (and should have its comp_vol set). | |
subroutine | pmc_aero_state::aero_state_sample_rough (aero_state_from, aero_state_to, sample_prop) |
Generates a rough bin-wise sample by removing particles from aero_state_from and adding them to aero_state_to, which must be already allocated (and should have its comp_vol set). | |
subroutine | pmc_aero_state::aero_state_add_particles (aero_state, aero_state_delta) |
Adds aero_state_delta particles to aero_state. The number of particles added depends on the computational volume ratio, so either more or less particles might be added than are actually in aero_state_delta. | |
subroutine | pmc_aero_state::aero_state_to_binned (bin_grid, aero_data, aero_state, aero_binned) |
Create the bin number and mass arrays from aero_statev. | |
subroutine | pmc_aero_state::aero_state_double (aero_state) |
Doubles number of particles. | |
subroutine | pmc_aero_state::aero_state_halve (aero_state, aero_binned, bin_grid) |
Remove approximately half of the particles in each bin. | |
subroutine | pmc_aero_state::aero_state_resort (bin_grid, aero_state) |
Takes an aero_state_t where the particles might no longer be in the correct bins and resorts it so that every particle is in the correct bin. | |
subroutine | pmc_aero_state::aero_state_mix_to (aero_state, mix_rate, dest, aero_binned, aero_data, bin_grid) |
Send a sample to the given process, and receive exactly one sample from an unspecified source. | |
subroutine | pmc_aero_state::aero_state_mix (aero_state, mix_rate, aero_binned, aero_data, bin_grid) |
Mix the aero_states between all processes. Currently uses a simple periodic-1D diffusion. | |
subroutine | pmc_aero_state::aero_state_check (bin_grid, aero_binned, aero_data, aero_state) |
Check that all particles are in the correct bins and that the bin numbers and masses are correct. This is for debugging only. | |
subroutine | pmc_aero_state::inout_write_aero_state (file, aero_state) |
Write full state. | |
subroutine | pmc_aero_state::inout_read_aero_state (file, aero_state) |
Read full state. | |
integer | pmc_aero_state::pmc_mpi_pack_size_aero_state (val) |
Determines the number of bytes required to pack the given value. | |
subroutine | pmc_aero_state::pmc_mpi_pack_aero_state (buffer, position, val) |
Packs the given value into the buffer, advancing position. | |
subroutine | pmc_aero_state::pmc_mpi_unpack_aero_state (buffer, position, val) |
Unpacks the given value from the buffer, advancing position. |
The pmc_aero_state module.