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 | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | LoopNum | |||
logical, | intent(in) | :: | FirstHVACIteration |
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 CheckLoopExitNode(LoopNum,FirstHVACIteration)
! SUBROUTINE INFORMATION:
! AUTHOR Dan Fisher
! DATE WRITTEN October 1998
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! This subroutine sets the temperature
! and mass flow rate of the plant loop supply side exit
! node. As written, the routine calculates the exit
! temperature based on the fraction of loop demand met
! by the plant equipment. This assumes that each piece
! of operating plant equipment produced chilled/hot water
! at the loop setpoint temperature.
! METHODOLOGY EMPLOYED:
! na
! REFERENCES:
! na
! USE STATEMENTS:
USE DataGlobals, ONLY: WarmUpFlag, BeginEnvrnFlag
USE DataInterfaces, ONLY: ShowWarningError,ShowContinueError,ShowContinueErrorTimeStamp, &
ShowRecurringWarningErrorAtEnd
USE DataPlant, ONLY: PlantLoop, SupplySide,DemandSide
USE DataBranchAirLoopPlant, ONLY: MassFlowTolerance
USE DataLoopNode, ONLY: Node, NodeID
USE General, ONLY: RoundSigDigits
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
INTEGER ,INTENT(IN) :: LoopNum !plant loop counter
LOGICAL, INTENT(IN) :: FirstHVACIteration ! TRUE if First HVAC iteration of Time step
! SUBROUTINE PARAMETER DEFINITIONS:
! na
! INTERFACE BLOCK SPECIFICATIONS
! na
! DERIVED TYPE DEFINITIONS
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
INTEGER :: LoopInlet !plant loop inlet node num.
INTEGER :: LoopOutlet !plant loop outlet node num.
!set local variables: loop inlet and outlet nodes
LoopInlet = PlantLoop(LoopNum)%LoopSide(SupplySide)%NodeNumIn
LoopOutlet = PlantLoop(LoopNum)%LoopSide(SupplySide)%NodeNumOut
!Check continuity invalid...loop pumps now turned on and off
If(.not.FirstHvacIteration .and. .not.WarmUpFlag)Then
IF (ABS(Node(LoopOutlet)%MassFlowRate-Node(LoopInlet)%MassFlowRate) > MassFlowTolerance) THEN
IF (PlantLoop(LoopNum)%MFErrIndex == 0) THEN
CALL ShowWarningError ('PlantSupplySide: PlantLoop="'//TRIM(PlantLoop(LoopNum)%Name)// &
'", Error (CheckLoopExitNode) -- Mass Flow Rate Calculation. '// &
'Outlet and Inlet differ by more than tolerance.')
CALL ShowContinueErrorTimeStamp(' ')
CALL ShowContinueError('Loop inlet node='//TRIM(NodeID(LoopInlet))//', flowrate='// &
TRIM(RoundSigDigits(Node(LoopInlet)%MassFlowRate,4))//' kg/s')
CALL ShowContinueError('Loop outlet node='//TRIM(NodeID(LoopOutlet))//', flowrate='// &
TRIM(RoundSigDigits(Node(LoopOutlet)%MassFlowRate,4))//' kg/s')
CALL ShowContinueError('This loop might be helped by a bypass.')
END IF
CALL ShowRecurringWarningErrorAtEnd('PlantSupplySide: PlantLoop="'//TRIM(PlantLoop(LoopNum)%Name)// &
'", Error -- Mass Flow Rate Calculation -- continues ** ',PlantLoop(LoopNum)%MFErrIndex)
END IF
END IF
!Reset Max loop flow rate based on pump performance
Node(LoopOutlet)%MassFlowRateMax = Node(LoopInlet)%MassFlowRateMax
RETURN
END SUBROUTINE CheckLoopExitNode