Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=r64), | intent(in) | :: | AirSystemFlowRate | |||
real(kind=r64), | intent(in) | :: | ZoneExtPerimLength | |||
real(kind=r64), | intent(in) | :: | WindWallRatio | |||
integer, | intent(in) | :: | WindowLocationType | |||
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.
FUNCTION CalcGoldsteinNovoselacCeilingDiffuserWindow(AirSystemFlowRate, ZoneExtPerimLength, WindWallRatio, &
WindowLocationType , ZoneNum) RESULT (Hc)
! FUNCTION INFORMATION:
! AUTHOR Brent Griffith
! DATE WRITTEN Aug 2010
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS FUNCTION:
! Calculate model equation for windows in zones with slot diffusers on them
! developed by Novoselac for RP-1416
! METHODOLOGY EMPLOYED:
! isolate function for equation.
! REFERENCES:
! Goldstien, K. and A. Novoselac. 2010. Convective Heat Transfer in Rooms
! With Ceiling Slot Diffusers (RP-1416). HVAC&R Research Journal TBD
! USE STATEMENTS:
! na
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! FUNCTION ARGUMENT DEFINITIONS:
REAL(r64), INTENT(IN) :: AirSystemFlowRate ! [m3/s] air system flow rate
REAL(r64), INTENT(IN) :: ZoneExtPerimLength ! [m] length of zone perimeter with exterior walls
REAL(r64), INTENT(IN) :: WindWallRatio ![ ] fraction of window area to wall area for zone
INTEGER, INTENT(IN) :: WindowLocationType !index for location types
INTEGER, INTENT(IN) :: ZoneNum ! for messages
REAL(r64) :: Hc ! function result, total convection coefficient
! FUNCTION PARAMETER DEFINITIONS:
! INTERFACE BLOCK SPECIFICATIONS:
! na
! DERIVED TYPE DEFINITIONS:
! na
! FUNCTION LOCAL VARIABLE DECLARATIONS:
INTEGER, SAVE :: ErrorIndex = 0
INTEGER, SAVE :: ErrorIndex2 = 0
IF (ZoneExtPerimLength > 0.d0) THEN
IF (WindWallRatio <= 0.5d0) THEN
IF (WindowLocationType == InConvWinLoc_UpperPartOfExteriorWall) THEN
Hc = 0.117d0*((AirSystemFlowRate / ZoneExtPerimLength)**0.8d0)
ELSEIF(WindowLocationType == InConvWinLoc_LowerPartOfExteriorWall) THEN
Hc = 0.093d0*((AirSystemFlowRate / ZoneExtPerimLength)**0.8d0)
ELSEIF(WindowLocationType == InConvWinLoc_LargePartOfExteriorWall) THEN
Hc = 0.117d0*((AirSystemFlowRate / ZoneExtPerimLength)**0.8d0) ! assumption for case not covered by model
ELSEIF(WindowLocationType == InConvWinLoc_NotSet) THEN
Hc = 0.117d0*((AirSystemFlowRate / ZoneExtPerimLength)**0.8d0) ! assumption for case not covered by model
ELSE
!shouldn'tcome
Hc = 9.999d0
IF (ErrorIndex == 0) THEN
CALL ShowSevereMessage('CalcGoldsteinNovoselacCeilingDiffuserWindow: Convection model not evaluated ' &
//'( bad relative window location)')
CALL ShowContinueError('Value for window location = '//TRIM(RoundSigDigits(WindowLocationType)))
CALL ShowContinueError('Occurs for zone named = '//TRIM(Zone(ZoneNum)%Name) )
CALL ShowContinueError('Convection surface heat transfer coefficient set to 9.999 [W/m2-K] and the simulation continues')
ENDIF
CALL ShowRecurringSevereErrorAtEnd('CalcGoldsteinNovoselacCeilingDiffuserWindow: Convection model not evaluated because ' &
//'bad window location and set to 9.999 [W/m2-K]', ErrorIndex )
ENDIF
ELSE
Hc = 0.103d0*((AirSystemFlowRate / ZoneExtPerimLength)**0.8d0)
ENDIF
ELSE
Hc = 9.999d0
IF (ErrorIndex2 == 0) THEN
CALL ShowSevereMessage('CalcGoldsteinNovoselacCeilingDiffuserWindow: Convection model not evaluated ' &
//'(zero zone exterior perimeter length)' )
CALL ShowContinueError('Value for zone exterior perimeter length = ' //TRIM(RoundSigDigits(ZoneExtPerimLength,5)))
CALL ShowContinueError('Occurs for zone named = '//TRIM(Zone(ZoneNum)%Name) )
CALL ShowContinueError('Convection surface heat transfer coefficient set to 9.999 [W/m2-K] and the simulation continues')
ENDIF
CALL ShowRecurringSevereErrorAtEnd('CalcGoldsteinNovoselacCeilingDiffuserWindow: Convection model not evaluated because ' &
//' bad perimeter length and set to 9.999 [W/m2-K]' , ErrorIndex2 )
ENDIF
RETURN
END FUNCTION CalcGoldsteinNovoselacCeilingDiffuserWindow