|
PartMC
2.4.0
|
The aero_weight_array_t structure and associated subroutines. More...
Data Types | |
| type | aero_weight_array_t |
| An array of aerosol size distribution weighting functions. More... | |
Functions/Subroutines | |
| subroutine | aero_weight_array_set_sizes (aero_weight_array, n_group, n_class) |
| Sets the number of weight groups and classes. More... | |
| subroutine | aero_weight_array_set_flat (aero_weight_array, n_class) |
Allocates an aero_weight_array as flat weightings. More... | |
| subroutine | aero_weight_array_set_power (aero_weight_array, n_class, exponent) |
Allocates an aero_weight_array as power weightings. More... | |
| subroutine | aero_weight_array_set_nummass (aero_weight_array, n_class) |
Allocates an aero_weight_array as joint flat/power-3 weightings.. More... | |
| elemental subroutine | aero_weight_array_normalize (aero_weight_array) |
Normalizes the aero_weight_array to a non-zero value. More... | |
| integer function | aero_weight_array_n_group (aero_weight_array) |
| Return the number of weight groups. More... | |
| integer function | aero_weight_array_n_class (aero_weight_array) |
| Return the number of weight classes. More... | |
| subroutine | aero_weight_array_scale (aero_weight_array, factor) |
Scale the weights by the given factor, so new_weight = old_weight * factor. More... | |
| subroutine | aero_weight_array_combine (aero_weight_array, aero_weight_array_delta) |
Combine aero_weight_array_delta into aero_weight_array with a harmonic mean. More... | |
| subroutine | aero_weight_array_shift (aero_weight_array_from, aero_weight_array_to, sample_prop, overwrite_to) |
Adjust source and destination weights to reflect moving sample_prop proportion of particles from aero_weight_array_from to aero_weight_array_to. More... | |
| real(kind=dp) function | aero_weight_array_single_num_conc (aero_weight_array, aero_particle, aero_data) |
| Compute the number concentration for a particle (m^{-3}). More... | |
| real(kind=dp) function | aero_weight_array_num_conc_at_radius (aero_weight_array, i_class, radius) |
| Compute the total number concentration at a given radius (m^3). More... | |
| real(kind=dp) function | aero_weight_array_num_conc (aero_weight_array, aero_particle, aero_data) |
| Compute the number concentration for a particle (m^{-3}). More... | |
| logical function | aero_weight_array_check_flat (aero_weight_array) |
| Check whether a given aero_weight array is flat in total. More... | |
| subroutine | aero_weight_array_check_monotonicity (aero_weight_array, monotone_increasing, monotone_decreasing) |
| Determine whether all weight functions in an array are monotone increasing, monotone decreasing, or neither. More... | |
| subroutine | aero_weight_array_minmax_num_conc (aero_weight_array, i_class, radius_1, radius_2, num_conc_min, num_conc_max) |
| Compute the maximum and minimum number concentrations between the given radii. More... | |
| integer function | aero_weight_array_rand_group (aero_weight_array, i_class, radius) |
| Choose a random group at the given radius, with probability inversely proportional to group weight at that radius. More... | |
| subroutine | spec_file_read_aero_weight_array (file, aero_weight_array) |
| Read an aero_weight_array from a spec file. More... | |
| integer function | pmc_mpi_pack_size_aero_weight_array (val) |
| Determines the number of bytes required to pack the given value. More... | |
| subroutine | pmc_mpi_pack_aero_weight_array (buffer, position, val) |
| Packs the given value into the buffer, advancing position. More... | |
| subroutine | pmc_mpi_unpack_aero_weight_array (buffer, position, val) |
| Unpacks the given value from the buffer, advancing position. More... | |
| subroutine | aero_weight_netcdf_dim_aero_weight_group (aero_weight_array, ncid, dimid_aero_weight_group) |
Write the aero_weight_group dimension to the given NetCDF file if it is not already present and in any case return the associated dimid. More... | |
| subroutine | aero_weight_netcdf_dim_aero_weight_class (aero_weight_array, ncid, dimid_aero_weight_class) |
Write the aero_weight_class dimension to the given NetCDF file if it is not already present and in any case return the associated dimid. More... | |
| subroutine | aero_weight_array_input_netcdf (aero_weight_array, ncid) |
| Read full aero_weight_array. More... | |
The aero_weight_array_t structure and associated subroutines.
| logical function pmc_aero_weight_array::aero_weight_array_check_flat | ( | type(aero_weight_array_t), intent(in) | aero_weight_array | ) |
Check whether a given aero_weight array is flat in total.
| [in] | aero_weight_array | Aerosol weight array. |
Definition at line 277 of file aero_weight_array.F90.
| subroutine pmc_aero_weight_array::aero_weight_array_check_monotonicity | ( | type(aero_weight_array_t), intent(in) | aero_weight_array, |
| logical, intent(out) | monotone_increasing, | ||
| logical, intent(out) | monotone_decreasing | ||
| ) |
Determine whether all weight functions in an array are monotone increasing, monotone decreasing, or neither.
| [in] | aero_weight_array | Aerosol weight array. |
| [out] | monotone_increasing | Whether all weights are monotone increasing. |
| [out] | monotone_decreasing | Whether all weights are monotone decreasing. |
Definition at line 306 of file aero_weight_array.F90.
| subroutine pmc_aero_weight_array::aero_weight_array_combine | ( | type(aero_weight_array_t), intent(inout) | aero_weight_array, |
| type(aero_weight_array_t), intent(in) | aero_weight_array_delta | ||
| ) |
Combine aero_weight_array_delta into aero_weight_array with a harmonic mean.
| [in,out] | aero_weight_array | Aerosol weight array to combine into. |
| [in] | aero_weight_array_delta | Aerosol weight array to combine from. |
Definition at line 177 of file aero_weight_array.F90.
| subroutine pmc_aero_weight_array::aero_weight_array_input_netcdf | ( | type(aero_weight_array_t), intent(inout) | aero_weight_array, |
| integer, intent(in) | ncid | ||
| ) |
Read full aero_weight_array.
| [in,out] | aero_weight_array | Aero weight array to read. |
| [in] | ncid | NetCDF file ID, in data mode. |
Definition at line 671 of file aero_weight_array.F90.
| subroutine pmc_aero_weight_array::aero_weight_array_minmax_num_conc | ( | type(aero_weight_array_t), intent(in) | aero_weight_array, |
| integer, intent(in) | i_class, | ||
| real(kind=dp), intent(in) | radius_1, | ||
| real(kind=dp), intent(in) | radius_2, | ||
| real(kind=dp), intent(out) | num_conc_min, | ||
| real(kind=dp), intent(out) | num_conc_max | ||
| ) |
Compute the maximum and minimum number concentrations between the given radii.
| [in] | aero_weight_array | Aerosol weight array. |
| [in] | i_class | Weight class. |
| [in] | radius_1 | First radius. |
| [in] | radius_2 | Second radius. |
| [out] | num_conc_min | Minimum number concentration. |
| [out] | num_conc_max | Maximum number concentration. |
Definition at line 340 of file aero_weight_array.F90.
| integer function pmc_aero_weight_array::aero_weight_array_n_class | ( | type(aero_weight_array_t), intent(in) | aero_weight_array | ) |
Return the number of weight classes.
| [in] | aero_weight_array | Aerosol weight array. |
Definition at line 148 of file aero_weight_array.F90.
| integer function pmc_aero_weight_array::aero_weight_array_n_group | ( | type(aero_weight_array_t), intent(in) | aero_weight_array | ) |
Return the number of weight groups.
| [in] | aero_weight_array | Aerosol weight array. |
Definition at line 136 of file aero_weight_array.F90.
| elemental subroutine pmc_aero_weight_array::aero_weight_array_normalize | ( | type(aero_weight_array_t), intent(inout) | aero_weight_array | ) |
Normalizes the aero_weight_array to a non-zero value.
| [in,out] | aero_weight_array | Aerosol weight array. |
Definition at line 124 of file aero_weight_array.F90.
| real(kind=dp) function pmc_aero_weight_array::aero_weight_array_num_conc | ( | type(aero_weight_array_t), intent(in) | aero_weight_array, |
| type(aero_particle_t), intent(in) | aero_particle, | ||
| type(aero_data_t), intent(in) | aero_data | ||
| ) |
Compute the number concentration for a particle (m^{-3}).
| [in] | aero_weight_array | Aerosol weight array. |
| [in] | aero_particle | Aerosol particle to compute number concentration for. |
| [in] | aero_data | Aerosol data. |
Definition at line 259 of file aero_weight_array.F90.
| real(kind=dp) function pmc_aero_weight_array::aero_weight_array_num_conc_at_radius | ( | type(aero_weight_array_t), intent(in) | aero_weight_array, |
| integer, intent(in) | i_class, | ||
| real(kind=dp), intent(in) | radius | ||
| ) |
Compute the total number concentration at a given radius (m^3).
| [in] | aero_weight_array | Aerosol weight array. |
| [in] | i_class | Weight class number. |
| [in] | radius | Radius to compute number concentration at (m). |
Definition at line 234 of file aero_weight_array.F90.
| integer function pmc_aero_weight_array::aero_weight_array_rand_group | ( | type(aero_weight_array_t), intent(in) | aero_weight_array, |
| integer, intent(in) | i_class, | ||
| real(kind=dp), intent(in) | radius | ||
| ) |
Choose a random group at the given radius, with probability inversely proportional to group weight at that radius.
| [in] | aero_weight_array | Aerosol weight array. |
| [in] | i_class | Weight class to select from. |
| [in] | radius | Radius to sample group at (m). |
Definition at line 376 of file aero_weight_array.F90.
| subroutine pmc_aero_weight_array::aero_weight_array_scale | ( | type(aero_weight_array_t), intent(inout) | aero_weight_array, |
| real(kind=dp), intent(in) | factor | ||
| ) |
Scale the weights by the given factor, so new_weight = old_weight * factor.
| [in,out] | aero_weight_array | Aerosol weight array to scale. |
| [in] | factor | Factor to scale by. |
Definition at line 161 of file aero_weight_array.F90.
| subroutine pmc_aero_weight_array::aero_weight_array_set_flat | ( | type(aero_weight_array_t), intent(out) | aero_weight_array, |
| integer, intent(in) | n_class | ||
| ) |
Allocates an aero_weight_array as flat weightings.
| [out] | aero_weight_array | Aerosol weight array. |
| [in] | n_class | Number of weight classes. |
Definition at line 67 of file aero_weight_array.F90.
| subroutine pmc_aero_weight_array::aero_weight_array_set_nummass | ( | type(aero_weight_array_t), intent(out) | aero_weight_array, |
| integer, intent(in) | n_class | ||
| ) |
Allocates an aero_weight_array as joint flat/power-3 weightings..
| [out] | aero_weight_array | Aerosol weight array. |
| [in] | n_class | Number of weight classes. |
Definition at line 104 of file aero_weight_array.F90.
| subroutine pmc_aero_weight_array::aero_weight_array_set_power | ( | type(aero_weight_array_t), intent(out) | aero_weight_array, |
| integer, intent(in) | n_class, | ||
| real(kind=dp), intent(in) | exponent | ||
| ) |
Allocates an aero_weight_array as power weightings.
| [out] | aero_weight_array | Aerosol weight array. |
| [in] | n_class | Number of weight classes. |
| [in] | exponent | Exponent for power-law. |
Definition at line 85 of file aero_weight_array.F90.
| subroutine pmc_aero_weight_array::aero_weight_array_set_sizes | ( | type(aero_weight_array_t), intent(inout) | aero_weight_array, |
| integer, intent(in) | n_group, | ||
| integer, intent(in) | n_class | ||
| ) |
Sets the number of weight groups and classes.
| [in,out] | aero_weight_array | Aerosol weight array. |
| [in] | n_group | Number of weight groups. |
| [in] | n_class | Number of weight classes. |
Definition at line 48 of file aero_weight_array.F90.
| subroutine pmc_aero_weight_array::aero_weight_array_shift | ( | type(aero_weight_array_t), intent(inout) | aero_weight_array_from, |
| type(aero_weight_array_t), intent(inout) | aero_weight_array_to, | ||
| real(kind=dp), intent(in) | sample_prop, | ||
| logical, intent(in), optional | overwrite_to | ||
| ) |
Adjust source and destination weights to reflect moving sample_prop proportion of particles from aero_weight_array_from to aero_weight_array_to.
| [in,out] | aero_weight_array_from | Aerosol weight array to shift from. |
| [in,out] | aero_weight_array_to | Aerosol weight array to shift to. |
| [in] | sample_prop | Proportion of particles being transfered. |
| [in] | overwrite_to | Whether to overwrite the destination weight (default: no). |
Definition at line 195 of file aero_weight_array.F90.
| real(kind=dp) function pmc_aero_weight_array::aero_weight_array_single_num_conc | ( | type(aero_weight_array_t), intent(in) | aero_weight_array, |
| type(aero_particle_t), intent(in) | aero_particle, | ||
| type(aero_data_t), intent(in) | aero_data | ||
| ) |
Compute the number concentration for a particle (m^{-3}).
| [in] | aero_weight_array | Aerosol weight array. |
| [in] | aero_particle | Aerosol particle to compute number concentration for. |
| [in] | aero_data | Aerosol data. |
Definition at line 215 of file aero_weight_array.F90.
| subroutine pmc_aero_weight_array::aero_weight_netcdf_dim_aero_weight_class | ( | type(aero_weight_array_t), intent(in) | aero_weight_array, |
| integer, intent(in) | ncid, | ||
| integer, intent(out) | dimid_aero_weight_class | ||
| ) |
Write the aero_weight_class dimension to the given NetCDF file if it is not already present and in any case return the associated dimid.
| [in] | aero_weight_array | Aero_weight structure array. |
| [in] | ncid | NetCDF file ID, in data mode. |
| [out] | dimid_aero_weight_class | Dimid of the species dimension. |
Definition at line 572 of file aero_weight_array.F90.
| subroutine pmc_aero_weight_array::aero_weight_netcdf_dim_aero_weight_group | ( | type(aero_weight_array_t), intent(in) | aero_weight_array, |
| integer, intent(in) | ncid, | ||
| integer, intent(out) | dimid_aero_weight_group | ||
| ) |
Write the aero_weight_group dimension to the given NetCDF file if it is not already present and in any case return the associated dimid.
| [in] | aero_weight_array | Aero_weight structure array. |
| [in] | ncid | NetCDF file ID, in data mode. |
| [out] | dimid_aero_weight_group | Dimid of the species dimension. |
Definition at line 526 of file aero_weight_array.F90.
| subroutine pmc_aero_weight_array::pmc_mpi_pack_aero_weight_array | ( | character, dimension(:), intent(inout) | buffer, |
| integer, intent(inout) | position, | ||
| type(aero_weight_array_t), intent(in) | val | ||
| ) |
Packs the given value into the buffer, advancing position.
| [in,out] | buffer | Memory buffer. |
| [in,out] | position | Current buffer position. |
| [in] | val | Value to pack. |
Definition at line 449 of file aero_weight_array.F90.
| integer function pmc_aero_weight_array::pmc_mpi_pack_size_aero_weight_array | ( | type(aero_weight_array_t), intent(in) | val | ) |
Determines the number of bytes required to pack the given value.
| [in] | val | Value to pack. |
Definition at line 420 of file aero_weight_array.F90.
| subroutine pmc_aero_weight_array::pmc_mpi_unpack_aero_weight_array | ( | character, dimension(:), intent(inout) | buffer, |
| integer, intent(inout) | position, | ||
| type(aero_weight_array_t), intent(inout) | val | ||
| ) |
Unpacks the given value from the buffer, advancing position.
| [in,out] | buffer | Memory buffer. |
| [in,out] | position | Current buffer position. |
| [in,out] | val | Value to pack. |
Definition at line 484 of file aero_weight_array.F90.
| subroutine pmc_aero_weight_array::spec_file_read_aero_weight_array | ( | type(spec_file_t), intent(inout) | file, |
| type(aero_weight_array_t), intent(inout) | aero_weight_array | ||
| ) |
Read an aero_weight_array from a spec file.
| [in,out] | file | Spec file. |
| [in,out] | aero_weight_array | Aerosol weight array. |
Definition at line 399 of file aero_weight_array.F90.