PartMC
2.6.1
|
The fractal_t structure and associated subroutines. More...
Data Types | |
type | fractal_t |
Fractal data. More... | |
Functions/Subroutines | |
subroutine | fractal_set_spherical (fractal) |
Set fractal parameters for spherical particles. More... | |
real(kind=dp) elemental function | fractal_vol_to_num_of_monomers (fractal, v) |
Convert mass-equivalent volume (m^3) to number of monomers in a fractal particle cluster. More... | |
real(kind=dp) elemental function | fractal_vol2rad (fractal, v) |
Convert mass-equivalent volume (m^3) to geometric radius (m). More... | |
real(kind=dp) elemental function | fractal_vol2diam (fractal, v) |
Convert mass-equivalent volume (m^3) to geometric diameter (m). More... | |
real(kind=dp) elemental function | fractal_rad2vol (fractal, r) |
Convert geometric radius (m) to mass-equivalent volume (m^3). More... | |
real(kind=dp) elemental function | fractal_diam2vol (fractal, d) |
Convert geometric diameter (m) to mass-equivalent volume (m^3). More... | |
real(kind=dp) function | fractal_surface_frac_dim (fractal) |
Compute surface fractal dimension . More... | |
real(kind=dp) function | fractal_vol_to_accessible_surface (fractal, v) |
Convert mass-equivalent volume (m^3) to accessible particle surface area (m^2). More... | |
real(kind=dp) function | fractal_kirkwood_riseman (fractal) |
Kirkwood-Riseman ratio . More... | |
real(kind=dp) function | fractal_vol_to_mobility_rad_in_continuum (fractal, v) |
Convert mass-equivalent volume (m^3) to continuum regime mobility equivalent radius (m). More... | |
real(kind=dp) function | fractal_vol_to_effective_rad (fractal, v) |
Convert mass-equivalent volume (m^3) to particle effective radius (m). More... | |
real(kind=dp) function | fractal_slip_correct (R_eff, temp, pressure) |
Slip correction function from continuum to free molecular regime. More... | |
elemental logical function | fractal_is_spherical (fractal) |
Test whether a particle is spherical. More... | |
real(kind=dp) function | fractal_vol_to_mobility_rad (fractal, v, temp, pressure) |
Convert mass-equivalent volume (m^3) to mobility equivalent radius (m). More... | |
real(kind=dp) function | fractal_mobility_rad_to_mobility_rad_in_continuum (fractal, mobility_rad, temp, pressure) |
Convert mobility equivalent radius (m) to that in the continuum regime (m). More... | |
real(kind=dp) function | fractal_mobility_rad_to_geometric_rad (fractal, mobility_rad, temp, pressure) |
Convert mobility equivalent radius (m) to geometric radius (m^3). More... | |
real(kind=dp) function | fractal_mobility_rad_to_vol (fractal, mobility_rad, temp, pressure) |
Convert mobility equivalent radius (m) to mass-equivalent volume (m^3). More... | |
integer function | pmc_mpi_pack_size_fractal (val) |
Determines the number of bytes required to pack the given value. More... | |
subroutine | pmc_mpi_pack_fractal (buffer, position, val) |
Packs the given value into the buffer, advancing position. More... | |
subroutine | pmc_mpi_unpack_fractal (buffer, position, val) |
Unpacks the given value from the buffer, advancing position. More... | |
subroutine | fractal_input_netcdf (fractal, ncid) |
Read full state. More... | |
Variables | |
real(kind=dp), parameter | fractal_a_slip = 1.142d0 |
Constant in slip correction equation in Eq. 22 of Naumann [2003]. More... | |
real(kind=dp), parameter | fractal_q_slip = 0.588d0 |
Constant in slip correction equation in Eq. 22 of Naumann [2003]. More... | |
real(kind=dp), parameter | fractal_b_slip = 0.999d0 |
Constant in slip correction equation in Eq. 22 of Naumann [2003]. More... | |
real(kind=dp), parameter | fractal_scale_factor_s_acc = 1d0 |
Scaling factor in calculating accessible particle surface area in Eq. 26 of Naumann [2003]. More... | |
real(kind=dp), parameter | fractal_scale_exponent_s_acc = 0.86d0 |
Scaling exponent in calculating accessible particle surface area in Eq. 26 of Naumann [2003]. More... | |
The fractal_t structure and associated subroutines.
This module includes all the conversions of different radii and diameters to volume (and vice versa), such as geometric radius/diameter, mobility equivalent radius/diameter, etc. Here volume means the particle mass-equivalent volume (referred to "vol" in code). The mass-equivalent volume is the sum of the per-species volumes, which are in turn the per-species masses divided by the per-species densities in aero_data. Geometric radius (referred to "rad" in code) is defined as the radius of the closest convex envelop. This quantity provides the information about the collisional cross section which is required to calculate coagulation rates. Mobility equivalent radius (referred to "mobility_rad" in code) will be the same as geometric radius for spherical particles, but different for fractal particles. This is due to hydrodynamic interactions between the primary particles, which result in a decrease of the frictional forces acting upon the particles accompanied by an increase of the translational diffusion coefficient. Mobility equivalent radius is often used as output from experimental data such as SMPS measurements. We also use "mobility_rad_in_continuum" for the mobility equivalent radius in continuum regime.
All equations used in this file are obtained from K. -H. Naumann (2003) COSIMA - a computer program simulating the dynamics of fractal aerosols, Journal of Aerosol Science, 34(10), 1371-1397. The equations are written in detail in the file doc/fractal/fractal.tex
.
real(kind=dp) elemental function pmc_fractal::fractal_diam2vol | ( | type(fractal_t), intent(in) | fractal, |
real(kind=dp), intent(in) | d | ||
) |
Convert geometric diameter (m) to mass-equivalent volume (m^3).
[in] | fractal | Fractal parameters. |
[in] | d | Geometric diameter (m). |
Definition at line 163 of file fractal.F90.
subroutine pmc_fractal::fractal_input_netcdf | ( | type(fractal_t), intent(inout) | fractal, |
integer, intent(in) | ncid | ||
) |
Read full state.
[in,out] | fractal | Fractal parameters to read. |
[in] | ncid | NetCDF file ID, in data mode. |
Definition at line 632 of file fractal.F90.
elemental logical function pmc_fractal::fractal_is_spherical | ( | type(fractal_t), intent(in) | fractal | ) |
Test whether a particle is spherical.
[in] | fractal | Fractal parameters. |
Definition at line 296 of file fractal.F90.
real(kind=dp) function pmc_fractal::fractal_kirkwood_riseman | ( | type(fractal_t), intent(in) | fractal | ) |
Kirkwood-Riseman ratio .
Based on Eq. 21 in Naumann [2003].
[in] | fractal | Fractal parameters. |
Definition at line 223 of file fractal.F90.
real(kind=dp) function pmc_fractal::fractal_mobility_rad_to_geometric_rad | ( | type(fractal_t), intent(in) | fractal, |
real(kind=dp), intent(in) | mobility_rad, | ||
real(kind=dp), intent(in) | temp, | ||
real(kind=dp), intent(in) | pressure | ||
) |
Convert mobility equivalent radius (m) to geometric radius (m^3).
[in] | fractal | Fractal parameters. |
[in] | mobility_rad | Mobility equivalent radius (m). |
[in] | temp | Temperature (K). |
[in] | pressure | Pressure (Pa). |
Definition at line 434 of file fractal.F90.
real(kind=dp) function pmc_fractal::fractal_mobility_rad_to_mobility_rad_in_continuum | ( | type(fractal_t), intent(in) | fractal, |
real(kind=dp), intent(in) | mobility_rad, | ||
real(kind=dp), intent(in) | temp, | ||
real(kind=dp), intent(in) | pressure | ||
) |
Convert mobility equivalent radius (m) to that in the continuum regime (m).
Based on Eq. 30 in Naumann [2003].
[in] | fractal | Fractal parameters. |
[in] | mobility_rad | Mobility equivalent radius (m). |
[in] | temp | Temperature (K). |
[in] | pressure | Pressure (Pa). |
Definition at line 370 of file fractal.F90.
real(kind=dp) function pmc_fractal::fractal_mobility_rad_to_vol | ( | type(fractal_t), intent(in) | fractal, |
real(kind=dp), intent(in) | mobility_rad, | ||
real(kind=dp), intent(in) | temp, | ||
real(kind=dp), intent(in) | pressure | ||
) |
Convert mobility equivalent radius (m) to mass-equivalent volume (m^3).
Based on Eq. 5, 21 and 30 in Naumann [2003].
[in] | fractal | Fractal parameters. |
[in] | mobility_rad | Mobility equivalent radius (m). |
[in] | temp | Temperature (K). |
[in] | pressure | Pressure (Pa). |
Definition at line 466 of file fractal.F90.
real(kind=dp) elemental function pmc_fractal::fractal_rad2vol | ( | type(fractal_t), intent(in) | fractal, |
real(kind=dp), intent(in) | r | ||
) |
Convert geometric radius (m) to mass-equivalent volume (m^3).
[in] | fractal | Fractal parameters. |
[in] | r | Geometric radius (m). |
Definition at line 142 of file fractal.F90.
subroutine pmc_fractal::fractal_set_spherical | ( | type(fractal_t), intent(out) | fractal | ) |
Set fractal parameters for spherical particles.
[out] | fractal | Fractal parameters. |
Definition at line 73 of file fractal.F90.
real(kind=dp) function pmc_fractal::fractal_slip_correct | ( | real(kind=dp), intent(in) | R_eff, |
real(kind=dp), intent(in) | temp, | ||
real(kind=dp), intent(in) | pressure | ||
) |
Slip correction function from continuum to free molecular regime.
Based on Eq. 22 in Naumann [2003].
[in] | r_eff | Effective radius (m). |
[in] | temp | Temperature (K). |
[in] | pressure | Pressure (Pa). |
Definition at line 276 of file fractal.F90.
real(kind=dp) function pmc_fractal::fractal_surface_frac_dim | ( | type(fractal_t), intent(in) | fractal | ) |
Compute surface fractal dimension .
[in] | fractal | Fractal parameters. |
Definition at line 177 of file fractal.F90.
real(kind=dp) elemental function pmc_fractal::fractal_vol2diam | ( | type(fractal_t), intent(in) | fractal, |
real(kind=dp), intent(in) | v | ||
) |
Convert mass-equivalent volume (m^3) to geometric diameter (m).
[in] | fractal | Fractal parameters. |
[in] | v | Particle mass-equivalent volume (m^3). |
Definition at line 127 of file fractal.F90.
real(kind=dp) elemental function pmc_fractal::fractal_vol2rad | ( | type(fractal_t), intent(in) | fractal, |
real(kind=dp), intent(in) | v | ||
) |
Convert mass-equivalent volume (m^3) to geometric radius (m).
[in] | fractal | Fractal parameters. |
[in] | v | Particle mass-equivalent volume (m^3). |
Definition at line 106 of file fractal.F90.
real(kind=dp) function pmc_fractal::fractal_vol_to_accessible_surface | ( | type(fractal_t), intent(in) | fractal, |
real(kind=dp), intent(in) | v | ||
) |
Convert mass-equivalent volume (m^3) to accessible particle surface area (m^2).
Based on Eq. 26 in Naumann [2003].
[in] | fractal | Fractal parameters. |
[in] | v | Particle mass-equivalent volume (m^3) |
Definition at line 199 of file fractal.F90.
real(kind=dp) function pmc_fractal::fractal_vol_to_effective_rad | ( | type(fractal_t), intent(in) | fractal, |
real(kind=dp), intent(in) | v | ||
) |
Convert mass-equivalent volume (m^3) to particle effective radius (m).
Based on Eq. 28 in Naumann [2003].
[in] | fractal | Fractal parameters. |
[in] | v | Particle mass-equivalent volume (m^3). |
Definition at line 257 of file fractal.F90.
real(kind=dp) function pmc_fractal::fractal_vol_to_mobility_rad | ( | type(fractal_t), intent(in) | fractal, |
real(kind=dp), intent(in) | v, | ||
real(kind=dp), intent(in) | temp, | ||
real(kind=dp), intent(in) | pressure | ||
) |
Convert mass-equivalent volume (m^3) to mobility equivalent radius (m).
Based on Eq. 5, 21 and 30 in Naumann [2003].
[in] | fractal | Fractal parameters. |
[in] | v | Particle mass-equivalent volume (m^3). |
[in] | temp | Temperature (K). |
[in] | pressure | Pressure (Pa). |
Definition at line 315 of file fractal.F90.
real(kind=dp) function pmc_fractal::fractal_vol_to_mobility_rad_in_continuum | ( | type(fractal_t), intent(in) | fractal, |
real(kind=dp), intent(in) | v | ||
) |
Convert mass-equivalent volume (m^3) to continuum regime mobility equivalent radius (m).
Based on Eq. 21 in Naumann [2003].
[in] | fractal | Fractal parameters. |
[in] | v | Particle mass-equivalent volume (m^3). |
Definition at line 239 of file fractal.F90.
real(kind=dp) elemental function pmc_fractal::fractal_vol_to_num_of_monomers | ( | type(fractal_t), intent(in) | fractal, |
real(kind=dp), intent(in) | v | ||
) |
Convert mass-equivalent volume (m^3) to number of monomers in a fractal particle cluster.
Based on Eq. 5 in Naumann [2003].
[in] | fractal | Fractal parameters. |
[in] | v | Particle mass-equivalent volume (m^3). |
Definition at line 90 of file fractal.F90.
subroutine pmc_fractal::pmc_mpi_pack_fractal | ( | character, dimension(:), intent(inout) | buffer, |
integer, intent(inout) | position, | ||
type(fractal_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 504 of file fractal.F90.
integer function pmc_fractal::pmc_mpi_pack_size_fractal | ( | type(fractal_t), intent(in) | val | ) |
Determines the number of bytes required to pack the given value.
[in] | val | Value to pack. |
Definition at line 489 of file fractal.F90.
subroutine pmc_fractal::pmc_mpi_unpack_fractal | ( | character, dimension(:), intent(inout) | buffer, |
integer, intent(inout) | position, | ||
type(fractal_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 527 of file fractal.F90.
real(kind=dp), parameter pmc_fractal::fractal_a_slip = 1.142d0 |
Constant in slip correction equation in Eq. 22 of Naumann [2003].
Definition at line 43 of file fractal.F90.
real(kind=dp), parameter pmc_fractal::fractal_b_slip = 0.999d0 |
Constant in slip correction equation in Eq. 22 of Naumann [2003].
Definition at line 47 of file fractal.F90.
real(kind=dp), parameter pmc_fractal::fractal_q_slip = 0.588d0 |
Constant in slip correction equation in Eq. 22 of Naumann [2003].
Definition at line 45 of file fractal.F90.
real(kind=dp), parameter pmc_fractal::fractal_scale_exponent_s_acc = 0.86d0 |
Scaling exponent in calculating accessible particle surface area in Eq. 26 of Naumann [2003].
Definition at line 53 of file fractal.F90.
real(kind=dp), parameter pmc_fractal::fractal_scale_factor_s_acc = 1d0 |
Scaling factor in calculating accessible particle surface area in Eq. 26 of Naumann [2003].
Definition at line 50 of file fractal.F90.