Houses list of variables containing their names and whether they're a distribution function
Returns number of variables in list
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(VariableList), | intent(in) | :: | this |
Getter of names
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(VariableList), | intent(in) | :: | this |
Return variable name at index ind
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(VariableList), | intent(in) | :: | this | |||
integer(kind=ik), | intent(in) | :: | ind |
Return priority of variable with given index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(VariableList), | intent(in) | :: | this | |||
integer(kind=ik), | intent(in) | :: | ind |
Check whether variable with given index is a full distribution function
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(VariableList), | intent(in) | :: | this | |||
integer(kind=ik), | intent(in) | :: | ind |
Check whether variable with given index is a single harmonic
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(VariableList), | intent(in) | :: | this | |||
integer(kind=ik), | intent(in) | :: | ind |
Check whether variable with given index is a scalar
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(VariableList), | intent(in) | :: | this | |||
integer(kind=ik), | intent(in) | :: | ind |
Check whether variable with given index is a on dual grid
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(VariableList), | intent(in) | :: | this | |||
integer(kind=ik), | intent(in) | :: | ind |
Check whether variable with given index is stationary
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(VariableList), | intent(in) | :: | this | |||
integer(kind=ik), | intent(in) | :: | ind |
Check whether variable with given name is registered
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(VariableList), | intent(in) | :: | this | |||
character(len=*), | intent(in) | :: | name |
Get index of variable with given name
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(VariableList), | intent(in) | :: | this | |||
character(len=*), | intent(in) | :: | name |
Combine two lists into one
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(VariableList), | intent(in) | :: | this | |||
type(VariableList), | intent(in) | :: | other |
Variable list initialization routine
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(VariableList), | intent(inout) | :: | this |
Add variable with given name to list; isDist determines if variable is a distribution function and is .false. by default; isSingleHarmonic sets whether a given distribution is only a single harmonic - i.e. a function of just x and v isScalar tags variable as a scalar (will be stored as a dimension 1 array) isOnDualGrid marks variable as living on the dual/staggered grid (or having staggered harmonics if it's a distribution) isStationary marks variable as having d/dt=0 priority is an integer governing operations such as variable derivation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(VariableList), | intent(inout) | :: | this | |||
character(len=*), | intent(in) | :: | name | |||
logical, | intent(in), | optional | :: | isDist | ||
logical, | intent(in), | optional | :: | isSingleHarmonic | ||
logical, | intent(in), | optional | :: | isScalar | ||
logical, | intent(in), | optional | :: | isOnDualGrid | ||
logical, | intent(in), | optional | :: | isStationary | ||
integer(kind=ik), | intent(in), | optional | :: | priority |
Contains a list of variable names and records whether they are distribution functions
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
logical, | public | :: | userDefined | = | .false. |
True only if user explicitly sets it to true |
|
type(StringArray), | private, | allocatable, dimension(:) | :: | names |
Names of variables |
||
logical, | private, | allocatable, dimension(:) | :: | distf |
True for any variable which is a distribution function |
||
logical, | private, | allocatable, dimension(:) | :: | isSingleHarmonic |
True for any distribution variable which represent only a single harmonic |
||
logical, | private, | allocatable, dimension(:) | :: | isScalar |
True for any scalar variables |
||
logical, | private, | allocatable, dimension(:) | :: | isOnDualGrid |
True for any variable which lives on the dual grid |
||
logical, | private, | allocatable, dimension(:) | :: | isStationary |
True for any variable which has d/dt = 0 |
||
integer(kind=ik), | private, | allocatable, dimension(:) | :: | priority |
Integer priority for uses such as variable derivation. Defaults to 0. |
procedure, public :: isDefined => isDefinedObject | |
procedure, public :: makeDefined => makeDefinedObject | |
procedure, public :: makeUndefined => makeUndefinedObject | |
procedure, public :: getVarNames | |
procedure, public :: getVarName | |
procedure, public :: getNumVars | |
procedure, public :: getVarPriority | |
procedure, public :: addVar | |
procedure, public :: isVarDist | |
procedure, public :: isVarSingleHarmonic | |
procedure, public :: isVarScalar | |
procedure, public :: isVarNameRegistered | |
procedure, public :: isVarOnDualGrid | |
procedure, public :: isVarStationary | |
procedure, public :: getVarIndex | |
procedure, public :: combineWith | |
procedure, public :: init => initVarList |