ReactorClass Module


Uses


Variables

Type Visibility Attributes Name Initial
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

Type Visibility Attributes Name Initial
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 Attributes Name
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 Attributes Name
class(Reactor_), intent(inout) :: this
integer(kind=int32), intent(in), optional :: max_num_substances

public subroutine putReactor(this, substance_name, substance)

Arguments

Type IntentOptional Attributes Name
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 Attributes Name
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 Attributes Name
class(Reactor_), intent(inout) :: this
real(kind=real64), intent(in) :: dt