SUBROUTINE GetSetPointManagerInputs
! SUBROUTINE INFORMATION:
! AUTHOR Fred Buhl
! DATE WRITTEN July 1998
! MODIFIED Shirey/Raustad (FSEC), Jan 2004
! Nov 2004 - Jan 2005 M. J. Witte, GARD Analytics, Inc.
! Add new setpoint managers:
! SET POINT MANAGER:SINGLE ZONE HEATING and
! SET POINT MANAGER:SINGLE ZONE COOLING
! SET POINT MANAGER:OUTSIDE AIR PRETREAT
! Work supported by ASHRAE research project 1254-RP
! Haves October 2004
! Witte (GARD), Sep 2006
! July 2010 B.A. Nigusse, FSEC/UCF
! Added new setpoint managers:
! SetpointManager:MultiZone:Heating:Average
! SetpointManager:MultiZone:Cooling:Average
! SetpointManager:MultiZone:MinimumHumidity:Average
! SetpointManager:MultiZone:MaximumHumidity:Average
! Aug 2010 B.A. Nigusse, FSEC/UCF
! Added new setpoint managers:
! SetpointManager:MultiZone:Humidity:Minimum
! SetpointManager:MultiZone:Humidity:Maximum
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE
! Input the SetPointManager data and store it in the SetPtMgrIn array.
! Examine the Controllers in the input data and determine which ones
! will have their setpoints set by a particular Setpoint Manager.
! METHODOLOGY EMPLOYED:
! Use the Get routines from the InputProcessor module.
! REFERENCES:
! na
! USE STATEMENTS:
USE InputProcessor, ONLY: GetNumObjectsFound, GetObjectItem, FindIteminList, GetObjectItemNum, VerifyName, SameString, &
MakeUPPERCase, GetObjectDefMaxArgs
USE NodeInputManager, ONLY: GetOnlySingleNode, GetNodeNums
USE DataHeatBalance, ONLY: Zone
USE ScheduleManager, ONLY: GetScheduleIndex, CheckScheduleValueMinMax
! USE DataIPShortCuts
USE General, ONLY: RoundSigDigits, FindNumberinList
USE DataEnvironment, ONLY: GroundTemp_DeepObjInput, GroundTempObjInput, GroundTemp_SurfaceObjInput, FCGroundTemps, &
GroundTemp_Deep, GroundTemp,GroundTemp_Surface, GroundTempFC
USE DataZoneEquipment, ONLY: GetSystemNodeNumberForZone
USE DataZoneControls, ONLY: StageZoneLogic
IMPLICIT NONE
! SUBROUTINE PARAMETER DEFINITIONS:
CHARACTER(len=*), PARAMETER :: RoutineName='GetSetPointManagerInputs: ' ! include trailing blank space
! INTERFACE BLOCK SPECIFICATIONS
! na
! DERIVED TYPE DEFINITIONS
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
CHARACTER(len=MaxNameLength),ALLOCATABLE, DIMENSION(:) :: cAlphaFieldNames
CHARACTER(len=MaxNameLength),ALLOCATABLE, DIMENSION(:) :: cNumericFieldNames
LOGICAL, ALLOCATABLE, DIMENSION(:) :: lNumericFieldBlanks
LOGICAL, ALLOCATABLE, DIMENSION(:) :: lAlphaFieldBlanks
CHARACTER(len=MaxNameLength),ALLOCATABLE, DIMENSION(:) :: cAlphaArgs
REAL(r64),ALLOCATABLE, DIMENSION(:) :: rNumericArgs
CHARACTER(len=MaxNameLength) :: cCurrentModuleObject
INTEGER :: MaxNumAlphas = 0 !argument for call to GetObjectDefMaxArgs
INTEGER :: MaxNumNumbers = 0 !argument for call to GetObjectDefMaxArgs
INTEGER :: NumNums ! Number of real numbers returned by GetObjectItem
INTEGER :: NumAlphas ! Number of alphanumerics returned by GetObjectItem
INTEGER :: NumParams
INTEGER :: SetPtMgrNum ! Setpoint Manager index
INTEGER :: AllSetPtMgrNum ! Setpoint Manager index to ALL setpoint managers in single TYPE
INTEGER :: IOStat ! Status flag from GetObjectItem
INTEGER :: NumNodesCtrld ! number of controlled nodes in input node list
INTEGER :: CtrldNodeNum ! index of the items in the controlled node node list
INTEGER :: NumZones ! number of zone nodes in input node list
INTEGER :: ZoneNum ! loop index for zone nodes
INTEGER :: NumNodes
INTEGER,ALLOCATABLE, DIMENSION(:) :: NodeNums
LOGICAL :: ErrorsFound=.false.
LOGICAL :: IsNotOK ! Flag to verify name
LOGICAL :: IsBlank ! Flag for blank name
LOGICAL :: NodeListError=.false.
LOGICAL :: ErrInList
INTEGER :: Found
LOGICAL :: NoSurfaceGroundTempObjWarning = .TRUE. ! This will cause a warning to be issued if no "surface" ground
! temperature object was input.
LOGICAL :: NoShallowGroundTempObjWarning = .TRUE. ! This will cause a warning to be issued if no "shallow" ground
! temperature object was input.
LOGICAL :: NoDeepGroundTempObjWarning = .TRUE. ! This will cause a warning to be issued if no "deep" ground
! temperature object was input.
LOGICAL :: NoFCGroundTempObjWarning = .TRUE. ! This will cause a warning to be issued if no ground
! temperature object was input for FC Factor method
NumNodesCtrld = 0
CtrldNodeNum = 0
NumZones = 0
ZoneNum = 0
cCurrentModuleObject = 'SetpointManager:Scheduled'
NumSchSetPtMgrs = GetNumObjectsFound(cCurrentModuleObject) ! 'SetpointManager:Scheduled'
CALL GetObjectDefMaxArgs(cCurrentModuleObject,NumParams,NumAlphas,NumNums)
MaxNumNumbers=NumNums
MaxNumAlphas=NumAlphas
cCurrentModuleObject = 'SetpointManager:Scheduled:DualSetpoint'
NumDualSchSetPtMgrs = GetNumObjectsFound(cCurrentModuleObject) ! 'SetpointManager:Scheduled:DualSetpoint'
CALL GetObjectDefMaxArgs(cCurrentModuleObject,NumParams,NumAlphas,NumNums)
MaxNumNumbers=MAX(MaxNumNumbers,NumNums)
MaxNumAlphas=MAX(MaxNumAlphas,NumAlphas)
cCurrentModuleObject = 'SetpointManager:OutdoorAirReset'
NumOutAirSetPtMgrs = GetNumObjectsFound(cCurrentModuleObject) ! 'SetpointManager:OutdoorAirReset'
CALL GetObjectDefMaxArgs(cCurrentModuleObject,NumParams,NumAlphas,NumNums)
MaxNumNumbers=MAX(MaxNumNumbers,NumNums)
MaxNumAlphas=MAX(MaxNumAlphas,NumAlphas)
cCurrentModuleObject = 'SetpointManager:SingleZone:Reheat'
NumSZRhSetPtMgrs = GetNumObjectsFound(cCurrentModuleObject) ! 'SetpointManager:SingleZone:Reheat'
CALL GetObjectDefMaxArgs(cCurrentModuleObject,NumParams,NumAlphas,NumNums)
MaxNumNumbers=MAX(MaxNumNumbers,NumNums)
MaxNumAlphas=MAX(MaxNumAlphas,NumAlphas)
cCurrentModuleObject = 'SetpointManager:SingleZone:Heating'
NumSZHtSetPtMgrs = GetNumObjectsFound(cCurrentModuleObject) ! 'SetpointManager:SingleZone:Heating'
CALL GetObjectDefMaxArgs(cCurrentModuleObject,NumParams,NumAlphas,NumNums)
MaxNumNumbers=MAX(MaxNumNumbers,NumNums)
MaxNumAlphas=MAX(MaxNumAlphas,NumAlphas)
cCurrentModuleObject = 'SetpointManager:SingleZone:Cooling'
NumSZClSetPtMgrs = GetNumObjectsFound(cCurrentModuleObject) ! 'SetpointManager:SingleZone:Cooling'
CALL GetObjectDefMaxArgs(cCurrentModuleObject,NumParams,NumAlphas,NumNums)
MaxNumNumbers=MAX(MaxNumNumbers,NumNums)
MaxNumAlphas=MAX(MaxNumAlphas,NumAlphas)
cCurrentModuleObject = 'SetpointManager:SingleZone:Humidity:Minimum'
NumSZMinHumSetPtMgrs = GetNumObjectsFound(cCurrentModuleObject) ! 'SetpointManager:SingleZone:Humidity:Minimum'
CALL GetObjectDefMaxArgs(cCurrentModuleObject,NumParams,NumAlphas,NumNums)
MaxNumNumbers=MAX(MaxNumNumbers,NumNums)
MaxNumAlphas=MAX(MaxNumAlphas,NumAlphas)
cCurrentModuleObject = 'SetpointManager:SingleZone:Humidity:Maximum'
NumSZMaxHumSetPtMgrs = GetNumObjectsFound(cCurrentModuleObject) ! 'SetpointManager:SingleZone:Humidity:Maximum'
CALL GetObjectDefMaxArgs(cCurrentModuleObject,NumParams,NumAlphas,NumNums)
MaxNumNumbers=MAX(MaxNumNumbers,NumNums)
MaxNumAlphas=MAX(MaxNumAlphas,NumAlphas)
cCurrentModuleObject = 'SetpointManager:MixedAir'
NumMixedAirSetPtMgrs = GetNumObjectsFound(cCurrentModuleObject) ! 'SetpointManager:MixedAir'
CALL GetObjectDefMaxArgs(cCurrentModuleObject,NumParams,NumAlphas,NumNums)
MaxNumNumbers=MAX(MaxNumNumbers,NumNums)
MaxNumAlphas=MAX(MaxNumAlphas,NumAlphas)
cCurrentModuleObject = 'SetpointManager:OutdoorAirPretreat'
NumOAPretreatSetPtMgrs = GetNumObjectsFound(cCurrentModuleObject) ! 'SetpointManager:OutdoorAirPretreat'
CALL GetObjectDefMaxArgs(cCurrentModuleObject,NumParams,NumAlphas,NumNums)
MaxNumNumbers=MAX(MaxNumNumbers,NumNums)
MaxNumAlphas=MAX(MaxNumAlphas,NumAlphas)
cCurrentModuleObject = 'SetpointManager:Warmest'
NumWarmestSetPtMgrs = GetNumObjectsFound(cCurrentModuleObject) ! 'SetpointManager:Warmest'
CALL GetObjectDefMaxArgs(cCurrentModuleObject,NumParams,NumAlphas,NumNums)
MaxNumNumbers=MAX(MaxNumNumbers,NumNums)
MaxNumAlphas=MAX(MaxNumAlphas,NumAlphas)
cCurrentModuleObject = 'SetpointManager:Coldest'
NumColdestSetPtMgrs = GetNumObjectsFound(cCurrentModuleObject) ! 'SetpointManager:Coldest'
CALL GetObjectDefMaxArgs(cCurrentModuleObject,NumParams,NumAlphas,NumNums)
MaxNumNumbers=MAX(MaxNumNumbers,NumNums)
MaxNumAlphas=MAX(MaxNumAlphas,NumAlphas)
cCurrentModuleObject = 'SetpointManager:WarmestTemperatureFlow'
NumWarmestSetPtMgrsTempFlow = GetNumObjectsFound(cCurrentModuleObject) ! 'SetpointManager:WarmestTemperatureFlow'
CALL GetObjectDefMaxArgs(cCurrentModuleObject,NumParams,NumAlphas,NumNums)
MaxNumNumbers=MAX(MaxNumNumbers,NumNums)
MaxNumAlphas=MAX(MaxNumAlphas,NumAlphas)
cCurrentModuleObject = 'SetpointManager:ReturnAirBypassFlow'
NumRABFlowSetPtMgrs = GetNumObjectsFound(cCurrentModuleObject) ! 'SetpointManager:ReturnAirBypassFlow'
CALL GetObjectDefMaxArgs(cCurrentModuleObject,NumParams,NumAlphas,NumNums)
MaxNumNumbers=MAX(MaxNumNumbers,NumNums)
MaxNumAlphas=MAX(MaxNumAlphas,NumAlphas)
cCurrentModuleObject = 'SetpointManager:MultiZone:Cooling:Average'
NumMZClgAverageSetPtMgrs = GetNumObjectsFound(cCurrentModuleObject) ! 'SetpointManager:MultiZone:Cooling:Average'
CALL GetObjectDefMaxArgs(cCurrentModuleObject,NumParams,NumAlphas,NumNums)
MaxNumNumbers=MAX(MaxNumNumbers,NumNums)
MaxNumAlphas=MAX(MaxNumAlphas,NumAlphas)
cCurrentModuleObject = 'SetpointManager:MultiZone:Heating:Average'
NumMZHtgAverageSetPtMgrs = GetNumObjectsFound(cCurrentModuleObject) ! 'SetpointManager:MultiZone:Heating:Average'
CALL GetObjectDefMaxArgs(cCurrentModuleObject,NumParams,NumAlphas,NumNums)
MaxNumNumbers=MAX(MaxNumNumbers,NumNums)
MaxNumAlphas=MAX(MaxNumAlphas,NumAlphas)
cCurrentModuleObject = 'SetpointManager:MultiZone:MinimumHumidity:Average'
NumMZAverageMinHumSetPtMgrs = GetNumObjectsFound(cCurrentModuleObject) ! 'SetpointManager:MultiZone:MinimumHumidity:Average'
CALL GetObjectDefMaxArgs(cCurrentModuleObject,NumParams,NumAlphas,NumNums)
MaxNumNumbers=MAX(MaxNumNumbers,NumNums)
MaxNumAlphas=MAX(MaxNumAlphas,NumAlphas)
cCurrentModuleObject = 'SetpointManager:MultiZone:MaximumHumidity:Average'
NumMZAverageMaxHumSetPtMgrs = GetNumObjectsFound(cCurrentModuleObject) ! 'SetpointManager:MultiZone:MaximumHumidity:Average'
CALL GetObjectDefMaxArgs(cCurrentModuleObject,NumParams,NumAlphas,NumNums)
MaxNumNumbers=MAX(MaxNumNumbers,NumNums)
MaxNumAlphas=MAX(MaxNumAlphas,NumAlphas)
cCurrentModuleObject = 'SetpointManager:MultiZone:Humidity:Minimum'
NumMZMinHumSetPtMgrs = GetNumObjectsFound(cCurrentModuleObject) ! 'SetpointManager:MultiZone:Humidity:Minimum'
CALL GetObjectDefMaxArgs(cCurrentModuleObject,NumParams,NumAlphas,NumNums)
MaxNumNumbers=MAX(MaxNumNumbers,NumNums)
MaxNumAlphas=MAX(MaxNumAlphas,NumAlphas)
cCurrentModuleObject = 'SetpointManager:MultiZone:Humidity:Maximum'
NumMZMaxHumSetPtMgrs = GetNumObjectsFound(cCurrentModuleObject) ! 'SetpointManager:MultiZone:Humidity:Maximum'
CALL GetObjectDefMaxArgs(cCurrentModuleObject,NumParams,NumAlphas,NumNums)
MaxNumNumbers=MAX(MaxNumNumbers,NumNums)
MaxNumAlphas=MAX(MaxNumAlphas,NumAlphas)
cCurrentModuleObject = 'SetpointManager:FollowOutdoorAirTemperature'
NumFollowOATempSetPtMgrs = GetNumObjectsFound(cCurrentModuleObject) ! 'SetpointManager:FollowOutdoorAirTemperature'
CALL GetObjectDefMaxArgs(cCurrentModuleObject,NumParams,NumAlphas,NumNums)
MaxNumNumbers=MAX(MaxNumNumbers,NumNums)
MaxNumAlphas=MAX(MaxNumAlphas,NumAlphas)
cCurrentModuleObject = 'SetpointManager:FollowSystemNodeTemperature'
NumFollowSysNodeTempSetPtMgrs = GetNumObjectsFound(cCurrentModuleObject) ! 'SetpointManager:FollowSystemNodeTemperature'
CALL GetObjectDefMaxArgs(cCurrentModuleObject,NumParams,NumAlphas,NumNums)
MaxNumNumbers=MAX(MaxNumNumbers,NumNums)
MaxNumAlphas=MAX(MaxNumAlphas,NumAlphas)
cCurrentModuleObject = 'SetpointManager:FollowGroundTemperature'
NumGroundTempSetPtMgrs = GetNumObjectsFound(cCurrentModuleObject) ! 'SetpointManager:FollowGroundTemperature'
CALL GetObjectDefMaxArgs(cCurrentModuleObject,NumParams,NumAlphas,NumNums)
MaxNumNumbers=MAX(MaxNumNumbers,NumNums)
MaxNumAlphas=MAX(MaxNumAlphas,NumAlphas)
cCurrentModuleObject = 'SetpointManager:CondenserEnteringReset'
NumCondEntSetPtMgrs = GetNumObjectsFound(cCurrentModuleObject) ! 'SetpointManager:CondenserEnteringReset'
CALL GetObjectDefMaxArgs(cCurrentModuleObject,NumParams,NumAlphas,NumNums)
MaxNumNumbers=MAX(MaxNumNumbers,NumNums)
MaxNumAlphas=MAX(MaxNumAlphas,NumAlphas)
cCurrentModuleObject = 'SetpointManager:CondenserEnteringReset:Ideal'
NumIdealCondEntSetPtMgrs = GetNumObjectsFound(cCurrentModuleObject) ! 'SetpointManager:CondenserEnteringReset:Ideal'
CALL GetObjectDefMaxArgs(cCurrentModuleObject,NumParams,NumAlphas,NumNums)
MaxNumNumbers=MAX(MaxNumNumbers,NumNums)
MaxNumAlphas=MAX(MaxNumAlphas,NumAlphas)
cCurrentModuleObject = 'SetpointManager:SingleZone:OneStageCooling'
NumSZOneStageCoolingSetPtMgrs = GetNumObjectsFound(cCurrentModuleObject)
CALL GetObjectDefMaxArgs(cCurrentModuleObject,NumParams,NumAlphas,NumNums)
MaxNumNumbers=MAX(MaxNumNumbers,NumNums)
MaxNumAlphas=MAX(MaxNumAlphas,NumAlphas)
cCurrentModuleObject = 'SetpointManager:SingleZone:OneStageHeating'
NumSZOneStageHeatingSetPtMgrs = GetNumObjectsFound(cCurrentModuleObject)
CALL GetObjectDefMaxArgs(cCurrentModuleObject,NumParams,NumAlphas,NumNums)
MaxNumNumbers=MAX(MaxNumNumbers,NumNums)
MaxNumAlphas=MAX(MaxNumAlphas,NumAlphas)
NumAllSetPtMgrs = NumSchSetPtMgrs + NumDualSchSetPtMgrs + NumOutAirSetPtMgrs + NumSZRhSetPtMgrs + &
NumSZHtSetPtMgrs + NumSZClSetPtMgrs + NumSZMinHumSetPtMgrs + NumSZMaxHumSetPtMgrs + &
NumMixedAirSetPtMgrs + NumOAPretreatSetPtMgrs + NumWarmestSetPtMgrs + &
NumColdestSetPtMgrs + NumWarmestSetPtMgrsTempFlow + NumRABFlowSetPtMgrs + &
NumMZClgAverageSetPtMgrs + NumMZHtgAverageSetPtMgrs + NumMZAverageMinHumSetPtMgrs + &
NumMZAverageMaxHumSetPtMgrs + NumMZMinHumSetPtMgrs + NumMZMaxHumSetPtMgrs + &
NumFollowOATempSetPtMgrs + NumFollowSysNodeTempSetPtMgrs + NumGroundTempSetPtMgrs + &
NumCondEntSetPtMgrs + NumIdealCondEntSetPtMgrs + NumSZOneStageCoolingSetPtMgrs + &
NumSZOneStageHeatingSetPtMgrs
ALLOCATE(cAlphaFieldNames(MaxNumAlphas))
cAlphaFieldNames=' '
ALLOCATE(cAlphaArgs(MaxNumAlphas))
cAlphaArgs=' '
ALLOCATE(lAlphaFieldBlanks(MaxNumAlphas))
lAlphaFieldBlanks=.false.
ALLOCATE(cNumericFieldNames(MaxNumNumbers))
cNumericFieldNames=' '
ALLOCATE(rNumericArgs(MaxNumNumbers))
rNumericArgs=0.0d0
ALLOCATE(lNumericFieldBlanks(MaxNumNumbers))
lNumericFieldBlanks=.false.
CALL GetObjectDefMaxArgs('NodeList',NumParams,NumAlphas,NumNums)
ALLOCATE(NodeNums(NumParams))
NodeNums=0
IF (NumAllSetPtMgrs.GT.0) ALLOCATE(AllSetPtMgr(NumAllSetPtMgrs)) ! Allocate the entire Setpoint Manager input data array
! Input the Scheduled Setpoint Managers
IF (NumSchSetPtMgrs.GT.0) ALLOCATE(SchSetPtMgr(NumSchSetPtMgrs)) ! Allocate the Setpoint Manager input data array
! Input the data for each Setpoint Manager
cCurrentModuleObject='SetpointManager:Scheduled'
DO SetPtMgrNum = 1,NumSchSetPtMgrs
CALL GetObjectItem(cCurrentModuleObject,SetPtMgrNum,cAlphaArgs,NumAlphas,&
rNumericArgs,NumNums,IOStat,NumBlank=lNumericFieldBlanks,AlphaBlank=lAlphaFieldBlanks, &
AlphaFieldNames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
IsNotOK=.false.
IsBlank=.false.
CALL VerifyName(cAlphaArgs(1),SchSetPtMgr%Name,SetPtMgrNum-1,IsNotOK,IsBlank,TRIM(cCurrentModuleObject)//' Name')
IF (IsNotOK) THEN
ErrorsFound=.TRUE.
IF (IsBlank) cAlphaArgs(1)='xxxxx'
ENDIF
SchSetPtMgr(SetPtMgrNum)%Name = cAlphaArgs(1)
SchSetPtMgr(SetPtMgrNum)%CtrlVarType = cAlphaArgs(2)
! setup program flow control integers
IF (SameString(SchSetPtMgr(SetPtMgrNum)%CtrlVarType,'Temperature')) THEN
SchSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_Temp
ELSEIF (SameString(SchSetPtMgr(SetPtMgrNum)%CtrlVarType,'MaximumTemperature')) THEN
SchSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_MaxTemp
ELSEIF (SameString(SchSetPtMgr(SetPtMgrNum)%CtrlVarType,'MinimumTemperature')) THEN
SchSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_MinTemp
ELSEIF (SameString(SchSetPtMgr(SetPtMgrNum)%CtrlVarType,'HumidityRatio')) THEN
SchSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_HumRat
ELSEIF (SameString(SchSetPtMgr(SetPtMgrNum)%CtrlVarType,'MaximumHumidityRatio')) THEN
SchSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_MaxHumRat
ELSEIF (SameString(SchSetPtMgr(SetPtMgrNum)%CtrlVarType,'MinimumHumidityRatio')) THEN
SchSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_MinHumRat
ELSEIF (SameString(SchSetPtMgr(SetPtMgrNum)%CtrlVarType,'MassFlowRate')) THEN
SchSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_MassFlow
ELSEIF (SameString(SchSetPtMgr(SetPtMgrNum)%CtrlVarType,'MaximumMassFlowRate')) THEN
SchSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_MaxMassFlow
ELSEIF (SameString(SchSetPtMgr(SetPtMgrNum)%CtrlVarType,'MinimumMassFlowRate')) THEN
SchSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_MinMassFlow
ELSE
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", invalid field.')
Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(2))//'="'//TRIM(cAlphaArgs(2))//'".')
CALL ShowContinueError('..Valid values are "Temperature","MaximumTemperature","MinimumTemperature",')
CALL ShowContinueError(' "HumidityRatio","MaximumHumidityRatio","MinimumHumidityRatio","MassFlowRate",')
CALL ShowContinueError(' "MaximumMassFlowRate" or "MinimumMassFlowRate"')
ErrorsFound = .TRUE.
ENDIF
SchSetPtMgr(SetPtMgrNum)%Sched = cAlphaArgs(3)
SchSetPtMgr(SetPtMgrNum)%SchedPtr = GetScheduleIndex(cAlphaArgs(3))
IF (SchSetPtMgr(SetPtMgrNum)%SchedPtr == 0) THEN
IF (lAlphaFieldBlanks(3)) THEN
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", blank required field.')
Call ShowContinueError('..required field '//trim(cAlphaFieldNames(3)))
ELSE
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", invalid field.')
Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(3))//'="'//TRIM(cAlphaArgs(3))//'".')
END IF
ErrorsFound=.TRUE.
ENDIF
SchSetPtMgr(SetPtMgrNum)%CtrlNodeListName = cAlphaArgs(4)
NodeListError=.false.
CALL GetNodeNums(SchSetPtMgr(SetPtMgrNum)%CtrlNodeListName,NumNodes,NodeNums,NodeListError, &
NodeType_Unknown,TRIM(cCurrentModuleObject),cAlphaArgs(1),NodeConnectionType_Setpoint,1,ObjectIsNotParent, &
InputFieldName=cAlphaFieldNames(4))
IF (.not. NodeListError) THEN
NumNodesCtrld = NumNodes
ALLOCATE(SchSetPtMgr(SetPtMgrNum)%CtrlNodes(NumNodesCtrld))
SchSetPtMgr(SetPtMgrNum)%NumCtrlNodes = NumNodesCtrld
SchSetPtMgr(SetPtMgrNum)%SetPt = 0.0d0
DO CtrldNodeNum = 1,NumNodesCtrld
SchSetPtMgr(SetPtMgrNum)%CtrlNodes(CtrldNodeNum) = NodeNums(CtrldNodeNum)
END DO
ELSE
! CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
! '", invalid field.')
! Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(4))//'="'//TRIM(cAlphaArgs(4))//'".')
ErrorsFound=.TRUE.
ENDIF
AllSetPtMgrNum = SetPtMgrNum
IF (.not. NodeListError) THEN
ALLOCATE(AllSetPtMgr(AllSetPtMgrNum)%CtrlNodes(NumNodesCtrld))
AllSetPtMgr(AllsetPtMgrNum)%CtrlNodes = SchSetPtMgr(SetPtMgrNum)%CtrlNodes
END IF
AllSetPtMgr(AllsetPtMgrNum)%Name = SchSetPtMgr(SetPtMgrNum)%Name
AllSetPtMgr(AllsetPtMgrNum)%SPMType = iSPMType_Scheduled
AllSetPtMgr(AllsetPtMgrNum)%CtrlTypeMode = SchSetPtMgr(SetPtMgrNum)%CtrlTypeMode
AllSetPtMgr(AllsetPtMgrNum)%NumCtrlNodes = SchSetPtMgr(SetPtMgrNum)%NumCtrlNodes
END DO
! Input the Scheduled Setpoint Managers DUAL SETPOINT
IF (NumDualSchSetPtMgrs.GT.0) ALLOCATE(DualSchSetPtMgr(NumDualSchSetPtMgrs)) ! Allocate the Setpoint Manager input data array
! Input the data for each Setpoint Manager
cCurrentModuleObject='SetpointManager:Scheduled:DualSetpoint'
DO SetPtMgrNum = 1,NumDualSchSetPtMgrs
CALL GetObjectItem(cCurrentModuleObject,SetPtMgrNum,cAlphaArgs,NumAlphas,&
rNumericArgs,NumNums,IOStat,NumBlank=lNumericFieldBlanks,AlphaBlank=lAlphaFieldBlanks, &
AlphaFieldNames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
IsNotOK=.false.
IsBlank=.false.
CALL VerifyName(cAlphaArgs(1),DualSchSetPtMgr%Name,SetPtMgrNum-1,IsNotOK,IsBlank,TRIM(cCurrentModuleObject)//' Name')
IF (IsNotOK) THEN
ErrorsFound=.TRUE.
IF (IsBlank) cAlphaArgs(1)='xxxxx'
ENDIF
DualSchSetPtMgr(SetPtMgrNum)%Name = cAlphaArgs(1)
DualSchSetPtMgr(SetPtMgrNum)%CtrlVarType = cAlphaArgs(2)
IF (SameString(DualSchSetPtMgr(SetPtMgrNum)%CtrlVarType,'Temperature')) THEN
DualSchSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_Temp
ELSE
! should not come here if idd type choice and key list is working
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", invalid field.')
Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(2))//'="'//TRIM(cAlphaArgs(2))//'".')
CALL ShowContinueError('..Valid value is "Temperature".')
ErrorsFound = .TRUE.
ENDIF
DualSchSetPtMgr(SetPtMgrNum)%SchedHi = cAlphaArgs(3)
DualSchSetPtMgr(SetPtMgrNum)%SchedPtrHi = GetScheduleIndex(cAlphaArgs(3))
IF (DualSchSetPtMgr(SetPtMgrNum)%SchedPtrHi == 0) THEN
IF (lAlphaFieldBlanks(3)) THEN
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", blank required field.')
Call ShowContinueError('..required field '//trim(cAlphaFieldNames(3)))
ELSE
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", invalid field.')
Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(3))//'="'//TRIM(cAlphaArgs(3))//'".')
END IF
ErrorsFound=.TRUE.
ENDIF
DualSchSetPtMgr(SetPtMgrNum)%SchedLo = cAlphaArgs(4)
DualSchSetPtMgr(SetPtMgrNum)%SchedPtrLo = GetScheduleIndex(cAlphaArgs(4))
IF (DualSchSetPtMgr(SetPtMgrNum)%SchedPtrLo == 0) THEN
IF (lAlphaFieldBlanks(4)) THEN
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", blank required field.')
Call ShowContinueError('..required field '//trim(cAlphaFieldNames(4)))
ELSE
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", invalid field.')
Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(4))//'="'//TRIM(cAlphaArgs(4))//'".')
END IF
ErrorsFound=.TRUE.
ENDIF
DualSchSetPtMgr(SetPtMgrNum)%CtrlNodeListName = cAlphaArgs(5)
NodeListError=.false.
CALL GetNodeNums(DualSchSetPtMgr(SetPtMgrNum)%CtrlNodeListName,NumNodes,NodeNums,NodeListError, &
NodeType_Unknown,TRIM(cCurrentModuleObject),cAlphaArgs(1),NodeConnectionType_Setpoint,1,ObjectIsNotParent, &
InputFieldName=cAlphaFieldNames(5))
IF (.not. NodeListError) THEN
NumNodesCtrld = NumNodes
ALLOCATE(DualSchSetPtMgr(SetPtMgrNum)%CtrlNodes(NumNodesCtrld))
DualSchSetPtMgr(SetPtMgrNum)%NumCtrlNodes = NumNodesCtrld
DualSchSetPtMgr(SetPtMgrNum)%SetPtHi = 0.0d0
DualSchSetPtMgr(SetPtMgrNum)%SetPtLo = 0.0d0
DO CtrldNodeNum = 1,NumNodesCtrld
DualSchSetPtMgr(SetPtMgrNum)%CtrlNodes(CtrldNodeNum) = NodeNums(CtrldNodeNum)
END DO
ELSE ! check getnodenums/nodelist
! CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
! '", invalid field.')
! Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(5))//'="'//TRIM(cAlphaArgs(5))//'".')
ErrorsFound=.TRUE.
ENDIF
AllSetPtMgrNum = SetPtMgrNum + NumSchSetPtMgrs
IF (.not. NodeListError) THEN
ALLOCATE(AllSetPtMgr(AllSetPtMgrNum)%CtrlNodes(NumNodesCtrld))
AllSetPtMgr(AllsetPtMgrNum)%CtrlNodes = DualSchSetPtMgr(SetPtMgrNum)%CtrlNodes
END IF
AllSetPtMgr(AllsetPtMgrNum)%Name = DualSchSetPtMgr(SetPtMgrNum)%Name
AllSetPtMgr(AllsetPtMgrNum)%SPMType = iSPMType_ScheduledDual
AllSetPtMgr(AllsetPtMgrNum)%CtrlTypeMode = DualSchSetPtMgr(SetPtMgrNum)%CtrlTypeMode
AllSetPtMgr(AllsetPtMgrNum)%NumCtrlNodes = DualSchSetPtMgr(SetPtMgrNum)%NumCtrlNodes
END DO
! Input the Outside Air Setpoint Managers
IF (NumOutAirSetPtMgrs.GT.0) ALLOCATE(OutAirSetPtMgr(NumOutAirSetPtMgrs)) ! Allocate the Setpoint Manager input data array
! Input the data for each Setpoint Manager
cCurrentModuleObject='SetpointManager:OutdoorAirReset'
DO SetPtMgrNum = 1,NumOutAirSetPtMgrs
CALL GetObjectItem(cCurrentModuleObject,SetPtMgrNum,cAlphaArgs,NumAlphas,&
rNumericArgs,NumNums,IOStat,NumBlank=lNumericFieldBlanks,AlphaBlank=lAlphaFieldBlanks, &
AlphaFieldNames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
IsNotOK=.false.
IsBlank=.false.
CALL VerifyName(cAlphaArgs(1),OutAirSetPtMgr%Name,SetPtMgrNum-1,IsNotOK,IsBlank,TRIM(cCurrentModuleObject)//' Name')
IF (IsNotOK) THEN
ErrorsFound=.TRUE.
IF (IsBlank) cAlphaArgs(1)='xxxxx'
ENDIF
OutAirSetPtMgr(SetPtMgrNum)%Name = cAlphaArgs(1)
OutAirSetPtMgr(SetPtMgrNum)%CtrlVarType = cAlphaArgs(2)
IF (SameString(OutAirSetPtMgr(SetPtMgrNum)%CtrlVarType,'Temperature')) THEN
OutAirSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_Temp
ELSE
! should not come here if idd type choice and key list is working
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", invalid field.')
Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(2))//'="'//TRIM(cAlphaArgs(2))//'".')
CALL ShowContinueError('..Valid value is "Temperature".')
ErrorsFound = .TRUE.
ENDIF
OutAirSetPtMgr(SetPtMgrNum)%OutLowSetPt1 = rNumericArgs(1)
OutAirSetPtMgr(SetPtMgrNum)%OutLow1 = rNumericArgs(2)
OutAirSetPtMgr(SetPtMgrNum)%OutHighSetPt1 = rNumericArgs(3)
OutAirSetPtMgr(SetPtMgrNum)%OutHigh1 = rNumericArgs(4)
OutAirSetPtMgr(SetPtMgrNum)%CtrlNodeListName = cAlphaArgs(3)
IF (OutAirSetPtMgr(SetPtMgrNum)%OutHigh1 < OutAirSetPtMgr(SetPtMgrNum)%OutLow1) THEN
CALL ShowWarningError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))//'", invalid setpoints.')
CALL ShowContinueError('...'//trim(cNumericFieldNames(4))// &
'=['//trim(RoundSigDigits(OutAirSetPtMgr(SetPtMgrNum)%OutHigh1,1))//'] is less than '// &
trim(cNumericFieldNames(2))// &
'=['//trim(RoundSigDigits(OutAirSetPtMgr(SetPtMgrNum)%OutLow1,1))//'].')
ENDIF
! Get optional input: schedule and 2nd reset rule
IF (NumAlphas.EQ.4 .AND. NumNums.EQ.8) THEN
OutAirSetPtMgr(SetPtMgrNum)%Sched = cAlphaArgs(4)
OutAirSetPtMgr(SetPtMgrNum)%SchedPtr = GetScheduleIndex(cAlphaArgs(4))
! Schedule is optional here, so no check on SchedPtr
OutAirSetPtMgr(SetPtMgrNum)%OutLowSetPt2 = rNumericArgs(5)
OutAirSetPtMgr(SetPtMgrNum)%OutLow2 = rNumericArgs(6)
OutAirSetPtMgr(SetPtMgrNum)%OutHighSetPt2 = rNumericArgs(7)
OutAirSetPtMgr(SetPtMgrNum)%OutHigh2 = rNumericArgs(8)
IF (OutAirSetPtMgr(SetPtMgrNum)%OutHigh2 < OutAirSetPtMgr(SetPtMgrNum)%OutLow2) THEN
CALL ShowWarningError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))//'", invalid setpoints.')
CALL ShowContinueError('...'//trim(cNumericFieldNames(8))// &
'=['//trim(RoundSigDigits(OutAirSetPtMgr(SetPtMgrNum)%OutHigh2,1))//'] is less than '// &
trim(cNumericFieldNames(6))// &
'=['//trim(RoundSigDigits(OutAirSetPtMgr(SetPtMgrNum)%OutLow2,1))//'].')
ENDIF
ELSE
OutAirSetPtMgr(SetPtMgrNum)%Sched = ' '
OutAirSetPtMgr(SetPtMgrNum)%SchedPtr = 0
OutAirSetPtMgr(SetPtMgrNum)%OutLowSetPt2 = 0.0d0
OutAirSetPtMgr(SetPtMgrNum)%OutLow2 = 0.0d0
OutAirSetPtMgr(SetPtMgrNum)%OutHighSetPt2 = 0.0d0
OutAirSetPtMgr(SetPtMgrNum)%OutHigh2 = 0.0d0
END IF
NodeListError=.false.
CALL GetNodeNums(OutAirSetPtMgr(SetPtMgrNum)%CtrlNodeListName,NumNodes,NodeNums,NodeListError, &
NodeType_Unknown,TRIM(cCurrentModuleObject),cAlphaArgs(1),NodeConnectionType_Setpoint,1,ObjectIsNotParent, &
InputFieldName=cAlphaFieldNames(3))
IF (.not. NodeListError) THEN
NumNodesCtrld = NumNodes
ALLOCATE(OutAirSetPtMgr(SetPtMgrNum)%CtrlNodes(NumNodesCtrld))
OutAirSetPtMgr(SetPtMgrNum)%NumCtrlNodes = NumNodesCtrld
OutAirSetPtMgr(SetPtMgrNum)%SetPt = 0.0d0
DO CtrldNodeNum = 1,NumNodesCtrld
OutAirSetPtMgr(SetPtMgrNum)%CtrlNodes(CtrldNodeNum) = NodeNums(CtrldNodeNum)
END DO
ELSE
! CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
! '", invalid field.')
! Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(3))//'="'//TRIM(cAlphaArgs(3))//'".')
ErrorsFound=.TRUE.
ENDIF
AllSetPtMgrNum = SetPtMgrNum + NumSchSetPtMgrs + NumDualSchSetPtMgrs
IF (.not. NodeListError) THEN
ALLOCATE(AllSetPtMgr(AllSetPtMgrNum)%CtrlNodes(NumNodesCtrld))
AllSetPtMgr(AllsetPtMgrNum)%CtrlNodes = OutAirSetPtMgr(SetPtMgrNum)%CtrlNodes
END IF
AllSetPtMgr(AllsetPtMgrNum)%Name = OutAirSetPtMgr(SetPtMgrNum)%Name
AllSetPtMgr(AllsetPtMgrNum)%SPMType = iSPMType_OutsideAir
AllSetPtMgr(AllsetPtMgrNum)%CtrlTypeMode = OutAirSetPtMgr(SetPtMgrNum)%CtrlTypeMode
AllSetPtMgr(AllsetPtMgrNum)%NumCtrlNodes = OutAirSetPtMgr(SetPtMgrNum)%NumCtrlNodes
END DO
! Input the Single Zone Reheat Setpoint Managers
IF (NumSZRhSetPtMgrs.GT.0) ALLOCATE(SingZoneRhSetPtMgr(NumSZRhSetPtMgrs)) ! Allocate the Setpoint Manager input data array
! Input the data for each Setpoint Manager
cCurrentModuleObject='SetpointManager:SingleZone:Reheat'
DO SetPtMgrNum = 1,NumSZRhSetPtMgrs
CALL GetObjectItem(cCurrentModuleObject,SetPtMgrNum,cAlphaArgs,NumAlphas,&
rNumericArgs,NumNums,IOStat,NumBlank=lNumericFieldBlanks,AlphaBlank=lAlphaFieldBlanks, &
AlphaFieldNames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
IsNotOK=.false.
IsBlank=.false.
CALL VerifyName(cAlphaArgs(1),SingZoneRhSetPtMgr%Name,SetPtMgrNum-1,IsNotOK,IsBlank,TRIM(cCurrentModuleObject)//' Name')
IF (IsNotOK) THEN
ErrorsFound=.TRUE.
IF (IsBlank) cAlphaArgs(1)='xxxxx'
ENDIF
SingZoneRhSetPtMgr(SetPtMgrNum)%Name = cAlphaArgs(1)
SingZoneRhSetPtMgr(SetPtMgrNum)%CtrlVarType = cAlphaArgs(2)
IF (SameString(SingZoneRhSetPtMgr(SetPtMgrNum)%CtrlVarType,'Temperature')) THEN
SingZoneRhSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_Temp
ELSE
! should not come here if idd type choice and key list is working
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", invalid field.')
Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(2))//'="'//TRIM(cAlphaArgs(2))//'".')
CALL ShowContinueError('..Valid value is "Temperature".')
ErrorsFound = .TRUE.
ENDIF
SingZoneRhSetPtMgr(SetPtMgrNum)%ControlZoneName = cAlphaArgs(3)
SingZoneRhSetPtMgr(SetPtMgrNum)%MinSetTemp = rNumericArgs(1)
SingZoneRhSetPtMgr(SetPtMgrNum)%MaxSetTemp = rNumericArgs(2)
IF (SingZoneRhSetPtMgr(SetPtMgrNum)%MaxSetTemp < SingZoneRhSetPtMgr(SetPtMgrNum)%MinSetTemp) THEN
CALL ShowWarningError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))//'",')
CALL ShowContinueError('...'//trim(cNumericFieldNames(2))// &
'=['//trim(RoundSigDigits(SingZoneRhSetPtMgr(SetPtMgrNum)%MaxSetTemp,1))//'] is less than '// &
trim(cNumericFieldNames(1))// &
'=['//trim(RoundSigDigits(SingZoneRhSetPtMgr(SetPtMgrNum)%MinSetTemp,1))//'].')
ENDIF
SingZoneRhSetPtMgr(SetPtMgrNum)%ZoneNodeNum = &
GetOnlySingleNode(cAlphaArgs(4),ErrorsFound,TRIM(cCurrentModuleObject),cAlphaArgs(1), &
NodeType_Air,NodeConnectionType_Sensor,1,ObjectIsNotParent)
SingZoneRhSetPtMgr(SetPtMgrNum)%ZoneInletNodeNum = &
GetOnlySingleNode(cAlphaArgs(5),ErrorsFound,TRIM(cCurrentModuleObject),cAlphaArgs(1), &
NodeType_Air,NodeConnectionType_Sensor,1,ObjectIsNotParent)
NodeListError=.false.
CALL GetNodeNums(cAlphaArgs(6),NumNodes,NodeNums,NodeListError, & ! setpoint nodes
NodeType_Unknown,TRIM(cCurrentModuleObject),cAlphaArgs(1),NodeConnectionType_Setpoint,1,ObjectIsNotParent, &
InputFieldName=cAlphaFieldNames(6))
IF (.NOT. NodeListError) THEN
NumNodesCtrld = NumNodes
ALLOCATE(SingZoneRhSetPtMgr(SetPtMgrNum)%CtrlNodes(NumNodesCtrld))
SingZoneRhSetPtMgr(SetPtMgrNum)%NumCtrlNodes = NumNodesCtrld
SingZoneRhSetPtMgr(SetPtMgrNum)%SetPt = 0.0d0
DO CtrldNodeNum = 1,NumNodesCtrld
SingZoneRhSetPtMgr(SetPtMgrNum)%CtrlNodes(CtrldNodeNum) = NodeNums(CtrldNodeNum)
END DO
ELSE
! CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
! '", invalid field.')
! Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(6))//'="'//TRIM(cAlphaArgs(6))//'".')
ErrorsFound=.TRUE.
ENDIF
! get the actual zone number of the control zone
SingZoneRhSetPtMgr(SetPtMgrNum)%ControlZoneNum = FindItemInList(cAlphaArgs(3),Zone%Name,NumOfZones)
IF (SingZoneRhSetPtMgr(SetPtMgrNum)%ControlZoneNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", invalid field.')
Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(3))//'="'//TRIM(cAlphaArgs(3))//'".')
ErrorsFound=.TRUE.
ENDIF
SingZoneRhSetPtMgr(SetPtMgrNum)%SetPt = 0.0d0
AllSetPtMgrNum = SetPtMgrNum + NumSchSetPtMgrs + NumDualSchSetPtMgrs + NumOutAirSetPtMgrs
IF (.not. NodeListError) THEN
ALLOCATE(AllSetPtMgr(AllSetPtMgrNum)%CtrlNodes(NumNodesCtrld))
AllSetPtMgr(AllsetPtMgrNum)%CtrlNodes = SingZoneRhSetPtMgr(SetPtMgrNum)%CtrlNodes
END IF
AllSetPtMgr(AllsetPtMgrNum)%Name = SingZoneRhSetPtMgr(SetPtMgrNum)%Name
AllSetPtMgr(AllsetPtMgrNum)%SPMType = iSPMType_SZReheat
AllSetPtMgr(AllsetPtMgrNum)%CtrlTypeMode = SingZoneRhSetPtMgr(SetPtMgrNum)%CtrlTypeMode
AllSetPtMgr(AllsetPtMgrNum)%NumCtrlNodes = SingZoneRhSetPtMgr(SetPtMgrNum)%NumCtrlNodes
END DO
! Input the Single Zone Heating Setpoint Managers
IF (NumSZHtSetPtMgrs.GT.0) ALLOCATE(SingZoneHtSetPtMgr(NumSZHtSetPtMgrs)) ! Allocate the Setpoint Manager input data array
! Input the data for each Setpoint Manager
cCurrentModuleObject='SetpointManager:SingleZone:Heating'
DO SetPtMgrNum = 1,NumSZHtSetPtMgrs
CALL GetObjectItem(cCurrentModuleObject,SetPtMgrNum,cAlphaArgs,NumAlphas,&
rNumericArgs,NumNums,IOStat,NumBlank=lNumericFieldBlanks,AlphaBlank=lAlphaFieldBlanks, &
AlphaFieldNames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
IsNotOK=.false.
IsBlank=.false.
CALL VerifyName(cAlphaArgs(1),SingZoneHtSetPtMgr%Name,SetPtMgrNum-1,IsNotOK,IsBlank,TRIM(cCurrentModuleObject)//' Name')
IF (IsNotOK) THEN
ErrorsFound=.TRUE.
IF (IsBlank) cAlphaArgs(1)='xxxxx'
ENDIF
SingZoneHtSetPtMgr(SetPtMgrNum)%Name = cAlphaArgs(1)
SingZoneHtSetPtMgr(SetPtMgrNum)%CtrlVarType = cAlphaArgs(2)
IF (SameString(SingZoneHtSetPtMgr(SetPtMgrNum)%CtrlVarType,'Temperature')) THEN
SingZoneHtSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_Temp
ELSE
! should not come here if idd type choice and key list is working
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", invalid field.')
Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(2))//'="'//TRIM(cAlphaArgs(2))//'".')
CALL ShowContinueError('..Valid value is "Temperature".')
ErrorsFound = .TRUE.
ENDIF
SingZoneHtSetPtMgr(SetPtMgrNum)%ControlZoneName = cAlphaArgs(3)
SingZoneHtSetPtMgr(SetPtMgrNum)%MinSetTemp = rNumericArgs(1)
SingZoneHtSetPtMgr(SetPtMgrNum)%MaxSetTemp = rNumericArgs(2)
IF (SingZoneHtSetPtMgr(SetPtMgrNum)%MaxSetTemp < SingZoneHtSetPtMgr(SetPtMgrNum)%MinSetTemp) THEN
CALL ShowWarningError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))//'",')
CALL ShowContinueError('...'//trim(cNumericFieldNames(2))// &
'=['//trim(RoundSigDigits(SingZoneHtSetPtMgr(SetPtMgrNum)%MaxSetTemp,1))//'] is less than '// &
trim(cNumericFieldNames(1))// &
'=['//trim(RoundSigDigits(SingZoneHtSetPtMgr(SetPtMgrNum)%MinSetTemp,1))//'].')
ENDIF
SingZoneHtSetPtMgr(SetPtMgrNum)%ZoneNodeNum = &
GetOnlySingleNode(cAlphaArgs(4),ErrorsFound,TRIM(cCurrentModuleObject),cAlphaArgs(1), &
NodeType_Air,NodeConnectionType_Sensor,1,ObjectIsNotParent)
SingZoneHtSetPtMgr(SetPtMgrNum)%ZoneInletNodeNum = &
GetOnlySingleNode(cAlphaArgs(5),ErrorsFound,TRIM(cCurrentModuleObject),cAlphaArgs(1), &
NodeType_Air,NodeConnectionType_Sensor,1,ObjectIsNotParent)
NodeListError=.false.
CALL GetNodeNums(cAlphaArgs(6),NumNodes,NodeNums,NodeListError, & ! setpoint nodes
NodeType_Unknown,TRIM(cCurrentModuleObject),cAlphaArgs(1),NodeConnectionType_Setpoint,1,ObjectIsNotParent, &
InputFieldName=cAlphaFieldNames(6))
IF (.NOT. NodeListError) THEN
NumNodesCtrld = NumNodes
ALLOCATE(SingZoneHtSetPtMgr(SetPtMgrNum)%CtrlNodes(NumNodesCtrld))
SingZoneHtSetPtMgr(SetPtMgrNum)%NumCtrlNodes = NumNodesCtrld
SingZoneHtSetPtMgr(SetPtMgrNum)%SetPt = 0.0d0
DO CtrldNodeNum = 1,NumNodesCtrld
SingZoneHtSetPtMgr(SetPtMgrNum)%CtrlNodes(CtrldNodeNum) = NodeNums(CtrldNodeNum)
END DO
ELSE
! CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
! '", invalid field.')
! Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(4))//'="'//TRIM(cAlphaArgs(4))//'".')
ErrorsFound=.TRUE.
ENDIF
! get the actual zone number of the control zone
SingZoneHtSetPtMgr(SetPtMgrNum)%ControlZoneNum = FindItemInList(cAlphaArgs(3),Zone%Name,NumOfZones)
IF (SingZoneHtSetPtMgr(SetPtMgrNum)%ControlZoneNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", invalid field.')
Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(3))//'="'//TRIM(cAlphaArgs(3))//'".')
ErrorsFound=.TRUE.
ENDIF
SingZoneHtSetPtMgr(SetPtMgrNum)%SetPt = 0.0d0
AllSetPtMgrNum = SetPtMgrNum + NumSchSetPtMgrs + NumDualSchSetPtMgrs + NumOutAirSetPtMgrs + NumSZRhSetPtMgrs
IF (.not. NodeListError) THEN
ALLOCATE(AllSetPtMgr(AllSetPtMgrNum)%CtrlNodes(NumNodesCtrld))
AllSetPtMgr(AllsetPtMgrNum)%CtrlNodes = SingZoneHtSetPtMgr(SetPtMgrNum)%CtrlNodes
END IF
AllSetPtMgr(AllsetPtMgrNum)%Name = SingZoneHtSetPtMgr(SetPtMgrNum)%Name
AllSetPtMgr(AllsetPtMgrNum)%SPMType = iSPMType_SZHeating
AllSetPtMgr(AllsetPtMgrNum)%CtrlTypeMode = SingZoneHtSetPtMgr(SetPtMgrNum)%CtrlTypeMode
AllSetPtMgr(AllsetPtMgrNum)%NumCtrlNodes = SingZoneHtSetPtMgr(SetPtMgrNum)%NumCtrlNodes
END DO
! Input the Single Zone Cooling Setpoint Managers
IF (NumSZClSetPtMgrs.GT.0) ALLOCATE(SingZoneClSetPtMgr(NumSZClSetPtMgrs)) ! Allocate the Setpoint Manager input data array
! Input the data for each Setpoint Manager
cCurrentModuleObject='SetpointManager:SingleZone:Cooling'
DO SetPtMgrNum = 1,NumSZClSetPtMgrs
CALL GetObjectItem(cCurrentModuleObject,SetPtMgrNum,cAlphaArgs,NumAlphas,&
rNumericArgs,NumNums,IOStat,NumBlank=lNumericFieldBlanks,AlphaBlank=lAlphaFieldBlanks, &
AlphaFieldNames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
IsNotOK=.false.
IsBlank=.false.
CALL VerifyName(cAlphaArgs(1),SingZoneClSetPtMgr%Name,SetPtMgrNum-1,IsNotOK,IsBlank,TRIM(cCurrentModuleObject)//' Name')
IF (IsNotOK) THEN
ErrorsFound=.TRUE.
IF (IsBlank) cAlphaArgs(1)='xxxxx'
ENDIF
SingZoneClSetPtMgr(SetPtMgrNum)%Name = cAlphaArgs(1)
SingZoneClSetPtMgr(SetPtMgrNum)%CtrlVarType = cAlphaArgs(2)
IF (SameString(SingZoneClSetPtMgr(SetPtMgrNum)%CtrlVarType,'Temperature')) Then
SingZoneClSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_Temp
ELSE
! should not come here if idd type choice and key list is working
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", invalid field.')
Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(2))//'="'//TRIM(cAlphaArgs(2))//'".')
CALL ShowContinueError('..Valid value is "Temperature".')
ErrorsFound = .TRUE.
ENDIF
SingZoneClSetPtMgr(SetPtMgrNum)%ControlZoneName = cAlphaArgs(3)
SingZoneClSetPtMgr(SetPtMgrNum)%MinSetTemp = rNumericArgs(1)
SingZoneClSetPtMgr(SetPtMgrNum)%MaxSetTemp = rNumericArgs(2)
IF (SingZoneClSetPtMgr(SetPtMgrNum)%MaxSetTemp < SingZoneClSetPtMgr(SetPtMgrNum)%MinSetTemp) THEN
CALL ShowWarningError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))//'",')
CALL ShowContinueError('...'//trim(cNumericFieldNames(2))// &
'=['//trim(RoundSigDigits(SingZoneClSetPtMgr(SetPtMgrNum)%MaxSetTemp,1))//'] is less than '// &
trim(cNumericFieldNames(1))// &
'=['//trim(RoundSigDigits(SingZoneClSetPtMgr(SetPtMgrNum)%MinSetTemp,1))//'].')
ENDIF
SingZoneClSetPtMgr(SetPtMgrNum)%ZoneNodeNum = &
GetOnlySingleNode(cAlphaArgs(4),ErrorsFound,TRIM(cCurrentModuleObject),cAlphaArgs(1), &
NodeType_Air,NodeConnectionType_Sensor,1,ObjectIsNotParent)
SingZoneClSetPtMgr(SetPtMgrNum)%ZoneInletNodeNum = &
GetOnlySingleNode(cAlphaArgs(5),ErrorsFound,TRIM(cCurrentModuleObject),cAlphaArgs(1), &
NodeType_Air,NodeConnectionType_Sensor,1,ObjectIsNotParent)
NodeListError=.false.
CALL GetNodeNums(cAlphaArgs(6),NumNodes,NodeNums,NodeListError, & ! setpoint nodes
NodeType_Unknown,TRIM(cCurrentModuleObject),cAlphaArgs(1),NodeConnectionType_Setpoint,1,ObjectIsNotParent, &
InputFieldName=cAlphaFieldNames(6))
IF (.NOT. NodeListError) THEN
NumNodesCtrld = NumNodes
ALLOCATE(SingZoneClSetPtMgr(SetPtMgrNum)%CtrlNodes(NumNodesCtrld))
SingZoneClSetPtMgr(SetPtMgrNum)%NumCtrlNodes = NumNodesCtrld
SingZoneClSetPtMgr(SetPtMgrNum)%SetPt = 0.0d0
DO CtrldNodeNum = 1,NumNodesCtrld
SingZoneClSetPtMgr(SetPtMgrNum)%CtrlNodes(CtrldNodeNum) = NodeNums(CtrldNodeNum)
END DO
ELSE
! CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
! '", invalid field.')
! Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(6))//'="'//TRIM(cAlphaArgs(6))//'".')
ErrorsFound=.TRUE.
ENDIF
! get the actual zone number of the control zone
SingZoneClSetPtMgr(SetPtMgrNum)%ControlZoneNum = FindItemInList(cAlphaArgs(3),Zone%Name,NumOfZones)
IF (SingZoneClSetPtMgr(SetPtMgrNum)%ControlZoneNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", invalid field.')
Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(3))//'="'//TRIM(cAlphaArgs(3))//'".')
ErrorsFound=.TRUE.
ENDIF
SingZoneClSetPtMgr(SetPtMgrNum)%SetPt = 0.0d0
AllSetPtMgrNum = SetPtMgrNum + NumSchSetPtMgrs + NumDualSchSetPtMgrs + NumOutAirSetPtMgrs + NumSZRhSetPtMgrs + &
NumSZHtSetPtMgrs
IF (.not. NodeListError) THEN
ALLOCATE(AllSetPtMgr(AllSetPtMgrNum)%CtrlNodes(NumNodesCtrld))
AllSetPtMgr(AllsetPtMgrNum)%CtrlNodes = SingZoneClSetPtMgr(SetPtMgrNum)%CtrlNodes
END IF
AllSetPtMgr(AllsetPtMgrNum)%Name = SingZoneClSetPtMgr(SetPtMgrNum)%Name
AllSetPtMgr(AllsetPtMgrNum)%SPMType = iSPMType_SZCooling
AllSetPtMgr(AllsetPtMgrNum)%CtrlTypeMode = SingZoneClSetPtMgr(SetPtMgrNum)%CtrlTypeMode
AllSetPtMgr(AllsetPtMgrNum)%NumCtrlNodes = SingZoneClSetPtMgr(SetPtMgrNum)%NumCtrlNodes
END DO
! Input the Single Zone Minimum Humidity Setpoint Managers
IF (NumSZMinHumSetPtMgrs.GT.0) ALLOCATE(SZMinHumSetPtMgr(NumSZMinHumSetPtMgrs))
! Input the data for each Setpoint Manager
cCurrentModuleObject='SetpointManager:SingleZone:Humidity:Minimum'
DO SetPtMgrNum = 1,NumSZMinHumSetPtMgrs
CALL GetObjectItem(cCurrentModuleObject,SetPtMgrNum,cAlphaArgs,NumAlphas,&
rNumericArgs,NumNums,IOStat,NumBlank=lNumericFieldBlanks,AlphaBlank=lAlphaFieldBlanks, &
AlphaFieldNames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
IsNotOK=.false.
IsBlank=.false.
CALL VerifyName(cAlphaArgs(1),SZMinHumSetPtMgr%Name,SetPtMgrNum-1,IsNotOK,IsBlank,TRIM(cCurrentModuleObject)//' Name')
IF (IsNotOK) THEN
ErrorsFound=.TRUE.
IF (IsBlank) cAlphaArgs(1)='xxxxx'
ENDIF
SZMinHumSetPtMgr(SetPtMgrNum)%Name = cAlphaArgs(1)
SZMinHumSetPtMgr(SetPtMgrNum)%CtrlVarType = 'MinimumHumidityRatio'
SZMinHumSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_MinHumRat
IF(cAlphaArgs(2) .NE. '')THEN
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", invalid field.')
Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(2))//'="'//TRIM(cAlphaArgs(2))//'".')
CALL ShowContinueError('Deprecated Field in Object. Please leave blank.')
Call ShowContinueError('Please note that this field in this object will be deleted in future versions.')
END IF
IF(cAlphaArgs(3) .NE. '')THEN
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", invalid field.')
Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(3))//'="'//TRIM(cAlphaArgs(3))//'".')
CALL ShowContinueError('Deprecated Field in Object. Please leave blank.')
Call ShowContinueError('Please note that this field in this object will be deleted in future versions.')
END IF
NodeListError=.false.
CALL GetNodeNums(cAlphaArgs(4),NumNodes,NodeNums,NodeListError, & ! nodes whose min humidity ratio will be set
NodeType_Air,TRIM(cCurrentModuleObject),cAlphaArgs(1),NodeConnectionType_Setpoint,1,ObjectIsNotParent, &
InputFieldName=cAlphaFieldNames(4))
IF (.NOT. NodeListError) THEN
NumNodesCtrld = NumNodes
ALLOCATE(SZMinHumSetPtMgr(SetPtMgrNum)%CtrlNodes(NumNodesCtrld))
SZMinHumSetPtMgr(SetPtMgrNum)%NumCtrlNodes = NumNodesCtrld
SZMinHumSetPtMgr(SetPtMgrNum)%SetPt = 0.0d0
DO CtrldNodeNum = 1,NumNodesCtrld
SZMinHumSetPtMgr(SetPtMgrNum)%CtrlNodes(CtrldNodeNum) = NodeNums(CtrldNodeNum)
END DO
ELSE
! CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
! '", invalid field.')
! Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(4))//'="'//TRIM(cAlphaArgs(4))//'".')
ErrorsFound=.TRUE.
ENDIF
ErrInList=.false.
CALL GetNodeNums(cAlphaArgs(5),NumNodes,NodeNums,ErrInList, & ! nodes of zones whose humidity is being controlled
NodeType_Air,TRIM(cCurrentModuleObject),cAlphaArgs(1),NodeConnectionType_Sensor,1,ObjectIsNotParent, &
InputFieldName=cAlphaFieldNames(5))
IF (ErrInList) THEN
! CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
! '", invalid field.')
! Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(5))//'="'//TRIM(cAlphaArgs(5))//'".')
ErrorsFound=.TRUE.
ENDIF
NumZones = NumNodes
SZMinHumSetPtMgr(SetPtMgrNum)%NumZones = NumZones
! only allow one control zone for now
IF (NumNodes > 1) THEN
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", entered nodelist.')
Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(5))//'="'//TRIM(cAlphaArgs(5))//'".')
Call ShowContinueError('..only one control zone is allowed.')
ErrorsFound=.TRUE.
END IF
ALLOCATE(SZMinHumSetPtMgr(SetPtMgrNum)%ZoneNodes(NumZones))
ALLOCATE(SZMinHumSetPtMgr(SetPtMgrNum)%ZoneNum(NumZones))
ALLOCATE(SZMinHumSetPtMgr(SetPtMgrNum)%CtrlZoneNum(NumZones))
DO ZoneNum = 1,NumZones
SZMinHumSetPtMgr(SetPtMgrNum)%ZoneNodes(ZoneNum) = NodeNums(ZoneNum)
SZMinHumSetPtMgr(SetPtMgrNum)%ZoneNum(ZoneNum) = 0
SZMinHumSetPtMgr(SetPtMgrNum)%CtrlZoneNum(ZoneNum) = 0
END DO
AllSetPtMgrNum = SetPtMgrNum + NumSchSetPtMgrs + NumDualSchSetPtMgrs + NumOutAirSetPtMgrs + NumSZRhSetPtMgrs + &
NumSZHtSetPtMgrs + NumSZClSetPtMgrs
IF (.not. NodeListError) THEN
ALLOCATE(AllSetPtMgr(AllSetPtMgrNum)%CtrlNodes(NumNodesCtrld))
AllSetPtMgr(AllsetPtMgrNum)%CtrlNodes = SZMinHumSetPtMgr(SetPtMgrNum)%CtrlNodes
END IF
AllSetPtMgr(AllsetPtMgrNum)%Name = SZMinHumSetPtMgr(SetPtMgrNum)%Name
AllSetPtMgr(AllsetPtMgrNum)%SPMType = iSPMType_SZMinHum
AllSetPtMgr(AllsetPtMgrNum)%CtrlTypeMode = SZMinHumSetPtMgr(SetPtMgrNum)%CtrlTypeMode
AllSetPtMgr(AllsetPtMgrNum)%NumCtrlNodes = SZMinHumSetPtMgr(SetPtMgrNum)%NumCtrlNodes
END DO
! Input the Single Zone Maximum Humidity Setpoint Managers
IF (NumSZMaxHumSetPtMgrs.GT.0) ALLOCATE(SZMaxHumSetPtMgr(NumSZMaxHumSetPtMgrs))
! Input the data for each Setpoint Manager
cCurrentModuleObject='SetpointManager:SingleZone:Humidity:Maximum'
DO SetPtMgrNum = 1,NumSZMaxHumSetPtMgrs
CALL GetObjectItem(cCurrentModuleObject,SetPtMgrNum,cAlphaArgs,NumAlphas,&
rNumericArgs,NumNums,IOStat,NumBlank=lNumericFieldBlanks,AlphaBlank=lAlphaFieldBlanks, &
AlphaFieldNames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
IsNotOK=.false.
IsBlank=.false.
CALL VerifyName(cAlphaArgs(1),SZMaxHumSetPtMgr%Name,SetPtMgrNum-1,IsNotOK,IsBlank,TRIM(cCurrentModuleObject)//' Name')
IF (IsNotOK) THEN
ErrorsFound=.TRUE.
IF (IsBlank) cAlphaArgs(1)='xxxxx'
ENDIF
SZMaxHumSetPtMgr(SetPtMgrNum)%Name = cAlphaArgs(1)
SZMaxHumSetPtMgr(SetPtMgrNum)%CtrlVarType = 'MaximumHumidityRatio'
SZMaxHumSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_MaxHumRat
IF(cAlphaArgs(2) .NE. '')THEN
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", invalid field.')
Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(2))//'="'//TRIM(cAlphaArgs(2))//'".')
CALL ShowContinueError('Deprecated Field in Object. Please leave blank.')
Call ShowContinueError('Please note that this field in this object will be deleted in future versions.')
END IF
IF(cAlphaArgs(3) .NE. '')THEN
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", invalid field.')
Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(3))//'="'//TRIM(cAlphaArgs(3))//'".')
CALL ShowContinueError('Deprecated Field in Object. Please leave blank.')
Call ShowContinueError('Please note that this field in this object will be deleted in future versions.')
END IF
NodeListError=.false.
CALL GetNodeNums(cAlphaArgs(4),NumNodes,NodeNums,NodeListError, & ! nodes whose max humidity ratio will be set
NodeType_Air,TRIM(cCurrentModuleObject),cAlphaArgs(1),NodeConnectionType_Setpoint,1,ObjectIsNotParent, &
InputFieldName=cAlphaFieldNames(4))
IF (.NOT. NodeListError) THEN
NumNodesCtrld = NumNodes
ALLOCATE(SZMaxHumSetPtMgr(SetPtMgrNum)%CtrlNodes(NumNodesCtrld))
SZMaxHumSetPtMgr(SetPtMgrNum)%NumCtrlNodes = NumNodesCtrld
SZMaxHumSetPtMgr(SetPtMgrNum)%SetPt = 0.0d0
DO CtrldNodeNum = 1,NumNodesCtrld
SZMaxHumSetPtMgr(SetPtMgrNum)%CtrlNodes(CtrldNodeNum) = NodeNums(CtrldNodeNum)
END DO
ELSE
! CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
! '", invalid field.')
! Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(4))//'="'//TRIM(cAlphaArgs(4))//'".')
ErrorsFound=.TRUE.
ENDIF
ErrInList=.false.
CALL GetNodeNums(cAlphaArgs(5),NumNodes,NodeNums,ErrInList, & ! nodes of zones whose humidity is being controlled
NodeType_Air,TRIM(cCurrentModuleObject),cAlphaArgs(1),NodeConnectionType_Sensor,1,ObjectIsNotParent, &
InputFieldName=cAlphaFieldNames(5))
IF (ErrInList) THEN
! CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
! '", invalid field.')
! Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(5))//'="'//TRIM(cAlphaArgs(5))//'".')
ErrorsFound=.TRUE.
ENDIF
NumZones = NumNodes
SZMaxHumSetPtMgr(SetPtMgrNum)%NumZones = NumZones
! only allow one control zone for now
IF (NumNodes > 1) THEN
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", entered nodelist.')
Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(5))//'="'//TRIM(cAlphaArgs(5))//'".')
Call ShowContinueError('..only one control zone is allowed.')
ErrorsFound=.TRUE.
END IF
ALLOCATE(SZMaxHumSetPtMgr(SetPtMgrNum)%ZoneNodes(NumZones))
ALLOCATE(SZMaxHumSetPtMgr(SetPtMgrNum)%ZoneNum(NumZones))
ALLOCATE(SZMaxHumSetPtMgr(SetPtMgrNum)%CtrlZoneNum(NumZones))
DO ZoneNum = 1,NumZones
SZMaxHumSetPtMgr(SetPtMgrNum)%ZoneNodes(ZoneNum) = NodeNums(ZoneNum)
! Actual zone node and controlled zone numbers set in Init subroutine
SZMaxHumSetPtMgr(SetPtMgrNum)%ZoneNum(ZoneNum) = 0
SZMaxHumSetPtMgr(SetPtMgrNum)%CtrlZoneNum(ZoneNum) = 0
END DO
AllSetPtMgrNum = SetPtMgrNum + NumSchSetPtMgrs + NumDualSchSetPtMgrs + NumOutAirSetPtMgrs + NumSZRhSetPtMgrs + &
NumSZHtSetPtMgrs + NumSZClSetPtMgrs + NumSZMinHumSetPtMgrs
IF (.not. NodeListError) THEN
ALLOCATE(AllSetPtMgr(AllSetPtMgrNum)%CtrlNodes(NumNodesCtrld))
AllSetPtMgr(AllsetPtMgrNum)%CtrlNodes = SZMaxHumSetPtMgr(SetPtMgrNum)%CtrlNodes
END IF
AllSetPtMgr(AllsetPtMgrNum)%Name = SZMaxHumSetPtMgr(SetPtMgrNum)%Name
AllSetPtMgr(AllsetPtMgrNum)%SPMType = iSPMType_SZMaxHum
AllSetPtMgr(AllsetPtMgrNum)%CtrlTypeMode = SZMaxHumSetPtMgr(SetPtMgrNum)%CtrlTypeMode
AllSetPtMgr(AllsetPtMgrNum)%NumCtrlNodes = SZMaxHumSetPtMgr(SetPtMgrNum)%NumCtrlNodes
END DO
! Input the Mixed Air Setpoint Managers
IF (NumMixedAirSetPtMgrs.GT.0) ALLOCATE(MixedAirSetPtMgr(NumMixedAirSetPtMgrs))
! Input the data for each Setpoint Manager
cCurrentModuleObject='SetpointManager:MixedAir'
DO SetPtMgrNum = 1,NumMixedAirSetPtMgrs
CALL GetObjectItem(cCurrentModuleObject,SetPtMgrNum,cAlphaArgs,NumAlphas,&
rNumericArgs,NumNums,IOStat,NumBlank=lNumericFieldBlanks,AlphaBlank=lAlphaFieldBlanks, &
AlphaFieldNames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
IsNotOK=.false.
IsBlank=.false.
CALL VerifyName(cAlphaArgs(1),MixedAirSetPtMgr%Name,SetPtMgrNum-1,IsNotOK,IsBlank,TRIM(cCurrentModuleObject)//' Name')
IF (IsNotOK) THEN
ErrorsFound=.TRUE.
IF (IsBlank) cAlphaArgs(1)='xxxxx'
ENDIF
MixedAirSetPtMgr(SetPtMgrNum)%Name = cAlphaArgs(1)
MixedAirSetPtMgr(SetPtMgrNum)%CtrlVarType = cAlphaArgs(2)
IF (SameString(MixedAirSetPtMgr(SetPtMgrNum)%CtrlVarType,'Temperature')) THEN
MixedAirSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_Temp
ELSE
! should not come here if idd type choice and key list is working
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", invalid field.')
Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(2))//'="'//TRIM(cAlphaArgs(2))//'".')
CALL ShowContinueError('..Valid value is "Temperature".')
ErrorsFound = .TRUE.
ENDIF
MixedAirSetPtMgr(SetPtMgrNum)%RefNode = &
GetOnlySingleNode(cAlphaArgs(3),ErrorsFound,TRIM(cCurrentModuleObject),cAlphaArgs(1), &
NodeType_Air,NodeConnectionType_Sensor,1,ObjectIsNotParent)
MixedAirSetPtMgr(SetPtMgrNum)%FanInNode = &
GetOnlySingleNode(cAlphaArgs(4),ErrorsFound,TRIM(cCurrentModuleObject),cAlphaArgs(1), &
NodeType_Air,NodeConnectionType_Sensor,1,ObjectIsNotParent)
MixedAirSetPtMgr(SetPtMgrNum)%FanOutNode = &
GetOnlySingleNode(cAlphaArgs(5),ErrorsFound,TRIM(cCurrentModuleObject),cAlphaArgs(1), &
NodeType_Air,NodeConnectionType_Sensor,1,ObjectIsNotParent)
NodeListError=.false.
CALL GetNodeNums(cAlphaArgs(6),NumNodes,NodeNums,NodeListError, & ! setpoint nodes
NodeType_Air,TRIM(cCurrentModuleObject),cAlphaArgs(1),NodeConnectionType_Setpoint,1,ObjectIsNotParent, &
InputFieldName=cAlphaFieldNames(6))
IF (.NOT. NodeListError) THEN
NumNodesCtrld = NumNodes
ALLOCATE(MixedAirSetPtMgr(SetPtMgrNum)%CtrlNodes(NumNodesCtrld))
MixedAirSetPtMgr(SetPtMgrNum)%NumCtrlNodes = NumNodesCtrld
MixedAirSetPtMgr(SetPtMgrNum)%SetPt = 0.0d0
DO CtrldNodeNum = 1,NumNodesCtrld
MixedAirSetPtMgr(SetPtMgrNum)%CtrlNodes(CtrldNodeNum) = NodeNums(CtrldNodeNum)
END DO
ELSE
! CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
! '", invalid field.')
! Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(6))//'="'//TRIM(cAlphaArgs(6))//'".')
ErrorsFound=.TRUE.
ENDIF
Found=FindNumberInList(MixedAirSetPtMgr(SetPtMgrNum)%RefNode, &
MixedAirSetPtMgr(SetPtMgrNum)%CtrlNodes,MixedAirSetPtMgr(SetPtMgrNum)%NumCtrlNodes)
IF (Found > 0) THEN
IF (MixedAirSetPtMgr(SetPtMgrNum)%NumCtrlNodes > 1) THEN
CALL ShowWarningError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", reference node.')
CALL ShowContinueError('..Reference Node is the same as one of the nodes in SetPoint NodeList')
ELSE
CALL ShowWarningError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", reference node.')
CALL ShowContinueError('..Reference Node is the same as the SetPoint Node')
ENDIF
CALL ShowContinueError('Reference Node Name="'//TRIM(NodeID(MixedAirSetPtMgr(SetPtMgrNum)%RefNode))//'".')
ENDIF
AllSetPtMgrNum = SetPtMgrNum + NumSchSetPtMgrs + NumDualSchSetPtMgrs + NumOutAirSetPtMgrs + NumSZRhSetPtMgrs + &
NumSZHtSetPtMgrs + NumSZClSetPtMgrs + NumSZMinHumSetPtMgrs + NumSZMaxHumSetPtMgrs
IF (.not. NodeListError) THEN
ALLOCATE(AllSetPtMgr(AllSetPtMgrNum)%CtrlNodes(NumNodesCtrld))
AllSetPtMgr(AllsetPtMgrNum)%CtrlNodes = MixedAirSetPtMgr(SetPtMgrNum)%CtrlNodes
END IF
AllSetPtMgr(AllsetPtMgrNum)%Name = MixedAirSetPtMgr(SetPtMgrNum)%Name
AllSetPtMgr(AllsetPtMgrNum)%SPMType = iSPMType_MixedAir
AllSetPtMgr(AllsetPtMgrNum)%CtrlTypeMode = MixedAirSetPtMgr(SetPtMgrNum)%CtrlTypeMode
AllSetPtMgr(AllsetPtMgrNum)%NumCtrlNodes = MixedAirSetPtMgr(SetPtMgrNum)%NumCtrlNodes
END DO
! Input the Outside Air Pretreat Setpoint Managers
IF (NumOAPretreatSetPtMgrs.GT.0) ALLOCATE(OAPretreatSetPtMgr(NumOAPretreatSetPtMgrs))
! Input the data for each Setpoint Manager
cCurrentModuleObject='SetpointManager:OutdoorAirPretreat'
DO SetPtMgrNum = 1,NumOAPretreatSetPtMgrs
CALL GetObjectItem(cCurrentModuleObject,SetPtMgrNum,cAlphaArgs,NumAlphas,&
rNumericArgs,NumNums,IOStat,NumBlank=lNumericFieldBlanks,AlphaBlank=lAlphaFieldBlanks, &
AlphaFieldNames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
IsNotOK=.false.
IsBlank=.false.
CALL VerifyName(cAlphaArgs(1),OAPretreatSetPtMgr%Name,SetPtMgrNum-1,IsNotOK,IsBlank,TRIM(cCurrentModuleObject)//' Name')
IF (IsNotOK) THEN
ErrorsFound=.TRUE.
IF (IsBlank) cAlphaArgs(1)='xxxxx'
ENDIF
OAPretreatSetPtMgr(SetPtMgrNum)%Name = cAlphaArgs(1)
OAPretreatSetPtMgr(SetPtMgrNum)%CtrlVarType = cAlphaArgs(2)
! setup program flow control integers.
SELECT CASE(MakeUPPERCase(OAPretreatSetPtMgr(SetPtMgrNum)%CtrlVarType))
CASE ('TEMPERATURE')
OAPretreatSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_Temp
CASE ('HUMIDITYRATIO')
OAPretreatSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_HumRat
CASE ('MAXIMUMHUMIDITYRATIO')
OAPretreatSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_MaxHumRat
CASE ('MINIMUMHUMIDITYRATIO')
OAPretreatSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_MinHumRat
CASE DEFAULT
! should not come here if idd type choice and key list is working
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", invalid field.')
Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(2))//'="'//TRIM(cAlphaArgs(2))//'".')
CALL ShowContinueError('..Valid values are "Temperature","HumidityRatio","MaximumHumidityRatio" or "MinimumHumidityRatio".')
ErrorsFound = .TRUE.
END SELECT
OAPretreatSetPtMgr(SetPtMgrNum)%MinSetTemp = rNumericArgs(1)
OAPretreatSetPtMgr(SetPtMgrNum)%MaxSetTemp = rNumericArgs(2)
IF (OAPretreatSetPtMgr(SetPtMgrNum)%MaxSetTemp < OAPretreatSetPtMgr(SetPtMgrNum)%MinSetTemp) THEN
CALL ShowWarningError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))//'",')
CALL ShowContinueError('...'//trim(cNumericFieldNames(2))// &
'=['//trim(RoundSigDigits(OAPretreatSetPtMgr(SetPtMgrNum)%MaxSetTemp,1))//'] is less than '// &
trim(cNumericFieldNames(1))// &
'=['//trim(RoundSigDigits(OAPretreatSetPtMgr(SetPtMgrNum)%MinSetTemp,1))//'].')
ENDIF
OAPretreatSetPtMgr(SetPtMgrNum)%MinSetHumRat = rNumericArgs(3)
OAPretreatSetPtMgr(SetPtMgrNum)%MaxSetHumRat = rNumericArgs(4)
IF (OAPretreatSetPtMgr(SetPtMgrNum)%MaxSetHumRat < OAPretreatSetPtMgr(SetPtMgrNum)%MinSetHumRat) THEN
CALL ShowWarningError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))//'",')
CALL ShowContinueError('...'//trim(cNumericFieldNames(4))// &
'=['//trim(RoundSigDigits(OAPretreatSetPtMgr(SetPtMgrNum)%MaxSetHumRat,1))//'] is less than '// &
trim(cNumericFieldNames(3))// &
'=['//trim(RoundSigDigits(OAPretreatSetPtMgr(SetPtMgrNum)%MinSetHumRat,1))//'].')
ENDIF
! Because a zero humidity ratio setpoint is a special value indicating "off" or "no load"
! must not allow MinSetHumRat or MaxSetHumRat to be <=0.0
IF (OAPretreatSetPtMgr(SetPtMgrNum)%MinSetHumRat .LE. 0.0d0) THEN
CALL ShowWarningError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))//'", invalid value.')
CALL ShowContinueError('Minimum setpoint humidity ratio <=0.0, resetting to 0.00001')
OAPretreatSetPtMgr(SetPtMgrNum)%MinSetHumRat = 0.00001d0
ENDIF
IF (OAPretreatSetPtMgr(SetPtMgrNum)%MaxSetHumRat .LE. 0.0d0) THEN
CALL ShowWarningError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))//'", invalid value.')
CALL ShowContinueError('Maximum setpoint humidity ratio <=0.0, resetting to 0.00001')
OAPretreatSetPtMgr(SetPtMgrNum)%MaxSetHumRat = 0.00001d0
ENDIF
OAPretreatSetPtMgr(SetPtMgrNum)%RefNode = &
GetOnlySingleNode(cAlphaArgs(3),ErrorsFound,TRIM(cCurrentModuleObject),cAlphaArgs(1), &
NodeType_Air,NodeConnectionType_Sensor,1,ObjectIsNotParent)
OAPretreatSetPtMgr(SetPtMgrNum)%MixedOutNode = &
GetOnlySingleNode(cAlphaArgs(4),ErrorsFound,TRIM(cCurrentModuleObject),cAlphaArgs(1), &
NodeType_Air,NodeConnectionType_Sensor,1,ObjectIsNotParent)
OAPretreatSetPtMgr(SetPtMgrNum)%OAInNode = &
GetOnlySingleNode(cAlphaArgs(5),ErrorsFound,TRIM(cCurrentModuleObject),cAlphaArgs(1), &
NodeType_Air,NodeConnectionType_Sensor,1,ObjectIsNotParent)
OAPretreatSetPtMgr(SetPtMgrNum)%ReturnInNode = &
GetOnlySingleNode(cAlphaArgs(6),ErrorsFound,TRIM(cCurrentModuleObject),cAlphaArgs(1), &
NodeType_Air,NodeConnectionType_Sensor,1,ObjectIsNotParent)
NodeListError=.false.
CALL GetNodeNums(cAlphaArgs(7),NumNodes,NodeNums,NodeListError, & ! setpoint nodes
NodeType_Air,TRIM(cCurrentModuleObject),cAlphaArgs(1),NodeConnectionType_Setpoint,1,ObjectIsNotParent, &
InputFieldName=cAlphaFieldNames(7))
IF (.NOT. NodeListError) THEN
NumNodesCtrld = NumNodes
ALLOCATE(OAPretreatSetPtMgr(SetPtMgrNum)%CtrlNodes(NumNodesCtrld))
OAPretreatSetPtMgr(SetPtMgrNum)%NumCtrlNodes = NumNodesCtrld
OAPretreatSetPtMgr(SetPtMgrNum)%SetPt = 0.0d0
DO CtrldNodeNum = 1,NumNodesCtrld
OAPretreatSetPtMgr(SetPtMgrNum)%CtrlNodes(CtrldNodeNum) = NodeNums(CtrldNodeNum)
END DO
ELSE
! CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
! '", invalid field.')
! Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(7))//'="'//TRIM(cAlphaArgs(7))//'".')
ErrorsFound=.TRUE.
ENDIF
Found=FindNumberInList(OAPretreatSetPtMgr(SetPtMgrNum)%RefNode, &
OAPretreatSetPtMgr(SetPtMgrNum)%CtrlNodes,OAPretreatSetPtMgr(SetPtMgrNum)%NumCtrlNodes)
IF (Found > 0) THEN
IF (OAPretreatSetPtMgr(SetPtMgrNum)%NumCtrlNodes > 1) THEN
CALL ShowWarningError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", reference node.')
CALL ShowContinueError('..Reference Node is the same as one of the nodes in SetPoint NodeList')
ELSE
CALL ShowWarningError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", reference node.')
CALL ShowContinueError('..Reference Node is the same as the SetPoint Node')
ENDIF
CALL ShowContinueError('Reference Node Name="'//TRIM(NodeID(OAPretreatSetPtMgr(SetPtMgrNum)%RefNode))//'".')
ENDIF
AllSetPtMgrNum = SetPtMgrNum + NumSchSetPtMgrs + NumDualSchSetPtMgrs + NumOutAirSetPtMgrs + NumSZRhSetPtMgrs + &
NumSZHtSetPtMgrs + NumSZClSetPtMgrs + NumSZMinHumSetPtMgrs + NumSZMaxHumSetPtMgrs + &
NumMixedAirSetPtMgrs
IF (.not. NodeListError) THEN
ALLOCATE(AllSetPtMgr(AllSetPtMgrNum)%CtrlNodes(NumNodesCtrld))
AllSetPtMgr(AllsetPtMgrNum)%CtrlNodes = OAPretreatSetPtMgr(SetPtMgrNum)%CtrlNodes
END IF
AllSetPtMgr(AllsetPtMgrNum)%Name = OAPretreatSetPtMgr(SetPtMgrNum)%Name
AllSetPtMgr(AllsetPtMgrNum)%SPMType = iSPMType_OutsideAirPretreat
AllSetPtMgr(AllsetPtMgrNum)%CtrlTypeMode = OAPretreatSetPtMgr(SetPtMgrNum)%CtrlTypeMode
AllSetPtMgr(AllsetPtMgrNum)%NumCtrlNodes = OAPretreatSetPtMgr(SetPtMgrNum)%NumCtrlNodes
END DO
! Input the Warmest Setpoint Managers
IF (NumWarmestSetPtMgrs.GT.0) ALLOCATE(WarmestSetPtMgr(NumWarmestSetPtMgrs))
! Input the data for each Setpoint Manager
cCurrentModuleObject='SetpointManager:Warmest'
DO SetPtMgrNum = 1,NumWarmestSetPtMgrs
CALL GetObjectItem(cCurrentModuleObject,SetPtMgrNum,cAlphaArgs,NumAlphas,&
rNumericArgs,NumNums,IOStat,NumBlank=lNumericFieldBlanks,AlphaBlank=lAlphaFieldBlanks, &
AlphaFieldNames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
IsNotOK=.false.
IsBlank=.false.
CALL VerifyName(cAlphaArgs(1),WarmestSetPtMgr%Name,SetPtMgrNum-1,IsNotOK,IsBlank,TRIM(cCurrentModuleObject)//' Name')
IF (IsNotOK) THEN
ErrorsFound=.TRUE.
IF (IsBlank) cAlphaArgs(1)='xxxxx'
ENDIF
WarmestSetPtMgr(SetPtMgrNum)%Name = cAlphaArgs(1)
WarmestSetPtMgr(SetPtMgrNum)%CtrlVarType = cAlphaArgs(2)
IF (SameString(WarmestSetPtMgr(SetPtMgrNum)%CtrlVarType,'Temperature')) THEN
WarmestSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_Temp
ELSE
! should not come here if idd type choice and key list is working
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", invalid field.')
Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(2))//'="'//TRIM(cAlphaArgs(2))//'".')
CALL ShowContinueError('..Valid value is "Temperature".')
ErrorsFound = .TRUE.
ENDIF
WarmestSetPtMgr(SetPtMgrNum)%AirLoopName = cAlphaArgs(3)
WarmestSetPtMgr(SetPtMgrNum)%AirLoopNum = 0
WarmestSetPtMgr(SetPtMgrNum)%MinSetTemp = rNumericArgs(1)
WarmestSetPtMgr(SetPtMgrNum)%MaxSetTemp = rNumericArgs(2)
IF (WarmestSetPtMgr(SetPtMgrNum)%MaxSetTemp < WarmestSetPtMgr(SetPtMgrNum)%MinSetTemp) THEN
CALL ShowWarningError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))//'",')
CALL ShowContinueError('...'//trim(cNumericFieldNames(2))// &
'=['//trim(RoundSigDigits(WarmestSetPtMgr(SetPtMgrNum)%MaxSetTemp,1))//'] is less than '// &
trim(cNumericFieldNames(1))// &
'=['//trim(RoundSigDigits(WarmestSetPtMgr(SetPtMgrNum)%MinSetTemp,1))//'].')
ENDIF
SELECT CASE(MakeUPPERCase(cAlphaArgs(4)))
CASE('MAXIMUMTEMPERATURE')
WarmestSetPtMgr(SetPtMgrNum)%Strategy = MaxTemp
CASE DEFAULT
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", invalid field.')
Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(4))//'="'//TRIM(cAlphaArgs(4))//'".')
CALL ShowContinueError('..Valid value is "MaximumTemperature".')
ErrorsFound=.TRUE.
END SELECT
NodeListError=.false.
CALL GetNodeNums(cAlphaArgs(5),NumNodes,NodeNums,NodeListError, & ! setpoint nodes
NodeType_Air,TRIM(cCurrentModuleObject),cAlphaArgs(1),NodeConnectionType_Setpoint,1,ObjectIsNotParent, &
InputFieldName=cAlphaFieldNames(5))
IF (.NOT. NodeListError) THEN
NumNodesCtrld = NumNodes
ALLOCATE(WarmestSetPtMgr(SetPtMgrNum)%CtrlNodes(NumNodesCtrld))
WarmestSetPtMgr(SetPtMgrNum)%NumCtrlNodes = NumNodesCtrld
WarmestSetPtMgr(SetPtMgrNum)%SetPt = 0.0d0
DO CtrldNodeNum = 1,NumNodesCtrld
WarmestSetPtMgr(SetPtMgrNum)%CtrlNodes(CtrldNodeNum) = NodeNums(CtrldNodeNum)
END DO
ELSE
! CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
! '", invalid field.')
! Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(5))//'="'//TRIM(cAlphaArgs(5))//'".')
ErrorsFound=.TRUE.
ENDIF
AllSetPtMgrNum = SetPtMgrNum + NumSchSetPtMgrs + NumDualSchSetPtMgrs + NumOutAirSetPtMgrs + NumSZRhSetPtMgrs + &
NumSZHtSetPtMgrs + NumSZClSetPtMgrs + NumSZMinHumSetPtMgrs + NumSZMaxHumSetPtMgrs + &
NumMixedAirSetPtMgrs + NumOAPretreatSetPtMgrs
IF (.not. NodeListError) THEN
ALLOCATE(AllSetPtMgr(AllSetPtMgrNum)%CtrlNodes(NumNodesCtrld))
AllSetPtMgr(AllsetPtMgrNum)%CtrlNodes = WarmestSetPtMgr(SetPtMgrNum)%CtrlNodes
END IF
AllSetPtMgr(AllsetPtMgrNum)%Name = WarmestSetPtMgr(SetPtMgrNum)%Name
AllSetPtMgr(AllsetPtMgrNum)%SPMType = iSPMType_Warmest
AllSetPtMgr(AllsetPtMgrNum)%CtrlTypeMode = WarmestSetPtMgr(SetPtMgrNum)%CtrlTypeMode
AllSetPtMgr(AllsetPtMgrNum)%NumCtrlNodes = WarmestSetPtMgr(SetPtMgrNum)%NumCtrlNodes
END DO
! Input the Coldest Setpoint Managers
IF (NumColdestSetPtMgrs.GT.0) ALLOCATE(ColdestSetPtMgr(NumColdestSetPtMgrs))
! Input the data for each Setpoint Manager
cCurrentModuleObject='SetpointManager:Coldest'
DO SetPtMgrNum = 1,NumColdestSetPtMgrs
CALL GetObjectItem(cCurrentModuleObject,SetPtMgrNum,cAlphaArgs,NumAlphas,&
rNumericArgs,NumNums,IOStat,NumBlank=lNumericFieldBlanks,AlphaBlank=lAlphaFieldBlanks, &
AlphaFieldNames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
IsNotOK=.false.
IsBlank=.false.
CALL VerifyName(cAlphaArgs(1),ColdestSetPtMgr%Name,SetPtMgrNum-1,IsNotOK,IsBlank,TRIM(cCurrentModuleObject)//' Name')
IF (IsNotOK) THEN
ErrorsFound=.TRUE.
IF (IsBlank) cAlphaArgs(1)='xxxxx'
ENDIF
ColdestSetPtMgr(SetPtMgrNum)%Name = cAlphaArgs(1)
ColdestSetPtMgr(SetPtMgrNum)%CtrlVarType = cAlphaArgs(2)
IF (SameString(ColdestSetPtMgr(SetPtMgrNum)%CtrlVarType,'Temperature')) THEN
ColdestSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_Temp
ELSE
! should not come here if idd type choice and key list is working
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", invalid field.')
Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(2))//'="'//TRIM(cAlphaArgs(2))//'".')
CALL ShowContinueError('..Valid value is "Temperature".')
ErrorsFound = .TRUE.
ENDIF
ColdestSetPtMgr(SetPtMgrNum)%AirLoopName = cAlphaArgs(3)
ColdestSetPtMgr(SetPtMgrNum)%AirLoopNum = 0
ColdestSetPtMgr(SetPtMgrNum)%MinSetTemp = rNumericArgs(1)
ColdestSetPtMgr(SetPtMgrNum)%MaxSetTemp = rNumericArgs(2)
IF (ColdestSetPtMgr(SetPtMgrNum)%MaxSetTemp < ColdestSetPtMgr(SetPtMgrNum)%MinSetTemp) THEN
CALL ShowWarningError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))//'",')
CALL ShowContinueError('...'//trim(cNumericFieldNames(2))// &
'=['//trim(RoundSigDigits(ColdestSetPtMgr(SetPtMgrNum)%MaxSetTemp,1))//'] is less than '// &
trim(cNumericFieldNames(1))// &
'=['//trim(RoundSigDigits(ColdestSetPtMgr(SetPtMgrNum)%MinSetTemp,1))//'].')
ENDIF
SELECT CASE(MakeUPPERCase(cAlphaArgs(4)))
CASE('MINIMUMTEMPERATURE')
ColdestSetPtMgr(SetPtMgrNum)%Strategy = MinTemp
CASE DEFAULT
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", invalid field.')
Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(4))//'="'//TRIM(cAlphaArgs(4))//'".')
CALL ShowContinueError('..Valid value is "MinimumTemperature".')
ErrorsFound=.TRUE.
END SELECT
NodeListError=.false.
CALL GetNodeNums(cAlphaArgs(5),NumNodes,NodeNums,NodeListError, & ! setpoint nodes
NodeType_Air,TRIM(cCurrentModuleObject),cAlphaArgs(1),NodeConnectionType_Setpoint,1,ObjectIsNotParent, &
InputFieldName=cAlphaFieldNames(5))
IF (.NOT. NodeListError) THEN
NumNodesCtrld = NumNodes
ALLOCATE(ColdestSetPtMgr(SetPtMgrNum)%CtrlNodes(NumNodesCtrld))
ColdestSetPtMgr(SetPtMgrNum)%NumCtrlNodes = NumNodesCtrld
ColdestSetPtMgr(SetPtMgrNum)%SetPt = 0.0d0
DO CtrldNodeNum = 1,NumNodesCtrld
ColdestSetPtMgr(SetPtMgrNum)%CtrlNodes(CtrldNodeNum) = NodeNums(CtrldNodeNum)
END DO
ELSE
! CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
! '", invalid field.')
! Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(5))//'="'//TRIM(cAlphaArgs(5))//'".')
ErrorsFound=.TRUE.
ENDIF
AllSetPtMgrNum = SetPtMgrNum + NumSchSetPtMgrs + NumDualSchSetPtMgrs + NumOutAirSetPtMgrs + NumSZRhSetPtMgrs + &
NumSZHtSetPtMgrs + NumSZClSetPtMgrs + NumSZMinHumSetPtMgrs + NumSZMaxHumSetPtMgrs + &
NumMixedAirSetPtMgrs + NumOAPretreatSetPtMgrs + NumWarmestSetPtMgrs
IF (.not. NodeListError) THEN
ALLOCATE(AllSetPtMgr(AllSetPtMgrNum)%CtrlNodes(NumNodesCtrld))
AllSetPtMgr(AllsetPtMgrNum)%CtrlNodes = ColdestSetPtMgr(SetPtMgrNum)%CtrlNodes
END IF
AllSetPtMgr(AllsetPtMgrNum)%Name = ColdestSetPtMgr(SetPtMgrNum)%Name
AllSetPtMgr(AllsetPtMgrNum)%SPMType = iSPMType_Coldest
AllSetPtMgr(AllsetPtMgrNum)%CtrlTypeMode = ColdestSetPtMgr(SetPtMgrNum)%CtrlTypeMode
AllSetPtMgr(AllsetPtMgrNum)%NumCtrlNodes = ColdestSetPtMgr(SetPtMgrNum)%NumCtrlNodes
END DO
! Input the Warmest Temp Flow Setpoint Managers
IF (NumWarmestSetPtMgrsTempFlow.GT.0) ALLOCATE(WarmestSetPtMgrTempFlow(NumWarmestSetPtMgrsTempFlow))
! Input the data for each Setpoint Manager
cCurrentModuleObject='SetpointManager:WarmestTemperatureFlow'
DO SetPtMgrNum = 1,NumWarmestSetPtMgrsTempFlow
CALL GetObjectItem(cCurrentModuleObject,SetPtMgrNum,cAlphaArgs,NumAlphas,&
rNumericArgs,NumNums,IOStat,NumBlank=lNumericFieldBlanks,AlphaBlank=lAlphaFieldBlanks, &
AlphaFieldNames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
IsNotOK=.false.
IsBlank=.false.
CALL VerifyName(cAlphaArgs(1),WarmestSetPtMgrTempFlow%Name,SetPtMgrNum-1,IsNotOK,IsBlank,TRIM(cCurrentModuleObject)//' Name')
IF (IsNotOK) THEN
ErrorsFound=.TRUE.
IF (IsBlank) cAlphaArgs(1)='xxxxx'
ENDIF
WarmestSetPtMgrTempFlow(SetPtMgrNum)%Name = cAlphaArgs(1)
WarmestSetPtMgrTempFlow(SetPtMgrNum)%CtrlVarType = cAlphaArgs(2)
IF (SameString(WarmestSetPtMgrTempFlow(SetPtMgrNum)%CtrlVarType,'Temperature')) THEN
WarmestSetPtMgrTempFlow(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_Temp
ELSE
! should not come here if idd type choice and key list is working
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", invalid field.')
Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(2))//'="'//TRIM(cAlphaArgs(2))//'".')
CALL ShowContinueError('..Valid value is "Temperature".')
Errorsfound = .TRUE.
ENDIF
WarmestSetPtMgrTempFlow(SetPtMgrNum)%AirLoopName = cAlphaArgs(3)
WarmestSetPtMgrTempFlow(SetPtMgrNum)%AirLoopNum = 0
WarmestSetPtMgrTempFlow(SetPtMgrNum)%MinSetTemp = rNumericArgs(1)
WarmestSetPtMgrTempFlow(SetPtMgrNum)%MaxSetTemp = rNumericArgs(2)
IF (WarmestSetPtMgrTempFlow(SetPtMgrNum)%MaxSetTemp < WarmestSetPtMgrTempFlow(SetPtMgrNum)%MinSetTemp) THEN
CALL ShowWarningError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))//'",')
CALL ShowContinueError('...'//trim(cNumericFieldNames(2))// &
'=['//trim(RoundSigDigits(WarmestSetPtMgrTempFlow(SetPtMgrNum)%MaxSetTemp,1))//'] is less than '// &
trim(cNumericFieldNames(1))// &
'=['//trim(RoundSigDigits(WarmestSetPtMgrTempFlow(SetPtMgrNum)%MinSetTemp,1))//'].')
ENDIF
WarmestSetPtMgrTempFlow(SetPtMgrNum)%MinTurndown = rNumericArgs(3)
IF (WarmestSetPtMgrTempFlow(SetPtMgrNum)%MinTurndown >= 0.8d0) THEN
CALL ShowWarningError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))//'",')
CALL ShowContinueError('...'//trim(cNumericFieldNames(3))// &
'=['//trim(RoundSigDigits(WarmestSetPtMgrTempFlow(SetPtMgrNum)%MinTurndown,2))//'] is greater than 0.8;')
CALL ShowContinueError('...typical values for '//trim(cNumericFieldNames(3))//' are less than 0.8.')
END IF
SELECT CASE(MakeUPPERCase(cAlphaArgs(4)))
CASE('TEMPERATUREFIRST')
WarmestSetPtMgrTempFlow(SetPtMgrNum)%Strategy = TempFirst
CASE('FLOWFIRST')
WarmestSetPtMgrTempFlow(SetPtMgrNum)%Strategy = FlowFirst
CASE DEFAULT
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", invalid field.')
Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(4))//'="'//TRIM(cAlphaArgs(4))//'".')
CALL ShowContinueError('..Valid values are "TemperatureFirst" or "FlowFirst".')
ErrorsFound=.TRUE.
END SELECT
NodeListError=.false.
CALL GetNodeNums(cAlphaArgs(5),NumNodes,NodeNums,NodeListError, & ! setpoint nodes
NodeType_Air,TRIM(cCurrentModuleObject),cAlphaArgs(1),NodeConnectionType_Setpoint,1,ObjectIsNotParent, &
InputFieldName=cAlphaFieldNames(5))
IF (.NOT. NodeListError) THEN
NumNodesCtrld = NumNodes
ALLOCATE(WarmestSetPtMgrTempFlow(SetPtMgrNum)%CtrlNodes(NumNodesCtrld))
WarmestSetPtMgrTempFlow(SetPtMgrNum)%NumCtrlNodes = NumNodesCtrld
WarmestSetPtMgrTempFlow(SetPtMgrNum)%SetPt = 0.0d0
DO CtrldNodeNum = 1,NumNodesCtrld
WarmestSetPtMgrTempFlow(SetPtMgrNum)%CtrlNodes(CtrldNodeNum) = NodeNums(CtrldNodeNum)
END DO
ELSE
! CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
! '", invalid field.')
! Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(5))//'="'//TRIM(cAlphaArgs(5))//'".')
ErrorsFound=.TRUE.
ENDIF
AllSetPtMgrNum = SetPtMgrNum + NumSchSetPtMgrs + NumDualSchSetPtMgrs + NumOutAirSetPtMgrs + NumSZRhSetPtMgrs + &
NumSZHtSetPtMgrs + NumSZClSetPtMgrs + NumSZMinHumSetPtMgrs + NumSZMaxHumSetPtMgrs + &
NumMixedAirSetPtMgrs + NumOAPretreatSetPtMgrs + NumWarmestSetPtMgrs + NumColdestSetPtMgrs
IF (.not. NodeListError) THEN
ALLOCATE(AllSetPtMgr(AllSetPtMgrNum)%CtrlNodes(NumNodesCtrld))
AllSetPtMgr(AllsetPtMgrNum)%CtrlNodes = WarmestSetPtMgrTempFlow(SetPtMgrNum)%CtrlNodes
END IF
AllSetPtMgr(AllsetPtMgrNum)%Name = WarmestSetPtMgrTempFlow(SetPtMgrNum)%Name
AllSetPtMgr(AllsetPtMgrNum)%SPMType = iSPMType_WarmestTempFlow
AllSetPtMgr(AllsetPtMgrNum)%CtrlTypeMode = WarmestSetPtMgrTempFlow(SetPtMgrNum)%CtrlTypeMode
AllSetPtMgr(AllsetPtMgrNum)%NumCtrlNodes = WarmestSetPtMgrTempFlow(SetPtMgrNum)%NumCtrlNodes
END DO
! Input the Return Air Bypass Flow Setpoint Managers
IF (NumRABFlowSetPtMgrs.GT.0) ALLOCATE(RABFlowSetPtMgr(NumRABFlowSetPtMgrs))
! Input the data for each Setpoint Manager
cCurrentModuleObject='SetpointManager:ReturnAirBypassFlow'
DO SetPtMgrNum = 1,NumRABFlowSetPtMgrs
CALL GetObjectItem(cCurrentModuleObject,SetPtMgrNum,cAlphaArgs,NumAlphas,&
rNumericArgs,NumNums,IOStat,NumBlank=lNumericFieldBlanks,AlphaBlank=lAlphaFieldBlanks, &
AlphaFieldNames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
IsNotOK=.false.
IsBlank=.false.
CALL VerifyName(cAlphaArgs(1),RABFlowSetPtMgr%Name,SetPtMgrNum-1,IsNotOK,IsBlank,TRIM(cCurrentModuleObject)//' Name')
IF (IsNotOK) THEN
ErrorsFound=.TRUE.
IF (IsBlank) cAlphaArgs(1)='xxxxx'
ENDIF
RABFlowSetPtMgr(SetPtMgrNum)%Name = cAlphaArgs(1)
RABFlowSetPtMgr(SetPtMgrNum)%CtrlVarType = cAlphaArgs(2)
RABFlowSetPtMgr(SetPtMgrNum)%NumCtrlNodes = 1
NumNodesCtrld = 1
IF (SameString(RABFlowSetPtMgr(SetPtMgrNum)%CtrlVarType,'Flow')) THEN
RABFlowSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_MassFlow
ELSE
! should not come here if idd type choice and key list is working
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", invalid field.')
Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(2))//'="'//TRIM(cAlphaArgs(2))//'".')
CALL ShowContinueError('..Valid value is "Temperature".')
ErrorsFound = .TRUE.
ENDIF
RABFlowSetPtMgr(SetPtMgrNum)%AirLoopName = cAlphaArgs(3)
RABFlowSetPtMgr(SetPtMgrNum)%AirLoopNum = 0
RABFlowSetPtMgr(SetPtMgrNum)%Sched = cAlphaArgs(4)
RABFlowSetPtMgr(SetPtMgrNum)%SchedPtr = GetScheduleIndex(cAlphaArgs(4))
IF (RABFlowSetPtMgr(SetPtMgrNum)%SchedPtr == 0) THEN
IF (lAlphaFieldBlanks(4)) THEN
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", blank required field.')
Call ShowContinueError('..required field '//trim(cAlphaFieldNames(4)))
ELSE
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", invalid field.')
Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(4))//'="'//TRIM(cAlphaArgs(4))//'".')
END IF
ErrorsFound=.TRUE.
ENDIF
AllSetPtMgrNum = SetPtMgrNum + NumSchSetPtMgrs + NumDualSchSetPtMgrs + NumOutAirSetPtMgrs + NumSZRhSetPtMgrs + &
NumSZHtSetPtMgrs + NumSZClSetPtMgrs + NumSZMinHumSetPtMgrs + NumSZMaxHumSetPtMgrs + &
NumMixedAirSetPtMgrs + NumOAPretreatSetPtMgrs + NumWarmestSetPtMgrs + NumColdestSetPtMgrs + &
NumWarmestSetPtMgrsTempFlow
RABFlowSetPtMgr(SetPtMgrNum)%AllSetPtMgrIndex = AllSetPtMgrNum
ALLOCATE(RABFlowSetPtMgr(SetPtMgrNum)%CtrlNodes(NumNodesCtrld))
RABFlowSetPtMgr(SetPtMgrNum)%CtrlNodes = 0
ALLOCATE(AllSetPtMgr(AllSetPtMgrNum)%CtrlNodes(NumNodesCtrld))
! need to reset this to the control node (RABSplitOutNode) in Init, will be 0 here
AllSetPtMgr(AllsetPtMgrNum)%CtrlNodes = RABFlowSetPtMgr(SetPtMgrNum)%CtrlNodes
AllSetPtMgr(AllsetPtMgrNum)%Name = RABFlowSetPtMgr(SetPtMgrNum)%Name
AllSetPtMgr(AllsetPtMgrNum)%SPMType = iSPMType_RAB
AllSetPtMgr(AllsetPtMgrNum)%CtrlTypeMode = RABFlowSetPtMgr(SetPtMgrNum)%CtrlTypeMode
AllSetPtMgr(AllsetPtMgrNum)%NumCtrlNodes = RABFlowSetPtMgr(SetPtMgrNum)%NumCtrlNodes
END DO
! Input the MultiZone Average Cooling Setpoint Managers
IF (NumMZClgAverageSetPtMGrs.GT.0) ALLOCATE(MZAverageCoolingSetPtMgr(NumMZClgAverageSetPtMGrs))
! Input the data for each setpoint manager
cCurrentModuleObject= 'SetpointManager:MultiZone:Cooling:Average'
DO SetPtMgrNum = 1, NumMZClgAverageSetPtMGrs
CALL GetObjectItem(cCurrentModuleObject,SetPtMgrNum,cAlphaArgs,NumAlphas,&
rNumericArgs,NumNums,IOStat,NumBlank=lNumericFieldBlanks,AlphaBlank=lAlphaFieldBlanks, &
AlphaFieldNames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
IsNotOK=.false.
IsBlank=.false.
CALL VerifyName(cAlphaArgs(1), MZAverageCoolingSetPtMgr%Name,SetPtMgrNum-1,IsNotOK,IsBlank,TRIM(cCurrentModuleObject)//' Name')
IF (IsNotOK) THEN
ErrorsFound=.TRUE.
IF (IsBlank) cAlphaArgs(1)='xxxxx'
ENDIF
MZAverageCoolingSetPtMgr(SetPtMgrNum)%Name = cAlphaArgs(1)
MZAverageCoolingSetPtMgr(SetPtMgrNum)%AirLoopName = cAlphaArgs(2)
MZAverageCoolingSetPtMgr(SetPtMgrNum)%AirLoopNum = 0
MZAverageCoolingSetPtMgr(SetPtMgrNum)%MinSetTemp = rNumericArgs(1)
MZAverageCoolingSetPtMgr(SetPtMgrNum)%MaxSetTemp = rNumericArgs(2)
MZAverageCoolingSetPtMgr(SetPtMgrNum)%CtrlVarType = 'Temperature'
MZAverageCoolingSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_Temp
IF (MZAverageCoolingSetPtMgr(SetPtMgrNum)%MaxSetTemp < MZAverageCoolingSetPtMgr(SetPtMgrNum)%MinSetTemp) THEN
CALL ShowWarningError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))//'",')
CALL ShowContinueError('...'//TRIM(cNumericFieldNames(2))// &
'=['//TRIM(RoundSigDigits(MZAverageCoolingSetPtMgr(SetPtMgrNum)%MaxSetTemp,1))//'] is less than '// &
TRIM(cNumericFieldNames(1))// &
'=['//TRIM(RoundSigDigits(MZAverageCoolingSetPtMgr(SetPtMgrNum)%MinSetTemp,1))//'].')
ENDIF
NodeListError=.false.
CALL GetNodeNums(cAlphaArgs(3),NumNodes,NodeNums,NodeListError, & ! setpoint nodes
NodeType_Air,TRIM(cCurrentModuleObject),cAlphaArgs(1),NodeConnectionType_Setpoint,1,ObjectIsNotParent, &
InputFieldName=cAlphaFieldNames(3))
IF (.NOT. NodeListError) THEN
NumNodesCtrld = NumNodes
ALLOCATE(MZAverageCoolingSetPtMgr(SetPtMgrNum)%CtrlNodes(NumNodesCtrld))
MZAverageCoolingSetPtMgr(SetPtMgrNum)%NumCtrlNodes = NumNodesCtrld
MZAverageCoolingSetPtMgr(SetPtMgrNum)%SetPt = 0.0d0
DO CtrldNodeNum = 1,NumNodesCtrld
MZAverageCoolingSetPtMgr(SetPtMgrNum)%CtrlNodes(CtrldNodeNum) = NodeNums(CtrldNodeNum)
END DO
ELSE
! CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
! '", invalid field.')
! Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(3))//'="'//TRIM(cAlphaArgs(3))//'".')
ErrorsFound=.TRUE.
ENDIF
AllSetPtMgrNum = SetPtMgrNum + NumSchSetPtMgrs + NumDualSchSetPtMgrs + NumOutAirSetPtMgrs + NumSZRhSetPtMgrs + &
NumSZHtSetPtMgrs + NumSZClSetPtMgrs + NumSZMinHumSetPtMgrs + NumSZMaxHumSetPtMgrs + &
NumMixedAirSetPtMgrs + NumOAPretreatSetPtMgrs + NumWarmestSetPtMgrs + NumColdestSetPtMgrs + &
NumWarmestSetPtMgrsTempFlow + NumRABFlowSetPtMgrs
IF (.not. NodeListError) THEN
ALLOCATE(AllSetPtMgr(AllSetPtMgrNum)%CtrlNodes(NumNodesCtrld))
AllSetPtMgr(AllsetPtMgrNum)%CtrlNodes = MZAverageCoolingSetPtMgr(SetPtMgrNum)%CtrlNodes
END IF
AllSetPtMgr(AllsetPtMgrNum)%Name = MZAverageCoolingSetPtMgr(SetPtMgrNum)%Name
AllSetPtMgr(AllsetPtMgrNum)%SPMType = iSPMType_MZCoolingAverage
AllSetPtMgr(AllsetPtMgrNum)%CtrlTypeMode = MZAverageCoolingSetPtMgr(SetPtMgrNum)%CtrlTypeMode
AllSetPtMgr(AllsetPtMgrNum)%NumCtrlNodes = MZAverageCoolingSetPtMgr(SetPtMgrNum)%NumCtrlNodes
END DO
! Input the MultiZone Average Heating Setpoint Managers
IF (NumMZHtgAverageSetPtMGrs.GT.0) ALLOCATE(MZAverageHeatingSetPtMgr(NumMZHtgAverageSetPtMGrs))
! Input the data for each setpoint manager
cCurrentModuleObject= 'SetpointManager:MultiZone:Heating:Average'
DO SetPtMgrNum = 1, NumMZHtgAverageSetPtMGrs
CALL GetObjectItem(cCurrentModuleObject,SetPtMgrNum,cAlphaArgs,NumAlphas,&
rNumericArgs,NumNums,IOStat,NumBlank=lNumericFieldBlanks,AlphaBlank=lAlphaFieldBlanks, &
AlphaFieldNames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
IsNotOK=.false.
IsBlank=.false.
CALL VerifyName(cAlphaArgs(1), MZAverageHeatingSetPtMgr%Name,SetPtMgrNum-1,IsNotOK,IsBlank,TRIM(cCurrentModuleObject)//' Name')
IF (IsNotOK) THEN
ErrorsFound=.TRUE.
IF (IsBlank) cAlphaArgs(1)='xxxxx'
ENDIF
MZAverageHeatingSetPtMgr(SetPtMgrNum)%Name = cAlphaArgs(1)
MZAverageHeatingSetPtMgr(SetPtMgrNum)%AirLoopName = cAlphaArgs(2)
MZAverageHeatingSetPtMgr(SetPtMgrNum)%AirLoopNum = 0
MZAverageHeatingSetPtMgr(SetPtMgrNum)%MinSetTemp = rNumericArgs(1)
MZAverageHeatingSetPtMgr(SetPtMgrNum)%MaxSetTemp = rNumericArgs(2)
MZAverageHeatingSetPtMgr(SetPtMgrNum)%CtrlVarType = 'Temperature'
MZAverageHeatingSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_Temp
IF (MZAverageHeatingSetPtMgr(SetPtMgrNum)%MaxSetTemp < MZAverageHeatingSetPtMgr(SetPtMgrNum)%MinSetTemp) THEN
CALL ShowWarningError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))//'",')
CALL ShowContinueError('...'//TRIM(cNumericFieldNames(2))// &
'=['//TRIM(RoundSigDigits(MZAverageHeatingSetPtMgr(SetPtMgrNum)%MaxSetTemp,1))//'] is less than '// &
TRIM(cNumericFieldNames(1))// &
'=['//TRIM(RoundSigDigits(MZAverageHeatingSetPtMgr(SetPtMgrNum)%MinSetTemp,1))//'].')
ENDIF
NodeListError=.false.
CALL GetNodeNums(cAlphaArgs(3),NumNodes,NodeNums,NodeListError, & ! setpoint nodes
NodeType_Air,TRIM(cCurrentModuleObject),cAlphaArgs(1),NodeConnectionType_Setpoint,1,ObjectIsNotParent, &
InputFieldName=cAlphaFieldNames(3))
IF (.NOT. NodeListError) THEN
NumNodesCtrld = NumNodes
ALLOCATE(MZAverageHeatingSetPtMgr(SetPtMgrNum)%CtrlNodes(NumNodesCtrld))
MZAverageHeatingSetPtMgr(SetPtMgrNum)%NumCtrlNodes = NumNodesCtrld
MZAverageHeatingSetPtMgr(SetPtMgrNum)%SetPt = 0.0d0
DO CtrldNodeNum = 1,NumNodesCtrld
MZAverageHeatingSetPtMgr(SetPtMgrNum)%CtrlNodes(CtrldNodeNum) = NodeNums(CtrldNodeNum)
END DO
ELSE
! CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
! '", invalid field.')
! Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(3))//'="'//TRIM(cAlphaArgs(3))//'".')
ErrorsFound=.TRUE.
ENDIF
AllSetPtMgrNum = SetPtMgrNum + NumSchSetPtMgrs + NumDualSchSetPtMgrs + NumOutAirSetPtMgrs + NumSZRhSetPtMgrs + &
NumSZHtSetPtMgrs + NumSZClSetPtMgrs + NumSZMinHumSetPtMgrs + NumSZMaxHumSetPtMgrs + &
NumMixedAirSetPtMgrs + NumOAPretreatSetPtMgrs + NumWarmestSetPtMgrs + NumColdestSetPtMgrs + &
NumWarmestSetPtMgrsTempFlow + NumRABFlowSetPtMgrs + NumMZClgAverageSetPtMGrs
IF (.not. NodeListError) THEN
ALLOCATE(AllSetPtMgr(AllSetPtMgrNum)%CtrlNodes(NumNodesCtrld))
AllSetPtMgr(AllsetPtMgrNum)%CtrlNodes = MZAverageHeatingSetPtMgr(SetPtMgrNum)%CtrlNodes
END IF
AllSetPtMgr(AllsetPtMgrNum)%Name = MZAverageHeatingSetPtMgr(SetPtMgrNum)%Name
AllSetPtMgr(AllsetPtMgrNum)%SPMType = iSPMType_MZHeatingAverage
AllSetPtMgr(AllsetPtMgrNum)%CtrlTypeMode = MZAverageHeatingSetPtMgr(SetPtMgrNum)%CtrlTypeMode
AllSetPtMgr(AllsetPtMgrNum)%NumCtrlNodes = MZAverageHeatingSetPtMgr(SetPtMgrNum)%NumCtrlNodes
END DO
! Input the MultiZone Average Minimum Humidity Setpoint Managers
IF (NumMZAverageMinHumSetPtMgrs.GT.0) ALLOCATE(MZAverageMinHumSetPtMgr(NumMZAverageMinHumSetPtMgrs))
! Input the data for each setpoint manager
cCurrentModuleObject= 'SetpointManager:MultiZone:MinimumHumidity:Average'
DO SetPtMgrNum = 1, NumMZAverageMinHumSetPtMgrs
CALL GetObjectItem(cCurrentModuleObject,SetPtMgrNum,cAlphaArgs,NumAlphas,&
rNumericArgs,NumNums,IOStat,NumBlank=lNumericFieldBlanks,AlphaBlank=lAlphaFieldBlanks, &
AlphaFieldNames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
IsNotOK=.false.
IsBlank=.false.
CALL VerifyName(cAlphaArgs(1), MZAverageMinHumSetPtMgr%Name,SetPtMgrNum-1,IsNotOK,IsBlank,TRIM(cCurrentModuleObject)//' Name')
IF (IsNotOK) THEN
ErrorsFound=.TRUE.
IF (IsBlank) cAlphaArgs(1)='xxxxx'
ENDIF
MZAverageMinHumSetPtMgr(SetPtMgrNum)%Name = cAlphaArgs(1)
MZAverageMinHumSetPtMgr(SetPtMgrNum)%AirLoopName = cAlphaArgs(2)
MZAverageMinHumSetPtMgr(SetPtMgrNum)%AirLoopNum = 0
MZAverageMinHumSetPtMgr(SetPtMgrNum)%MinSetHum = rNumericArgs(1)
MZAverageMinHumSetPtMgr(SetPtMgrNum)%MaxSetHum = rNumericArgs(2)
MZAverageMinHumSetPtMgr(SetPtMgrNum)%CtrlVarType = 'MinimumHumidityRatio'
MZAverageMinHumSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_MinHumRat
IF (MZAverageMinHumSetPtMgr(SetPtMgrNum)%MaxSetHum < MZAverageMinHumSetPtMgr(SetPtMgrNum)%MinSetHum) THEN
CALL ShowWarningError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))//'",')
CALL ShowContinueError('...'//TRIM(cNumericFieldNames(2))// &
'=['//TRIM(RoundSigDigits(MZAverageMinHumSetPtMgr(SetPtMgrNum)%MaxSetHum,3))//'] is less than '// &
TRIM(cNumericFieldNames(1))// &
'=['//TRIM(RoundSigDigits(MZAverageMinHumSetPtMgr(SetPtMgrNum)%MinSetHum,3))//'].')
ENDIF
NodeListError=.false.
CALL GetNodeNums(cAlphaArgs(3),NumNodes,NodeNums,NodeListError, & ! setpoint nodes
NodeType_Air,TRIM(cCurrentModuleObject),cAlphaArgs(1),NodeConnectionType_Setpoint,1,ObjectIsNotParent, &
InputFieldName=cAlphaFieldNames(3))
IF (.NOT. NodeListError) THEN
NumNodesCtrld = NumNodes
ALLOCATE(MZAverageMinHumSetPtMgr(SetPtMgrNum)%CtrlNodes(NumNodesCtrld))
MZAverageMinHumSetPtMgr(SetPtMgrNum)%NumCtrlNodes = NumNodesCtrld
MZAverageMinHumSetPtMgr(SetPtMgrNum)%SetPt = 0.0d0
DO CtrldNodeNum = 1,NumNodesCtrld
MZAverageMinHumSetPtMgr(SetPtMgrNum)%CtrlNodes(CtrldNodeNum) = NodeNums(CtrldNodeNum)
END DO
ELSE
! CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
! '", invalid field.')
! Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(3))//'="'//TRIM(cAlphaArgs(3))//'".')
ErrorsFound=.TRUE.
ENDIF
AllSetPtMgrNum = SetPtMgrNum + NumSchSetPtMgrs + NumDualSchSetPtMgrs + NumOutAirSetPtMgrs + NumSZRhSetPtMgrs + &
NumSZHtSetPtMgrs + NumSZClSetPtMgrs + NumSZMinHumSetPtMgrs + NumSZMaxHumSetPtMgrs + &
NumMixedAirSetPtMgrs + NumOAPretreatSetPtMgrs + NumWarmestSetPtMgrs + NumColdestSetPtMgrs + &
NumWarmestSetPtMgrsTempFlow + NumRABFlowSetPtMgrs + NumMZClgAverageSetPtMGrs + NumMZHtgAverageSetPtMGrs
IF (.not. NodeListError) THEN
ALLOCATE(AllSetPtMgr(AllSetPtMgrNum)%CtrlNodes(NumNodesCtrld))
AllSetPtMgr(AllsetPtMgrNum)%CtrlNodes = MZAverageMinHumSetPtMgr(SetPtMgrNum)%CtrlNodes
END IF
AllSetPtMgr(AllsetPtMgrNum)%Name = MZAverageMinHumSetPtMgr(SetPtMgrNum)%Name
AllSetPtMgr(AllsetPtMgrNum)%SPMType = iSPMType_MZMinHumAverage
AllSetPtMgr(AllsetPtMgrNum)%CtrlTypeMode = MZAverageMinHumSetPtMgr(SetPtMgrNum)%CtrlTypeMode
AllSetPtMgr(AllsetPtMgrNum)%NumCtrlNodes = MZAverageMinHumSetPtMgr(SetPtMgrNum)%NumCtrlNodes
END DO
! Input the MultiZone Average Maximum Humidity SetPoint Managers
IF (NumMZAverageMaxHumSetPtMgrs.GT.0) ALLOCATE(MZAverageMaxHumSetPtMgr(NumMZAverageMaxHumSetPtMgrs))
! Input the data for each setpoint manager
cCurrentModuleObject= 'SetpointManager:MultiZone:MaximumHumidity:Average'
DO SetPtMgrNum = 1, NumMZAverageMaxHumSetPtMgrs
CALL GetObjectItem(cCurrentModuleObject,SetPtMgrNum,cAlphaArgs,NumAlphas,&
rNumericArgs,NumNums,IOStat,NumBlank=lNumericFieldBlanks,AlphaBlank=lAlphaFieldBlanks, &
AlphaFieldNames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
IsNotOK=.false.
IsBlank=.false.
CALL VerifyName(cAlphaArgs(1), MZAverageMaxHumSetPtMgr%Name,SetPtMgrNum-1,IsNotOK,IsBlank,TRIM(cCurrentModuleObject)//' Name')
IF (IsNotOK) THEN
ErrorsFound=.TRUE.
IF (IsBlank) cAlphaArgs(1)='xxxxx'
ENDIF
MZAverageMaxHumSetPtMgr(SetPtMgrNum)%Name = cAlphaArgs(1)
MZAverageMaxHumSetPtMgr(SetPtMgrNum)%AirLoopName = cAlphaArgs(2)
MZAverageMaxHumSetPtMgr(SetPtMgrNum)%AirLoopNum = 0
MZAverageMaxHumSetPtMgr(SetPtMgrNum)%MinSetHum = rNumericArgs(1)
MZAverageMaxHumSetPtMgr(SetPtMgrNum)%MaxSetHum = rNumericArgs(2)
MZAverageMaxHumSetPtMgr(SetPtMgrNum)%CtrlVarType = 'MaximumHumidityRatio'
MZAverageMaxHumSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_MaxHumRat
IF (MZAverageMaxHumSetPtMgr(SetPtMgrNum)%MaxSetHum < MZAverageMaxHumSetPtMgr(SetPtMgrNum)%MinSetHum) THEN
CALL ShowWarningError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))//'",')
CALL ShowContinueError('...'//TRIM(cNumericFieldNames(2))// &
'=['//TRIM(RoundSigDigits(MZAverageMaxHumSetPtMgr(SetPtMgrNum)%MaxSetHum,3))//'] is less than '// &
TRIM(cNumericFieldNames(1))// &
'=['//TRIM(RoundSigDigits(MZAverageMaxHumSetPtMgr(SetPtMgrNum)%MinSetHum,3))//'].')
ENDIF
NodeListError=.false.
CALL GetNodeNums(cAlphaArgs(3),NumNodes,NodeNums,NodeListError, & ! setpoint nodes
NodeType_Air,TRIM(cCurrentModuleObject),cAlphaArgs(1),NodeConnectionType_Setpoint,1,ObjectIsNotParent, &
InputFieldName=cAlphaFieldNames(3))
IF (.NOT. NodeListError) THEN
NumNodesCtrld = NumNodes
ALLOCATE(MZAverageMaxHumSetPtMgr(SetPtMgrNum)%CtrlNodes(NumNodesCtrld))
MZAverageMaxHumSetPtMgr(SetPtMgrNum)%NumCtrlNodes = NumNodesCtrld
MZAverageMaxHumSetPtMgr(SetPtMgrNum)%SetPt = 0.0d0
DO CtrldNodeNum = 1,NumNodesCtrld
MZAverageMaxHumSetPtMgr(SetPtMgrNum)%CtrlNodes(CtrldNodeNum) = NodeNums(CtrldNodeNum)
END DO
ELSE
! CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
! '", invalid field.')
! Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(3))//'="'//TRIM(cAlphaArgs(3))//'".')
ErrorsFound=.TRUE.
ENDIF
AllSetPtMgrNum = SetPtMgrNum + NumSchSetPtMgrs + NumDualSchSetPtMgrs + NumOutAirSetPtMgrs + NumSZRhSetPtMgrs + &
NumSZHtSetPtMgrs + NumSZClSetPtMgrs + NumSZMinHumSetPtMgrs + NumSZMaxHumSetPtMgrs + &
NumMixedAirSetPtMgrs + NumOAPretreatSetPtMgrs + NumWarmestSetPtMgrs + NumColdestSetPtMgrs + &
NumWarmestSetPtMgrsTempFlow + NumRABFlowSetPtMgrs + NumMZClgAverageSetPtMGrs + NumMZHtgAverageSetPtMGrs + &
NumMZAverageMinHumSetPtMgrs
IF (.not. NodeListError) THEN
ALLOCATE(AllSetPtMgr(AllSetPtMgrNum)%CtrlNodes(NumNodesCtrld))
AllSetPtMgr(AllsetPtMgrNum)%CtrlNodes = MZAverageMaxHumSetPtMgr(SetPtMgrNum)%CtrlNodes
END IF
AllSetPtMgr(AllsetPtMgrNum)%Name = MZAverageMaxHumSetPtMgr(SetPtMgrNum)%Name
AllSetPtMgr(AllsetPtMgrNum)%SPMType = iSPMType_MZMaxHumAverage
AllSetPtMgr(AllsetPtMgrNum)%CtrlTypeMode = MZAverageMaxHumSetPtMgr(SetPtMgrNum)%CtrlTypeMode
AllSetPtMgr(AllsetPtMgrNum)%NumCtrlNodes = MZAverageMaxHumSetPtMgr(SetPtMgrNum)%NumCtrlNodes
END DO
! Input the Multizone Minimum Humidity Ratio SetPoint Managers
IF (NumMZMinHumSetPtMgrs.GT.0) ALLOCATE(MZMinHumSetPtMgr(NumMZMinHumSetPtMgrs))
! Input the data for each setpoint manager
cCurrentModuleObject= 'SetpointManager:MultiZone:Humidity:Minimum'
DO SetPtMgrNum = 1, NumMZMinHumSetPtMgrs
CALL GetObjectItem(cCurrentModuleObject,SetPtMgrNum,cAlphaArgs,NumAlphas,&
rNumericArgs,NumNums,IOStat,NumBlank=lNumericFieldBlanks,AlphaBlank=lAlphaFieldBlanks, &
AlphaFieldNames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
IsNotOK=.false.
IsBlank=.false.
CALL VerifyName(cAlphaArgs(1), MZMinHumSetPtMgr%Name,SetPtMgrNum-1,IsNotOK,IsBlank,TRIM(cCurrentModuleObject)//' Name')
IF (IsNotOK) THEN
ErrorsFound=.TRUE.
IF (IsBlank) cAlphaArgs(1)='xxxxx'
ENDIF
MZMinHumSetPtMgr(SetPtMgrNum)%Name = cAlphaArgs(1)
MZMinHumSetPtMgr(SetPtMgrNum)%AirLoopName = cAlphaArgs(2)
MZMinHumSetPtMgr(SetPtMgrNum)%AirLoopNum = 0
MZMinHumSetPtMgr(SetPtMgrNum)%MinSetHum = rNumericArgs(1)
MZMinHumSetPtMgr(SetPtMgrNum)%MaxSetHum = rNumericArgs(2)
MZMinHumSetPtMgr(SetPtMgrNum)%CtrlVarType = 'MinimumHumidityRatio'
MZMinHumSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_MinHumRat
IF (MZMinHumSetPtMgr(SetPtMgrNum)%MaxSetHum < MZMinHumSetPtMgr(SetPtMgrNum)%MinSetHum) THEN
CALL ShowWarningError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))//'",')
CALL ShowContinueError('...'//TRIM(cNumericFieldNames(2))// &
'=['//TRIM(RoundSigDigits(MZMinHumSetPtMgr(SetPtMgrNum)%MaxSetHum,3))//'] is less than '// &
TRIM(cNumericFieldNames(1))// &
'=['//TRIM(RoundSigDigits(MZMinHumSetPtMgr(SetPtMgrNum)%MinSetHum,3))//'].')
ENDIF
NodeListError=.false.
CALL GetNodeNums(cAlphaArgs(3),NumNodes,NodeNums,NodeListError, & ! setpoint nodes
NodeType_Air,TRIM(cCurrentModuleObject),cAlphaArgs(1),NodeConnectionType_Setpoint,1,ObjectIsNotParent, &
InputFieldName=cAlphaFieldNames(3))
IF (.NOT. NodeListError) THEN
NumNodesCtrld = NumNodes
ALLOCATE(MZMinHumSetPtMgr(SetPtMgrNum)%CtrlNodes(NumNodesCtrld))
MZMinHumSetPtMgr(SetPtMgrNum)%NumCtrlNodes = NumNodesCtrld
MZMinHumSetPtMgr(SetPtMgrNum)%SetPt = 0.0d0
DO CtrldNodeNum = 1,NumNodesCtrld
MZMinHumSetPtMgr(SetPtMgrNum)%CtrlNodes(CtrldNodeNum) = NodeNums(CtrldNodeNum)
END DO
ELSE
! CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
! '", invalid field.')
! Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(3))//'="'//TRIM(cAlphaArgs(3))//'".')
ErrorsFound=.TRUE.
ENDIF
AllSetPtMgrNum = SetPtMgrNum + NumSchSetPtMgrs + NumDualSchSetPtMgrs + NumOutAirSetPtMgrs + NumSZRhSetPtMgrs + &
NumSZHtSetPtMgrs + NumSZClSetPtMgrs + NumSZMinHumSetPtMgrs + NumSZMaxHumSetPtMgrs + &
NumMixedAirSetPtMgrs + NumOAPretreatSetPtMgrs + NumWarmestSetPtMgrs + NumColdestSetPtMgrs + &
NumWarmestSetPtMgrsTempFlow + NumRABFlowSetPtMgrs + NumMZClgAverageSetPtMGrs + NumMZHtgAverageSetPtMGrs + &
NumMZAverageMinHumSetPtMgrs + NumMZAverageMaxHumSetPtMgrs
IF (.not. NodeListError) THEN
ALLOCATE(AllSetPtMgr(AllSetPtMgrNum)%CtrlNodes(NumNodesCtrld))
AllSetPtMgr(AllsetPtMgrNum)%CtrlNodes = MZMinHumSetPtMgr(SetPtMgrNum)%CtrlNodes
END IF
AllSetPtMgr(AllsetPtMgrNum)%Name = MZMinHumSetPtMgr(SetPtMgrNum)%Name
AllSetPtMgr(AllsetPtMgrNum)%SPMType = iSPMType_MZMinHum
AllSetPtMgr(AllsetPtMgrNum)%CtrlTypeMode = MZMinHumSetPtMgr(SetPtMgrNum)%CtrlTypeMode
AllSetPtMgr(AllsetPtMgrNum)%NumCtrlNodes = MZMinHumSetPtMgr(SetPtMgrNum)%NumCtrlNodes
END DO
! Input the Multizone Maximum Humidity Ratio SetPoint Managers
IF (NumMZMaxHumSetPtMgrs.GT.0) ALLOCATE(MZMaxHumSetPtMgr(NumMZMaxHumSetPtMgrs))
! Input the data for each setpoint manager
cCurrentModuleObject= 'SetpointManager:MultiZone:Humidity:Maximum'
DO SetPtMgrNum = 1, NumMZMaxHumSetPtMgrs
CALL GetObjectItem(cCurrentModuleObject,SetPtMgrNum,cAlphaArgs,NumAlphas,&
rNumericArgs,NumNums,IOStat,NumBlank=lNumericFieldBlanks,AlphaBlank=lAlphaFieldBlanks, &
AlphaFieldNames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
IsNotOK=.false.
IsBlank=.false.
CALL VerifyName(cAlphaArgs(1), MZMaxHumSetPtMgr%Name,SetPtMgrNum-1,IsNotOK,IsBlank,TRIM(cCurrentModuleObject)//' Name')
IF (IsNotOK) THEN
ErrorsFound=.TRUE.
IF (IsBlank) cAlphaArgs(1)='xxxxx'
ENDIF
MZMaxHumSetPtMgr(SetPtMgrNum)%Name = cAlphaArgs(1)
MZMaxHumSetPtMgr(SetPtMgrNum)%AirLoopName = cAlphaArgs(2)
MZMaxHumSetPtMgr(SetPtMgrNum)%AirLoopNum = 0
MZMaxHumSetPtMgr(SetPtMgrNum)%MinSetHum = rNumericArgs(1)
MZMaxHumSetPtMgr(SetPtMgrNum)%MaxSetHum = rNumericArgs(2)
MZMaxHumSetPtMgr(SetPtMgrNum)%CtrlVarType = 'MaximumHumidityRatio'
MZMaxHumSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_MaxHumRat
IF (MZMaxHumSetPtMgr(SetPtMgrNum)%MaxSetHum < MZMaxHumSetPtMgr(SetPtMgrNum)%MinSetHum) THEN
CALL ShowWarningError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))//'",')
CALL ShowContinueError('...'//TRIM(cNumericFieldNames(2))// &
'=['//TRIM(RoundSigDigits(MZMaxHumSetPtMgr(SetPtMgrNum)%MaxSetHum,3))//'] is less than '// &
TRIM(cNumericFieldNames(1))// &
'=['//TRIM(RoundSigDigits(MZMaxHumSetPtMgr(SetPtMgrNum)%MinSetHum,3))//'].')
ENDIF
NodeListError=.false.
CALL GetNodeNums(cAlphaArgs(3),NumNodes,NodeNums,NodeListError, & ! setpoint nodes
NodeType_Air,TRIM(cCurrentModuleObject),cAlphaArgs(1),NodeConnectionType_Setpoint,1,ObjectIsNotParent, &
InputFieldName=cAlphaFieldNames(3))
IF (.NOT. NodeListError) THEN
NumNodesCtrld = NumNodes
ALLOCATE(MZMaxHumSetPtMgr(SetPtMgrNum)%CtrlNodes(NumNodesCtrld))
MZMaxHumSetPtMgr(SetPtMgrNum)%NumCtrlNodes = NumNodesCtrld
MZMaxHumSetPtMgr(SetPtMgrNum)%SetPt = 0.0d0
DO CtrldNodeNum = 1,NumNodesCtrld
MZMaxHumSetPtMgr(SetPtMgrNum)%CtrlNodes(CtrldNodeNum) = NodeNums(CtrldNodeNum)
END DO
ELSE
! CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
! '", invalid field.')
! Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(3))//'="'//TRIM(cAlphaArgs(3))//'".')
ErrorsFound=.TRUE.
ENDIF
AllSetPtMgrNum = SetPtMgrNum + NumSchSetPtMgrs + NumDualSchSetPtMgrs + NumOutAirSetPtMgrs + NumSZRhSetPtMgrs + &
NumSZHtSetPtMgrs + NumSZClSetPtMgrs + NumSZMinHumSetPtMgrs + NumSZMaxHumSetPtMgrs + &
NumMixedAirSetPtMgrs + NumOAPretreatSetPtMgrs + NumWarmestSetPtMgrs + NumColdestSetPtMgrs + &
NumWarmestSetPtMgrsTempFlow + NumRABFlowSetPtMgrs + NumMZClgAverageSetPtMGrs + NumMZHtgAverageSetPtMGrs + &
NumMZAverageMinHumSetPtMgrs + NumMZAverageMaxHumSetPtMgrs + NumMZMinHumSetPtMgrs
IF (.not. NodeListError) THEN
ALLOCATE(AllSetPtMgr(AllSetPtMgrNum)%CtrlNodes(NumNodesCtrld))
AllSetPtMgr(AllsetPtMgrNum)%CtrlNodes = MZMaxHumSetPtMgr(SetPtMgrNum)%CtrlNodes
END IF
AllSetPtMgr(AllsetPtMgrNum)%Name = MZMaxHumSetPtMgr(SetPtMgrNum)%Name
AllSetPtMgr(AllsetPtMgrNum)%SPMType = iSPMType_MZMaxHum
AllSetPtMgr(AllsetPtMgrNum)%CtrlTypeMode = MZMaxHumSetPtMgr(SetPtMgrNum)%CtrlTypeMode
AllSetPtMgr(AllsetPtMgrNum)%NumCtrlNodes = MZMaxHumSetPtMgr(SetPtMgrNum)%NumCtrlNodes
END DO
! Input the Follow Outdoor Air Temperature Setpoint Managers
IF (NumFollowOATempSetPtMgrs.GT.0) ALLOCATE(FollowOATempSetPtMgr(NumFollowOATempSetPtMgrs))
! Input the data for each Setpoint Manager
cCurrentModuleObject='SetpointManager:FollowOutdoorAirTemperature'
DO SetPtMgrNum = 1,NumFollowOATempSetPtMgrs
CALL GetObjectItem(cCurrentModuleObject,SetPtMgrNum,cAlphaArgs,NumAlphas,&
rNumericArgs,NumNums,IOStat,NumBlank=lNumericFieldBlanks,AlphaBlank=lAlphaFieldBlanks, &
AlphaFieldNames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
IsNotOK=.false.
IsBlank=.false.
CALL VerifyName(cAlphaArgs(1),FollowOATempSetPtMgr%Name,SetPtMgrNum-1,IsNotOK,IsBlank,TRIM(cCurrentModuleObject)//' Name')
IF (IsNotOK) THEN
ErrorsFound=.TRUE.
IF (IsBlank) cAlphaArgs(1)='xxxxx'
ENDIF
FollowOATempSetPtMgr(SetPtMgrNum)%Name = cAlphaArgs(1)
FollowOATempSetPtMgr(SetPtMgrNum)%CtrlVarType = cAlphaArgs(2)
IF (SameString(FollowOATempSetPtMgr(SetPtMgrNum)%CtrlVarType,'Temperature')) THEN
FollowOATempSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_Temp
ELSEIF (SameString(FollowOATempSetPtMgr(SetPtMgrNum)%CtrlVarType,'MaximumTemperature')) THEN
FollowOATempSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_MaxTemp
ELSEIF (SameString(FollowOATempSetPtMgr(SetPtMgrNum)%CtrlVarType,'MinimumTemperature')) THEN
FollowOATempSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_MinTemp
ELSE
! should not come here if idd type choice and key list is working
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", invalid field.')
Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(2))//'="'//TRIM(cAlphaArgs(2))//'".')
CALL ShowContinueError('..Valid values are "Temperature","MaximumTemperature" or "MinimumTemperature".')
ErrorsFound = .TRUE.
ENDIF
FollowOATempSetPtMgr(SetPtMgrNum)%RefTempType = cAlphaArgs(3)
IF (SameString(FollowOATempSetPtMgr(SetPtMgrNum)%RefTempType,'OutdoorAirWetBulb')) THEN
FollowOATempSetPtMgr(SetPtMgrNum)%RefTypeMode = iRefTempType_WetBulb
ELSEIF (SameString(FollowOATempSetPtMgr(SetPtMgrNum)%RefTempType,'OutdoorAirDryBulb')) THEN
FollowOATempSetPtMgr(SetPtMgrNum)%RefTypeMode = iRefTempType_DryBulb
ELSE
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", invalid field.')
Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(3))//'="'//TRIM(cAlphaArgs(3))//'".')
CALL ShowContinueError('..Valid values are "OutdoorAirWetBulb" or "OutdoorAirDryBulb".')
ErrorsFound = .TRUE.
ENDIF
FollowOATempSetPtMgr(SetPtMgrNum)%Offset = rNumericArgs(1)
FollowOATempSetPtMgr(SetPtMgrNum)%MaxSetTemp = rNumericArgs(2)
FollowOATempSetPtMgr(SetPtMgrNum)%MinSetTemp = rNumericArgs(3)
IF (FollowOATempSetPtMgr(SetPtMgrNum)%MaxSetTemp < FollowOATempSetPtMgr(SetPtMgrNum)%MinSetTemp) THEN
CALL ShowWarningError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))//'",')
CALL ShowContinueError('...'//trim(cNumericFieldNames(2))// &
'=['//trim(RoundSigDigits(FollowOATempSetPtMgr(SetPtMgrNum)%MaxSetTemp,1))//'] is less than '// &
trim(cNumericFieldNames(3))// &
'=['//trim(RoundSigDigits(FollowOATempSetPtMgr(SetPtMgrNum)%MinSetTemp,1))//'].')
ENDIF
NodeListError=.false.
CALL GetNodeNums(cAlphaArgs(4),NumNodes,NodeNums,NodeListError, & ! setpoint nodes
NodeType_Unknown,TRIM(cCurrentModuleObject),cAlphaArgs(1),NodeConnectionType_Setpoint,1,ObjectIsNotParent, &
InputFieldName=cAlphaFieldNames(4))
IF (.NOT. NodeListError) THEN
NumNodesCtrld = NumNodes
ALLOCATE(FollowOATempSetPtMgr(SetPtMgrNum)%CtrlNodes(NumNodesCtrld))
FollowOATempSetPtMgr(SetPtMgrNum)%NumCtrlNodes = NumNodesCtrld
FollowOATempSetPtMgr(SetPtMgrNum)%SetPt = 0.0d0
DO CtrldNodeNum = 1,NumNodesCtrld
FollowOATempSetPtMgr(SetPtMgrNum)%CtrlNodes(CtrldNodeNum) = NodeNums(CtrldNodeNum)
END DO
ELSE
! CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
! '", invalid field.')
! Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(4))//'="'//TRIM(cAlphaArgs(4))//'".')
ErrorsFound=.TRUE.
ENDIF
AllSetPtMgrNum = SetPtMgrNum + NumSchSetPtMgrs + NumDualSchSetPtMgrs + NumOutAirSetPtMgrs + NumSZRhSetPtMgrs + &
NumSZHtSetPtMgrs + NumSZClSetPtMgrs + NumSZMinHumSetPtMgrs + NumSZMaxHumSetPtMgrs + &
NumMixedAirSetPtMgrs + NumOAPretreatSetPtMgrs + NumWarmestSetPtMgrs + NumColdestSetPtMgrs + &
NumWarmestSetPtMgrsTempFlow + NumRABFlowSetPtMgrs + NumMZClgAverageSetPtMGrs + NumMZHtgAverageSetPtMGrs + &
NumMZAverageMinHumSetPtMgrs + NumMZAverageMaxHumSetPtMgrs + NumMZMinHumSetPtMgrs + NumMZMaxHumSetPtMgrs
IF (.not. NodeListError) THEN
ALLOCATE(AllSetPtMgr(AllSetPtMgrNum)%CtrlNodes(NumNodesCtrld))
AllSetPtMgr(AllsetPtMgrNum)%CtrlNodes = FollowOATempSetPtMgr(SetPtMgrNum)%CtrlNodes
END IF
AllSetPtMgr(AllsetPtMgrNum)%Name = FollowOATempSetPtMgr(SetPtMgrNum)%Name
AllSetPtMgr(AllsetPtMgrNum)%SPMType = iSPMType_FollowOATemp
AllSetPtMgr(AllsetPtMgrNum)%CtrlTypeMode = FollowOATempSetPtMgr(SetPtMgrNum)%CtrlTypeMode
AllSetPtMgr(AllsetPtMgrNum)%NumCtrlNodes = FollowOATempSetPtMgr(SetPtMgrNum)%NumCtrlNodes
END DO
! Input the Follow System Node Temperature Setpoint Managers
IF (NumFollowSysNodeTempSetPtMgrs.GT.0) ALLOCATE(FollowSysNodeTempSetPtMgr(NumFollowSysNodeTempSetPtMgrs))
! Input the data for each Setpoint Manager
cCurrentModuleObject='SetpointManager:FollowSystemNodeTemperature'
DO SetPtMgrNum = 1,NumFollowSysNodeTempSetPtMgrs
CALL GetObjectItem(cCurrentModuleObject,SetPtMgrNum,cAlphaArgs,NumAlphas,&
rNumericArgs,NumNums,IOStat,NumBlank=lNumericFieldBlanks,AlphaBlank=lAlphaFieldBlanks, &
AlphaFieldNames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
IsNotOK=.false.
IsBlank=.false.
CALL VerifyName(cAlphaArgs(1),FollowSysNodeTempSetPtMgr%Name,SetPtMgrNum-1,IsNotOK,IsBlank,TRIM(cCurrentModuleObject)//' Name')
IF (IsNotOK) THEN
ErrorsFound=.TRUE.
IF (IsBlank) cAlphaArgs(1)='xxxxx'
ENDIF
FollowSysNodeTempSetPtMgr(SetPtMgrNum)%Name = cAlphaArgs(1)
FollowSysNodeTempSetPtMgr(SetPtMgrNum)%CtrlVarType = cAlphaArgs(2)
IF (SameString(FollowSysNodeTempSetPtMgr(SetPtMgrNum)%CtrlVarType,'Temperature')) THEN
FollowSysNodeTempSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_Temp
ELSEIF (SameString(FollowSysNodeTempSetPtMgr(SetPtMgrNum)%CtrlVarType,'MaximumTemperature')) THEN
FollowSysNodeTempSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_MaxTemp
ELSEIF (SameString(FollowSysNodeTempSetPtMgr(SetPtMgrNum)%CtrlVarType,'MinimumTemperature')) THEN
FollowSysNodeTempSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_MinTemp
ELSE
! should not come here if idd type choice and key list is working
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", invalid field.')
Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(2))//'="'//TRIM(cAlphaArgs(2))//'".')
CALL ShowContinueError('..Valid values are "Temperature","MaximumTemperature" or "MinimumTemperature".')
ErrorsFound = .TRUE.
ENDIF
FollowSysNodeTempSetPtMgr(SetPtMgrNum)%RefNodeNum = &
GetOnlySingleNode(cAlphaArgs(3),ErrorsFound,TRIM(cCurrentModuleObject),cAlphaArgs(1), &
NodeType_Unknown,NodeConnectionType_Sensor, 1, ObjectIsNotParent)
FollowSysNodeTempSetPtMgr(SetPtMgrNum)%RefTempType = cAlphaArgs(4)
IF (SameString(FollowSysNodeTempSetPtMgr(SetPtMgrNum)%RefTempType,'NodeWetBulb')) THEN
FollowSysNodeTempSetPtMgr(SetPtMgrNum)%RefTypeMode = iRefTempType_WetBulb
ELSEIF (SameString(FollowSysNodeTempSetPtMgr(SetPtMgrNum)%RefTempType,'NodeDryBulb')) THEN
FollowSysNodeTempSetPtMgr(SetPtMgrNum)%RefTypeMode = iRefTempType_DryBulb
ELSE
! should not come here if idd type choice and key list is working
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", invalid field.')
Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(3))//'="'//TRIM(cAlphaArgs(3))//'".')
CALL ShowContinueError('..Valid values are "NodeWetBulb" or "NodeDryBulb".')
ErrorsFound = .TRUE.
ENDIF
FollowSysNodeTempSetPtMgr(SetPtMgrNum)%Offset = rNumericArgs(1)
FollowSysNodeTempSetPtMgr(SetPtMgrNum)%MaxSetTemp = rNumericArgs(2)
FollowSysNodeTempSetPtMgr(SetPtMgrNum)%MinSetTemp = rNumericArgs(3)
IF (FollowSysNodeTempSetPtMgr(SetPtMgrNum)%MaxSetTemp < FollowSysNodeTempSetPtMgr(SetPtMgrNum)%MinSetTemp) THEN
CALL ShowWarningError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))//'",')
CALL ShowContinueError('...'//trim(cNumericFieldNames(2))// &
'=['//trim(RoundSigDigits(FollowSysNodeTempSetPtMgr(SetPtMgrNum)%MaxSetTemp,1))//'] is less than '// &
trim(cNumericFieldNames(3))// &
'=['//trim(RoundSigDigits(FollowSysNodeTempSetPtMgr(SetPtMgrNum)%MinSetTemp,1))//'].')
ENDIF
NodeListError=.false.
CALL GetNodeNums(cAlphaArgs(5),NumNodes,NodeNums,NodeListError, & ! setpoint nodes
NodeType_Unknown,TRIM(cCurrentModuleObject),cAlphaArgs(1),NodeConnectionType_Setpoint,1,ObjectIsNotParent, &
InputFieldName=cAlphaFieldNames(5))
IF (.NOT. NodeListError) THEN
NumNodesCtrld = NumNodes
ALLOCATE(FollowSysNodeTempSetPtMgr(SetPtMgrNum)%CtrlNodes(NumNodesCtrld))
FollowSysNodeTempSetPtMgr(SetPtMgrNum)%NumCtrlNodes = NumNodesCtrld
FollowSysNodeTempSetPtMgr(SetPtMgrNum)%SetPt = 0.0d0
DO CtrldNodeNum = 1,NumNodesCtrld
FollowSysNodeTempSetPtMgr(SetPtMgrNum)%CtrlNodes(CtrldNodeNum) = NodeNums(CtrldNodeNum)
END DO
ELSE
! CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
! '", invalid field.')
! Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(4))//'="'//TRIM(cAlphaArgs(4))//'".')
ErrorsFound=.TRUE.
ENDIF
AllSetPtMgrNum = SetPtMgrNum + NumSchSetPtMgrs + NumDualSchSetPtMgrs + NumOutAirSetPtMgrs + NumSZRhSetPtMgrs + &
NumSZHtSetPtMgrs + NumSZClSetPtMgrs + NumSZMinHumSetPtMgrs + NumSZMaxHumSetPtMgrs + &
NumMixedAirSetPtMgrs + NumOAPretreatSetPtMgrs + NumWarmestSetPtMgrs + NumColdestSetPtMgrs + &
NumWarmestSetPtMgrsTempFlow + NumRABFlowSetPtMgrs + NumMZClgAverageSetPtMGrs + NumMZHtgAverageSetPtMGrs + &
NumMZAverageMinHumSetPtMgrs + NumMZAverageMaxHumSetPtMgrs + NumMZMinHumSetPtMgrs + NumMZMaxHumSetPtMgrs + &
NumFollowOATempSetPtMgrs
IF (.not. NodeListError) THEN
ALLOCATE(AllSetPtMgr(AllSetPtMgrNum)%CtrlNodes(NumNodesCtrld))
AllSetPtMgr(AllsetPtMgrNum)%CtrlNodes = FollowSysNodeTempSetPtMgr(SetPtMgrNum)%CtrlNodes
END IF
AllSetPtMgr(AllsetPtMgrNum)%Name = FollowSysNodeTempSetPtMgr(SetPtMgrNum)%Name
AllSetPtMgr(AllsetPtMgrNum)%SPMType = iSPMType_FollowSysNodeTemp
AllSetPtMgr(AllsetPtMgrNum)%CtrlTypeMode = FollowSysNodeTempSetPtMgr(SetPtMgrNum)%CtrlTypeMode
AllSetPtMgr(AllsetPtMgrNum)%NumCtrlNodes = FollowSysNodeTempSetPtMgr(SetPtMgrNum)%NumCtrlNodes
END DO
! Input the Ground Temperature Setpoint Managers
IF (NumGroundTempSetPtMgrs.GT.0) ALLOCATE(GroundTempSetPtMgr(NumGroundTempSetPtMgrs))
! Input the data for each Setpoint Manager
cCurrentModuleObject='SetpointManager:FollowGroundTemperature'
DO SetPtMgrNum = 1,NumGroundTempSetPtMgrs
CALL GetObjectItem(cCurrentModuleObject,SetPtMgrNum,cAlphaArgs,NumAlphas,&
rNumericArgs,NumNums,IOStat,NumBlank=lNumericFieldBlanks,AlphaBlank=lAlphaFieldBlanks, &
AlphaFieldNames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
IsNotOK=.false.
IsBlank=.false.
CALL VerifyName(cAlphaArgs(1),GroundTempSetPtMgr%Name,SetPtMgrNum-1,IsNotOK,IsBlank,TRIM(cCurrentModuleObject)//' Name')
IF (IsNotOK) THEN
ErrorsFound=.TRUE.
IF (IsBlank) cAlphaArgs(1)='xxxxx'
ENDIF
GroundTempSetPtMgr(SetPtMgrNum)%Name = cAlphaArgs(1)
GroundTempSetPtMgr(SetPtMgrNum)%CtrlVarType = cAlphaArgs(2)
IF (SameString(GroundTempSetPtMgr(SetPtMgrNum)%CtrlVarType,'Temperature')) THEN
GroundTempSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_Temp
ELSEIF (SameString(GroundTempSetPtMgr(SetPtMgrNum)%CtrlVarType,'MaximumTemperature')) THEN
GroundTempSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_MaxTemp
ELSEIF (SameString(GroundTempSetPtMgr(SetPtMgrNum)%CtrlVarType,'MinimumTemperature')) THEN
GroundTempSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_MinTemp
ELSE
! should not come here if idd type choice and key list is working
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", invalid field.')
Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(2))//'="'//TRIM(cAlphaArgs(2))//'".')
CALL ShowContinueError('..Valid values are "Temperature","MaximumTemperature" or "MinimumTemperature".')
ErrorsFound = .TRUE.
ENDIF
GroundTempSetPtMgr(SetPtMgrNum)%RefGroundTempObjType = cAlphaArgs(3)
IF (SameString(GroundTempSetPtMgr(SetPtMgrNum)%RefGroundTempObjType,'Site:GroundTemperature:BuildingSurface')) THEN
GroundTempSetPtMgr(SetPtMgrNum)%RefTypeMode = iRefGroundTempObjType_BuildingSurface
IF (NoSurfaceGroundTempObjWarning) THEN
IF (.not. GroundTempObjInput) THEN
CALL ShowWarningError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))//'" requires '// &
'"Site:GroundTemperature:BuildingSurface" in the input.')
CALL ShowContinueError('Defaults, constant throughout the year of ('//TRIM(RoundSigDigits(GroundTemp,1))// &
') will be used.')
ENDIF
NoSurfaceGroundTempObjWarning=.false.
ENDIF
ELSEIF (SameString(GroundTempSetPtMgr(SetPtMgrNum)%RefGroundTempObjType,'Site:GroundTemperature:Shallow')) THEN
GroundTempSetPtMgr(SetPtMgrNum)%RefTypeMode = iRefGroundTempObjType_Shallow
IF (NoShallowGroundTempObjWarning) THEN
IF (.not. GroundTemp_SurfaceObjInput) THEN
CALL ShowWarningError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))//'" requires '// &
'"Site:GroundTemperature:Shallow" in the input.')
CALL ShowContinueError('Defaults, constant throughout the year of ('//TRIM(RoundSigDigits(GroundTemp_Surface,1))// &
') will be used.')
ENDIF
NoShallowGroundTempObjWarning=.false.
ENDIF
ELSEIF (SameString(GroundTempSetPtMgr(SetPtMgrNum)%RefGroundTempObjType,'Site:GroundTemperature:Deep')) THEN
GroundTempSetPtMgr(SetPtMgrNum)%RefTypeMode = iRefGroundTempObjType_Deep
IF (NoDeepGroundTempObjWarning) THEN
IF (.not. GroundTemp_DeepObjInput) THEN
CALL ShowWarningError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))//'" requires '// &
'"Site:GroundTemperature:Deep" in the input.')
CALL ShowContinueError('Defaults, constant throughout the year of ('//TRIM(RoundSigDigits(GroundTemp_Deep,1))// &
') will be used.')
ENDIF
NoDeepGroundTempObjWarning=.false.
ENDIF
ELSEIF (SameString(GroundTempSetPtMgr(SetPtMgrNum)%RefGroundTempObjType,'Site:GroundTemperature:FCfactorMethod')) THEN
GroundTempSetPtMgr(SetPtMgrNum)%RefTypeMode = iRefGroundTempObjType_FCfactorMethod
IF (NoFCGroundTempObjWarning) THEN
IF (.not. FCGroundTemps) THEN
CALL ShowWarningError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))//'" requires '// &
'"Site:GroundTemperature:FCfactorMethod" in the input.')
CALL ShowContinueError('Defaults, constant throughout the year of ('//TRIM(RoundSigDigits(GroundTempFC,1))// &
') will be used.')
ENDIF
NoFCGroundTempObjWarning=.false.
ENDIF
ELSE
! should not come here if idd type choice and key list is working
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", invalid field.')
Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(3))//'="'//TRIM(cAlphaArgs(3))//'".')
CALL ShowContinueError('..Valid values are "Site:GroundTemperature:BuildingSurface", "Site:GroundTemperature:Shallow",')
CALL ShowContinueError(' "Site:GroundTemperature:Deep" or "Site:GroundTemperature:FCfactorMethod".')
ErrorsFound = .TRUE.
ENDIF
GroundTempSetPtMgr(SetPtMgrNum)%Offset = rNumericArgs(1)
GroundTempSetPtMgr(SetPtMgrNum)%MaxSetTemp = rNumericArgs(2)
GroundTempSetPtMgr(SetPtMgrNum)%MinSetTemp = rNumericArgs(3)
IF (GroundTempSetPtMgr(SetPtMgrNum)%MaxSetTemp < GroundTempSetPtMgr(SetPtMgrNum)%MinSetTemp) THEN
CALL ShowWarningError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))//'",')
CALL ShowContinueError('...'//trim(cNumericFieldNames(2))// &
'=['//trim(RoundSigDigits(GroundTempSetPtMgr(SetPtMgrNum)%MaxSetTemp,1))//'] is less than '// &
trim(cNumericFieldNames(3))// &
'=['//trim(RoundSigDigits(GroundTempSetPtMgr(SetPtMgrNum)%MinSetTemp,1))//'].')
ENDIF
NodeListError=.false.
CALL GetNodeNums(cAlphaArgs(4),NumNodes,NodeNums,NodeListError, & ! setpoint nodes
NodeType_Unknown,TRIM(cCurrentModuleObject),cAlphaArgs(1),NodeConnectionType_Setpoint,1,ObjectIsNotParent, &
InputFieldName=cAlphaFieldNames(4))
IF (.NOT. NodeListError) THEN
NumNodesCtrld = NumNodes
ALLOCATE(GroundTempSetPtMgr(SetPtMgrNum)%CtrlNodes(NumNodesCtrld))
GroundTempSetPtMgr(SetPtMgrNum)%NumCtrlNodes = NumNodesCtrld
GroundTempSetPtMgr(SetPtMgrNum)%SetPt = 0.0d0
DO CtrldNodeNum = 1,NumNodesCtrld
GroundTempSetPtMgr(SetPtMgrNum)%CtrlNodes(CtrldNodeNum) = NodeNums(CtrldNodeNum)
END DO
ELSE
! CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
! '", invalid field.')
! Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(4))//'="'//TRIM(cAlphaArgs(4))//'".')
ErrorsFound=.TRUE.
ENDIF
AllSetPtMgrNum = SetPtMgrNum + NumSchSetPtMgrs + NumDualSchSetPtMgrs + NumOutAirSetPtMgrs + NumSZRhSetPtMgrs + &
NumSZHtSetPtMgrs + NumSZClSetPtMgrs + NumSZMinHumSetPtMgrs + NumSZMaxHumSetPtMgrs + &
NumMixedAirSetPtMgrs + NumOAPretreatSetPtMgrs + NumWarmestSetPtMgrs + NumColdestSetPtMgrs + &
NumWarmestSetPtMgrsTempFlow + NumRABFlowSetPtMgrs + NumMZClgAverageSetPtMGrs + NumMZHtgAverageSetPtMGrs + &
NumMZAverageMinHumSetPtMgrs + NumMZAverageMaxHumSetPtMgrs + NumMZMinHumSetPtMgrs + NumMZMaxHumSetPtMgrs + &
NumFollowOATempSetPtMgrs + NumFollowSysNodeTempSetPtMgrs
IF (.not. NodeListError) THEN
ALLOCATE(AllSetPtMgr(AllSetPtMgrNum)%CtrlNodes(NumNodesCtrld))
AllSetPtMgr(AllsetPtMgrNum)%CtrlNodes = GroundTempSetPtMgr(SetPtMgrNum)%CtrlNodes
END IF
AllSetPtMgr(AllsetPtMgrNum)%Name = GroundTempSetPtMgr(SetPtMgrNum)%Name
AllSetPtMgr(AllsetPtMgrNum)%SPMType = iSPMType_GroundTemp
AllSetPtMgr(AllsetPtMgrNum)%CtrlTypeMode = GroundTempSetPtMgr(SetPtMgrNum)%CtrlTypeMode
AllSetPtMgr(AllsetPtMgrNum)%NumCtrlNodes = GroundTempSetPtMgr(SetPtMgrNum)%NumCtrlNodes
END DO
IF (ErrorsFound) THEN
CALL ShowFatalError(RoutineName//'Errors found in input. Program terminates.')
ENDIF
DO SetPtMgrNum = 1,NumWarmestSetPtMgrsTempFlow
CALL SetupOutputVariable('Setpoint Manager Warmest Temperature Critical Zone Number []', &
WarmestSetPtMgrTempFlow(SetPtMgrNum)%CritZoneNum,'System',&
'Average',WarmestSetPtMgrTempFlow(SetPtMgrNum)%Name)
CALL SetupOutputVariable('Setpoint Manager Warmest Temperature Turndown Flow Fraction []', &
WarmestSetPtMgrTempFlow(SetPtMgrNum)%Turndown,'System',&
'Average',WarmestSetPtMgrTempFlow(SetPtMgrNum)%Name)
END DO
! Input the Condenser Entering Set Point Managers
IF (NumCondEntSetPtMgrs.GT.0) ALLOCATE(CondEntSetPtMgr(NumCondEntSetPtMgrs)) ! Allocate the Set Point Manager input data array
! Input the data for each Set Point Manager
cCurrentModuleObject='SetpointManager:CondenserEnteringReset'
DO SetPtMgrNum = 1,NumCondEntSetPtMgrs
CALL GetObjectItem(cCurrentModuleObject,SetPtMgrNum,cAlphaArgs,NumAlphas,&
rNumericArgs,NumNums,IOStat,NumBlank=lNumericFieldBlanks,AlphaBlank=lAlphaFieldBlanks, &
AlphaFieldNames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
IsNotOK=.false.
IsBlank=.false.
CALL VerifyName(cAlphaArgs(1),CondEntSetPtMgr%Name,SetPtMgrNum-1,IsNotOK,IsBlank,TRIM(cCurrentModuleObject)//' Name')
IF (IsNotOK) THEN
ErrorsFound=.TRUE.
IF (IsBlank) cAlphaArgs(1)='xxxxx'
ENDIF
CondEntSetPtMgr(SetPtMgrNum)%Name = cAlphaArgs(1)
CondEntSetPtMgr(SetPtMgrNum)%CtrlVarType = cAlphaArgs(2)
IF (SameString(CondEntSetPtMgr(SetPtMgrNum)%CtrlVarType,'Temperature')) THEN
CondEntSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_Temp
ELSE
! should not come here if idd type choice and key list is working
CALL ShowSevereError(' found invalid control type of '//TRIM(cAlphaArgs(2)) &
//' in '//TRIM(cCurrentModuleObject)//' = '//TRIM(cAlphaArgs(1)) )
ErrorsFound = .TRUE.
ENDIF
CondEntSetPtMgr(SetPtMgrNum)%CondEntTempSched = cAlphaArgs(3)
CondEntSetPtMgr(SetPtMgrNum)%CondEntTempSchedPtr = GetScheduleIndex(cAlphaArgs(3))
CondEntSetPtMgr(SetPtMgrNum)%MinTwrWbCurve = GetCurveIndex(cAlphaArgs(4))
CondEntSetPtMgr(SetPtMgrNum)%MinOaWbCurve = GetCurveIndex(cAlphaArgs(5))
CondEntSetPtMgr(SetPtMgrNum)%OptCondEntCurve = GetCurveIndex(cAlphaArgs(6))
CondEntSetPtMgr(SetPtMgrNum)%MinimumLiftTD = rNumericArgs(1)
CondEntSetPtMgr(SetPtMgrNum)%MaxCondEntTemp = rNumericArgs(2)
CondEntSetPtMgr(SetPtMgrNum)%TowerDsnInletAirWetBulb = rNumericArgs(3)
CondEntSetPtMgr(SetPtMgrNum)%CtrlNodeListName = cAlphaArgs(7)
IF (CondEntSetPtMgr(SetPtMgrNum)%MaxCondEntTemp < CondEntSetPtMgr(SetPtMgrNum)%TowerDsnInletAirWetBulb) THEN
CALL ShowWarningError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))//'",')
CALL ShowContinueError('...'//trim(cNumericFieldNames(2))// &
'=['//trim(RoundSigDigits(CondEntSetPtMgr(SetPtMgrNum)%MaxCondEntTemp,1))//'] is less than '// &
trim(cNumericFieldNames(1))// &
'=['//trim(RoundSigDigits(CondEntSetPtMgr(SetPtMgrNum)%TowerDsnInletAirWetBulb,1))//'].')
ENDIF
NodeListError=.false.
CALL GetNodeNums(CondEntSetPtMgr(SetPtMgrNum)%CtrlNodeListName,NumNodes,NodeNums,NodeListError, &
NodeType_Unknown,TRIM(cCurrentModuleObject),cAlphaArgs(1),NodeConnectionType_Setpoint,1,ObjectIsNotParent, &
InputFieldName=cAlphaFieldNames(7))
IF (.not. NodeListError) THEN
NumNodesCtrld = NumNodes
ALLOCATE(CondEntSetPtMgr(SetPtMgrNum)%CtrlNodes(NumNodesCtrld))
CondEntSetPtMgr(SetPtMgrNum)%NumCtrlNodes = NumNodesCtrld
CondEntSetPtMgr(SetPtMgrNum)%SetPt = 0.0d0
DO CtrldNodeNum = 1,NumNodesCtrld
CondEntSetPtMgr(SetPtMgrNum)%CtrlNodes(CtrldNodeNum) = NodeNums(CtrldNodeNum)
END DO
ELSE
! CALL ShowContinueError('Invalid '//trim(cAlphaFieldNames(3))//' in '//TRIM(cCurrentModuleObject)//' = '// &
! TRIM(CondEntSetPtMgr(SetPtMgrNum)%Name))
ErrorsFound=.TRUE.
ENDIF
AllSetPtMgrNum = SetPtMgrNum + NumSchSetPtMgrs + NumDualSchSetPtMgrs + NumOutAirSetPtMgrs + NumSZRhSetPtMgrs + &
NumSZHtSetPtMgrs + NumSZClSetPtMgrs + NumSZMinHumSetPtMgrs + NumSZMaxHumSetPtMgrs + &
NumMixedAirSetPtMgrs + NumOAPretreatSetPtMgrs + NumWarmestSetPtMgrs + NumColdestSetPtMgrs + &
NumWarmestSetPtMgrsTempFlow + NumRABFlowSetPtMgrs + NumMZClgAverageSetPtMGrs + NumMZHtgAverageSetPtMGrs + &
NumMZAverageMinHumSetPtMgrs + NumMZAverageMaxHumSetPtMgrs + NumMZMinHumSetPtMgrs + NumMZMaxHumSetPtMgrs + &
NumFollowOATempSetPtMgrs + NumFollowSysNodeTempSetPtMgrs + NumGroundTempSetPtMgrs
IF (.not. NodeListError) THEN
ALLOCATE(AllSetPtMgr(AllSetPtMgrNum)%CtrlNodes(NumNodesCtrld))
AllSetPtMgr(AllsetPtMgrNum)%CtrlNodes = CondEntSetPtMgr(SetPtMgrNum)%CtrlNodes
END IF
AllSetPtMgr(AllsetPtMgrNum)%Name = CondEntSetPtMgr(SetPtMgrNum)%Name
AllSetPtMgr(AllsetPtMgrNum)%SPMType = iSPMType_CondEntReset
AllSetPtMgr(AllsetPtMgrNum)%CtrlTypeMode = CondEntSetPtMgr(SetPtMgrNum)%CtrlTypeMode
AllSetPtMgr(AllsetPtMgrNum)%NumCtrlNodes = CondEntSetPtMgr(SetPtMgrNum)%NumCtrlNodes
END DO
! Input the Ideal Condenser Entering Set Point Managers
! Allocate the Set Point Manager input data array
IF (NumIdealCondEntSetPtMgrs.GT.0) ALLOCATE(IdealCondEntSetPtMgr(NumIdealCondEntSetPtMgrs))
! Input the data for each Set Point Manager
cCurrentModuleObject='SetpointManager:CondenserEnteringReset:Ideal'
DO SetPtMgrNum = 1,NumIdealCondEntSetPtMgrs
CALL GetObjectItem(cCurrentModuleObject,SetPtMgrNum,cAlphaArgs,NumAlphas,&
rNumericArgs,NumNums,IOStat,NumBlank=lNumericFieldBlanks,AlphaBlank=lAlphaFieldBlanks, &
AlphaFieldNames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
IsNotOK=.false.
IsBlank=.false.
CALL VerifyName(cAlphaArgs(1),IdealCondEntSetPtMgr%Name,SetPtMgrNum-1,IsNotOK,IsBlank,TRIM(cCurrentModuleObject)//' Name')
IF (IsNotOK) THEN
ErrorsFound=.TRUE.
IF (IsBlank) cAlphaArgs(1)='xxxxx'
ENDIF
IdealCondEntSetPtMgr(SetPtMgrNum)%Name = cAlphaArgs(1)
IdealCondEntSetPtMgr(SetPtMgrNum)%CtrlVarType = cAlphaArgs(2)
IF (SameString(IdealCondEntSetPtMgr(SetPtMgrNum)%CtrlVarType,'Temperature')) THEN
IdealCondEntSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_Temp
ELSE
CALL ShowSevereError(' found invalid control type of '//TRIM(cAlphaArgs(2)) &
//' in '//TRIM(cCurrentModuleObject)//' = '//TRIM(cAlphaArgs(1)) )
ErrorsFound = .TRUE.
ENDIF
IdealCondEntSetPtMgr(SetPtMgrNum)%MinimumLiftTD = rNumericArgs(1)
IdealCondEntSetPtMgr(SetPtMgrNum)%MaxCondEntTemp = rNumericArgs(2)
IdealCondEntSetPtMgr(SetPtMgrNum)%CtrlNodeListName = cAlphaArgs(3)
NodeListError=.false.
CALL GetNodeNums(IdealCondEntSetPtMgr(SetPtMgrNum)%CtrlNodeListName,NumNodes,NodeNums,NodeListError, &
NodeType_Unknown,TRIM(cCurrentModuleObject),cAlphaArgs(1),NodeConnectionType_Setpoint,1,ObjectIsNotParent, &
InputFieldName=cAlphaFieldNames(3))
IF (.not. NodeListError) THEN
NumNodesCtrld = NumNodes
ALLOCATE(IdealCondEntSetPtMgr(SetPtMgrNum)%CtrlNodes(NumNodesCtrld))
IdealCondEntSetPtMgr(SetPtMgrNum)%NumCtrlNodes = NumNodesCtrld
IdealCondEntSetPtMgr(SetPtMgrNum)%SetPt = 0.0d0
DO CtrldNodeNum = 1,NumNodesCtrld
IdealCondEntSetPtMgr(SetPtMgrNum)%CtrlNodes(CtrldNodeNum) = NodeNums(CtrldNodeNum)
END DO
ELSE
! CALL ShowContinueError('Invalid '//trim(cAlphaFieldNames(3))//' in '//TRIM(cCurrentModuleObject)//' = '// &
! TRIM(IdealCondEntSetPtMgr(SetPtMgrNum)%Name))
ErrorsFound=.TRUE.
ENDIF
AllSetPtMgrNum = SetPtMgrNum + NumSchSetPtMgrs + NumDualSchSetPtMgrs + NumOutAirSetPtMgrs + NumSZRhSetPtMgrs + &
NumSZHtSetPtMgrs + NumSZClSetPtMgrs + NumSZMinHumSetPtMgrs + NumSZMaxHumSetPtMgrs + &
NumMixedAirSetPtMgrs + NumOAPretreatSetPtMgrs + NumWarmestSetPtMgrs + NumColdestSetPtMgrs + &
NumWarmestSetPtMgrsTempFlow + NumRABFlowSetPtMgrs + NumMZClgAverageSetPtMGrs + NumMZHtgAverageSetPtMGrs + &
NumMZAverageMinHumSetPtMgrs + NumMZAverageMaxHumSetPtMgrs + NumMZMinHumSetPtMgrs + NumMZMaxHumSetPtMgrs + &
NumFollowOATempSetPtMgrs + NumFollowSysNodeTempSetPtMgrs + NumGroundTempSetPtMgrs + NumCondEntSetPtMgrs
IF (.not. NodeListError) THEN
ALLOCATE(AllSetPtMgr(AllSetPtMgrNum)%CtrlNodes(NumNodesCtrld))
AllSetPtMgr(AllsetPtMgrNum)%CtrlNodes = IdealCondEntSetPtMgr(SetPtMgrNum)%CtrlNodes
END IF
AllSetPtMgr(AllsetPtMgrNum)%Name = IdealCondEntSetPtMgr(SetPtMgrNum)%Name
AllSetPtMgr(AllsetPtMgrNum)%SPMType = iSPMType_IdealCondEntReset
AllSetPtMgr(AllsetPtMgrNum)%CtrlTypeMode = IdealCondEntSetPtMgr(SetPtMgrNum)%CtrlTypeMode
AllSetPtMgr(AllsetPtMgrNum)%NumCtrlNodes = IdealCondEntSetPtMgr(SetPtMgrNum)%NumCtrlNodes
END DO
IF (NumSZOneStageCoolingSetPtMgrs > 0) ALLOCATE ( SZOneStageCoolingSetPtMgr(NumSZOneStageCoolingSetPtMgrs))
cCurrentModuleObject='SetpointManager:SingleZone:OneStageCooling'
DO SetPtMgrNum = 1,NumSZOneStageCoolingSetPtMgrs
CALL GetObjectItem(cCurrentModuleObject,SetPtMgrNum,cAlphaArgs,NumAlphas,&
rNumericArgs,NumNums,IOStat,NumBlank=lNumericFieldBlanks,AlphaBlank=lAlphaFieldBlanks, &
AlphaFieldNames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
IsNotOK=.false.
IsBlank=.false.
CALL VerifyName(cAlphaArgs(1),SZOneStageCoolingSetPtMgr%Name,SetPtMgrNum-1,IsNotOK,IsBlank,TRIM(cCurrentModuleObject)//' Name')
IF (IsNotOK) THEN
ErrorsFound=.TRUE.
IF (IsBlank) cAlphaArgs(1)='xxxxx'
ENDIF
SZOneStageCoolingSetPtMgr(SetPtMgrNum)%Name = cAlphaArgs(1)
SZOneStageCoolingSetPtMgr(SetPtMgrNum)%CtrlVarType = 'Temperature'
SZOneStageCoolingSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_Temp
SZOneStageCoolingSetPtMgr(SetPtMgrNum)%CoolingOnTemp = rNumericArgs(1)
SZOneStageCoolingSetPtMgr(SetPtMgrNum)%CoolingOffTemp = rNumericArgs(2)
IF (SZOneStageCoolingSetPtMgr(SetPtMgrNum)%CoolingOffTemp < SZOneStageCoolingSetPtMgr(SetPtMgrNum)%CoolingOnTemp ) THEN
! throw warning, off must be warmer than on
CALL ShowWarningError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))//'",')
CALL ShowContinueError('...'//trim(cNumericFieldNames(2))// &
'=['//trim(RoundSigDigits( SZOneStageCoolingSetPtMgr(SetPtMgrNum)%CoolingOffTemp,1))//'] is less than '// &
trim(cNumericFieldNames(1))// &
'=['//trim(RoundSigDigits(SZOneStageCoolingSetPtMgr(SetPtMgrNum)%CoolingOnTemp,1))//'].')
ENDIF
SZOneStageCoolingSetPtMgr(SetPtMgrNum)%ControlZoneName = cAlphaArgs(2)
SZOneStageCoolingSetPtMgr(SetPtMgrNum)%ZoneNodeNum = GetSystemNodeNumberForZone(cAlphaArgs(2))
! get the actual zone number of the control zone
SZOneStageCoolingSetPtMgr(SetPtMgrNum)%ControlZoneNum = FindItemInList(cAlphaArgs(2),Zone%Name,NumOfZones)
IF (SZOneStageCoolingSetPtMgr(SetPtMgrNum)%ControlZoneNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", invalid field.')
Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(2))//'="'//TRIM(cAlphaArgs(2))//'".')
ErrorsFound=.TRUE.
ELSE
If (ALLOCATED(StageZoneLogic)) THEN
If (.NOT. StageZoneLogic(SZOneStageCoolingSetPtMgr(SetPtMgrNum)%ControlZoneNum)) THEN
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", invalid field.')
CALL ShowContinueError('..invalid '//trim(cAlphaFieldNames(2))//'="'//TRIM(cAlphaArgs(2))//'".')
CALL ShowContinueError('Zone thermostat must use ZoneControl:Thermostat:StagedDualSetpoint.')
ErrorsFound=.TRUE.
ENDIF
ENDIF
ENDIF
NodeListError=.false.
CALL GetNodeNums(cAlphaArgs(3),NumNodes,NodeNums,NodeListError, & ! setpoint nodes
NodeType_Unknown,TRIM(cCurrentModuleObject),cAlphaArgs(1),NodeConnectionType_Setpoint,1,ObjectIsNotParent, &
InputFieldName=cAlphaFieldNames(3))
IF (.NOT. NodeListError) THEN
NumNodesCtrld = NumNodes
ALLOCATE(SZOneStageCoolingSetPtMgr(SetPtMgrNum)%CtrlNodes(NumNodesCtrld))
SZOneStageCoolingSetPtMgr(SetPtMgrNum)%NumCtrlNodes = NumNodesCtrld
SZOneStageCoolingSetPtMgr(SetPtMgrNum)%SetPt = 0.0d0
DO CtrldNodeNum = 1,NumNodesCtrld
SZOneStageCoolingSetPtMgr(SetPtMgrNum)%CtrlNodes(CtrldNodeNum) = NodeNums(CtrldNodeNum)
END DO
ELSE
ErrorsFound=.TRUE.
ENDIF
AllSetPtMgrNum = SetPtMgrNum + NumSchSetPtMgrs + NumDualSchSetPtMgrs + NumOutAirSetPtMgrs + NumSZRhSetPtMgrs + &
NumSZHtSetPtMgrs + NumSZClSetPtMgrs + NumSZMinHumSetPtMgrs + NumSZMaxHumSetPtMgrs + &
NumMixedAirSetPtMgrs + NumOAPretreatSetPtMgrs + NumWarmestSetPtMgrs + NumColdestSetPtMgrs + &
NumWarmestSetPtMgrsTempFlow + NumRABFlowSetPtMgrs + NumMZClgAverageSetPtMGrs + NumMZHtgAverageSetPtMGrs + &
NumMZAverageMinHumSetPtMgrs + NumMZAverageMaxHumSetPtMgrs + NumMZMinHumSetPtMgrs + NumMZMaxHumSetPtMgrs + &
NumFollowOATempSetPtMgrs + NumFollowSysNodeTempSetPtMgrs + NumGroundTempSetPtMgrs + NumCondEntSetPtMgrs + &
NumIdealCondEntSetPtMgrs
IF (.not. NodeListError) THEN
ALLOCATE(AllSetPtMgr(AllSetPtMgrNum)%CtrlNodes(NumNodesCtrld))
AllSetPtMgr(AllsetPtMgrNum)%CtrlNodes = SZOneStageCoolingSetPtMgr(SetPtMgrNum)%CtrlNodes
END IF
AllSetPtMgr(AllsetPtMgrNum)%Name = SZOneStageCoolingSetPtMgr(SetPtMgrNum)%Name
AllSetPtMgr(AllsetPtMgrNum)%SPMType = iSPMType_SZOneStageCooling
AllSetPtMgr(AllsetPtMgrNum)%CtrlTypeMode = SZOneStageCoolingSetPtMgr(SetPtMgrNum)%CtrlTypeMode
AllSetPtMgr(AllsetPtMgrNum)%NumCtrlNodes = SZOneStageCoolingSetPtMgr(SetPtMgrNum)%NumCtrlNodes
ENDDO
IF (NumSZOneStageHeatingSetPtMgrs > 0) ALLOCATE ( SZOneStageHeatingSetPtMgr(NumSZOneStageHeatingSetPtMgrs))
cCurrentModuleObject='SetpointManager:SingleZone:OneStageHeating'
DO SetPtMgrNum = 1,NumSZOneStageHeatingSetPtMgrs
CALL GetObjectItem(cCurrentModuleObject,SetPtMgrNum,cAlphaArgs,NumAlphas,&
rNumericArgs,NumNums,IOStat,NumBlank=lNumericFieldBlanks,AlphaBlank=lAlphaFieldBlanks, &
AlphaFieldNames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
IsNotOK=.false.
IsBlank=.false.
CALL VerifyName(cAlphaArgs(1),SZOneStageHeatingSetPtMgr%Name,SetPtMgrNum-1,IsNotOK,IsBlank,TRIM(cCurrentModuleObject)//' Name')
IF (IsNotOK) THEN
ErrorsFound=.TRUE.
IF (IsBlank) cAlphaArgs(1)='xxxxx'
ENDIF
SZOneStageHeatingSetPtMgr(SetPtMgrNum)%Name = cAlphaArgs(1)
SZOneStageHeatingSetPtMgr(SetPtMgrNum)%CtrlVarType = 'Temperature'
SZOneStageHeatingSetPtMgr(SetPtMgrNum)%CtrlTypeMode = iCtrlVarType_Temp
SZOneStageHeatingSetPtMgr(SetPtMgrNum)%HeatingOnTemp = rNumericArgs(1)
SZOneStageHeatingSetPtMgr(SetPtMgrNum)%HeatingOffTemp = rNumericArgs(2)
IF (SZOneStageHeatingSetPtMgr(SetPtMgrNum)%HeatingOffTemp > SZOneStageHeatingSetPtMgr(SetPtMgrNum)%HeatingOnTemp ) THEN
! throw warning, off must be cooler than on
CALL ShowWarningError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))//'",')
CALL ShowContinueError('...'//trim(cNumericFieldNames(2))// &
'=['//trim(RoundSigDigits( SZOneStageHeatingSetPtMgr(SetPtMgrNum)%HeatingOnTemp,1))//'] is less than '// &
trim(cNumericFieldNames(1))// &
'=['//trim(RoundSigDigits(SZOneStageHeatingSetPtMgr(SetPtMgrNum)%HeatingOffTemp,1))//'].')
ENDIF
SZOneStageHeatingSetPtMgr(SetPtMgrNum)%ControlZoneName = cAlphaArgs(2)
SZOneStageHeatingSetPtMgr(SetPtMgrNum)%ZoneNodeNum = GetSystemNodeNumberForZone(cAlphaArgs(2))
! get the actual zone number of the control zone
SZOneStageHeatingSetPtMgr(SetPtMgrNum)%ControlZoneNum = FindItemInList(cAlphaArgs(2),Zone%Name,NumOfZones)
IF (SZOneStageHeatingSetPtMgr(SetPtMgrNum)%ControlZoneNum == 0) THEN
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", invalid field.')
Call ShowContinueError('..invalid '//trim(cAlphaFieldNames(2))//'="'//TRIM(cAlphaArgs(2))//'".')
ErrorsFound=.TRUE.
ELSE
If (ALLOCATED(StageZoneLogic)) THEN
If (.NOT. StageZoneLogic(SZOneStageHeatingSetPtMgr(SetPtMgrNum)%ControlZoneNum)) THEN
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))// &
'", invalid field.')
CALL ShowContinueError('..invalid '//trim(cAlphaFieldNames(2))//'="'//TRIM(cAlphaArgs(2))//'".')
CALL ShowContinueError('Zone thermostat must use ZoneControl:Thermostat:StagedDualSetpoint.')
ErrorsFound=.TRUE.
ENDIF
ENDIF
ENDIF
NodeListError=.false.
CALL GetNodeNums(cAlphaArgs(3),NumNodes,NodeNums,NodeListError, & ! setpoint nodes
NodeType_Unknown,TRIM(cCurrentModuleObject),cAlphaArgs(1),NodeConnectionType_Setpoint,1,ObjectIsNotParent, &
InputFieldName=cAlphaFieldNames(3))
IF (.NOT. NodeListError) THEN
NumNodesCtrld = NumNodes
ALLOCATE(SZOneStageHeatingSetPtMgr(SetPtMgrNum)%CtrlNodes(NumNodesCtrld))
SZOneStageHeatingSetPtMgr(SetPtMgrNum)%NumCtrlNodes = NumNodesCtrld
SZOneStageHeatingSetPtMgr(SetPtMgrNum)%SetPt = 0.0d0
DO CtrldNodeNum = 1,NumNodesCtrld
SZOneStageHeatingSetPtMgr(SetPtMgrNum)%CtrlNodes(CtrldNodeNum) = NodeNums(CtrldNodeNum)
END DO
ELSE
ErrorsFound=.TRUE.
ENDIF
AllSetPtMgrNum = SetPtMgrNum + NumSchSetPtMgrs + NumDualSchSetPtMgrs + NumOutAirSetPtMgrs + NumSZRhSetPtMgrs + &
NumSZHtSetPtMgrs + NumSZClSetPtMgrs + NumSZMinHumSetPtMgrs + NumSZMaxHumSetPtMgrs + &
NumMixedAirSetPtMgrs + NumOAPretreatSetPtMgrs + NumWarmestSetPtMgrs + NumColdestSetPtMgrs + &
NumWarmestSetPtMgrsTempFlow + NumRABFlowSetPtMgrs + NumMZClgAverageSetPtMGrs + NumMZHtgAverageSetPtMGrs + &
NumMZAverageMinHumSetPtMgrs + NumMZAverageMaxHumSetPtMgrs + NumMZMinHumSetPtMgrs + NumMZMaxHumSetPtMgrs + &
NumFollowOATempSetPtMgrs + NumFollowSysNodeTempSetPtMgrs + NumGroundTempSetPtMgrs + NumCondEntSetPtMgrs + &
NumIdealCondEntSetPtMgrs + NumSZOneStageCoolingSetPtMgrs
IF (.not. NodeListError) THEN
ALLOCATE(AllSetPtMgr(AllSetPtMgrNum)%CtrlNodes(NumNodesCtrld))
AllSetPtMgr(AllsetPtMgrNum)%CtrlNodes = SZOneStageHeatingSetPtMgr(SetPtMgrNum)%CtrlNodes
END IF
AllSetPtMgr(AllsetPtMgrNum)%Name = SZOneStageHeatingSetPtMgr(SetPtMgrNum)%Name
AllSetPtMgr(AllsetPtMgrNum)%SPMType = iSPMType_SZOneStageHeating
AllSetPtMgr(AllsetPtMgrNum)%CtrlTypeMode = SZOneStageHeatingSetPtMgr(SetPtMgrNum)%CtrlTypeMode
AllSetPtMgr(AllsetPtMgrNum)%NumCtrlNodes = SZOneStageHeatingSetPtMgr(SetPtMgrNum)%NumCtrlNodes
ENDDO
DEALLOCATE(cAlphaFieldNames)
DEALLOCATE(cAlphaArgs)
DEALLOCATE(lAlphaFieldBlanks)
DEALLOCATE(cNumericFieldNames)
DEALLOCATE(rNumericArgs)
DEALLOCATE(lNumericFieldBlanks)
IF (ErrorsFound) THEN
CALL ShowFatalError(RoutineName//'Errors found in input. Program terminates.')
ENDIF
RETURN
END SUBROUTINE GetSetPointManagerInputs