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

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

Data Types

type  aero_rep_data_ptr
 Pointer to aero_rep_data_t extending types. More...
 
type  aero_rep_data_t
 Abstract aerosol representation data type. More...
 
type  aero_rep_update_data_t
 Update cookie. More...
 
interface  get_size
 Get the size of the section of the camp_camp_state::camp_state_t::state_var array required for this aerosol representation. More...
 
interface  initialize
 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. More...
 
interface  internal_bin_pack
 Extending-type binary pack function (Internal use only) More...
 
interface  internal_bin_unpack
 Extending-type binary unpack function (Internal use only) More...
 
interface  internal_pack_size
 Extending-type binary pack size (internal use only) More...
 
interface  num_jac_elem
 Get the number of Jacobian elements used in calculations of aerosol mass, volume, number, etc. for a particular phase. More...
 
interface  num_phase_instances
 Get the number of instances of a specified aerosol phase. More...
 
interface  spec_name
 Get the non-unique name of a chemical species by its unique name. More...
 
interface  spec_state_id
 Get a species id on the camp_camp_state::camp_state_t::state_var array by unique name. These are unique ids for each element on the state array for this aerosol representation and are numbered: More...
 
interface  unique_names
 Get a list of unique names for each element on the camp_camp_state::camp_state_t::state_var array for this aerosol representation. More...
 

Functions/Subroutines

subroutine load (this, json, j_obj)
 Load an aerosol representation from an input file.
 
character(len=:) function, allocatable get_name (this)
 Get the name of the aerosol representation.
 
integer(kind=i_kind) function, dimension(:), allocatable phase_ids (this, phase_name, is_at_surface)
 Get a set of ids for all instances of a phase in this aerosol representation for use during solving.
 
integer(kind=i_kind) function pack_size (this, comm)
 Determine the size of a binary required to pack the aerosol representation data.
 
subroutine bin_pack (this, buffer, pos, comm)
 Pack the given value to the buffer, advancing position.
 
subroutine bin_unpack (this, buffer, pos, comm)
 Unpack the given value from the buffer, advancing position.
 
subroutine do_print (this, file_unit)
 Print the aerosol representation data.
 
elemental subroutine dereference (this)
 Deference a pointer to an aerosol representation.
 
elemental subroutine ptr_finalize (this)
 Finalize a pointer to an aerosol representation.
 
integer(kind=c_int) function aero_rep_update_data_get_type (this)
 Get the update data aerosol representation type.
 
integer(kind=c_int) function aero_rep_update_data_get_cell_id (this)
 Get the grid cell id to update.
 
type(c_ptr) function aero_rep_update_data_get_data (this)
 Get the update data.
 
integer(kind=i_kind) function aero_rep_update_data_pack_size (this, comm)
 Determine the size of a binary required to pack the reaction data.
 
subroutine aero_rep_update_data_bin_pack (this, buffer, pos, comm)
 Pack the given value to the buffer, advancing position.
 
subroutine aero_rep_update_data_bin_unpack (this, buffer, pos, comm)
 Unpack the given value from the buffer, advancing position.
 
subroutine do_aero_rep_update_data_print (this, file_unit)
 Print the update data.
 

Detailed Description

The abstract aero_rep_data_t structure and associated subroutines.

Function/Subroutine Documentation

◆ aero_rep_update_data_bin_pack()

subroutine camp_aero_rep_data::aero_rep_update_data_bin_pack ( class(aero_rep_update_data_t), intent(in)  this,
character, dimension(:), intent(inout)  buffer,
integer, intent(inout)  pos,
integer, intent(in), optional  comm 
)
private

Pack the given value to the buffer, advancing position.

Parameters
[in]thisAerosol representation update data
[in,out]bufferMemory buffer
[in,out]posCurrent buffer position
[in]commMPI communicator

Definition at line 741 of file aero_rep_data.F90.

Here is the call graph for this function:

◆ aero_rep_update_data_bin_unpack()

subroutine camp_aero_rep_data::aero_rep_update_data_bin_unpack ( class(aero_rep_update_data_t), intent(out)  this,
character, dimension(:), intent(inout)  buffer,
integer, intent(inout)  pos,
integer, intent(in), optional  comm 
)
private

Unpack the given value from the buffer, advancing position.

Parameters
[out]thisAerosol representation update data
[in,out]bufferMemory buffer
[in,out]posCurrent buffer position
[in]commMPI communicator

Definition at line 777 of file aero_rep_data.F90.

Here is the call graph for this function:

◆ aero_rep_update_data_get_cell_id()

integer(kind=c_int) function camp_aero_rep_data::aero_rep_update_data_get_cell_id ( class(aero_rep_update_data_t), intent(in)  this)
private

Get the grid cell id to update.

Returns
Grid cell id
Parameters
[in]thisUpdate data

Definition at line 681 of file aero_rep_data.F90.

◆ aero_rep_update_data_get_data()

type(c_ptr) function camp_aero_rep_data::aero_rep_update_data_get_data ( class(aero_rep_update_data_t), intent(in)  this)
private

Get the update data.

Returns
Update data ptr
Parameters
[in]thisUpdate data

Definition at line 695 of file aero_rep_data.F90.

◆ aero_rep_update_data_get_type()

integer(kind=c_int) function camp_aero_rep_data::aero_rep_update_data_get_type ( class(aero_rep_update_data_t), intent(in)  this)
private

Get the update data aerosol representation type.

Returns
Aerosol representation type
Parameters
[in]thisUpdate data

Definition at line 667 of file aero_rep_data.F90.

◆ aero_rep_update_data_pack_size()

integer(kind=i_kind) function camp_aero_rep_data::aero_rep_update_data_pack_size ( class(aero_rep_update_data_t), intent(in)  this,
integer, intent(in), optional  comm 
)
private

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

Parameters
[in]thisAerosol representation update data
[in]commMPI communicator

Definition at line 709 of file aero_rep_data.F90.

Here is the call graph for this function:

◆ bin_pack()

subroutine camp_aero_rep_data::bin_pack ( class(aero_rep_data_t), intent(in)  this,
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]thisAerosol representation data
[in,out]bufferMemory buffer
[in,out]posCurrent buffer position
[in]commMPI communicator

Definition at line 564 of file aero_rep_data.F90.

Here is the call graph for this function:

◆ bin_unpack()

subroutine camp_aero_rep_data::bin_unpack ( class(aero_rep_data_t), intent(out)  this,
character, dimension(:), intent(inout)  buffer,
integer, intent(inout)  pos,
integer, intent(in)  comm 
)
private

Unpack the given value from the buffer, advancing position.

Parameters
[out]thisAerosol representation data
[in,out]bufferMemory buffer
[in,out]posCurrent buffer position
[in]commMPI communicator

Definition at line 591 of file aero_rep_data.F90.

Here is the call graph for this function:

◆ dereference()

elemental subroutine camp_aero_rep_data::dereference ( class(aero_rep_data_ptr), intent(inout)  this)
private

Deference a pointer to an aerosol representation.

Parameters
[in,out]thisPointer to an aerosol representation

Definition at line 643 of file aero_rep_data.F90.

◆ do_aero_rep_update_data_print()

subroutine camp_aero_rep_data::do_aero_rep_update_data_print ( class(aero_rep_update_data_t), intent(in)  this,
integer(kind=i_kind), optional  file_unit 
)
private

Print the update data.

Parameters
[in]thisAerosol representation update data
file_unitFile unit for output

Definition at line 813 of file aero_rep_data.F90.

◆ do_print()

subroutine camp_aero_rep_data::do_print ( class(aero_rep_data_t), intent(in)  this,
integer(kind=i_kind), optional  file_unit 
)
private

Print the aerosol representation data.

Parameters
[in]thisAerosol representation data
file_unitFile unit for output

Definition at line 619 of file aero_rep_data.F90.

◆ get_name()

character(len=:) function, allocatable camp_aero_rep_data::get_name ( class(aero_rep_data_t), intent(in)  this)
private

Get the name of the aerosol representation.

Returns
Aerosol representation name
Parameters
[in]thisAerosol representation data

Definition at line 481 of file aero_rep_data.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ load()

subroutine camp_aero_rep_data::load ( class(aero_rep_data_t), intent(inout)  this,
type(json_core), intent(in), pointer  json,
type(json_value), intent(in), pointer  j_obj 
)
private

Load an aerosol representation from an input file.

Parameters
[in,out]thisAerosol representation data
[in]jsonJSON core
[in]j_objJSON object

Definition at line 421 of file aero_rep_data.F90.

◆ pack_size()

integer(kind=i_kind) function camp_aero_rep_data::pack_size ( class(aero_rep_data_t), intent(in)  this,
integer, intent(in)  comm 
)
private

Determine the size of a binary required to pack the aerosol representation data.

Parameters
[in]thisAerosol representation data
[in]commMPI communicator

Definition at line 547 of file aero_rep_data.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ phase_ids()

integer(kind=i_kind) function, dimension(:), allocatable camp_aero_rep_data::phase_ids ( class(aero_rep_data_t), intent(in)  this,
character(len=*), intent(in)  phase_name,
logical, intent(in), optional  is_at_surface 
)
private

Get a set of ids for all instances of a phase in this aerosol representation for use during solving.

Returns
List of phase ids
Parameters
[in]thisAerosol representation data
[in]phase_nameAerosol phase name
[in]is_at_surfaceIndicates if aerosol phase is at the surface of particle

Definition at line 496 of file aero_rep_data.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ptr_finalize()

elemental subroutine camp_aero_rep_data::ptr_finalize ( type(aero_rep_data_ptr), intent(inout)  this)
private

Finalize a pointer to an aerosol representation.

Parameters
[in,out]thisPointer to an aerosol representation

Definition at line 655 of file aero_rep_data.F90.

Here is the caller graph for this function: