CAMP 1.0.0
Chemistry Across Multiple Phases
|
Single particle aerosol representation. More...
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. | |
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.
|
final |
Finalize the aerosol representation.
[in,out] | this | Aerosol representation data |
Definition at line 146 of file aero_rep_single_particle.F90.
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.
[in,out] | this | Aerosol representation data |
[in] | aero_phase_set | The set of aerosol phases |
[in] | spec_state_id | Beginning state id for this aerosol representation in the model species state array |
Definition at line 91 of file aero_rep_single_particle.F90.
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.
[in] | this | Aerosol representation data |
Definition at line 93 of file aero_rep_single_particle.F90.
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.
[in] | this | Aerosol respresentation data |
[in] | phase_id | Aerosol phase id |
Definition at line 138 of file aero_rep_single_particle.F90.
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.
[in] | this | Aerosol representation data |
Definition at line 140 of file aero_rep_single_particle.F90.
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.
[in] | this | Aerosol representation data |
[in] | phase_name | Aerosol phase name |
Definition at line 135 of file aero_rep_single_particle.F90.
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.
[in] | this | Aerosol representation data |
[in] | layer | Layer id |
Definition at line 142 of file aero_rep_single_particle.F90.
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.
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.
[in] | this | Aerosol representation data |
[in] | layer | Layer id |
[in] | phase | Phase id |
Definition at line 144 of file aero_rep_single_particle.F90.
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.
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.
[in] | this | Aerosol representation data |
[in] | unique_name | Unique name of the species in this aerosol representation |
Definition at line 133 of file aero_rep_single_particle.F90.
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.
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.
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.
[in,out] | this | Aerosol representation to update |
[out] | update_data | Update data object |
[in] | aero_rep_type | Aerosol representaiton id |
Definition at line 95 of file aero_rep_single_particle.F90.
|
private |
Layer names, ordered inner-most to outer-most.
Definition at line 81 of file aero_rep_single_particle.F90.
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.
|
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.