PartMC  2.6.1
Functions/Subroutines | Variables
pmc_nucleate Module Reference

Aerosol nucleation functions. More...

Functions/Subroutines

subroutine nucleate (nucleate_type, nucleate_source, env_state, gas_data, aero_data, aero_state, gas_state, del_t, allow_doubling, allow_halving)
 Do nucleation of the type given by the first argument. More...
 
subroutine nucleate_sulf_acid (nucleate_source, env_state, gas_data, aero_data, aero_state, gas_state, del_t, allow_doubling, allow_halving)
 Nucleate sulfuric acid into aerosol particles, using a power-law dependence, for time del_t. More...
 

Variables

integer, parameter nucleate_type_invalid = 0
 Type code for unknown or invalid nucleation type. More...
 
integer, parameter nucleate_type_sulf_acid = 1
 Type code for H2SO4 to SO4 nucleation with quadratic rate. More...
 
character(len=aero_source_name_len), parameter nucleate_source_name = "nucleate"
 Source name for nucleated particles. More...
 

Detailed Description

Aerosol nucleation functions.

Function/Subroutine Documentation

◆ nucleate()

subroutine pmc_nucleate::nucleate ( integer, intent(in)  nucleate_type,
integer, intent(in)  nucleate_source,
type(env_state_t), intent(in)  env_state,
type(gas_data_t), intent(in)  gas_data,
type(aero_data_t), intent(in)  aero_data,
type(aero_state_t), intent(inout)  aero_state,
type(gas_state_t), intent(inout)  gas_state,
real(kind=dp), intent(in)  del_t,
logical, intent(in)  allow_doubling,
logical, intent(in)  allow_halving 
)

Do nucleation of the type given by the first argument.

Parameters
[in]nucleate_typeType of nucleation.
[in]nucleate_sourceNucleate source number.
[in]env_stateEnvironment state.
[in]gas_dataGas data.
[in]aero_dataAerosol data.
[in,out]aero_stateAerosol state.
[in,out]gas_stateGas state.
[in]del_tTime to perform nucleation for.
[in]allow_doublingWhether to allow doubling of the population.
[in]allow_halvingWhether to allow halving of the population.

Definition at line 31 of file nucleate.F90.

◆ nucleate_sulf_acid()

subroutine pmc_nucleate::nucleate_sulf_acid ( integer, intent(in)  nucleate_source,
type(env_state_t), intent(in)  env_state,
type(gas_data_t), intent(in)  gas_data,
type(aero_data_t), intent(in)  aero_data,
type(aero_state_t), intent(inout)  aero_state,
type(gas_state_t), intent(inout)  gas_state,
real(kind=dp), intent(in)  del_t,
logical, intent(in)  allow_doubling,
logical, intent(in)  allow_halving 
)

Nucleate sulfuric acid into aerosol particles, using a power-law dependence, for time del_t.

The modeled emission rate is $ J = K H^2 $, where $H$ is the concentration of $ \rm H_2SO_4 $ and $K$ is a constant coefficient.

The reference is:

C. Kuang, P. H. McMurry, A. V. McCormick, and F. L. Eisele (2008), Dependence of nucleation rates on sulfuric acid vapor concentration in diverse atmospheric locations, J. Geophys. Res., 113, D10209, doi:10.1029/2007JD009253.

Parameters
[in]nucleate_sourceNucleate source number.
[in]env_stateEnvironment state.
[in]gas_dataGas data.
[in]aero_dataAerosol data.
[in,out]aero_stateAerosol state.
[in,out]gas_stateGas state.
[in]del_tTime to perform nucleation for.
[in]allow_doublingWhether to allow doubling of the population.
[in]allow_halvingWhether to allow halving of the population.

Definition at line 83 of file nucleate.F90.

Variable Documentation

◆ nucleate_source_name

character(len=aero_source_name_len), parameter pmc_nucleate::nucleate_source_name = "nucleate"

Source name for nucleated particles.

Definition at line 23 of file nucleate.F90.

◆ nucleate_type_invalid

integer, parameter pmc_nucleate::nucleate_type_invalid = 0

Type code for unknown or invalid nucleation type.

Definition at line 18 of file nucleate.F90.

◆ nucleate_type_sulf_acid

integer, parameter pmc_nucleate::nucleate_type_sulf_acid = 1

Type code for H2SO4 to SO4 nucleation with quadratic rate.

Definition at line 20 of file nucleate.F90.