CAMP 1.0.0
Chemistry Across Multiple Phases
|
Abstract aerosol representation data type. More...
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. | |
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.
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.
[in] | this | Aerosol representation data |
[in,out] | buffer | Memory buffer |
[in,out] | pos | Current buffer position |
[in] | comm | MPI communicator |
Definition at line 133 of file aero_rep_data.F90.
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.
[out] | this | Aerosol representation data |
[in,out] | buffer | Memory buffer |
[in,out] | pos | Current buffer position |
[in] | comm | MPI communicator |
Definition at line 135 of file aero_rep_data.F90.
|
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.
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.
[in,out] | this | Aerosol representation data |
[in] | json | JSON core |
[in] | j_obj | JSON object |
Definition at line 124 of file aero_rep_data.F90.
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.
[in] | this | Aerosol representation data |
Definition at line 126 of file aero_rep_data.F90.
|
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.
|
pure virtual |
Get the number of instances of an aerosol phase.
Definition at line 119 of file aero_rep_data.F90.
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.
[in] | this | Aerosol representation data |
[in] | comm | MPI communicator |
Definition at line 131 of file aero_rep_data.F90.
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.
[in] | this | Aerosol representation data |
[in] | phase_name | Aerosol phase name |
[in] | is_at_surface | Indicates if aerosol phase is at the surface of particle |
Definition at line 129 of file aero_rep_data.F90.
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.
[in] | this | Aerosol representation data |
file_unit | File unit for output |
Definition at line 137 of file aero_rep_data.F90.
|
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.
|
pure virtual |
Get the non-unique name of a species by its unique name.
Definition at line 117 of file aero_rep_data.F90.
|
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.
|
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.
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.
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.
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.
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.
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.
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.
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.