Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=float), | public | :: | Pout_off | ||||
real(kind=float), | public | :: | Qout | ||||
real(kind=float), | public | :: | Qout_off | ||||
type(Diversion), | public | :: | bypass |
diversion channel |
|||
logical, | public | :: | bypassIsPresent | ||||
integer(kind=short), | public | :: | c |
cell column j |
|||
integer(kind=short), | public | :: | cout |
cell column where off-stream pool outflow is discharged |
|||
logical, | public | :: | dischargeDiverted |
read observed diverted discharge when true |
|||
logical, | public | :: | dischargeDownstream |
read observed downstream discharge when true |
|||
real(kind=float), | public | :: | eFlow(365) | ||||
integer(kind=short), | public | :: | fileunit_out |
file unit for writing results |
|||
real(kind=float), | public | :: | freeFlow | ||||
real(kind=float), | public | :: | freeFlowElevation | ||||
real(kind=float), | public | :: | fullReservoirLevel |
full reservoir level (m) |
|||
type(Table), | public | :: | geometry | ||||
integer(kind=short), | public | :: | geometryDOY(365) | ||||
logical, | public | :: | highLevel |
true when reservoir is managed for high level |
|||
integer(kind=short), | public | :: | id | ||||
character(len=100), | public | :: | name | ||||
type(ObservationalNetwork), | public | :: | network | ||||
type(ObservationalNetwork), | public | :: | networkDischargeDiverted | ||||
type(ObservationalNetwork), | public | :: | networkDischargeDownstream | ||||
type(Reservoir), | public, | POINTER | :: | next | |||
integer, | public | :: | qoutRule |
determines how to compute Qout |
|||
integer(kind=short), | public | :: | r |
cell row i |
|||
logical, | public | :: | rising |
override Qout calculation only when Qin discharge is rising |
|||
integer(kind=short), | public | :: | rk |
runge-kutta order |
|||
integer(kind=short), | public | :: | rout |
cell row where off-stream pool outflow is discharged |
|||
real(kind=float), | public | :: | stage |
current stage [m] |
|||
real(kind=float), | public | :: | stageMax |
maximum stage [m] |
|||
real(kind=float), | public | :: | stageTarget |
follow a target (observed) stage [m] |
|||
type(DateTime), | public | :: | tReadNewDischargeDiverted | ||||
type(DateTime), | public | :: | tReadNewDischargeDownstream | ||||
type(DateTime), | public | :: | tReadNewStage | ||||
character(len=10), | public | :: | typ |
on-stream off-stream by-pass |
|||
integer(kind=short), | public | :: | typOut |
type ofoutflow: 1=free flow 2=target level |
|||
integer(kind=short), | public | :: | unit |
file unit target stage |
|||
integer(kind=short), | public | :: | unitDischargeDiverted |
file unit of observed diverted discharge |
|||
integer(kind=short), | public | :: | unitDischargeDownstream |
file unit of observed downstream discharge |
|||
type(Table), | public | :: | weir | ||||
integer(kind=short), | public | :: | weirDOY(365) | ||||
real(kind=float), | public | :: | xout |
x coordinate where outflow from reservoir is discharged |
|||
type(Coordinate), | public | :: | xyz |
easting, northing and elevation in real world |
|||
real(kind=float), | public | :: | yout |
y coordinate where outflow from reservoir is discharged |
TYPE Reservoir INTEGER(KIND = short) :: id INTEGER(KIND = short) :: rk !!runge-kutta order CHARACTER(LEN=100) :: name CHARACTER(len=10) :: typ !! on-stream off-stream by-pass TYPE (Coordinate) :: xyz !!easting, northing and elevation in real world INTEGER(KIND = short) :: r !!cell row i INTEGER(KIND = short) :: c !!cell column j INTEGER(KIND = short) :: rout !!cell row where off-stream pool outflow is discharged INTEGER(KIND = short) :: cout !!cell column where off-stream pool outflow is discharged REAL(KIND = float) :: stage !!current stage [m] REAL(KIND = float) :: stageMax !!maximum stage [m] REAL(KIND = float) :: stageTarget !!follow a target (observed) stage [m] INTEGER(KIND = short) :: typOut !!type ofoutflow: 1=free flow 2=target level INTEGER(KIND = short) :: unit !!file unit target stage INTEGER(KIND = short) :: unitDischargeDownstream !!file unit of observed downstream discharge INTEGER(KIND = short) :: unitDischargeDiverted !!file unit of observed diverted discharge LOGICAL :: dischargeDownstream !!read observed downstream discharge when true LOGICAL :: dischargeDiverted !!read observed diverted discharge when true INTEGER(KIND = short) :: fileunit_out !!file unit for writing results TYPE(ObservationalNetwork) :: network ! pseudo station network of target file TYPE(ObservationalNetwork) :: networkDischargeDownstream ! pseudo station network of downstream discharge TYPE(ObservationalNetwork) :: networkDischargeDiverted ! pseudo station network of diverted discharge TYPE(DateTime) :: tReadNewStage TYPE(DateTime) :: tReadNewDischargeDownstream TYPE(DateTime) :: tReadNewDischargeDiverted REAL(KIND = float) :: Qout ! [m3/s] REAL(KIND = float) :: Qout_off ! off-stream pool outflow [m3/s] REAL(KIND = float) :: Pout_off ! off-stream pool outflow of previous time step [m3/s] REAL(KIND = float) :: eFlow (365) !daily environmental flow [m3/s] REAL(KIND = float) :: freeFlow ![m3/s] when Qin < freeFlow and stage <= freeFlowElevation Qout = Qin REAL(KIND = float) :: freeFlowElevation !free flow elevation [m] TYPE(Table) :: geometry !reservoir geometry and stage-discharge relationship TYPE(Table) :: weir !used by off-stream reservoirs and bypass channels INTEGER(KIND = short) :: weirDOY (365) !weir function used for a given doy INTEGER(KIND = short) :: geometryDOY (365) !geometry function used for a given doy REAL(KIND = float) :: xout !! x coordinate where outflow from reservoir is discharged REAL(KIND = float) :: yout !! y coordinate where outflow from reservoir is discharged LOGICAL :: highLevel !! true when reservoir is managed for high level REAL(KIND = float) :: fullReservoirLevel !! full reservoir level (m) INTEGER :: qoutRule !!determines how to compute Qout LOGICAL :: rising !!override Qout calculation only when Qin discharge is rising TYPE (Diversion) :: bypass !!diversion channel LOGICAL :: bypassIsPresent TYPE (Reservoir), POINTER :: next !dynamic list END TYPE Reservoir