SUBROUTINE SetUpZoneSizingArrays
! SUBROUTINE INFORMATION:
! AUTHOR Fred Buhl
! DATE WRITTEN December 2000
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! Allocate and fill the ZoneSizing data array.
! METHODOLOGY EMPLOYED:
! Obtains data from Zone Sizing and Zone Equipment objects already input.
! REFERENCES:
! na
! USE STATEMENTS:
USE DataGlobals , ONLY : OutputFileInits, AnyEnergyManagementSystemInModel,isPulseZoneSizing
USE DataInterfaces, ONLY : SetupEMSActuator, SetupEMSInternalVariable
USE InputProcessor, ONLY : FindItemInList
USE DataHeatBalance, ONLY : People, TotPeople
USE DataHeatBalance, ONLY: Zone
USE ZoneTempPredictorCorrector, ONLY: VerifyThermostatInZone
USE EMSManager, ONLY: ManageEMS
USE ScheduleManager, ONLY: GetScheduleMaxValue
USE DataZoneEquipment, ONLY: CalcDesignSpecificationOutdoorAir
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
! na
! SUBROUTINE PARAMETER DEFINITIONS:
! na
! INTERFACE BLOCK SPECIFICATIONS
! na
! DERIVED TYPE DEFINITIONS
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
INTEGER :: DesDayNum ! design day index
!unused INTEGER :: DesDayEnvrnNum ! design day index
INTEGER :: CtrlZoneNum ! controlled zone index
INTEGER :: ZoneSizNum ! zone sizing input index
INTEGER :: NumOfTimeStepInDay ! number of zone time steps in a day
INTEGER :: TimeStepIndex ! zone time step index
REAL(r64) :: TotPeopleInZone ! total (maximum) number of people in a zone
INTEGER :: PeopleNum ! index of People structure
REAL(r64) :: OAFromPeople = 0.0d0 ! min OA calculated from zone occupancy [m3/s]
REAL(r64) :: OAFromArea = 0.0d0 ! min OA calculated from zone area and OA flow per area [m3/s]
INTEGER :: ZoneIndex ! index of Zone Sizing zone name in zone array
INTEGER :: ZoneSizIndex ! zone sizing do loop index
LOGICAL :: ErrorsFound=.false.! Set to true if errors in input, fatal at end of routine
REAL (r64) :: SchMax = 0.0d0 ! maximum people multiplier value
REAL(r64) :: OAVolumeFlowRate ! outside air flow rate (m3/s)
LOGICAL :: UseOccSchFlag ! flag to use occupancy schedule when calculating OA
LOGICAL :: UseMinOASchFlag ! flag to use min OA schedule when calculating OA
INTEGER :: DSOAPtr ! index to DesignSpecification:OutdoorAir object
DO ZoneSizIndex=1,NumZoneSizingInput
ZoneIndex = FindItemInList(ZoneSizingInput(ZoneSizIndex)%ZoneName,Zone%Name,NumOfZones)
IF (ZoneIndex == 0) THEN
CALL ShowSevereError('SetUpZoneSizingArrays: Sizing:Zone="'//TRIM(ZoneSizingInput(ZoneSizIndex)%ZoneName)// &
'" references unknown zone')
ErrorsFound = .TRUE.
END IF
IF (ANY(ZoneEquipConfig%IsControlled)) THEN
ZoneIndex = FindItemInList(ZoneSizingInput(ZoneSizIndex)%ZoneName,ZoneEquipConfig%ZoneName,NumOfZones)
IF (ZoneIndex == 0) THEN
IF (.NOT. isPulseZoneSizing) THEN
CALL ShowWarningError('SetUpZoneSizingArrays: Requested Sizing for Zone="'// &
TRIM(ZoneSizingInput(ZoneSizIndex)%ZoneName)// &
'", Zone is not found in the Controlled Zones List')
ENDIF
ELSE
ZoneSizingInput(ZoneSizIndex)%ZoneNum = ZoneIndex
ENDIF
IF (ZoneSizingInput(ZoneSizIndex)%CoolAirDesMethod == FromDDCalc .or. &
ZoneSizingInput(ZoneSizIndex)%HeatAirDesMethod == FromDDCalc) THEN
IF (.not. VerifyThermostatInZone(ZoneSizingInput(ZoneSizIndex)%ZoneName)) THEN
IF (.NOT. isPulseZoneSizing) THEN
CALL ShowWarningError('SetUpZoneSizingArrays: Requested Sizing for Zone="'// &
TRIM(ZoneSizingInput(ZoneSizIndex)%ZoneName)// &
'", Zone has no thermostat (ref: ZoneControl:Thermostat, et al)')
ENDIF
ENDIF
ENDIF
ELSE
CALL ShowSevereError('SetUpZoneSizingArrays: Zone Sizing is requested '// &
'but there are no ZoneHVAC:EquipmentConnections statements.')
ErrorsFound = .TRUE.
ENDIF
END DO
IF (ErrorsFound) THEN
CALL ShowFatalError('SetUpZoneSizingArrays: Errors found in Sizing:Zone input')
END IF
ALLOCATE(ZoneSizing(NumOfZones,TotDesDays+TotRunDesPersDays))
ALLOCATE(FinalZoneSizing(NumOfZones))
ALLOCATE(CalcZoneSizing(NumOfZones,TotDesDays+TotRunDesPersDays))
ALLOCATE(CalcFinalZoneSizing(NumOfZones))
ALLOCATE(TermUnitFinalZoneSizing(NumOfZones))
ALLOCATE(DesDayWeath(TotDesDays+TotRunDesPersDays))
NumOfTimeStepInDay = NumOfTimeStepInHour * 24
ALLOCATE(AvgData(NumOfTimeStepInDay))
ALLOCATE(CoolPeakDateHrMin(NumOfZones))
ALLOCATE(HeatPeakDateHrMin(NumOfZones))
ALLOCATE(ZoneSizThermSetPtHi(NumOfZones))
ALLOCATE(ZoneSizThermSetPtLo(NumOfZones))
CoolPeakDateHrMin = ' '
HeatPeakDateHrMin = ' '
ZoneSizThermSetPtHi = 0.0d0
ZoneSizThermSetPtLo = 1000.d0
DO DesDayNum=1,TotDesDays+TotRunDesPersDays
ALLOCATE( DesDayWeath(DesDayNum)%Temp(NumOfTimeStepInHour*24) )
ALLOCATE( DesDayWeath(DesDayNum)%HumRat(NumOfTimeStepInHour*24) )
ALLOCATE( DesDayWeath(DesDayNum)%Press(NumOfTimeStepInHour*24) )
DesDayWeath(DesDayNum)%Temp = 0.0d0
DesDayWeath(DesDayNum)%HumRat = 0.0d0
DesDayWeath(DesDayNum)%Press = 0.0d0
END DO
! Fill zone sizing arrays from input array
DO DesDayNum=1,TotDesDays+TotRunDesPersDays
DO CtrlZoneNum = 1,NumOfZones
IF (.not. ZoneEquipConfig(CtrlZoneNum)%IsControlled) CYCLE
ZoneSizing(CtrlZoneNum,DesDayNum)%ZoneName = ZoneEquipConfig(CtrlZoneNum)%ZoneName
ZoneSizing(CtrlZoneNum,DesDayNum)%ActualZoneNum = ZoneEquipConfig(CtrlZoneNum)%ActualZoneNum
IF (ZoneEquipConfig(CtrlZoneNum)%NumInletNodes > 0) THEN
ZoneSizing(CtrlZoneNum,DesDayNum)%SupplyAirNode = ZoneEquipConfig(CtrlZoneNum)%InletNode(1)
END IF
CalcZoneSizing(CtrlZoneNum,DesDayNum)%ZoneName = ZoneEquipConfig(CtrlZoneNum)%ZoneName
CalcZoneSizing(CtrlZoneNum,DesDayNum)%ActualZoneNum = ZoneEquipConfig(CtrlZoneNum)%ActualZoneNum
IF (ZoneEquipConfig(CtrlZoneNum)%NumInletNodes > 0) THEN
CalcZoneSizing(CtrlZoneNum,DesDayNum)%SupplyAirNode = ZoneEquipConfig(CtrlZoneNum)%InletNode(1)
END IF
! For each Zone Sizing object, find the corresponding controlled zone
ZoneSizNum = FindItemInList(ZoneEquipConfig(CtrlZoneNum)%ZoneName,ZoneSizingInput%ZoneName, &
NumZoneSizingInput)
IF (ZoneSizNum > 0) THEN ! move data from zone sizing input
ZoneSizing(CtrlZoneNum,DesDayNum)%ZnCoolDgnSAMethod = ZoneSizingInput(ZoneSizNum)%ZnCoolDgnSAMethod
ZoneSizing(CtrlZoneNum,DesDayNum)%ZnHeatDgnSAMethod = ZoneSizingInput(ZoneSizNum)%ZnHeatDgnSAMethod
ZoneSizing(CtrlZoneNum,DesDayNum)%CoolDesTemp = ZoneSizingInput(ZoneSizNum)%CoolDesTemp
ZoneSizing(CtrlZoneNum,DesDayNum)%HeatDesTemp = ZoneSizingInput(ZoneSizNum)%HeatDesTemp
ZoneSizing(CtrlZoneNum,DesDayNum)%CoolDesTempDiff = ZoneSizingInput(ZoneSizNum)%CoolDesTempDiff
ZoneSizing(CtrlZoneNum,DesDayNum)%HeatDesTempDiff = ZoneSizingInput(ZoneSizNum)%HeatDesTempDiff
ZoneSizing(CtrlZoneNum,DesDayNum)%CoolDesHumRat = ZoneSizingInput(ZoneSizNum)%CoolDesHumRat
ZoneSizing(CtrlZoneNum,DesDayNum)%HeatDesHumRat = ZoneSizingInput(ZoneSizNum)%HeatDesHumRat
ZoneSizing(CtrlZoneNum,DesDayNum)%OADesMethod = ZoneSizingInput(ZoneSizNum)%OADesMethod
ZoneSizing(CtrlZoneNum,DesDayNum)%DesOAFlowPPer = ZoneSizingInput(ZoneSizNum)%DesOAFlowPPer
ZoneSizing(CtrlZoneNum,DesDayNum)%DesOAFlowPerArea = ZoneSizingInput(ZoneSizNum)%DesOAFlowPerArea
ZoneSizing(CtrlZoneNum,DesDayNum)%DesOAFlow = ZoneSizingInput(ZoneSizNum)%DesOAFlow
ZoneSizing(CtrlZoneNum,DesDayNum)%CoolAirDesMethod = ZoneSizingInput(ZoneSizNum)%CoolAirDesMethod
ZoneSizing(CtrlZoneNum,DesDayNum)%HeatAirDesMethod = ZoneSizingInput(ZoneSizNum)%HeatAirDesMethod
ZoneSizing(CtrlZoneNum,DesDayNum)%InpDesCoolAirFlow = ZoneSizingInput(ZoneSizNum)%DesCoolAirFlow
ZoneSizing(CtrlZoneNum,DesDayNum)%DesCoolMinAirFlowPerArea = ZoneSizingInput(ZoneSizNum)%DesCoolMinAirFlowPerArea
ZoneSizing(CtrlZoneNum,DesDayNum)%DesCoolMinAirFlow = ZoneSizingInput(ZoneSizNum)%DesCoolMinAirFlow
ZoneSizing(CtrlZoneNum,DesDayNum)%DesCoolMinAirFlowFrac = ZoneSizingInput(ZoneSizNum)%DesCoolMinAirFlowFrac
ZoneSizing(CtrlZoneNum,DesDayNum)%InpDesHeatAirFlow = ZoneSizingInput(ZoneSizNum)%DesHeatAirFlow
ZoneSizing(CtrlZoneNum,DesDayNum)%DesHeatMaxAirFlowPerArea = ZoneSizingInput(ZoneSizNum)%DesHeatMaxAirFlowPerArea
ZoneSizing(CtrlZoneNum,DesDayNum)%DesHeatMaxAirFlow = ZoneSizingInput(ZoneSizNum)%DesHeatMaxAirFlow
ZoneSizing(CtrlZoneNum,DesDayNum)%DesHeatMaxAirFlowFrac = ZoneSizingInput(ZoneSizNum)%DesHeatMaxAirFlowFrac
ZoneSizing(CtrlZoneNum,DesDayNum)%HeatSizingFactor = ZoneSizingInput(ZoneSizNum)%HeatSizingFactor
ZoneSizing(CtrlZoneNum,DesDayNum)%CoolSizingFactor = ZoneSizingInput(ZoneSizNum)%CoolSizingFactor
CalcZoneSizing(CtrlZoneNum,DesDayNum)%ZnCoolDgnSAMethod = ZoneSizingInput(ZoneSizNum)%ZnCoolDgnSAMethod
CalcZoneSizing(CtrlZoneNum,DesDayNum)%ZnHeatDgnSAMethod = ZoneSizingInput(ZoneSizNum)%ZnHeatDgnSAMethod
CalcZoneSizing(CtrlZoneNum,DesDayNum)%CoolDesTemp = ZoneSizingInput(ZoneSizNum)%CoolDesTemp
CalcZoneSizing(CtrlZoneNum,DesDayNum)%HeatDesTemp = ZoneSizingInput(ZoneSizNum)%HeatDesTemp
CalcZoneSizing(CtrlZoneNum,DesDayNum)%CoolDesTempDiff = ZoneSizingInput(ZoneSizNum)%CoolDesTempDiff
CalcZoneSizing(CtrlZoneNum,DesDayNum)%HeatDesTempDiff = ZoneSizingInput(ZoneSizNum)%HeatDesTempDiff
CalcZoneSizing(CtrlZoneNum,DesDayNum)%CoolDesHumRat = ZoneSizingInput(ZoneSizNum)%CoolDesHumRat
CalcZoneSizing(CtrlZoneNum,DesDayNum)%HeatDesHumRat = ZoneSizingInput(ZoneSizNum)%HeatDesHumRat
CalcZoneSizing(CtrlZoneNum,DesDayNum)%OADesMethod = ZoneSizingInput(ZoneSizNum)%OADesMethod
CalcZoneSizing(CtrlZoneNum,DesDayNum)%DesOAFlowPPer = ZoneSizingInput(ZoneSizNum)%DesOAFlowPPer
CalcZoneSizing(CtrlZoneNum,DesDayNum)%DesOAFlowPerArea = ZoneSizingInput(ZoneSizNum)%DesOAFlowPerArea
CalcZoneSizing(CtrlZoneNum,DesDayNum)%DesOAFlow = ZoneSizingInput(ZoneSizNum)%DesOAFlow
CalcZoneSizing(CtrlZoneNum,DesDayNum)%CoolAirDesMethod = ZoneSizingInput(ZoneSizNum)%CoolAirDesMethod
CalcZoneSizing(CtrlZoneNum,DesDayNum)%HeatAirDesMethod = ZoneSizingInput(ZoneSizNum)%HeatAirDesMethod
CalcZoneSizing(CtrlZoneNum,DesDayNum)%InpDesCoolAirFlow = ZoneSizingInput(ZoneSizNum)%DesCoolAirFlow
CalcZoneSizing(CtrlZoneNum,DesDayNum)%DesCoolMinAirFlowPerArea = ZoneSizingInput(ZoneSizNum)%DesCoolMinAirFlowPerArea
CalcZoneSizing(CtrlZoneNum,DesDayNum)%DesCoolMinAirFlow = ZoneSizingInput(ZoneSizNum)%DesCoolMinAirFlow
CalcZoneSizing(CtrlZoneNum,DesDayNum)%DesCoolMinAirFlowFrac = ZoneSizingInput(ZoneSizNum)%DesCoolMinAirFlowFrac
CalcZoneSizing(CtrlZoneNum,DesDayNum)%InpDesHeatAirFlow = ZoneSizingInput(ZoneSizNum)%DesHeatAirFlow
CalcZoneSizing(CtrlZoneNum,DesDayNum)%DesHeatMaxAirFlowPerArea = ZoneSizingInput(ZoneSizNum)%DesHeatMaxAirFlowPerArea
CalcZoneSizing(CtrlZoneNum,DesDayNum)%DesHeatMaxAirFlow = ZoneSizingInput(ZoneSizNum)%DesHeatMaxAirFlow
CalcZoneSizing(CtrlZoneNum,DesDayNum)%DesHeatMaxAirFlowFrac = ZoneSizingInput(ZoneSizNum)%DesHeatMaxAirFlowFrac
CalcZoneSizing(CtrlZoneNum,DesDayNum)%HeatSizingFactor = ZoneSizingInput(ZoneSizNum)%HeatSizingFactor
CalcZoneSizing(CtrlZoneNum,DesDayNum)%CoolSizingFactor = ZoneSizingInput(ZoneSizNum)%CoolSizingFactor
ELSE ! Every controlled zone must be simulated, so set missing inputs to the first
!LKL I think this is sufficient for warning -- no need for array
IF (DesDayNum == 1) THEN
IF (.NOT. isPulseZoneSizing) THEN
CALL ShowWarningError('SetUpZoneSizingArrays: Sizing for Zone="'// &
trim(ZoneEquipConfig(CtrlZoneNum)%ZoneName)//'" will use Sizing:Zone specifications listed for Zone="'// &
trim(ZoneSizingInput(1)%ZoneName)//'".')
ENDIF
! Following needs to be implemented first:
! CALL ShowContinueError(' A better option would be to set up global ZoneList objects for Sizing:Zone objects.')
ENDIF
ZoneSizing(CtrlZoneNum,DesDayNum)%ZnCoolDgnSAMethod = ZoneSizingInput(1)%ZnCoolDgnSAMethod
ZoneSizing(CtrlZoneNum,DesDayNum)%ZnHeatDgnSAMethod = ZoneSizingInput(1)%ZnHeatDgnSAMethod
ZoneSizing(CtrlZoneNum,DesDayNum)%CoolDesTemp = ZoneSizingInput(1)%CoolDesTemp
ZoneSizing(CtrlZoneNum,DesDayNum)%HeatDesTemp = ZoneSizingInput(1)%HeatDesTemp
ZoneSizing(CtrlZoneNum,DesDayNum)%CoolDesTempDiff = ZoneSizingInput(1)%CoolDesTempDiff
ZoneSizing(CtrlZoneNum,DesDayNum)%HeatDesTempDiff = ZoneSizingInput(1)%HeatDesTempDiff
ZoneSizing(CtrlZoneNum,DesDayNum)%CoolDesHumRat = ZoneSizingInput(1)%CoolDesHumRat
ZoneSizing(CtrlZoneNum,DesDayNum)%HeatDesHumRat = ZoneSizingInput(1)%HeatDesHumRat
ZoneSizing(CtrlZoneNum,DesDayNum)%OADesMethod = ZoneSizingInput(1)%OADesMethod
ZoneSizing(CtrlZoneNum,DesDayNum)%DesOAFlowPPer = ZoneSizingInput(1)%DesOAFlowPPer
ZoneSizing(CtrlZoneNum,DesDayNum)%DesOAFlowPerArea = ZoneSizingInput(1)%DesOAFlowPerArea
ZoneSizing(CtrlZoneNum,DesDayNum)%DesOAFlow = ZoneSizingInput(1)%DesOAFlow
ZoneSizing(CtrlZoneNum,DesDayNum)%CoolAirDesMethod = ZoneSizingInput(1)%CoolAirDesMethod
ZoneSizing(CtrlZoneNum,DesDayNum)%HeatAirDesMethod = ZoneSizingInput(1)%HeatAirDesMethod
ZoneSizing(CtrlZoneNum,DesDayNum)%InpDesCoolAirFlow = ZoneSizingInput(1)%DesCoolAirFlow
ZoneSizing(CtrlZoneNum,DesDayNum)%DesCoolMinAirFlowPerArea = ZoneSizingInput(1)%DesCoolMinAirFlowPerArea
ZoneSizing(CtrlZoneNum,DesDayNum)%DesCoolMinAirFlow = ZoneSizingInput(1)%DesCoolMinAirFlow
ZoneSizing(CtrlZoneNum,DesDayNum)%DesCoolMinAirFlowFrac = ZoneSizingInput(1)%DesCoolMinAirFlowFrac
ZoneSizing(CtrlZoneNum,DesDayNum)%InpDesHeatAirFlow = ZoneSizingInput(1)%DesHeatAirFlow
ZoneSizing(CtrlZoneNum,DesDayNum)%DesHeatMaxAirFlowPerArea = ZoneSizingInput(1)%DesHeatMaxAirFlowPerArea
ZoneSizing(CtrlZoneNum,DesDayNum)%DesHeatMaxAirFlow = ZoneSizingInput(1)%DesHeatMaxAirFlow
ZoneSizing(CtrlZoneNum,DesDayNum)%DesHeatMaxAirFlowFrac = ZoneSizingInput(1)%DesHeatMaxAirFlowFrac
ZoneSizing(CtrlZoneNum,DesDayNum)%HeatSizingFactor = ZoneSizingInput(1)%HeatSizingFactor
ZoneSizing(CtrlZoneNum,DesDayNum)%CoolSizingFactor = ZoneSizingInput(1)%CoolSizingFactor
CalcZoneSizing(CtrlZoneNum,DesDayNum)%ZnCoolDgnSAMethod = ZoneSizingInput(1)%ZnCoolDgnSAMethod
CalcZoneSizing(CtrlZoneNum,DesDayNum)%ZnHeatDgnSAMethod = ZoneSizingInput(1)%ZnHeatDgnSAMethod
CalcZoneSizing(CtrlZoneNum,DesDayNum)%CoolDesTemp = ZoneSizingInput(1)%CoolDesTemp
CalcZoneSizing(CtrlZoneNum,DesDayNum)%HeatDesTemp = ZoneSizingInput(1)%HeatDesTemp
CalcZoneSizing(CtrlZoneNum,DesDayNum)%CoolDesTempDiff = ZoneSizingInput(1)%CoolDesTempDiff
CalcZoneSizing(CtrlZoneNum,DesDayNum)%HeatDesTempDiff = ZoneSizingInput(1)%HeatDesTempDiff
CalcZoneSizing(CtrlZoneNum,DesDayNum)%CoolDesHumRat = ZoneSizingInput(1)%CoolDesHumRat
CalcZoneSizing(CtrlZoneNum,DesDayNum)%HeatDesHumRat = ZoneSizingInput(1)%HeatDesHumRat
CalcZoneSizing(CtrlZoneNum,DesDayNum)%OADesMethod = ZoneSizingInput(1)%OADesMethod
CalcZoneSizing(CtrlZoneNum,DesDayNum)%DesOAFlowPPer = ZoneSizingInput(1)%DesOAFlowPPer
CalcZoneSizing(CtrlZoneNum,DesDayNum)%DesOAFlowPerArea = ZoneSizingInput(1)%DesOAFlowPerArea
CalcZoneSizing(CtrlZoneNum,DesDayNum)%DesOAFlow = ZoneSizingInput(1)%DesOAFlow
CalcZoneSizing(CtrlZoneNum,DesDayNum)%CoolAirDesMethod = ZoneSizingInput(1)%CoolAirDesMethod
CalcZoneSizing(CtrlZoneNum,DesDayNum)%HeatAirDesMethod = ZoneSizingInput(1)%HeatAirDesMethod
CalcZoneSizing(CtrlZoneNum,DesDayNum)%InpDesCoolAirFlow = ZoneSizingInput(1)%DesCoolAirFlow
CalcZoneSizing(CtrlZoneNum,DesDayNum)%DesCoolMinAirFlowPerArea = ZoneSizingInput(1)%DesCoolMinAirFlowPerArea
CalcZoneSizing(CtrlZoneNum,DesDayNum)%DesCoolMinAirFlow = ZoneSizingInput(1)%DesCoolMinAirFlow
CalcZoneSizing(CtrlZoneNum,DesDayNum)%DesCoolMinAirFlowFrac = ZoneSizingInput(1)%DesCoolMinAirFlowFrac
CalcZoneSizing(CtrlZoneNum,DesDayNum)%InpDesHeatAirFlow = ZoneSizingInput(1)%DesHeatAirFlow
CalcZoneSizing(CtrlZoneNum,DesDayNum)%DesHeatMaxAirFlowPerArea = ZoneSizingInput(1)%DesHeatMaxAirFlowPerArea
CalcZoneSizing(CtrlZoneNum,DesDayNum)%DesHeatMaxAirFlow = ZoneSizingInput(1)%DesHeatMaxAirFlow
CalcZoneSizing(CtrlZoneNum,DesDayNum)%DesHeatMaxAirFlowFrac = ZoneSizingInput(1)%DesHeatMaxAirFlowFrac
CalcZoneSizing(CtrlZoneNum,DesDayNum)%HeatSizingFactor = ZoneSizingInput(1)%HeatSizingFactor
CalcZoneSizing(CtrlZoneNum,DesDayNum)%CoolSizingFactor = ZoneSizingInput(1)%CoolSizingFactor
END IF
ALLOCATE(ZoneSizing(CtrlZoneNum,DesDayNum)%HeatFlowSeq(NumOfTimeStepInDay))
ALLOCATE(ZoneSizing(CtrlZoneNum,DesDayNum)%CoolFlowSeq(NumOfTimeStepInDay))
ALLOCATE(ZoneSizing(CtrlZoneNum,DesDayNum)%HeatLoadSeq(NumOfTimeStepInDay))
ALLOCATE(ZoneSizing(CtrlZoneNum,DesDayNum)%CoolLoadSeq(NumOfTimeStepInDay))
ALLOCATE(ZoneSizing(CtrlZoneNum,DesDayNum)%HeatZoneTempSeq(NumOfTimeStepInDay))
ALLOCATE(ZoneSizing(CtrlZoneNum,DesDayNum)%DesHeatSetPtSeq(NumOfTimeStepInDay))
ALLOCATE(ZoneSizing(CtrlZoneNum,DesDayNum)%CoolZoneTempSeq(NumOfTimeStepInDay))
ALLOCATE(ZoneSizing(CtrlZoneNum,DesDayNum)%DesCoolSetPtSeq(NumOfTimeStepInDay))
ALLOCATE(ZoneSizing(CtrlZoneNum,DesDayNum)%HeatOutTempSeq(NumOfTimeStepInDay))
ALLOCATE(ZoneSizing(CtrlZoneNum,DesDayNum)%CoolOutTempSeq(NumOfTimeStepInDay))
ALLOCATE(ZoneSizing(CtrlZoneNum,DesDayNum)%HeatZoneRetTempSeq(NumOfTimeStepInDay))
ALLOCATE(ZoneSizing(CtrlZoneNum,DesDayNum)%HeatTstatTempSeq(NumOfTimeStepInDay))
ALLOCATE(ZoneSizing(CtrlZoneNum,DesDayNum)%CoolZoneRetTempSeq(NumOfTimeStepInDay))
ALLOCATE(ZoneSizing(CtrlZoneNum,DesDayNum)%CoolTstatTempSeq(NumOfTimeStepInDay))
ALLOCATE(ZoneSizing(CtrlZoneNum,DesDayNum)%HeatZoneHumRatSeq(NumOfTimeStepInDay))
ALLOCATE(ZoneSizing(CtrlZoneNum,DesDayNum)%CoolZoneHumRatSeq(NumOfTimeStepInDay))
ALLOCATE(ZoneSizing(CtrlZoneNum,DesDayNum)%HeatOutHumRatSeq(NumOfTimeStepInDay))
ALLOCATE(ZoneSizing(CtrlZoneNum,DesDayNum)%CoolOutHumRatSeq(NumOfTimeStepInDay))
ALLOCATE(CalcZoneSizing(CtrlZoneNum,DesDayNum)%HeatFlowSeq(NumOfTimeStepInDay))
ALLOCATE(CalcZoneSizing(CtrlZoneNum,DesDayNum)%CoolFlowSeq(NumOfTimeStepInDay))
ALLOCATE(CalcZoneSizing(CtrlZoneNum,DesDayNum)%HeatLoadSeq(NumOfTimeStepInDay))
ALLOCATE(CalcZoneSizing(CtrlZoneNum,DesDayNum)%CoolLoadSeq(NumOfTimeStepInDay))
ALLOCATE(CalcZoneSizing(CtrlZoneNum,DesDayNum)%HeatZoneTempSeq(NumOfTimeStepInDay))
ALLOCATE(CalcZoneSizing(CtrlZoneNum,DesDayNum)%CoolZoneTempSeq(NumOfTimeStepInDay))
ALLOCATE(CalcZoneSizing(CtrlZoneNum,DesDayNum)%HeatOutTempSeq(NumOfTimeStepInDay))
ALLOCATE(CalcZoneSizing(CtrlZoneNum,DesDayNum)%CoolOutTempSeq(NumOfTimeStepInDay))
ALLOCATE(CalcZoneSizing(CtrlZoneNum,DesDayNum)%HeatZoneRetTempSeq(NumOfTimeStepInDay))
ALLOCATE(CalcZoneSizing(CtrlZoneNum,DesDayNum)%HeatTstatTempSeq(NumOfTimeStepInDay))
ALLOCATE(CalcZoneSizing(CtrlZoneNum,DesDayNum)%CoolZoneRetTempSeq(NumOfTimeStepInDay))
ALLOCATE(CalcZoneSizing(CtrlZoneNum,DesDayNum)%CoolTstatTempSeq(NumOfTimeStepInDay))
ALLOCATE(CalcZoneSizing(CtrlZoneNum,DesDayNum)%HeatZoneHumRatSeq(NumOfTimeStepInDay))
ALLOCATE(CalcZoneSizing(CtrlZoneNum,DesDayNum)%CoolZoneHumRatSeq(NumOfTimeStepInDay))
ALLOCATE(CalcZoneSizing(CtrlZoneNum,DesDayNum)%HeatOutHumRatSeq(NumOfTimeStepInDay))
ALLOCATE(CalcZoneSizing(CtrlZoneNum,DesDayNum)%CoolOutHumRatSeq(NumOfTimeStepInDay))
DO TimeStepIndex=1,NumOfTimeStepInDay
ZoneSizing(CtrlZoneNum,DesDayNum)%HeatFlowSeq(TimeStepIndex) = 0.0d0
ZoneSizing(CtrlZoneNum,DesDayNum)%CoolFlowSeq(TimeStepIndex) = 0.0d0
ZoneSizing(CtrlZoneNum,DesDayNum)%HeatLoadSeq(TimeStepIndex) = 0.0d0
ZoneSizing(CtrlZoneNum,DesDayNum)%CoolLoadSeq(TimeStepIndex) = 0.0d0
ZoneSizing(CtrlZoneNum,DesDayNum)%HeatZoneTempSeq(TimeStepIndex) = 0.0d0
ZoneSizing(CtrlZoneNum,DesDayNum)%DesHeatSetPtSeq(TimeStepIndex) = 0.0d0
ZoneSizing(CtrlZoneNum,DesDayNum)%CoolZoneTempSeq(TimeStepIndex) = 0.0d0
ZoneSizing(CtrlZoneNum,DesDayNum)%DesCoolSetPtSeq(TimeStepIndex) = 0.0d0
ZoneSizing(CtrlZoneNum,DesDayNum)%HeatOutTempSeq(TimeStepIndex) = 0.0d0
ZoneSizing(CtrlZoneNum,DesDayNum)%CoolOutTempSeq(TimeStepIndex) = 0.0d0
ZoneSizing(CtrlZoneNum,DesDayNum)%HeatZoneRetTempSeq(TimeStepIndex) = 0.0d0
ZoneSizing(CtrlZoneNum,DesDayNum)%HeatTstatTempSeq(TimeStepIndex) = 0.0d0
ZoneSizing(CtrlZoneNum,DesDayNum)%CoolZoneRetTempSeq(TimeStepIndex) = 0.0d0
ZoneSizing(CtrlZoneNum,DesDayNum)%CoolTstatTempSeq(TimeStepIndex) = 0.0d0
ZoneSizing(CtrlZoneNum,DesDayNum)%HeatZoneHumRatSeq(TimeStepIndex) = 0.0d0
ZoneSizing(CtrlZoneNum,DesDayNum)%CoolZoneHumRatSeq(TimeStepIndex) = 0.0d0
ZoneSizing(CtrlZoneNum,DesDayNum)%HeatOutHumRatSeq(TimeStepIndex) = 0.0d0
ZoneSizing(CtrlZoneNum,DesDayNum)%CoolOutHumRatSeq(TimeStepIndex) = 0.0d0
CalcZoneSizing(CtrlZoneNum,DesDayNum)%HeatFlowSeq(TimeStepIndex) = 0.0d0
CalcZoneSizing(CtrlZoneNum,DesDayNum)%CoolFlowSeq(TimeStepIndex) = 0.0d0
CalcZoneSizing(CtrlZoneNum,DesDayNum)%HeatLoadSeq(TimeStepIndex) = 0.0d0
CalcZoneSizing(CtrlZoneNum,DesDayNum)%CoolLoadSeq(TimeStepIndex) = 0.0d0
CalcZoneSizing(CtrlZoneNum,DesDayNum)%HeatZoneTempSeq(TimeStepIndex) = 0.0d0
CalcZoneSizing(CtrlZoneNum,DesDayNum)%CoolZoneTempSeq(TimeStepIndex) = 0.0d0
CalcZoneSizing(CtrlZoneNum,DesDayNum)%HeatOutTempSeq(TimeStepIndex) = 0.0d0
CalcZoneSizing(CtrlZoneNum,DesDayNum)%CoolOutTempSeq(TimeStepIndex) = 0.0d0
CalcZoneSizing(CtrlZoneNum,DesDayNum)%HeatZoneRetTempSeq(TimeStepIndex) = 0.0d0
CalcZoneSizing(CtrlZoneNum,DesDayNum)%HeatTstatTempSeq(TimeStepIndex) = 0.0d0
CalcZoneSizing(CtrlZoneNum,DesDayNum)%CoolZoneRetTempSeq(TimeStepIndex) = 0.0d0
CalcZoneSizing(CtrlZoneNum,DesDayNum)%CoolTstatTempSeq(TimeStepIndex) = 0.0d0
CalcZoneSizing(CtrlZoneNum,DesDayNum)%HeatZoneHumRatSeq(TimeStepIndex) = 0.0d0
CalcZoneSizing(CtrlZoneNum,DesDayNum)%CoolZoneHumRatSeq(TimeStepIndex) = 0.0d0
CalcZoneSizing(CtrlZoneNum,DesDayNum)%HeatOutHumRatSeq(TimeStepIndex) = 0.0d0
CalcZoneSizing(CtrlZoneNum,DesDayNum)%CoolOutHumRatSeq(TimeStepIndex) = 0.0d0
END DO
END DO
END DO
DO CtrlZoneNum = 1,NumOfZones
IF (.not. ZoneEquipConfig(CtrlZoneNum)%IsControlled) CYCLE
FinalZoneSizing(CtrlZoneNum)%ZoneName = ZoneEquipConfig(CtrlZoneNum)%ZoneName
FinalZoneSizing(CtrlZoneNum)%ActualZoneNum = ZoneEquipConfig(CtrlZoneNum)%ActualZoneNum
IF (ZoneEquipConfig(CtrlZoneNum)%NumInletNodes > 0) THEN
FinalZoneSizing(CtrlZoneNum)%SupplyAirNode = ZoneEquipConfig(CtrlZoneNum)%InletNode(1)
END IF
CalcFinalZoneSizing(CtrlZoneNum)%ZoneName = ZoneEquipConfig(CtrlZoneNum)%ZoneName
CalcFinalZoneSizing(CtrlZoneNum)%ActualZoneNum = ZoneEquipConfig(CtrlZoneNum)%ActualZoneNum
IF (ZoneEquipConfig(CtrlZoneNum)%NumInletNodes > 0) THEN
CalcFinalZoneSizing(CtrlZoneNum)%SupplyAirNode = ZoneEquipConfig(CtrlZoneNum)%InletNode(1)
END IF
ZoneSizNum = FindItemInList(ZoneEquipConfig(CtrlZoneNum)%ZoneName,ZoneSizingInput%ZoneName,NumZoneSizingInput)
IF (ZoneSizNum > 0) THEN ! move data from zone sizing input
FinalZoneSizing(CtrlZoneNum)%ZnCoolDgnSAMethod = ZoneSizingInput(ZoneSizNum)%ZnCoolDgnSAMethod
FinalZoneSizing(CtrlZoneNum)%ZnHeatDgnSAMethod = ZoneSizingInput(ZoneSizNum)%ZnHeatDgnSAMethod
FinalZoneSizing(CtrlZoneNum)%CoolDesTemp = ZoneSizingInput(ZoneSizNum)%CoolDesTemp
FinalZoneSizing(CtrlZoneNum)%HeatDesTemp = ZoneSizingInput(ZoneSizNum)%HeatDesTemp
FinalZoneSizing(CtrlZoneNum)%CoolDesTempDiff = ZoneSizingInput(ZoneSizNum)%CoolDesTempDiff
FinalZoneSizing(CtrlZoneNum)%HeatDesTempDiff = ZoneSizingInput(ZoneSizNum)%HeatDesTempDiff
FinalZoneSizing(CtrlZoneNum)%CoolDesHumRat = ZoneSizingInput(ZoneSizNum)%CoolDesHumRat
FinalZoneSizing(CtrlZoneNum)%HeatDesHumRat = ZoneSizingInput(ZoneSizNum)%HeatDesHumRat
FinalZoneSizing(CtrlZoneNum)%ZoneDesignSpecOAIndex = ZoneSizingInput(ZoneSizNum)%ZoneDesignSpecOAIndex
FinalZoneSizing(CtrlZoneNum)%OADesMethod = ZoneSizingInput(ZoneSizNum)%OADesMethod
FinalZoneSizing(CtrlZoneNum)%DesOAFlowPPer = ZoneSizingInput(ZoneSizNum)%DesOAFlowPPer
FinalZoneSizing(CtrlZoneNum)%DesOAFlowPerArea = ZoneSizingInput(ZoneSizNum)%DesOAFlowPerArea
FinalZoneSizing(CtrlZoneNum)%DesOAFlow = ZoneSizingInput(ZoneSizNum)%DesOAFlow
FinalZoneSizing(CtrlZoneNum)%CoolAirDesMethod = ZoneSizingInput(ZoneSizNum)%CoolAirDesMethod
FinalZoneSizing(CtrlZoneNum)%HeatAirDesMethod = ZoneSizingInput(ZoneSizNum)%HeatAirDesMethod
FinalZoneSizing(CtrlZoneNum)%InpDesCoolAirFlow = ZoneSizingInput(ZoneSizNum)%DesCoolAirFlow
FinalZoneSizing(CtrlZoneNum)%DesCoolMinAirFlowPerArea = ZoneSizingInput(ZoneSizNum)%DesCoolMinAirFlowPerArea
FinalZoneSizing(CtrlZoneNum)%DesCoolMinAirFlow = ZoneSizingInput(ZoneSizNum)%DesCoolMinAirFlow
FinalZoneSizing(CtrlZoneNum)%DesCoolMinAirFlowFrac = ZoneSizingInput(ZoneSizNum)%DesCoolMinAirFlowFrac
FinalZoneSizing(CtrlZoneNum)%InpDesHeatAirFlow = ZoneSizingInput(ZoneSizNum)%DesHeatAirFlow
FinalZoneSizing(CtrlZoneNum)%DesHeatMaxAirFlowPerArea = ZoneSizingInput(ZoneSizNum)%DesHeatMaxAirFlowPerArea
FinalZoneSizing(CtrlZoneNum)%DesHeatMaxAirFlow = ZoneSizingInput(ZoneSizNum)%DesHeatMaxAirFlow
FinalZoneSizing(CtrlZoneNum)%DesHeatMaxAirFlowFrac = ZoneSizingInput(ZoneSizNum)%DesHeatMaxAirFlowFrac
FinalZoneSizing(CtrlZoneNum)%HeatSizingFactor = ZoneSizingInput(ZoneSizNum)%HeatSizingFactor
FinalZoneSizing(CtrlZoneNum)%CoolSizingFactor = ZoneSizingInput(ZoneSizNum)%CoolSizingFactor
FinalZoneSizing(CtrlZoneNum)%ZoneADEffCooling = ZoneSizingInput(ZoneSizNum)%ZoneADEffCooling
FinalZoneSizing(CtrlZoneNum)%ZoneADEffHeating = ZoneSizingInput(ZoneSizNum)%ZoneADEffHeating
FinalZoneSizing(CtrlZoneNum)%ZoneSecondaryRecirculation = ZoneSizingInput(ZoneSizNum)%ZoneSecondaryRecirculation
CalcFinalZoneSizing(CtrlZoneNum)%ZnCoolDgnSAMethod = ZoneSizingInput(ZoneSizNum)%ZnCoolDgnSAMethod
CalcFinalZoneSizing(CtrlZoneNum)%ZnHeatDgnSAMethod = ZoneSizingInput(ZoneSizNum)%ZnHeatDgnSAMethod
CalcFinalZoneSizing(CtrlZoneNum)%CoolDesTemp = ZoneSizingInput(ZoneSizNum)%CoolDesTemp
CalcFinalZoneSizing(CtrlZoneNum)%HeatDesTemp = ZoneSizingInput(ZoneSizNum)%HeatDesTemp
CalcFinalZoneSizing(CtrlZoneNum)%CoolDesTempDiff = ZoneSizingInput(ZoneSizNum)%CoolDesTempDiff
CalcFinalZoneSizing(CtrlZoneNum)%HeatDesTempDiff = ZoneSizingInput(ZoneSizNum)%HeatDesTempDiff
CalcFinalZoneSizing(CtrlZoneNum)%CoolDesHumRat = ZoneSizingInput(ZoneSizNum)%CoolDesHumRat
CalcFinalZoneSizing(CtrlZoneNum)%HeatDesHumRat = ZoneSizingInput(ZoneSizNum)%HeatDesHumRat
CalcFinalZoneSizing(CtrlZoneNum)%ZoneDesignSpecOAIndex = ZoneSizingInput(ZoneSizNum)%ZoneDesignSpecOAIndex
CalcFinalZoneSizing(CtrlZoneNum)%OADesMethod = ZoneSizingInput(ZoneSizNum)%OADesMethod
CalcFinalZoneSizing(CtrlZoneNum)%DesOAFlowPPer = ZoneSizingInput(ZoneSizNum)%DesOAFlowPPer
CalcFinalZoneSizing(CtrlZoneNum)%DesOAFlowPerArea = ZoneSizingInput(ZoneSizNum)%DesOAFlowPerArea
CalcFinalZoneSizing(CtrlZoneNum)%DesOAFlow = ZoneSizingInput(ZoneSizNum)%DesOAFlow
CalcFinalZoneSizing(CtrlZoneNum)%CoolAirDesMethod = ZoneSizingInput(ZoneSizNum)%CoolAirDesMethod
CalcFinalZoneSizing(CtrlZoneNum)%HeatAirDesMethod = ZoneSizingInput(ZoneSizNum)%HeatAirDesMethod
CalcFinalZoneSizing(CtrlZoneNum)%InpDesCoolAirFlow = ZoneSizingInput(ZoneSizNum)%DesCoolAirFlow
CalcFinalZoneSizing(CtrlZoneNum)%DesCoolMinAirFlowPerArea = ZoneSizingInput(ZoneSizNum)%DesCoolMinAirFlowPerArea
CalcFinalZoneSizing(CtrlZoneNum)%DesCoolMinAirFlow = ZoneSizingInput(ZoneSizNum)%DesCoolMinAirFlow
CalcFinalZoneSizing(CtrlZoneNum)%DesCoolMinAirFlowFrac = ZoneSizingInput(ZoneSizNum)%DesCoolMinAirFlowFrac
CalcFinalZoneSizing(CtrlZoneNum)%InpDesHeatAirFlow = ZoneSizingInput(ZoneSizNum)%DesHeatAirFlow
CalcFinalZoneSizing(CtrlZoneNum)%DesHeatMaxAirFlowPerArea = ZoneSizingInput(ZoneSizNum)%DesHeatMaxAirFlowPerArea
CalcFinalZoneSizing(CtrlZoneNum)%DesHeatMaxAirFlow = ZoneSizingInput(ZoneSizNum)%DesHeatMaxAirFlow
CalcFinalZoneSizing(CtrlZoneNum)%DesHeatMaxAirFlowFrac = ZoneSizingInput(ZoneSizNum)%DesHeatMaxAirFlowFrac
CalcFinalZoneSizing(CtrlZoneNum)%HeatSizingFactor = ZoneSizingInput(ZoneSizNum)%HeatSizingFactor
CalcFinalZoneSizing(CtrlZoneNum)%CoolSizingFactor = ZoneSizingInput(ZoneSizNum)%CoolSizingFactor
CalcFinalZoneSizing(CtrlZoneNum)%ZoneADEffCooling = ZoneSizingInput(ZoneSizNum)%ZoneADEffCooling
CalcFinalZoneSizing(CtrlZoneNum)%ZoneADEffHeating = ZoneSizingInput(ZoneSizNum)%ZoneADEffHeating
ELSE ! Every controlled zone must be simulated, so set missing inputs to the first
FinalZoneSizing(CtrlZoneNum)%ZnCoolDgnSAMethod = ZoneSizingInput(1)%ZnCoolDgnSAMethod
FinalZoneSizing(CtrlZoneNum)%ZnHeatDgnSAMethod = ZoneSizingInput(1)%ZnHeatDgnSAMethod
FinalZoneSizing(CtrlZoneNum)%CoolDesTemp = ZoneSizingInput(1)%CoolDesTemp
FinalZoneSizing(CtrlZoneNum)%HeatDesTemp = ZoneSizingInput(1)%HeatDesTemp
FinalZoneSizing(CtrlZoneNum)%CoolDesTempDiff = ZoneSizingInput(1)%CoolDesTempDiff
FinalZoneSizing(CtrlZoneNum)%HeatDesTempDiff = ZoneSizingInput(1)%HeatDesTempDiff
FinalZoneSizing(CtrlZoneNum)%CoolDesHumRat = ZoneSizingInput(1)%CoolDesHumRat
FinalZoneSizing(CtrlZoneNum)%HeatDesHumRat = ZoneSizingInput(1)%HeatDesHumRat
FinalZoneSizing(CtrlZoneNum)%ZoneDesignSpecOAIndex = ZoneSizingInput(1)%ZoneDesignSpecOAIndex
FinalZoneSizing(CtrlZoneNum)%OADesMethod = ZoneSizingInput(1)%OADesMethod
FinalZoneSizing(CtrlZoneNum)%DesOAFlowPPer = ZoneSizingInput(1)%DesOAFlowPPer
FinalZoneSizing(CtrlZoneNum)%DesOAFlowPerArea = ZoneSizingInput(1)%DesOAFlowPerArea
FinalZoneSizing(CtrlZoneNum)%DesOAFlow = ZoneSizingInput(1)%DesOAFlow
FinalZoneSizing(CtrlZoneNum)%CoolAirDesMethod = ZoneSizingInput(1)%CoolAirDesMethod
FinalZoneSizing(CtrlZoneNum)%HeatAirDesMethod = ZoneSizingInput(1)%HeatAirDesMethod
FinalZoneSizing(CtrlZoneNum)%InpDesCoolAirFlow = ZoneSizingInput(1)%DesCoolAirFlow
FinalZoneSizing(CtrlZoneNum)%DesCoolMinAirFlowPerArea = ZoneSizingInput(1)%DesCoolMinAirFlowPerArea
FinalZoneSizing(CtrlZoneNum)%DesCoolMinAirFlow = ZoneSizingInput(1)%DesCoolMinAirFlow
FinalZoneSizing(CtrlZoneNum)%DesCoolMinAirFlowFrac = ZoneSizingInput(1)%DesCoolMinAirFlowFrac
FinalZoneSizing(CtrlZoneNum)%InpDesHeatAirFlow = ZoneSizingInput(1)%DesHeatAirFlow
FinalZoneSizing(CtrlZoneNum)%DesHeatMaxAirFlowPerArea = ZoneSizingInput(1)%DesHeatMaxAirFlowPerArea
FinalZoneSizing(CtrlZoneNum)%DesHeatMaxAirFlow = ZoneSizingInput(1)%DesHeatMaxAirFlow
FinalZoneSizing(CtrlZoneNum)%DesHeatMaxAirFlowFrac = ZoneSizingInput(1)%DesHeatMaxAirFlowFrac
FinalZoneSizing(CtrlZoneNum)%HeatSizingFactor = ZoneSizingInput(1)%HeatSizingFactor
FinalZoneSizing(CtrlZoneNum)%CoolSizingFactor = ZoneSizingInput(1)%CoolSizingFactor
FinalZoneSizing(CtrlZoneNum)%ZoneADEffCooling = ZoneSizingInput(1)%ZoneADEffCooling
FinalZoneSizing(CtrlZoneNum)%ZoneADEffHeating = ZoneSizingInput(1)%ZoneADEffHeating
FinalZoneSizing(CtrlZoneNum)%ZoneSecondaryRecirculation = ZoneSizingInput(1)%ZoneSecondaryRecirculation
CalcFinalZoneSizing(CtrlZoneNum)%ZnCoolDgnSAMethod = ZoneSizingInput(1)%ZnCoolDgnSAMethod
CalcFinalZoneSizing(CtrlZoneNum)%ZnHeatDgnSAMethod = ZoneSizingInput(1)%ZnHeatDgnSAMethod
CalcFinalZoneSizing(CtrlZoneNum)%CoolDesTemp = ZoneSizingInput(1)%CoolDesTemp
CalcFinalZoneSizing(CtrlZoneNum)%HeatDesTemp = ZoneSizingInput(1)%HeatDesTemp
CalcFinalZoneSizing(CtrlZoneNum)%CoolDesTempDiff = ZoneSizingInput(1)%CoolDesTempDiff
CalcFinalZoneSizing(CtrlZoneNum)%HeatDesTempDiff = ZoneSizingInput(1)%HeatDesTempDiff
CalcFinalZoneSizing(CtrlZoneNum)%CoolDesHumRat = ZoneSizingInput(1)%CoolDesHumRat
CalcFinalZoneSizing(CtrlZoneNum)%HeatDesHumRat = ZoneSizingInput(1)%HeatDesHumRat
CalcFinalZoneSizing(CtrlZoneNum)%ZoneDesignSpecOAIndex = ZoneSizingInput(1)%ZoneDesignSpecOAIndex
CalcFinalZoneSizing(CtrlZoneNum)%OADesMethod = ZoneSizingInput(1)%OADesMethod
CalcFinalZoneSizing(CtrlZoneNum)%DesOAFlowPPer = ZoneSizingInput(1)%DesOAFlowPPer
CalcFinalZoneSizing(CtrlZoneNum)%DesOAFlowPerArea = ZoneSizingInput(1)%DesOAFlowPerArea
CalcFinalZoneSizing(CtrlZoneNum)%DesOAFlow = ZoneSizingInput(1)%DesOAFlow
CalcFinalZoneSizing(CtrlZoneNum)%CoolAirDesMethod = ZoneSizingInput(1)%CoolAirDesMethod
CalcFinalZoneSizing(CtrlZoneNum)%HeatAirDesMethod = ZoneSizingInput(1)%HeatAirDesMethod
CalcFinalZoneSizing(CtrlZoneNum)%InpDesCoolAirFlow = ZoneSizingInput(1)%DesCoolAirFlow
CalcFinalZoneSizing(CtrlZoneNum)%DesCoolMinAirFlowPerArea = ZoneSizingInput(1)%DesCoolMinAirFlowPerArea
CalcFinalZoneSizing(CtrlZoneNum)%DesCoolMinAirFlow = ZoneSizingInput(1)%DesCoolMinAirFlow
CalcFinalZoneSizing(CtrlZoneNum)%DesCoolMinAirFlowFrac = ZoneSizingInput(1)%DesCoolMinAirFlowFrac
CalcFinalZoneSizing(CtrlZoneNum)%InpDesHeatAirFlow = ZoneSizingInput(1)%DesHeatAirFlow
CalcFinalZoneSizing(CtrlZoneNum)%DesHeatMaxAirFlowPerArea = ZoneSizingInput(1)%DesHeatMaxAirFlowPerArea
CalcFinalZoneSizing(CtrlZoneNum)%DesHeatMaxAirFlow = ZoneSizingInput(1)%DesHeatMaxAirFlow
CalcFinalZoneSizing(CtrlZoneNum)%DesHeatMaxAirFlowFrac = ZoneSizingInput(1)%DesHeatMaxAirFlowFrac
CalcFinalZoneSizing(CtrlZoneNum)%HeatSizingFactor = ZoneSizingInput(1)%HeatSizingFactor
CalcFinalZoneSizing(CtrlZoneNum)%CoolSizingFactor = ZoneSizingInput(1)%CoolSizingFactor
CalcFinalZoneSizing(CtrlZoneNum)%ZoneADEffCooling = ZoneSizingInput(1)%ZoneADEffCooling
CalcFinalZoneSizing(CtrlZoneNum)%ZoneADEffHeating = ZoneSizingInput(1)%ZoneADEffHeating
END IF
ALLOCATE(FinalZoneSizing(CtrlZoneNum)%HeatFlowSeq(NumOfTimeStepInDay))
ALLOCATE(FinalZoneSizing(CtrlZoneNum)%CoolFlowSeq(NumOfTimeStepInDay))
ALLOCATE(FinalZoneSizing(CtrlZoneNum)%HeatLoadSeq(NumOfTimeStepInDay))
ALLOCATE(FinalZoneSizing(CtrlZoneNum)%CoolLoadSeq(NumOfTimeStepInDay))
ALLOCATE(FinalZoneSizing(CtrlZoneNum)%HeatZoneTempSeq(NumOfTimeStepInDay))
ALLOCATE(FinalZoneSizing(CtrlZoneNum)%CoolZoneTempSeq(NumOfTimeStepInDay))
ALLOCATE(FinalZoneSizing(CtrlZoneNum)%HeatOutTempSeq(NumOfTimeStepInDay))
ALLOCATE(FinalZoneSizing(CtrlZoneNum)%CoolOutTempSeq(NumOfTimeStepInDay))
ALLOCATE(FinalZoneSizing(CtrlZoneNum)%HeatZoneRetTempSeq(NumOfTimeStepInDay))
ALLOCATE(FinalZoneSizing(CtrlZoneNum)%HeatTstatTempSeq(NumOfTimeStepInDay))
ALLOCATE(FinalZoneSizing(CtrlZoneNum)%CoolZoneRetTempSeq(NumOfTimeStepInDay))
ALLOCATE(FinalZoneSizing(CtrlZoneNum)%CoolTstatTempSeq(NumOfTimeStepInDay))
ALLOCATE(FinalZoneSizing(CtrlZoneNum)%HeatZoneHumRatSeq(NumOfTimeStepInDay))
ALLOCATE(FinalZoneSizing(CtrlZoneNum)%CoolZoneHumRatSeq(NumOfTimeStepInDay))
ALLOCATE(FinalZoneSizing(CtrlZoneNum)%HeatOutHumRatSeq(NumOfTimeStepInDay))
ALLOCATE(FinalZoneSizing(CtrlZoneNum)%CoolOutHumRatSeq(NumOfTimeStepInDay))
ALLOCATE(CalcFinalZoneSizing(CtrlZoneNum)%HeatFlowSeq(NumOfTimeStepInDay))
ALLOCATE(CalcFinalZoneSizing(CtrlZoneNum)%CoolFlowSeq(NumOfTimeStepInDay))
ALLOCATE(CalcFinalZoneSizing(CtrlZoneNum)%HeatLoadSeq(NumOfTimeStepInDay))
ALLOCATE(CalcFinalZoneSizing(CtrlZoneNum)%CoolLoadSeq(NumOfTimeStepInDay))
ALLOCATE(CalcFinalZoneSizing(CtrlZoneNum)%HeatZoneTempSeq(NumOfTimeStepInDay))
ALLOCATE(CalcFinalZoneSizing(CtrlZoneNum)%CoolZoneTempSeq(NumOfTimeStepInDay))
ALLOCATE(CalcFinalZoneSizing(CtrlZoneNum)%HeatOutTempSeq(NumOfTimeStepInDay))
ALLOCATE(CalcFinalZoneSizing(CtrlZoneNum)%CoolOutTempSeq(NumOfTimeStepInDay))
ALLOCATE(CalcFinalZoneSizing(CtrlZoneNum)%HeatZoneRetTempSeq(NumOfTimeStepInDay))
ALLOCATE(CalcFinalZoneSizing(CtrlZoneNum)%HeatTstatTempSeq(NumOfTimeStepInDay))
ALLOCATE(CalcFinalZoneSizing(CtrlZoneNum)%CoolZoneRetTempSeq(NumOfTimeStepInDay))
ALLOCATE(CalcFinalZoneSizing(CtrlZoneNum)%CoolTstatTempSeq(NumOfTimeStepInDay))
ALLOCATE(CalcFinalZoneSizing(CtrlZoneNum)%HeatZoneHumRatSeq(NumOfTimeStepInDay))
ALLOCATE(CalcFinalZoneSizing(CtrlZoneNum)%CoolZoneHumRatSeq(NumOfTimeStepInDay))
ALLOCATE(CalcFinalZoneSizing(CtrlZoneNum)%HeatOutHumRatSeq(NumOfTimeStepInDay))
ALLOCATE(CalcFinalZoneSizing(CtrlZoneNum)%CoolOutHumRatSeq(NumOfTimeStepInDay))
DO TimeStepIndex=1,NumOfTimeStepInDay
FinalZoneSizing(CtrlZoneNum)%HeatFlowSeq(TimeStepIndex) = 0.0d0
FinalZoneSizing(CtrlZoneNum)%CoolFlowSeq(TimeStepIndex) = 0.0d0
FinalZoneSizing(CtrlZoneNum)%HeatLoadSeq(TimeStepIndex) = 0.0d0
FinalZoneSizing(CtrlZoneNum)%CoolLoadSeq(TimeStepIndex) = 0.0d0
FinalZoneSizing(CtrlZoneNum)%HeatZoneTempSeq(TimeStepIndex) = 0.0d0
FinalZoneSizing(CtrlZoneNum)%CoolZoneTempSeq(TimeStepIndex) = 0.0d0
FinalZoneSizing(CtrlZoneNum)%HeatOutTempSeq(TimeStepIndex) = 0.0d0
FinalZoneSizing(CtrlZoneNum)%CoolOutTempSeq(TimeStepIndex) = 0.0d0
FinalZoneSizing(CtrlZoneNum)%HeatZoneRetTempSeq(TimeStepIndex) = 0.0d0
FinalZoneSizing(CtrlZoneNum)%HeatTstatTempSeq(TimeStepIndex) = 0.0d0
FinalZoneSizing(CtrlZoneNum)%CoolZoneRetTempSeq(TimeStepIndex) = 0.0d0
FinalZoneSizing(CtrlZoneNum)%CoolTstatTempSeq(TimeStepIndex) = 0.0d0
FinalZoneSizing(CtrlZoneNum)%HeatZoneHumRatSeq(TimeStepIndex) = 0.0d0
FinalZoneSizing(CtrlZoneNum)%CoolZoneHumRatSeq(TimeStepIndex) = 0.0d0
FinalZoneSizing(CtrlZoneNum)%HeatOutHumRatSeq(TimeStepIndex) = 0.0d0
FinalZoneSizing(CtrlZoneNum)%CoolOutHumRatSeq(TimeStepIndex) = 0.0d0
CalcFinalZoneSizing(CtrlZoneNum)%HeatFlowSeq(TimeStepIndex) = 0.0d0
CalcFinalZoneSizing(CtrlZoneNum)%CoolFlowSeq(TimeStepIndex) = 0.0d0
CalcFinalZoneSizing(CtrlZoneNum)%HeatLoadSeq(TimeStepIndex) = 0.0d0
CalcFinalZoneSizing(CtrlZoneNum)%CoolLoadSeq(TimeStepIndex) = 0.0d0
CalcFinalZoneSizing(CtrlZoneNum)%HeatZoneTempSeq(TimeStepIndex) = 0.0d0
CalcFinalZoneSizing(CtrlZoneNum)%CoolZoneTempSeq(TimeStepIndex) = 0.0d0
CalcFinalZoneSizing(CtrlZoneNum)%HeatOutTempSeq(TimeStepIndex) = 0.0d0
CalcFinalZoneSizing(CtrlZoneNum)%CoolOutTempSeq(TimeStepIndex) = 0.0d0
CalcFinalZoneSizing(CtrlZoneNum)%HeatZoneRetTempSeq(TimeStepIndex) = 0.0d0
CalcFinalZoneSizing(CtrlZoneNum)%HeatTstatTempSeq(TimeStepIndex) = 0.0d0
CalcFinalZoneSizing(CtrlZoneNum)%CoolZoneRetTempSeq(TimeStepIndex) = 0.0d0
CalcFinalZoneSizing(CtrlZoneNum)%CoolTstatTempSeq(TimeStepIndex) = 0.0d0
CalcFinalZoneSizing(CtrlZoneNum)%HeatZoneHumRatSeq(TimeStepIndex) = 0.0d0
CalcFinalZoneSizing(CtrlZoneNum)%CoolZoneHumRatSeq(TimeStepIndex) = 0.0d0
CalcFinalZoneSizing(CtrlZoneNum)%HeatOutHumRatSeq(TimeStepIndex) = 0.0d0
CalcFinalZoneSizing(CtrlZoneNum)%CoolOutHumRatSeq(TimeStepIndex) = 0.0d0
END DO
! setup CalcFinalZoneSizing structure for use with EMS, some as sensors, some as actuators
IF (AnyEnergyManagementSystemInModel) Then !
!actuate REAL(r64) :: DesHeatMassFlow = 0.0d0 ! zone design heating air mass flow rate [kg/s]
CALL SetupEMSInternalVariable('Final Zone Design Heating Air Mass Flow Rate', FinalZoneSizing(CtrlZoneNum)%ZoneName, &
'[kg/s]', FinalZoneSizing(CtrlZoneNum)%DesHeatMassFlow )
CALL SetupEMSInternalVariable('Intermediate Zone Design Heating Air Mass Flow Rate', &
CalcFinalZoneSizing(CtrlZoneNum)%ZoneName, '[kg/s]', &
CalcFinalZoneSizing(CtrlZoneNum)%DesHeatMassFlow )
CALL SetupEMSActuator('Sizing:Zone', CalcFinalZoneSizing(CtrlZoneNum)%ZoneName, 'Zone Design Heating Air Mass Flow Rate', &
'[kg/s]', CalcFinalZoneSizing(CtrlZoneNum)%EMSOverrideDesHeatMassOn, &
CalcFinalZoneSizing(CtrlZoneNum)%EMSValueDesHeatMassFlow )
!actuate REAL(r64) :: DesCoolMassFlow = 0.0d0 ! zone design cooling air mass flow rate [kg/s]
CALL SetupEMSInternalVariable('Final Zone Design Cooling Air Mass Flow Rate', FinalZoneSizing(CtrlZoneNum)%ZoneName, &
'[kg/s]', FinalZoneSizing(CtrlZoneNum)%DesCoolMassFlow )
CALL SetupEMSInternalVariable('Intermediate Zone Design Cooling Air Mass Flow Rate', &
CalcFinalZoneSizing(CtrlZoneNum)%ZoneName, '[kg/s]', &
CalcFinalZoneSizing(CtrlZoneNum)%DesCoolMassFlow )
CALL SetupEMSActuator('Sizing:Zone', CalcFinalZoneSizing(CtrlZoneNum)%ZoneName, 'Zone Design Cooling Air Mass Flow Rate', &
'[kg/s]', CalcFinalZoneSizing(CtrlZoneNum)%EMSOverrideDesCoolMassOn, &
CalcFinalZoneSizing(CtrlZoneNum)%EMSValueDesCoolMassFlow )
!actuate REAL(r64) :: DesHeatLoad = 0.0d0 ! zone design heating load [W]
CALL SetupEMSInternalVariable('Final Zone Design Heating Load', FinalZoneSizing(CtrlZoneNum)%ZoneName, '[W]', &
FinalZoneSizing(CtrlZoneNum)%DesHeatLoad )
CALL SetupEMSInternalVariable('Intermediate Zone Design Heating Load', CalcFinalZoneSizing(CtrlZoneNum)%ZoneName, '[W]', &
CalcFinalZoneSizing(CtrlZoneNum)%DesHeatLoad )
CALL SetupEMSActuator('Sizing:Zone', CalcFinalZoneSizing(CtrlZoneNum)%ZoneName, 'Zone Design Heating Load', '[W]', &
CalcFinalZoneSizing(CtrlZoneNum)%EMSOverrideDesHeatLoadOn, &
CalcFinalZoneSizing(CtrlZoneNum)%EMSValueDesHeatLoad )
!actuate REAL(r64) :: DesCoolLoad = 0.0d0 ! zone design cooling load [W]
CALL SetupEMSInternalVariable('Final Zone Design Cooling Load', FinalZoneSizing(CtrlZoneNum)%ZoneName, '[W]', &
FinalZoneSizing(CtrlZoneNum)%DesCoolLoad )
CALL SetupEMSInternalVariable('Intermediate Zone Design Cooling Load', CalcFinalZoneSizing(CtrlZoneNum)%ZoneName, '[W]', &
CalcFinalZoneSizing(CtrlZoneNum)%DesCoolLoad )
CALL SetupEMSActuator('Sizing:Zone', CalcFinalZoneSizing(CtrlZoneNum)%ZoneName, 'Zone Design Cooling Load', '[W]', &
CalcFinalZoneSizing(CtrlZoneNum)%EMSOverrideDesCoolLoadOn, &
CalcFinalZoneSizing(CtrlZoneNum)%EMSValueDesCoolLoad )
!sensor? REAL(r64) :: DesHeatDens = 0.0d0 ! zone design heating air density [kg/m3]
CALL SetupEMSInternalVariable('Final Zone Design Heating Air Density', FinalZoneSizing(CtrlZoneNum)%ZoneName, '[kg/m3]', &
FinalZoneSizing(CtrlZoneNum)%DesHeatDens )
CALL SetupEMSInternalVariable('Intermediate Zone Design Heating Air Density', CalcFinalZoneSizing(CtrlZoneNum)%ZoneName, &
'[kg/m3]', CalcFinalZoneSizing(CtrlZoneNum)%DesHeatDens )
!sensor? REAL(r64) :: DesCoolDens = 0.0d0 ! zone design cooling air density [kg/m3]
CALL SetupEMSInternalVariable('Final Zone Design Cooling Air Density', FinalZoneSizing(CtrlZoneNum)%ZoneName, '[kg/m3]', &
FinalZoneSizing(CtrlZoneNum)%DesCoolDens )
CALL SetupEMSInternalVariable('Intermediate Zone Design Cooling Air Density', CalcFinalZoneSizing(CtrlZoneNum)%ZoneName, &
'[kg/m3]', CalcFinalZoneSizing(CtrlZoneNum)%DesCoolDens )
!actuate REAL(r64) :: DesHeatVolFlow = 0.0d0 ! zone design heating air volume flow rate [m3/s]
CALL SetupEMSInternalVariable('Final Zone Design Heating Volume Flow', FinalZoneSizing(CtrlZoneNum)%ZoneName, '[m3/s]', &
FinalZoneSizing(CtrlZoneNum)%DesHeatVolFlow )
CALL SetupEMSInternalVariable('Intermediate Zone Design Heating Volume Flow', CalcFinalZoneSizing(CtrlZoneNum)%ZoneName, &
'[m3/s]', CalcFinalZoneSizing(CtrlZoneNum)%DesHeatVolFlow )
CALL SetupEMSActuator('Sizing:Zone', CalcFinalZoneSizing(CtrlZoneNum)%ZoneName, 'Zone Design Heating Vol Flow', '[m3/s]', &
CalcFinalZoneSizing(CtrlZoneNum)%EMSOverrideDesHeatVolOn, &
CalcFinalZoneSizing(CtrlZoneNum)%EMSValueDesHeatVolFlow )
!actuate REAL(r64) :: DesCoolVolFlow = 0.0d0 ! zone design cooling air volume flow rate [m3/s]
CALL SetupEMSInternalVariable('Final Zone Design Cooling Volume Flow', FinalZoneSizing(CtrlZoneNum)%ZoneName, '[m3/s]', &
FinalZoneSizing(CtrlZoneNum)%DesCoolVolFlow )
CALL SetupEMSInternalVariable('Intermediate Zone Design Cooling Volume Flow', CalcFinalZoneSizing(CtrlZoneNum)%ZoneName, &
'[m3/s]', CalcFinalZoneSizing(CtrlZoneNum)%DesCoolVolFlow )
CALL SetupEMSActuator('Sizing:Zone', CalcFinalZoneSizing(CtrlZoneNum)%ZoneName, 'Zone Design Cooling Vol Flow', '[m3/s]', &
CalcFinalZoneSizing(CtrlZoneNum)%EMSOverrideDesCoolVolOn, &
CalcFinalZoneSizing(CtrlZoneNum)%EMSValueDesCoolVolFlow )
!actuate REAL(r64) :: DesHeatVolFlowMax = 0.0d0 ! zone design heating maximum air volume flow rate [m3/s]
!actuate REAL(r64) :: DesCoolVolFlowMin = 0.0d0 ! zone design cooling minimum air volume flow rate [m3/s]
CALL SetupEMSInternalVariable('Zone Outdoor Air Design Volume Flow Rate', CalcFinalZoneSizing(CtrlZoneNum)%ZoneName, &
'[m3/s]', CalcFinalZoneSizing(CtrlZoneNum)%MinOA )
ENDIF
END DO
! Use the max occupancy data from the PEOPLE structure to calculate design min OA for each zone
! Calculate the zone design minimum outside air flow rate from the 3 Zone Sizing OA inputs and
! from the specified OA method
DO CtrlZoneNum = 1,NumOfZones
IF (.not. ZoneEquipConfig(CtrlZoneNum)%IsControlled) CYCLE
! Use the max occupancy data from the PEOPLE structure to calculate design min OA for each zone
! from the outside air flow per person input
TotPeopleInZone = 0.0d0
ZoneIndex = FinalZoneSizing(CtrlZoneNum)%ActualZoneNum
DO PeopleNum=1,TotPeople
IF (People(PeopleNum)%ZonePtr == FinalZoneSizing(CtrlZoneNum)%ActualZoneNum) THEN
TotPeopleInZone = TotPeopleInZone + (People(PeopleNum)%NumberOfPeople &
* Zone(FinalZoneSizing(CtrlZoneNum)%ActualZoneNum)%Multiplier &
* Zone(FinalZoneSizing(CtrlZoneNum)%ActualZoneNum)%ListMultiplier)
SchMax = GetScheduleMaxValue(People(PeopleNum)%NumberOfPeoplePtr)
IF (SchMax > 0) THEN
FinalZoneSizing(CtrlZoneNum)%ZonePeakOccupancy = TotPeopleInZone*SchMax
ELSE
FinalZoneSizing(CtrlZoneNum)%ZonePeakOccupancy = TotPeopleInZone
ENDIF
END IF
END DO
FinalZoneSizing(CtrlZoneNum)%TotalZoneFloorArea = (Zone(ZoneIndex)%FloorArea &
* Zone(FinalZoneSizing(CtrlZoneNum)%ActualZoneNum)%Multiplier &
* Zone(FinalZoneSizing(CtrlZoneNum)%ActualZoneNum)%ListMultiplier)
OAFromPeople = FinalZoneSizing(CtrlZoneNum)%DesOAFlowPPer * TotPeopleInZone
OAFromArea = FinalZoneSizing(CtrlZoneNum)%DesOAFlowPerArea * FinalZoneSizing(CtrlZoneNum)%TotalZoneFloorArea
FinalZoneSizing(CtrlZoneNum)%TotPeopleInZone = TotPeopleInZone
FinalZoneSizing(CtrlZoneNum)%TotalOAFromPeople = OAFromPeople
FinalZoneSizing(CtrlZoneNum)%TotalOAFromArea = OAFromArea
! Calculate the design min OA flow rate for this zone
UseOccSchFlag = .FALSE.
UseMinOASchFlag = .FALSE.
DSOAPtr = FinalZoneSizing(CtrlZoneNum)%ZoneDesignSpecOAIndex
OAVolumeFlowRate = CalcDesignSpecificationOutdoorAir(DSOAPtr, ZoneIndex, UseOccSchFlag, UseMinOASchFlag)
! Zone(ZoneIndex)%Multiplier and Zone(ZoneIndex)%ListMultiplier applied in CalcDesignSpecificationOutdoorAir
FinalZoneSizing(CtrlZoneNum)%MinOA = OAVolumeFlowRate
CalcFinalZoneSizing(CtrlZoneNum)%MinOA = OAVolumeFlowRate
IF (FinalZoneSizing(CtrlZoneNum)%ZoneADEffCooling > 0.0d0 .OR. FinalZoneSizing(CtrlZoneNum)%ZoneADEffHeating > 0.0d0) THEN
FinalZoneSizing(CtrlZoneNum)%MinOA = FinalZoneSizing(CtrlZoneNum)%MinOA / Min(FinalZoneSizing(CtrlZoneNum)%ZoneADEffCooling, &
FinalZoneSizing(CtrlZoneNum)%ZoneADEffHeating)
CalcFinalZoneSizing(CtrlZoneNum)%MinOA = FinalZoneSizing(CtrlZoneNum)%MinOA
END IF
! calculated zone design flow rates automatically take into account zone multipliers, since the zone
! loads are multiplied (in ZoneTempPredictorCorrector.f90). Flow rates derived directly from
! user inputs need to be explicitly multiplied by the zone multipliers.
FinalZoneSizing(CtrlZoneNum)%DesCoolMinAirFlow2 = FinalZoneSizing(CtrlZoneNum)%DesCoolMinAirFlowPerArea &
* Zone(ZoneIndex)%FloorArea &
* Zone(ZoneIndex)%Multiplier * Zone(ZoneIndex)%ListMultiplier
CalcFinalZoneSizing(CtrlZoneNum)%DesCoolMinAirFlow2 = CalcFinalZoneSizing(CtrlZoneNum)%DesCoolMinAirFlowPerArea &
* Zone(ZoneIndex)%FloorArea &
* Zone(ZoneIndex)%Multiplier * Zone(ZoneIndex)%ListMultiplier
FinalZoneSizing(CtrlZoneNum)%DesHeatMaxAirFlow2 = FinalZoneSizing(CtrlZoneNum)%DesHeatMaxAirFlowPerArea &
* Zone(ZoneIndex)%FloorArea &
* Zone(ZoneIndex)%Multiplier * Zone(ZoneIndex)%ListMultiplier
CalcFinalZoneSizing(CtrlZoneNum)%DesHeatMaxAirFlow2 = CalcFinalZoneSizing(CtrlZoneNum)%DesHeatMaxAirFlowPerArea &
* Zone(ZoneIndex)%FloorArea &
* Zone(ZoneIndex)%Multiplier * Zone(ZoneIndex)%ListMultiplier
FinalZoneSizing(CtrlZoneNum)%DesCoolMinAirFlow = FinalZoneSizing(CtrlZoneNum)%DesCoolMinAirFlow &
* Zone(ZoneIndex)%Multiplier * Zone(ZoneIndex)%ListMultiplier
CalcFinalZoneSizing(CtrlZoneNum)%DesCoolMinAirFlow = CalcFinalZoneSizing(CtrlZoneNum)%DesCoolMinAirFlow &
* Zone(ZoneIndex)%Multiplier * Zone(ZoneIndex)%ListMultiplier
FinalZoneSizing(CtrlZoneNum)%DesHeatMaxAirFlow = FinalZoneSizing(CtrlZoneNum)%DesHeatMaxAirFlow &
* Zone(ZoneIndex)%Multiplier * Zone(ZoneIndex)%ListMultiplier
CalcFinalZoneSizing(CtrlZoneNum)%DesHeatMaxAirFlow = CalcFinalZoneSizing(CtrlZoneNum)%DesHeatMaxAirFlow &
* Zone(ZoneIndex)%Multiplier * Zone(ZoneIndex)%ListMultiplier
FinalZoneSizing(CtrlZoneNum)%InpDesCoolAirFlow = FinalZoneSizing(CtrlZoneNum)%InpDesCoolAirFlow &
* Zone(ZoneIndex)%Multiplier * Zone(ZoneIndex)%ListMultiplier
CalcFinalZoneSizing(CtrlZoneNum)%InpDesCoolAirFlow = CalcFinalZoneSizing(CtrlZoneNum)%InpDesCoolAirFlow &
* Zone(ZoneIndex)%Multiplier * Zone(ZoneIndex)%ListMultiplier
FinalZoneSizing(CtrlZoneNum)%InpDesHeatAirFlow = FinalZoneSizing(CtrlZoneNum)%InpDesHeatAirFlow &
* Zone(ZoneIndex)%Multiplier * Zone(ZoneIndex)%ListMultiplier
CalcFinalZoneSizing(CtrlZoneNum)%InpDesHeatAirFlow = CalcFinalZoneSizing(CtrlZoneNum)%InpDesHeatAirFlow &
* Zone(ZoneIndex)%Multiplier * Zone(ZoneIndex)%ListMultiplier
DO DesDayNum=1,TotDesDays+TotRunDesPersDays
ZoneSizing(CtrlZoneNum,DesDayNum)%MinOA = FinalZoneSizing(CtrlZoneNum)%MinOA
CalcZoneSizing(CtrlZoneNum,DesDayNum)%MinOA = CalcFinalZoneSizing(CtrlZoneNum)%MinOA
ZoneSizing(CtrlZoneNum,DesDayNum)%DesCoolMinAirFlow2 = FinalZoneSizing(CtrlZoneNum)%DesCoolMinAirFlow2
CalcZoneSizing(CtrlZoneNum,DesDayNum)%DesCoolMinAirFlow2 = CalcFinalZoneSizing(CtrlZoneNum)%DesCoolMinAirFlow2
ZoneSizing(CtrlZoneNum,DesDayNum)%DesCoolMinAirFlow = FinalZoneSizing(CtrlZoneNum)%DesCoolMinAirFlow
CalcZoneSizing(CtrlZoneNum,DesDayNum)%DesCoolMinAirFlow = CalcFinalZoneSizing(CtrlZoneNum)%DesCoolMinAirFlow
ZoneSizing(CtrlZoneNum,DesDayNum)%DesHeatMaxAirFlow2 = FinalZoneSizing(CtrlZoneNum)%DesHeatMaxAirFlow2
CalcZoneSizing(CtrlZoneNum,DesDayNum)%DesHeatMaxAirFlow2 = CalcFinalZoneSizing(CtrlZoneNum)%DesHeatMaxAirFlow2
ZoneSizing(CtrlZoneNum,DesDayNum)%DesHeatMaxAirFlow = FinalZoneSizing(CtrlZoneNum)%DesHeatMaxAirFlow
CalcZoneSizing(CtrlZoneNum,DesDayNum)%DesHeatMaxAirFlow = CalcFinalZoneSizing(CtrlZoneNum)%DesHeatMaxAirFlow
END DO
END DO
WRITE (OutputFileInits, 890)
WRITE (OutputFileInits, 891) NumTimeStepsInAvg
WRITE (OutputFileInits, 990)
WRITE (OutputFileInits, 991) GlobalHeatSizingFactor
DO CtrlZoneNum = 1,NumOfZones
IF (.not. ZoneEquipConfig(CtrlZoneNum)%IsControlled) CYCLE
IF (FinalZoneSizing(CtrlZoneNum)%HeatSizingFactor .NE. 1.0d0) THEN
WRITE (OutputFileInits, 992) TRIM(FinalZoneSizing(CtrlZoneNum)%ZoneName), FinalZoneSizing(CtrlZoneNum)%HeatSizingFactor
END IF
END DO
WRITE (OutputFileInits, 993)
WRITE (OutputFileInits, 994) GlobalCoolSizingFactor
DO CtrlZoneNum = 1,NumOfZones
IF (.not. ZoneEquipConfig(CtrlZoneNum)%IsControlled) CYCLE
IF (FinalZoneSizing(CtrlZoneNum)%CoolSizingFactor .NE. 1.0d0) THEN
WRITE (OutputFileInits, 995) TRIM(FinalZoneSizing(CtrlZoneNum)%ZoneName), FinalZoneSizing(CtrlZoneNum)%CoolSizingFactor
END IF
END DO
890 FORMAT('! <Load Timesteps in Zone Design Calculation Averaging Window>, Value')
891 FORMAT(' Load Timesteps in Zone Design Calculation Averaging Window, ',I4)
990 FORMAT('! <Heating Sizing Factor Information>, Sizing Factor ID, Value')
991 FORMAT(' Heating Sizing Factor Information, Global, ',G12.5)
992 FORMAT(' Heating Sizing Factor Information, Zone ',A,', ',G12.5)
993 FORMAT('! <Cooling Sizing Factor Information>, Sizing Factor ID, Value')
994 FORMAT(' Cooling Sizing Factor Information, Global, ',G12.5)
995 FORMAT(' Cooling Sizing Factor Information, Zone ',A,', ',G12.5)
RETURN
END SUBROUTINE SetUpZoneSizingArrays