CAMP 1.0.0
Chemistry Across Multiple Phases
camp_sub_model_factory::sub_model_factory_t Type Reference

Factory type for sub-models. More...

Public Member Functions

procedure create (this, type_name)
 Create a new sub-model by type name.
 
procedure load (this, json, j_obj)
 Create a new aerosol representation from input data.
 
procedure get_type (this, sub_model)
 Get the aerosol representation type.
 
procedure initialize_update_data (this, sub_model, update_data)
 Get a new update data object.
 
procedure pack_size (this, sub_model, comm)
 Determine the number of bytes required to pack a given sub-model.
 
procedure bin_pack (this, sub_model, buffer, pos, comm)
 Pack a given sub-model onto the buffer, advancing position.
 
procedure bin_unpack (this, buffer, pos, comm)
 Unpack a sub-model from the buffer, advancing position.
 

Detailed Description

Factory type for sub-models.

Provides new instances of type extending sub_model_data_t by name or from input file data

Definition at line 47 of file sub_model_factory.F90.

Member Function/Subroutine Documentation

◆ bin_pack()

procedure camp_sub_model_factory::sub_model_factory_t::bin_pack ( class(sub_model_factory_t), intent(in) this,
class(sub_model_data_t), intent(in) sub_model,
character, dimension(:), intent(inout) buffer,
integer, intent(inout) pos,
integer, intent(in) comm )

Pack a given sub-model onto the buffer, advancing position.

Parameters
[in]thisSub-model factory
[in]sub_modelSub-model to pack
[in,out]bufferMemory buffer
[in,out]posCurrent buffer position
[in]commMPI communicator

Definition at line 60 of file sub_model_factory.F90.

◆ bin_unpack()

procedure camp_sub_model_factory::sub_model_factory_t::bin_unpack ( class(sub_model_factory_t), intent(in) this,
character, dimension(:), intent(inout) buffer,
integer, intent(inout) pos,
integer, intent(in) comm )

Unpack a sub-model from the buffer, advancing position.

Returns
Unpacked sub-model
Parameters
[in]thisSub-model factory
[in,out]bufferMemory buffer
[in,out]posCurrent buffer position
[in]commMPI communicator

Definition at line 62 of file sub_model_factory.F90.

◆ create()

procedure camp_sub_model_factory::sub_model_factory_t::create ( class(sub_model_factory_t), intent(in) this,
character(len=*), intent(in) type_name )

Create a new sub-model by type name.

Returns
A new sub-model
Parameters
[in]thisSub-model factory
[in]type_nameType of the sub-model

Definition at line 50 of file sub_model_factory.F90.

◆ get_type()

procedure camp_sub_model_factory::sub_model_factory_t::get_type ( class(sub_model_factory_t), intent(in) this,
class(sub_model_data_t), intent(in) sub_model )

Get the aerosol representation type.

Parameters
[in]thisSub-model factory
[in]sub_modelSub-model to get type of

Definition at line 54 of file sub_model_factory.F90.

◆ initialize_update_data()

procedure camp_sub_model_factory::sub_model_factory_t::initialize_update_data ( class(sub_model_factory_t), intent(in) this,
class(sub_model_data_t), intent(inout) sub_model,
class(sub_model_update_data_t), intent(out) update_data )

Get a new update data object.

Parameters
[in]thisSub-model factory
[in,out]sub_modelSub-model to be updated
[out]update_dataUpdate data object

Definition at line 56 of file sub_model_factory.F90.

◆ load()

procedure camp_sub_model_factory::sub_model_factory_t::load ( class(sub_model_factory_t), intent(in) this,
type(json_core), intent(in), pointer json,
type(json_value), intent(in), pointer j_obj )

Create a new aerosol representation from input data.

Returns
A new sub-model
Parameters
[in]thisSub-model factory
[in]jsonJSON core
[in]j_objJSON object

Definition at line 52 of file sub_model_factory.F90.

◆ pack_size()

procedure camp_sub_model_factory::sub_model_factory_t::pack_size ( class(sub_model_factory_t) this,
class(sub_model_data_t), intent(in) sub_model,
integer, intent(in) comm )

Determine the number of bytes required to pack a given sub-model.

Parameters
thisSub-model factory
[in]sub_modelSub-model to pack
[in]commMPI communicator

Definition at line 58 of file sub_model_factory.F90.


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