ReactorClass Module


Uses


Contents


Variables

TypeVisibility AttributesNameInitial
integer(kind=int32), public, parameter:: PF_MAX_REACTION_NUM =20
integer(kind=int32), public, parameter:: PF_MAX_INPUT_NUM =5
integer(kind=int32), public, parameter:: PF_MAX_OUTPUT_NUM =5

Derived Types

type, public :: Reactor_

Components

TypeVisibility AttributesNameInitial
type(Real64Ptr_), public, allocatable:: substances(:)
type(String_), public, allocatable:: substance_names(:)
integer, public :: n_substances =0
integer, public :: n_reaction =0
integer(kind=int32), public :: input_list(PF_MAX_REACTION_NUM,PF_MAX_INPUT_NUM) =0
integer(kind=int32), public :: output_list(PF_MAX_REACTION_NUM,PF_MAX_OUTPUT_NUM) =0
real(kind=real64), public :: reaction_order(PF_MAX_REACTION_NUM,PF_MAX_INPUT_NUM+PF_MAX_OUTPUT_NUM) =0
real(kind=real64), public :: mol_rate(PF_MAX_REACTION_NUM,PF_MAX_INPUT_NUM+PF_MAX_OUTPUT_NUM) =0
real(kind=real64), public :: constants(PF_MAX_REACTION_NUM) =0

Type-Bound Procedures

procedure, public :: Init => InitReactor
procedure, public :: put => putReactor
procedure, public :: define => defineReactor
procedure, public :: SearchSubstanceID => SearchSubstanceIDReactor
procedure, public :: run => runReactor

Functions

public pure function SearchSubstanceIDReactor(this, name) result(ret)

Arguments

Type IntentOptional AttributesName
class(Reactor_), intent(in) :: this
character(len=*), intent(in) :: name

Return Value integer(kind=int32)


Subroutines

public subroutine InitReactor(this, max_num_substances)

Arguments

Type IntentOptional AttributesName
class(Reactor_), intent(inout) :: this
integer(kind=int32), intent(in), optional :: max_num_substances

public subroutine putReactor(this, substance_name, substance)

Arguments

Type IntentOptional AttributesName
class(Reactor_), intent(inout) :: this
character(len=*), intent(in) :: substance_name
real(kind=real64), intent(in), target:: substance

public subroutine defineReactor(this, input_list, output_list, constant, mol_rate, reaction_order)

Arguments

Type IntentOptional AttributesName
class(Reactor_), intent(inout) :: this
type(String_), intent(in) :: input_list(:)
type(String_), intent(in) :: output_list(:)
real(kind=real64), intent(in) :: constant
real(kind=real64), intent(in), optional :: mol_rate(:)
real(kind=real64), intent(in), optional :: reaction_order(:)

public subroutine runReactor(this, dt)

Arguments

Type IntentOptional AttributesName
class(Reactor_), intent(inout) :: this
real(kind=real64), intent(in) :: dt