Nodes of different colours represent the following:
Solid arrows point from a parent (sub)module to the submodule which is descended from it. Dashed arrows point from a module being used to the module or program unit using it. Where possible, edges connecting nodes are given different colours to make them easier to distinguish in large graphs.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed arrows point from an interface to procedures which implement that interface. This could include the module procedures in a generic interface or the implementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are given different colours to make them easier to distinguish in large graphs.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed arrows point from an interface to procedures which implement that interface. This could include the module procedures in a generic interface or the implementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are given different colours to make them easier to distinguish in large graphs.
SUBROUTINE GetGTChillerInput
! SUBROUTINE INFORMATION:
! AUTHOR: Dan Fisher / Brandon Anderson
! DATE WRITTEN: September 2000
! PURPOSE OF THIS SUBROUTINE:
! This routine will get the input
! required by the GT Chiller model.
! METHODOLOGY EMPLOYED:
! EnergyPlus input processor
! REFERENCES: na
! USE STATEMENTS:
USE InputProcessor, ONLY : GetNumObjectsFound, GetObjectItem, VerifyName
USE DataIPShortCuts ! Data for field names, blank numerics
USE BranchNodeConnections, ONLY: TestCompSet
USE NodeInputManager, ONLY: GetOnlySingleNode
USE GlobalNames, ONLY: VerifyUniqueChillerName
USE OutAirNodeManager, ONLY: CheckAndAddAirNodeNumber
USE General, ONLY: RoundSigDigits
USE PlantUtilities, ONLY: RegisterPlantCompDesignFlow
USE ScheduleManager, ONLY: GetScheduleIndex
USE DataGlobals, ONLY: AnyEnergyManagementSystemInModel
IMPLICIT NONE !
! PARAMETERS
CHARACTER(len=*), PARAMETER :: RoutineName='GetGTChillerInput: ' ! include trailing blank space
!LOCAL VARIABLES
INTEGER :: ChillerNum !chiller counter
INTEGER :: NumAlphas ! Number of elements in the alpha array
INTEGER :: NumNums ! Number of elements in the numeric array
INTEGER :: IOStat ! IO Status when calling get input subroutine
LOGICAL, SAVE :: ErrorsFound=.false.
LOGICAL :: IsNotOK ! Flag to verify name
LOGICAL :: IsBlank ! Flag for blank name
LOGICAL :: errflag
LOGICAL :: Okay
!FLOW
cCurrentModuleObject = 'Chiller:CombustionTurbine'
NumGTChillers = GetNumObjectsFound(cCurrentModuleObject)
IF (NumGTChillers <= 0) THEN
CALL ShowSevereError('No '//TRIM(cCurrentModuleObject)//' equipment specified in input file')
ErrorsFound=.true.
ENDIF
!See if load distribution manager has already gotten the input
IF (ALLOCATED(GTChiller))RETURN
!ALLOCATE ARRAYS
ALLOCATE (GTChiller(NumGTChillers))
ALLOCATE (GTChillerReport(NumGTChillers))
DO ChillerNum = 1 , NumGTChillers
CALL GetObjectItem(cCurrentModuleObject,ChillerNum,cAlphaArgs,NumAlphas, &
rNumericArgs,NumNums,IOSTAT,AlphaBlank=lAlphaFieldBlanks, &
AlphaFieldnames=cAlphaFieldNames,NumericFieldNames=cNumericFieldNames)
IsNotOK=.false.
IsBlank=.false.
CALL VerifyName(cAlphaArgs(1),GTChiller%Base%Name,ChillerNum-1,IsNotOK,IsBlank,TRIM(cCurrentModuleObject)//' Name')
IF (IsNotOK) THEN
ErrorsFound=.true.
IF (IsBlank) cAlphaArgs(1)='xxxxx'
ENDIF
CALL VerifyUniqueChillerName(TRIM(cCurrentModuleObject),cAlphaArgs(1),errflag,TRIM(cCurrentModuleObject)//' Name')
IF (errflag) THEN
ErrorsFound=.true.
ENDIF
GTChiller(ChillerNum)%Base%Name = cAlphaArgs(1)
GTChiller(ChillerNum)%Base%NomCap = rNumericArgs(1)
IF (rNumericArgs(1) == 0.0d0) THEN
CALL ShowSevereError('Invalid '//TRIM(cNumericFieldNames(1))//'='//TRIM(RoundSigDigits(rNumericArgs(1),2)))
CALL ShowContinueError('Entered in '//TRIM(cCurrentModuleObject)//'='//TRIM(cAlphaArgs(1)))
ErrorsFound=.true.
ENDIF
GTChiller(ChillerNum)%Base%COP = rNumericArgs(2)
IF (rNumericArgs(2) == 0.0d0) THEN
CALL ShowSevereError('Invalid '//TRIM(cNumericFieldNames(2))//'='//TRIM(RoundSigDigits(rNumericArgs(2),2)))
CALL ShowContinueError('Entered in '//TRIM(cCurrentModuleObject)//'='//TRIM(cAlphaArgs(1)))
ErrorsFound=.true.
ENDIF
IF (cAlphaArgs(2) == 'AIRCOOLED' ) THEN
GTChiller(ChillerNum)%Base%CondenserType = AirCooled
ELSEIF (cAlphaArgs(2) == 'WATERCOOLED') THEN
GTChiller(ChillerNum)%Base%CondenserType = WaterCooled
ELSEIF (cAlphaArgs(2) == 'EVAPORATIVELYCOOLED') THEN
GTChiller(ChillerNum)%Base%CondenserType = EvapCooled
ELSE
CALL ShowSevereError('Invalid '//TRIM(cAlphaFieldNames(2))//'='//TRIM(cAlphaArgs(2)))
CALL ShowContinueError('Entered in '//TRIM(cCurrentModuleObject)//'='//TRIM(cAlphaArgs(1)))
ErrorsFound=.true.
ENDIF
GTChiller(ChillerNum)%Base%EvapInletNodeNum = &
GetOnlySingleNode(cAlphaArgs(3),ErrorsFound,TRIM(cCurrentModuleObject),cAlphaArgs(1), &
NodeType_Water,NodeConnectionType_Inlet, 1, ObjectIsNotParent)
GTChiller(ChillerNum)%Base%EvapOutletNodeNum = &
GetOnlySingleNode(cAlphaArgs(4),ErrorsFound,TRIM(cCurrentModuleObject),cAlphaArgs(1), &
NodeType_Water,NodeConnectionType_Outlet, 1, ObjectIsNotParent)
CALL TestCompSet(TRIM(cCurrentModuleObject),cAlphaArgs(1),cAlphaArgs(3),cAlphaArgs(4),'Chilled Water Nodes')
IF (GTChiller(ChillerNum)%Base%CondenserType == AirCooled .or. GTChiller(ChillerNum)%Base%CondenserType == EvapCooled) THEN
! Connection not required for air or evap cooled condenser
! If the condenser inlet is blank for air cooled and evap cooled condensers then supply a generic name
! since it is not used elsewhere for connection
IF(lAlphaFieldBlanks(5))THEN
IF (LEN_TRIM(cAlphaArgs(1)) < (MaxNameLength - 21) ) THEN ! protect against long name leading to > 100 chars
cAlphaArgs(5) = TRIM(cAlphaArgs(1))//' CONDENSER INLET NODE'
ELSE
cAlphaArgs(5) = TRIM(cAlphaArgs(1)(1:79))//' CONDENSER INLET NODE'
ENDIF
End If
IF(lAlphaFieldBlanks(6) )THEN
IF (LEN_TRIM(cAlphaArgs(1)) < (MaxNameLength - 22) ) THEN ! protect against long name leading to > 100 chars
cAlphaArgs(6) = TRIM(cAlphaArgs(1))//' CONDENSER OUTLET NODE'
ELSE
cAlphaArgs(6) = TRIM(cAlphaArgs(1)(1:78))//' CONDENSER OUTLET NODE'
ENDIF
END IF
GTChiller(ChillerNum)%Base%CondInletNodeNum = &
GetOnlySingleNode(cAlphaArgs(5),ErrorsFound,TRIM(cCurrentModuleObject),cAlphaArgs(1), &
NodeType_Air,NodeConnectionType_OutsideAirReference, 2, ObjectIsNotParent)
CALL CheckAndAddAirNodeNumber(GTChiller(ChillerNum)%Base%CondInletNodeNum,Okay)
IF (.not. Okay) THEN
CALL ShowWarningError(TRIM(cCurrentModuleObject)//', Adding OutdoorAir:Node='//TRIM(cAlphaArgs(5)))
ENDIF
GTChiller(ChillerNum)%Base%CondOutletNodeNum = &
GetOnlySingleNode(cAlphaArgs(6),ErrorsFound,TRIM(cCurrentModuleObject),cAlphaArgs(1), &
NodeType_Air,NodeConnectionType_Outlet, 2, ObjectIsNotParent)
ELSE ! WaterCooled CondenserType
GTChiller(ChillerNum)%Base%CondInletNodeNum = &
GetOnlySingleNode(cAlphaArgs(5),ErrorsFound,TRIM(cCurrentModuleObject),cAlphaArgs(1), &
NodeType_Unknown,NodeConnectionType_Inlet, 2, ObjectIsNotParent)
GTChiller(ChillerNum)%Base%CondOutletNodeNum = &
GetOnlySingleNode(cAlphaArgs(6),ErrorsFound,TRIM(cCurrentModuleObject),cAlphaArgs(1), &
NodeType_Unknown,NodeConnectionType_Outlet, 2, ObjectIsNotParent)
CALL TestCompSet(TRIM(cCurrentModuleObject),cAlphaArgs(1),cAlphaArgs(5),cAlphaArgs(6),'Condenser (unknown?) Nodes')
!Condenser Inlet node name is necessary for Water Cooled
IF (lAlphaFieldBlanks(5) ) THEN
CALL ShowSevereError('Invalid, '//TRIM(cAlphaFieldNames(5))//' is blank ')
CALL ShowContinueError('Entered in '//TRIM(cCurrentModuleObject)//'='//TRIM(cAlphaArgs(1)))
ErrorsFound=.true.
ELSEIF ( lAlphaFieldBlanks(6) ) THEN
CALL ShowSevereError('Invalid, '//TRIM(cAlphaFieldNames(6))//' is blank ')
CALL ShowContinueError('Entered in '//TRIM(cCurrentModuleObject)//'='//TRIM(cAlphaArgs(1)))
ErrorsFound=.true.
ENDIF
ENDIF
GTChiller(ChillerNum)%MinPartLoadRat = rNumericArgs(3)
GTChiller(ChillerNum)%MaxPartLoadRat = rNumericArgs(4)
GTChiller(ChillerNum)%OptPartLoadRat = rNumericArgs(5)
GTChiller(ChillerNum)%TempDesCondIn = rNumericArgs(6)
GTChiller(ChillerNum)%TempRiseCoef = rNumericArgs(7)
GTChiller(ChillerNum)%TempDesEvapOut = rNumericArgs(8)
GTChiller(ChillerNum)%Base%EvapVolFlowRate = rNumericArgs(9)
GTChiller(ChillerNum)%Base%CondVolFlowRate = rNumericArgs(10)
GTChiller(ChillerNum)%CapRatCoef(1) = rNumericArgs(11)
GTChiller(ChillerNum)%CapRatCoef(2) = rNumericArgs(12)
GTChiller(ChillerNum)%CapRatCoef(3) = rNumericArgs(13)
IF ((rNumericArgs(11)+rNumericArgs(12)+rNumericArgs(13)) == 0.0d0) THEN
CALL ShowSevereError(TRIM(cCurrentModuleObject)//': Sum of Capacity Ratio Coef = 0.0, chiller='//TRIM(cAlphaArgs(1)))
ErrorsFound=.true.
ENDIF
GTChiller(ChillerNum)%PowerRatCoef(1) = rNumericArgs(14)
GTChiller(ChillerNum)%PowerRatCoef(2) = rNumericArgs(15)
GTChiller(ChillerNum)%PowerRatCoef(3) = rNumericArgs(16)
GTChiller(ChillerNum)%FullLoadCoef(1) = rNumericArgs(17)
GTChiller(ChillerNum)%FullLoadCoef(2) = rNumericArgs(18)
GTChiller(ChillerNum)%FullLoadCoef(3) = rNumericArgs(19)
GTChiller(ChillerNum)%TempLowLimitEvapOut = rNumericArgs(20)
!Load Special GT Chiller Input
GTChiller(ChillerNum)%PLBasedFuelInputCoef(1) = rNumericArgs(21)
GTChiller(ChillerNum)%PLBasedFuelInputCoef(2) = rNumericArgs(22)
GTChiller(ChillerNum)%PLBasedFuelInputCoef(3) = rNumericArgs(23)
GTChiller(ChillerNum)%TempBasedFuelInputCoef(1) = rNumericArgs(24)
GTChiller(ChillerNum)%TempBasedFuelInputCoef(2) = rNumericArgs(25)
GTChiller(ChillerNum)%TempBasedFuelInputCoef(3) = rNumericArgs(26)
GTChiller(ChillerNum)%ExhaustFlowCoef(1) = rNumericArgs(27)
GTChiller(ChillerNum)%ExhaustFlowCoef(2) = rNumericArgs(28)
GTChiller(ChillerNum)%ExhaustFlowCoef(3) = rNumericArgs(29)
GTChiller(ChillerNum)%PLBasedExhaustTempCoef(1) = rNumericArgs(30)
GTChiller(ChillerNum)%PLBasedExhaustTempCoef(2) = rNumericArgs(31)
GTChiller(ChillerNum)%PLBasedExhaustTempCoef(3) = rNumericArgs(32)
GTChiller(ChillerNum)%TempBasedExhaustTempCoef(1) = rNumericArgs(33)
GTChiller(ChillerNum)%TempBasedExhaustTempCoef(2) = rNumericArgs(34)
GTChiller(ChillerNum)%TempBasedExhaustTempCoef(3) = rNumericArgs(35)
GTChiller(ChillerNum)%HeatRecLubeEnergyCoef(1) = rNumericArgs(36)
GTChiller(ChillerNum)%HeatRecLubeEnergyCoef(2) = rNumericArgs(37)
GTChiller(ChillerNum)%HeatRecLubeEnergyCoef(3) = rNumericArgs(38)
GTChiller(ChillerNum)%UAtoCapCoef(1) = rNumericArgs(39)
GTChiller(ChillerNum)%UAtoCapCoef(2) = rNumericArgs(40)
GTChiller(ChillerNum)%GTEngineCapacity = rNumericArgs(41)
GTChiller(ChillerNum)%MaxExhaustperGTPower = rNumericArgs(42)
GTChiller(ChillerNum)%DesignSteamSatTemp = rNumericArgs(43)
GTChiller(ChillerNum)%FuelHeatingValue = rNumericArgs(44)
!Get the Heat Recovery information
GTChiller(ChillerNum)%DesignHeatRecVolFlowRate = rNumericArgs(45)
IF (GTChiller(ChillerNum)%DesignHeatRecVolFlowRate > 0.0d0) THEN
GTChiller(ChillerNum)%HeatRecActive=.true.
GTChiller(ChillerNum)%HeatRecInletNodeNum = &
GetOnlySingleNode(cAlphaArgs(7),ErrorsFound,TRIM(cCurrentModuleObject),cAlphaArgs(1), &
NodeType_Water,NodeConnectionType_Inlet, 3, ObjectIsNotParent)
IF (GTChiller(ChillerNum)%HeatRecInletNodeNum == 0) THEN
CALL ShowSevereError('Invalid '//TRIM(cAlphaFieldNames(7))//'='//TRIM(cAlphaArgs(7)))
CALL ShowContinueError('Entered in '//TRIM(cCurrentModuleObject)//'='//TRIM(cAlphaArgs(1)))
ErrorsFound=.true.
ENDIF
GTChiller(ChillerNum)%HeatRecOutletNodeNum = &
GetOnlySingleNode(cAlphaArgs(8),ErrorsFound,TRIM(cCurrentModuleObject),cAlphaArgs(1), &
NodeType_Water,NodeConnectionType_Outlet, 3, ObjectIsNotParent)
IF (GTChiller(ChillerNum)%HeatRecOutletNodeNum == 0) THEN
CALL ShowSevereError('Invalid '//TRIM(cAlphaFieldNames(8))//'='//TRIM(cAlphaArgs(8)))
CALL ShowContinueError('Entered in '//TRIM(cCurrentModuleObject)//'='//TRIM(cAlphaArgs(1)))
ErrorsFound=.true.
ENDIF
CALL TestCompSet(TRIM(cCurrentModuleObject),cAlphaArgs(1),cAlphaArgs(7),cAlphaArgs(8),'Heat Recovery Nodes')
CALL RegisterPlantCompDesignFlow(GTChiller(ChillerNum)%HeatRecInletNodeNum, &
GTChiller(ChillerNum)%DesignHeatRecVolFlowRate )
! Condenser flow rate must be specified for heat reclaim
IF (GTChiller(ChillerNum)%Base%CondenserType == AirCooled .OR. &
GTChiller(ChillerNum)%Base%CondenserType == EvapCooled) THEN
IF(GTChiller(ChillerNum)%Base%CondVolFlowRate .LE. 0.0d0)THEN
CALL ShowSevereError('Invalid '//TRIM(cNumericFieldNames(10))//'='//TRIM(RoundSigDigits(rNumericArgs(10),6)))
CALL ShowSevereError('Condenser fluid flow rate must be specified for Heat Reclaim applications.')
CALL ShowContinueError('Entered in '//TRIM(cCurrentModuleObject)//'='//TRIM(cAlphaArgs(1)))
ErrorsFound=.True.
ENDIF
ENDIf
ELSE
GTChiller(ChillerNum)%HeatRecActive=.false.
GTChiller(ChillerNum)%DesignHeatRecMassFlowRate = 0.0d0
GTChiller(ChillerNum)%HeatRecInletNodeNum = 0
GTChiller(ChillerNum)%HeatRecOutletNodeNum = 0
IF ((.NOT. lAlphaFieldBlanks(7)) .OR. (.NOT. lAlphaFieldBlanks(8))) THEN
CALL ShowWarningError('Since Design Heat Flow Rate = 0.0, Heat Recovery inactive for '// &
TRIM(cCurrentModuleObject)//'='//TRIM(cAlphaArgs(1)) )
CALL ShowContinueError('However, Node names were specified for heat recovery inlet or outlet nodes')
ENDIF
IF (GTChiller(ChillerNum)%Base%CondenserType == AirCooled .OR. &
GTChiller(ChillerNum)%Base%CondenserType == EvapCooled) THEN
GTChiller(ChillerNum)%Base%CondVolFlowRate = 0.0011d0 ! set to avoid errors in calc routine
END IF
ENDIF
SELECT CASE (TRIM(cAlphaArgs(9)))
CASE ( 'CONSTANTFLOW' )
GTChiller(ChillerNum)%Base%FlowMode = ConstantFlow
CASE ( 'VARIABLEFLOW' )
GTChiller(ChillerNum)%Base%FlowMode = LeavingSetpointModulated
CALL ShowWarningError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))//'",')
CALL ShowContinueError('Invalid '//TRIM(cAlphaFieldNames(9))//'='//TRIM(cAlphaArgs(9)))
CALL ShowContinueError('Key choice is now called "LeavingSetpointModulated" and the simulation continues')
CASE ('LEAVINGSETPOINTMODULATED')
GTChiller(ChillerNum)%Base%FlowMode = LeavingSetpointModulated
CASE ('NOTMODULATED')
GTChiller(ChillerNum)%Base%FlowMode = NotModulated
CASE DEFAULT
CALL ShowSevereError(RoutineName//TRIM(cCurrentModuleObject)//'="'//TRIM(cAlphaArgs(1))//'",')
CALL ShowContinueError('Invalid '//TRIM(cAlphaFieldNames(9))//'='//TRIM(cAlphaArgs(9)))
CALL ShowContinueError('Available choices are ConstantFlow, NotModulated, or LeavingSetpointModulated')
CALL ShowContinueError('Flow mode NotModulated is assumed and the simulation continues.')
GTChiller(ChillerNum)%Base%FlowMode = NotModulated
END SELECT
!Fuel Type Case Statement
SELECT CASE (cAlphaArgs(10))
CASE ('GAS','NATURALGAS','NATURAL GAS')
GTChiller(ChillerNum)%FuelType = 'Gas'
CASE ('DIESEL')
GTChiller(ChillerNum)%FuelType = 'Diesel'
CASE ('GASOLINE')
GTChiller(ChillerNum)%FuelType = 'Gasoline'
CASE ('FUEL OIL #1','FUELOIL#1','FUEL OIL','DISTILLATE OIL')
GTChiller(ChillerNum)%FuelType = 'FuelOil#1'
CASE ('FUEL OIL #2','FUELOIL#2','RESIDUAL OIL')
GTChiller(ChillerNum)%FuelType = 'FuelOil#2'
CASE ('PROPANE','LPG','PROPANEGAS','PROPANE GAS')
GTChiller(ChillerNum)%FuelType = 'Propane'
CASE ('OTHERFUEL1')
GTChiller(ChillerNum)%FuelType = 'OtherFuel1'
CASE ('OTHERFUEL2')
GTChiller(ChillerNum)%FuelType = 'OtherFuel2'
CASE DEFAULT
CALL ShowSevereError('Invalid '//TRIM(cAlphaFieldNames(10))//'='//TRIM(cAlphaArgs(10)))
CALL ShowContinueError('Entered in '//TRIM(cCurrentModuleObject)//'='//TRIM(cAlphaArgs(1)))
CALL ShowContinueError('Valid choices are Electricity, NaturalGas, PropaneGas, Diesel, Gasoline, FuelOil#1, FuelOil#2,'// &
'OtherFuel1 or OtherFuel2')
ErrorsFound=.true.
END SELECT
GTChiller(ChillerNum)%HeatRecMaxTemp = rNumericArgs(46)
GTChiller(ChillerNum)%Base%SizFac = rNumericArgs(47)
IF (GTChiller(ChillerNum)%Base%SizFac <= 0.0d0) GTChiller(ChillerNum)%Base%SizFac = 1.0d0
! Basin heater power as a function of temperature must be greater than or equal to 0
GTChiller(ChillerNum)%Base%BasinHeaterPowerFTempDiff = rNumericArgs(48)
IF(rNumericArgs(48) .LT. 0.0d0) THEN
CALL ShowSevereError(TRIM(cCurrentModuleObject)//'="'//TRIM(GTChiller(ChillerNum)%Base%Name)//&
'"'//TRIM(cNumericFieldNames(48))//' must be >= 0')
ErrorsFound = .TRUE.
END IF
GTChiller(ChillerNum)%Base%BasinHeaterSetPointTemp = rNumericArgs(49)
IF(GTChiller(ChillerNum)%Base%BasinHeaterPowerFTempDiff .GT. 0.0d0) THEN
IF(NumNums .LT. 49) THEN
GTChiller(ChillerNum)%Base%BasinHeaterSetPointTemp = 2.0d0
ENDIF
IF(GTChiller(ChillerNum)%Base%BasinHeaterSetPointTemp < 2.0d0) THEN
CALL ShowWarningError(TRIM(cCurrentModuleObject)//':"'//TRIM(GTChiller(ChillerNum)%Base%Name)//&
'", '//TRIM(cNumericFieldNames(49))//' is less than 2 deg C. Freezing could occur.')
END IF
END IF
IF(.NOT. lAlphaFieldBlanks(11))THEN
GTChiller(ChillerNum)%Base%BasinHeaterSchedulePtr = GetScheduleIndex(cAlphaArgs(11))
IF(GTChiller(ChillerNum)%Base%BasinHeaterSchedulePtr .EQ. 0)THEN
CALL ShowWarningError(TRIM(cCurrentModuleObject)//', "'//TRIM(GTChiller(ChillerNum)%Base%Name)//&
'" TRIM(cAlphaFieldNames(11)) "'//TRIM(cAlphaArgs(11)) &
//'" was not found. Basin heater operation will not be modeled and the simulation continues')
END IF
END IF
END DO
IF (ErrorsFound) THEN
CALL ShowFatalError('Errors found in processing input for '// TRIM(cCurrentModuleObject) )
ENDIF
DO ChillerNum = 1, NumGTChillers
CALL SetupOutputVariable('Chiller Drive Shaft Power [W]', &
GTChillerReport(ChillerNum)%Base%Power,'System','Average',GTChiller(ChillerNum)%Base%Name)
CALL SetupOutputVariable('Chiller Drive Shaft Energy [J]', &
GTChillerReport(ChillerNum)%Base%Energy,'System','Sum',GTChiller(ChillerNum)%Base%Name)
CALL SetupOutputVariable('Chiller Evaporator Cooling Rate [W]', &
GTChillerReport(ChillerNum)%Base%QEvap,'System','Average',GTChiller(ChillerNum)%Base%Name)
CALL SetupOutputVariable('Chiller Evaporator Cooling Energy [J]', &
GTChillerReport(ChillerNum)%Base%EvapEnergy,'System','Sum',GTChiller(ChillerNum)%Base%Name, &
ResourceTypeKey='ENERGYTRANSFER',EndUseKey='CHILLERS',GroupKey='Plant')
CALL SetupOutputVariable('Chiller Evaporator Inlet Temperature [C]', &
GTChillerReport(ChillerNum)%Base%EvapInletTemp,'System','Average',GTChiller(ChillerNum)%Base%Name)
CALL SetupOutputVariable('Chiller Evaporator Outlet Temperature [C]', &
GTChillerReport(ChillerNum)%Base%EvapOutletTemp,'System','Average',GTChiller(ChillerNum)%Base%Name)
CALL SetupOutputVariable('Chiller Evaporator Mass Flow Rate [kg/s]', &
GTChillerReport(ChillerNum)%Base%Evapmdot,'System','Average',GTChiller(ChillerNum)%Base%Name)
CALL SetupOutputVariable('Chiller Condenser Heat Transfer Rate [W]', &
GTChillerReport(ChillerNum)%Base%QCond,'System','Average',GTChiller(ChillerNum)%Base%Name)
CALL SetupOutputVariable('Chiller Condenser Heat Transfer Energy [J]', &
GTChillerReport(ChillerNum)%Base%CondEnergy,'System','Sum',GTChiller(ChillerNum)%Base%Name, &
ResourceTypeKey='ENERGYTRANSFER',EndUseKey='HEATREJECTION',GroupKey='Plant')
!Condenser mass flow and outlet temp are valid for water cooled
IF (GTChiller(ChillerNum)%Base%CondenserType == WaterCooled)THEN
CALL SetupOutputVariable('Chiller Condenser Inlet Temperature [C]', &
GTChillerReport(ChillerNum)%Base%CondInletTemp,'System','Average',GTChiller(ChillerNum)%Base%Name)
CALL SetupOutputVariable('Chiller Condenser Outlet Temperature [C]', &
GTChillerReport(ChillerNum)%Base%CondOutletTemp,'System','Average',GTChiller(ChillerNum)%Base%Name)
CALL SetupOutputVariable('Chiller Condenser Mass Flow Rate [kg/s]', &
GTChillerReport(ChillerNum)%Base%Condmdot,'System','Average',GTChiller(ChillerNum)%Base%Name)
ELSEIF (GTChiller(ChillerNum)%Base%CondenserType == AirCooled) THEN
CALL SetupOutputVariable('Chiller Condenser Inlet Temperature [C]', &
GTChillerReport(ChillerNum)%Base%CondInletTemp,'System','Average',GTChiller(ChillerNum)%Base%Name)
ELSEIF (GTChiller(ChillerNum)%Base%CondenserType == EvapCooled) THEN
CALL SetupOutputVariable('Chiller Condenser Inlet Temperature [C]', &
GTChillerReport(ChillerNum)%Base%CondInletTemp,'System','Average',GTChiller(ChillerNum)%Base%Name)
IF(GTChiller(ChillerNum)%Base%BasinHeaterPowerFTempDiff .GT. 0.0d0)THEN
CALL SetupOutputVariable('Chiller Basin Heater Electric Power [W]', &
GTChillerReport(ChillerNum)%Base%BasinHeaterPower,'System','Average',GTChiller(ChillerNum)%Base%Name)
CALL SetupOutputVariable('Chiller Basin Heater Electric Energy [J]', &
GTChillerReport(ChillerNum)%Base%BasinHeaterConsumption,'System','Sum',GTChiller(ChillerNum)%Base%Name, &
ResourceTypeKey='Electric',EndUseKey='CHILLERS',GroupKey='Plant')
END IF
ENDIF
CALL SetupOutputVariable('Chiller Lube Recovered Heat Rate [W]', &
GTChillerReport(ChillerNum)%HeatRecLubeRate,'System','Average',GTChiller(ChillerNum)%Base%Name)
CALL SetupOutputVariable('Chiller Lube Recovered Heat Energy [J]', &
GTChillerReport(ChillerNum)%HeatRecLubeEnergy,'System','Sum',GTChiller(ChillerNum)%Base%Name, &
ResourceTypeKey='ENERGYTRANSFER',EndUseKey='HeatRecovery',GroupKey='Plant')
CALL SetupOutputVariable('Chiller '// TRIM(GTChiller(ChillerNum)%FuelType)//' Rate [W]', &
GTChillerReport(ChillerNum)%FuelEnergyUsedRate,'System','Average',GTChiller(ChillerNum)%Base%Name)
CALL SetupOutputVariable('Chiller '// TRIM(GTChiller(ChillerNum)%FuelType)//' Energy [J]', &
GTChillerReport(ChillerNum)%FuelEnergyUsed,'System','Sum',GTChiller(ChillerNum)%Base%Name, &
ResourceTypeKey=GTChiller(ChillerNum)%FuelType,EndUseKey='Cooling',GroupKey='Plant')
CALL SetupOutputVariable('Chiller '// TRIM(GTChiller(ChillerNum)%FuelType)//' Mass Flow Rate [kg/s]', &
GTChillerReport(ChillerNum)%FuelMassUsedRate,'System','Average',GTChiller(ChillerNum)%Base%Name)
CALL SetupOutputVariable('Chiller '// TRIM(GTChiller(ChillerNum)%FuelType)//' Mass [kg]', &
GTChillerReport(ChillerNum)%FuelMassUsed,'System','Sum',GTChiller(ChillerNum)%Base%Name)
CALL SetupOutputVariable('Chiller Exhaust Temperature [C]', &
GTChillerReport(ChillerNum)%ExhaustStackTemp,'System','Average',GTChiller(ChillerNum)%Base%Name)
CALL SetupOutputVariable('Chiller Heat Recovery Inlet Temperature [C]', &
GTChillerReport(ChillerNum)%HeatRecInletTemp,'System','Average',GTChiller(ChillerNum)%Base%Name)
CALL SetupOutputVariable('Chiller Heat Recovery Outlet Temperature [C]', &
GTChillerReport(ChillerNum)%HeatRecOutletTemp,'System','Average',GTChiller(ChillerNum)%Base%Name)
CALL SetupOutputVariable('Chiller Heat Recovery Mass Flow Rate [kg/s]', &
GTChillerReport(ChillerNum)%HeatRecMdot,'System','Average',GTChiller(ChillerNum)%Base%Name)
CALL SetupOutputVariable('Chiller COP [W/W]', &
GTChillerReport(ChillerNum)%FuelCOP,'System','Average',GTChiller(ChillerNum)%Base%Name)
IF (AnyEnergyManagementSystemInModel) THEN
CALL SetupEMSInternalVariable('Chiller Nominal Capacity', GTChiller(ChillerNum)%Base%Name, '[W]', &
GTChiller(ChillerNum)%Base%NomCap )
ENDIF
END DO
RETURN
END SUBROUTINE GetGTChillerInput