CAMP 1.0.0
Chemistry Across Multiple Phases
Data Types | Modules | Macros | Functions/Subroutines | Variables
aero_rep_single_particle.F90 File Reference

The camp_aero_rep_single_particle module. More...

Go to the source code of this file.

Data Types

interface  camp_aero_rep_single_particle::aero_rep_single_particle_t
 Single particle aerosol representation. More...
 
type  camp_aero_rep_single_particle::aero_rep_update_data_single_particle_number_t
 Single particle update number concentration object. More...
 
interface  camp_aero_rep_single_particle::aero_rep_single_particle_create_number_update_data
 Interface to c aerosol representation functions. More...
 
interface  camp_aero_rep_single_particle::aero_rep_single_particle_set_number_update_data__n_m3
 Set a new particle number concentration. More...
 
interface  camp_aero_rep_single_particle::aero_rep_free_update_data
 Free an update data object. More...
 

Modules

module  camp_aero_rep_single_particle
 The aero_rep_single_particle_t type and associated subroutines.
 

Macros

#define NUM_LAYERS_   this%condensed_data_int(1)
 
#define AERO_REP_ID_   this%condensed_data_int(2)
 
#define MAX_PARTICLES_   this%condensed_data_int(3)
 
#define PARTICLE_STATE_SIZE_   this%condensed_data_int(4)
 
#define NUM_INT_PROP_   4
 
#define NUM_REAL_PROP_   0
 
#define NUM_ENV_PARAM_PER_PARTICLE_   1
 
#define LAYER_PHASE_START_(l)   this%condensed_data_int(NUM_INT_PROP_+l)
 
#define LAYER_PHASE_END_(l)   this%condensed_data_int(NUM_INT_PROP_+NUM_LAYERS_+l)
 
#define TOTAL_NUM_PHASES_   (LAYER_PHASE_END_(NUM_LAYERS_))
 
#define NUM_PHASES_(l)   (LAYER_PHASE_END_(l)-LAYER_PHASE_START_(l)+1)
 
#define PHASE_STATE_ID_(l, p)   this%condensed_data_int(NUM_INT_PROP_+2*NUM_LAYERS_+LAYER_PHASE_START_(l)+p-1)
 
#define PHASE_MODEL_DATA_ID_(l, p)   this%condensed_data_int(NUM_INT_PROP_+2*NUM_LAYERS_+TOTAL_NUM_PHASES_+LAYER_PHASE_START_(l)+p-1)
 
#define PHASE_NUM_JAC_ELEM_(l, p)   this%condensed_data_int(NUM_INT_PROP_+2*NUM_LAYERS_+2*TOTAL_NUM_PHASES_+LAYER_PHASE_START_(l)+p-1)
 

Functions/Subroutines

type(aero_rep_single_particle_t) function, pointer camp_aero_rep_single_particle::constructor ()
 Constructor for aero_rep_single_particle_t.
 
subroutine camp_aero_rep_single_particle::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 camp_aero_rep_single_particle::maximum_computational_particles (this)
 Returns the maximum nunmber of computational particles.
 
integer(kind=i_kind) function camp_aero_rep_single_particle::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 camp_aero_rep_single_particle::per_particle_size (this)
 Get the number of state variables per-particle.
 
type(string_t) function, dimension(:), allocatable camp_aero_rep_single_particle::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 camp_aero_rep_single_particle::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 camp_aero_rep_single_particle::spec_name (this, unique_name)
 Get the non-unique name of a species in this aerosol representation by id.
 
integer(kind=i_kind) function camp_aero_rep_single_particle::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 camp_aero_rep_single_particle::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 camp_aero_rep_single_particle::num_layers (this)
 Returns the number of layers.
 
integer function camp_aero_rep_single_particle::num_phases (this, layer)
 Returns the number of phases in a layer or overall.
 
integer function camp_aero_rep_single_particle::phase_state_size (this, layer, phase)
 Returns the number of state variables for a layer and phase.
 
elemental subroutine camp_aero_rep_single_particle::finalize (this)
 Finalize the aerosol representation.
 
subroutine camp_aero_rep_single_particle::update_data_init_number (this, update_data, aero_rep_type)
 Initialize an update data object.
 
integer function, dimension(:), allocatable, public camp_aero_rep_single_particle::ordered_layer_ids (layer_names_unordered, cover_names_unordered)
 Order layer array from inner most layer to outermost.
 
subroutine camp_aero_rep_single_particle::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 camp_aero_rep_single_particle::internal_pack_size_number (this, comm)
 Determine the size of a binary required to pack the reaction data.
 
subroutine camp_aero_rep_single_particle::internal_bin_pack_number (this, buffer, pos, comm)
 Pack the given value to the buffer, advancing position.
 
subroutine camp_aero_rep_single_particle::internal_bin_unpack_number (this, buffer, pos, comm)
 Unpack the given value from the buffer, advancing position.
 
elemental subroutine camp_aero_rep_single_particle::update_data_number_finalize (this)
 Finalize a number update data object.
 

Variables

integer(kind=i_kind), parameter, public camp_aero_rep_single_particle::update_number_conc = 0
 

Detailed Description

The camp_aero_rep_single_particle module.

Definition in file aero_rep_single_particle.F90.

Macro Definition Documentation

◆ AERO_REP_ID_

#define AERO_REP_ID_   this%condensed_data_int(2)

◆ LAYER_PHASE_END_

#define LAYER_PHASE_END_ (   l)    this%condensed_data_int(NUM_INT_PROP_+NUM_LAYERS_+l)

◆ LAYER_PHASE_START_

#define LAYER_PHASE_START_ (   l)    this%condensed_data_int(NUM_INT_PROP_+l)

◆ MAX_PARTICLES_

#define MAX_PARTICLES_   this%condensed_data_int(3)

◆ NUM_ENV_PARAM_PER_PARTICLE_

#define NUM_ENV_PARAM_PER_PARTICLE_   1

◆ NUM_INT_PROP_

#define NUM_INT_PROP_   4

◆ NUM_LAYERS_

#define NUM_LAYERS_   this%condensed_data_int(1)

◆ NUM_PHASES_

#define NUM_PHASES_ (   l)    (LAYER_PHASE_END_(l)-LAYER_PHASE_START_(l)+1)

◆ NUM_REAL_PROP_

#define NUM_REAL_PROP_   0

◆ PARTICLE_STATE_SIZE_

#define PARTICLE_STATE_SIZE_   this%condensed_data_int(4)

◆ PHASE_MODEL_DATA_ID_

#define PHASE_MODEL_DATA_ID_ (   l,
 
)    this%condensed_data_int(NUM_INT_PROP_+2*NUM_LAYERS_+TOTAL_NUM_PHASES_+LAYER_PHASE_START_(l)+p-1)

◆ PHASE_NUM_JAC_ELEM_

#define PHASE_NUM_JAC_ELEM_ (   l,
 
)    this%condensed_data_int(NUM_INT_PROP_+2*NUM_LAYERS_+2*TOTAL_NUM_PHASES_+LAYER_PHASE_START_(l)+p-1)

◆ PHASE_STATE_ID_

#define PHASE_STATE_ID_ (   l,
 
)    this%condensed_data_int(NUM_INT_PROP_+2*NUM_LAYERS_+LAYER_PHASE_START_(l)+p-1)

◆ TOTAL_NUM_PHASES_

#define TOTAL_NUM_PHASES_   (LAYER_PHASE_END_(NUM_LAYERS_))