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

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

Data Types

type  aero_phase_data_ptr
 Pointer type for building arrays. More...
 
interface  aero_phase_data_t
 Aerosol phase data type. More...
 

Functions/Subroutines

type(aero_phase_data_t) function, pointer constructor (phase_name, init_size)
 Constructor for aero_phase_data_t. More...
 
subroutine load (this, json, j_obj)
 Load species from an input file. More...
 
subroutine initialize (this, chem_spec_data)
 Initialize the aerosol phase data, validating species names. More...
 
character(len=:) function, allocatable get_name (this)
 Get the aerosol phase name. More...
 
integer(kind=i_kind) function get_size (this)
 Get the number of species in the phase. More...
 
integer(kind=i_kind) function num_jac_elem (this)
 Get the number of Jacobian row elements needed during solving. More...
 
class(property_t) function, pointer get_property_set (this)
 Get the aerosol phase property set. More...
 
type(string_t) function, dimension(:), allocatable get_species_names (this)
 Get an aerosol phase species name. More...
 
integer(kind=i_kind) function get_species_type (this, spec_name)
 Get an aerosol phase species type. More...
 
integer(kind=i_kind) function pack_size (this, comm)
 Determine the size of a binary required to pack the aerosol representation data. More...
 
subroutine bin_pack (this, buffer, pos, comm)
 Pack the given value to the buffer, advancing position. More...
 
subroutine bin_unpack (this, buffer, pos, comm)
 Unpack the given value from the buffer, advancing position. More...
 
subroutine do_print (this, file_unit)
 Print out the aerosol phase data. More...
 
elemental subroutine finalize (this)
 Finalize the aerosol phase data. More...
 
subroutine ensure_size (this, num_spec)
 Ensure there is enough room in the species dataset to add a specified number of species. More...
 
subroutine add (this, spec_name)
 Add a new chemical species to the phase. More...
 
integer(kind=i_kind) function find (this, spec_name)
 Get the index of an aerosol-phase species by name. Return 0 if the species is not found. More...
 
elemental subroutine dereference (this)
 Dereference a pointer to aerosol phase data. More...
 
elemental subroutine ptr_finalize (this)
 Finalize a pointer to aerosol phase data. More...
 

Variables

integer(kind=i_kind), parameter realloc_inc = 50
 Reallocation increment. More...
 

Detailed Description

The abstract aero_phase_data_t structure and associated subroutines.

Function/Subroutine Documentation

◆ add()

subroutine camp_aero_phase_data::add ( class(aero_phase_data_t), intent(inout)  this,
character(len=*), intent(in)  spec_name 
)
private

Add a new chemical species to the phase.

Parameters
[in,out]thisAerosol phase data
[in]spec_nameName of the species to add

Definition at line 628 of file aero_phase_data.F90.

Here is the call graph for this function:

◆ bin_pack()

subroutine camp_aero_phase_data::bin_pack ( class(aero_phase_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 506 of file aero_phase_data.F90.

Here is the call graph for this function:

◆ bin_unpack()

subroutine camp_aero_phase_data::bin_unpack ( class(aero_phase_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 532 of file aero_phase_data.F90.

Here is the call graph for this function:

◆ constructor()

type(aero_phase_data_t) function, pointer camp_aero_phase_data::constructor ( character(len=*), intent(in), optional  phase_name,
integer(kind=i_kind), intent(in), optional  init_size 
)

Constructor for aero_phase_data_t.

Returns
A new set of aerosol-phase species
Parameters
[in]phase_nameName of the aerosol phase
[in]init_sizeNumber of species to allocate space for initially

Definition at line 162 of file aero_phase_data.F90.

◆ dereference()

elemental subroutine camp_aero_phase_data::dereference ( class(aero_phase_data_ptr), intent(inout)  this)
private

Dereference a pointer to aerosol phase data.

Parameters
[in,out]thisPointer to aerosol phase data

Definition at line 676 of file aero_phase_data.F90.

◆ do_print()

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

Print out the aerosol phase data.

Parameters
[in]thisAerosol phase data
file_unitFile unit for output

Definition at line 559 of file aero_phase_data.F90.

◆ ensure_size()

subroutine camp_aero_phase_data::ensure_size ( class(aero_phase_data_t), intent(inout)  this,
integer(kind=i_kind), intent(in)  num_spec 
)
private

Ensure there is enough room in the species dataset to add a specified number of species.

Parameters
[in,out]thisAerosol phase data
[in]num_specNumber of new species to ensure space for

Definition at line 606 of file aero_phase_data.F90.

◆ finalize()

elemental subroutine camp_aero_phase_data::finalize ( type(aero_phase_data_t), intent(inout)  this)
private

Finalize the aerosol phase data.

Parameters
[in,out]thisAerosol phase data

Definition at line 587 of file aero_phase_data.F90.

Here is the caller graph for this function:

◆ find()

integer(kind=i_kind) function camp_aero_phase_data::find ( class(aero_phase_data_t), intent(in)  this,
character(len=*), intent(in)  spec_name 
)
private

Get the index of an aerosol-phase species by name. Return 0 if the species is not found.

Parameters
[in]thisAerosol phase data
[in]spec_nameSpecies name

Definition at line 653 of file aero_phase_data.F90.

◆ get_name()

character(len=:) function, allocatable camp_aero_phase_data::get_name ( class(aero_phase_data_t), intent(in)  this)
private

Get the aerosol phase name.

Returns
The name of the aerosol phase
Parameters
[in]thisAerosol phase data

Definition at line 390 of file aero_phase_data.F90.

◆ get_property_set()

class(property_t) function, pointer camp_aero_phase_data::get_property_set ( class(aero_phase_data_t), intent(in)  this)
private

Get the aerosol phase property set.

Returns
A pointer to the aerosol phase property set
Parameters
[in]thisAerosol phase data

Definition at line 437 of file aero_phase_data.F90.

◆ get_size()

integer(kind=i_kind) function camp_aero_phase_data::get_size ( class(aero_phase_data_t), intent(in)  this)
private

Get the number of species in the phase.

Parameters
[in]thisAerosol phase data

Definition at line 404 of file aero_phase_data.F90.

◆ get_species_names()

type(string_t) function, dimension(:), allocatable camp_aero_phase_data::get_species_names ( class(aero_phase_data_t), intent(in)  this)
private

Get an aerosol phase species name.

Returns
Names of species in this phase
Parameters
[in]thisAerosol phase data

Definition at line 451 of file aero_phase_data.F90.

◆ get_species_type()

integer(kind=i_kind) function camp_aero_phase_data::get_species_type ( class(aero_phase_data_t), intent(in)  this,
character(len=*), intent(in)  spec_name 
)
private

Get an aerosol phase species type.

Returns
The type of a species in this phase
Parameters
[in]thisAerosol phase data
[in]spec_nameName of the species

Definition at line 470 of file aero_phase_data.F90.

Here is the call graph for this function:

◆ initialize()

subroutine camp_aero_phase_data::initialize ( class(aero_phase_data_t), intent(inout)  this,
type(chem_spec_data_t), intent(in), target  chem_spec_data 
)
private

Initialize the aerosol phase data, validating species names.

Parameters
[in,out]thisAerosol phase data
[in]chem_spec_dataChemical species data

Definition at line 306 of file aero_phase_data.F90.

Here is the call graph for this function:

◆ load()

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

Load species from an input file.

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

Definition at line 227 of file aero_phase_data.F90.

Here is the call graph for this function:

◆ num_jac_elem()

integer(kind=i_kind) function camp_aero_phase_data::num_jac_elem ( class(aero_phase_data_t), intent(in)  this)
private

Get the number of Jacobian row elements needed during solving.

Parameters
[in]thisAerosol phase data

Definition at line 416 of file aero_phase_data.F90.

◆ pack_size()

integer(kind=i_kind) function camp_aero_phase_data::pack_size ( class(aero_phase_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 490 of file aero_phase_data.F90.

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

◆ ptr_finalize()

elemental subroutine camp_aero_phase_data::ptr_finalize ( type(aero_phase_data_ptr), intent(inout)  this)
private

Finalize a pointer to aerosol phase data.

Parameters
[in,out]thisPointer to aerosol phase data

Definition at line 688 of file aero_phase_data.F90.

Here is the caller graph for this function:

Variable Documentation

◆ realloc_inc

integer(kind=i_kind), parameter camp_aero_phase_data::realloc_inc = 50
private

Reallocation increment.

Definition at line 73 of file aero_phase_data.F90.