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) | :: | ZoneNum |
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 HcUCSDCV(ZoneNum)
! SUBROUTINE INFORMATION:
! AUTHOR G. Carrilho da Graca
! DATE WRITTEN October 2004
! MODIFIED 8/2013 - Sam Brunswick
! To improve convection coefficient calculation
! RE-ENGINEERED -
! PURPOSE OF THIS SUBROUTINE:
! Main subroutine for convection calculation in the UCSD Cross Ventilation model.
! It calls CalcDetailedHcInForDVModel for convection coefficient
! initial calculations and averages the final result comparing the position of the surface with
! the interface subzone height.
! METHODOLOGY EMPLOYED:
! -
! -
! -
! -
! REFERENCES:
! -
! -
! USE STATEMENTS:
USE DataRoomAirModel , ONLY: AirModel
USE DataHeatBalFanSys
USE DataEnvironment
USE DataHeatBalance
USE InputProcessor
USE ScheduleManager, ONLY: GetScheduleIndex !, GetDayScheduleValues
USE DataGlobals, ONLY:BeginEnvrnFlag
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
INTEGER,INTENT (IN) :: ZoneNum !
! SUBROUTINE PARAMETER DEFINITIONS:
! na
! INTERFACE BLOCK SPECIFICATIONS:
! na
! DERIVED TYPE DEFINITIONS:
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
INTEGER :: Ctd ! DO loop counter for surfaces
INTEGER :: SurfNum ! Surface number
REAL(r64) :: Hjet
REAL(r64) :: Hrec
! Initialize HAT and HA
HAT_J = 0.0d0
HAT_R = 0.0d0
HA_J = 0.0d0
HA_R = 0.0d0
! Is the air flow model for this zone set to UCSDCV Cross Ventilation?
IF(IsZoneCV(ZoneNum)) THEN
! WALL Hc, HA and HAT calculation
DO Ctd = PosZ_Wall((ZoneNum-1)*2 + 1),PosZ_Wall((ZoneNum-1)*2 + 2)
SurfNum = APos_Wall(Ctd)
Surface(SurfNum)%TAirRef = AdjacentAirTemp
IF (SurfNum == 0) CYCLE
TempEffBulkAir(SurfNum) = ZTREC(ZoneNum)
CALL CalcDetailedHcInForDVModel(SurfNum,TempSurfIn,CVHcIn,Urec)
HWall(Ctd)= CVHcIn(SurfNum)
HAT_R = Surface(SurfNum)%Area*TempSurfIn(SurfNum)*HWall(Ctd) + HAT_R
HA_R = Surface(SurfNum)%Area*HWall(Ctd) + HA_R
END DO ! END WALL
! WINDOW Hc, HA and HAT CALCULATION
DO Ctd = PosZ_Window((ZoneNum-1)*2 + 1),PosZ_Window((ZoneNum-1)*2 + 2)
SurfNum = APos_Window(Ctd)
Surface(SurfNum)%TAirRef = AdjacentAirTemp
IF (SurfNum == 0) CYCLE
IF (Surface(SurfNum)%Tilt > 10.0d0 .AND. Surface(SurfNum)%Tilt < 170.0d0) THEN ! Window Wall
TempEffBulkAir(SurfNum) = ZTREC(ZoneNum)
CALL CalcDetailedHcInForDVModel(SurfNum,TempSurfIn,CVHcIn,Urec)
HWindow(Ctd)= CVHcIn(SurfNum)
HAT_R = Surface(SurfNum)%Area*TempSurfIn(SurfNum)*HWindow(Ctd) + HAT_R
HA_R = Surface(SurfNum)%Area*HWindow(Ctd) + HA_R
ENDIF
IF (Surface(SurfNum)%Tilt <= 10.0d0) THEN ! Window Ceiling
TempEffBulkAir(SurfNum) = ZTJET(ZoneNum)
CALL CalcDetailedHcInForDVModel(SurfNum,TempSurfIn,CVHcIn,Ujet)
Hjet= CVHcIn(SurfNum)
TempEffBulkAir(SurfNum) = ZTREC(ZoneNum)
CALL CalcDetailedHcInForDVModel(SurfNum,TempSurfIn,CVHcIn,Urec)
Hrec= CVHcIn(SurfNum)
HWindow(Ctd)= JetRecAreaRatio(ZoneNum)*Hjet+(1-JetRecAreaRatio(ZoneNum))*Hrec
HAT_R = Surface(SurfNum)%Area*(1.d0-JetRecAreaRatio(ZoneNum))*TempSurfIn(SurfNum)*Hrec + HAT_R
HA_R = Surface(SurfNum)%Area*(1.d0-JetRecAreaRatio(ZoneNum))*Hrec + HA_R
HAT_J = Surface(SurfNum)%Area*JetRecAreaRatio(ZoneNum)*TempSurfIn(SurfNum)*Hjet + HAT_J
HA_J = Surface(SurfNum)%Area*JetRecAreaRatio(ZoneNum)*Hjet + HA_J
TempEffBulkAir(SurfNum)=JetRecAreaRatio(ZoneNum)*ZTJET(ZoneNum)+(1-JetRecAreaRatio(ZoneNum))*ZTREC(ZoneNum)
ENDIF
IF (Surface(SurfNum)%Tilt >= 170.0d0) THEN ! Window Floor
TempEffBulkAir(SurfNum) = ZTJET(ZoneNum)
CALL CalcDetailedHcInForDVModel(SurfNum,TempSurfIn,CVHcIn,Ujet)
Hjet= CVHcIn(SurfNum)
TempEffBulkAir(SurfNum) = ZTREC(ZoneNum)
CALL CalcDetailedHcInForDVModel(SurfNum,TempSurfIn,CVHcIn,Urec)
Hrec= CVHcIn(SurfNum)
HWindow(Ctd)= JetRecAreaRatio(ZoneNum)*Hjet+(1-JetRecAreaRatio(ZoneNum))*Hrec
HAT_R = Surface(SurfNum)%Area*(1.d0-JetRecAreaRatio(ZoneNum))*TempSurfIn(SurfNum)*Hrec + HAT_R
HA_R = Surface(SurfNum)%Area*(1.d0-JetRecAreaRatio(ZoneNum))*Hrec + HA_R
HAT_J = Surface(SurfNum)%Area*JetRecAreaRatio(ZoneNum)*TempSurfIn(SurfNum)*Hjet + HAT_J
HA_J = Surface(SurfNum)%Area*JetRecAreaRatio(ZoneNum)*Hjet + HA_J
TempEffBulkAir(SurfNum)=JetRecAreaRatio(ZoneNum)*ZTJET(ZoneNum)+(1-JetRecAreaRatio(ZoneNum))*ZTREC(ZoneNum)
ENDIF
CVHcIn(SurfNum) = HWindow(Ctd)
END DO ! END WINDOW
! DOOR Hc, HA and HAT CALCULATION
DO Ctd = PosZ_Door((ZoneNum-1)*2 + 1),PosZ_Door((ZoneNum-1)*2 + 2) ! DOOR
SurfNum = APos_Door(Ctd)
Surface(SurfNum)%TAirRef = AdjacentAirTemp
IF (SurfNum == 0) CYCLE
TempEffBulkAir(SurfNum) = ZTREC(ZoneNum)
CALL CalcDetailedHcInForDVModel(SurfNum,TempSurfIn,CVHcIn,Urec)
HDoor(Ctd)= CVHcIn(SurfNum)
HAT_R = Surface(SurfNum)%Area*TempSurfIn(SurfNum)*HDoor(Ctd) + HAT_R
HA_R = Surface(SurfNum)%Area*HDoor(Ctd) + HA_R
END DO ! END DOOR
! INTERNAL Hc, HA and HAT CALCULATION
DO Ctd = PosZ_Internal((ZoneNum-1)*2 + 1),PosZ_Internal((ZoneNum-1)*2 + 2)
SurfNum = APos_Internal(Ctd)
Surface(SurfNum)%TAirRef = AdjacentAirTemp
IF (SurfNum == 0) CYCLE
TempEffBulkAir(SurfNum) = ZTREC(ZoneNum)
CALL CalcDetailedHcInForDVModel(SurfNum,TempSurfIn,CVHcIn,Urec)
HInternal(Ctd) = CVHcIn(SurfNum)
HAT_R = Surface(SurfNum)%Area*TempSurfIn(SurfNum)*HInternal(Ctd) + HAT_R
HA_R = Surface(SurfNum)%Area* HInternal(Ctd) + HA_R
END DO ! END INTERNAL
! CEILING Hc, HA and HAT CALCULATION
DO Ctd = PosZ_Ceiling((ZoneNum-1)*2 + 1),PosZ_Ceiling((ZoneNum-1)*2 + 2)
SurfNum = APos_Ceiling(Ctd)
Surface(SurfNum)%TAirRef = AdjacentAirTemp
IF (SurfNum == 0) CYCLE
TempEffBulkAir(SurfNum) = ZTJET(ZoneNum)
CALL CalcDetailedHcInForDVModel(SurfNum,TempSurfIn,CVHcIn,Ujet)
Hjet= CVHcIn(SurfNum)
TempEffBulkAir(SurfNum) = ZTREC(ZoneNum)
CALL CalcDetailedHcInForDVModel(SurfNum,TempSurfIn,CVHcIn,Urec)
Hrec= CVHcIn(SurfNum)
HCeiling(Ctd)= JetRecAreaRatio(ZoneNum)*Hjet+(1-JetRecAreaRatio(ZoneNum))*Hrec
HAT_R = Surface(SurfNum)%Area*(1-JetRecAreaRatio(ZoneNum))*TempSurfIn(SurfNum)*Hrec + HAT_R
HA_R = Surface(SurfNum)%Area*(1-JetRecAreaRatio(ZoneNum))*Hrec + HA_R
HAT_J = Surface(SurfNum)%Area*JetRecAreaRatio(ZoneNum)*TempSurfIn(SurfNum)*Hjet + HAT_J
HA_J = Surface(SurfNum)%Area*JetRecAreaRatio(ZoneNum)*Hjet + HA_J
TempEffBulkAir(SurfNum)=JetRecAreaRatio(ZoneNum)*ZTJET(ZoneNum)+(1-JetRecAreaRatio(ZoneNum))*ZTREC(ZoneNum)
CVHcIn(SurfNum) = HCeiling(Ctd)
END DO ! END CEILING
! FLOOR Hc, HA and HAT CALCULATION
DO Ctd = PosZ_Floor((ZoneNum-1)*2 + 1),PosZ_Floor((ZoneNum-1)*2 + 2)
SurfNum = APos_Floor(Ctd)
Surface(SurfNum)%TAirRef = AdjacentAirTemp
IF (SurfNum == 0) CYCLE
TempEffBulkAir(SurfNum) = ZTJET(ZoneNum)
CALL CalcDetailedHcInForDVModel(SurfNum,TempSurfIn,CVHcIn,Ujet)
Hjet= CVHcIn(SurfNum)
TempEffBulkAir(SurfNum) = ZTREC(ZoneNum)
CALL CalcDetailedHcInForDVModel(SurfNum,TempSurfIn,CVHcIn,Urec)
Hrec= CVHcIn(SurfNum)
HFloor(Ctd)= JetRecAreaRatio(ZoneNum)*Hjet+(1-JetRecAreaRatio(ZoneNum))*Hrec
HAT_R = Surface(SurfNum)%Area*(1-JetRecAreaRatio(ZoneNum))*TempSurfIn(SurfNum)*Hrec + HAT_R
HA_R = Surface(SurfNum)%Area*(1-JetRecAreaRatio(ZoneNum))*Hrec + HA_R
HAT_J = Surface(SurfNum)%Area*JetRecAreaRatio(ZoneNum)*TempSurfIn(SurfNum)*Hjet + HAT_J
HA_J = Surface(SurfNum)%Area*JetRecAreaRatio(ZoneNum)*Hjet + HA_J
TempEffBulkAir(SurfNum)=JetRecAreaRatio(ZoneNum)*ZTJET(ZoneNum)+(1-JetRecAreaRatio(ZoneNum))*ZTREC(ZoneNum)
CVHcIn(SurfNum) = HFloor(Ctd)
END DO ! END FLOOR
ENDIF
END SUBROUTINE HcUCSDCV