Normalization Derived Type

type, public, abstract, extends(Object) :: Normalization

Abstract normalization object providing access routines


Components

Type Visibility Attributes Name Initial
logical, public :: userDefined = .false.

True only if user explicitly sets it to true

type(NamedReal), private, allocatable, dimension(:) :: normalizationVals

Type-Bound Procedures

procedure, public :: isDefined => isDefinedObject

  • interface

    private pure module function isDefinedObject(this) result(defined)

    Getter for userDefined

    Arguments

    Type IntentOptional Attributes Name
    class(Object), intent(in) :: this

    Return Value logical

procedure, public :: makeDefined => makeDefinedObject

  • interface

    private pure module subroutine makeDefinedObject(this)

    Set userDefined to .true.

    Arguments

    Type IntentOptional Attributes Name
    class(Object), intent(inout) :: this

procedure, public :: makeUndefined => makeUndefinedObject

  • interface

    private pure module subroutine makeUndefinedObject(this)

    Set userDefined to .false.

    Arguments

    Type IntentOptional Attributes Name
    class(Object), intent(inout) :: this

procedure, public :: getNormalizationValue

  • interface

    private pure module function getNormalizationValue(this, name) result(val)

    Get normalization value associated with passed name

    Arguments

    Type IntentOptional Attributes Name
    class(Normalization), intent(in) :: this
    character(len=*), intent(in) :: name

    Return Value real(kind=rk)

procedure, public :: getCustomNormalization

  • interface

    private pure module function getCustomNormalization(this, names, powers, multConst) result(val)

    Get normalization value calculated as the product of normalization values with passed names raised to corresponding powers and optionally multiplied by a constant

    Arguments

    Type IntentOptional Attributes Name
    class(Normalization), intent(in) :: this
    type(StringArray), intent(in), dimension(:) :: names
    real(kind=rk), intent(in), dimension(:) :: powers
    real(kind=rk), intent(in), optional :: multConst

    Return Value real(kind=rk)

procedure, public :: setNormalizationVals

  • interface

    private pure module subroutine setNormalizationVals(this, normVals)

    Set normalization values array of normalization object

    Arguments

    Type IntentOptional Attributes Name
    class(Normalization), intent(inout) :: this
    type(NamedReal), intent(in), dimension(:) :: normVals