CAMP 1.0.0
Chemistry Across Multiple Phases
|
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... | |
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.
|
private |
Add an aerosol phase to the model.
Definition at line 234 of file camp_core.F90.
|
private |
Add an aerosol representation to the model.
Definition at line 236 of file camp_core.F90.
|
private |
Add a mechanism to the model.
Definition at line 238 of file camp_core.F90.
|
private |
Add a sub-model to the model.
Definition at line 240 of file camp_core.F90.
|
private |
Update model data.
Definition at line 212 of file camp_core.F90.
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.
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.
|
final |
Finalize the core.
Definition at line 230 of file camp_core.F90.
procedure camp_camp_core::camp_core_t::free_solver |
Free the solver.
Definition at line 202 of file camp_core.F90.
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.
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.
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.
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.
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.
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.
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.
procedure camp_camp_core::camp_core_t::initialize |
Initialize the model.
Definition at line 168 of file camp_core.F90.
|
private |
Initialize an update_data object.
Definition at line 204 of file camp_core.F90.
|
private |
Definition at line 205 of file camp_core.F90.
|
private |
Definition at line 206 of file camp_core.F90.
generic camp_camp_core::camp_core_t::initialize_update_object |
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.
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.
procedure camp_camp_core::camp_core_t::load |
Load model data from a configuration file.
Definition at line 166 of file camp_core.F90.
procedure camp_camp_core::camp_core_t::load_files |
Load a set of configuration files.
Definition at line 164 of file camp_core.F90.
generic camp_camp_core::camp_core_t::new_state |
procedure camp_camp_core::camp_core_t::new_state_multi_cell |
Definition at line 189 of file camp_core.F90.
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.
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.
procedure camp_camp_core::camp_core_t::print |
Print the core data.
Definition at line 228 of file camp_core.F90.
|
private |
Definition at line 213 of file camp_core.F90.
procedure camp_camp_core::camp_core_t::solve |
Run the chemical mechanisms.
Definition at line 220 of file camp_core.F90.
procedure camp_camp_core::camp_core_t::solver_initialize |
Initialize the solver.
Definition at line 200 of file camp_core.F90.
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.
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.
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.
|
private |
Definition at line 214 of file camp_core.F90.
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.
generic camp_camp_core::camp_core_t::update_data |
Definition at line 215 of file camp_core.F90.
real(kind=dp), dimension(:), allocatable camp_camp_core::camp_core_t::abs_tol |
Definition at line 149 of file camp_core.F90.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
integer(kind=i_kind), dimension(:), allocatable camp_camp_core::camp_core_t::var_type |
Definition at line 151 of file camp_core.F90.