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) | :: | PurchAirNum |
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 ReportPurchasedAir(PurchAirNum)
! SUBROUTINE INFORMATION:
! AUTHOR Russ Taylor
! DATE WRITTEN Nov 1997
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! Calculate values of report variables, if necessary.
! METHODOLOGY EMPLOYED:
! REFERENCES:
! na
! USE STATEMENTS:
USE DataHVACGlobals, ONLY: TimeStepSys
IMPLICIT NONE
! SUBROUTINE ARGUMENT DEFINITIONS:
INTEGER, INTENT(IN) :: PurchAirNum
! SUBROUTINE PARAMETER DEFINITIONS:
! na
! INTERFACE BLOCK SPECIFICATIONS:
! na
! DERIVED TYPE DEFINITIONS:
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
REAL(r64) :: ReportingConstant
! Sort out heating and cooling rates
PurchAir(PurchAirNum)%SenHeatRate = MAX(PurchAir(PurchAirNum)%SenCoilLoad,0.0d0)
PurchAir(PurchAirNum)%SenCoolRate = ABS(MIN(PurchAir(PurchAirNum)%SenCoilLoad,0.0d0))
PurchAir(PurchAirNum)%LatHeatRate = MAX(PurchAir(PurchAirNum)%LatCoilLoad,0.0d0)
PurchAir(PurchAirNum)%LatCoolRate = ABS(MIN(PurchAir(PurchAirNum)%LatCoilLoad,0.0d0))
PurchAir(PurchAirNum)%TotHeatRate = PurchAir(PurchAirNum)%SenHeatRate + PurchAir(PurchAirNum)%LatHeatRate
PurchAir(PurchAirNum)%TotCoolRate = PurchAir(PurchAirNum)%SenCoolRate + PurchAir(PurchAirNum)%LatCoolRate
PurchAir(PurchAirNum)%ZoneSenHeatRate = MAX(PurchAir(PurchAirNum)%SenOutputToZone,0.0d0)
PurchAir(PurchAirNum)%ZoneSenCoolRate = ABS(MIN(PurchAir(PurchAirNum)%SenOutputToZone,0.0d0))
PurchAir(PurchAirNum)%ZoneLatHeatRate = MAX(PurchAir(PurchAirNum)%LatOutputToZone,0.0d0)
PurchAir(PurchAirNum)%ZoneLatCoolRate = ABS(MIN(PurchAir(PurchAirNum)%LatOutputToZone,0.0d0))
PurchAir(PurchAirNum)%ZoneTotHeatRate = PurchAir(PurchAirNum)%ZoneSenHeatRate + PurchAir(PurchAirNum)%ZoneLatHeatRate
PurchAir(PurchAirNum)%ZoneTotCoolRate = PurchAir(PurchAirNum)%ZoneSenCoolRate + PurchAir(PurchAirNum)%ZoneLatCoolRate
! Sort out outdoor air "loads"
! OASenOutput = Outdoor air sensible output relative to zone conditions [W], <0 means OA is cooler than zone air
! OALatOutput = Outdoor air latent output relative to zone conditions [W], <0 means OA is drier than zone air
IF (PurchAir(PurchAirNum)%SenCoilLoad > 0.0d0) THEN ! Heating is active
PurchAir(PurchAirNum)%OASenHeatRate = ABS(MIN(PurchAir(PurchAirNum)%OASenOutput,0.0d0))
ELSE
PurchAir(PurchAirNum)%OASenHeatRate = 0.0d0
END IF
IF (PurchAir(PurchAirNum)%SenCoilLoad < 0.0d0) THEN ! Cooling is active
PurchAir(PurchAirNum)%OASenCoolRate = MAX(PurchAir(PurchAirNum)%OASenOutput,0.0d0)
ELSE
PurchAir(PurchAirNum)%OASenCoolRate = 0.0d0
END IF
IF (PurchAir(PurchAirNum)%LatCoilLoad > 0.0d0) THEN ! Humidification is active
PurchAir(PurchAirNum)%OALatHeatRate = ABS(MIN(PurchAir(PurchAirNum)%OALatOutput,0.0d0))
ELSE
PurchAir(PurchAirNum)%OALatHeatRate = 0.0d0
END IF
IF (PurchAir(PurchAirNum)%LatCoilLoad < 0.0d0) THEN ! Dehumidification is active
PurchAir(PurchAirNum)%OALatCoolRate = MAX(PurchAir(PurchAirNum)%OALatOutput,0.0d0)
ELSE
PurchAir(PurchAirNum)%OALatCoolRate = 0.0d0
ENDIF
PurchAir(PurchAirNum)%OATotHeatRate = PurchAir(PurchAirNum)%OASenHeatRate + PurchAir(PurchAirNum)%OALatHeatRate
PurchAir(PurchAirNum)%OATotCoolRate = PurchAir(PurchAirNum)%OASenCoolRate + PurchAir(PurchAirNum)%OALatCoolRate
PurchAir(PurchAirNum)%HtRecSenHeatRate = MAX(PurchAir(PurchAirNum)%HtRecSenOutput,0.0d0)
PurchAir(PurchAirNum)%HtRecSenCoolRate = ABS(MIN(PurchAir(PurchAirNum)%HtRecSenOutput,0.0d0))
PurchAir(PurchAirNum)%HtRecLatHeatRate = MAX(PurchAir(PurchAirNum)%HtRecLatOutput,0.0d0)
PurchAir(PurchAirNum)%HtRecLatCoolRate = ABS(MIN(PurchAir(PurchAirNum)%HtRecLatOutput,0.0d0))
PurchAir(PurchAirNum)%HtRecTotHeatRate = PurchAir(PurchAirNum)%HtRecSenHeatRate+PurchAir(PurchAirNum)%HtRecLatHeatRate
PurchAir(PurchAirNum)%HtRecTotCoolRate = PurchAir(PurchAirNum)%HtRecSenCoolRate+PurchAir(PurchAirNum)%HtRecLatCoolRate
ReportingConstant = TimeStepSys*SecInHour
PurchAir(PurchAirNum)%SenHeatEnergy = PurchAir(PurchAirNum)%SenHeatRate * ReportingConstant
PurchAir(PurchAirNum)%SenCoolEnergy = PurchAir(PurchAirNum)%SenCoolRate * ReportingConstant
PurchAir(PurchAirNum)%LatHeatEnergy = PurchAir(PurchAirNum)%LatHeatRate * ReportingConstant
PurchAir(PurchAirNum)%LatCoolEnergy = PurchAir(PurchAirNum)%LatCoolRate * ReportingConstant
PurchAir(PurchAirNum)%TotHeatEnergy = PurchAir(PurchAirNum)%TotHeatRate * ReportingConstant
PurchAir(PurchAirNum)%TotCoolEnergy = PurchAir(PurchAirNum)%TotCoolRate * ReportingConstant
PurchAir(PurchAirNum)%ZoneSenHeatEnergy = PurchAir(PurchAirNum)%ZoneSenHeatRate * ReportingConstant
PurchAir(PurchAirNum)%ZoneSenCoolEnergy = PurchAir(PurchAirNum)%ZoneSenCoolRate * ReportingConstant
PurchAir(PurchAirNum)%ZoneLatHeatEnergy = PurchAir(PurchAirNum)%ZoneLatHeatRate * ReportingConstant
PurchAir(PurchAirNum)%ZoneLatCoolEnergy = PurchAir(PurchAirNum)%ZoneLatCoolRate * ReportingConstant
PurchAir(PurchAirNum)%ZoneTotHeatEnergy = PurchAir(PurchAirNum)%ZoneTotHeatRate * ReportingConstant
PurchAir(PurchAirNum)%ZoneTotCoolEnergy = PurchAir(PurchAirNum)%ZoneTotCoolRate * ReportingConstant
PurchAir(PurchAirNum)%OASenHeatEnergy = PurchAir(PurchAirNum)%OASenHeatRate * ReportingConstant
PurchAir(PurchAirNum)%OASenCoolEnergy = PurchAir(PurchAirNum)%OASenCoolRate * ReportingConstant
PurchAir(PurchAirNum)%OALatHeatEnergy = PurchAir(PurchAirNum)%OALatHeatRate * ReportingConstant
PurchAir(PurchAirNum)%OALatCoolEnergy = PurchAir(PurchAirNum)%OALatCoolRate * ReportingConstant
PurchAir(PurchAirNum)%OATotHeatEnergy = PurchAir(PurchAirNum)%OATotHeatRate * ReportingConstant
PurchAir(PurchAirNum)%OATotCoolEnergy = PurchAir(PurchAirNum)%OATotCoolRate * ReportingConstant
PurchAir(PurchAirNum)%HtRecSenHeatEnergy = PurchAir(PurchAirNum)%HtRecSenHeatRate * ReportingConstant
PurchAir(PurchAirNum)%HtRecSenCoolEnergy = PurchAir(PurchAirNum)%HtRecSenCoolRate * ReportingConstant
PurchAir(PurchAirNum)%HtRecLatHeatEnergy = PurchAir(PurchAirNum)%HtRecLatHeatRate * ReportingConstant
PurchAir(PurchAirNum)%HtRecLatCoolEnergy = PurchAir(PurchAirNum)%HtRecLatCoolRate * ReportingConstant
PurchAir(PurchAirNum)%HtRecTotHeatEnergy = PurchAir(PurchAirNum)%HtRecTotHeatRate * ReportingConstant
PurchAir(PurchAirNum)%HtRecTotCoolEnergy = PurchAir(PurchAirNum)%HtRecTotCoolRate * ReportingConstant
RETURN
END SUBROUTINE ReportPurchasedAir