SUBROUTINE GetUserConvectionCoefficients
! SUBROUTINE INFORMATION:
! AUTHOR Linda K. Lawrie
! DATE WRITTEN February 2003
! MODIFIED November 2004; add more "user supplied convection coefficients"
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! This subroutine gets the input for the object "Convection Coefficients" which
! can be specified by a user to override the "normally" calculated convection coefficients. The
! change (November 2004) allows the user to specify down to the "surface level" the
! exterior or interior algorithm to be used.
! METHODOLOGY EMPLOYED:
! na
! REFERENCES:
! This routine gets the objects:
!SurfaceProperty:ConvectionCoefficients,
! \memo Allow user settable interior and/or exterior convection coefficients.
! \memo Note that some other factors may limit the lower bounds for these values, such as
! \memo for windows, the interior convection coefficient must be >.28,
! \memo for trombe wall algorithm selection (zone), the interior convection coefficient must be >.1
! \memo for detailed interior convection, the lower limit is also .1
! A1, \field Surface Name
! \required-field
! \type object-list
! \object-list SurfaceNames
! A2, \field Convection Coefficient 1 Location
! \required-field
! \type choice
! \key Outside
! \key Inside
! A3, \field Convection Coefficient 1 Type
! \required-field
! \type choice
! \key Value
! \key Schedule
! \key Simple
! \key Detailed
! \key BLAST
! \key TARP
! \key DOE-2
! \key MoWitt
! N1, \field Convection Coefficient 1
! \note used if Convection Value Type=value, then minimum must be > 0.0, Maximum <= 1000.
! \units W/m2-K
! A4, \field Convection Coefficient 1 Schedule Name
! \note used if Convection Value Type=Schedule Name
! \type object-list
! \object-list ScheduleNames
! < Remainder fields are a repeat of A2, A3, N1, A4>
!
!SurfaceProperty:ConvectionCoefficients:MultipleSurface,
! \memo Allow user settable interior and/or exterior convection coefficients.
! \memo Note that some other factors may limit the lower bounds for these values, such as
! \memo for windows, the interior convection coefficient must be >.28,
! \memo for trombe wall algorithm selection (zone), the interior convection coefficient must be >.1
! \memo for detailed interior convection, the lower limit is also .1
! A1, \field Surface Type
! \required-field
! \type choice
! \key AllExteriorSurfaces
! \key AllExteriorWindows
! \key AllExteriorWalls
! \key AllExteriorRoofs
! \key AllExteriorFloors
! \key AllInteriorSurfaces
! \key AllInteriorWalls
! \key AllInteriorWindows
! \key AllInteriorCeilings
! \key AllInteriorFloors
! A2, \field Convection Coefficient 1 Location
! \required-field
! \type choice
! \key Outside
! \key Inside
! A3, \field Convection Coefficient 1 Type
! \required-field
! \type choice
! \key Value
! \key Schedule
! \key Simple
! \key Detailed
! \key BLAST
! \key TARP
! \key DOE-2
! \key MoWitt
! N1, \field Convection Coefficient 1
! \note used if Convection Value Type=value, then minimum must be > 0.0, Maximum <= 1000.
! \units W/m2-K
! A4, \field Convection Coefficient 1 Schedule Name
! \note used if Convection Coefficient Type=Schedule
! \type object-list
! \object-list ScheduleNames
! < Remainder fields are a repeat of A2, A3, N1, A4>
! USE STATEMENTS:
USE DataIPShortCuts
USE InputProcessor, ONLY: GetNumObjectsFound, GetObjectItem, FindItemInList, SameString
USE ScheduleManager, ONLY: GetScheduleIndex, CheckScheduleValueMinMax
USE CurveManager, ONLY: GetCurveIndex, GetCurveType
USE DataErrorTracking, ONLY: TotalSevereErrors
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
! na
! SUBROUTINE PARAMETER DEFINITIONS:
CHARACTER(len=*), PARAMETER :: RoutineName='GetUserConvectionCoefficients'
INTEGER, PARAMETER :: NumValidSurfaceTypes=11
CHARACTER(len=*), PARAMETER :: ValidSurfaceTypes(11)= &
(/'ALLEXTERIORSURFACES', &
'ALLEXTERIORWINDOWS ', &
'ALLEXTERIORWALLS ', &
'ALLEXTERIORROOFS ', &
'ALLEXTERIORFLOORS ', &
'ALLINTERIORSURFACES', &
'ALLINTERIORWINDOWS ', &
'ALLINTERIORWALLS ', &
'ALLINTERIORROOFS ', &
'ALLINTERIORCEILINGS', &
'ALLINTERIORFLOORS '/)
INTEGER, PARAMETER :: NumValidExtConvectionValueTypes=22
CHARACTER(len=*), PARAMETER :: ValidExtConvectionValueTypes(22)= &
(/'VALUE ', &
'SCHEDULE ', &
'SIMPLECOMBINED ', &
'TARP ', &
'MOWITT ', &
'DOE-2 ', &
'ADAPTIVECONVECTIONALGORITHM ' , &
'USERCURVE ' , &
'ASHRAEVERTICALWALL ' , &
'WALTONUNSTABLEHORIZONTALORTILT ' , &
'WALTONSTABLEHORIZONTALORTILT ' , &
'NUSSELTJURGES ' ,&
'MCADAMS ', &
'MITCHELL ', &
'CLEARROOF ', &
'EMMELVERTICAL ', &
'EMMELROOF ', &
'ALAMDARIHAMMONDVERTICALWALL ', &
'FOHANNOPOLIDORIVERTICALWALL ', &
'ISO15099WINDOWS ', &
'ALAMDARIHAMMONDSTABLEHORIZONTAL ', &
'ALAMDARIHAMMONDUNSTABLEHORIZONTAL'/)
INTEGER, PARAMETER :: ExtConvectionValue(22)= &
(/-999 , &
-999 , &
ASHRAESimple , &
TarpHcOutside , &
MoWittHcOutside , &
DOE2HcOutside , &
AdaptiveConvectionAlgorithm, &
HcExt_UserCurve , &
HcExt_NaturalASHRAEVerticalWall , &
HcExt_NaturalWaltonUnstableHorizontalOrTilt , &
HcExt_NaturalWaltonStableHorizontalOrTilt , &
HcExt_NusseltJurges , &
HcExt_McAdams , &
HcExt_Mitchell , &
HcExt_ClearRoof , &
HcExt_EmmelVertical , &
HcExt_EmmelRoof , &
HcExt_AlamdariHammondVerticalWall , &
HcExt_FohannoPolidoriVerticalWall , &
HcExt_ISO15099Windows , &
HcExt_AlamdariHammondStableHorizontal , &
HcExt_AlamdariHammondUnstableHorizontal /)
INTEGER, PARAMETER :: NumValidSpecificExtWindConvValueTypes=15
CHARACTER(len=*), PARAMETER :: ValidSpecificExtWindConvValueTypes(15)= &
(/'SIMPLECOMBINED ', &
'TARPWINDWARD ', &
'TARPLEEWARD ', &
'MOWITTWINDWARD ', &
'MOWITTLEEWARD ', &
'DOE2WINDWARD ', &
'DOE2LEEWARD ', &
'NUSSELTJURGES ', &
'MCADAMS ', &
'MITCHELL ', &
'EMMELVERTICAL ', &
'EMMELROOF ', &
'BLOCKENWINDWARD ', &
'CLEARROOF ', &
'USERCURVE '/)
INTEGER, PARAMETER :: MoreSpecificExtWindConvectionValue(15)= &
(/HcExt_ASHRAESimpleCombined , &
HcExt_SparrowWindward , &
HcExt_SparrowLeeward , &
HcExt_MoWiTTWindward , &
HcExt_DOE2Windward , &
HcExt_MoWiTTLeeward , &
HcExt_DOE2Leeward , &
HcExt_NusseltJurges , &
HcExt_McAdams , &
HcExt_Mitchell , &
HcExt_EmmelVertical , &
HcExt_EmmelRoof , &
HcExt_BlockenWindward , &
HcExt_ClearRoof , &
HcExt_UserCurve /)
INTEGER, PARAMETER :: NumValidSpecificExtNatConvectValueTypes=10
CHARACTER(len=*), PARAMETER :: ValidSpecificExtNatConvectValueTypes(10)= &
(/'ASHRAEVERTICALWALL ', &
'ALAMDARIHAMMONDVERTICALWALL ', &
'FOHANNOPOLIDORIVERTICALWALL ', &
'WALTONUNSTABLEHORIZONTALORTILT ', &
'WALTONSTABLEHORIZONTALORTILT ', &
'ALAMDARIHAMMONDSTABLEHORIZONTAL ', &
'ALAMDARIHAMMONDUNSTABLEHORIZONTAL ', &
'ISO15099WINDOWS ', &
'USERCURVE ', &
'NONE ' /)
INTEGER, PARAMETER :: SpecificExtNatConvectionValue(10)= &
(/HcExt_NaturalASHRAEVerticalWall , &
HcExt_AlamdariHammondVerticalWall , &
HcExt_FohannoPolidoriVerticalWall , &
HcExt_NaturalWaltonUnstableHorizontalOrTilt, &
HcExt_NaturalWaltonStableHorizontalOrTilt , &
HcExt_AlamdariHammondStableHorizontal , &
HcExt_AlamdariHammondUnstableHorizontal , &
HcExt_ISO15099Windows , &
HcExt_UserCurve , &
HcExt_None /)
! CeilingDiffuser and TrombeWall Interior types are only Zone Level settings.
INTEGER, PARAMETER :: NumValidIntConvectionValueTypes=34
CHARACTER(len=*), PARAMETER :: ValidIntConvectionValueTypes(34)= &
(/'VALUE ', &
'SCHEDULE ', &
'SIMPLE ', &
'TARP ', &
'ADAPTIVECONVECTIONALGORITHM ', &
'USERCURVE ', &
'ASHRAEVERTICALWALL ', &
'WALTONUNSTABLEHORIZONTALORTILT ', &
'WALTONSTABLEHORIZONTALORTILT ', &
'FISHERPEDERSENCEILINGDIFFUSERWALLS ', &
'FISHERPEDERSENCEILINGDIFFUSERCEILING ', &
'FISHERPEDERSENCEILINGDIFFUSERFLOOR ', &
'ALAMDARIHAMMONDSTABLEHORIZONTAL ', &
'ALAMDARIHAMMONDUNSTABLEHORIZONTAL ', &
'ALAMDARIHAMMONDVERTICALWALL ', &
'KHALIFAEQ3WALLAWAYFROMHEAT ', &
'KHALIFAEQ4CEILINGAWAYFROMHEAT ', &
'KHALIFAEQ5WALLNEARHEAT ', &
'KHALIFAEQ6NONHEATEDWALLS ', &
'KHALIFAEQ7CEILING ', &
'AWBIHATTONHEATEDFLOOR ', &
'AWBIHATTONHEATEDWALL ', &
'BEAUSOLEILMORRISONMIXEDASSISTEDWALL ', &
'BEAUSOLEILMORRISONMIXEDOPPOSINGWALL ', &
'BEAUSOLEILMORRISONMIXEDSTABLEFLOOR ', &
'BEAUSOLEILMORRISONMIXEDUNSTABLEFLOOR ', &
'BEAUSOLEILMORRISONMIXEDSTABLECEILING ', &
'BEAUSOLEILMORRISONMIXEDUNSTABLECEILING ', &
'FOHANNOPOLIDORIVERTICALWALL ', &
'KARADAGCHILLEDCEILING ', &
'ISO15099WINDOWS ', &
'GOLDSTEINNOVOSELACCEILINGDIFFUSERWINDOW', &
'GOLDSTEINNOVOSELACCEILINGDIFFUSERWALLS ', &
'GOLDSTEINNOVOSELACCEILINGDIFFUSERFLOOR '/)
INTEGER, PARAMETER :: IntConvectionValue(34)= &
(/-999, &
-999, &
ASHRAESimple, &
ASHRAETARP, &
AdaptiveConvectionAlgorithm, &
HcInt_UserCurve, &
HcInt_ASHRAEVerticalWall, &
HcInt_WaltonUnstableHorizontalOrTilt, &
HcInt_WaltonStableHorizontalOrTilt, &
HcInt_FisherPedersenCeilDiffuserWalls, &
HcInt_FisherPedersenCeilDiffuserCeiling, &
HcInt_FisherPedersenCeilDiffuserFloor, &
HcInt_AlamdariHammondStableHorizontal, &
HcInt_AlamdariHammondUnstableHorizontal, &
HcInt_AlamdariHammondVerticalWall, &
HcInt_KhalifaEq3WallAwayFromHeat, &
HcInt_KhalifaEq4CeilingAwayFromHeat, &
HcInt_KhalifaEq5WallNearHeat, &
HcInt_KhalifaEq6NonHeatedWalls, &
HcInt_KhalifaEq7Ceiling, &
HcInt_AwbiHattonHeatedFloor, &
HcInt_AwbiHattonHeatedWall, &
HcInt_BeausoleilMorrisonMixedAssistingWall, &
HcInt_BeausoleilMorrisonMixedOppossingWall, &
HcInt_BeausoleilMorrisonMixedStableFloor, &
HcInt_BeausoleilMorrisonMixedUnstableFloor, &
HcInt_BeausoleilMorrisonMixedStableCeiling, &
HcInt_BeausoleilMorrisonMixedUnstableCeiling, &
HcInt_FohannoPolidoriVerticalWall, &
HcInt_KaradagChilledCeiling, &
HcInt_ISO15099Windows, &
HcInt_GoldsteinNovoselacCeilingDiffuserWindow,&
HcInt_GoldsteinNovoselacCeilingDiffuserWalls, &
HcInt_GoldsteinNovoselacCeilingDiffuserFloor/)
! INTERFACE BLOCK SPECIFICATIONS
! na
! DERIVED TYPE DEFINITIONS
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
CHARACTER(len=MaxNameLength) :: Alphas(9)
REAL(r64) :: Numbers(2)
INTEGER :: NumAlphas
INTEGER :: NumNumbers
INTEGER :: Loop
INTEGER :: Loop1
INTEGER :: Count
INTEGER :: Status
INTEGER :: Found
LOGICAL :: ErrorsFound=.false.
LOGICAL :: ErrFlag=.false.
LOGICAL :: IsValidType=.false.
INTEGER :: ExtValue
INTEGER :: IntValue
INTEGER :: Ptr
INTEGER :: Pass
INTEGER :: FieldNo
CHARACTER(len=25) :: CFieldNo
INTEGER :: NumField
CHARACTER(len=MaxNameLength) :: CurrentModuleObject
INTEGER :: PotentialAssignedValue
INTEGER :: ZoneNum
INTEGER :: SurfNum
! first get user-defined H models so they can be processed for later objects
CurrentModuleObject='SurfaceConvectionAlgorithm:Inside:UserCurve'
TotInsideHcUserCurves = GetNumObjectsFound(CurrentModuleObject)
ALLOCATE(HcInsideUserCurve(TotInsideHcUserCurves))
DO Loop=1,TotInsideHcUserCurves
CALL GetObjectItem(CurrentModuleObject,Loop,cAlphaArgs,NumAlphas,rNumericArgs,NumNumbers,Status, &
AlphaBlank=lAlphaFieldBlanks,NumBlank=lNumericFieldBlanks, &
AlphaFieldnames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
HcInsideUserCurve(loop)%Name = cAlphaArgs(1)
SELECT CASE (cAlphaArgs(2))
CASE ('MEANAIRTEMPERATURE')
HcInsideUserCurve(loop)%ReferenceTempType = RefTempMeanAirTemp
CASE ('ADJACENTAIRTEMPERATURE')
HcInsideUserCurve(loop)%ReferenceTempType = RefTempAdjacentAirTemp
CASE ('SUPPLYAIRTEMPERATURE')
HcInsideUserCurve(loop)%ReferenceTempType = RefTempSupplyAirTemp
CASE DEFAULT
CALL ShowSevereError('GetUserSuppliedConvectionCoefficients: '//TRIM(CurrentModuleObject)//': '// &
'Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(2))//'='//TRIM(cAlphaArgs(2)))
ErrorsFound=.true.
END SELECT
IF (.NOT. lAlphaFieldBlanks(3)) THEN
HcInsideUserCurve(loop)%HcFnTempDiffCurveNum = GetCurveIndex(cAlphaArgs(3))
IF (HcInsideUserCurve(loop)%HcFnTempDiffCurveNum == 0) THEN
CALL ShowSevereError('GetUserSuppliedConvectionCoefficients: '//TRIM(CurrentModuleObject)//': '// &
'Invalid Name Entered, for '//TRIM(cAlphaFieldNames(3))//'='//TRIM(cAlphaArgs(3)))
ErrorsFound=.true.
ELSE ! check type
SELECT CASE (GetCurveType(HcInsideUserCurve(loop)%HcFnTempDiffCurveNum))
CASE ('LINEAR', 'QUADRATIC', 'CUBIC', 'EXPONENT', 'QUARTIC')
!okay do nothing, have the right type of curve (single independent variable)
CASE DEFAULT
CALL ShowSevereError(TRIM(CurrentModuleObject)//' "'//TRIM(cAlphaArgs(1))//'"')
CALL ShowContinueError('...illegal '//TRIM(cAlphaFieldNames(3))//' type for this object = '// &
TRIM(GetCurveType(GetCurveIndex(cAlphaArgs(3)))))
ErrorsFound=.true.
END SELECT
ENDIF
ELSE
HcInsideUserCurve(loop)%HcFnTempDiffCurveNum = 0
ENDIF
IF (.NOT. lAlphaFieldBlanks(4)) THEN
HcInsideUserCurve(loop)%HcFnTempDiffDivHeightCurveNum = GetCurveIndex(cAlphaArgs(4))
IF (HcInsideUserCurve(loop)%HcFnTempDiffDivHeightCurveNum == 0) THEN
CALL ShowSevereError('GetUserSuppliedConvectionCoefficients: '//TRIM(CurrentModuleObject)//': '// &
'Invalid Name Entered, for '//TRIM(cAlphaFieldNames(4))//'='//TRIM(cAlphaArgs(4)))
ErrorsFound=.true.
ELSE ! check type
SELECT CASE (GetCurveType(HcInsideUserCurve(loop)%HcFnTempDiffDivHeightCurveNum))
CASE ('LINEAR', 'QUADRATIC', 'CUBIC', 'EXPONENT', 'QUARTIC')
!okay do nothing, have the right type of curve (single independent variable)
CASE DEFAULT
CALL ShowSevereError(TRIM(CurrentModuleObject)//' "'//TRIM(cAlphaArgs(1))//'"')
CALL ShowContinueError('...illegal '//TRIM(cAlphaFieldNames(4))//' type for this object = '// &
TRIM(GetCurveType(GetCurveIndex(cAlphaArgs(4)))))
ErrorsFound=.true.
END SELECT
ENDIF
ELSE
HcInsideUserCurve(loop)%HcFnTempDiffDivHeightCurveNum = 0
ENDIF
IF (.NOT. lAlphaFieldBlanks(5)) THEN
HcInsideUserCurve(loop)%HcFnACHCurveNum = GetCurveIndex(cAlphaArgs(5))
IF (HcInsideUserCurve(loop)%HcFnACHCurveNum == 0) THEN
CALL ShowSevereError('GetUserSuppliedConvectionCoefficients: '//TRIM(CurrentModuleObject)//': '// &
'Invalid Name Entered, for '//TRIM(cAlphaFieldNames(5))//'='//TRIM(cAlphaArgs(5)))
ErrorsFound=.true.
ELSE ! check type
SELECT CASE (GetCurveType(HcInsideUserCurve(loop)%HcFnACHCurveNum))
CASE ('LINEAR', 'QUADRATIC', 'CUBIC', 'EXPONENT', 'QUARTIC')
!okay do nothing, have the right type of curve (single independent variable)
CASE DEFAULT
CALL ShowSevereError(TRIM(CurrentModuleObject)//' "'//TRIM(cAlphaArgs(1))//'"')
CALL ShowContinueError('...illegal '//TRIM(cAlphaFieldNames(5))//' type for this object = '// &
TRIM(GetCurveType(GetCurveIndex(cAlphaArgs(5)))))
ErrorsFound=.true.
END SELECT
ENDIF
ELSE
HcInsideUserCurve(loop)%HcFnACHCurveNum = 0
ENDIF
IF (.NOT. lAlphaFieldBlanks(6)) THEN
HcInsideUserCurve(loop)%HcFnACHDivPerimLengthCurveNum = GetCurveIndex(cAlphaArgs(6))
IF (HcInsideUserCurve(loop)%HcFnACHDivPerimLengthCurveNum == 0) THEN
CALL ShowSevereError('GetUserSuppliedConvectionCoefficients: '//TRIM(CurrentModuleObject)//': '// &
'Invalid Name Entered, for '//TRIM(cAlphaFieldNames(6))//'='//TRIM(cAlphaArgs(6)))
ErrorsFound=.true.
ELSE ! check type
SELECT CASE (GetCurveType(HcInsideUserCurve(loop)%HcFnACHDivPerimLengthCurveNum))
CASE ('LINEAR', 'QUADRATIC', 'CUBIC', 'EXPONENT', 'QUARTIC')
!okay do nothing, have the right type of curve (single independent variable)
CASE DEFAULT
CALL ShowSevereError(TRIM(CurrentModuleObject)//' "'//TRIM(cAlphaArgs(1))//'"')
CALL ShowContinueError('...illegal '//TRIM(cAlphaFieldNames(6))//' type for this object = '// &
TRIM(GetCurveType(GetCurveIndex(cAlphaArgs(6)))))
ErrorsFound=.true.
END SELECT
ENDIF
ELSE
HcInsideUserCurve(loop)%HcFnACHDivPerimLengthCurveNum = 0
ENDIF
ENDDO !end of 'SurfaceConvectionAlgorithm:Inside:UserCurve'
CurrentModuleObject='SurfaceConvectionAlgorithm:Outside:UserCurve'
TotOutsideHcUserCurves = GetNumObjectsFound(CurrentModuleObject)
ALLOCATE(HcOutsideUserCurve(TotOutsideHcUserCurves))
DO Loop=1,TotOutsideHcUserCurves
CALL GetObjectItem(CurrentModuleObject,Loop,cAlphaArgs,NumAlphas,rNumericArgs,NumNumbers,Status, &
AlphaBlank=lAlphaFieldBlanks,NumBlank=lNumericFieldBlanks, &
AlphaFieldnames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
HcOutsideUserCurve(loop)%Name = cAlphaArgs(1)
SELECT CASE ( cAlphaArgs(2) )
CASE ('WEATHERFILE')
HcOutsideUserCurve(loop)%WindSpeedType = RefWindWeatherFile
CASE ('HEIGHTADJUST')
HcOutsideUserCurve(loop)%WindSpeedType = RefWindAtZ
CASE ('PARALLELCOMPONENT')
HcOutsideUserCurve(loop)%WindSpeedType = RefWindParallComp
CASE ('PARALLELCOMPONENTHEIGHTADJUST')
HcOutsideUserCurve(loop)%WindSpeedType = RefWindParallCompAtZ
CASE DEFAULT
CALL ShowSevereError('GetUserSuppliedConvectionCoefficients: '//TRIM(CurrentModuleObject)//': '// &
'Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(2))//'='//TRIM(cAlphaArgs(2)))
ErrorsFound=.true.
END SELECT
! A3 , \field Hf Function of Wind Speed Curve Name
IF (.NOT. lAlphaFieldBlanks(3)) THEN
HcOutsideUserCurve(loop)%HfFnWindSpeedCurveNum = GetCurveIndex(cAlphaArgs(3))
IF (HcOutsideUserCurve(loop)%HfFnWindSpeedCurveNum == 0) THEN
CALL ShowSevereError('GetUserSuppliedConvectionCoefficients: '//TRIM(CurrentModuleObject)//': '// &
'Invalid Name Entered, for '//TRIM(cAlphaFieldNames(3))//'='//TRIM(cAlphaArgs(3)))
ErrorsFound=.true.
ELSE ! check type
SELECT CASE (GetCurveType(HcOutsideUserCurve(loop)%HfFnWindSpeedCurveNum))
CASE ('LINEAR', 'QUADRATIC', 'CUBIC', 'EXPONENT', 'QUARTIC')
!okay do nothing, have the right type of curve (single independent variable)
CASE DEFAULT
CALL ShowSevereError(TRIM(CurrentModuleObject)//' "'//TRIM(cAlphaArgs(1))//'"')
CALL ShowContinueError('...illegal '//TRIM(cAlphaFieldNames(3))//' type for this object = '// &
TRIM(GetCurveType(GetCurveIndex(cAlphaArgs(3)))))
ErrorsFound=.true.
END SELECT
ENDIF
ELSE
HcOutsideUserCurve(loop)%HfFnWindSpeedCurveNum = 0
ENDIF
! A4 , \field Hn Function of Temperature Difference Curve Name
IF (.NOT. lAlphaFieldBlanks(4)) THEN
HcOutsideUserCurve(loop)%HnFnTempDiffCurveNum = GetCurveIndex(cAlphaArgs(4))
IF (HcOutsideUserCurve(loop)%HnFnTempDiffCurveNum == 0) THEN
CALL ShowSevereError('GetUserSuppliedConvectionCoefficients: '//TRIM(CurrentModuleObject)//': '// &
'Invalid Name Entered, for '//TRIM(cAlphaFieldNames(4))//'='//TRIM(cAlphaArgs(4)))
ErrorsFound=.true.
ELSE ! check type
SELECT CASE (GetCurveType(HcOutsideUserCurve(loop)%HnFnTempDiffCurveNum))
CASE ('LINEAR', 'QUADRATIC', 'CUBIC', 'EXPONENT', 'QUARTIC')
!okay do nothing, have the right type of curve (single independent variable)
CASE DEFAULT
CALL ShowSevereError(TRIM(CurrentModuleObject)//' "'//TRIM(cAlphaArgs(1))//'"')
CALL ShowContinueError('...illegal '//TRIM(cAlphaFieldNames(4))//' type for this object = '// &
TRIM(GetCurveType(GetCurveIndex(cAlphaArgs(4)))))
ErrorsFound=.true.
END SELECT
ENDIF
ELSE
HcOutsideUserCurve(loop)%HnFnTempDiffCurveNum = 0
ENDIF
! A5 , \field Hn Function of Temperature Difference Divided by Height Curve Name
IF (.NOT. lAlphaFieldBlanks(5)) THEN
HcOutsideUserCurve(loop)%HnFnTempDiffDivHeightCurveNum = GetCurveIndex(cAlphaArgs(5))
IF (HcOutsideUserCurve(loop)%HnFnTempDiffDivHeightCurveNum == 0) THEN
CALL ShowSevereError('GetUserSuppliedConvectionCoefficients: '//TRIM(CurrentModuleObject)//': '// &
'Invalid Name Entered, for '//TRIM(cAlphaFieldNames(5))//'='//TRIM(cAlphaArgs(5)))
ErrorsFound=.true.
ELSE ! check type
SELECT CASE (GetCurveType(HcOutsideUserCurve(loop)%HnFnTempDiffDivHeightCurveNum))
CASE ('LINEAR', 'QUADRATIC', 'CUBIC', 'EXPONENT', 'QUARTIC')
!okay do nothing, have the right type of curve (single independent variable)
CASE DEFAULT
CALL ShowSevereError(TRIM(CurrentModuleObject)//' "'//TRIM(cAlphaArgs(1))//'"')
CALL ShowContinueError('...illegal '//TRIM(cAlphaFieldNames(5))//' type for this object = '// &
TRIM(GetCurveType(GetCurveIndex(cAlphaArgs(5)))))
ErrorsFound=.true.
END SELECT
ENDIF
ELSE
HcOutsideUserCurve(loop)%HnFnTempDiffDivHeightCurveNum = 0
ENDIF
ENDDO ! 'SurfaceConvectionAlgorithm:Outside:UserCurve'
! now get user directed overrides at the surface level.
TotIntConvCoeff=0
TotExtConvCoeff=0
CurrentModuleObject='SurfaceProperty:ConvectionCoefficients:MultipleSurface'
Count=GetNumObjectsFound(CurrentModuleObject)
DO Loop=1,Count
CALL GetObjectItem(CurrentModuleObject,Loop,Alphas,NumAlphas,Numbers,NumNumbers,Status, &
AlphaBlank=lAlphaFieldBlanks,NumBlank=lNumericFieldBlanks, &
AlphaFieldnames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
IF (Alphas(2) == 'INSIDE') THEN
TotIntConvCoeff=TotIntConvCoeff+1
ENDIF
IF (Alphas(6) == 'INSIDE') THEN
TotIntConvCoeff=TotIntConvCoeff+1
ENDIF
IF (Alphas(2) == 'OUTSIDE') THEN
TotExtConvCoeff=TotExtConvCoeff+1
ENDIF
IF (Alphas(6) == 'OUTSIDE') THEN
TotExtConvCoeff=TotExtConvCoeff+1
ENDIF
IF (NumAlphas >= 2 .and. lAlphaFieldBlanks(2)) THEN
CALL ShowWarningError('GetUserConvectionCoefficients: '//TRIM(CurrentModuleObject)//', '// &
' for '//TRIM(cAlphaFieldNames(1))//'='//TRIM(Alphas(1)))
CALL ShowContinueError(trim(cAlphaFieldNames(2))//' is blank and rest of fields will not be processed.')
ENDIF
IF (NumAlphas >= 6 .and. lAlphaFieldBlanks(6)) THEN
CALL ShowWarningError('GetUserConvectionCoefficients: '//TRIM(CurrentModuleObject)//', '// &
' for '//TRIM(cAlphaFieldNames(1))//'='//TRIM(Alphas(1)))
CALL ShowContinueError(trim(cAlphaFieldNames(6))//' is blank and rest of fields will not be processed.')
ENDIF
ENDDO
CurrentModuleObject='SurfaceProperty:ConvectionCoefficients'
Count=GetNumObjectsFound(CurrentModuleObject)
DO Loop=1,Count
CALL GetObjectItem(CurrentModuleObject,Loop,Alphas,NumAlphas,Numbers,NumNumbers,Status, &
AlphaBlank=lAlphaFieldBlanks,NumBlank=lNumericFieldBlanks, &
AlphaFieldnames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
IF (Alphas(2) == 'INSIDE') THEN
TotIntConvCoeff=TotIntConvCoeff+1
ENDIF
IF (Alphas(6) == 'INSIDE') THEN
TotIntConvCoeff=TotIntConvCoeff+1
ENDIF
IF (Alphas(2) == 'OUTSIDE') THEN
TotExtConvCoeff=TotExtConvCoeff+1
ENDIF
IF (Alphas(6) == 'OUTSIDE') THEN
TotExtConvCoeff=TotExtConvCoeff+1
ENDIF
IF (NumAlphas >= 2 .and. lAlphaFieldBlanks(2)) THEN
CALL ShowWarningError('GetUserConvectionCoefficients: '//TRIM(CurrentModuleObject)//', '// &
' for '//TRIM(cAlphaFieldNames(1))//'='//TRIM(Alphas(1)))
CALL ShowContinueError(trim(cAlphaFieldNames(2))//' is blank and rest of fields will not be processed.')
ENDIF
IF (NumAlphas >= 6 .and. lAlphaFieldBlanks(6)) THEN
CALL ShowWarningError('GetUserConvectionCoefficients: '//TRIM(CurrentModuleObject)//', '// &
' for '//TRIM(cAlphaFieldNames(1))//'='//TRIM(Alphas(1)))
CALL ShowContinueError(trim(cAlphaFieldNames(6))//' is blank and rest of fields will not be processed.')
ENDIF
ENDDO
ALLOCATE(UserIntConvectionCoeffs(TotIntConvCoeff))
ALLOCATE(UserExtConvectionCoeffs(TotExtConvCoeff))
TotIntConvCoeff=0
TotExtConvCoeff=0
! Now, get for real and check for consistency
CurrentModuleObject='SurfaceProperty:ConvectionCoefficients'
Count=GetNumObjectsFound(CurrentModuleObject)
DO Loop=1,Count
CALL GetObjectItem(CurrentModuleObject,Loop,Alphas,NumAlphas,Numbers,NumNumbers,Status, &
AlphaBlank=lAlphaFieldBlanks,NumBlank=lNumericFieldBlanks, &
AlphaFieldnames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
Found=FindItemInList(Alphas(1),Surface%Name,TotSurfaces)
IF (Found == 0) THEN
CALL ShowSevereError('GetUserConvectionCoefficients: '//TRIM(CurrentModuleObject)//', '// &
'illegal value for '//TRIM(cAlphaFieldNames(1))//'='//TRIM(Alphas(1)))
ErrorsFound=.true.
CYCLE
ENDIF
Ptr=2
FieldNo=2
NumField=1
DO Pass=1,2
SELECT CASE(Alphas(Ptr))
CASE ('OUTSIDE')
IF (Surface(Found)%OSCPtr > 0) THEN
CALL ShowSevereError('GetUserSuppliedConvectionCoefficients: '//TRIM(CurrentModuleObject)//', '// &
'OUTSIDE '//TRIM(CurrentModuleObject)//' cannot be specified for OtherSideCoefficient Surface='// &
TRIM(Alphas(1)))
ErrorsFound=.true.
ENDIF
IsValidType=.false.
ExtValue=0
PotentialAssignedValue=0
DO Loop1=1,NumValidExtConvectionValueTypes
IF (Alphas(Ptr+1) /= ValidExtConvectionValueTypes(Loop1)) CYCLE
ExtValue=ExtConvectionValue(Loop1)
IsValidType=.true.
EXIT
ENDDO
IF (IsValidType .and. (Loop1 > 2) .AND. (Loop1 <= 7)) THEN
PotentialAssignedValue=-ExtValue
ELSEIF (IsValidType .and. Loop1 == 1) THEN ! Value
TotExtConvCoeff=TotExtConvCoeff+1
UserExtConvectionCoeffs(TotExtConvCoeff)%SurfaceName=Alphas(1)
UserExtConvectionCoeffs(TotExtConvCoeff)%WhichSurface=Found
IF (Numbers(NumField) < LowHConvLimit .or. Numbers(NumField) > HighHConvLimit) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(Alphas(1))//', out of range value')
CALL ShowContinueError(trim(cAlphaFieldNames(Ptr))//'='//trim(Alphas(Ptr))//', '// &
trim(cNumericFieldNames(NumField))//'=['//trim(RoundSigDigits(Numbers(NumField),5))//'].')
CALL ShowContinueError('Out-of-range from low/high limits=[>='//trim(RoundSigDigits(LowHConvLimit,9))//', '// &
'<='//trim(RoundSigDigits(HighHConvLimit,1))//'].')
! CALL RangeCheck(ErrFlag,'"'//trim(cAlphaFieldNames(FieldNo+1))//'"','object', &
! 'SEVERE','>='//trim(RoundSigDigits(LowHConvLimit,9)),(Numbers(NumField)>=LowHConvLimit),&
! '<='//trim(RoundSigDigits(HighHConvLimit,1)),(Numbers(NumField)<=HighHConvLimit))
CALL ShowContinueError('Limits are set (or default) in HeatBalanceAlgorithm object.')
ErrorsFound=.true.
ErrFlag=.false.
ENDIF
UserExtConvectionCoeffs(TotExtConvCoeff)%OverrideType=ConvCoefValue
UserExtConvectionCoeffs(TotExtConvCoeff)%OverrideValue=Numbers(NumField)
IF (.not. lAlphaFieldBlanks(Ptr+2)) THEN
CALL ShowWarningError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(Alphas(1))//', duplicate value')
CALL ShowContinueError('Since VALUE is used for "'//trim(cAlphaFieldNames(FieldNo+2))// &
'", '//TRIM(cAlphaFieldNames(Ptr+2))//'='// &
TRIM(Alphas(Ptr+2))//' is ignored.')
ENDIF
PotentialAssignedValue=TotExtConvCoeff
ELSEIF (IsValidType .and. Loop1 == 2) THEN ! Schedule
TotExtConvCoeff=TotExtConvCoeff+1
UserExtConvectionCoeffs(TotExtConvCoeff)%SurfaceName=Alphas(1)
UserExtConvectionCoeffs(TotExtConvCoeff)%WhichSurface=Found
UserExtConvectionCoeffs(TotExtConvCoeff)%OverrideType=ConvCoefSchedule
UserExtConvectionCoeffs(TotExtConvCoeff)%ScheduleIndex=GetScheduleIndex(Alphas(Ptr+2))
IF (UserExtConvectionCoeffs(TotExtConvCoeff)%ScheduleIndex == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(Alphas(1))//', invalid value')
CALL ShowContinueError(' Invalid '//TRIM(cAlphaFieldNames(Ptr+2))//' entered='//TRIM(Alphas(Ptr+2)))
ErrorsFound=.true.
ELSE
UserExtConvectionCoeffs(TotExtConvCoeff)%ScheduleName=Alphas(Ptr+2)
ENDIF
PotentialAssignedValue=TotExtConvCoeff
ELSEIF (IsValidType .AND. ExtValue == HcExt_UserCurve) THEN ! User curve
TotExtConvCoeff=TotExtConvCoeff+1
UserExtConvectionCoeffs(TotExtConvCoeff)%SurfaceName=Alphas(1)
UserExtConvectionCoeffs(TotExtConvCoeff)%WhichSurface=Found
UserExtConvectionCoeffs(TotExtConvCoeff)%OverrideType=ConvCoefUserCurve
UserExtConvectionCoeffs(TotExtConvCoeff)%UserCurveIndex = FindItemInList(Alphas(Ptr+3), &
HcOutsideUserCurve%Name, TotOutsideHcUserCurves)
IF (UserExtConvectionCoeffs(TotExtConvCoeff)%UserCurveIndex == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(Alphas(1))//', invalid value')
CALL ShowContinueError(' Invalid '//TRIM(cAlphaFieldNames(Ptr+3))//' entered='//TRIM(Alphas(Ptr+3)))
ErrorsFound = .true.
ENDIF
PotentialAssignedValue=TotExtConvCoeff
ELSEIF (IsValidType .AND. ExtValue > HcExt_UserCurve) THEN
! specificmodel
TotExtConvCoeff=TotExtConvCoeff+1
UserExtConvectionCoeffs(TotExtConvCoeff)%SurfaceName=Alphas(1)
UserExtConvectionCoeffs(TotExtConvCoeff)%WhichSurface=Found
UserExtConvectionCoeffs(TotExtConvCoeff)%OverrideType=ConvCoefSpecifiedModel
UserExtConvectionCoeffs(TotExtConvCoeff)%HcModelEq = ExtValue
PotentialAssignedValue = TotExtConvCoeff
ELSE
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(Alphas(1))//', check input')
CALL ShowContinueError('Check Input Entered :'//TRIM(Alphas(Ptr+1)))
ErrorsFound=.true.
ENDIF
IF (Surface(Found)%ExtConvCoeff /= 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(Alphas(1))//', invalid value')
CALL ShowContinueError('Duplicate (Outside) assignment attempt')
ErrorsFound=.true.
ELSE
Surface(Found)%ExtConvCoeff=PotentialAssignedValue
ENDIF
CASE ('INSIDE')
IsValidType=.false.
IntValue=0
PotentialAssignedValue=0
DO Loop1=1,NumValidIntConvectionValueTypes
IF (Alphas(Ptr+1) /= ValidIntConvectionValueTypes(Loop1)) CYCLE
IntValue=IntConvectionValue(Loop1)
IsValidType=.true.
EXIT
ENDDO
IF (IsValidType .AND. (Loop1 > 2) .AND. (Loop1 <= 5)) THEN
PotentialAssignedValue=-IntValue
ELSEIF (IsValidType .and. Loop1 == 1) THEN ! Value
TotIntConvCoeff=TotIntConvCoeff+1
UserIntConvectionCoeffs(TotIntConvCoeff)%SurfaceName=Alphas(1)
UserIntConvectionCoeffs(TotIntConvCoeff)%WhichSurface=Found
IF (Numbers(NumField) < LowHConvLimit .or. Numbers(NumField) > HighHConvLimit) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(Alphas(1))//', out of range value')
CALL ShowContinueError(trim(cAlphaFieldNames(Ptr))//'='//trim(Alphas(Ptr))//', '// &
trim(cNumericFieldNames(NumField))//'=['//trim(RoundSigDigits(Numbers(NumField),5))//'].')
CALL ShowContinueError('Out-of-range from low/high limits=[>='//trim(RoundSigDigits(LowHConvLimit,9))//', '// &
'<='//trim(RoundSigDigits(HighHConvLimit,1))//'].')
! CALL RangeCheck(ErrFlag,'"'//trim(cAlphaFieldNames(FieldNo+1))//'"','object', &
! 'SEVERE','>='//trim(RoundSigDigits(LowHConvLimit,9)),(Numbers(NumField)>=LowHConvLimit),&
! '<='//trim(RoundSigDigits(HighHConvLimit,1)),(Numbers(NumField)<=HighHConvLimit))
CALL ShowContinueError('Limits are set (or default) in HeatBalanceAlgorithm object.')
ErrorsFound=.true.
ErrFlag=.false.
ENDIF
UserIntConvectionCoeffs(TotIntConvCoeff)%OverrideType=ConvCoefValue
UserIntConvectionCoeffs(TotIntConvCoeff)%OverrideValue=Numbers(NumField)
IF (.not. lAlphaFieldBlanks(Ptr+2)) THEN
CALL ShowWarningError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(Alphas(1))//', duplicate value')
CALL ShowContinueError('Since VALUE is used for "'//trim(cAlphaFieldNames(FieldNo+1))// &
'", '//TRIM(cAlphaFieldNames(Ptr+2))//'='// &
TRIM(Alphas(Ptr+2))//' is ignored.')
ENDIF
PotentialAssignedValue=TotIntConvCoeff
ELSEIF (IsValidType .and. Loop1 == 2) THEN ! Schedule
TotIntConvCoeff=TotIntConvCoeff+1
UserIntConvectionCoeffs(TotIntConvCoeff)%SurfaceName=Alphas(1)
UserIntConvectionCoeffs(TotIntConvCoeff)%WhichSurface=Found
UserIntConvectionCoeffs(TotIntConvCoeff)%OverrideType=ConvCoefSchedule
UserIntConvectionCoeffs(TotIntConvCoeff)%ScheduleIndex=GetScheduleIndex(Alphas(Ptr+2))
IF (UserIntConvectionCoeffs(TotIntConvCoeff)%ScheduleIndex == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(Alphas(1))//', invalid value')
CALL ShowContinueError(' Invalid '//TRIM(cAlphaFieldNames(Ptr+2))//' entered='//TRIM(Alphas(Ptr+2)))
ErrorsFound=.true.
ELSE
UserIntConvectionCoeffs(TotIntConvCoeff)%ScheduleName=Alphas(Ptr+2)
ENDIF
PotentialAssignedValue=TotIntConvCoeff
ELSEIF ( IsValidType .AND. IntValue == HcInt_UserCurve) THEN
TotIntConvCoeff=TotIntConvCoeff+1
UserIntConvectionCoeffs(TotIntConvCoeff)%SurfaceName=Alphas(1)
UserIntConvectionCoeffs(TotIntConvCoeff)%WhichSurface=Found
UserIntConvectionCoeffs(TotIntConvCoeff)%OverrideType=ConvCoefUserCurve
UserIntConvectionCoeffs(TotIntConvCoeff)%UserCurveIndex = FindItemInList(Alphas(Ptr+3), &
HcInsideUserCurve%Name, TotInsideHcUserCurves)
IF (UserIntConvectionCoeffs(TotIntConvCoeff)%UserCurveIndex == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(Alphas(1))//', invalid value')
CALL ShowContinueError(' Invalid '//TRIM(cAlphaFieldNames(Ptr+3))//' entered='//TRIM(Alphas(Ptr+3)))
ErrorsFound=.true.
ENDIF
PotentialAssignedValue=TotIntConvCoeff
ELSEIF (IsValidType .AND. IntValue > HcInt_UserCurve) THEN
! specificmodel
TotIntConvCoeff=TotIntConvCoeff+1
UserIntConvectionCoeffs(TotIntConvCoeff)%SurfaceName=Alphas(1)
UserIntConvectionCoeffs(TotIntConvCoeff)%WhichSurface=Found
UserIntConvectionCoeffs(TotIntConvCoeff)%OverrideType=ConvCoefSpecifiedModel
UserIntConvectionCoeffs(TotIntConvCoeff)%HcModelEq = IntValue
PotentialAssignedValue = TotIntConvCoeff
ELSE
! treat CeilingDiffuser and TrombeWall special
IF (SameString(Alphas(Ptr+1),'CEILINGDIFFUSER') .or. SameString(Alphas(Ptr+1),'TROMBEWALL')) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(Alphas(1))//', invalid value')
CALL ShowContinueError('Invalid Value Entered, for '//TRIM(cAlphaFieldNames(Ptr))//'='//TRIM(Alphas(Ptr)))
CALL ShowContinueError('invalid value in '//TRIM(cAlphaFieldNames(Ptr+1))//'='//TRIM(Alphas(Ptr+1))// &
'". This type is only applicable at a Zone level.')
ErrorsFound=.true.
ELSE ! really invalid
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(Alphas(1))//', invalid value')
CALL ShowContinueError('Invalid Value Entered, for '//TRIM(cAlphaFieldNames(Ptr))//'='//TRIM(Alphas(Ptr)))
CALL ShowContinueError('invalid value in '//TRIM(cAlphaFieldNames(Ptr+1))//'='//TRIM(Alphas(Ptr+1)))
ErrorsFound=.true.
ENDIF
ENDIF
IF (Surface(Found)%IntConvCoeff /= 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(Alphas(1))//', duplicate (inside)')
CALL ShowContinueError('Duplicate (Inside) assignment attempt.')
ErrorsFound=.true.
ELSE
Surface(Found)%IntConvCoeff=PotentialAssignedValue
ENDIF
CASE (' ') ! Blank
CASE DEFAULT
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(Alphas(1))//', invalid value')
CALL ShowContinueError('Invalid Value Entered, for '//TRIM(cAlphaFieldNames(Ptr))//'='//TRIM(Alphas(Ptr)))
ErrorsFound=.true.
END SELECT
Ptr=Ptr+4
FieldNo=FieldNo+4
NumField=NumField+1
ENDDO
ENDDO
CurrentModuleObject='SurfaceProperty:ConvectionCoefficients:MultipleSurface'
Count=GetNumObjectsFound(CurrentModuleObject)
DO Loop=1,Count
CALL GetObjectItem(CurrentModuleObject,Loop,Alphas,NumAlphas,Numbers,NumNumbers,Status, &
AlphaBlank=lAlphaFieldBlanks,NumBlank=lNumericFieldBlanks, &
AlphaFieldnames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
! Check Field 1 for validity
IsValidType=.false.
DO Loop1=1,NumValidSurfaceTypes
IF (Alphas(1) /= ValidSurfaceTypes(Loop1)) CYCLE
IsValidType=.true.
EXIT
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(Alphas(1))//', invalid value')
CALL ShowContinueError('illegal value for '//TRIM(cAlphaFieldNames(1))//'='//TRIM(Alphas(1)))
ErrorsFound=.true.
CYCLE
ENDIF
Ptr=2
FieldNo=2
NumField=1
DO Pass=1,2
SELECT CASE(Alphas(Ptr))
CASE ('OUTSIDE')
IsValidType=.false.
DO Loop1=1,NumValidExtConvectionValueTypes
IF (Alphas(Ptr+1) /= ValidExtConvectionValueTypes(Loop1)) CYCLE
ExtValue=ExtConvectionValue(Loop1)
IsValidType=.true.
EXIT
ENDDO
IF (IsValidType .and. (Loop1 > 2) .AND. (Loop1 <=7)) THEN
CALL ApplyConvectionValue(Alphas(1),'OUTSIDE',-ExtValue)
ELSEIF (IsValidType .and. Loop1 == 1) THEN ! Value
! SimpleValueAssignment via UserExtConvectionCoeffs array
TotExtConvCoeff=TotExtConvCoeff+1
UserExtConvectionCoeffs(TotExtConvCoeff)%SurfaceName=Alphas(Ptr)
UserExtConvectionCoeffs(TotExtConvCoeff)%WhichSurface=-999
IF (Numbers(NumField) < LowHConvLimit .or. Numbers(NumField) > HighHConvLimit) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(Alphas(1))//', out of range value')
CALL ShowContinueError(trim(cAlphaFieldNames(Ptr))//'='//trim(Alphas(Ptr))//', '// &
trim(cNumericFieldNames(NumField))//'=['//trim(RoundSigDigits(Numbers(NumField),5))//'].')
CALL ShowContinueError('Out-of-range from low/high limits=[>='//trim(RoundSigDigits(LowHConvLimit,9))//', '// &
'<='//trim(RoundSigDigits(HighHConvLimit,1))//'].')
! CALL RangeCheck(ErrFlag,'"'//trim(cAlphaFieldNames(FieldNo+1))//'"','object', &
! 'SEVERE','>='//trim(RoundSigDigits(LowHConvLimit,9)),(Numbers(NumField)>=LowHConvLimit),&
! '<='//trim(RoundSigDigits(HighHConvLimit,1)),(Numbers(NumField)<=HighHConvLimit))
CALL ShowContinueError('Limits are set (or default) in HeatBalanceAlgorithm object.')
ErrorsFound=.true.
ErrFlag=.false.
ENDIF
UserExtConvectionCoeffs(TotExtConvCoeff)%OverrideType=ConvCoefValue
UserExtConvectionCoeffs(TotExtConvCoeff)%OverrideValue=Numbers(NumField)
IF (.not. lAlphaFieldBlanks(Ptr+2)) THEN
CALL ShowWarningError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(Alphas(1))//', duplicate value')
CALL ShowContinueError('Since VALUE is used for "'//trim(cAlphaFieldNames(FieldNo+2))// &
'", '//TRIM(cAlphaFieldNames(Ptr+2))//'='// &
TRIM(Alphas(Ptr+2))//' is ignored.')
ENDIF
CALL ApplyConvectionValue(Alphas(1),'OUTSIDE',TotExtConvCoeff)
ELSEIF (IsValidType .and. Loop1 == 2) THEN ! Schedule
TotExtConvCoeff=TotExtConvCoeff+1
UserExtConvectionCoeffs(TotExtConvCoeff)%SurfaceName=Alphas(Ptr)
UserExtConvectionCoeffs(TotExtConvCoeff)%WhichSurface=-999
UserExtConvectionCoeffs(TotExtConvCoeff)%OverrideType=ConvCoefSchedule
UserExtConvectionCoeffs(TotExtConvCoeff)%ScheduleIndex=GetScheduleIndex(Alphas(Ptr+2))
IF (UserExtConvectionCoeffs(TotExtConvCoeff)%ScheduleIndex == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(Alphas(1))//', invalid value')
CALL ShowContinueError(' Invalid '//TRIM(cAlphaFieldNames(Ptr+2))//' entered='//TRIM(Alphas(Ptr+2)))
ErrorsFound=.true.
ELSE
UserExtConvectionCoeffs(TotExtConvCoeff)%ScheduleName=Alphas(Ptr+2)
ENDIF
CALL ApplyConvectionValue(Alphas(1),'OUTSIDE',TotExtConvCoeff)
ELSEIF (IsValidType .AND. ExtValue == HcExt_UserCurve) THEN ! User curve
TotExtConvCoeff=TotExtConvCoeff+1
UserExtConvectionCoeffs(TotExtConvCoeff)%SurfaceName=Alphas(Ptr)
UserExtConvectionCoeffs(TotExtConvCoeff)%WhichSurface=-999
UserExtConvectionCoeffs(TotExtConvCoeff)%OverrideType=ConvCoefUserCurve
UserExtConvectionCoeffs(TotExtConvCoeff)%UserCurveIndex = FindItemInList(Alphas(Ptr+3), &
HcOutsideUserCurve%Name, TotOutsideHcUserCurves)
IF (UserExtConvectionCoeffs(TotExtConvCoeff)%UserCurveIndex == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(Alphas(1))//', invalid value')
CALL ShowContinueError(' Invalid '//TRIM(cAlphaFieldNames(Ptr+3))//' entered='//TRIM(Alphas(Ptr+3)))
ErrorsFound = .true.
ENDIF
PotentialAssignedValue=TotExtConvCoeff
CALL ApplyConvectionValue(Alphas(1),'OUTSIDE',TotExtConvCoeff)
ELSEIF (IsValidType .AND. ExtValue > HcExt_UserCurve) THEN
! specificmodel
TotExtConvCoeff=TotExtConvCoeff+1
UserExtConvectionCoeffs(TotExtConvCoeff)%SurfaceName=Alphas(Ptr)
UserExtConvectionCoeffs(TotExtConvCoeff)%WhichSurface=-999
UserExtConvectionCoeffs(TotExtConvCoeff)%OverrideType=ConvCoefSpecifiedModel
UserExtConvectionCoeffs(TotExtConvCoeff)%HcModelEq = ExtValue
PotentialAssignedValue = TotExtConvCoeff
CALL ApplyConvectionValue(Alphas(1),'OUTSIDE',TotExtConvCoeff)
ELSE
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(Alphas(1))//', check input')
CALL ShowContinueError('Check Input Entered :'//TRIM(Alphas(Ptr+1)))
ErrorsFound=.true.
ENDIF
CASE ('INSIDE')
IsValidType=.false.
DO Loop1=1,NumValidIntConvectionValueTypes
IF (Alphas(Ptr+1) /= ValidIntConvectionValueTypes(Loop1)) CYCLE
IntValue=IntConvectionValue(Loop1)
IsValidType=.true.
EXIT
ENDDO
IF (IsValidType .AND. (Loop1 > 2 ).AND. (Loop1 <= 5)) THEN
CALL ApplyConvectionValue(Alphas(1),'INSIDE',-IntValue)
ELSEIF (IsValidType .and. Loop1 == 1) THEN ! Value
! SimpleValueAssignment via UserExtConvectionCoeffs array
TotIntConvCoeff=TotIntConvCoeff+1
UserIntConvectionCoeffs(TotIntConvCoeff)%SurfaceName=Alphas(Ptr)
UserIntConvectionCoeffs(TotIntConvCoeff)%WhichSurface=-999
IF (Numbers(NumField) < LowHConvLimit .or. Numbers(NumField) > HighHConvLimit) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(Alphas(1))//', out of range value')
CALL ShowContinueError(trim(cAlphaFieldNames(Ptr))//'='//trim(Alphas(Ptr))//', '// &
trim(cNumericFieldNames(NumField))//'=['//trim(RoundSigDigits(Numbers(NumField),5))//'].')
CALL ShowContinueError('Out-of-range from low/high limits=[>='//trim(RoundSigDigits(LowHConvLimit,9))//', '// &
'<='//trim(RoundSigDigits(HighHConvLimit,1))//'].')
! CALL RangeCheck(ErrFlag,'"'//trim(cAlphaFieldNames(FieldNo+1))//'"','object', &
! 'SEVERE','>='//trim(RoundSigDigits(LowHConvLimit,9)),(Numbers(NumField)>=LowHConvLimit),&
! '<='//trim(RoundSigDigits(HighHConvLimit,1)),(Numbers(NumField)<=HighHConvLimit))
CALL ShowContinueError('Limits are set (or default) in HeatBalanceAlgorithm object.')
ErrorsFound=.true.
ErrFlag=.false.
ENDIF
UserIntConvectionCoeffs(TotIntConvCoeff)%OverrideType=ConvCoefValue
UserIntConvectionCoeffs(TotIntConvCoeff)%OverrideValue=Numbers(NumField)
IF (.not. lAlphaFieldBlanks(Ptr+2)) THEN
CALL ShowWarningError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(Alphas(1))//', duplicate value')
CALL ShowContinueError('Since VALUE is used for "'//trim(cAlphaFieldNames(FieldNo+2))// &
'", '//TRIM(cAlphaFieldNames(Ptr+2))//'='// &
TRIM(Alphas(Ptr+2))//' is ignored.')
ENDIF
CALL ApplyConvectionValue(Alphas(1),'INSIDE',TotIntConvCoeff)
ELSEIF (IsValidType .and. Loop1 == 2) THEN ! Schedule
TotIntConvCoeff=TotIntConvCoeff+1
UserIntConvectionCoeffs(TotIntConvCoeff)%SurfaceName=Alphas(Ptr)
UserIntConvectionCoeffs(TotIntConvCoeff)%WhichSurface=-999
UserIntConvectionCoeffs(TotIntConvCoeff)%OverrideType=ConvCoefSchedule
UserIntConvectionCoeffs(TotIntConvCoeff)%ScheduleIndex=GetScheduleIndex(Alphas(Ptr+2))
IF (UserIntConvectionCoeffs(TotIntConvCoeff)%ScheduleIndex == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(Alphas(1))//', invalid value')
CALL ShowContinueError(' Invalid '//TRIM(cAlphaFieldNames(Ptr+2))//' entered='//TRIM(Alphas(Ptr+2)))
ErrorsFound=.true.
ELSE
UserIntConvectionCoeffs(TotIntConvCoeff)%ScheduleName=Alphas(Ptr+2)
ENDIF
CALL ApplyConvectionValue(Alphas(1),'INSIDE',TotIntConvCoeff)
ELSEIF ( IsValidType .AND. IntValue == HcInt_UserCurve) THEN
TotIntConvCoeff=TotIntConvCoeff+1
UserIntConvectionCoeffs(TotIntConvCoeff)%SurfaceName=Alphas(Ptr)
UserIntConvectionCoeffs(TotIntConvCoeff)%WhichSurface=-999
UserIntConvectionCoeffs(TotIntConvCoeff)%OverrideType=ConvCoefUserCurve
UserIntConvectionCoeffs(TotIntConvCoeff)%UserCurveIndex = FindItemInList(Alphas(Ptr+3), &
HcInsideUserCurve%Name, TotInsideHcUserCurves)
IF (UserIntConvectionCoeffs(TotIntConvCoeff)%UserCurveIndex == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(Alphas(1))//', invalid value')
CALL ShowContinueError(' Invalid '//TRIM(cAlphaFieldNames(Ptr+3))//' entered='//TRIM(Alphas(Ptr+3)))
ErrorsFound=.true.
ENDIF
PotentialAssignedValue=TotIntConvCoeff
CALL ApplyConvectionValue(Alphas(1),'INSIDE',TotIntConvCoeff)
ELSEIF (IsValidType .AND. IntValue > HcInt_UserCurve) THEN
! specificmodel
TotIntConvCoeff=TotIntConvCoeff+1
UserIntConvectionCoeffs(TotIntConvCoeff)%SurfaceName=Alphas(Ptr)
UserIntConvectionCoeffs(TotIntConvCoeff)%WhichSurface=-999
UserIntConvectionCoeffs(TotIntConvCoeff)%OverrideType=ConvCoefSpecifiedModel
UserIntConvectionCoeffs(TotIntConvCoeff)%HcModelEq = IntValue
PotentialAssignedValue = TotIntConvCoeff
CALL ApplyConvectionValue(Alphas(1),'INSIDE',TotIntConvCoeff)
ELSE
! treat CeilingDiffuser and TrombeWall special
IF (SameString(Alphas(Ptr+1),'CEILINGDIFFUSER') .or. SameString(Alphas(Ptr+1),'TROMBEWALL')) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(Alphas(1))//', invalid value')
CALL ShowContinueError(' Invalid '//TRIM(cAlphaFieldNames(Ptr))//' entered='//TRIM(Alphas(Ptr)))
CALL ShowContinueError('invalid value in '//TRIM(cAlphaFieldNames(Ptr+1))//'='//TRIM(Alphas(Ptr+1))// &
'". This type is only applicable at a Zone level.')
ErrorsFound=.true.
ELSE ! really invalid
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(Alphas(1))//', invalid value')
CALL ShowContinueError(' Invalid '//TRIM(cAlphaFieldNames(Ptr+1))//' entered='//TRIM(Alphas(Ptr+1)))
ErrorsFound=.true.
ENDIF
ENDIF
CASE (' ') ! Blank
CASE DEFAULT ! Error Case
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(Alphas(1))//', invalid value')
CALL ShowContinueError(' Invalid '//TRIM(cAlphaFieldNames(Ptr))//' entered='//TRIM(Alphas(Ptr)))
ErrorsFound=.true.
END SELECT
Ptr=Ptr+4
FieldNo=FieldNo+4
NumField=NumField+1
ENDDO
ENDDO
DO Loop=1,TotIntConvCoeff
IF (UserIntConvectionCoeffs(Loop)%OverrideType /= ConvCoefSchedule) CYCLE
IF (UserIntConvectionCoeffs(Loop)%ScheduleIndex == 0) CYCLE
IF (CheckScheduleValueMinMax(UserIntConvectionCoeffs(Loop)%ScheduleIndex,'>=',LowHConvLimit,'<=',HighHConvLimit)) CYCLE
CALL ShowSevereError(RoutineName//'Surface="'// &
TRIM(UserIntConvectionCoeffs(Loop)%SurfaceName)//'", out-of-range convection coefficient:')
CALL ShowContinueError('Out-of-range value found in schedule='//TRIM(UserIntConvectionCoeffs(Loop)%ScheduleName))
CALL ShowContinueError('User supplied convection coefficients must be in range [>=' // &
trim(RoundSigDigits(LowHConvLimit,9))//', <='// &
trim(RoundSigDigits(HighHConvLimit,1))// ']')
CALL ShowContinueError('Limits are set (or default) in HeatBalanceAlgorithm object.')
ErrorsFound=.true.
ENDDO
DO Loop=1,TotExtConvCoeff
IF (UserExtConvectionCoeffs(Loop)%OverrideType /= ConvCoefSchedule) CYCLE
IF (UserExtConvectionCoeffs(Loop)%ScheduleIndex == 0) CYCLE
IF (CheckScheduleValueMinMax(UserExtConvectionCoeffs(Loop)%ScheduleIndex,'>=',LowHConvLimit,'<=',HighHConvLimit)) CYCLE
CALL ShowSevereError(RoutineName//'Surface="'// &
TRIM(UserExtConvectionCoeffs(Loop)%SurfaceName)//'", out-of-range convection coefficient:')
CALL ShowContinueError('Out-of-range value found in schedule='//TRIM(UserExtConvectionCoeffs(Loop)%ScheduleName))
CALL ShowContinueError('User supplied convection coefficients must be in range [>=' // &
trim(RoundSigDigits(LowHConvLimit,9))//', <='// &
trim(RoundSigDigits(HighHConvLimit,1))// ']')
CALL ShowContinueError('Limits are set (or default) in HeatBalanceAlgorithm object.')
ErrorsFound=.true.
ENDDO
IF (DefaultOutsideConvectionAlgo == ASHRAESimple .or. ANY(Zone%OutsideConvectionAlgo == ASHRAESimple)) THEN
Count=0
DO Loop=1,TotExtConvCoeff
SurfNum=UserExtConvectionCoeffs(Loop)%WhichSurface
! Tests show that Zone will override the simple convection specification of global.
IF (SurfNum <= 0) CYCLE ! ignore this error condition
IF (Surface(SurfNum)%Zone == 0) CYCLE ! ignore this error condition
IF (Zone(Surface(SurfNum)%Zone)%OutsideConvectionAlgo == ASHRAESimple .and. &
(UserExtConvectionCoeffs(Loop)%OverrideType == ConvCoefSpecifiedModel .and. &
UserExtConvectionCoeffs(Loop)%HcModelEq /= ASHRAESimple) .or. &
UserExtConvectionCoeffs(Loop)%OverrideType /= ConvCoefSpecifiedModel) THEN
Count=Count+1
IF (DisplayExtraWarnings) THEN
CALL ShowSevereError(RoutineName//'Surface="'// &
TRIM(UserExtConvectionCoeffs(Loop)%SurfaceName)//'", mixed algorithms.')
CALL ShowContinueError('Zone Outside Convection Algorithm specifies "SimpleCombined". '// &
'SimpleCombined will be used for this surface.')
ENDIF
ENDIF
ENDDO
IF (Count > 0) THEN
CALL ShowSevereMessage(RoutineName//trim(RoundSigDigits(Count))// &
' surfaces had different outside convection algorithms specified when')
CALL ShowContinueError('the Zone Outside Convection Algorithm specifies "SimpleCombined".'// &
'SimpleCombined will be used for these surfaces.')
IF (.not. DisplayExtraWarnings) THEN
CALL ShowContinueError('Use OutputDiagnostics,DisplayExtraWarnings; to see specific instances.')
TotalSevereErrors=TotalSevereErrors+Count
ENDIF
ENDIF
ENDIF
!get SurfaceConvectionAlgorithm:Inside:AdaptiveModelSelections
CurrentModuleObject='SurfaceConvectionAlgorithm:Inside:AdaptiveModelSelections'
Count = GetNumObjectsFound(CurrentModuleObject)
!IF (Count > 1) ! throw error ... TODO or IP handles it
IF (Count == 1) THEN
CALL GetObjectItem(CurrentModuleObject,1,cAlphaArgs,NumAlphas,rNumericArgs,NumNumbers,Status, &
AlphaBlank=lAlphaFieldBlanks,NumBlank=lNumericFieldBlanks, &
AlphaFieldnames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
InsideFaceAdaptiveConvectionAlgo%Name = cAlphaArgs(1) !not used by E+, unique object
InsideFaceAdaptiveConvectionAlgo%EnteredByUser = .TRUE.
! A2 , \field Simple Bouyancy Vertical Wall Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(2)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%SimpleBouyVertWallEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%SimpleBouyVertWallEqNum == HcInt_UserCurve) THEN
! A3 , \field Simple Bouyancy Vertical Wall User Curve Name
InsideFaceAdaptiveConvectionAlgo%SimpleBouyVertWallUserCurveNum = FindItemInList(cAlphaArgs(3), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%SimpleBouyVertWallUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(Alphas(1))//', invalid value')
CALL ShowContinueError(' Invalid '//TRIM(cAlphaFieldNames(3))//' entered='//TRIM(cAlphaArgs(3)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(2))//'='//TRIM(cAlphaArgs(2)))
ErrorsFound=.true.
ENDIF
! A4 , \field Simple Bouyancy Stable Horizontal Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(4)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%SimpleBouyStableHorizEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%SimpleBouyStableHorizEqNum == HcInt_UserCurve) THEN
! A5 , \field Simple Bouyancy Stable Horizontal Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%SimpleBouyStableHorizUserCurveNum = FindItemInList(cAlphaArgs(5), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%SimpleBouyStableHorizUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(5))//'='//TRIM(cAlphaArgs(5)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(4))//'='//TRIM(cAlphaArgs(4)))
ErrorsFound=.true.
ENDIF
! A6 , \field Simple Bouyancy Unstable Horizontal Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(6)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%SimpleBouyUnstableHorizEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%SimpleBouyUnstableHorizEqNum == HcInt_UserCurve) THEN
! A7 , \field Simple Bouyancy Unstable Horizontal Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%SimpleBouyUnstableHorizUserCurveNum = FindItemInList(cAlphaArgs(7), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%SimpleBouyUnstableHorizUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(7))//'='//TRIM(cAlphaArgs(7)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(6))//'='//TRIM(cAlphaArgs(6)))
ErrorsFound=.true.
ENDIF
! A8 , \field Simple Bouyancy Stable Tilted Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(8)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%SimpleBouyStableTiltedEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%SimpleBouyStableTiltedEqNum == HcInt_UserCurve) THEN
! A9 , \field Simple Bouyancy Stable Tilted Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%SimpleBouyStableTiltedUserCurveNum = FindItemInList(cAlphaArgs(9), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%SimpleBouyStableTiltedUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(9))//'='//TRIM(cAlphaArgs(9)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(8))//'='//TRIM(cAlphaArgs(8)))
ErrorsFound=.true.
ENDIF
! A10 , \field Simple Bouyancy Unstable Tilted Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(10)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%SimpleBouyUnstableTiltedEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%SimpleBouyUnstableTiltedEqNum == HcInt_UserCurve) THEN
! A11, \field Simple Bouyancy Unstable Tilted Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%SimpleBouyUnstableTiltedUserCurveNum = FindItemInList(cAlphaArgs(11), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%SimpleBouyUnstableTiltedUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(11))//'='//TRIM(cAlphaArgs(11)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(10))//'='//TRIM(cAlphaArgs(10)))
ErrorsFound=.true.
ENDIF
! A12, \field Simple Bouyancy Windows Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(12)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%SimpleBouyWindowsEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%SimpleBouyWindowsEqNum == HcInt_UserCurve) THEN
! A13, \field Simple Bouyancy Windows Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%SimpleBouyWindowsUserCurveNum = FindItemInList(cAlphaArgs(13), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%SimpleBouyWindowsUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(13))//'='//TRIM(cAlphaArgs(13)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(12))//'='//TRIM(cAlphaArgs(12)))
ErrorsFound=.true.
ENDIF
! A14, \field Floor Heat Ceiling Cool Vertical Wall Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(14)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%FloorHeatCeilingCoolVertWallEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%FloorHeatCeilingCoolVertWallEqNum == HcInt_UserCurve) THEN
! A15, \field Floor Heat Ceiling Cool Vertical Wall Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%FloorHeatCeilingCoolVertWallUserCurveNum = FindItemInList(cAlphaArgs(15), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%FloorHeatCeilingCoolVertWallUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(15))//'='//TRIM(cAlphaArgs(15)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(14))//'='//TRIM(cAlphaArgs(14)))
ErrorsFound=.true.
ENDIF
! A16, \field Floor Heat Ceiling Cool Stable Horizontal Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(16)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%FloorHeatCeilingCoolStableHorizEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%FloorHeatCeilingCoolStableHorizEqNum == HcInt_UserCurve) THEN
! A17, \field Floor Heat Ceiling Cool Stable Horizontal Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%FloorHeatCeilingCoolStableHorizUserCurveNum = FindItemInList(cAlphaArgs(17), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%FloorHeatCeilingCoolStableHorizUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(17))//'='//TRIM(cAlphaArgs(17)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(16))//'='//TRIM(cAlphaArgs(16)))
ErrorsFound=.true.
ENDIF
! A18, \field Floor Heat Ceiling Cool Unstable Horizontal Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(18)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%FloorHeatCeilingCoolUnstableHorizEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%FloorHeatCeilingCoolUnstableHorizEqNum == HcInt_UserCurve) THEN
! A19, \field Floor Heat Ceiling Cool Unstable Horizontal Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%FloorHeatCeilingCoolUnstableHorizUserCurveNum = FindItemInList(cAlphaArgs(19), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%FloorHeatCeilingCoolUnstableHorizUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(19))//'='//TRIM(cAlphaArgs(19)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(18))//'='//TRIM(cAlphaArgs(18)))
ErrorsFound=.true.
ENDIF
! A20, \field Floor Heat Ceiling Cool Heated Floor Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(20)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%FloorHeatCeilingCoolHeatedFloorEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%FloorHeatCeilingCoolHeatedFloorEqNum == HcInt_UserCurve) THEN
! A21, \field Floor Heat Ceiling Cool Heated Floor Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%FloorHeatCeilingCoolHeatedFloorUserCurveNum = FindItemInList(cAlphaArgs(21), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%FloorHeatCeilingCoolHeatedFloorUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(21))//'='//TRIM(cAlphaArgs(21)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(20))//'='//TRIM(cAlphaArgs(20)))
ErrorsFound=.true.
ENDIF
! A22, \field Floor Heat Ceiling Cool Chilled Ceiling Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(22)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%FloorHeatCeilingCoolChilledCeilingEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%FloorHeatCeilingCoolChilledCeilingEqNum == HcInt_UserCurve) THEN
! A23, \field Floor Heat Ceiling Cool Chilled Ceiling Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%FloorHeatCeilingCoolChilledCeilingUserCurveNum = FindItemInList(cAlphaArgs(23), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%FloorHeatCeilingCoolChilledCeilingUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(23))//'='//TRIM(cAlphaArgs(23)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(22))//'='//TRIM(cAlphaArgs(22)))
ErrorsFound=.true.
ENDIF
! A24, \field Floor Heat Ceiling Cool Stable Tilted Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(24)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%FloorHeatCeilingCoolStableTiltedEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%FloorHeatCeilingCoolStableTiltedEqNum == HcInt_UserCurve) THEN
! A25, \field Floor Heat Ceiling Cool Stable Tilted Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%FloorHeatCeilingCoolStableTiltedUserCurveNum = FindItemInList(cAlphaArgs(25), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%FloorHeatCeilingCoolStableTiltedUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(25))//'='//TRIM(cAlphaArgs(25)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(24))//'='//TRIM(cAlphaArgs(24)))
ErrorsFound=.true.
ENDIF
! A26, \field Floor Heat Ceiling Cool Unstable Tilted Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(26)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%FloorHeatCeilingCoolUnstableTiltedEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%FloorHeatCeilingCoolUnstableTiltedEqNum == HcInt_UserCurve) THEN
! A27, \field Floor Heat Ceiling Cool Unstable Tilted Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%FloorHeatCeilingCoolUnstableTiltedUserCurveNum = FindItemInList(cAlphaArgs(27), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%FloorHeatCeilingCoolUnstableTiltedUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(27))//'='//TRIM(cAlphaArgs(27)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(26))//'='//TRIM(cAlphaArgs(26)))
ErrorsFound=.true.
ENDIF
! A28, \field Floor Heat Ceiling Cool Window Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(28)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%FloorHeatCeilingCoolWindowsEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%FloorHeatCeilingCoolWindowsEqNum == HcInt_UserCurve) THEN
! A29, \field Floor Heat Ceiling Cool Window Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%FloorHeatCeilingCoolWindowsUserCurveNum = FindItemInList(cAlphaArgs(29), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%FloorHeatCeilingCoolWindowsUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(29))//'='//TRIM(cAlphaArgs(29)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(28))//'='//TRIM(cAlphaArgs(28)))
ErrorsFound=.true.
ENDIF
! A30, \field Wall Panel Heating Vertical Wall Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(30)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%WallPanelHeatVertWallEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%WallPanelHeatVertWallEqNum == HcInt_UserCurve) THEN
! A31, \field Wall Panel Heating Vertical Wall Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%WallPanelHeatVertWallUserCurveNum = FindItemInList(cAlphaArgs(31), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%WallPanelHeatVertWallUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(31))//'='//TRIM(cAlphaArgs(31)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(30))//'='//TRIM(cAlphaArgs(30)))
ErrorsFound=.true.
ENDIF
! A32, \field Wall Panel Heating Heated Wall Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(32)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%WallPanelHeatHeatedWallEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%WallPanelHeatHeatedWallEqNum == HcInt_UserCurve) THEN
! A33, \field Wall Panel Heating Heated Wall Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%WallPanelHeatHeatedWallUserCurveNum = FindItemInList(cAlphaArgs(33), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%WallPanelHeatHeatedWallUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(33))//'='//TRIM(cAlphaArgs(33)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(32))//'='//TRIM(cAlphaArgs(32)))
ErrorsFound=.true.
ENDIF
! A34, \field Wall Panel Heating Stable Horizontal Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(34)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%WallPanelHeatStableHorizEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%WallPanelHeatStableHorizEqNum == HcInt_UserCurve) THEN
! A35, \field Wall Panel Heating Stable Horizontal Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%WallPanelHeatStableHorizUserCurveNum = FindItemInList(cAlphaArgs(35), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%WallPanelHeatStableHorizUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(35))//'='//TRIM(cAlphaArgs(35)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(34))//'='//TRIM(cAlphaArgs(34)))
ErrorsFound=.true.
ENDIF
! A36, \field Wall Panel Heating Unstable Horizontal Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(36)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%WallPanelHeatUnstableHorizEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%WallPanelHeatUnstableHorizEqNum == HcInt_UserCurve) THEN
! A37, \field Wall Panel Heating Unstable Horizontal Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%WallPanelHeatUnstableHorizUserCurveNum = FindItemInList(cAlphaArgs(37), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%WallPanelHeatUnstableHorizUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(37))//'='//TRIM(cAlphaArgs(37)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(36))//'='//TRIM(cAlphaArgs(36)))
ErrorsFound=.true.
ENDIF
! A38, \field Wall Panel Heating Stable Tilted Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(38)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%WallPanelHeatStableTiltedEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%WallPanelHeatStableTiltedEqNum == HcInt_UserCurve) THEN
! A39, \field Wall Panel Heating Stable Tilted Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%WallPanelHeatStableTiltedUserCurveNum = FindItemInList(cAlphaArgs(39), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%WallPanelHeatStableTiltedUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(39))//'='//TRIM(cAlphaArgs(39)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(38))//'='//TRIM(cAlphaArgs(38)))
ErrorsFound=.true.
ENDIF
! A40, \field Wall Panel Heating Unstable Tilted Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(40)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%WallPanelHeatUnstableTiltedEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%WallPanelHeatUnstableTiltedEqNum == HcInt_UserCurve) THEN
! A41, \field Wall Panel Heating Unstable Tilted Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%WallPanelHeatUnstableTiltedUserCurveNum = FindItemInList(cAlphaArgs(41), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%WallPanelHeatUnstableTiltedUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(41))//'='//TRIM(cAlphaArgs(41)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(40))//'='//TRIM(cAlphaArgs(40)))
ErrorsFound=.true.
ENDIF
! A42, \field Wall Panel Heating Window Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(42)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%WallPanelHeatWindowsEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%WallPanelHeatWindowsEqNum == HcInt_UserCurve) THEN
! A43, \field Wall Panel Heating Window Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%WallPanelHeatWindowsUserCurveNum = FindItemInList(cAlphaArgs(43), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%WallPanelHeatWindowsUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(43))//'='//TRIM(cAlphaArgs(43)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(42))//'='//TRIM(cAlphaArgs(42)))
ErrorsFound=.true.
ENDIF
! A44, \field Convective Zone Heater Vertical Wall Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(44)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%ConvectiveHeatVertWallEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%ConvectiveHeatVertWallEqNum == HcInt_UserCurve) THEN
! A45, \field Convective Zone Heater Vertical Wall Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%ConvectiveHeatVertWallUserCurveNum = FindItemInList(cAlphaArgs(45), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%ConvectiveHeatVertWallUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(45))//'='//TRIM(cAlphaArgs(45)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(44))//'='//TRIM(cAlphaArgs(44)))
ErrorsFound=.true.
ENDIF
! A46, \field Convective Zone Heater Vertical Walls Near Heater Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(46)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%ConvectiveHeatVertWallNearHeaterEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%ConvectiveHeatVertWallNearHeaterEqNum == HcInt_UserCurve) THEN
! A47, \field Convective Zone Heater Vertical Walls Near Heater Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%ConvectiveHeatVertWallNearHeaterUserCurveNum = FindItemInList(cAlphaArgs(47), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%ConvectiveHeatVertWallNearHeaterUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(47))//'='//TRIM(cAlphaArgs(47)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(46))//'='//TRIM(cAlphaArgs(46)))
ErrorsFound=.true.
ENDIF
! A48, \field Convective Zone Heater Stable Horizontal Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(48)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%ConvectiveHeatStableHorizEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%ConvectiveHeatStableHorizEqNum == HcInt_UserCurve) THEN
! A49, \field Convective Zone Heater Stable Horizontal Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%ConvectiveHeatStableHorizUserCurveNum = FindItemInList(cAlphaArgs(49), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%ConvectiveHeatStableHorizUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(49))//'='//TRIM(cAlphaArgs(49)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(48))//'='//TRIM(cAlphaArgs(48)))
ErrorsFound=.true.
ENDIF
! A50, \field Convective Zone Heater Unstable Horizontal Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(50)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%ConvectiveHeatUnstableHorizEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%ConvectiveHeatUnstableHorizEqNum == HcInt_UserCurve) THEN
! A51, \field Convective Zone Heater Unstable Horizontal Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%ConvectiveHeatUnstableHorizUserCurveNum = FindItemInList(cAlphaArgs(51), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%ConvectiveHeatUnstableHorizUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(51))//'='//TRIM(cAlphaArgs(51)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(50))//'='//TRIM(cAlphaArgs(50)))
ErrorsFound=.true.
ENDIF
! A52, \field Convective Zone Heater Stable Tilted Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(52)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%ConvectiveHeatStableTiltedEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%ConvectiveHeatStableTiltedEqNum == HcInt_UserCurve) THEN
! A53, \field Convective Zone Heater Stable Tilted Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%ConvectiveHeatStableTiltedUserCurveNum = FindItemInList(cAlphaArgs(53), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%ConvectiveHeatStableTiltedUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(53))//'='//TRIM(cAlphaArgs(53)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(52))//'='//TRIM(cAlphaArgs(52)))
ErrorsFound=.true.
ENDIF
! A54, \field Convective Zone Heater Unstable Tilted Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(54)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%ConvectiveHeatUnstableTiltedEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%ConvectiveHeatUnstableTiltedEqNum == HcInt_UserCurve) THEN
! A55, \field Convective Zone Heater Unstable Tilted Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%ConvectiveHeatUnstableTiltedUserCurveNum = FindItemInList(cAlphaArgs(55), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%ConvectiveHeatUnstableTiltedUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(55))//'='//TRIM(cAlphaArgs(55)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(54))//'='//TRIM(cAlphaArgs(54)))
ErrorsFound=.true.
ENDIF
! A56, \field Convective Zone Heater Windows Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(56)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%ConvectiveHeatWindowsEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%ConvectiveHeatWindowsEqNum == HcInt_UserCurve) THEN
! A57, \field Convective Zone Heater Windows Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%ConvectiveHeatWindowsUserCurveNum = FindItemInList(cAlphaArgs(57), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%ConvectiveHeatWindowsUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(57))//'='//TRIM(cAlphaArgs(57)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(56))//'='//TRIM(cAlphaArgs(56)))
ErrorsFound=.true.
ENDIF
! A58, \field Central Air Diffuser Wall Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(58)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%CentralAirWallEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%CentralAirWallEqNum == HcInt_UserCurve) THEN
! A59, \field Central Air Diffuser Wall Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%CentralAirWallUserCurveNum = FindItemInList(cAlphaArgs(59), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%CentralAirWallUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(59))//'='//TRIM(cAlphaArgs(59)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(58))//'='//TRIM(cAlphaArgs(58)))
ErrorsFound=.true.
ENDIF
! A60, \field Central Air Diffuser Ceiling Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(60)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%CentralAirCeilingEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%CentralAirCeilingEqNum == HcInt_UserCurve) THEN
! A61, \field Central Air Diffuser Ceiling Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%CentralAirCeilingUserCurveNum = FindItemInList(cAlphaArgs(61), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%CentralAirCeilingUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(61))//'='//TRIM(cAlphaArgs(61)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(60))//'='//TRIM(cAlphaArgs(60)))
ErrorsFound=.true.
ENDIF
! A62, \field Central Air Diffuser Floor Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(62)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%CentralAirFloorEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%CentralAirFloorEqNum == HcInt_UserCurve) THEN
! A63, \field Central Air Diffuser Floor Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%CentralAirFloorUserCurveNum = FindItemInList(cAlphaArgs(63), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%CentralAirFloorUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(63))//'='//TRIM(cAlphaArgs(63)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(62))//'='//TRIM(cAlphaArgs(62)))
ErrorsFound=.true.
ENDIF
! A64, \field Central Air Diffuser Window Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(64)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%CentralAirWindowsEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%CentralAirWindowsEqNum == HcInt_UserCurve) THEN
! A65, \field Central Air Diffuser Window Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%CentralAirWindowsUserCurveNum = FindItemInList(cAlphaArgs(65), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%CentralAirWindowsUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(65))//'='//TRIM(cAlphaArgs(65)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(64))//'='//TRIM(cAlphaArgs(64)))
ErrorsFound=.true.
ENDIF
! A66, \field Mechanical Zone Fan Circulation Vertical Wall Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(66)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%ZoneFanCircVertWallEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%ZoneFanCircVertWallEqNum == HcInt_UserCurve) THEN
! A67, \field Mechanical Zone Fan Circulation Vertical Wall Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%ZoneFanCircVertWallUserCurveNum = FindItemInList(cAlphaArgs(67), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%ZoneFanCircVertWallUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(67))//'='//TRIM(cAlphaArgs(67)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(66))//'='//TRIM(cAlphaArgs(66)))
ErrorsFound=.true.
ENDIF
! A68, \field Mechanical Zone Fan Circulation Stable Horizontal Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(68)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%ZoneFanCircStableHorizEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%ZoneFanCircStableHorizEqNum == HcInt_UserCurve) THEN
! A69, \field Mechanical Zone Fan Circulation Stable Horizontal Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%ZoneFanCircStableHorizUserCurveNum = FindItemInList(cAlphaArgs(69), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%ZoneFanCircStableHorizUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(69))//'='//TRIM(cAlphaArgs(69)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(68))//'='//TRIM(cAlphaArgs(68)))
ErrorsFound=.true.
ENDIF
! A70, \field Mechanical Zone Fan Circulation Unstable Horizontal Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(70)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%ZoneFanCircUnstableHorizEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%ZoneFanCircUnstableHorizEqNum == HcInt_UserCurve) THEN
! A71, \field Mechanical Zone Fan Circulation Unstable Horizontal Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%ZoneFanCircUnstableHorizUserCurveNum = FindItemInList(cAlphaArgs(71), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%ZoneFanCircUnstableHorizUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(71))//'='//TRIM(cAlphaArgs(71)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(70))//'='//TRIM(cAlphaArgs(70)))
ErrorsFound=.true.
ENDIF
! A72, \field Mechanical Zone Fan Circulation Stable Tilted Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(72)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%ZoneFanCircStableTiltedEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%ZoneFanCircStableTiltedEqNum == HcInt_UserCurve) THEN
! A73, \field Mechanical Zone Fan Circulation Stable Tilted Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%ZoneFanCircStableTiltedUserCurveNum = FindItemInList(cAlphaArgs(73), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%ZoneFanCircStableTiltedUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(73))//'='//TRIM(cAlphaArgs(73)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(72))//'='//TRIM(cAlphaArgs(72)))
ErrorsFound=.true.
ENDIF
! A74, \field Mechanical Zone Fan Circulation Unstable Tilted Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(74)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%ZoneFanCircUnstableTiltedEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%ZoneFanCircUnstableTiltedEqNum == HcInt_UserCurve) THEN
! A75, \field Mechanical Zone Fan Circulation Unstable Tilted Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%ZoneFanCircUnstableTiltedUserCurveNum = FindItemInList(cAlphaArgs(75), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%ZoneFanCircUnstableTiltedUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(75))//'='//TRIM(cAlphaArgs(75)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(74))//'='//TRIM(cAlphaArgs(74)))
ErrorsFound=.true.
ENDIF
! A76, \field Mechanical Zone Fan Circulation Window Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(76)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%ZoneFanCircWindowsEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%ZoneFanCircWindowsEqNum == HcInt_UserCurve) THEN
! A77, \field Mechanical Zone Fan Circulation Window Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%ZoneFanCircWindowsUserCurveNum = FindItemInList(cAlphaArgs(77), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%ZoneFanCircWindowsUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(77))//'='//TRIM(cAlphaArgs(77)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(76))//'='//TRIM(cAlphaArgs(76)))
ErrorsFound=.true.
ENDIF
! A78, \field Mixed Regime Bouyancy Assisting Flow on Walls Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(78)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%MixedBouyAssistingFlowWallEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%MixedBouyAssistingFlowWallEqNum == HcInt_UserCurve) THEN
! A79, \field Mixed Regime Bouyancy Assisting Flow on Walls Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%MixedBouyAssistingFlowWallUserCurveNum = FindItemInList(cAlphaArgs(79), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%MixedBouyAssistingFlowWallUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(79))//'='//TRIM(cAlphaArgs(79)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(78))//'='//TRIM(cAlphaArgs(78)))
ErrorsFound=.true.
ENDIF
! A80, \field Mixed Regime Bouyancy Oppossing Flow on Walls Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(80)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%MixedBouyOppossingFlowWallEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%MixedBouyOppossingFlowWallEqNum == HcInt_UserCurve) THEN
! A81, \field Mixed Regime Bouyancy Oppossing Flow on Walls Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%MixedBouyOppossingFlowWallUserCurveNum = FindItemInList(cAlphaArgs(81), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%MixedBouyOppossingFlowWallUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(81))//'='//TRIM(cAlphaArgs(81)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(80))//'='//TRIM(cAlphaArgs(80)))
ErrorsFound=.true.
ENDIF
! A82, \field Mixed Regime Stable Floor Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(82)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%MixedStableFloorEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%MixedStableFloorEqNum == HcInt_UserCurve) THEN
! A83, \field Mixed Regime Stable Floor Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%MixedStableFloorUserCurveNum = FindItemInList(cAlphaArgs(83), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%MixedStableFloorUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(83))//'='//TRIM(cAlphaArgs(83)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(82))//'='//TRIM(cAlphaArgs(82)))
ErrorsFound=.true.
ENDIF
! A84, \field Mixed Regime Unstable Floor Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(84)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%MixedUnstableFloorEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%MixedUnstableFloorEqNum == HcInt_UserCurve) THEN
! A85, \field Mixed Regime Unstable Floor Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%MixedUnstableFloorUserCurveNum = FindItemInList(cAlphaArgs(85), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%MixedUnstableFloorUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(85))//'='//TRIM(cAlphaArgs(85)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(84))//'='//TRIM(cAlphaArgs(84)))
ErrorsFound=.true.
ENDIF
! A86, \field Mixed Regime Stable Ceiling Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(86)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%MixedStableCeilingEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%MixedStableCeilingEqNum == HcInt_UserCurve) THEN
! A87, \field Mixed Regime Stable Ceiling Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%MixedStableCeilingUserCurveNum = FindItemInList(cAlphaArgs(87), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%MixedStableCeilingUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(87))//'='//TRIM(cAlphaArgs(87)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(86))//'='//TRIM(cAlphaArgs(86)))
ErrorsFound=.true.
ENDIF
! A88, \field Mixed Regime Unstable Ceiling Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(88)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%MixedUnstableCeilingEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%MixedUnstableCeilingEqNum == HcInt_UserCurve) THEN
! A89, \field Mixed Regime Unstable Ceiling Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%MixedUnstableCeilingUserCurveNum = FindItemInList(cAlphaArgs(89), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%MixedUnstableCeilingUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(89))//'='//TRIM(cAlphaArgs(89)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(88))//'='//TRIM(cAlphaArgs(88)))
ErrorsFound=.true.
ENDIF
! A90, \field Mixed Regime Window Equation Source
IsValidType=.false.
DO Loop1=6, NumValidIntConvectionValueTypes !skipping first 5 whole-model types
IF (Trim(cAlphaArgs(90)) /= Trim(ValidIntConvectionValueTypes(Loop1))) CYCLE
IsValidType=.true.
InsideFaceAdaptiveConvectionAlgo%MixedWindowsEqNum = IntConvectionValue(Loop1)
IF (InsideFaceAdaptiveConvectionAlgo%MixedWindowsEqNum == HcInt_UserCurve) THEN
! A91; \field Mixed Regime Window Equation User Curve Name
InsideFaceAdaptiveConvectionAlgo%MixedWindowsUserCurveNum = FindItemInList(cAlphaArgs(91), &
HcInsideUserCurve%Name , TotInsideHcUserCurves )
IF (InsideFaceAdaptiveConvectionAlgo%MixedWindowsUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(91))//'='//TRIM(cAlphaArgs(91)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT !found it
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(90))//'='//TRIM(cAlphaArgs(90)))
ErrorsFound=.true.
ENDIF
ENDIF !end of 'SurfaceConvectionAlgorithm:Inside:AdaptiveModelSelections'
CurrentModuleObject='SurfaceConvectionAlgorithm:Outside:AdaptiveModelSelections'
Count = GetNumObjectsFound(CurrentModuleObject)
!IF (Count > 1) ! throw error ... TODO or IP handles it
IF (Count == 1) THEN
CALL GetObjectItem(CurrentModuleObject,1,cAlphaArgs,NumAlphas,rNumericArgs,NumNumbers,Status, &
AlphaBlank=lAlphaFieldBlanks,NumBlank=lNumericFieldBlanks, &
AlphaFieldnames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
OutsideFaceAdaptiveConvectionAlgo%Name = cAlphaArgs(1) !not used by E+, unique object
OutsideFaceAdaptiveConvectionAlgo%EnteredByUser = .TRUE.
! A2 , \field Wind Convection Windward Vertical Wall Equation Source
IsValidType=.false.
DO Loop1=2, NumValidSpecificExtWindConvValueTypes
IF (Trim(cAlphaArgs(2)) /= Trim(ValidSpecificExtWindConvValueTypes(Loop1))) CYCLE
IsValidType=.true.
OutsideFaceAdaptiveConvectionAlgo%HWindWallWindwardEqNum = MoreSpecificExtWindConvectionValue(Loop1)
IF (OutsideFaceAdaptiveConvectionAlgo%HWindWallWindwardEqNum == HcExt_UserCurve) THEN
! A3 , \field Wind Convection Windward Equation Vertical Wall User Curve Name
OutsideFaceAdaptiveConvectionAlgo%HWindWallWindwardUserCurveNum = FindItemInList(cAlphaArgs(3), &
HcOutsideUserCurve%Name , TotOutsideHcUserCurves )
IF (OutsideFaceAdaptiveConvectionAlgo%HWindWallWindwardUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(3))//'='//TRIM(cAlphaArgs(3)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(2))//'='//TRIM(cAlphaArgs(2)))
ErrorsFound=.true.
ENDIF
! A4 , \field Wind Convection Leeward Vertical Wall Equation Source
IsValidType=.false.
DO Loop1=2, NumValidSpecificExtWindConvValueTypes
IF (Trim(cAlphaArgs(4)) /= Trim(ValidSpecificExtWindConvValueTypes(Loop1))) CYCLE
IsValidType=.true.
OutsideFaceAdaptiveConvectionAlgo%HWindWallLeewardEqNum = MoreSpecificExtWindConvectionValue(Loop1)
IF (OutsideFaceAdaptiveConvectionAlgo%HWindWallLeewardEqNum == HcExt_UserCurve) THEN
! A5 , \field Wind Convection Leeward Vertical Wall Equation User Curve Name
OutsideFaceAdaptiveConvectionAlgo%HWindWallLeewardUserCurveNum = FindItemInList(cAlphaArgs(5), &
HcOutsideUserCurve%Name , TotOutsideHcUserCurves )
IF (OutsideFaceAdaptiveConvectionAlgo%HWindWallLeewardUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(5))//'='//TRIM(cAlphaArgs(5)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(4))//'='//TRIM(cAlphaArgs(4)))
ErrorsFound=.true.
ENDIF
! A6 , \field Wind Convection Horizontal Roof Equation Source
IsValidType=.false.
DO Loop1=1, NumValidSpecificExtWindConvValueTypes
IF (Trim(cAlphaArgs(6)) /= Trim(ValidSpecificExtWindConvValueTypes(Loop1))) CYCLE
IsValidType=.true.
OutsideFaceAdaptiveConvectionAlgo%HWindHorizRoofEqNum = MoreSpecificExtWindConvectionValue(Loop1)
IF (OutsideFaceAdaptiveConvectionAlgo%HWindHorizRoofEqNum == HcExt_UserCurve) THEN
! A7 , \field Wind Convection Horizontal Roof User Curve Name
OutsideFaceAdaptiveConvectionAlgo%HWindHorizRoofUserCurveNum = FindItemInList(cAlphaArgs(7), &
HcOutsideUserCurve%Name , TotOutsideHcUserCurves )
IF (OutsideFaceAdaptiveConvectionAlgo%HWindHorizRoofUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(7))//'='//TRIM(cAlphaArgs(7)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(6))//'='//TRIM(cAlphaArgs(6)))
ErrorsFound=.true.
ENDIF
! A8 , \field Natural Convection Vertical Wall Equation Source
IsValidType=.false.
DO Loop1=1, NumValidSpecificExtNatConvectValueTypes
IF (Trim(cAlphaArgs(8)) /= Trim(ValidSpecificExtNatConvectValueTypes(Loop1))) CYCLE
IsValidType=.true.
OutsideFaceAdaptiveConvectionAlgo%HNatVertWallEqNum = SpecificExtNatConvectionValue(Loop1)
IF (OutsideFaceAdaptiveConvectionAlgo%HNatVertWallEqNum == HcExt_UserCurve) THEN
! A9 , \field Natural Convection Vertical Wall Equation User Curve Name
OutsideFaceAdaptiveConvectionAlgo%HNatVertWallUserCurveNum = FindItemInList(cAlphaArgs(9), &
HcOutsideUserCurve%Name , TotOutsideHcUserCurves )
IF (OutsideFaceAdaptiveConvectionAlgo%HNatVertWallUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(9))//'='//TRIM(cAlphaArgs(9)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(8))//'='//TRIM(cAlphaArgs(8)))
ErrorsFound=.true.
ENDIF
! A10, \field Natural Convection Stable Horizontal Equation Source
IsValidType=.false.
DO Loop1=1, NumValidSpecificExtNatConvectValueTypes
IF (Trim(cAlphaArgs(10)) /= Trim(ValidSpecificExtNatConvectValueTypes(Loop1))) CYCLE
IsValidType=.true.
OutsideFaceAdaptiveConvectionAlgo%HNatStableHorizEqNum = SpecificExtNatConvectionValue(Loop1)
IF (OutsideFaceAdaptiveConvectionAlgo%HNatStableHorizEqNum == HcExt_UserCurve) THEN
! A11, \field Natural Convection Stable Horizontal Equation User Curve Name
OutsideFaceAdaptiveConvectionAlgo%HNatStableHorizUserCurveNum = FindItemInList(cAlphaArgs(11), &
HcOutsideUserCurve%Name , TotOutsideHcUserCurves )
IF (OutsideFaceAdaptiveConvectionAlgo%HNatStableHorizUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(11))//'='//TRIM(cAlphaArgs(11)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(10))//'='//TRIM(cAlphaArgs(10)))
ErrorsFound=.true.
ENDIF
! A12, \field Natural Convection Unstable Horizontal Equation Source
IsValidType=.false.
DO Loop1=1, NumValidSpecificExtNatConvectValueTypes
IF (Trim(cAlphaArgs(12)) /= Trim(ValidSpecificExtNatConvectValueTypes(Loop1))) CYCLE
IsValidType=.true.
OutsideFaceAdaptiveConvectionAlgo%HNatStableHorizEqNum = SpecificExtNatConvectionValue(Loop1)
IF (OutsideFaceAdaptiveConvectionAlgo%HNatStableHorizEqNum == HcExt_UserCurve) THEN
! A13; \field Natural Convection Unstable Horizontal Equation User Curve Name
OutsideFaceAdaptiveConvectionAlgo%HNatStableHorizUserCurveNum = FindItemInList(cAlphaArgs(13), &
HcOutsideUserCurve%Name , TotOutsideHcUserCurves )
IF (OutsideFaceAdaptiveConvectionAlgo%HNatStableHorizUserCurveNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Name choice Entered, for '//TRIM(cAlphaFieldNames(13))//'='//TRIM(cAlphaArgs(13)))
ErrorsFound=.true.
ENDIF
ENDIF
EXIT
ENDDO
IF (.not. IsValidType) THEN
CALL ShowSevereError(RoutineName//TRIM(CurrentModuleObject)//'="'//trim(cAlphaArgs(1))//', invalid value')
CALL ShowContinueError('Invalid Key choice Entered, for '//TRIM(cAlphaFieldNames(12))//'='//TRIM(cAlphaArgs(12)))
ErrorsFound=.true.
ENDIF
ENDIF ! end of 'SurfaceConvectionAlgorithm:Outside:AdaptiveModelSelections'
IF (ErrorsFound) THEN
CALL ShowFatalError(RoutineName//'Errors found getting input. Program termination.')
ENDIF
CALL SetupAdaptiveConvectionStaticMetaData
RETURN
CONTAINS
! Internal subroutines to GetUserConvectionCoefficients
SUBROUTINE ApplyConvectionValue(SurfaceTypes,ConvectionType,Value)
! SUBROUTINE INFORMATION:
! AUTHOR Linda Lawrie
! DATE WRITTEN November 2004
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! This subroutine applies a convection type to a set of surfaces. This is
! one of the "regular" convection types and becomes a "negative" convection
! type to that surface.
! METHODOLOGY EMPLOYED:
! na
! REFERENCES:
! na
! USE STATEMENTS:
USE General, ONLY: TrimSigDigits
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
CHARACTER(len=*), INTENT(IN) :: SurfaceTypes
CHARACTER(len=*), INTENT(IN) :: ConvectionType
INTEGER, INTENT(IN) :: Value
! SUBROUTINE PARAMETER DEFINITIONS:
! na
! INTERFACE BLOCK SPECIFICATIONS
! na
! DERIVED TYPE DEFINITIONS
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
INTEGER SurfNum
LOGICAL SurfacesOfType
INTEGER SurfaceCountOutside
INTEGER SurfaceCountInside
CHARACTER(len=52) :: OverwriteMessage
SELECT CASE(SurfaceTypes)
CASE ('ALLEXTERIORSURFACES')
SurfacesOfType=.false.
SurfaceCountOutside=0
SurfaceCountInside=0
DO SurfNum=1,TotSurfaces
IF (.not. Surface(SurfNum)%HeatTransSurf) CYCLE
IF (Surface(SurfNum)%ExtBoundCond > 0) CYCLE ! Interior surfaces
SurfacesOfType=.true.
IF (ConvectionType == 'OUTSIDE') THEN
IF (Surface(SurfNum)%OSCPtr > 0) CYCLE
IF (Surface(SurfNum)%ExtConvCoeff /= 0) THEN
IF (DisplayExtraWarnings) THEN
CALL ShowWarningError('User Supplied Convection Coefficients, Multiple Surface Assignments="'//trim(SurfaceTypes)// &
'", not overwriting already assigned value for (Outside) in Surface='//trim(Surface(SurfNum)%Name))
ELSE
SurfaceCountOutside=SurfaceCountOutside+1
ENDIF
ELSE
Surface(SurfNum)%ExtConvCoeff=Value
ENDIF
ELSE
IF (Surface(SurfNum)%IntConvCoeff /= 0) THEN
IF (DisplayExtraWarnings) THEN
CALL ShowWarningError('User Supplied Convection Coefficients, Multiple Surface Assignments="'//trim(SurfaceTypes)// &
'", not overwriting already assigned value for (Inside) in Surface='//trim(Surface(SurfNum)%Name))
ELSE
SurfaceCountInside=SurfaceCountInside+1
ENDIF
ELSE
Surface(SurfNum)%IntConvCoeff=Value
ENDIF
ENDIF
ENDDO
IF (.not. DisplayExtraWarnings .and. (SurfaceCountOutside > 0 .or. SurfaceCountInside > 0) ) THEN
IF (SurfaceCountOutside > 0) THEN
OverwriteMessage=trim(TrimSigDigits(SurfaceCountOutside))//' Outside'
ENDIF
IF (SurfaceCountInside > 0) THEN
OverwriteMessage=trim(TrimSigDigits(SurfaceCountInside))//' Inside'
ENDIF
CALL ShowWarningError('User Supplied Convection Coefficients, Multiple Surface Assignments="'//trim(SurfaceTypes)// &
'", not overwriting already assigned values for '//trim(OverwriteMessage)//' assignments.')
ENDIF
CASE ('ALLEXTERIORWINDOWS')
SurfacesOfType=.false.
SurfaceCountOutside=0
SurfaceCountInside=0
DO SurfNum=1,TotSurfaces
IF (.not. Surface(SurfNum)%HeatTransSurf) CYCLE
IF (Surface(SurfNum)%ExtBoundCond > 0) CYCLE ! Interior surfaces
IF (.not. Construct(Surface(SurfNum)%Construction)%TypeIsWindow) CYCLE
SurfacesOfType=.true.
IF (ConvectionType == 'OUTSIDE') THEN
IF (Surface(SurfNum)%OSCPtr > 0) CYCLE
IF (Surface(SurfNum)%ExtConvCoeff /= 0) THEN
IF (DisplayExtraWarnings) THEN
CALL ShowWarningError('User Supplied Convection Coefficients, Multiple Surface Assignments="'//trim(SurfaceTypes)// &
'", not overwriting already assigned value for (Outside) in Surface='//trim(Surface(SurfNum)%Name))
ELSE
SurfaceCountOutside=SurfaceCountOutside+1
ENDIF
ELSE
Surface(SurfNum)%ExtConvCoeff=Value
ENDIF
ELSE
IF (Surface(SurfNum)%IntConvCoeff /= 0) THEN
IF (DisplayExtraWarnings) THEN
CALL ShowWarningError('User Supplied Convection Coefficients, Multiple Surface Assignments="'//trim(SurfaceTypes)// &
'", not overwriting already assigned value for (Inside) in Surface='//trim(Surface(SurfNum)%Name))
ELSE
SurfaceCountInside=SurfaceCountInside+1
ENDIF
ELSE
Surface(SurfNum)%IntConvCoeff=Value
ENDIF
ENDIF
ENDDO
IF (.not. DisplayExtraWarnings .and. (SurfaceCountOutside > 0 .or. SurfaceCountInside > 0) ) THEN
IF (SurfaceCountOutside > 0) THEN
OverwriteMessage=trim(TrimSigDigits(SurfaceCountOutside))//' Outside'
ENDIF
IF (SurfaceCountInside > 0) THEN
OverwriteMessage=trim(TrimSigDigits(SurfaceCountInside))//' Inside'
ENDIF
CALL ShowWarningError('User Supplied Convection Coefficients, Multiple Surface Assignments="'//trim(SurfaceTypes)// &
'", not overwriting already assigned values for '//trim(OverwriteMessage)//' assignments.')
ENDIF
CASE ('ALLEXTERIORWALLS')
SurfacesOfType=.false.
SurfaceCountOutside=0
SurfaceCountInside=0
DO SurfNum=1,TotSurfaces
IF (.not. Surface(SurfNum)%HeatTransSurf) CYCLE
IF (Surface(SurfNum)%ExtBoundCond > 0) CYCLE ! Interior surfaces
IF (.not. Surface(SurfNum)%Class == SurfaceClass_Wall) CYCLE
SurfacesOfType=.true.
IF (ConvectionType == 'OUTSIDE') THEN
IF (Surface(SurfNum)%OSCPtr > 0) CYCLE
IF (Surface(SurfNum)%ExtConvCoeff /= 0) THEN
IF (DisplayExtraWarnings) THEN
CALL ShowWarningError('User Supplied Convection Coefficients, Multiple Surface Assignments="'//trim(SurfaceTypes)// &
'", not overwriting already assigned value for (Outside) in Surface='//trim(Surface(SurfNum)%Name))
ELSE
SurfaceCountOutside=SurfaceCountOutside+1
ENDIF
ELSE
Surface(SurfNum)%ExtConvCoeff=Value
ENDIF
ELSE
IF (Surface(SurfNum)%IntConvCoeff /= 0) THEN
IF (DisplayExtraWarnings) THEN
CALL ShowWarningError('User Supplied Convection Coefficients, Multiple Surface Assignments="'//trim(SurfaceTypes)// &
'", not overwriting already assigned value for (Inside) in Surface='//trim(Surface(SurfNum)%Name))
ELSE
SurfaceCountInside=SurfaceCountInside+1
ENDIF
ELSE
Surface(SurfNum)%IntConvCoeff=Value
ENDIF
ENDIF
ENDDO
IF (.not. DisplayExtraWarnings .and. (SurfaceCountOutside > 0 .or. SurfaceCountInside > 0) ) THEN
IF (SurfaceCountOutside > 0) THEN
OverwriteMessage=trim(TrimSigDigits(SurfaceCountOutside))//' Outside'
ENDIF
IF (SurfaceCountInside > 0) THEN
OverwriteMessage=trim(TrimSigDigits(SurfaceCountInside))//' Inside'
ENDIF
CALL ShowWarningError('User Supplied Convection Coefficients, Multiple Surface Assignments="'//trim(SurfaceTypes)// &
'", not overwriting already assigned values for '//trim(OverwriteMessage)//' assignments.')
ENDIF
CASE('ALLEXTERIORROOFS')
SurfacesOfType=.false.
SurfaceCountOutside=0
SurfaceCountInside=0
DO SurfNum=1,TotSurfaces
IF (.not. Surface(SurfNum)%HeatTransSurf) CYCLE
IF (Surface(SurfNum)%ExtBoundCond > 0) CYCLE ! Interior surfaces
IF (.not. Surface(SurfNum)%Class == SurfaceClass_Roof) CYCLE
SurfacesOfType=.true.
IF (ConvectionType == 'OUTSIDE') THEN
IF (Surface(SurfNum)%OSCPtr > 0) CYCLE
IF (Surface(SurfNum)%ExtConvCoeff /= 0) THEN
IF (DisplayExtraWarnings) THEN
CALL ShowWarningError('User Supplied Convection Coefficients, Multiple Surface Assignments="'//trim(SurfaceTypes)// &
'", not overwriting already assigned value for (Outside) in Surface='//trim(Surface(SurfNum)%Name))
ELSE
SurfaceCountOutside=SurfaceCountOutside+1
ENDIF
ELSE
Surface(SurfNum)%ExtConvCoeff=Value
ENDIF
ELSE
IF (Surface(SurfNum)%IntConvCoeff /= 0) THEN
IF (DisplayExtraWarnings) THEN
CALL ShowWarningError('User Supplied Convection Coefficients, Multiple Surface Assignments="'//trim(SurfaceTypes)// &
'", not overwriting already assigned value for (Inside) in Surface='//trim(Surface(SurfNum)%Name))
ELSE
SurfaceCountInside=SurfaceCountInside+1
ENDIF
ELSE
Surface(SurfNum)%IntConvCoeff=Value
ENDIF
ENDIF
ENDDO
IF (.not. DisplayExtraWarnings .and. (SurfaceCountOutside > 0 .or. SurfaceCountInside > 0) ) THEN
IF (SurfaceCountOutside > 0) THEN
OverwriteMessage=trim(TrimSigDigits(SurfaceCountOutside))//' Outside'
ENDIF
IF (SurfaceCountInside > 0) THEN
OverwriteMessage=trim(TrimSigDigits(SurfaceCountInside))//' Inside'
ENDIF
CALL ShowWarningError('User Supplied Convection Coefficients, Multiple Surface Assignments="'//trim(SurfaceTypes)// &
'", not overwriting already assigned values for '//trim(OverwriteMessage)//' assignments.')
ENDIF
CASE('ALLEXTERIORFLOORS')
SurfacesOfType=.false.
SurfaceCountOutside=0
SurfaceCountInside=0
DO SurfNum=1,TotSurfaces
IF (.not. Surface(SurfNum)%HeatTransSurf) CYCLE
IF (Surface(SurfNum)%ExtBoundCond > 0) CYCLE ! Interior surfaces
IF (.not. Surface(SurfNum)%Class == SurfaceClass_Floor) CYCLE
SurfacesOfType=.true.
IF (ConvectionType == 'OUTSIDE') THEN
IF (Surface(SurfNum)%OSCPtr > 0) CYCLE
IF (Surface(SurfNum)%ExtConvCoeff /= 0) THEN
IF (DisplayExtraWarnings) THEN
CALL ShowWarningError('User Supplied Convection Coefficients, Multiple Surface Assignments="'//trim(SurfaceTypes)// &
'", not overwriting already assigned value for (Outside) in Surface='//trim(Surface(SurfNum)%Name))
ELSE
SurfaceCountOutside=SurfaceCountOutside+1
ENDIF
ELSE
Surface(SurfNum)%ExtConvCoeff=Value
ENDIF
ELSE
IF (Surface(SurfNum)%IntConvCoeff /= 0) THEN
IF (DisplayExtraWarnings) THEN
CALL ShowWarningError('User Supplied Convection Coefficients, Multiple Surface Assignments="'//trim(SurfaceTypes)// &
'", not overwriting already assigned value for (Inside) in Surface='//trim(Surface(SurfNum)%Name))
ELSE
SurfaceCountInside=SurfaceCountInside+1
ENDIF
ELSE
Surface(SurfNum)%IntConvCoeff=Value
ENDIF
ENDIF
ENDDO
IF (.not. DisplayExtraWarnings .and. (SurfaceCountOutside > 0 .or. SurfaceCountInside > 0) ) THEN
IF (SurfaceCountOutside > 0) THEN
OverwriteMessage=trim(TrimSigDigits(SurfaceCountOutside))//' Outside'
ENDIF
IF (SurfaceCountInside > 0) THEN
OverwriteMessage=trim(TrimSigDigits(SurfaceCountInside))//' Inside'
ENDIF
CALL ShowWarningError('User Supplied Convection Coefficients, Multiple Surface Assignments="'//trim(SurfaceTypes)// &
'", not overwriting already assigned values for '//trim(OverwriteMessage)//' assignments.')
ENDIF
CASE ('ALLINTERIORSURFACES')
SurfacesOfType=.false.
SurfaceCountOutside=0
SurfaceCountInside=0
DO SurfNum=1,TotSurfaces
IF (.not. Surface(SurfNum)%HeatTransSurf) CYCLE
IF (Surface(SurfNum)%ExtBoundCond <= 0) CYCLE ! Exterior surfaces
SurfacesOfType=.true.
IF (ConvectionType == 'OUTSIDE') THEN
IF (Surface(SurfNum)%OSCPtr > 0) CYCLE
IF (Surface(SurfNum)%ExtConvCoeff /= 0) THEN
IF (DisplayExtraWarnings) THEN
CALL ShowWarningError('User Supplied Convection Coefficients, Multiple Surface Assignments="'//trim(SurfaceTypes)// &
'", not overwriting already assigned value for (Outside) in Surface='//trim(Surface(SurfNum)%Name))
ELSE
SurfaceCountOutside=SurfaceCountOutside+1
ENDIF
ELSE
Surface(SurfNum)%ExtConvCoeff=Value
ENDIF
ELSE
IF (Surface(SurfNum)%IntConvCoeff /= 0) THEN
IF (DisplayExtraWarnings) THEN
CALL ShowWarningError('User Supplied Convection Coefficients, Multiple Surface Assignments="'//trim(SurfaceTypes)// &
'", not overwriting already assigned value for (Inside) in Surface='//trim(Surface(SurfNum)%Name))
ELSE
SurfaceCountInside=SurfaceCountInside+1
ENDIF
ELSE
Surface(SurfNum)%IntConvCoeff=Value
ENDIF
ENDIF
ENDDO
IF (.not. DisplayExtraWarnings .and. (SurfaceCountOutside > 0 .or. SurfaceCountInside > 0) ) THEN
IF (SurfaceCountOutside > 0) THEN
OverwriteMessage=trim(TrimSigDigits(SurfaceCountOutside))//' Outside'
ENDIF
IF (SurfaceCountInside > 0) THEN
OverwriteMessage=trim(TrimSigDigits(SurfaceCountInside))//' Inside'
ENDIF
CALL ShowWarningError('User Supplied Convection Coefficients, Multiple Surface Assignments="'//trim(SurfaceTypes)// &
'", not overwriting already assigned values for '//trim(OverwriteMessage)//' assignments.')
ENDIF
CASE ('ALLINTERIORWINDOWS')
SurfacesOfType=.false.
SurfaceCountOutside=0
SurfaceCountInside=0
DO SurfNum=1,TotSurfaces
IF (.not. Surface(SurfNum)%HeatTransSurf) CYCLE
IF (Surface(SurfNum)%ExtBoundCond <= 0) CYCLE ! Exterior surfaces
IF (.not. Construct(Surface(SurfNum)%Construction)%TypeIsWindow) CYCLE
SurfacesOfType=.true.
IF (ConvectionType == 'OUTSIDE') THEN
IF (Surface(SurfNum)%OSCPtr > 0) CYCLE
IF (Surface(SurfNum)%ExtConvCoeff /= 0) THEN
IF (DisplayExtraWarnings) THEN
CALL ShowWarningError('User Supplied Convection Coefficients, Multiple Surface Assignments="'//trim(SurfaceTypes)// &
'", not overwriting already assigned value for (Outside) in Surface='//trim(Surface(SurfNum)%Name))
ELSE
SurfaceCountOutside=SurfaceCountOutside+1
ENDIF
ELSE
Surface(SurfNum)%ExtConvCoeff=Value
ENDIF
ELSE
IF (Surface(SurfNum)%IntConvCoeff /= 0) THEN
IF (DisplayExtraWarnings) THEN
CALL ShowWarningError('User Supplied Convection Coefficients, Multiple Surface Assignments="'//trim(SurfaceTypes)// &
'", not overwriting already assigned value for (Inside) in Surface='//trim(Surface(SurfNum)%Name))
ELSE
SurfaceCountInside=SurfaceCountInside+1
ENDIF
ELSE
Surface(SurfNum)%IntConvCoeff=Value
ENDIF
ENDIF
ENDDO
IF (.not. DisplayExtraWarnings .and. (SurfaceCountOutside > 0 .or. SurfaceCountInside > 0) ) THEN
IF (SurfaceCountOutside > 0) THEN
OverwriteMessage=trim(TrimSigDigits(SurfaceCountOutside))//' Outside'
ENDIF
IF (SurfaceCountInside > 0) THEN
OverwriteMessage=trim(TrimSigDigits(SurfaceCountInside))//' Inside'
ENDIF
CALL ShowWarningError('User Supplied Convection Coefficients, Multiple Surface Assignments="'//trim(SurfaceTypes)// &
'", not overwriting already assigned values for '//trim(OverwriteMessage)//' assignments.')
ENDIF
CASE ('ALLINTERIORWALLS')
SurfacesOfType=.false.
SurfaceCountOutside=0
SurfaceCountInside=0
DO SurfNum=1,TotSurfaces
IF (.not. Surface(SurfNum)%HeatTransSurf) CYCLE
IF (Surface(SurfNum)%ExtBoundCond <= 0) CYCLE ! Exterior surfaces
IF (.not. Surface(SurfNum)%Class == SurfaceClass_Wall) CYCLE
SurfacesOfType=.true.
IF (ConvectionType == 'OUTSIDE') THEN
IF (Surface(SurfNum)%OSCPtr > 0) CYCLE
IF (Surface(SurfNum)%ExtConvCoeff /= 0) THEN
IF (DisplayExtraWarnings) THEN
CALL ShowWarningError('User Supplied Convection Coefficients, Multiple Surface Assignments="'//trim(SurfaceTypes)// &
'", not overwriting already assigned value for (Outside) in Surface='//trim(Surface(SurfNum)%Name))
ELSE
SurfaceCountOutside=SurfaceCountOutside+1
ENDIF
ELSE
Surface(SurfNum)%ExtConvCoeff=Value
ENDIF
ELSE
IF (Surface(SurfNum)%IntConvCoeff /= 0) THEN
IF (DisplayExtraWarnings) THEN
CALL ShowWarningError('User Supplied Convection Coefficients, Multiple Surface Assignments="'//trim(SurfaceTypes)// &
'", not overwriting already assigned value for (Inside) in Surface='//trim(Surface(SurfNum)%Name))
ELSE
SurfaceCountInside=SurfaceCountInside+1
ENDIF
ELSE
Surface(SurfNum)%IntConvCoeff=Value
ENDIF
ENDIF
ENDDO
IF (.not. DisplayExtraWarnings .and. (SurfaceCountOutside > 0 .or. SurfaceCountInside > 0) ) THEN
IF (SurfaceCountOutside > 0) THEN
OverwriteMessage=trim(TrimSigDigits(SurfaceCountOutside))//' Outside'
ENDIF
IF (SurfaceCountInside > 0) THEN
OverwriteMessage=trim(TrimSigDigits(SurfaceCountInside))//' Inside'
ENDIF
CALL ShowWarningError('User Supplied Convection Coefficients, Multiple Surface Assignments="'//trim(SurfaceTypes)// &
'", not overwriting already assigned values for '//trim(OverwriteMessage)//' assignments.')
ENDIF
CASE('ALLINTERIORROOFS','ALLINTERIORCEILINGS')
SurfacesOfType=.false.
SurfaceCountOutside=0
SurfaceCountInside=0
DO SurfNum=1,TotSurfaces
IF (.not. Surface(SurfNum)%HeatTransSurf) CYCLE
IF (Surface(SurfNum)%ExtBoundCond <= 0) CYCLE ! Exterior surfaces
IF (.not. Surface(SurfNum)%Class == SurfaceClass_Roof) CYCLE
SurfacesOfType=.true.
IF (ConvectionType == 'OUTSIDE') THEN
IF (Surface(SurfNum)%OSCPtr > 0) CYCLE
IF (Surface(SurfNum)%ExtConvCoeff /= 0) THEN
IF (DisplayExtraWarnings) THEN
CALL ShowWarningError('User Supplied Convection Coefficients, Multiple Surface Assignments="'//trim(SurfaceTypes)// &
'", not overwriting already assigned value for (Outside) in Surface='//trim(Surface(SurfNum)%Name))
ELSE
SurfaceCountOutside=SurfaceCountOutside+1
ENDIF
ELSE
Surface(SurfNum)%ExtConvCoeff=Value
ENDIF
ELSE
IF (Surface(SurfNum)%IntConvCoeff /= 0) THEN
IF (DisplayExtraWarnings) THEN
CALL ShowWarningError('User Supplied Convection Coefficients, Multiple Surface Assignments="'//trim(SurfaceTypes)// &
'", not overwriting already assigned value for (Inside) in Surface='//trim(Surface(SurfNum)%Name))
ELSE
SurfaceCountInside=SurfaceCountInside+1
ENDIF
ELSE
Surface(SurfNum)%IntConvCoeff=Value
ENDIF
ENDIF
ENDDO
IF (.not. DisplayExtraWarnings .and. (SurfaceCountOutside > 0 .or. SurfaceCountInside > 0) ) THEN
IF (SurfaceCountOutside > 0) THEN
OverwriteMessage=trim(TrimSigDigits(SurfaceCountOutside))//' Outside'
ENDIF
IF (SurfaceCountInside > 0) THEN
OverwriteMessage=trim(TrimSigDigits(SurfaceCountInside))//' Inside'
ENDIF
CALL ShowWarningError('User Supplied Convection Coefficients, Multiple Surface Assignments="'//trim(SurfaceTypes)// &
'", not overwriting already assigned values for '//trim(OverwriteMessage)//' assignments.')
ENDIF
CASE('ALLINTERIORFLOORS')
SurfacesOfType=.false.
SurfaceCountOutside=0
SurfaceCountInside=0
DO SurfNum=1,TotSurfaces
IF (.not. Surface(SurfNum)%HeatTransSurf) CYCLE
IF (Surface(SurfNum)%ExtBoundCond <= 0) CYCLE ! Exterior surfaces
IF (.not. Surface(SurfNum)%Class == SurfaceClass_Floor) CYCLE
SurfacesOfType=.true.
IF (ConvectionType == 'OUTSIDE') THEN
IF (Surface(SurfNum)%OSCPtr > 0) CYCLE
IF (Surface(SurfNum)%ExtConvCoeff /= 0) THEN
IF (DisplayExtraWarnings) THEN
CALL ShowWarningError('User Supplied Convection Coefficients, Multiple Surface Assignments="'//trim(SurfaceTypes)// &
'", not overwriting already assigned value for (Outside) in Surface='//trim(Surface(SurfNum)%Name))
ELSE
SurfaceCountOutside=SurfaceCountOutside+1
ENDIF
ELSE
Surface(SurfNum)%ExtConvCoeff=Value
ENDIF
ELSE
IF (Surface(SurfNum)%IntConvCoeff /= 0) THEN
IF (DisplayExtraWarnings) THEN
CALL ShowWarningError('User Supplied Convection Coefficients, Multiple Surface Assignments="'//trim(SurfaceTypes)// &
'", not overwriting already assigned value for (Inside) in Surface='//trim(Surface(SurfNum)%Name))
ELSE
SurfaceCountInside=SurfaceCountInside+1
ENDIF
ELSE
Surface(SurfNum)%IntConvCoeff=Value
ENDIF
ENDIF
ENDDO
IF (.not. DisplayExtraWarnings .and. (SurfaceCountOutside > 0 .or. SurfaceCountInside > 0) ) THEN
IF (SurfaceCountOutside > 0) THEN
OverwriteMessage=trim(TrimSigDigits(SurfaceCountOutside))//' Outside'
ENDIF
IF (SurfaceCountInside > 0) THEN
OverwriteMessage=trim(TrimSigDigits(SurfaceCountInside))//' Inside'
ENDIF
CALL ShowWarningError('User Supplied Convection Coefficients, Multiple Surface Assignments="'//trim(SurfaceTypes)// &
'", not overwriting already assigned values for '//trim(OverwriteMessage)//' assignments.')
ENDIF
CASE DEFAULT
SurfacesOfType=.false.
END SELECT
IF (.not. SurfacesOfType) THEN
CALL ShowWarningError('User Supplied Convection Coefficients, Multiple Surface Assignments="'//trim(SurfaceTypes)// &
'", there were no surfaces of that type found for '//trim(ConvectionType)//' assignment.')
ENDIF
RETURN
END SUBROUTINE ApplyConvectionValue
END SUBROUTINE GetUserConvectionCoefficients