term_evaluator_procedures Submodule

Contains procedures associated with the TermEvaluator class



Uses


Module Subroutines

pure module subroutine initEvaluator(this, resultVarIndex, modelIndices, termNames, accumulate, update)

TermEvaluator initialization routine

Arguments

Type IntentOptional Attributes Name
class(TermEvaluator), intent(inout) :: this
integer(kind=ik), intent(in) :: resultVarIndex

Index of variable to write the result in

integer(kind=ik), intent(in), dimension(:) :: modelIndices

Indices of models whose named term should be evaluated

type(StringArray), intent(in), dimension(:) :: termNames

Name of evaluated term corresponding to each model

logical, intent(in), optional :: accumulate

Optional flag to make the evaluator accumulate values instead of overriding them

logical, intent(in), optional :: update

Optional flag to make the evaluator update the model and terms being accessed

module subroutine evaluate(this, manipulatedModeller, outputVars, inputVars)

Implementation of abstract manipulate routine for the evaluator

Arguments

Type IntentOptional Attributes Name
class(TermEvaluator), intent(inout) :: this
class(ModellerSurrogate), intent(inout) :: manipulatedModeller

Modeller to be used in callbacks during manipulation

class(VariableContainer), intent(inout) :: outputVars

VariableContainer object to store the manipulation output

class(VariableContainer), intent(in) :: inputVars

VariableContainer object housing input data for the manipulation routine