Nodes of different colours represent the following:
Solid arrows point from a parent (sub)module to the submodule which is descended from it. Dashed arrows point from a module being used to the module or program unit using it. Where possible, edges connecting nodes are given different colours to make them easier to distinguish in large graphs.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=r64), | intent(out) | :: | QiceMin |
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed arrows point from an interface to procedures which implement that interface. This could include the module procedures in a generic interface or the implementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are given different colours to make them easier to distinguish in large graphs.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed arrows point from an interface to procedures which implement that interface. This could include the module procedures in a generic interface or the implementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are given different colours to make them easier to distinguish in large graphs.
SUBROUTINE CalcQiceDischageMax(QiceMin)
! SUBROUTINE INFORMATION:
! PURPOSE OF THIS SUBROUTINE:
! METHODOLOGY EMPLOYED:
! REFERENCES:
! USE STATEMENTS:
USE DataPlant, ONLY : PlantLoop, SingleSetpoint, DualSetpointDeadband
IMPLICIT NONE
! SUBROUTINE ARGUMENT DEFINITIONS:
REAL(r64), INTENT(OUT) :: QiceMin
! SUBROUTINE PARAMETER DEFINITIONS:
! na
! INTERFACE BLOCK SPECIFICATIONS
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
REAL(r64) :: ITSInletTemp
REAL(r64) :: ITSOutletTemp
REAL(r64) :: LogTerm
! FLOW
! Qice is minimized when ITSInletTemp and ITSOutletTemp is almost same due to LMTD method.
! Qice is maximized(=0) when ITSOutletTemp is almost same as FreezTemp(=0).
! Set ITSInletTemp from E+.
ITSInletTemp = Node(InletNodeNum)%Temp
! Make ITSOutletTemp as almost same as ITSInletTemp
SELECT CASE (PlantLoop(IceStorage(IceNum)%LoopNum)%LoopDemandCalcScheme)
CASE (SingleSetPoint)
ITSOutletTemp = Node(OutletNodeNum)%TempSetPoint
CASE (DualSetPointDeadBand)
ITSOutletTemp = Node(OutletNodeNum)%TempSetPointHi
END SELECT
LogTerm = (ITSInletTemp - FreezTemp) / (ITSOutletTemp - FreezTemp)
IF(LogTerm <= 1) THEN
QiceMin = 0.0d0
ELSE
QiceMin = UAiceDisCh * (ITSInletTemp-ITSOutletTemp) / LOG(LogTerm)
ENDIF
RETURN
END SUBROUTINE CalcQiceDischageMax