CAMP 1.0.0
Chemistry Across Multiple Phases
Public Member Functions | Public Attributes | Private Member Functions | List of all members
camp_camp_core::camp_core_t Interface Reference

Part-MC model data. More...

Public Member Functions

procedure load_files
 Load a set of configuration files. More...
 
procedure load
 Load model data from a configuration file. More...
 
procedure initialize
 Initialize the model. More...
 
procedure is_initialized
 Indicate whether the core has been initialized. More...
 
procedure is_solver_initialized
 Indicate whether the solver has been initialized. More...
 
procedure get_aero_phase
 Get a pointer to an aerosol phase by name. More...
 
procedure get_aero_rep
 Get a pointer to an aerosol representation by name. More...
 
procedure get_chem_spec_data
 Get a pointer to the set of chemical species. More...
 
procedure get_mechanism
 Get a pointer to a mechanism by name. More...
 
procedure get_sub_model
 Get a pointer to a sub-model by name. More...
 
procedure get_rel_tol
 Get the relative tolerance for the solver. More...
 
procedure get_abs_tol
 Get the absolute tolerance for a species on the state array. More...
 
procedure new_state_one_cell
 Get a new model state variable. More...
 
procedure new_state_multi_cell
 
generic new_state => new_state_one_cell, new_state_multi_cell
 
procedure state_size
 Get the size of the state array. More...
 
procedure state_size_per_cell
 Get the size of the state array per grid cell. More...
 
procedure unique_names
 Get an array of unique names for all species on the state array. More...
 
procedure spec_state_id
 Get the index of a species on the state array by its unique name. More...
 
procedure solver_initialize
 Initialize the solver. More...
 
procedure free_solver
 Free the solver. More...
 
generic initialize_update_object => initialize_aero_rep_update_object, initialize_rxn_update_object, initialize_sub_model_update_object
 
generic update_data => aero_rep_update_data, rxn_update_data, sub_model_update_data
 
procedure solve
 Run the chemical mechanisms. More...
 
procedure pack_size
 Determine the number of bytes required to pack the variable. More...
 
procedure bin_pack
 Pack the given variable into a buffer, advancing position. More...
 
procedure bin_unpack
 Unpack the given variable from a buffer, advancing position. More...
 
procedure print => do_print
 Print the core data. More...
 
final finalize
 Finalize the core. More...
 

Public Attributes

type(mechanism_data_ptr), dimension(:), pointer, public mechanism => null()
 Chemical mechanisms FIXME set up an iterator for external modules to use and make all data members private. More...
 
type(chem_spec_data_t), pointer chem_spec_data => null()
 Chemical species data. More...
 
type(sub_model_data_ptr), dimension(:), pointer sub_model => null()
 Sub models. More...
 
type(aero_rep_data_ptr), dimension(:), pointer, public aero_rep => null()
 Aerosol representations. More...
 
type(aero_phase_data_ptr), dimension(:), pointer aero_phase => null()
 Aerosol phases. More...
 
integer(kind=i_kind) size_state_per_cell
 Size of the state array per grid cell. More...
 
integer(kind=i_kind) n_cells = 1
 Number of cells to compute. More...
 
real(kind=dp), dimension(:), allocatable init_state
 Initial state values. More...
 
logical split_gas_aero = .false.
 Flag to split gas- and aerosol-phase reactions (for large aerosol representations, like single-particle) More...
 
real(kind=dp) rel_tol = 0.0
 Relative integration tolerance. More...
 
real(kind=dp), dimension(:), allocatable abs_tol
 
integer(kind=i_kind), dimension(:), allocatable var_type
 
type(camp_solver_data_t), pointer, public solver_data_gas => null()
 Solver data (gas-phase reactions) More...
 
type(camp_solver_data_t), pointer, public solver_data_aero => null()
 Solver data (aerosol-phase reactions) More...
 
type(camp_solver_data_t), pointer, public solver_data_gas_aero => null()
 Solver data (mixed gas- and aerosol-phase reactions) More...
 
logical core_is_initialized = .false.
 Flag indicating the model data has been initialized. More...
 
logical solver_is_initialized = .false.
 Flag indicating the solver has been initialized. More...
 

Private Member Functions

procedure, private initialize_aero_rep_update_object
 Initialize an update_data object. More...
 
procedure, private initialize_rxn_update_object
 
procedure, private initialize_sub_model_update_object
 
procedure, private aero_rep_update_data
 Update model data. More...
 
procedure, private rxn_update_data
 
procedure, private sub_model_update_data
 
procedure, private add_aero_phase
 Add an aerosol phase to the model. More...
 
procedure, private add_aero_rep
 Add an aerosol representation to the model. More...
 
procedure, private add_mechanism
 Add a mechanism to the model. More...
 
procedure, private add_sub_model
 Add a sub-model to the model. More...
 

Detailed Description

Part-MC model data.

Constructor for camp_core_t.

Contains all time-invariant data for a Part-MC model run.

Definition at line 122 of file camp_core.F90.

Member Function/Subroutine Documentation

◆ add_aero_phase()

procedure, private camp_camp_core::camp_core_t::add_aero_phase
private

Add an aerosol phase to the model.

Definition at line 234 of file camp_core.F90.

◆ add_aero_rep()

procedure, private camp_camp_core::camp_core_t::add_aero_rep
private

Add an aerosol representation to the model.

Definition at line 236 of file camp_core.F90.

◆ add_mechanism()

procedure, private camp_camp_core::camp_core_t::add_mechanism
private

Add a mechanism to the model.

Definition at line 238 of file camp_core.F90.

◆ add_sub_model()

procedure, private camp_camp_core::camp_core_t::add_sub_model
private

Add a sub-model to the model.

Definition at line 240 of file camp_core.F90.

◆ aero_rep_update_data()

procedure, private camp_camp_core::camp_core_t::aero_rep_update_data
private

Update model data.

Definition at line 212 of file camp_core.F90.

◆ bin_pack()

procedure camp_camp_core::camp_core_t::bin_pack

Pack the given variable into a buffer, advancing position.

Definition at line 224 of file camp_core.F90.

◆ bin_unpack()

procedure camp_camp_core::camp_core_t::bin_unpack

Unpack the given variable from a buffer, advancing position.

Definition at line 226 of file camp_core.F90.

◆ finalize()

final camp_camp_core::camp_core_t::finalize
final

Finalize the core.

Definition at line 230 of file camp_core.F90.

Here is the call graph for this function:

◆ free_solver()

procedure camp_camp_core::camp_core_t::free_solver

Free the solver.

Definition at line 202 of file camp_core.F90.

◆ get_abs_tol()

procedure camp_camp_core::camp_core_t::get_abs_tol

Get the absolute tolerance for a species on the state array.

Definition at line 186 of file camp_core.F90.

◆ get_aero_phase()

procedure camp_camp_core::camp_core_t::get_aero_phase

Get a pointer to an aerosol phase by name.

Definition at line 174 of file camp_core.F90.

◆ get_aero_rep()

procedure camp_camp_core::camp_core_t::get_aero_rep

Get a pointer to an aerosol representation by name.

Definition at line 176 of file camp_core.F90.

◆ get_chem_spec_data()

procedure camp_camp_core::camp_core_t::get_chem_spec_data

Get a pointer to the set of chemical species.

Definition at line 178 of file camp_core.F90.

◆ get_mechanism()

procedure camp_camp_core::camp_core_t::get_mechanism

Get a pointer to a mechanism by name.

Definition at line 180 of file camp_core.F90.

◆ get_rel_tol()

procedure camp_camp_core::camp_core_t::get_rel_tol

Get the relative tolerance for the solver.

Definition at line 184 of file camp_core.F90.

◆ get_sub_model()

procedure camp_camp_core::camp_core_t::get_sub_model

Get a pointer to a sub-model by name.

Definition at line 182 of file camp_core.F90.

◆ initialize()

procedure camp_camp_core::camp_core_t::initialize

Initialize the model.

Definition at line 168 of file camp_core.F90.

◆ initialize_aero_rep_update_object()

procedure, private camp_camp_core::camp_core_t::initialize_aero_rep_update_object
private

Initialize an update_data object.

Definition at line 204 of file camp_core.F90.

◆ initialize_rxn_update_object()

procedure, private camp_camp_core::camp_core_t::initialize_rxn_update_object
private

Definition at line 205 of file camp_core.F90.

◆ initialize_sub_model_update_object()

procedure, private camp_camp_core::camp_core_t::initialize_sub_model_update_object
private

Definition at line 206 of file camp_core.F90.

◆ initialize_update_object()

generic camp_camp_core::camp_core_t::initialize_update_object

Definition at line 207 of file camp_core.F90.

Here is the call graph for this function:

◆ is_initialized()

procedure camp_camp_core::camp_core_t::is_initialized

Indicate whether the core has been initialized.

Definition at line 170 of file camp_core.F90.

◆ is_solver_initialized()

procedure camp_camp_core::camp_core_t::is_solver_initialized

Indicate whether the solver has been initialized.

Definition at line 172 of file camp_core.F90.

◆ load()

procedure camp_camp_core::camp_core_t::load

Load model data from a configuration file.

Definition at line 166 of file camp_core.F90.

◆ load_files()

procedure camp_camp_core::camp_core_t::load_files

Load a set of configuration files.

Definition at line 164 of file camp_core.F90.

◆ new_state()

generic camp_camp_core::camp_core_t::new_state

Definition at line 190 of file camp_core.F90.

Here is the call graph for this function:

◆ new_state_multi_cell()

procedure camp_camp_core::camp_core_t::new_state_multi_cell

Definition at line 189 of file camp_core.F90.

◆ new_state_one_cell()

procedure camp_camp_core::camp_core_t::new_state_one_cell

Get a new model state variable.

Definition at line 188 of file camp_core.F90.

◆ pack_size()

procedure camp_camp_core::camp_core_t::pack_size

Determine the number of bytes required to pack the variable.

Definition at line 222 of file camp_core.F90.

◆ print()

procedure camp_camp_core::camp_core_t::print

Print the core data.

Definition at line 228 of file camp_core.F90.

◆ rxn_update_data()

procedure, private camp_camp_core::camp_core_t::rxn_update_data
private

Definition at line 213 of file camp_core.F90.

◆ solve()

procedure camp_camp_core::camp_core_t::solve

Run the chemical mechanisms.

Definition at line 220 of file camp_core.F90.

◆ solver_initialize()

procedure camp_camp_core::camp_core_t::solver_initialize

Initialize the solver.

Definition at line 200 of file camp_core.F90.

◆ spec_state_id()

procedure camp_camp_core::camp_core_t::spec_state_id

Get the index of a species on the state array by its unique name.

Definition at line 198 of file camp_core.F90.

◆ state_size()

procedure camp_camp_core::camp_core_t::state_size

Get the size of the state array.

Definition at line 192 of file camp_core.F90.

◆ state_size_per_cell()

procedure camp_camp_core::camp_core_t::state_size_per_cell

Get the size of the state array per grid cell.

Definition at line 194 of file camp_core.F90.

◆ sub_model_update_data()

procedure, private camp_camp_core::camp_core_t::sub_model_update_data
private

Definition at line 214 of file camp_core.F90.

◆ unique_names()

procedure camp_camp_core::camp_core_t::unique_names

Get an array of unique names for all species on the state array.

Definition at line 196 of file camp_core.F90.

◆ update_data()

generic camp_camp_core::camp_core_t::update_data

Definition at line 215 of file camp_core.F90.

Member Data Documentation

◆ abs_tol

real(kind=dp), dimension(:), allocatable camp_camp_core::camp_core_t::abs_tol

Definition at line 149 of file camp_core.F90.

◆ aero_phase

type(aero_phase_data_ptr), dimension(:), pointer camp_camp_core::camp_core_t::aero_phase => null()

Aerosol phases.

Definition at line 135 of file camp_core.F90.

◆ aero_rep

type(aero_rep_data_ptr), dimension(:), pointer, public camp_camp_core::camp_core_t::aero_rep => null()

Aerosol representations.

Definition at line 133 of file camp_core.F90.

◆ chem_spec_data

type(chem_spec_data_t), pointer camp_camp_core::camp_core_t::chem_spec_data => null()

Chemical species data.

Definition at line 129 of file camp_core.F90.

◆ core_is_initialized

logical camp_camp_core::camp_core_t::core_is_initialized = .false.

Flag indicating the model data has been initialized.

Definition at line 159 of file camp_core.F90.

◆ init_state

real(kind=dp), dimension(:), allocatable camp_camp_core::camp_core_t::init_state

Initial state values.

Definition at line 141 of file camp_core.F90.

◆ mechanism

type(mechanism_data_ptr), dimension(:), pointer, public camp_camp_core::camp_core_t::mechanism => null()

Chemical mechanisms FIXME set up an iterator for external modules to use and make all data members private.

Definition at line 127 of file camp_core.F90.

◆ n_cells

integer(kind=i_kind) camp_camp_core::camp_core_t::n_cells = 1

Number of cells to compute.

Definition at line 139 of file camp_core.F90.

◆ rel_tol

real(kind=dp) camp_camp_core::camp_core_t::rel_tol = 0.0

Relative integration tolerance.

Definition at line 146 of file camp_core.F90.

◆ size_state_per_cell

integer(kind=i_kind) camp_camp_core::camp_core_t::size_state_per_cell

Size of the state array per grid cell.

Definition at line 137 of file camp_core.F90.

◆ solver_data_aero

type(camp_solver_data_t), pointer, public camp_camp_core::camp_core_t::solver_data_aero => null()

Solver data (aerosol-phase reactions)

Definition at line 155 of file camp_core.F90.

◆ solver_data_gas

type(camp_solver_data_t), pointer, public camp_camp_core::camp_core_t::solver_data_gas => null()

Solver data (gas-phase reactions)

Definition at line 153 of file camp_core.F90.

◆ solver_data_gas_aero

type(camp_solver_data_t), pointer, public camp_camp_core::camp_core_t::solver_data_gas_aero => null()

Solver data (mixed gas- and aerosol-phase reactions)

Definition at line 157 of file camp_core.F90.

◆ solver_is_initialized

logical camp_camp_core::camp_core_t::solver_is_initialized = .false.

Flag indicating the solver has been initialized.

Definition at line 161 of file camp_core.F90.

◆ split_gas_aero

logical camp_camp_core::camp_core_t::split_gas_aero = .false.

Flag to split gas- and aerosol-phase reactions (for large aerosol representations, like single-particle)

Definition at line 144 of file camp_core.F90.

◆ sub_model

type(sub_model_data_ptr), dimension(:), pointer camp_camp_core::camp_core_t::sub_model => null()

Sub models.

Definition at line 131 of file camp_core.F90.

◆ var_type

integer(kind=i_kind), dimension(:), allocatable camp_camp_core::camp_core_t::var_type

Definition at line 151 of file camp_core.F90.


The documentation for this interface was generated from the following file: