The aero_mode_t structure and associated subroutines. More...
Data Types | |
type | aero_mode_t |
An aerosol size distribution mode. More... | |
Functions/Subroutines | |
character(len=AERO_MODE_TYPE_LEN) | aero_mode_type_to_string (type) |
Return a string representation of a kernel type. | |
subroutine | aero_mode_allocate (aero_mode) |
Allocates an aero_mode. | |
subroutine | aero_mode_allocate_size (aero_mode, n_spec) |
Allocates an aero_mode of the given size. | |
subroutine | aero_mode_deallocate (aero_mode) |
Free all storage. | |
subroutine | aero_mode_copy (aero_mode_from, aero_mode_to) |
Copy an aero_mode. | |
subroutine | num_conc_log_normal (geom_mean_radius, log10_sigma_g, bin_grid, num_conc) |
Compute a log-normal distribution, normalized so that sum(num_conc(k) * log_width) = 1. | |
subroutine | vol_conc_log_normal (geom_mean_radius, log10_sigma_g, bin_grid, vol_conc) |
Compute a log-normal distribution in volume. | |
subroutine | num_conc_exp (radius_at_mean_vol, bin_grid, num_conc) |
Exponential distribution in volume
| |
subroutine | vol_conc_exp (radius_at_mean_vol, bin_grid, vol_conc) |
Exponential distribution in volume. | |
subroutine | num_conc_mono (radius, bin_grid, num_conc) |
Mono-disperse distribution. Normalized so that sum(num_conc(k) * log_width) = 1. | |
subroutine | vol_conc_mono (radius, bin_grid, vol_conc) |
Mono-disperse distribution in volume. | |
subroutine | aero_mode_num_conc (aero_mode, bin_grid, aero_data, num_conc) |
Return the binned number concentration for an aero_mode. | |
subroutine | aero_mode_vol_conc (aero_mode, bin_grid, aero_data, vol_conc) |
Return the binned per-species volume concentration for an aero_mode. | |
real(kind=dp) | aero_mode_weighted_num_conc (aero_mode, aero_weight) |
Return the weighted number concentration for an aero_mode . | |
subroutine | aero_mode_sample_radius (aero_mode, aero_weight, radius) |
Return a radius randomly sampled from the mode distribution. | |
subroutine | spec_file_read_vol_frac (file, aero_data, vol_frac) |
Read volume fractions from a data file. | |
subroutine | spec_file_read_aero_mode (file, aero_data, aero_mode, eof) |
Read one mode of an aerosol distribution (number concentration, volume fractions, and mode shape). | |
integer | pmc_mpi_pack_size_aero_mode (val) |
Determines the number of bytes required to pack the given value. | |
subroutine | pmc_mpi_pack_aero_mode (buffer, position, val) |
Packs the given value into the buffer, advancing position. | |
subroutine | pmc_mpi_unpack_aero_mode (buffer, position, val) |
Unpacks the given value from the buffer, advancing position. | |
Variables | |
integer, parameter | AERO_MODE_NAME_LEN = 300 |
Maximum length of a mode name. | |
integer, parameter | AERO_MODE_TYPE_LEN = 20 |
Maximum length of a mode type. | |
integer, parameter | AERO_MODE_TYPE_INVALID = 0 |
Type code for an undefined or invalid mode. | |
integer, parameter | AERO_MODE_TYPE_LOG_NORMAL = 1 |
Type code for a log-normal mode. | |
integer, parameter | AERO_MODE_TYPE_EXP = 2 |
Type code for an exponential mode. | |
integer, parameter | AERO_MODE_TYPE_MONO = 3 |
Type code for a mono-disperse mode. |
The aero_mode_t structure and associated subroutines.
subroutine pmc_aero_mode::aero_mode_allocate | ( | type(aero_mode_t),intent(out) | aero_mode ) |
Allocates an aero_mode.
aero_mode | Aerosol mode. |
subroutine pmc_aero_mode::aero_mode_allocate_size | ( | type(aero_mode_t),intent(out) | aero_mode, |
integer,intent(in) | n_spec | ||
) |
Allocates an aero_mode of the given size.
aero_mode | Aerosol mode. |
n_spec | Number of species. |
subroutine pmc_aero_mode::aero_mode_copy | ( | type(aero_mode_t),intent(in) | aero_mode_from, |
type(aero_mode_t),intent(inout) | aero_mode_to | ||
) |
Copy an aero_mode.
aero_mode_from | Aerosol mode original. |
aero_mode_to | Aerosol mode copy. |
subroutine pmc_aero_mode::aero_mode_deallocate | ( | type(aero_mode_t),intent(inout) | aero_mode ) |
Free all storage.
aero_mode | Aerosol mode. |
subroutine pmc_aero_mode::aero_mode_num_conc | ( | type(aero_mode_t),intent(in) | aero_mode, |
type(bin_grid_t),intent(in) | bin_grid, | ||
type(aero_data_t),intent(in) | aero_data, | ||
real(kind=dp),dimension(bin_grid%n_bin),intent(out) | num_conc | ||
) |
Return the binned number concentration for an aero_mode.
aero_mode | Aero mode for which to compute number concentration. |
bin_grid | Bin grid. |
aero_data | Aerosol data. |
num_conc | Number concentration (#(ln(r))d(ln(r))). |
subroutine pmc_aero_mode::aero_mode_sample_radius | ( | type(aero_mode_t),intent(in) | aero_mode, |
type(aero_weight_t),intent(in) | aero_weight, | ||
real(kind=dp),intent(out) | radius | ||
) |
Return a radius randomly sampled from the mode distribution.
aero_mode | Aero_mode to sample radius from. |
aero_weight | Aero weight. |
radius | Sampled radius (m). |
character(len=AERO_MODE_TYPE_LEN) pmc_aero_mode::aero_mode_type_to_string | ( | integer,intent(in) | type ) |
Return a string representation of a kernel type.
type | Aero mode type. |
subroutine pmc_aero_mode::aero_mode_vol_conc | ( | type(aero_mode_t),intent(in) | aero_mode, |
type(bin_grid_t),intent(in) | bin_grid, | ||
type(aero_data_t),intent(in) | aero_data, | ||
real(kind=dp),dimension(bin_grid%n_bin, aero_data%n_spec),intent(out) | vol_conc | ||
) |
Return the binned per-species volume concentration for an aero_mode.
aero_mode | Aero mode for which to compute volume concentration. |
bin_grid | Bin grid. |
aero_data | Aerosol data. |
vol_conc | Volume concentration (V(ln(r))d(ln(r))). |
real(kind=dp) pmc_aero_mode::aero_mode_weighted_num_conc | ( | type(aero_mode_t),intent(in) | aero_mode, |
type(aero_weight_t),intent(in) | aero_weight | ||
) |
Return the weighted number concentration for an aero_mode
.
aero_mode | Aero_mode to sample radius from. |
aero_weight | Aero weight. |
subroutine pmc_aero_mode::num_conc_exp | ( | real(kind=dp),intent(in) | radius_at_mean_vol, |
type(bin_grid_t),intent(in) | bin_grid, | ||
real(kind=dp),dimension(bin_grid%n_bin),intent(out) | num_conc | ||
) |
Exponential distribution in volume
Normalized so that sum(num_conc(k) * log_width) = 1.
radius_at_mean_vol | Radius at mean volume (m). |
bin_grid | Bin grid. |
num_conc | Number concentration (#(ln(r))d(ln(r))). |
subroutine pmc_aero_mode::num_conc_log_normal | ( | real(kind=dp),intent(in) | geom_mean_radius, |
real(kind=dp),intent(in) | log10_sigma_g, | ||
type(bin_grid_t),intent(in) | bin_grid, | ||
real(kind=dp),dimension(bin_grid%n_bin),intent(out) | num_conc | ||
) |
Compute a log-normal distribution, normalized so that sum(num_conc(k) * log_width) = 1.
geom_mean_radius | Geometric mean radius (m). |
log10_sigma_g | log_10(geom. std. dev.) (1). |
bin_grid | Bin grid. |
num_conc | Number concentration (#(ln(r))d(ln(r))). |
subroutine pmc_aero_mode::num_conc_mono | ( | real(kind=dp),intent(in) | radius, |
type(bin_grid_t),intent(in) | bin_grid, | ||
real(kind=dp),dimension(bin_grid%n_bin),intent(out) | num_conc | ||
) |
Mono-disperse distribution. Normalized so that sum(num_conc(k) * log_width) = 1.
radius | Radius of each particle (m^3). |
bin_grid | Bin grid. |
num_conc | Number concentration (#(ln(r))d(ln(r))). |
subroutine pmc_aero_mode::pmc_mpi_pack_aero_mode | ( | character,dimension(:),intent(inout) | buffer, |
integer,intent(inout) | position, | ||
type(aero_mode_t),intent(in) | val | ||
) |
Packs the given value into the buffer, advancing position.
buffer | Memory buffer. |
position | Current buffer position. |
val | Value to pack. |
integer pmc_aero_mode::pmc_mpi_pack_size_aero_mode | ( | type(aero_mode_t),intent(in) | val ) |
Determines the number of bytes required to pack the given value.
val | Value to pack. |
subroutine pmc_aero_mode::pmc_mpi_unpack_aero_mode | ( | character,dimension(:),intent(inout) | buffer, |
integer,intent(inout) | position, | ||
type(aero_mode_t),intent(inout) | val | ||
) |
Unpacks the given value from the buffer, advancing position.
buffer | Memory buffer. |
position | Current buffer position. |
val | Value to pack. |
subroutine pmc_aero_mode::spec_file_read_aero_mode | ( | type(spec_file_t),intent(inout) | file, |
type(aero_data_t),intent(in) | aero_data, | ||
type(aero_mode_t),intent(inout) | aero_mode, | ||
logical | eof | ||
) |
Read one mode of an aerosol distribution (number concentration, volume fractions, and mode shape).
file | Spec file. |
aero_data | Aero_data data. |
aero_mode | Aerosol mode. |
eof | If eof instead of reading data. |
subroutine pmc_aero_mode::spec_file_read_vol_frac | ( | type(spec_file_t),intent(inout) | file, |
type(aero_data_t),intent(in) | aero_data, | ||
real(kind=dp),dimension(:),intent(inout) | vol_frac | ||
) |
Read volume fractions from a data file.
file | Spec file to read mass fractions from. |
aero_data | Aero_data data. |
vol_frac | Aerosol species volume fractions. |
subroutine pmc_aero_mode::vol_conc_exp | ( | real(kind=dp),intent(in) | radius_at_mean_vol, |
type(bin_grid_t),intent(in) | bin_grid, | ||
real(kind=dp),dimension(bin_grid%n_bin),intent(out) | vol_conc | ||
) |
Exponential distribution in volume.
radius_at_mean_vol | Radius at mean volume (m). |
bin_grid | Bin grid. |
vol_conc | Volume concentration (V(ln(r))d(ln(r))). |
subroutine pmc_aero_mode::vol_conc_log_normal | ( | real(kind=dp),intent(in) | geom_mean_radius, |
real(kind=dp),intent(in) | log10_sigma_g, | ||
type(bin_grid_t),intent(in) | bin_grid, | ||
real(kind=dp),dimension(bin_grid%n_bin),intent(out) | vol_conc | ||
) |
Compute a log-normal distribution in volume.
geom_mean_radius | Geometric mean radius (m). |
log10_sigma_g | log_10(geom. std. dev.) (1). |
bin_grid | Bin grid. |
vol_conc | Volume concentration (V(ln(r))d(ln(r))). |
subroutine pmc_aero_mode::vol_conc_mono | ( | real(kind=dp),intent(in) | radius, |
type(bin_grid_t),intent(in) | bin_grid, | ||
real(kind=dp),dimension(bin_grid%n_bin),intent(out) | vol_conc | ||
) |
Mono-disperse distribution in volume.
radius | Radius of each particle (m^3). |
bin_grid | Bin grid. |
vol_conc | Volume concentration (V(ln(r))d(ln(r))). |
integer,parameter pmc_aero_mode::AERO_MODE_NAME_LEN = 300 |
Maximum length of a mode name.
integer,parameter pmc_aero_mode::AERO_MODE_TYPE_EXP = 2 |
Type code for an exponential mode.
integer,parameter pmc_aero_mode::AERO_MODE_TYPE_INVALID = 0 |
Type code for an undefined or invalid mode.
integer,parameter pmc_aero_mode::AERO_MODE_TYPE_LEN = 20 |
Maximum length of a mode type.
integer,parameter pmc_aero_mode::AERO_MODE_TYPE_LOG_NORMAL = 1 |
Type code for a log-normal mode.
integer,parameter pmc_aero_mode::AERO_MODE_TYPE_MONO = 3 |
Type code for a mono-disperse mode.