CAMP 1.0.0
Chemistry Across Multiple Phases
Public Member Functions | Public Attributes | List of all members
camp_aero_rep_data::aero_rep_data_t Type Referenceabstract

Abstract aerosol representation data type. More...

Inheritance diagram for camp_aero_rep_data::aero_rep_data_t:
Inheritance graph
[legend]
Collaboration diagram for camp_aero_rep_data::aero_rep_data_t:
Collaboration graph
[legend]

Public Member Functions

procedure(initialize), deferred initialize initialize
 Initialize the aerosol representation data, validating component data and loading any required information from the aero_rep_data_t::property_set. This routine should be called once for each aerosol representation at the beginning of a 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.
 
procedure(get_size), deferred size get_size
 Get the size of the section of the camp_camp_state::camp_state_t::state_var array required for this aerosol representation.
 
procedure(unique_names), deferred unique_names unique_names
 Get a list of unique names for each element on the camp_camp_state::camp_state_t::state_var array for this aerosol representation. The list may be restricted to a particular phase and/or aerosol species by including the phase_name and spec_name arguments.
 
procedure(spec_state_id), deferred spec_state_id spec_state_id
 Get a species id on the camp_camp_state::camp_state_t::state_var array by its unique name. These are unique ids for each element on the state array for this aerosol representation and are numbered:
 
procedure(spec_name), deferred spec_name spec_name
 Get the non-unique name of a species by its unique name.
 
procedure(num_phase_instances), deferred num_phase_instances num_phase_instances
 Get the number of instances of an aerosol phase.
 
procedure(num_jac_elem), deferred num_jac_elem num_jac_elem
 Get the number of Jacobian elements for calculations of mass, volume, number, etc for a particular phase.
 
procedure load (this, json, j_obj)
 Load data from an input file.
 
procedure name (this)
 Get the name of the aerosol representation.
 
procedure phase_ids (this, phase_name, is_at_surface)
 Get ids for all instances of a phase in this aerosol representation for use during solving.
 
procedure pack_size (this, comm)
 Determine the number of bytes required to pack the given value.
 
procedure bin_pack (this, buffer, pos, comm)
 Packs the given value into the buffer, advancing position.
 
procedure bin_unpack (this, buffer, pos, comm)
 Unpacks the given value from the buffer, advancing position.
 
procedure print (this, file_unit)
 Print the aerosol representation data.
 

Public Attributes

character(len=:), allocatable, public rep_name
 Name of the aerosol representation.
 
type(aero_phase_data_ptr), dimension(:), allocatable, public aero_phase
 Aerosol phases associated with this aerosol scheme.
 
type(property_t), pointer, public property_set => null()
 Aerosol representation parameters. These will be available during initialization, but not during solving. All information required by functions of the aerosol representation must be saved by the exdending type in the condensed data arrays.
 
real(kind=dp), dimension(:), allocatable, public condensed_data_real
 Condensed representation data. Theses arrays will be available during solving, and should contain any information required by the functions of the aerosol representation that cannot be obtained from the camp_camp_state::camp_state_t object. (floating-point)
 
integer(kind=i_kind), dimension(:), allocatable, public condensed_data_int
 Condensed representation data. Theses arrays will be available during solving, and should contain any information required by the functions of the aerosol representation that cannot be obtained from the camp_camp_state::camp_state_t object. (integer)
 
logical, dimension(:), allocatable, public aero_phase_is_at_surface
 Array of booleans indicating if phase exists at the surface of a particle. Used in SIMPOL and HL reactions for single particle representation.
 
integer(kind=i_kind), public num_env_params = 0
 Number of environment-dependent parameters These are parameters that need updated when environmental conditions change.
 

Detailed Description

Abstract aerosol representation data type.

Time-invariant data related to an aerosol representation. Derived types extending aero_rep_data_t should describe specific types of aerosol schemes (e.g., binned, modal, particle-resolved).

See Aerosol Representations for details.

Definition at line 54 of file aero_rep_data.F90.

Member Function/Subroutine Documentation

◆ bin_pack()

procedure camp_aero_rep_data::aero_rep_data_t::bin_pack ( class(aero_rep_data_t), intent(in)  this,
character, dimension(:), intent(inout)  buffer,
integer, intent(inout)  pos,
integer, intent(in)  comm 
)

Packs the given value into the buffer, advancing position.

Parameters
[in]thisAerosol representation data
[in,out]bufferMemory buffer
[in,out]posCurrent buffer position
[in]commMPI communicator

Definition at line 133 of file aero_rep_data.F90.

◆ bin_unpack()

procedure camp_aero_rep_data::aero_rep_data_t::bin_unpack ( class(aero_rep_data_t), intent(out)  this,
character, dimension(:), intent(inout)  buffer,
integer, intent(inout)  pos,
integer, intent(in)  comm 
)

Unpacks the given value from the buffer, advancing position.

Parameters
[out]thisAerosol representation data
[in,out]bufferMemory buffer
[in,out]posCurrent buffer position
[in]commMPI communicator

Definition at line 135 of file aero_rep_data.F90.

◆ initialize()

procedure(initialize), deferred camp_aero_rep_data::aero_rep_data_t::initialize
pure virtual

Initialize the aerosol representation data, validating component data and loading any required information from the aero_rep_data_t::property_set. This routine should be called once for each aerosol representation at the beginning of a 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.

Definition at line 92 of file aero_rep_data.F90.

◆ load()

procedure camp_aero_rep_data::aero_rep_data_t::load ( class(aero_rep_data_t), intent(inout)  this,
type(json_core), intent(in), pointer  json,
type(json_value), intent(in), pointer  j_obj 
)

Load data from an input file.

Parameters
[in,out]thisAerosol representation data
[in]jsonJSON core
[in]j_objJSON object

Definition at line 124 of file aero_rep_data.F90.

◆ name()

procedure camp_aero_rep_data::aero_rep_data_t::name ( class(aero_rep_data_t), intent(in)  this)

Get the name of the aerosol representation.

Returns
Aerosol representation name
Parameters
[in]thisAerosol representation data

Definition at line 126 of file aero_rep_data.F90.

◆ num_jac_elem()

procedure(num_jac_elem), deferred camp_aero_rep_data::aero_rep_data_t::num_jac_elem
pure virtual

Get the number of Jacobian elements for calculations of mass, volume, number, etc for a particular phase.

Definition at line 122 of file aero_rep_data.F90.

◆ num_phase_instances()

procedure(num_phase_instances), deferred camp_aero_rep_data::aero_rep_data_t::num_phase_instances
pure virtual

Get the number of instances of an aerosol phase.

Definition at line 119 of file aero_rep_data.F90.

◆ pack_size()

procedure camp_aero_rep_data::aero_rep_data_t::pack_size ( class(aero_rep_data_t), intent(in)  this,
integer, intent(in)  comm 
)

Determine the number of bytes required to pack the given value.

Parameters
[in]thisAerosol representation data
[in]commMPI communicator

Definition at line 131 of file aero_rep_data.F90.

◆ phase_ids()

procedure camp_aero_rep_data::aero_rep_data_t::phase_ids ( class(aero_rep_data_t), intent(in)  this,
character(len=*), intent(in)  phase_name,
logical, intent(in), optional  is_at_surface 
)

Get ids for all instances of a phase in this aerosol representation for use during solving.

Returns
List of phase ids
Parameters
[in]thisAerosol representation data
[in]phase_nameAerosol phase name
[in]is_at_surfaceIndicates if aerosol phase is at the surface of particle

Definition at line 129 of file aero_rep_data.F90.

◆ print()

procedure camp_aero_rep_data::aero_rep_data_t::print ( class(aero_rep_data_t), intent(in)  this,
integer(kind=i_kind), optional  file_unit 
)

Print the aerosol representation data.

Parameters
[in]thisAerosol representation data
file_unitFile unit for output

Definition at line 137 of file aero_rep_data.F90.

◆ size()

procedure(get_size), deferred camp_aero_rep_data::aero_rep_data_t::size
pure virtual

Get the size of the section of the camp_camp_state::camp_state_t::state_var array required for this aerosol representation.

Definition at line 96 of file aero_rep_data.F90.

◆ spec_name()

procedure(spec_name), deferred camp_aero_rep_data::aero_rep_data_t::spec_name
pure virtual

Get the non-unique name of a species by its unique name.

Definition at line 117 of file aero_rep_data.F90.

◆ spec_state_id()

procedure(spec_state_id), deferred camp_aero_rep_data::aero_rep_data_t::spec_state_id
pure virtual

Get a species id on the camp_camp_state::camp_state_t::state_var array by its unique name. These are unique ids for each element on the state array for this aerosol representation and are numbered:

\[x_u \in x_f ... (x_f+n-1)\]

where \(x_u\) is the id of the element corresponding to the species with unique name \(u\) on the camp_camp_state::camp_state_t::state_var array, \(x_f\) is the index of the first element for this aerosol representation on the state array and \(n\) is the total number of variables on the state array from this aerosol representation.

Definition at line 115 of file aero_rep_data.F90.

◆ unique_names()

procedure(unique_names), deferred camp_aero_rep_data::aero_rep_data_t::unique_names
pure virtual

Get a list of unique names for each element on the camp_camp_state::camp_state_t::state_var array for this aerosol representation. The list may be restricted to a particular phase and/or aerosol species by including the phase_name and spec_name arguments.

Definition at line 101 of file aero_rep_data.F90.

Member Data Documentation

◆ aero_phase

type(aero_phase_data_ptr), dimension(:), allocatable, public camp_aero_rep_data::aero_rep_data_t::aero_phase

Aerosol phases associated with this aerosol scheme.

See Aerosol Phases for details.

Definition at line 61 of file aero_rep_data.F90.

◆ aero_phase_is_at_surface

logical, dimension(:), allocatable, public camp_aero_rep_data::aero_rep_data_t::aero_phase_is_at_surface

Array of booleans indicating if phase exists at the surface of a particle. Used in SIMPOL and HL reactions for single particle representation.

Definition at line 80 of file aero_rep_data.F90.

◆ condensed_data_int

integer(kind=i_kind), dimension(:), allocatable, public camp_aero_rep_data::aero_rep_data_t::condensed_data_int

Condensed representation data. Theses arrays will be available during solving, and should contain any information required by the functions of the aerosol representation that cannot be obtained from the camp_camp_state::camp_state_t object. (integer)

Definition at line 76 of file aero_rep_data.F90.

◆ condensed_data_real

real(kind=dp), dimension(:), allocatable, public camp_aero_rep_data::aero_rep_data_t::condensed_data_real

Condensed representation data. Theses arrays will be available during solving, and should contain any information required by the functions of the aerosol representation that cannot be obtained from the camp_camp_state::camp_state_t object. (floating-point)

Definition at line 71 of file aero_rep_data.F90.

◆ num_env_params

integer(kind=i_kind), public camp_aero_rep_data::aero_rep_data_t::num_env_params = 0

Number of environment-dependent parameters These are parameters that need updated when environmental conditions change.

Definition at line 84 of file aero_rep_data.F90.

◆ property_set

type(property_t), pointer, public camp_aero_rep_data::aero_rep_data_t::property_set => null()

Aerosol representation parameters. These will be available during initialization, but not during solving. All information required by functions of the aerosol representation must be saved by the exdending type in the condensed data arrays.

Definition at line 66 of file aero_rep_data.F90.

◆ rep_name

character(len=:), allocatable, public camp_aero_rep_data::aero_rep_data_t::rep_name

Name of the aerosol representation.

Definition at line 57 of file aero_rep_data.F90.


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