SELF_Model Module


Uses

  • module~~self_model~~UsesGraph module~self_model SELF_Model HDF5 HDF5 module~self_model->HDF5 module~self_metadata SELF_Metadata module~self_model->module~self_metadata module~self_supportroutines SELF_SupportRoutines module~self_model->module~self_supportroutines module~self_hdf5 SELF_HDF5 module~self_model->module~self_hdf5 FEQParse FEQParse module~self_model->FEQParse module~self_metadata->HDF5 module~self_metadata->module~self_hdf5 module~self_constants SELF_Constants module~self_supportroutines->module~self_constants iso_fortran_env iso_fortran_env module~self_supportroutines->iso_fortran_env module~self_hdf5->HDF5 module~self_hdf5->module~self_constants module~self_hdf5->iso_fortran_env mpi mpi module~self_hdf5->mpi module~self_constants->iso_fortran_env iso_c_binding iso_c_binding module~self_constants->iso_c_binding

Used by

  • module~~self_model~~UsedByGraph module~self_model SELF_Model module~self_dgmodel2d_t SELF_DGModel2D_t module~self_dgmodel2d_t->module~self_model module~self_dgmodel3d_t SELF_DGModel3D_t module~self_dgmodel3d_t->module~self_model module~self_nulldgmodel3d_t self_NullDGModel3D_t module~self_nulldgmodel3d_t->module~self_model module~self_dgmodel3d~2 SELF_DGModel3D module~self_nulldgmodel3d_t->module~self_dgmodel3d~2 module~self_dgmodel1d SELF_DGModel1D module~self_dgmodel1d->module~self_model module~self_dgmodel1d_t SELF_DGModel1D_t module~self_dgmodel1d->module~self_dgmodel1d_t module~self_lineareuler2d_t self_LinearEuler2D_t module~self_lineareuler2d_t->module~self_model module~self_dgmodel2d~2 SELF_DGModel2D module~self_lineareuler2d_t->module~self_dgmodel2d~2 module~self_nulldgmodel2d_t self_NullDGModel2D_t module~self_nulldgmodel2d_t->module~self_model module~self_nulldgmodel2d_t->module~self_dgmodel2d~2 module~self_advection_diffusion_1d_t self_advection_diffusion_1d_t module~self_advection_diffusion_1d_t->module~self_model module~self_advection_diffusion_1d_t->module~self_dgmodel1d module~self_nulldgmodel1d_t self_NullDGModel1D_t module~self_nulldgmodel1d_t->module~self_model module~self_nulldgmodel1d_t->module~self_dgmodel1d module~self_dgmodel1d_t->module~self_model module~self_linearshallowwater2d_t self_LinearShallowWater2D_t module~self_linearshallowwater2d_t->module~self_model module~self_linearshallowwater2d_t->module~self_dgmodel2d~2 module~self_burgers1d_t self_Burgers1D_t module~self_burgers1d_t->module~self_model module~self_burgers1d_t->module~self_dgmodel1d module~self_advection_diffusion_3d_t self_advection_diffusion_3d_t module~self_advection_diffusion_3d_t->module~self_model module~self_advection_diffusion_3d_t->module~self_dgmodel3d~2 module~self_dgmodel2d SELF_DGModel2D module~self_dgmodel2d->module~self_dgmodel2d_t module~self_nulldgmodel1d~2 self_NullDGModel1D module~self_nulldgmodel1d~2->module~self_nulldgmodel1d_t module~self_burgers1d self_Burgers1D module~self_burgers1d->module~self_burgers1d_t module~self_nulldgmodel2d self_NullDGModel2D module~self_nulldgmodel2d->module~self_nulldgmodel2d_t module~self_dgmodel1d~2 SELF_DGModel1D module~self_dgmodel1d~2->module~self_dgmodel1d_t module~self_nulldgmodel3d self_NullDGModel3D module~self_nulldgmodel3d->module~self_nulldgmodel3d_t module~self_lineareuler2d self_LinearEuler2D module~self_lineareuler2d->module~self_lineareuler2d_t module~self_nulldgmodel1d self_NullDGModel1D module~self_nulldgmodel1d->module~self_nulldgmodel1d_t module~self_burgers1d~2 self_Burgers1D module~self_burgers1d~2->module~self_burgers1d_t module~self_dgmodel2d~2->module~self_dgmodel2d_t module~self_dgmodel3d~2->module~self_dgmodel3d_t module~self_nulldgmodel2d~2 self_NullDGModel2D module~self_nulldgmodel2d~2->module~self_nulldgmodel2d_t module~self_linearshallowwater2d~2 self_LinearShallowWater2D module~self_linearshallowwater2d~2->module~self_linearshallowwater2d_t module~self_nulldgmodel3d~2 self_NullDGModel3D module~self_nulldgmodel3d~2->module~self_nulldgmodel3d_t module~self_lineareuler2d~2 self_LinearEuler2D module~self_lineareuler2d~2->module~self_lineareuler2d_t module~self_advection_diffusion_3d self_advection_diffusion_3d module~self_advection_diffusion_3d->module~self_advection_diffusion_3d_t module~self_advection_diffusion_1d self_advection_diffusion_1d module~self_advection_diffusion_1d->module~self_dgmodel1d module~self_advection_diffusion_1d->module~self_advection_diffusion_1d_t module~self_advection_diffusion_1d~2 self_advection_diffusion_1d module~self_advection_diffusion_1d~2->module~self_advection_diffusion_1d_t module~self_advection_diffusion_3d~2 self_advection_diffusion_3d module~self_advection_diffusion_3d~2->module~self_advection_diffusion_3d_t module~self_dgmodel3d SELF_DGModel3D module~self_dgmodel3d->module~self_dgmodel3d_t module~self_linearshallowwater2d self_LinearShallowWater2D module~self_linearshallowwater2d->module~self_linearshallowwater2d_t module~self_advection_diffusion_2d_t self_advection_diffusion_2d_t module~self_advection_diffusion_2d_t->module~self_dgmodel2d~2 module~self_advection_diffusion_2d self_advection_diffusion_2d module~self_advection_diffusion_2d->module~self_advection_diffusion_2d_t module~self_advection_diffusion_2d~2 self_advection_diffusion_2d module~self_advection_diffusion_2d~2->module~self_advection_diffusion_2d_t

Contents


Variables

TypeVisibilityAttributesNameInitial
integer, public, parameter:: SELF_EQUATION_LENGTH =500
integer, public, parameter:: SELF_EULER =100
integer, public, parameter:: SELF_FORMULATION_LENGTH =30
integer, public, parameter:: SELF_INTEGRATOR_LENGTH =10
integer, public, parameter:: SELF_RK2 =200
integer, public, parameter:: SELF_RK3 =300
integer, public, parameter:: SELF_RK4 =400
real(kind=prec), public, parameter:: rk2_a(1:2) =(/0.0_prec, -0.5_prec/)
real(kind=prec), public, parameter:: rk2_b(1:2) =(/0.5_prec, 0.5_prec/)
real(kind=prec), public, parameter:: rk2_g(1:2) =(/0.5_prec, 1.0_prec/)
real(kind=prec), public, parameter:: rk3_a(1:3) =(/0.0_prec, -5.0_prec/9.0_prec, -153.0_prec/128.0_prec/)
real(kind=prec), public, parameter:: rk3_b(1:3) =(/0.0_prec, 1.0_prec/3.0_prec, 3.0_prec/4.0_prec/)
real(kind=prec), public, parameter:: rk3_g(1:3) =(/1.0_prec/3.0_prec, 15.0_prec/16.0_prec, 8.0_prec/15.0_prec/)
real(kind=prec), public, parameter:: rk4_a(1:5) =(/0.0_prec, -1.0_prec, -1.0_prec/3.0_prec+2.0_prec**(2.0_prec/3.0_prec)/6.0_prec, -2.0_prec**(1.0_prec/3.0_prec)-2.0_prec**(2.0_prec/3.0_prec)-2.0_prec, -1.0_prec+2.0_prec**(1.0_prec/3.0_prec)/)
real(kind=prec), public, parameter:: rk4_b(1:5) =(/0.0_prec, 2.0_prec/3.0_prec+2.0_prec**(1.0_prec/3.0_prec)/3.0_prec+2.0_prec**(2.0_prec/3.0_prec)/6.0_prec, 2.0_prec/3.0_prec+2.0_prec**(1.0_prec/3.0_prec)/3.0_prec+2.0_prec**(2.0_prec/3.0_prec)/6.0_prec, 1.0_prec/3.0_prec-2.0_prec**(1.0_prec/3.0_prec)/3.0_prec-2.0_prec**(2.0_prec/3.0_prec)/6.0_prec, 1.0_prec/)
real(kind=prec), public, parameter:: rk4_g(1:5) =(/2.0_prec/3.0_prec+2.0_prec**(1.0_prec/3.0_prec)/3.0_prec+2.0_prec**(2.0_prec/3.0_prec)/6.0_prec, -2.0_prec**(2.0_prec/3.0_prec)/6.0_prec+1.0_prec/6.0_prec, -1.0_prec/3.0_prec-2.0_prec*2.0_prec**(1.0_prec/3.0_prec)/3.0_prec-2.0_prec**(2.0_prec/3.0_prec)/3.0_prec, 1.0_prec/3.0_prec-2.0_prec**(1.0_prec/3.0_prec)/3.0_prec-2.0_prec**(2.0_prec/3.0_prec)/6.0_prec, 1.0_prec/3.0_prec+2.0_prec**(1.0_prec/3.0_prec)/6.0_prec+2.0_prec**(2.0_prec/3.0_prec)/12.0_prec/)

Interfaces

interface

  • public subroutine CalculateTendency(this)

    Arguments

    TypeIntentOptionalAttributesName
    class(Model), intent(inout) :: this

interface

  • public subroutine ReadModel(this, filename)

    Arguments

    TypeIntentOptionalAttributesName
    class(Model), intent(inout) :: this
    character, intent(in) :: filename

interface

  • public subroutine SELF_timeIntegrator(this, tn)

    Arguments

    TypeIntentOptionalAttributesName
    class(Model), intent(inout) :: this
    real(kind=prec), intent(in) :: tn

interface

  • public subroutine UpdateGRK(this, m)

    Arguments

    TypeIntentOptionalAttributesName
    class(Model), intent(inout) :: this
    integer, intent(in) :: m

interface

  • public subroutine UpdateSolution(this, dt)

    Arguments

    TypeIntentOptionalAttributesName
    class(Model), intent(inout) :: this
    real(kind=prec), intent(in), optional :: dt

interface

  • public subroutine WriteModel(this, filename)

    Arguments

    TypeIntentOptionalAttributesName
    class(Model), intent(inout) :: this
    character, intent(in), optional :: filename

interface

  • public subroutine WriteTecplot(this, filename)

    Arguments

    TypeIntentOptionalAttributesName
    class(Model), intent(inout) :: this
    character, intent(in), optional :: filename

Derived Types

type, public, abstract :: Model

Components

TypeVisibilityAttributesNameInitial
real(kind=prec), public :: dt
real(kind=prec), public :: entropy
logical, public :: gradient_enabled =.false.
integer, public :: ioIterate =0
integer, public :: nvar
logical, public :: prescribed_bcs_enabled =.true.
real(kind=prec), public :: t
logical, public :: tecplot_enabled =.true.
procedure(SELF_timeIntegrator), public, pointer:: timeIntegrator=> Euler_timeIntegrator

Type-Bound Procedures

procedure, public :: AdditionalFree => AdditionalFree_Model
procedure, public :: AdditionalInit => AdditionalInit_Model
procedure, public :: AdditionalOutput => AdditionalOutput_Model
procedure, public :: CalculateEntropy => CalculateEntropy_Model
procedure(CalculateTendency), public :: CalculateTendency
procedure, public :: Euler_timeIntegrator
procedure, public :: ForwardStep => ForwardStep_Model
procedure, public :: GetSimulationTime
procedure, public :: IncrementIOCounter
procedure, public :: LowStorageRK2_timeIntegrator
procedure, public :: LowStorageRK3_timeIntegrator
procedure, public :: LowStorageRK4_timeIntegrator
procedure, public :: PreTendency => PreTendency_Model
procedure, public :: PrintType => PrintType_Model
procedure(ReadModel), public :: ReadModel
procedure, public :: ReportEntropy => ReportEntropy_Model
procedure, public :: ReportMetrics => ReportMetrics_Model
procedure, public :: ReportUserMetrics => ReportUserMetrics_Model
procedure, public :: SetNumberOfVariables => SetNumberOfVariables_Model
procedure, public :: SetSimulationTime
generic, public :: SetTimeIntegrator => SetTimeIntegrator_withChar
procedure, private :: SetTimeIntegrator_withChar
procedure(UpdateGRK), public :: UpdateGRK2
procedure(UpdateGRK), public :: UpdateGRK3
procedure(UpdateGRK), public :: UpdateGRK4
procedure(UpdateSolution), public :: UpdateSolution
procedure(WriteModel), public :: WriteModel
procedure(WriteTecplot), public :: WriteTecplot
procedure, public :: entropy_func => entropy_func_Model
procedure, public :: flux1D => flux1d_Model
procedure, public :: flux2D => flux2d_Model
procedure, public :: flux3D => flux3d_Model
procedure, public :: hbc1d_NoNormalFlow => hbc1d_Generic_Model
procedure, public :: hbc1d_Prescribed => hbc1d_Prescribed_Model
procedure, public :: hbc1d_Radiation => hbc1d_Generic_Model
procedure, public :: hbc2d_NoNormalFlow => hbc2d_Generic_Model
procedure, public :: hbc2d_Prescribed => hbc2d_Prescribed_Model
procedure, public :: hbc2d_Radiation => hbc2d_Generic_Model
procedure, public :: hbc3d_NoNormalFlow => hbc3d_Generic_Model
procedure, public :: hbc3d_Prescribed => hbc3d_Prescribed_Model
procedure, public :: hbc3d_Radiation => hbc3d_Generic_Model
procedure, public :: pbc1d_NoNormalFlow => pbc1d_Generic_Model
procedure, public :: pbc1d_Prescribed => pbc1d_Prescribed_Model
procedure, public :: pbc1d_Radiation => pbc1d_Generic_Model
procedure, public :: pbc2d_NoNormalFlow => pbc2d_Generic_Model
procedure, public :: pbc2d_Prescribed => pbc2d_Prescribed_Model
procedure, public :: pbc2d_Radiation => pbc2d_Generic_Model
procedure, public :: pbc3d_NoNormalFlow => pbc3d_Generic_Model
procedure, public :: pbc3d_Prescribed => pbc3d_Prescribed_Model
procedure, public :: pbc3d_Radiation => pbc3d_Generic_Model
procedure, public :: riemannflux1d => riemannflux1d_Model
procedure, public :: riemannflux2d => riemannflux2d_Model
procedure, public :: riemannflux3d => riemannflux3d_Model
procedure, public :: source1d => source1d_Model
procedure, public :: source2d => source2d_Model
procedure, public :: source3d => source3d_Model

Functions

public pure function entropy_func_Model(this, s) result(e)

Arguments

TypeIntentOptionalAttributesName
class(Model), intent(in) :: this
real(kind=prec), intent(in) :: s(1:this%nvar)

Return Value real(kind=prec)

public pure function flux1d_Model(this, s, dsdx) result(flux)

Arguments

TypeIntentOptionalAttributesName
class(Model), intent(in) :: this
real(kind=prec), intent(in) :: s(1:this%nvar)
real(kind=prec), intent(in) :: dsdx(1:this%nvar)

Return Value real(kind=prec)(1:this%nvar)

public pure function flux2d_Model(this, s, dsdx) result(flux)

Arguments

TypeIntentOptionalAttributesName
class(Model), intent(in) :: this
real(kind=prec), intent(in) :: s(1:this%nvar)
real(kind=prec), intent(in) :: dsdx(1:this%nvar,1:2)

Return Value real(kind=prec)(1:this%nvar,1:2)

public pure function flux3d_Model(this, s, dsdx) result(flux)

Arguments

TypeIntentOptionalAttributesName
class(Model), intent(in) :: this
real(kind=prec), intent(in) :: s(1:this%nvar)
real(kind=prec), intent(in) :: dsdx(1:this%nvar,1:3)

Return Value real(kind=prec)(1:this%nvar,1:3)

public pure function hbc1d_Generic_Model(this, s, nhat) result(exts)

Arguments

TypeIntentOptionalAttributesName
class(Model), intent(in) :: this
real(kind=prec), intent(in) :: s(1:this%nvar)
real(kind=prec), intent(in) :: nhat

Return Value real(kind=prec)(1:this%nvar)

public pure function hbc1d_Prescribed_Model(this, x, t) result(exts)

Arguments

TypeIntentOptionalAttributesName
class(Model), intent(in) :: this
real(kind=prec), intent(in) :: x
real(kind=prec), intent(in) :: t

Return Value real(kind=prec)(1:this%nvar)

public pure function hbc2d_Generic_Model(this, s, nhat) result(exts)

Arguments

TypeIntentOptionalAttributesName
class(Model), intent(in) :: this
real(kind=prec), intent(in) :: s(1:this%nvar)
real(kind=prec), intent(in) :: nhat(1:2)

Return Value real(kind=prec)(1:this%nvar)

public pure function hbc2d_Prescribed_Model(this, x, t) result(exts)

Arguments

TypeIntentOptionalAttributesName
class(Model), intent(in) :: this
real(kind=prec), intent(in) :: x(1:2)
real(kind=prec), intent(in) :: t

Return Value real(kind=prec)(1:this%nvar)

public pure function hbc3d_Generic_Model(this, s, nhat) result(exts)

Arguments

TypeIntentOptionalAttributesName
class(Model), intent(in) :: this
real(kind=prec), intent(in) :: s(1:this%nvar)
real(kind=prec), intent(in) :: nhat(1:3)

Return Value real(kind=prec)(1:this%nvar)

public pure function hbc3d_Prescribed_Model(this, x, t) result(exts)

Arguments

TypeIntentOptionalAttributesName
class(Model), intent(in) :: this
real(kind=prec), intent(in) :: x(1:3)
real(kind=prec), intent(in) :: t

Return Value real(kind=prec)(1:this%nvar)

public pure function pbc1d_Generic_Model(this, dsdx, nhat) result(extDsdx)

Arguments

TypeIntentOptionalAttributesName
class(Model), intent(in) :: this
real(kind=prec), intent(in) :: dsdx(1:this%nvar)
real(kind=prec), intent(in) :: nhat

Return Value real(kind=prec)(1:this%nvar)

public pure function pbc1d_Prescribed_Model(this, x, t) result(extDsdx)

Arguments

TypeIntentOptionalAttributesName
class(Model), intent(in) :: this
real(kind=prec), intent(in) :: x
real(kind=prec), intent(in) :: t

Return Value real(kind=prec)(1:this%nvar)

public pure function pbc2d_Generic_Model(this, dsdx, nhat) result(extDsdx)

Arguments

TypeIntentOptionalAttributesName
class(Model), intent(in) :: this
real(kind=prec), intent(in) :: dsdx(1:this%nvar,1:2)
real(kind=prec), intent(in) :: nhat(1:2)

Return Value real(kind=prec)(1:this%nvar,1:2)

public pure function pbc2d_Prescribed_Model(this, x, t) result(extDsdx)

Arguments

TypeIntentOptionalAttributesName
class(Model), intent(in) :: this
real(kind=prec), intent(in) :: x(1:2)
real(kind=prec), intent(in) :: t

Return Value real(kind=prec)(1:this%nvar,1:2)

public pure function pbc3d_Generic_Model(this, dsdx, nhat) result(extDsdx)

Arguments

TypeIntentOptionalAttributesName
class(Model), intent(in) :: this
real(kind=prec), intent(in) :: dsdx(1:this%nvar,1:3)
real(kind=prec), intent(in) :: nhat(1:3)

Return Value real(kind=prec)(1:this%nvar,1:3)

public pure function pbc3d_Prescribed_Model(this, x, t) result(extDsdx)

Arguments

TypeIntentOptionalAttributesName
class(Model), intent(in) :: this
real(kind=prec), intent(in) :: x(1:3)
real(kind=prec), intent(in) :: t

Return Value real(kind=prec)(1:this%nvar,1:3)

public pure function riemannflux1d_Model(this, sL, sR, dsdx, nhat) result(flux)

Arguments

TypeIntentOptionalAttributesName
class(Model), intent(in) :: this
real(kind=prec), intent(in) :: sL(1:this%nvar)
real(kind=prec), intent(in) :: sR(1:this%nvar)
real(kind=prec), intent(in) :: dsdx(1:this%nvar)
real(kind=prec), intent(in) :: nhat

Return Value real(kind=prec)(1:this%nvar)

public pure function riemannflux2d_Model(this, sL, sR, dsdx, nhat) result(flux)

Arguments

TypeIntentOptionalAttributesName
class(Model), intent(in) :: this
real(kind=prec), intent(in) :: sL(1:this%nvar)
real(kind=prec), intent(in) :: sR(1:this%nvar)
real(kind=prec), intent(in) :: dsdx(1:this%nvar,1:2)
real(kind=prec), intent(in) :: nhat(1:2)

Return Value real(kind=prec)(1:this%nvar)

public pure function riemannflux3d_Model(this, sL, sR, dsdx, nhat) result(flux)

Arguments

TypeIntentOptionalAttributesName
class(Model), intent(in) :: this
real(kind=prec), intent(in) :: sL(1:this%nvar)
real(kind=prec), intent(in) :: sR(1:this%nvar)
real(kind=prec), intent(in) :: dsdx(1:this%nvar,1:3)
real(kind=prec), intent(in) :: nhat(1:3)

Return Value real(kind=prec)(1:this%nvar)

public pure function source1d_Model(this, s, dsdx) result(source)

Arguments

TypeIntentOptionalAttributesName
class(Model), intent(in) :: this
real(kind=prec), intent(in) :: s(1:this%nvar)
real(kind=prec), intent(in) :: dsdx(1:this%nvar)

Return Value real(kind=prec)(1:this%nvar)

public pure function source2d_Model(this, s, dsdx) result(source)

Arguments

TypeIntentOptionalAttributesName
class(Model), intent(in) :: this
real(kind=prec), intent(in) :: s(1:this%nvar)
real(kind=prec), intent(in) :: dsdx(1:this%nvar,1:2)

Return Value real(kind=prec)(1:this%nvar)

public pure function source3d_Model(this, s, dsdx) result(source)

Arguments

TypeIntentOptionalAttributesName
class(Model), intent(in) :: this
real(kind=prec), intent(in) :: s(1:this%nvar)
real(kind=prec), intent(in) :: dsdx(1:this%nvar,1:3)

Return Value real(kind=prec)(1:this%nvar)


Subroutines

public subroutine AdditionalFree_Model(this)

Arguments

TypeIntentOptionalAttributesName
class(Model), intent(inout) :: this

public subroutine AdditionalInit_Model(this)

Arguments

TypeIntentOptionalAttributesName
class(Model), intent(inout) :: this

public subroutine AdditionalOutput_Model(this, fileid)

Arguments

TypeIntentOptionalAttributesName
class(Model), intent(inout) :: this
integer(kind=HID_T), intent(in) :: fileid

public subroutine CalculateEntropy_Model(this)

Base method for calculating entropy of a model When this method is not overridden, the entropy is simply set to 0.0. When you develop a model built on top of this abstract class or one of its children, it is recommended that you define a convex mathematical entropy function that is used as a measure of the model stability.

Arguments

TypeIntentOptionalAttributesName
class(Model), intent(inout) :: this

public subroutine Euler_timeIntegrator(this, tn)

Arguments

TypeIntentOptionalAttributesName
class(Model), intent(inout) :: this
real(kind=prec), intent(in) :: tn

public subroutine ForwardStep_Model(this, tn, dt, ioInterval)

Forward steps the model using the associated tendency procedure and time integrator

Read more…

Arguments

TypeIntentOptionalAttributesName
class(Model), intent(inout) :: this
real(kind=prec), intent(in) :: tn
real(kind=prec), intent(in) :: dt
real(kind=prec), intent(in) :: ioInterval

public subroutine GetSimulationTime(this, t)

Returns the current simulation time stored in the model % t attribute

Arguments

TypeIntentOptionalAttributesName
class(Model), intent(in) :: this
real(kind=prec), intent(out) :: t

public subroutine IncrementIOCounter(this)

Arguments

TypeIntentOptionalAttributesName
class(Model), intent(inout) :: this

public subroutine LowStorageRK2_timeIntegrator(this, tn)

Arguments

TypeIntentOptionalAttributesName
class(Model), intent(inout) :: this
real(kind=prec), intent(in) :: tn

public subroutine LowStorageRK3_timeIntegrator(this, tn)

Arguments

TypeIntentOptionalAttributesName
class(Model), intent(inout) :: this
real(kind=prec), intent(in) :: tn

public subroutine LowStorageRK4_timeIntegrator(this, tn)

Arguments

TypeIntentOptionalAttributesName
class(Model), intent(inout) :: this
real(kind=prec), intent(in) :: tn

public subroutine PreTendency_Model(this)

PreTendency is a template routine that is used to house any additional calculations that you want to execute at the beginning of the tendency calculation routine. This default PreTendency simply returns back to the caller without executing any instructions

Read more…

Arguments

TypeIntentOptionalAttributesName
class(Model), intent(inout) :: this

public subroutine PrintType_Model(this)

Arguments

TypeIntentOptionalAttributesName
class(Model), intent(in) :: this

public subroutine ReportEntropy_Model(this)

Base method for reporting the entropy of a model to stdout. Only override this procedure if additional reporting is needed. Alternatively, if you think additional reporting would be valuable for all models, open a pull request with modifications to this base method.

Arguments

TypeIntentOptionalAttributesName
class(Model), intent(in) :: this

public subroutine ReportMetrics_Model(this)

Method that can be overridden by users to report their own custom metrics after file io

Arguments

TypeIntentOptionalAttributesName
class(Model), intent(inout) :: this

public subroutine ReportUserMetrics_Model(this)

Method that can be overridden by users to report their own custom metrics after file io

Arguments

TypeIntentOptionalAttributesName
class(Model), intent(inout) :: this

public subroutine SetNumberOfVariables_Model(this)

Arguments

TypeIntentOptionalAttributesName
class(Model), intent(inout) :: this

public subroutine SetSimulationTime(this, t)

Sets the model % t attribute with the provided simulation time

Arguments

TypeIntentOptionalAttributesName
class(Model), intent(inout) :: this
real(kind=prec), intent(in) :: t

public subroutine SetTimeIntegrator_withChar(this, integrator)

Sets the time integrator method, using a character input

Read more…

Arguments

TypeIntentOptionalAttributesName
class(Model), intent(inout) :: this
character, intent(in) :: integrator