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 SumZoneImpacts
! SUBROUTINE INFORMATION:
! AUTHOR Therese Stovall, ORNL
! DATE WRITTEN Spring 2010
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! Find the total impact of all refrigeration systems on each zone.
! METHODOLOGY EMPLOYED:
! Calculate the energy from refrigerated case credits arising from interaction between the zone and:
! refrigerated cases and walk-ins
! heat rejection from zone-located compressor-racks and zone-located air-cooled condensers
! heat absorbed by suction piping, secondary loop distribution piping, and
! secondary receiver shells
! REFERENCES:
! USE STATEMENTS:
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
! SUBROUTINE PARAMETER DEFINITIONS:
! INTERFACE BLOCK SPECIFICATIONS:
! na
! DERIVED TYPE DEFINITIONS:
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
INTEGER :: ZoneNum = 0 ! used calculating total refrigeration interactions for zone
IF(UseSysTimeStep) THEN ! air chillers
DO ZoneNum = 1,NumOfZones
CoilSysCredit(ZoneNum)%ReportH20RemovedKgPerS_FromZoneRate = &
- CoilSysCredit(ZoneNum)%LatKgPerS_ToZoneRate
CoilSysCredit(ZoneNum)%ReportLatCreditToZoneRate = &
- CoilSysCredit(ZoneNum)%LatCreditToZoneRate
CoilSysCredit(ZoneNum)%ReportLatCreditToZoneEnergy = &
- CoilSysCredit(ZoneNum)%LatCreditToZoneEnergy
! Sensible rate can be positive or negative, split into separate output variables and
! always report positive value
IF(CoilSysCredit(ZoneNum)%SenCreditToZoneRate <= 0.0d0) THEN
CoilSysCredit(ZoneNum)%ReportSenCoolingToZoneRate = &
- CoilSysCredit(ZoneNum)%SenCreditToZoneRate
CoilSysCredit(ZoneNum)%ReportSenCoolingToZoneEnergy = &
- CoilSysCredit(ZoneNum)%SenCreditToZoneEnergy
CoilSysCredit(ZoneNum)%ReportHeatingToZoneRate = 0.0d0
CoilSysCredit(ZoneNum)%ReportHeatingToZoneEnergy = 0.0d0
ELSE
CoilSysCredit(ZoneNum)%ReportSenCoolingToZoneRate = 0.0d0
CoilSysCredit(ZoneNum)%ReportSenCoolingToZoneEnergy =0.0d0
CoilSysCredit(ZoneNum)%ReportHeatingToZoneRate = &
CoilSysCredit(ZoneNum)%SenCreditToZoneRate
CoilSysCredit(ZoneNum)%ReportHeatingToZoneEnergy = &
- CoilSysCredit(ZoneNum)%SenCreditToZoneEnergy
END IF
CoilSysCredit(ZoneNum)%ReportTotCoolingToZoneRate = &
CoilSysCredit(ZoneNum)%ReportLatCreditToZoneRate + &
CoilSysCredit(ZoneNum)%ReportSenCoolingToZoneRate
CoilSysCredit(ZoneNum)%ReportTotCoolingToZoneEnergy = &
CoilSysCredit(ZoneNum)%ReportLatCreditToZoneEnergy + &
CoilSysCredit(ZoneNum)%ReportSenCoolingToZoneEnergy
END DO
END IF !UseSysTimeStep signals run for air chillers
!Can arrive here when load call to refrigeration looks for cases/walkin systems and usetimestep is .false.
IF((.NOT. UseSysTimeStep).AND.((NumSimulationCases > 0).OR.( NumSimulationWalkIns > 0)))THEN
DO ZoneNum = 1,NumOfZones
CaseWIZoneReport(ZoneNum)%SenCaseCreditToZoneEnergy = &
RefrigCaseCredit(ZoneNum)%SenCaseCreditToZone * &
TimeStepZone * SecInHour
! Latent always negative
CaseWIZoneReport(ZoneNum)%LatCoolingToZoneRate = &
- RefrigCaseCredit(ZoneNum)%LatCaseCreditToZone
CaseWIZoneReport(ZoneNum)%LatCoolingToZoneEnergy = &
CaseWIZoneReport(ZoneNum)%LatCoolingToZoneRate * &
TimeStepZone * SecInHour
! Sensible rate can be positive or negative, split into separate output variables and
! always report positive value
IF(RefrigCaseCredit(ZoneNum)%SenCaseCreditToZone <= 0.0d0) THEN
CaseWIZoneReport(ZoneNum)%SenCoolingToZoneRate = &
- RefrigCaseCredit(ZoneNum)%SenCaseCreditToZone
CaseWIZoneReport(ZoneNum)%SenCoolingToZoneEnergy = &
- RefrigCaseCredit(ZoneNum)%SenCaseCreditToZone * &
TimeStepZone * SecInHour
CaseWIZoneReport(ZoneNum)%HeatingToZoneRate = 0.0d0
CaseWIZoneReport(ZoneNum)%HeatingToZoneEnergy = 0.0d0
ELSE
CaseWIZoneReport(ZoneNum)%SenCoolingToZoneRate = 0.0d0
CaseWIZoneReport(ZoneNum)%SenCoolingToZoneEnergy = 0.0d0
CaseWIZoneReport(ZoneNum)%HeatingToZoneRate = &
RefrigCaseCredit(ZoneNum)%SenCaseCreditToZone
CaseWIZoneReport(ZoneNum)%HeatingToZoneEnergy = &
RefrigCaseCredit(ZoneNum)%SenCaseCreditToZone * &
TimeStepZone * SecInHour
END IF
CaseWIZoneReport(ZoneNum)%TotCoolingToZoneRate = &
CaseWIZoneReport(ZoneNum)%SenCoolingToZoneRate + &
CaseWIZoneReport(ZoneNum)%LatCoolingToZoneRate
CaseWIZoneReport(ZoneNum)%TotCoolingToZoneEnergy = &
CaseWIZoneReport(ZoneNum)%SenCoolingToZoneEnergy + &
CaseWIZoneReport(ZoneNum)%LatCoolingToZoneEnergy
CaseWIZoneReport(ZoneNum)%TotHtXferToZoneRate = &
RefrigCaseCredit(ZoneNum)%SenCaseCreditToZone + &
RefrigCaseCredit(ZoneNum)%LatCaseCreditToZone
CaseWIZoneReport(ZoneNum)%TotHtXferToZoneEnergy = &
CaseWIZoneReport(ZoneNum)%TotHtXferToZoneRate* &
TimeStepZone * SecInHour
END DO ! over zones for cases and walkins
END IF
RETURN
END SUBROUTINE SumZoneImpacts