PartMC  2.1.5
Data Types | Public Member Functions | Public Attributes
pmc_aero_mode Module Reference

The aero_mode_t structure and associated subroutines. More...

List of all members.

Data Types

type  aero_mode_t
 An aerosol size distribution mode. More...

Public Member Functions

character(len=AERO_MODE_TYPE_LEN)
function 
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

\[ n(v) = \frac{1}{\rm mean-vol} \exp(- v / {\rm mean-vol}) \]

Normalized so that sum(num_conc(k) * log_width) = 1.

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) function 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 function 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.

Public Attributes

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.

Detailed Description

The aero_mode_t structure and associated subroutines.

Definition at line 9 of file aero_mode.F90.


Member Function/Subroutine Documentation

subroutine pmc_aero_mode::aero_mode_allocate ( type(aero_mode_t), intent(out)  aero_mode)

Allocates an aero_mode.

Parameters:
[out]aero_modeAerosol mode.

Definition at line 87 of file aero_mode.F90.

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.

Parameters:
[out]aero_modeAerosol mode.
[in]n_specNumber of species.

Definition at line 99 of file aero_mode.F90.

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.

Parameters:
[in]aero_mode_fromAerosol mode original.
[in,out]aero_mode_toAerosol mode copy.

Definition at line 125 of file aero_mode.F90.

subroutine pmc_aero_mode::aero_mode_deallocate ( type(aero_mode_t), intent(inout)  aero_mode)

Free all storage.

Parameters:
[in,out]aero_modeAerosol mode.

Definition at line 113 of file aero_mode.F90.

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.

Parameters:
[in]aero_modeAero mode for which to compute number concentration.
[in]bin_gridBin grid.
[in]aero_dataAerosol data.
[out]num_concNumber concentration (#(ln(r))d(ln(r))).

Definition at line 289 of file aero_mode.F90.

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.

Parameters:
[in]aero_modeAero_mode to sample radius from.
[in]aero_weightAero weight.
[out]radiusSampled radius (m).

Definition at line 400 of file aero_mode.F90.

character(len=AERO_MODE_TYPE_LEN) function pmc_aero_mode::aero_mode_type_to_string ( integer, intent(in)  type)

Return a string representation of a kernel type.

Parameters:
[in]typeAero mode type.

Definition at line 65 of file aero_mode.F90.

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.

Parameters:
[in]aero_modeAero mode for which to compute volume concentration.
[in]bin_gridBin grid.
[in]aero_dataAerosol data.
[out]vol_concVolume concentration (V(ln(r))d(ln(r))).

Definition at line 320 of file aero_mode.F90.

real(kind=dp) function 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.

Parameters:
[in]aero_modeAero_mode to sample radius from.
[in]aero_weightAero weight.

Definition at line 359 of file aero_mode.F90.

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

\[ n(v) = \frac{1}{\rm mean-vol} \exp(- v / {\rm mean-vol}) \]

Normalized so that sum(num_conc(k) * log_width) = 1.

Parameters:
[in]radius_at_mean_volRadius at mean volume (m).
[in]bin_gridBin grid.
[out]num_concNumber concentration (#(ln(r))d(ln(r))).

Definition at line 205 of file aero_mode.F90.

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.

Parameters:
[in]geom_mean_radiusGeometric mean radius (m).
[in]log10_sigma_glog_10(geom. std. dev.) (1).
[in]bin_gridBin grid.
[out]num_concNumber concentration (#(ln(r))d(ln(r))).

Definition at line 148 of file aero_mode.F90.

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.

Parameters:
[in]radiusRadius of each particle (m^3).
[in]bin_gridBin grid.
[out]num_concNumber concentration (#(ln(r))d(ln(r))).

Definition at line 249 of file aero_mode.F90.

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.

Parameters:
[in,out]bufferMemory buffer.
[in,out]positionCurrent buffer position.
[in]valValue to pack.

Definition at line 687 of file aero_mode.F90.

integer function 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.

Parameters:
[in]valValue to pack.

Definition at line 668 of file aero_mode.F90.

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.

Parameters:
[in,out]bufferMemory buffer.
[in,out]positionCurrent buffer position.
[in,out]valValue to pack.

Definition at line 716 of file aero_mode.F90.

subroutine pmc_aero_mode::spec_file_read_aero_mode ( type(spec_file_t), intent(inout)  file,
type(aero_data_t), intent(inout)  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).

Parameters:
[in,out]fileSpec file.
[in,out]aero_dataAero_data data.
[in,out]aero_modeAerosol mode.
eofIf eof instead of reading data.

Definition at line 539 of file aero_mode.F90.

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.

Parameters:
[in,out]fileSpec file to read mass fractions from.
[in]aero_dataAero_data data.
[in,out]vol_fracAerosol species volume fractions.

Definition at line 451 of file aero_mode.F90.

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.

Parameters:
[in]radius_at_mean_volRadius at mean volume (m).
[in]bin_gridBin grid.
[out]vol_concVolume concentration (V(ln(r))d(ln(r))).

Definition at line 229 of file aero_mode.F90.

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.

Parameters:
[in]geom_mean_radiusGeometric mean radius (m).
[in]log10_sigma_glog_10(geom. std. dev.) (1).
[in]bin_gridBin grid.
[out]vol_concVolume concentration (V(ln(r))d(ln(r))).

Definition at line 180 of file aero_mode.F90.

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.

Parameters:
[in]radiusRadius of each particle (m^3).
[in]bin_gridBin grid.
[out]vol_concVolume concentration (V(ln(r))d(ln(r))).

Definition at line 269 of file aero_mode.F90.


Member Data Documentation

integer, parameter pmc_aero_mode::AERO_MODE_NAME_LEN = 300

Maximum length of a mode name.

Definition at line 24 of file aero_mode.F90.

integer, parameter pmc_aero_mode::AERO_MODE_TYPE_EXP = 2

Type code for an exponential mode.

Definition at line 33 of file aero_mode.F90.

integer, parameter pmc_aero_mode::AERO_MODE_TYPE_INVALID = 0

Type code for an undefined or invalid mode.

Definition at line 29 of file aero_mode.F90.

integer, parameter pmc_aero_mode::AERO_MODE_TYPE_LEN = 20

Maximum length of a mode type.

Definition at line 26 of file aero_mode.F90.

Type code for a log-normal mode.

Definition at line 31 of file aero_mode.F90.

integer, parameter pmc_aero_mode::AERO_MODE_TYPE_MONO = 3

Type code for a mono-disperse mode.

Definition at line 35 of file aero_mode.F90.


The documentation for this module was generated from the following file: