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

The camp_aero_rep_modal_binned_mass module. More...

Go to the source code of this file.

Data Types

interface  camp_aero_rep_modal_binned_mass::aero_rep_modal_binned_mass_t
 Modal mass aerosol representation. More...
 
type  camp_aero_rep_modal_binned_mass::aero_rep_update_data_modal_binned_mass_gmd_t
 Update GMD object. More...
 
type  camp_aero_rep_modal_binned_mass::aero_rep_update_data_modal_binned_mass_gsd_t
 Update GSD object. More...
 
interface  camp_aero_rep_modal_binned_mass::aero_rep_modal_binned_mass_create_gmd_update_data
 Interface to c aerosol representation functions. More...
 
interface  camp_aero_rep_modal_binned_mass::aero_rep_modal_binned_mass_set_gmd_update_data
 Set a new mode GMD. More...
 
interface  camp_aero_rep_modal_binned_mass::aero_rep_modal_binned_mass_create_gsd_update_data
 Allocate space for a GSD update object. More...
 
interface  camp_aero_rep_modal_binned_mass::aero_rep_modal_binned_mass_set_gsd_update_data
 Set a new mode GSD. More...
 
interface  camp_aero_rep_modal_binned_mass::aero_rep_free_update_data
 Free an update data object. More...
 

Modules

module  camp_aero_rep_modal_binned_mass
 The abstract aero_rep_modal_binned_mass_t structure and associated subroutines.
 

Macros

#define BINNED   1
 
#define MODAL   2
 
#define NUM_SECTION_   this%condensed_data_int(1)
 
#define INT_DATA_SIZE_   this%condensed_data_int(2)
 
#define REAL_DATA_SIZE_   this%condensed_data_int(3)
 
#define AERO_REP_ID_   this%condensed_data_int(4)
 
#define NUM_INT_PROP_   4
 
#define NUM_REAL_PROP_   0
 
#define NUM_ENV_PARAM_   0
 
#define MODE_INT_PROP_LOC_(x)   this%condensed_data_int(NUM_INT_PROP_+x)
 
#define MODE_REAL_PROP_LOC_(x)   this%condensed_data_int(NUM_INT_PROP_+NUM_SECTION_+x)
 
#define SECTION_TYPE_(x)   this%condensed_data_int(MODE_INT_PROP_LOC_(x))
 
#define NUM_BINS_(x)   this%condensed_data_int(MODE_INT_PROP_LOC_(x)+1)
 
#define NUM_PHASE_(x)   this%condensed_data_int(MODE_INT_PROP_LOC_(x)+2)
 
#define PHASE_STATE_ID_(x, y, b)   this%condensed_data_int(MODE_INT_PROP_LOC_(x)+2+(b-1)*NUM_PHASE_(x)+y)
 
#define PHASE_MODEL_DATA_ID_(x, y, b)   this%condensed_data_int(MODE_INT_PROP_LOC_(x)+2+NUM_BINS_(x)*NUM_PHASE_(x)+(b-1)*NUM_PHASE_(x)+y)
 
#define PHASE_NUM_JAC_ELEM_(x, y, b)   this%condensed_data_int(MODE_INT_PROP_LOC_(x)+2+2*NUM_BINS_(x)*NUM_PHASE_(x)+(b-1)*NUM_PHASE_(x)+y)
 
#define BIN_DP_(x, b)   this%condensed_data_real(MODE_REAL_PROP_LOC_(x)+(b-1)*3)
 
#define NUMBER_CONC_(x, b)   this%condensed_data_real(MODE_REAL_PROP_LOC_(x)+(b-1)*3+1)
 
#define EFFECTIVE_RADIUS_(x, b)   this%condensed_data_real(MODE_REAL_PROP_LOC_(x)+(b-1)*3+2)
 
#define PHASE_MASS_(x, y, b)   this%condensed_data_real(MODE_REAL_PROP_LOC_(x)+3*NUM_BINS_(x)+(b-1)*NUM_PHASE_(x)+y-1)
 
#define PHASE_AVG_MW_(x, y, b)   this%condensed_data_real(MODE_REAL_PROP_LOC_(x)+(3+NUM_PHASE_(x))*NUM_BINS_(x)+(b-1)*NUM_PHASE_(x)+y-1)
 

Functions/Subroutines

type(aero_rep_modal_binned_mass_t) function, pointer camp_aero_rep_modal_binned_mass::constructor ()
 Constructor for aero_rep_modal_binned_mass_t.
 
subroutine camp_aero_rep_modal_binned_mass::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.
 
logical function camp_aero_rep_modal_binned_mass::get_section_id (this, section_name, section_id)
 Get an id for a mode or bin by name for use with updates from external modules.
 
integer(kind=i_kind) function camp_aero_rep_modal_binned_mass::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.
 
type(string_t) function, dimension(:), allocatable camp_aero_rep_modal_binned_mass::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_modal_binned_mass::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_modal_binned_mass::spec_name (this, unique_name)
 Get the non-unique name of a species by its unique name.
 
integer(kind=i_kind) function camp_aero_rep_modal_binned_mass::num_phase_instances (this, phase_name)
 Get the number of instances of a specified aerosol phase.
 
integer(kind=i_kind) function camp_aero_rep_modal_binned_mass::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.
 
elemental subroutine camp_aero_rep_modal_binned_mass::finalize (this)
 Finalize the aerosol representation.
 
subroutine camp_aero_rep_modal_binned_mass::update_data_init_gmd (this, update_data, aero_rep_type)
 Initialize a GMD update object.
 
subroutine camp_aero_rep_modal_binned_mass::update_data_set_gmd (this, section_id, gmd)
 Set packed update data for mode GMD.
 
integer(kind=i_kind) function camp_aero_rep_modal_binned_mass::internal_pack_size_gmd (this, comm)
 Determine the size of a binary required to pack the reaction data.
 
subroutine camp_aero_rep_modal_binned_mass::internal_bin_pack_gmd (this, buffer, pos, comm)
 Pack the given value to the buffer, advancing position.
 
subroutine camp_aero_rep_modal_binned_mass::internal_bin_unpack_gmd (this, buffer, pos, comm)
 Unpack the given value from the buffer, advancing position.
 
elemental subroutine camp_aero_rep_modal_binned_mass::update_data_gmd_finalize (this)
 Finalize a GMD update data object.
 
subroutine camp_aero_rep_modal_binned_mass::update_data_init_gsd (this, update_data, aero_rep_type)
 Initialize a GSD update data object.
 
subroutine camp_aero_rep_modal_binned_mass::update_data_set_gsd (this, section_id, gsd)
 Set packed update data for mode GSD.
 
integer(kind=i_kind) function camp_aero_rep_modal_binned_mass::internal_pack_size_gsd (this, comm)
 Determine the size of a binary required to pack the reaction data.
 
subroutine camp_aero_rep_modal_binned_mass::internal_bin_pack_gsd (this, buffer, pos, comm)
 Pack the given value to the buffer, advancing position.
 
subroutine camp_aero_rep_modal_binned_mass::internal_bin_unpack_gsd (this, buffer, pos, comm)
 Unpack the given value from the buffer, advancing position.
 
elemental subroutine camp_aero_rep_modal_binned_mass::update_data_gsd_finalize (this)
 Finalize a GSD update data object.
 

Variables

integer(kind=i_kind), parameter, public camp_aero_rep_modal_binned_mass::update_gmd = 0
 
integer(kind=i_kind), parameter, public camp_aero_rep_modal_binned_mass::update_gsd = 1
 

Detailed Description

The camp_aero_rep_modal_binned_mass module.

Definition in file aero_rep_modal_binned_mass.F90.

Macro Definition Documentation

◆ AERO_REP_ID_

#define AERO_REP_ID_   this%condensed_data_int(4)

◆ BIN_DP_

#define BIN_DP_ (   x,
 
)    this%condensed_data_real(MODE_REAL_PROP_LOC_(x)+(b-1)*3)

◆ BINNED

#define BINNED   1

◆ EFFECTIVE_RADIUS_

#define EFFECTIVE_RADIUS_ (   x,
 
)    this%condensed_data_real(MODE_REAL_PROP_LOC_(x)+(b-1)*3+2)

◆ INT_DATA_SIZE_

#define INT_DATA_SIZE_   this%condensed_data_int(2)

◆ MODAL

#define MODAL   2

◆ MODE_INT_PROP_LOC_

#define MODE_INT_PROP_LOC_ (   x)    this%condensed_data_int(NUM_INT_PROP_+x)

◆ MODE_REAL_PROP_LOC_

#define MODE_REAL_PROP_LOC_ (   x)    this%condensed_data_int(NUM_INT_PROP_+NUM_SECTION_+x)

◆ NUM_BINS_

#define NUM_BINS_ (   x)    this%condensed_data_int(MODE_INT_PROP_LOC_(x)+1)

◆ NUM_ENV_PARAM_

#define NUM_ENV_PARAM_   0

◆ NUM_INT_PROP_

#define NUM_INT_PROP_   4

◆ NUM_PHASE_

#define NUM_PHASE_ (   x)    this%condensed_data_int(MODE_INT_PROP_LOC_(x)+2)

◆ NUM_REAL_PROP_

#define NUM_REAL_PROP_   0

◆ NUM_SECTION_

#define NUM_SECTION_   this%condensed_data_int(1)

◆ NUMBER_CONC_

#define NUMBER_CONC_ (   x,
 
)    this%condensed_data_real(MODE_REAL_PROP_LOC_(x)+(b-1)*3+1)

◆ PHASE_AVG_MW_

#define PHASE_AVG_MW_ (   x,
  y,
 
)    this%condensed_data_real(MODE_REAL_PROP_LOC_(x)+(3+NUM_PHASE_(x))*NUM_BINS_(x)+(b-1)*NUM_PHASE_(x)+y-1)

◆ PHASE_MASS_

#define PHASE_MASS_ (   x,
  y,
 
)    this%condensed_data_real(MODE_REAL_PROP_LOC_(x)+3*NUM_BINS_(x)+(b-1)*NUM_PHASE_(x)+y-1)

◆ PHASE_MODEL_DATA_ID_

#define PHASE_MODEL_DATA_ID_ (   x,
  y,
 
)    this%condensed_data_int(MODE_INT_PROP_LOC_(x)+2+NUM_BINS_(x)*NUM_PHASE_(x)+(b-1)*NUM_PHASE_(x)+y)

◆ PHASE_NUM_JAC_ELEM_

#define PHASE_NUM_JAC_ELEM_ (   x,
  y,
 
)    this%condensed_data_int(MODE_INT_PROP_LOC_(x)+2+2*NUM_BINS_(x)*NUM_PHASE_(x)+(b-1)*NUM_PHASE_(x)+y)

◆ PHASE_STATE_ID_

#define PHASE_STATE_ID_ (   x,
  y,
 
)    this%condensed_data_int(MODE_INT_PROP_LOC_(x)+2+(b-1)*NUM_PHASE_(x)+y)

◆ REAL_DATA_SIZE_

#define REAL_DATA_SIZE_   this%condensed_data_int(3)

◆ SECTION_TYPE_

#define SECTION_TYPE_ (   x)    this%condensed_data_int(MODE_INT_PROP_LOC_(x))