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(in) | :: | MyLoad | |||
logical, | intent(in) | :: | RunFlag | |||
integer, | intent(in) | :: | Num |
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 UpdateIndirectAbsorberRecords(MyLoad,RunFlag, Num)
! SUBROUTINE INFORMATION:
! AUTHOR: R. Raustad (FSEC)
! DATE WRITTEN: May 2008
! PURPOSE OF THIS SUBROUTINE:
! reporting
! METHODOLOGY EMPLOYED: na
! REFERENCES: na
! USE STATEMENTS: na
USE PlantUtilities, ONLY: SafeCopyPlantNode
IMPLICIT NONE
! SUBROUTINE ARGUMENT DEFINITIONS:
REAL(r64),INTENT(IN) :: MyLoad ! current load
LOGICAL, INTENT(IN) :: RunFlag ! TRUE if Absorber operating
INTEGER, INTENT(IN) :: Num ! Absorber number
! SUBROUTINE PARAMETER DEFINITIONS:
! na
! DERIVED TYPE DEFINITIONS
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
INTEGER :: EvapInletNode ! evaporator inlet node number, water side
INTEGER :: EvapOutletNode ! evaporator outlet node number, water side
INTEGER :: CondInletNode ! condenser inlet node number, water side
INTEGER :: CondOutletNode ! condenser outlet node number, water side
INTEGER :: GeneratorInletNode ! generator inlet node number, steam/water side
INTEGER :: GeneratorOutletNode ! generator outlet node number, steam/water side
EvapInletNode = IndirectAbsorber(Num)%EvapInletNodeNum
EvapOutletNode = IndirectAbsorber(Num)%EvapOutletNodeNum
CondInletNode = IndirectAbsorber(Num)%CondInletNodeNum
CondOutletNode = IndirectAbsorber(Num)%CondOutletNodeNum
GeneratorInletNode = IndirectAbsorber(Num)%GeneratorInletNodeNum
GeneratorOutletNode = IndirectAbsorber(Num)%GeneratorOutletNodeNum
IF (MyLoad>=0 .OR. .NOT. RunFlag)THEN
!set node temperature
CALL SafeCopyPlantNode(EvapInletNode , EvapOutletNode)
CALL SafeCopyPlantNode(CondInletNode , CondOutletNode)
IndirectAbsorberReport(Num)%PumpingPower = 0.0d0
IndirectAbsorberReport(Num)%QEvap = 0.0d0
IndirectAbsorberReport(Num)%QCond = 0.0d0
IndirectAbsorberReport(Num)%QGenerator = 0.0d0
IndirectAbsorberReport(Num)%PumpingEnergy = 0.0d0
IndirectAbsorberReport(Num)%EvapEnergy = 0.0d0
IndirectAbsorberReport(Num)%CondEnergy = 0.0d0
IndirectAbsorberReport(Num)%GeneratorEnergy = 0.0d0
IndirectAbsorberReport(Num)%EvapInletTemp = Node(EvapInletNode)%Temp
IndirectAbsorberReport(Num)%CondInletTemp = Node(CondInletNode)%Temp
IndirectAbsorberReport(Num)%CondOutletTemp = Node(CondOutletNode)%Temp
IndirectAbsorberReport(Num)%EvapOutletTemp = Node(EvapOutletNode)%Temp
IndirectAbsorberReport(Num)%Evapmdot = 0.0d0
IndirectAbsorberReport(Num)%Condmdot = 0.0d0
IndirectAbsorberReport(Num)%Genmdot = 0.0d0
IndirectAbsorberReport(Num)%ActualCOP = 0.0d0
IndirectAbsorberReport(Num)%ChillerPartLoadRatio = 0.0d0
IndirectAbsorberReport(Num)%LoopLoss = 0.0d0
IndirectAbsorberReport(Num)%ChillerCyclingFrac = 0.0d0
IF(GeneratorInletNode .GT. 0)THEN
CALL SafeCopyPlantNode(GeneratorInletNode , GeneratorOutletNode)
END IF
ELSE
!set node temperatures
CALL SafeCopyPlantNode(EvapInletNode , EvapOutletNode)
CALL SafeCopyPlantNode(CondInletNode , CondOutletNode)
Node(EvapOutletNode)%Temp = EvapOutletTemp
Node(CondOutletNode)%Temp = CondOutletTemp
IndirectAbsorberReport(Num)%PumpingPower = PumpingPower
IndirectAbsorberReport(Num)%QEvap = QEvaporator
IndirectAbsorberReport(Num)%QCond = QCondenser
IndirectAbsorberReport(Num)%QGenerator = QGenerator
IndirectAbsorberReport(Num)%PumpingEnergy = PumpingEnergy
IndirectAbsorberReport(Num)%EvapEnergy = EvaporatorEnergy
IndirectAbsorberReport(Num)%CondEnergy = CondenserEnergy
IndirectAbsorberReport(Num)%GeneratorEnergy = GeneratorEnergy
IndirectAbsorberReport(Num)%EvapInletTemp = Node(EvapInletNode)%Temp
IndirectAbsorberReport(Num)%CondInletTemp = Node(CondInletNode)%Temp
IndirectAbsorberReport(Num)%CondOutletTemp = Node(CondOutletNode)%Temp
IndirectAbsorberReport(Num)%EvapOutletTemp = Node(EvapOutletNode)%Temp
IndirectAbsorberReport(Num)%Evapmdot = EvapMassFlowRate
IndirectAbsorberReport(Num)%Condmdot = CondMassFlowRate
IndirectAbsorberReport(Num)%Genmdot = GenMassFlowRate
IndirectAbsorberReport(Num)%LoopLoss = EnergyLossToEnvironment
IndirectAbsorberReport(Num)%ChillerCyclingFrac = ChillerONOFFCyclingFrac
IF (QGenerator .NE. 0.0d0) THEN
IndirectAbsorberReport(Num)%ActualCOP = QEvaporator/QGenerator
ELSE
IndirectAbsorberReport(Num)%ActualCOP = 0.0d0
END IF
IF(GeneratorInletNode .GT. 0)THEN
CALL SafeCopyPlantNode(GeneratorInletNode , GeneratorOutletNode)
Node(GeneratorOutletNode)%Temp = GenOutletTemp
END IF
END IF
RETURN
END SUBROUTINE UpdateIndirectAbsorberRecords