CAMP 1.0.0
Chemistry Across Multiple Phases
Data Types | Functions/Subroutines | Variables
camp_rxn_factory Module Reference

The abstract rxn_factory_t structure and associated subroutines. More...

Data Types

type  rxn_factory_t
 Factory type for chemical reactions. More...
 

Functions/Subroutines

class(rxn_data_t) function, pointer create (this, type_name)
 Create a new chemical reaction by type name.
 
class(rxn_data_t) function, pointer load (this, json, j_obj)
 Load a reaction from input data.
 
integer(kind=i_kind) function get_type (this, rxn)
 Get the reaction type as a RxnType.
 
subroutine initialize_update_data (this, rxn, update_data)
 Initialize an update data object.
 
integer(kind=i_kind) function pack_size (this, rxn, comm)
 Determine the size of a binary required to pack a reaction.
 
subroutine bin_pack (this, rxn, buffer, pos, comm)
 Pack the given value to the buffer, advancing position.
 
class(rxn_data_t) function, pointer bin_unpack (this, buffer, pos, comm)
 Unpack the given value to the buffer, advancing position.
 

Variables

integer(kind=i_kind), parameter, public rxn_arrhenius = 1
 Identifiers for reaction types - used by binary packing/unpacking functions.
 
integer(kind=i_kind), parameter, public rxn_troe = 2
 
integer(kind=i_kind), parameter, public rxn_cmaq_h2o2 = 3
 
integer(kind=i_kind), parameter, public rxn_cmaq_oh_hno3 = 4
 
integer(kind=i_kind), parameter, public rxn_photolysis = 5
 
integer(kind=i_kind), parameter, public rxn_hl_phase_transfer = 6
 
integer(kind=i_kind), parameter, public rxn_aqueous_equilibrium = 7
 
integer(kind=i_kind), parameter, public rxn_simpol_phase_transfer = 10
 
integer(kind=i_kind), parameter, public rxn_condensed_phase_arrhenius = 11
 
integer(kind=i_kind), parameter, public rxn_first_order_loss = 12
 
integer(kind=i_kind), parameter, public rxn_emission = 13
 
integer(kind=i_kind), parameter, public rxn_wet_deposition = 14
 
integer(kind=i_kind), parameter, public rxn_ternary_chemical_activation = 15
 
integer(kind=i_kind), parameter, public rxn_wennberg_tunneling = 16
 
integer(kind=i_kind), parameter, public rxn_wennberg_no_ro2 = 17
 
integer(kind=i_kind), parameter, public rxn_condensed_phase_photolysis = 18
 
integer(kind=i_kind), parameter, public rxn_surface = 19
 

Detailed Description

The abstract rxn_factory_t structure and associated subroutines.

Function/Subroutine Documentation

◆ bin_pack()

subroutine camp_rxn_factory::bin_pack ( class(rxn_factory_t), intent(in)  this,
class(rxn_data_t), intent(in)  rxn,
character, dimension(:), intent(inout)  buffer,
integer, intent(inout)  pos,
integer, intent(in)  comm 
)
private

Pack the given value to the buffer, advancing position.

Parameters
[in]thisReaction factory
[in]rxnReaction to pack
[in,out]bufferMemory buffer
[in,out]posCurrent buffer position
[in]commMPI communicator

Definition at line 483 of file rxn_factory.F90.

Here is the call graph for this function:

◆ bin_unpack()

class(rxn_data_t) function, pointer camp_rxn_factory::bin_unpack ( class(rxn_factory_t), intent(in)  this,
character, dimension(:), intent(inout)  buffer,
integer, intent(inout)  pos,
integer, intent(in)  comm 
)
private

Unpack the given value to the buffer, advancing position.

Returns
Unpacked reaction
Parameters
[in]thisReaction factory
[in,out]bufferMemory buffer
[in,out]posCurrent buffer position
[in]commMPI communicator

Definition at line 549 of file rxn_factory.F90.

Here is the call graph for this function:

◆ create()

class(rxn_data_t) function, pointer camp_rxn_factory::create ( class(rxn_factory_t), intent(in)  this,
character(len=*), intent(in)  type_name 
)

Create a new chemical reaction by type name.

Returns
A chemical reaction
Parameters
[in]thisAerosol representation factory
[in]type_nameName of the chemical reaction

Definition at line 257 of file rxn_factory.F90.

Here is the call graph for this function:

◆ get_type()

integer(kind=i_kind) function camp_rxn_factory::get_type ( class(rxn_factory_t), intent(in)  this,
class(rxn_data_t), intent(in)  rxn 
)
private

Get the reaction type as a RxnType.

Parameters
[in]thisReaction factory
[in]rxnReaction to get type of

Definition at line 361 of file rxn_factory.F90.

Here is the call graph for this function:

◆ initialize_update_data()

subroutine camp_rxn_factory::initialize_update_data ( class(rxn_factory_t), intent(in)  this,
class(rxn_data_t), intent(inout)  rxn,
class(rxn_update_data_t), intent(out)  update_data 
)
private

Initialize an update data object.

Parameters
[in]thisReaction factory
[in,out]rxnReaction to be updated
[out]update_dataUpdate data object

Definition at line 412 of file rxn_factory.F90.

Here is the call graph for this function:

◆ load()

class(rxn_data_t) function, pointer camp_rxn_factory::load ( class(rxn_factory_t), intent(in)  this,
type(json_core), intent(in), pointer  json,
type(json_value), intent(in), pointer  j_obj 
)
private

Load a reaction from input data.

Returns
A chemical reaction
Parameters
[in]thisChemical reaction factory
[in]jsonJSON core
[in]j_objJSON object

Definition at line 315 of file rxn_factory.F90.

Here is the call graph for this function:

◆ pack_size()

integer(kind=i_kind) function camp_rxn_factory::pack_size ( class(rxn_factory_t this,
class(rxn_data_t), intent(in)  rxn,
integer, intent(in)  comm 
)
private

Determine the size of a binary required to pack a reaction.

Parameters
thisReaction factory
[in]rxnReaction to pack
[in]commMPI communicator

Definition at line 466 of file rxn_factory.F90.

Here is the call graph for this function:

Variable Documentation

◆ rxn_aqueous_equilibrium

integer(kind=i_kind), parameter, public camp_rxn_factory::rxn_aqueous_equilibrium = 7

Definition at line 218 of file rxn_factory.F90.

◆ rxn_arrhenius

integer(kind=i_kind), parameter, public camp_rxn_factory::rxn_arrhenius = 1

Identifiers for reaction types - used by binary packing/unpacking functions.

Definition at line 212 of file rxn_factory.F90.

◆ rxn_cmaq_h2o2

integer(kind=i_kind), parameter, public camp_rxn_factory::rxn_cmaq_h2o2 = 3

Definition at line 214 of file rxn_factory.F90.

◆ rxn_cmaq_oh_hno3

integer(kind=i_kind), parameter, public camp_rxn_factory::rxn_cmaq_oh_hno3 = 4

Definition at line 215 of file rxn_factory.F90.

◆ rxn_condensed_phase_arrhenius

integer(kind=i_kind), parameter, public camp_rxn_factory::rxn_condensed_phase_arrhenius = 11

Definition at line 220 of file rxn_factory.F90.

◆ rxn_condensed_phase_photolysis

integer(kind=i_kind), parameter, public camp_rxn_factory::rxn_condensed_phase_photolysis = 18

Definition at line 227 of file rxn_factory.F90.

◆ rxn_emission

integer(kind=i_kind), parameter, public camp_rxn_factory::rxn_emission = 13

Definition at line 222 of file rxn_factory.F90.

◆ rxn_first_order_loss

integer(kind=i_kind), parameter, public camp_rxn_factory::rxn_first_order_loss = 12

Definition at line 221 of file rxn_factory.F90.

◆ rxn_hl_phase_transfer

integer(kind=i_kind), parameter, public camp_rxn_factory::rxn_hl_phase_transfer = 6

Definition at line 217 of file rxn_factory.F90.

◆ rxn_photolysis

integer(kind=i_kind), parameter, public camp_rxn_factory::rxn_photolysis = 5

Definition at line 216 of file rxn_factory.F90.

◆ rxn_simpol_phase_transfer

integer(kind=i_kind), parameter, public camp_rxn_factory::rxn_simpol_phase_transfer = 10

Definition at line 219 of file rxn_factory.F90.

◆ rxn_surface

integer(kind=i_kind), parameter, public camp_rxn_factory::rxn_surface = 19

Definition at line 228 of file rxn_factory.F90.

◆ rxn_ternary_chemical_activation

integer(kind=i_kind), parameter, public camp_rxn_factory::rxn_ternary_chemical_activation = 15

Definition at line 224 of file rxn_factory.F90.

◆ rxn_troe

integer(kind=i_kind), parameter, public camp_rxn_factory::rxn_troe = 2

Definition at line 213 of file rxn_factory.F90.

◆ rxn_wennberg_no_ro2

integer(kind=i_kind), parameter, public camp_rxn_factory::rxn_wennberg_no_ro2 = 17

Definition at line 226 of file rxn_factory.F90.

◆ rxn_wennberg_tunneling

integer(kind=i_kind), parameter, public camp_rxn_factory::rxn_wennberg_tunneling = 16

Definition at line 225 of file rxn_factory.F90.

◆ rxn_wet_deposition

integer(kind=i_kind), parameter, public camp_rxn_factory::rxn_wet_deposition = 14

Definition at line 223 of file rxn_factory.F90.