CAMP 1.0.0
Chemistry Across Multiple Phases
Public Member Functions | Public Attributes | Private Attributes | List of all members
camp_aero_rep_single_particle::aero_rep_single_particle_t Interface Reference

Single particle aerosol representation. More...

Inheritance diagram for camp_aero_rep_single_particle::aero_rep_single_particle_t:
Inheritance graph
[legend]
Collaboration diagram for camp_aero_rep_single_particle::aero_rep_single_particle_t:
Collaboration graph
[legend]

Public Member Functions

procedure initialize (this, aero_phase_set, spec_state_id)
 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 maximum_computational_particles (this)
 Returns the maximum number of computational particles.
 
procedure update_data_initialize_number (this, update_data, aero_rep_type)
 Initialize an update data number object.
 
procedure size (this)
 Get the size of the section of the camp_camp_state::camp_state_t::state_var array required for this aerosol representation.
 
procedure per_particle_size (this)
 Get the number of state variables per-particle.
 
procedure unique_names (this, phase_name, tracer_type, spec_name)
 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 (this, unique_name)
 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 (this, unique_name)
 Get the non-unique name of a species by its unique name.
 
procedure num_phase_instances (this, phase_name)
 Get the number of instances of an aerosol phase in this representation.
 
procedure num_jac_elem (this, phase_id)
 Get the number of Jacobian elements used in calculations of aerosol mass, volume, number, etc. for a particular phase.
 
procedure num_layers (this)
 Returns the number of layers.
 
procedure num_phases (this, layer)
 Returns the number of phases in a layer or overall.
 
procedure phase_state_size (this, layer, phase)
 Returns the number of state variables for a layer and phase.
 
final finalize (this)
 Finalize the aerosol representation.
 
- Public Member Functions inherited from camp_aero_rep_data::aero_rep_data_t
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

integer(kind=i_kind) state_id_start = -99999
 First state id for the representation (only used during initialization)
 
- Public Attributes inherited from camp_aero_rep_data::aero_rep_data_t
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.
 

Private Attributes

type(string_t), dimension(:), allocatable, private unique_names_
 Unique names for each instance of every chemical species in the aerosol representaiton.
 
type(string_t), dimension(:), allocatable, private layer_names_
 Layer names, ordered inner-most to outer-most.
 

Detailed Description

Single particle aerosol representation.

Time-invariant data related to a single particle aerosol representation.

Definition at line 76 of file aero_rep_single_particle.F90.

Constructor & Destructor Documentation

◆ finalize()

final camp_aero_rep_single_particle::aero_rep_single_particle_t::finalize ( type(aero_rep_single_particle_t), intent(inout)  this)
final

Finalize the aerosol representation.

Parameters
[in,out]thisAerosol representation data

Definition at line 146 of file aero_rep_single_particle.F90.

Here is the call graph for this function:

Member Function/Subroutine Documentation

◆ initialize()

procedure camp_aero_rep_single_particle::aero_rep_single_particle_t::initialize ( class(aero_rep_single_particle_t), intent(inout)  this,
type(aero_phase_data_ptr), dimension(:), intent(in), pointer  aero_phase_set,
integer(kind=i_kind), intent(in)  spec_state_id 
)

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.

Parameters
[in,out]thisAerosol representation data
[in]aero_phase_setThe set of aerosol phases
[in]spec_state_idBeginning state id for this aerosol representation in the model species state array

Definition at line 91 of file aero_rep_single_particle.F90.

◆ maximum_computational_particles()

procedure camp_aero_rep_single_particle::aero_rep_single_particle_t::maximum_computational_particles ( class(aero_rep_single_particle_t), intent(in)  this)

Returns the maximum number of computational particles.

Parameters
[in]thisAerosol representation data

Definition at line 93 of file aero_rep_single_particle.F90.

◆ num_jac_elem()

procedure camp_aero_rep_single_particle::aero_rep_single_particle_t::num_jac_elem ( class(aero_rep_single_particle_t), intent(in)  this,
integer(kind=i_kind), intent(in)  phase_id 
)

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

Returns
Number of Jacobian elements used
Parameters
[in]thisAerosol respresentation data
[in]phase_idAerosol phase id

Definition at line 138 of file aero_rep_single_particle.F90.

◆ num_layers()

procedure camp_aero_rep_single_particle::aero_rep_single_particle_t::num_layers ( class(aero_rep_single_particle_t), intent(in)  this)

Returns the number of layers.

Parameters
[in]thisAerosol representation data

Definition at line 140 of file aero_rep_single_particle.F90.

◆ num_phase_instances()

procedure camp_aero_rep_single_particle::aero_rep_single_particle_t::num_phase_instances ( class(aero_rep_single_particle_t), intent(in)  this,
character(len=*), intent(in)  phase_name 
)

Get the number of instances of an aerosol phase in this representation.

Parameters
[in]thisAerosol representation data
[in]phase_nameAerosol phase name

Definition at line 135 of file aero_rep_single_particle.F90.

◆ num_phases()

procedure camp_aero_rep_single_particle::aero_rep_single_particle_t::num_phases ( class(aero_rep_single_particle_t), intent(in)  this,
integer, intent(in), optional  layer 
)

Returns the number of phases in a layer or overall.

Parameters
[in]thisAerosol representation data
[in]layerLayer id

Definition at line 142 of file aero_rep_single_particle.F90.

◆ per_particle_size()

procedure camp_aero_rep_single_particle::aero_rep_single_particle_t::per_particle_size ( class(aero_rep_single_particle_t), intent(in)  this)

Get the number of state variables per-particle.

Calling functions can assume each particle has the same size on the state array, and that individual particle states are contiguous and arranged sequentially

Definition at line 109 of file aero_rep_single_particle.F90.

◆ phase_state_size()

procedure camp_aero_rep_single_particle::aero_rep_single_particle_t::phase_state_size ( class(aero_rep_single_particle_t), intent(in)  this,
integer, intent(in), optional  layer,
integer, intent(in), optional  phase 
)

Returns the number of state variables for a layer and phase.

Parameters
[in]thisAerosol representation data
[in]layerLayer id
[in]phasePhase id

Definition at line 144 of file aero_rep_single_particle.F90.

◆ size()

procedure camp_aero_rep_single_particle::aero_rep_single_particle_t::size ( class(aero_rep_single_particle_t), intent(in)  this)

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

For a single particle representation, the size will correspond to the the sum of the sizes of a single instance of each aerosol phase provided to aero_rep_single_particle::initialize()

Definition at line 103 of file aero_rep_single_particle.F90.

◆ spec_name()

procedure camp_aero_rep_single_particle::aero_rep_single_particle_t::spec_name ( class(aero_rep_single_particle_t), intent(in)  this,
character(len=*), intent(in)  unique_name 
)

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

Returns
Chemical species name
Parameters
[in]thisAerosol representation data
[in]unique_nameUnique name of the species in this aerosol representation

Definition at line 133 of file aero_rep_single_particle.F90.

◆ spec_state_id()

procedure camp_aero_rep_single_particle::aero_rep_single_particle_t::spec_state_id ( class(aero_rep_single_particle_t), intent(in)  this,
character(len=*), intent(in)  unique_name 
)

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 131 of file aero_rep_single_particle.F90.

◆ unique_names()

procedure camp_aero_rep_single_particle::aero_rep_single_particle_t::unique_names ( class(aero_rep_single_particle_t), intent(in)  this,
character(len=*), intent(in), optional  phase_name,
integer(kind=i_kind), intent(in), optional  tracer_type,
character(len=*), intent(in), optional  spec_name 
)

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.

For a single particle representation, the unique names will be the phase name with the species name separated by a '.'

Definition at line 117 of file aero_rep_single_particle.F90.

◆ update_data_initialize_number()

procedure camp_aero_rep_single_particle::aero_rep_single_particle_t::update_data_initialize_number ( class(aero_rep_single_particle_t), intent(inout)  this,
class(aero_rep_update_data_single_particle_number_t), intent(out)  update_data,
integer(kind=i_kind), intent(in)  aero_rep_type 
)

Initialize an update data number object.

Parameters
[in,out]thisAerosol representation to update
[out]update_dataUpdate data object
[in]aero_rep_typeAerosol representaiton id

Definition at line 95 of file aero_rep_single_particle.F90.

Member Data Documentation

◆ layer_names_

type(string_t), dimension(:), allocatable, private camp_aero_rep_single_particle::aero_rep_single_particle_t::layer_names_
private

Layer names, ordered inner-most to outer-most.

Definition at line 81 of file aero_rep_single_particle.F90.

◆ state_id_start

integer(kind=i_kind) camp_aero_rep_single_particle::aero_rep_single_particle_t::state_id_start = -99999

First state id for the representation (only used during initialization)

Definition at line 83 of file aero_rep_single_particle.F90.

◆ unique_names_

type(string_t), dimension(:), allocatable, private camp_aero_rep_single_particle::aero_rep_single_particle_t::unique_names_
private

Unique names for each instance of every chemical species in the aerosol representaiton.

Definition at line 79 of file aero_rep_single_particle.F90.


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