CAMP 1.0.0
Chemistry Across Multiple Phases
Data Types | Functions/Subroutines
camp_sub_model_unifac Module Reference

The sub_model_UNIFAC_t type and assocatiated subroutines. More...

Data Types

interface  sub_model_unifac_t
 UNIFAC activity coefficient calculation. More...
 

Functions/Subroutines

type(sub_model_unifac_t) function, pointer constructor ()
 Constructor for sub_model_UNIFAC_t.
 
subroutine initialize (this, aero_rep_set, aero_phase_set, chem_spec_data)
 Initialize the sub model data, validating input parameters and loading any required information form the sub_model_data_t::property_set. This routine should be called once for each sub model at the beginning of the model run after all the input files have been read in. It ensures all data required during the model run are included in the condensed data arrays.
 
real(kind=dp) function priority (this)
 Return a real number representing the priority of the sub model calculations. Low priority sub models may use the results of higher priority sub models. Lower numbers indicate higher priority.
 
elemental subroutine finalize (this)
 Finalize the sub-model.
 

Detailed Description

The sub_model_UNIFAC_t type and assocatiated subroutines.

This module is based on the UNIFAC module of Alf Grini, CNRM, 2005, which in turn, was based original code received from Pierre Tulet, who got it from Betty Pun who (it seems) got it from Pradeep Saxena. The UNIFAC module is part of the Model to Predict the Multi-phase Partitioning of Organics (Griffin et al., JGR 110, D05304, 2005 doi: 10.1029/2004JD005219)

Equations referenced are from Marcolli and Peter, ACP 5(2), 1501-1527, 2005, and variable names roughly follow their naming scheme.

Function/Subroutine Documentation

◆ constructor()

type(sub_model_unifac_t) function, pointer camp_sub_model_unifac::constructor
private

Constructor for sub_model_UNIFAC_t.

Returns
New sub model

Definition at line 225 of file sub_model_UNIFAC.F90.

◆ finalize()

elemental subroutine camp_sub_model_unifac::finalize ( type(sub_model_unifac_t), intent(inout)  this)
private

Finalize the sub-model.

Parameters
[in,out]thisSub-model data

Definition at line 741 of file sub_model_UNIFAC.F90.

◆ initialize()

subroutine camp_sub_model_unifac::initialize ( class(sub_model_unifac_t), intent(inout)  this,
type(aero_rep_data_ptr), dimension(:), intent(in), pointer  aero_rep_set,
type(aero_phase_data_ptr), dimension(:), intent(in), pointer  aero_phase_set,
type(chem_spec_data_t), intent(in)  chem_spec_data 
)
private

Initialize the sub model data, validating input parameters and loading any required information form the sub_model_data_t::property_set. This routine should be called once for each sub model at the beginning of the model run after all the input files have been read in. It ensures all data required during the model run are included in the condensed data arrays.

Parameters
[in,out]thisSub model data
[in]aero_rep_setThe set of aerosol representations
[in]aero_phase_setThe set of aerosol phases
[in]chem_spec_dataChemical species data

Definition at line 242 of file sub_model_UNIFAC.F90.

Here is the call graph for this function:

◆ priority()

real(kind=dp) function camp_sub_model_unifac::priority ( class(sub_model_unifac_t), intent(in)  this)
private

Return a real number representing the priority of the sub model calculations. Low priority sub models may use the results of higher priority sub models. Lower numbers indicate higher priority.

UNIFAC calculations may depend on water concentrations, so must be lower priority than the ZSR sub model.

Returns
Sub model priority
Parameters
[in]thisSub model data

Definition at line 727 of file sub_model_UNIFAC.F90.