"""
Module mwd_states
Defined at smash/solver/derived_type/mwd_states.f90 lines 40-116
This module `mwd_states` encapsulates all SMASH states.
This module is wrapped and differentiated.
StatesDT type:
</> Public
======================== =======================================
`Variables` Description
======================== =======================================
``hi`` Interception state [-] (default: 0.01) ]0, 1[
``hp`` Production state [-] (default: 0.01) ]0, 1[
``hft`` Fast transfer state [-] (default: 0.01) ]0, 1[
``hst`` Slow transfer state [-] (default: 0.01) ]0, 1[
``husl1`` Upper soil layer 1 state [-] (default: 0.01) ]0, 1[
``husl2`` Upper soil layer 2 state [-] (default: 0.01) ]0, 1[
``hlsl`` Lower soil layer state [-] (default: 0.01) ]0, 1[
``hlr`` Linear routing state [mm] (default: 1e-6) ]0, +Inf[
======================== =======================================
Hyper_StatesDT type:
It contains same States variables(see above)
contains
[1] StatesDT_initialise
[2] Hyper_StatesDT_initialise
[3] states_to_matrix
[4] matrix_to_states
[5] vector_to_states
[6] set0_states
[7] set1_states
[8] hyper_states_to_matrix
[10] matrix_to_hyper_states
[11] set0_hyper_states
[12] set1_hyper_states
[13] hyper_states_to_states
"""
from __future__ import print_function, absolute_import, division
from smash.solver._mw_derived_type_copy import copy_states
from smash.solver._f90wrap_decorator import char_array_getter_handler, char_array_setter_handler
from smash.solver._f90wrap_decorator import char_getter_handler
from smash.solver._f90wrap_decorator import getter_index_handler, setter_index_handler
from smash.solver import _solver
import f90wrap.runtime
import logging
import numpy
_arrays = {}
_objs = {}
[docs]@f90wrap.runtime.register_class("solver.StatesDT")
class StatesDT(f90wrap.runtime.FortranDerivedType):
"""
Type(name=statesdt)
Defined at smash/solver/derived_type/mwd_states.f90 lines 45-59
Notes
-----
StatesDT Derived Type.
"""
def __init__(self, mesh, handle=None):
"""
self = Statesdt(mesh)
Defined at smash/solver/derived_type/mwd_states.f90 lines 78-100
Parameters
----------
mesh : Meshdt
Returns
-------
this : Statesdt
Notes
-----
StatesDT initialisation subroutine.
only: sp, ns
only: MeshDT
only: Input_DataDT
"""
f90wrap.runtime.FortranDerivedType.__init__(self)
result = _solver.f90wrap_statesdt_initialise(mesh=mesh._handle)
self._handle = result[0] if isinstance(result, tuple) else result
def __del__(self):
"""
Destructor for class Statesdt
Defined at smash/solver/derived_type/mwd_states.f90 lines 45-59
Parameters
----------
this : Statesdt
Object to be destructed
Automatically generated destructor for statesdt
"""
if self._alloc:
try:
_solver.f90wrap_statesdt_finalise(this=self._handle)
except:
pass
def copy(self):
return copy_states(self)
@property
def hi(self):
"""
Element hi ftype=real(sp) pytype=float
Defined at smash/solver/derived_type/mwd_states.f90 line 50
"""
array_ndim, array_type, array_shape, array_handle = \
_solver.f90wrap_statesdt__array__hi(self._handle)
if array_handle in self._arrays:
hi = self._arrays[array_handle]
else:
hi = f90wrap.runtime.get_array(f90wrap.runtime.sizeof_fortran_t,
self._handle,
_solver.f90wrap_statesdt__array__hi)
self._arrays[array_handle] = hi
return hi
@hi.setter
def hi(self, hi):
self.hi[...] = hi
@property
def hp(self):
"""
Element hp ftype=real(sp) pytype=float
Defined at smash/solver/derived_type/mwd_states.f90 line 51
"""
array_ndim, array_type, array_shape, array_handle = \
_solver.f90wrap_statesdt__array__hp(self._handle)
if array_handle in self._arrays:
hp = self._arrays[array_handle]
else:
hp = f90wrap.runtime.get_array(f90wrap.runtime.sizeof_fortran_t,
self._handle,
_solver.f90wrap_statesdt__array__hp)
self._arrays[array_handle] = hp
return hp
@hp.setter
def hp(self, hp):
self.hp[...] = hp
@property
def hft(self):
"""
Element hft ftype=real(sp) pytype=float
Defined at smash/solver/derived_type/mwd_states.f90 line 52
"""
array_ndim, array_type, array_shape, array_handle = \
_solver.f90wrap_statesdt__array__hft(self._handle)
if array_handle in self._arrays:
hft = self._arrays[array_handle]
else:
hft = f90wrap.runtime.get_array(f90wrap.runtime.sizeof_fortran_t,
self._handle,
_solver.f90wrap_statesdt__array__hft)
self._arrays[array_handle] = hft
return hft
@hft.setter
def hft(self, hft):
self.hft[...] = hft
@property
def hst(self):
"""
Element hst ftype=real(sp) pytype=float
Defined at smash/solver/derived_type/mwd_states.f90 line 53
"""
array_ndim, array_type, array_shape, array_handle = \
_solver.f90wrap_statesdt__array__hst(self._handle)
if array_handle in self._arrays:
hst = self._arrays[array_handle]
else:
hst = f90wrap.runtime.get_array(f90wrap.runtime.sizeof_fortran_t,
self._handle,
_solver.f90wrap_statesdt__array__hst)
self._arrays[array_handle] = hst
return hst
@hst.setter
def hst(self, hst):
self.hst[...] = hst
@property
def husl1(self):
"""
Element husl1 ftype=real(sp) pytype=float
Defined at smash/solver/derived_type/mwd_states.f90 line 55
"""
array_ndim, array_type, array_shape, array_handle = \
_solver.f90wrap_statesdt__array__husl1(self._handle)
if array_handle in self._arrays:
husl1 = self._arrays[array_handle]
else:
husl1 = f90wrap.runtime.get_array(f90wrap.runtime.sizeof_fortran_t,
self._handle,
_solver.f90wrap_statesdt__array__husl1)
self._arrays[array_handle] = husl1
return husl1
@husl1.setter
def husl1(self, husl1):
self.husl1[...] = husl1
@property
def husl2(self):
"""
Element husl2 ftype=real(sp) pytype=float
Defined at smash/solver/derived_type/mwd_states.f90 line 56
"""
array_ndim, array_type, array_shape, array_handle = \
_solver.f90wrap_statesdt__array__husl2(self._handle)
if array_handle in self._arrays:
husl2 = self._arrays[array_handle]
else:
husl2 = f90wrap.runtime.get_array(f90wrap.runtime.sizeof_fortran_t,
self._handle,
_solver.f90wrap_statesdt__array__husl2)
self._arrays[array_handle] = husl2
return husl2
@husl2.setter
def husl2(self, husl2):
self.husl2[...] = husl2
@property
def hlsl(self):
"""
Element hlsl ftype=real(sp) pytype=float
Defined at smash/solver/derived_type/mwd_states.f90 line 57
"""
array_ndim, array_type, array_shape, array_handle = \
_solver.f90wrap_statesdt__array__hlsl(self._handle)
if array_handle in self._arrays:
hlsl = self._arrays[array_handle]
else:
hlsl = f90wrap.runtime.get_array(f90wrap.runtime.sizeof_fortran_t,
self._handle,
_solver.f90wrap_statesdt__array__hlsl)
self._arrays[array_handle] = hlsl
return hlsl
@hlsl.setter
def hlsl(self, hlsl):
self.hlsl[...] = hlsl
@property
def hlr(self):
"""
Element hlr ftype=real(sp) pytype=float
Defined at smash/solver/derived_type/mwd_states.f90 line 59
"""
array_ndim, array_type, array_shape, array_handle = \
_solver.f90wrap_statesdt__array__hlr(self._handle)
if array_handle in self._arrays:
hlr = self._arrays[array_handle]
else:
hlr = f90wrap.runtime.get_array(f90wrap.runtime.sizeof_fortran_t,
self._handle,
_solver.f90wrap_statesdt__array__hlr)
self._arrays[array_handle] = hlr
return hlr
@hlr.setter
def hlr(self, hlr):
self.hlr[...] = hlr
def __str__(self):
ret = ['<statesdt>{\n']
ret.append(' hi : ')
ret.append(repr(self.hi))
ret.append(',\n hp : ')
ret.append(repr(self.hp))
ret.append(',\n hft : ')
ret.append(repr(self.hft))
ret.append(',\n hst : ')
ret.append(repr(self.hst))
ret.append(',\n husl1 : ')
ret.append(repr(self.husl1))
ret.append(',\n husl2 : ')
ret.append(repr(self.husl2))
ret.append(',\n hlsl : ')
ret.append(repr(self.hlsl))
ret.append(',\n hlr : ')
ret.append(repr(self.hlr))
ret.append('}')
return ''.join(ret)
_dt_array_initialisers = []
@f90wrap.runtime.register_class("solver.Hyper_StatesDT")
class Hyper_StatesDT(f90wrap.runtime.FortranDerivedType):
"""
Type(name=hyper_statesdt)
Defined at smash/solver/derived_type/mwd_states.f90 lines 61-75
Notes
-----
Hyper_StatesDT Derived Type.
"""
def __init__(self, setup, handle=None):
"""
self = Hyper_Statesdt(setup)
Defined at smash/solver/derived_type/mwd_states.f90 lines 102-116
Parameters
----------
setup : Setupdt
Returns
-------
this : Hyper_Statesdt
Notes
-----
Hyper_StatesDT initialisation subroutine.
"""
f90wrap.runtime.FortranDerivedType.__init__(self)
result = _solver.f90wrap_hyper_statesdt_initialise(setup=setup._handle)
self._handle = result[0] if isinstance(result, tuple) else result
def __del__(self):
"""
Destructor for class Hyper_Statesdt
Defined at smash/solver/derived_type/mwd_states.f90 lines 61-75
Parameters
----------
this : Hyper_Statesdt
Object to be destructed
Automatically generated destructor for hyper_statesdt
"""
if self._alloc:
try:
_solver.f90wrap_hyper_statesdt_finalise(this=self._handle)
except:
pass
@property
def hi(self):
"""
Element hi ftype=real(sp) pytype=float
Defined at smash/solver/derived_type/mwd_states.f90 line 66
"""
array_ndim, array_type, array_shape, array_handle = \
_solver.f90wrap_hyper_statesdt__array__hi(self._handle)
if array_handle in self._arrays:
hi = self._arrays[array_handle]
else:
hi = f90wrap.runtime.get_array(f90wrap.runtime.sizeof_fortran_t,
self._handle,
_solver.f90wrap_hyper_statesdt__array__hi)
self._arrays[array_handle] = hi
return hi
@hi.setter
def hi(self, hi):
self.hi[...] = hi
@property
def hp(self):
"""
Element hp ftype=real(sp) pytype=float
Defined at smash/solver/derived_type/mwd_states.f90 line 67
"""
array_ndim, array_type, array_shape, array_handle = \
_solver.f90wrap_hyper_statesdt__array__hp(self._handle)
if array_handle in self._arrays:
hp = self._arrays[array_handle]
else:
hp = f90wrap.runtime.get_array(f90wrap.runtime.sizeof_fortran_t,
self._handle,
_solver.f90wrap_hyper_statesdt__array__hp)
self._arrays[array_handle] = hp
return hp
@hp.setter
def hp(self, hp):
self.hp[...] = hp
@property
def hft(self):
"""
Element hft ftype=real(sp) pytype=float
Defined at smash/solver/derived_type/mwd_states.f90 line 68
"""
array_ndim, array_type, array_shape, array_handle = \
_solver.f90wrap_hyper_statesdt__array__hft(self._handle)
if array_handle in self._arrays:
hft = self._arrays[array_handle]
else:
hft = f90wrap.runtime.get_array(f90wrap.runtime.sizeof_fortran_t,
self._handle,
_solver.f90wrap_hyper_statesdt__array__hft)
self._arrays[array_handle] = hft
return hft
@hft.setter
def hft(self, hft):
self.hft[...] = hft
@property
def hst(self):
"""
Element hst ftype=real(sp) pytype=float
Defined at smash/solver/derived_type/mwd_states.f90 line 69
"""
array_ndim, array_type, array_shape, array_handle = \
_solver.f90wrap_hyper_statesdt__array__hst(self._handle)
if array_handle in self._arrays:
hst = self._arrays[array_handle]
else:
hst = f90wrap.runtime.get_array(f90wrap.runtime.sizeof_fortran_t,
self._handle,
_solver.f90wrap_hyper_statesdt__array__hst)
self._arrays[array_handle] = hst
return hst
@hst.setter
def hst(self, hst):
self.hst[...] = hst
@property
def husl1(self):
"""
Element husl1 ftype=real(sp) pytype=float
Defined at smash/solver/derived_type/mwd_states.f90 line 71
"""
array_ndim, array_type, array_shape, array_handle = \
_solver.f90wrap_hyper_statesdt__array__husl1(self._handle)
if array_handle in self._arrays:
husl1 = self._arrays[array_handle]
else:
husl1 = f90wrap.runtime.get_array(f90wrap.runtime.sizeof_fortran_t,
self._handle,
_solver.f90wrap_hyper_statesdt__array__husl1)
self._arrays[array_handle] = husl1
return husl1
@husl1.setter
def husl1(self, husl1):
self.husl1[...] = husl1
@property
def husl2(self):
"""
Element husl2 ftype=real(sp) pytype=float
Defined at smash/solver/derived_type/mwd_states.f90 line 72
"""
array_ndim, array_type, array_shape, array_handle = \
_solver.f90wrap_hyper_statesdt__array__husl2(self._handle)
if array_handle in self._arrays:
husl2 = self._arrays[array_handle]
else:
husl2 = f90wrap.runtime.get_array(f90wrap.runtime.sizeof_fortran_t,
self._handle,
_solver.f90wrap_hyper_statesdt__array__husl2)
self._arrays[array_handle] = husl2
return husl2
@husl2.setter
def husl2(self, husl2):
self.husl2[...] = husl2
@property
def hlsl(self):
"""
Element hlsl ftype=real(sp) pytype=float
Defined at smash/solver/derived_type/mwd_states.f90 line 73
"""
array_ndim, array_type, array_shape, array_handle = \
_solver.f90wrap_hyper_statesdt__array__hlsl(self._handle)
if array_handle in self._arrays:
hlsl = self._arrays[array_handle]
else:
hlsl = f90wrap.runtime.get_array(f90wrap.runtime.sizeof_fortran_t,
self._handle,
_solver.f90wrap_hyper_statesdt__array__hlsl)
self._arrays[array_handle] = hlsl
return hlsl
@hlsl.setter
def hlsl(self, hlsl):
self.hlsl[...] = hlsl
@property
def hlr(self):
"""
Element hlr ftype=real(sp) pytype=float
Defined at smash/solver/derived_type/mwd_states.f90 line 75
"""
array_ndim, array_type, array_shape, array_handle = \
_solver.f90wrap_hyper_statesdt__array__hlr(self._handle)
if array_handle in self._arrays:
hlr = self._arrays[array_handle]
else:
hlr = f90wrap.runtime.get_array(f90wrap.runtime.sizeof_fortran_t,
self._handle,
_solver.f90wrap_hyper_statesdt__array__hlr)
self._arrays[array_handle] = hlr
return hlr
@hlr.setter
def hlr(self, hlr):
self.hlr[...] = hlr
def __str__(self):
ret = ['<hyper_statesdt>{\n']
ret.append(' hi : ')
ret.append(repr(self.hi))
ret.append(',\n hp : ')
ret.append(repr(self.hp))
ret.append(',\n hft : ')
ret.append(repr(self.hft))
ret.append(',\n hst : ')
ret.append(repr(self.hst))
ret.append(',\n husl1 : ')
ret.append(repr(self.husl1))
ret.append(',\n husl2 : ')
ret.append(repr(self.husl2))
ret.append(',\n hlsl : ')
ret.append(repr(self.hlsl))
ret.append(',\n hlr : ')
ret.append(repr(self.hlr))
ret.append('}')
return ''.join(ret)
_dt_array_initialisers = []
_array_initialisers = []
_dt_array_initialisers = []
try:
for func in _array_initialisers:
func()
except ValueError:
logging.debug('unallocated array(s) detected on import of module "mwd_states".')
for func in _dt_array_initialisers:
func()