CAMP 1.0.0
Chemistry Across Multiple Phases
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

type  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)
 
#define LAYER_PHASE_END_(l)
 
#define TOTAL_NUM_PHASES_   (LAYER_PHASE_END_(NUM_LAYERS_))
 
#define NUM_PHASES_(l)
 
#define PHASE_STATE_ID_(l, p)
 
#define PHASE_MODEL_DATA_ID_(l, p)
 
#define PHASE_NUM_JAC_ELEM_(l, p)
 

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, phase_is_at_surface)
 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, is_at_surface)
 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.
 
subroutine camp_aero_rep_single_particle::finalize (this)
 Finalize the aerosol representation.
 
subroutine camp_aero_rep_single_particle::finalize_array (this_array)
 Finalize the aerosol representation array.
 
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.
 
subroutine camp_aero_rep_single_particle::update_data_number_finalize (this)
 Finalize a number update data object.
 
subroutine camp_aero_rep_single_particle::update_data_number_finalize_array (this)
 Finalize an array of number update data objects.
 

Variables

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

Detailed Description

Macro Definition Documentation

◆ AERO_REP_ID_

#define AERO_REP_ID_   this%condensed_data_int(2)

◆ LAYER_PHASE_END_

#define LAYER_PHASE_END_ ( l)
Value:
1this%condensed_data_int(num_int_prop_+num_layers_+l)

◆ LAYER_PHASE_START_

#define LAYER_PHASE_START_ ( l)
Value:
1this%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)
Value:
1(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,
p )
Value:
1this%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,
p )
Value:
1this%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,
p )
Value:
1this%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_))