CAMP 1.0.0
Chemistry Across Multiple Phases
|
The aero_rep_single_particle_t type and associated subroutines. More...
Data Types | |
interface | aero_rep_free_update_data |
Free an update data object. More... | |
interface | aero_rep_single_particle_create_number_update_data |
Interface to c aerosol representation functions. More... | |
interface | aero_rep_single_particle_set_number_update_data__n_m3 |
Set a new particle number concentration. More... | |
interface | aero_rep_single_particle_t |
Single particle aerosol representation. More... | |
type | aero_rep_update_data_single_particle_number_t |
Single particle update number concentration object. More... | |
Functions/Subroutines | |
type(aero_rep_single_particle_t) function, pointer | constructor () |
Constructor for aero_rep_single_particle_t. | |
subroutine | 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. | |
integer(kind=i_kind) function | maximum_computational_particles (this) |
Returns the maximum nunmber of computational particles. | |
integer(kind=i_kind) function | get_size (this) |
Get the size of the section of the camp_camp_state::camp_state_t::state_var array required for this aerosol representation. | |
integer(kind=i_kind) function | per_particle_size (this) |
Get the number of state variables per-particle. | |
type(string_t) function, dimension(:), allocatable | 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. | |
integer(kind=i_kind) function | 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: | |
character(len=:) function, allocatable | spec_name (this, unique_name) |
Get the non-unique name of a species in this aerosol representation by id. | |
integer(kind=i_kind) function | num_phase_instances (this, phase_name) |
Get the number of instances of a specified aerosol phase. In the single particle representation with layers, a phase can exist in multiple layers in one particle. | |
integer(kind=i_kind) function | 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. | |
integer function | num_layers (this) |
Returns the number of layers. | |
integer function | num_phases (this, layer) |
Returns the number of phases in a layer or overall. | |
integer function | phase_state_size (this, layer, phase) |
Returns the number of state variables for a layer and phase. | |
elemental subroutine | finalize (this) |
Finalize the aerosol representation. | |
subroutine | update_data_init_number (this, update_data, aero_rep_type) |
Initialize an update data object. | |
integer function, dimension(:), allocatable, public | ordered_layer_ids (layer_names_unordered, cover_names_unordered) |
Order layer array from inner most layer to outermost. | |
subroutine | update_data_set_number__n_m3 (this, particle_id, number_conc) |
Set packed update data for particle number (#/m3) for a particular computational particle. | |
integer(kind=i_kind) function | internal_pack_size_number (this, comm) |
Determine the size of a binary required to pack the reaction data. | |
subroutine | internal_bin_pack_number (this, buffer, pos, comm) |
Pack the given value to the buffer, advancing position. | |
subroutine | internal_bin_unpack_number (this, buffer, pos, comm) |
Unpack the given value from the buffer, advancing position. | |
elemental subroutine | update_data_number_finalize (this) |
Finalize a number update data object. | |
Variables | |
integer(kind=i_kind), parameter, public | update_number_conc = 0 |
The aero_rep_single_particle_t type and associated subroutines.
|
private |
Constructor for aero_rep_single_particle_t.
Definition at line 217 of file aero_rep_single_particle.F90.
|
private |
Finalize the aerosol representation.
[in,out] | this | Aerosol representation data |
Definition at line 766 of file aero_rep_single_particle.F90.
|
private |
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()
[in] | this | Aerosol representation data |
Definition at line 449 of file aero_rep_single_particle.F90.
|
private |
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 234 of file aero_rep_single_particle.F90.
|
private |
Pack the given value to the buffer, advancing position.
[in] | this | Aerosol representation update data |
[in,out] | buffer | Memory buffer |
[in,out] | pos | Current buffer position |
[in] | comm | MPI communicator |
Definition at line 912 of file aero_rep_single_particle.F90.
|
private |
Unpack the given value from the buffer, advancing position.
[in,out] | this | Aerosol representation update data |
[in,out] | buffer | Memory buffer |
[in,out] | pos | Current buffer position |
[in] | comm | MPI communicator |
Definition at line 940 of file aero_rep_single_particle.F90.
|
private |
Determine the size of a binary required to pack the reaction data.
[in] | this | Aerosol representation update data |
[in] | comm | MPI communicator |
Definition at line 894 of file aero_rep_single_particle.F90.
|
private |
Returns the maximum nunmber of computational particles.
[in] | this | Aerosol representation data |
Definition at line 431 of file aero_rep_single_particle.F90.
|
private |
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 667 of file aero_rep_single_particle.F90.
|
private |
Returns the number of layers.
[in] | this | Aerosol representation data |
Definition at line 694 of file aero_rep_single_particle.F90.
|
private |
Get the number of instances of a specified aerosol phase. In the single particle representation with layers, a phase can exist in multiple layers in one particle.
[in] | this | Aerosol representation data |
[in] | phase_name | Aerosol phase name |
Definition at line 641 of file aero_rep_single_particle.F90.
|
private |
Returns the number of phases in a layer or overall.
[in] | this | Aerosol representation data |
[in] | layer | Layer id |
Definition at line 706 of file aero_rep_single_particle.F90.
integer function, dimension(:), allocatable, public camp_aero_rep_single_particle::ordered_layer_ids | ( | type(string_t), dimension(:), intent(in) | layer_names_unordered, |
type(string_t), dimension(:), intent(in) | cover_names_unordered | ||
) |
Order layer array from inner most layer to outermost.
[in] | layer_names_unordered | Layer names in original order |
[in] | cover_names_unordered | Name of "covered" layer for each layer in layer_name_unordered |
Definition at line 820 of file aero_rep_single_particle.F90.
|
private |
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
[in] | this | Aerosol representation data |
Definition at line 467 of file aero_rep_single_particle.F90.
|
private |
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 724 of file aero_rep_single_particle.F90.
|
private |
Get the non-unique name of a species in this aerosol representation by id.
[in] | this | Aerosol representation data |
[in] | unique_name | Unique name of the species in this aerosol representation |
Definition at line 617 of file aero_rep_single_particle.F90.
|
private |
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.
[in] | this | Aerosol representation data |
[in] | unique_name | Unique name |
Definition at line 591 of file aero_rep_single_particle.F90.
|
private |
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 a 'P' followed by the computational particle number, a '.', the phase name, another '.', and the species name.
[in] | this | Aerosol representation data |
[in] | phase_name | Aerosol phase name |
[in] | tracer_type | Aerosol-phase species tracer type |
[in] | spec_name | Aerosol-phase species name |
Definition at line 488 of file aero_rep_single_particle.F90.
|
private |
Initialize an update data object.
[in,out] | this | Aerosol representation to update |
[out] | update_data | Update data object |
[in] | aero_rep_type | Aerosol representaiton id |
Definition at line 790 of file aero_rep_single_particle.F90.
|
private |
Finalize a number update data object.
[in,out] | this | Update data object to free |
Definition at line 969 of file aero_rep_single_particle.F90.
|
private |
Set packed update data for particle number (#/m3) for a particular computational particle.
[in,out] | this | Update data |
[in] | particle_id | Computational particle index |
[in] | number_conc | Updated number |
Definition at line 869 of file aero_rep_single_particle.F90.
integer(kind=i_kind), parameter, public camp_aero_rep_single_particle::update_number_conc = 0 |
Definition at line 67 of file aero_rep_single_particle.F90.