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) | :: | CompNum |
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 ReportAirTerminalUserDefined(CompNum)
! SUBROUTINE INFORMATION:
! AUTHOR B. Griffith
! DATE WRITTEN March 2012
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! <description>
! METHODOLOGY EMPLOYED:
! <description>
! REFERENCES:
! na
! USE STATEMENTS:
USE PlantUtilities, ONLY: SetComponentFlowRate, SafeCopyPlantNode
USE Psychrometrics, ONLY: PsyHFnTdbW
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
INTEGER, INTENT(IN) :: CompNum
! SUBROUTINE PARAMETER DEFINITIONS:
! na
! INTERFACE BLOCK SPECIFICATIONS:
! na
! DERIVED TYPE DEFINITIONS:
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
! na
INTEGER :: Loop
Node(UserAirTerminal(CompNum)%AirLoop%InletNodeNum)%MassFlowRate = UserAirTerminal(CompNum)%AirLoop%InletMassFlowRate
Node(UserAirTerminal(CompNum)%AirLoop%OutletNodeNum)%Temp = UserAirTerminal(CompNum)%AirLoop%OutletTemp
Node(UserAirTerminal(CompNum)%AirLoop%OutletNodeNum)%HumRat = UserAirTerminal(CompNum)%AirLoop%OutletHumRat
Node(UserAirTerminal(CompNum)%AirLoop%OutletNodeNum)%MassFlowRate = UserAirTerminal(CompNum)%AirLoop%OutletMassFlowRate
Node(UserAirTerminal(CompNum)%AirLoop%OutletNodeNum)%Enthalpy = PsyHFnTdbW(UserAirTerminal(CompNum)%AirLoop%OutletTemp, &
UserAirTerminal(CompNum)%AirLoop%OutletHumRat, &
'ReportAirTerminalUserDefined')
IF (UserAirTerminal(CompNum)%SourceAir%OutletNodeNum > 0) THEN
Node(UserAirTerminal(CompNum)%SourceAir%OutletNodeNum)%Temp = UserAirTerminal(CompNum)%SourceAir%OutletTemp
Node(UserAirTerminal(CompNum)%SourceAir%OutletNodeNum)%HumRat = UserAirTerminal(CompNum)%SourceAir%OutletHumRat
Node(UserAirTerminal(CompNum)%SourceAir%OutletNodeNum)%MassFlowRate = UserAirTerminal(CompNum)%SourceAir%OutletMassFlowRate
Node(UserAirTerminal(CompNum)%SourceAir%OutletNodeNum)%Enthalpy = PsyHFnTdbW(UserAirTerminal(CompNum)%SourceAir%OutletTemp,&
UserAirTerminal(CompNum)%SourceAir%OutletHumRat, &
'ReportAirTerminalUserDefined')
ENDIF
IF (UserAirTerminal(CompNum)%NumPlantConnections > 0) THEN
DO Loop = 1, UserAirTerminal(CompNum)%NumPlantConnections
!make mass flow requests
CALL SetComponentFlowRate(UserAirTerminal(CompNum)%Loop(Loop)%MassFlowRateRequest, &
UserAirTerminal(CompNum)%Loop(Loop)%InletNodeNum, &
UserAirTerminal(CompNum)%Loop(Loop)%OutletNodeNum, &
UserAirTerminal(CompNum)%Loop(Loop)%LoopNum, &
UserAirTerminal(CompNum)%Loop(Loop)%LoopSideNum, &
UserAirTerminal(CompNum)%Loop(Loop)%BranchNum, &
UserAirTerminal(CompNum)%Loop(Loop)%CompNum )
CALL SafeCopyPlantNode(UserAirTerminal(CompNum)%Loop(Loop)%InletNodeNum, &
UserAirTerminal(CompNum)%Loop(Loop)%OutletNodeNum)
!unload Actuators to node data structure
Node(UserAirTerminal(CompNum)%Loop(Loop)%OutletNodeNum)%Temp = UserAirTerminal(CompNum)%Loop(Loop)%OutletTemp
ENDDO
ENDIF
IF (UserAirTerminal(CompNum)%Water%SuppliedByWaterSystem) THEN
WaterStorage(UserAirTerminal(CompNum)%Water%SupplyTankID)% &
VdotRequestDemand(UserAirTerminal(CompNum)%Water%SupplyTankDemandARRID) &
= UserAirTerminal(CompNum)%Water%SupplyVdotRequest
ENDIF
IF (UserAirTerminal(CompNum)%Water%CollectsToWaterSystem) THEN
WaterStorage(UserAirTerminal(CompNum)%Water%CollectionTankID)% &
VdotAvailSupply(UserAirTerminal(CompNum)%Water%CollectionTankSupplyARRID) &
= UserAirTerminal(CompNum)%Water%CollectedVdot
ENDIF
RETURN
END SUBROUTINE ReportAirTerminalUserDefined