Nodes of different colours represent the following:
Solid arrows point from a parent (sub)module to the submodule which is descended from it. Dashed arrows point from a module being used to the module or program unit using it. Where possible, edges connecting nodes are given different colours to make them easier to distinguish in large graphs.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | EIRChillNum | |||
logical, | intent(in) | :: | RunFlag | |||
real(kind=r64), | intent(in) | :: | MyLoad |
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 InitElectricEIRChiller(EIRChillNum,RunFlag, MyLoad)
! SUBROUTINE INFORMATION:
! AUTHOR Richard Raustad, FSEC
! DATE WRITTEN June 2004
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! This subroutine is for initializations of the Electric EIR Chiller variables
! METHODOLOGY EMPLOYED:
! Uses the status flags to trigger initializations.
! REFERENCES:
! na
! USE STATEMENTS:
USE DataGlobals, ONLY : BeginEnvrnFlag, AnyEnergyManagementSystemInModel
USE DataPlant, ONLY : PlantLoop, TypeOf_Chiller_ElectricEIR, ScanPlantLoopsForObject, &
PlantSizesOkayToFinalize, PlantSizeNotComplete, LoopFlowStatus_NeedyIfLoopOn, &
SingleSetpoint, DualSetpointDeadband
USE PlantUtilities, ONLY : InterConnectTwoPlantLoopSides, InitComponentNodes, SetComponentFlowRate
USE DataEnvironment, ONLY : StdBaroPress
USE EMSManager, ONLY : iTemperatureSetpoint, CheckIfNodeSetpointManagedByEMS
USE DataInterfaces, ONLY : ShowFatalError, ShowSevereError, ShowContinueError
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
INTEGER, INTENT (IN) :: EIRChillNum ! Number of the current electric EIR chiller being simulated
LOGICAL, INTENT(IN) :: RunFlag ! TRUE when chiller operating
REAL(r64),INTENT(IN) :: MyLoad ! current load put on chiller
! SUBROUTINE PARAMETER DEFINITIONS:
! na
! INTERFACE BLOCK SPECIFICATIONS:
! na
! DERIVED TYPE DEFINITIONS:
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
LOGICAL,SAVE :: MyOneTimeFlag = .true. ! Flag used to execute code only once
LOGICAL, ALLOCATABLE, SAVE, DIMENSION(:) :: MyFlag ! TRUE in order to set component location
LOGICAL, ALLOCATABLE, SAVE, DIMENSION(:) :: MyEnvrnFlag ! TRUE when new environment is started
INTEGER :: EvapInletNode ! Node number for evaporator water inlet node
INTEGER :: EvapOutletNode ! Node number for evaporator water outlet node
INTEGER :: CondInletNode ! Node number for condenser water inlet node
INTEGER :: CondOutletNode ! Node number for condenser water outlet node
INTEGER :: HeatRecInNode ! Node number for heat recovery water inlet node
INTEGER :: HeatRecOutNode ! Node number for heat recovery water outlet node
REAL(r64) :: rho ! local fluid density
REAL(r64) :: mdot ! local fluid mass flow rate
REAL(r64) :: mdotCond ! local fluid mass flow rate for condenser
REAL(r64) :: THeatRecSetpoint ! tests set point node for proper set point value
INTEGER :: LoopNum
INTEGER :: LoopSideNum
INTEGER :: BranchIndex
INTEGER :: CompIndex
LOGICAL :: FatalError
LOGICAL :: errFlag
! FLOW:
! Do the one time initializations
IF (MyOneTimeFlag) THEN
ALLOCATE(MyEnvrnFlag(NumElectricEIRChillers))
ALLOCATE(MyFlag(NumElectricEIRChillers))
MyEnvrnFlag = .TRUE.
MyFlag = .TRUE.
MyOneTimeFlag = .false.
END IF
EvapInletNode = ElectricEIRChiller(EIRChillNum)%EvapInletNodeNum
EvapOutletNode = ElectricEIRChiller(EIRChillNum)%EvapOutletNodeNum
CondInletNode = ElectricEIRChiller(EIRChillNum)%CondInletNodeNum
CondOutletNode = ElectricEIRChiller(EIRChillNum)%CondOutletNodeNum
IF (ElectricEIRChiller(EIRChillNum)%HeatRecActive ) THEN
HeatRecInNode = ElectricEIRChiller(EIRChillNum)%HeatRecInletNodeNum
HeatRecOutNode = ElectricEIRChiller(EIRChillNum)%HeatRecOutletNodeNum
ENDIF
! Init more variables
IF (MyFlag(EIRChillNum)) THEN
! Locate the chillers on the plant loops for later usage
errFlag=.false.
CALL ScanPlantLoopsForObject(ElectricEIRChiller(EIRChillNum)%Name, &
TypeOf_Chiller_ElectricEIR, &
ElectricEIRChiller(EIRChillNum)%CWLoopNum, &
ElectricEIRChiller(EIRChillNum)%CWLoopSideNum, &
ElectricEIRChiller(EIRChillNum)%CWBranchNum,&
ElectricEIRChiller(EIRChillNum)%CWCompNum, &
LowLimitTemp = ElectricEIRChiller(EIRChillNum)%TempLowLimitEvapOut, &
InletNodeNumber = ElectricEIRChiller(EIRChillNum)%EvapInletNodeNum, &
errFlag=errFlag)
IF (ElectricEIRChiller(EIRChillNum)%CondenserType /= AirCooled .AND. &
ElectricEIRChiller(EIRChillNum)%CondenserType /= EvapCooled) THEN
CALL ScanPlantLoopsForObject(ElectricEIRChiller(EIRChillNum)%Name, &
TypeOf_Chiller_ElectricEIR, &
ElectricEIRChiller(EIRChillNum)%CDLoopNum, &
ElectricEIRChiller(EIRChillNum)%CDLoopSideNum, &
ElectricEIRChiller(EIRChillNum)%CDBranchNum,&
ElectricEIRChiller(EIRChillNum)%CDCompNum, &
InletNodeNumber = ElectricEIRChiller(EIRChillNum)%CondInletNodeNum, &
errFlag=errFlag)
CALL InterConnectTwoPlantLoopSides( ElectricEIRChiller(EIRChillNum)%CWLoopNum, &
ElectricEIRChiller(EIRChillNum)%CWLoopSideNum, &
ElectricEIRChiller(EIRChillNum)%CDLoopNum, &
ElectricEIRChiller(EIRChillNum)%CDLoopSideNum, &
TypeOf_Chiller_ElectricEIR, .TRUE. )
ENDIF
IF (ElectricEIRChiller(EIRChillNum)%HeatRecActive) THEN
CALL ScanPlantLoopsForObject(ElectricEIRChiller(EIRChillNum)%Name, &
TypeOf_Chiller_ElectricEIR, &
ElectricEIRChiller(EIRChillNum)%HRLoopNum, &
ElectricEIRChiller(EIRChillNum)%HRLoopSideNum, &
ElectricEIRChiller(EIRChillNum)%HRBranchNum,&
ElectricEIRChiller(EIRChillNum)%HRCompNum, &
InletNodeNumber = ElectricEIRChiller(EIRChillNum)%HeatRecInletNodeNum, &
errFlag=errFlag)
CALL InterConnectTwoPlantLoopSides( ElectricEIRChiller(EIRChillNum)%CWLoopNum, &
ElectricEIRChiller(EIRChillNum)%CWLoopSideNum, &
ElectricEIRChiller(EIRChillNum)%HRLoopNum, &
ElectricEIRChiller(EIRChillNum)%HRLoopSideNum, &
TypeOf_Chiller_ElectricEIR, .TRUE. )
ENDIF
IF ( ElectricEIRChiller(EIRChillNum)%CondenserType /= AirCooled .AND. &
ElectricEIRChiller(EIRChillNum)%CondenserType /= EvapCooled .AND. &
ElectricEIRChiller(EIRChillNum)%HeatRecActive ) THEN
CALL InterConnectTwoPlantLoopSides( ElectricEIRChiller(EIRChillNum)%CDLoopNum, &
ElectricEIRChiller(EIRChillNum)%CDLoopSideNum, &
ElectricEIRChiller(EIRChillNum)%HRLoopNum, &
ElectricEIRChiller(EIRChillNum)%HRLoopSideNum, &
TypeOf_Chiller_ElectricEIR , .FALSE.)
ENDIF
IF (errFlag) THEN
CALL ShowFatalError('InitElectricEIRChiller: Program terminated due to previous condition(s).')
ENDIF
IF (ElectricEIRChiller(EIRChillNum)%FlowMode == ConstantFlow) THEN
! reset flow priority
PlantLoop(ElectricEIRChiller(EIRChillNum)%CWLoopNum)%LoopSide(ElectricEIRChiller(EIRChillNum)%CWLoopSideNum)% &
Branch(ElectricEIRChiller(EIRChillNum)%CWBranchNum)%Comp(ElectricEIRChiller(EIRChillNum)%CWCompNum)%FlowPriority &
= LoopFlowStatus_NeedyIfLoopOn
ENDIF
IF (ElectricEIRChiller(EIRChillNum)%FlowMode == LeavingSetpointModulated) THEN
! reset flow priority
PlantLoop(ElectricEIRChiller(EIRChillNum)%CWLoopNum)%LoopSide(ElectricEIRChiller(EIRChillNum)%CWLoopSideNum)% &
Branch(ElectricEIRChiller(EIRChillNum)%CWBranchNum)%Comp(ElectricEIRChiller(EIRChillNum)%CWCompNum)%FlowPriority &
= LoopFlowStatus_NeedyIfLoopOn
! check if setpoint on outlet node
IF ((Node(ElectricEIRChiller(EIRChillNum)%EvapOutletNodeNum)%TempSetPoint == SensedNodeFlagValue) .AND. &
(Node(ElectricEIRChiller(EIRChillNum)%EvapOutletNodeNum)%TempSetPointHi == SensedNodeFlagValue) ) THEN
IF (.NOT. AnyEnergyManagementSystemInModel) THEN
IF (.NOT. ElectricEIRChiller(EIRChillNum)%ModulatedFlowErrDone) THEN
CALL ShowWarningError('Missing temperature setpoint for LeavingSetpointModulated mode chiller named ' // &
TRIM(ElectricEIRChiller(EIRChillNum)%Name) )
CALL ShowContinueError(' A temperature setpoint is needed at the outlet node of a chiller ' // &
'in variable flow mode, use a SetpointManager')
CALL ShowContinueError(' The overall loop setpoint will be assumed for chiller. The simulation continues ... ')
ElectricEIRChiller(EIRChillNum)%ModulatedFlowErrDone = .TRUE.
ENDIF
ELSE
! need call to EMS to check node
FatalError = .FALSE. ! but not really fatal yet, but should be.
CALL CheckIfNodeSetpointManagedByEMS(ElectricEIRChiller(EIRChillNum)%EvapOutletNodeNum,iTemperatureSetpoint, FatalError)
IF (FatalError) THEN
IF (.NOT. ElectricEIRChiller(EIRChillNum)%ModulatedFlowErrDone) THEN
CALL ShowWarningError('Missing temperature setpoint for LeavingSetpointModulated mode chiller named ' // &
TRIM(ElectricEIRChiller(EIRChillNum)%Name) )
CALL ShowContinueError(' A temperature setpoint is needed at the outlet node of a chiller evaporator ' // &
'in variable flow mode')
CALL ShowContinueError(' use a Setpoint Manager to establish a setpoint at the chiller evaporator outlet node ')
CALL ShowContinueError(' or use an EMS actuator to establish a setpoint at the outlet node ')
CALL ShowContinueError(' The overall loop setpoint will be assumed for chiller. The simulation continues ... ')
ElectricEIRChiller(EIRChillNum)%ModulatedFlowErrDone = .TRUE.
ENDIF
ENDIF
ENDIF
ElectricEIRChiller(EIRChillNum)%ModulatedFlowSetToLoop = .TRUE.
Node(ElectricEIRChiller(EIRChillNum)%EvapOutletNodeNum)%TempSetPoint = &
Node(PlantLoop(ElectricEIRChiller(EIRChillNum)%CWLoopNum)%TempSetPointNodeNum)%TempSetPoint
Node(ElectricEIRChiller(EIRChillNum)%EvapOutletNodeNum)%TempSetPointHi = &
Node(PlantLoop(ElectricEIRChiller(EIRChillNum)%CWLoopNum)%TempSetPointNodeNum)%TempSetPointHi
ENDIF
ENDIF
MyFlag(EIRChillNum)=.FALSE.
ENDIF
IF (MyEnvrnFlag(EIRChillNum) .and. BeginEnvrnFlag .AND. (PlantSizesOkayToFinalize)) THEN
IF (PlantSizeNotComplete) CALL SizeElectricEIRChiller(EIRChillNum)
rho = GetDensityGlycol(PlantLoop(ElectricEIRChiller(EIRChillNum)%CWLoopNum)%FluidName, &
InitConvTemp, &
PlantLoop(ElectricEIRChiller(EIRChillNum)%CWLoopNum)%FluidIndex,&
'InitElectricEIRChiller')
ElectricEIRChiller(EIRChillNum)%EvapMassFlowRateMax = ElectricEIRChiller(EIRChillNum)%EvapVolFlowRate * rho
CALL InitComponentNodes(0.d0, ElectricEIRChiller(EIRChillNum)%EvapMassFlowRateMax, &
EvapInletNode, &
EvapOutletNode, &
ElectricEIRChiller(EIRChillNum)%CWLoopNum, &
ElectricEIRChiller(EIRChillNum)%CWLoopSideNum, &
ElectricEIRChiller(EIRChillNum)%CWBranchNum, &
ElectricEIRChiller(EIRChillNum)%CWCompNum)
IF (ElectricEIRChiller(EIRChillNum)%CondenserType == WaterCooled) THEN
rho = GetDensityGlycol(PlantLoop(ElectricEIRChiller(EIRChillNum)%CDLoopNum)%FluidName, &
ElectricEIRChiller(EIRChillNum)%TempRefCondIn, &
PlantLoop(ElectricEIRChiller(EIRChillNum)%CDLoopNum)%FluidIndex,&
'InitElectricEIRChiller')
ElectricEIRChiller(EIRChillNum)%CondMassFlowRateMax = rho * ElectricEIRChiller(EIRChillNum)%CondVolFlowRate
CALL InitComponentNodes(0.d0, ElectricEIRChiller(EIRChillNum)%CondMassFlowRateMax ,&
CondInletNode, &
CondOutletNode, &
ElectricEIRChiller(EIRChillNum)%CDLoopNum, &
ElectricEIRChiller(EIRChillNum)%CDLoopSideNum, &
ElectricEIRChiller(EIRChillNum)%CDBranchNum, &
ElectricEIRChiller(EIRChillNum)%CDCompNum)
Node(CondInletNode)%Temp = ElectricEIRChiller(EIRChillNum)%TempRefCondIn
ELSE ! air or evap air condenser
! Initialize maximum available condenser flow rate
rho = PsyRhoAirFnPbTdbW(StdBaroPress,ElectricEIRChiller(EIRChillNum)%TempRefCondIn,0.0D0,'InitElectricEIRChiller')
ElectricEIRChiller(EIRChillNum)%CondMassFlowRateMax = rho * ElectricEIRChiller(EIRChillNum)%CondVolFlowRate
Node(CondInletNode)%MassFlowRate = ElectricEIRChiller(EIRChillNum)%CondMassFlowRateMax
Node(CondOutletNode)%MassFlowRate = Node(CondInletNode)%MassFlowrate
Node(CondInletNode)%MassFlowRateMaxAvail = Node(CondInletNode)%MassFlowrate
Node(CondInletNode)%MassFlowRateMax = Node(CondInletNode)%MassFlowrate
Node(CondOutletNode)%MassFlowRateMax = Node(CondInletNode)%MassFlowrate
Node(CondInletNode)%MassFlowRateMinAvail = 0.0d0
Node(CondInletNode)%MassFlowRateMin = 0.0d0
Node(CondOutletNode)%MassFlowRateMinAvail = 0.0d0
Node(CondOutletNode)%MassFlowRateMin = 0.0d0
Node(CondInletNode)%Temp = ElectricEIRChiller(EIRChillNum)%TempRefCondIn
ENDIF
IF (ElectricEIRChiller(EIRChillNum)%HeatRecActive) THEN
rho = GetDensityGlycol(PlantLoop(ElectricEIRChiller(EIRChillNum)%HRLoopNum)%FluidName, &
InitConvTemp, &
PlantLoop(ElectricEIRChiller(EIRChillNum)%HRLoopNum)%FluidIndex,&
'InitElectricEIRChiller')
ElectricEIRChiller(EIRChillNum)%DesignHeatRecMassFlowRate = rho * &
ElectricEIRChiller(EIRChillNum)%DesignHeatRecVolFlowRate
CALL InitComponentNodes(0.0D0, ElectricEIRChiller(EIRChillNum)%DesignHeatRecMassFlowRate , &
ElectricEIRChiller(EIRChillNum)%HeatRecInletNodeNum, &
ElectricEIRChiller(EIRChillNum)%HeatRecOutletNodeNum, &
ElectricEIRChiller(EIRChillNum)%HRLoopNum, &
ElectricEIRChiller(EIRChillNum)%HRLoopSideNum, &
ElectricEIRChiller(EIRChillNum)%HRBranchNum, &
ElectricEIRChiller(EIRChillNum)%HRCompNum)
! overall capacity limit
ElectricEIRChiller(EIRChillNum)%HeatRecMaxCapacityLimit = ElectricEIRChiller(EIRChillNum)%HeatRecCapacityFraction &
* (ElectricEIRChiller(EIRChillNum)%RefCap + ElectricEIRChiller(EIRChillNum)%RefCap &
/ElectricEIRChiller(EIRChillNum)%RefCOP)
IF(ElectricEIRChiller(EIRChillNum)%HeatRecSetpointNodeNum > 0)THEN
SELECT CASE (PlantLoop(ElectricEIRChiller(EIRChillNum)%HRLoopNum)%LoopDemandCalcScheme)
CASE (SingleSetPoint)
THeatRecSetpoint = Node(ElectricEIRChiller(EIRChillNum)%HeatRecSetpointNodeNum)%TempSetPoint
CASE (DualSetPointDeadBand)
THeatRecSetpoint = Node(ElectricEIRChiller(EIRChillNum)%HeatRecSetpointNodeNum)%TempSetPointHi
END SELECT
IF(THeatRecSetpoint == SensedNodeFlagValue)THEN
IF (.NOT. AnyEnergyManagementSystemInModel) THEN
IF (.NOT. ElectricEIRChiller(EIRChillNum)%HRSPErrDone) THEN
CALL ShowWarningError('Missing heat recovery temperature setpoint for chiller named ' // &
TRIM(ElectricEIRChiller(EIRChillNum)%Name) )
CALL ShowContinueError(' A temperature setpoint is needed at the heat recovery leaving temperature ' // &
'setpoint node specified, use a SetpointManager')
CALL ShowContinueError(' The overall loop setpoint will be assumed for heat recovery. '// &
'The simulation continues ...')
ElectricEIRChiller(EIRChillNum)%HeatRecSetpointNodeNum = &
PlantLoop(ElectricEIRChiller(EIRChillNum)%HRLoopNum)%TempSetPointNodeNum
ElectricEIRChiller(EIRChillNum)%HRSPErrDone = .TRUE.
ENDIF
ELSE
! need call to EMS to check node
FatalError = .FALSE. ! but not really fatal yet, but should be.
CALL CheckIfNodeSetpointManagedByEMS(ElectricEIRChiller(EIRChillNum)%EvapOutletNodeNum,iTemperatureSetpoint, FatalError)
IF (FatalError) THEN
IF (.NOT. ElectricEIRChiller(EIRChillNum)%HRSPErrDone) THEN
CALL ShowWarningError('Missing heat recovery temperature setpoint for chiller named ' // &
TRIM(ElectricEIRChiller(EIRChillNum)%Name) )
CALL ShowContinueError(' A temperature setpoint is needed at the heat recovery leaving temperature ' // &
'setpoint node specified, use a SetpointManager to establish a setpoint')
CALL ShowContinueError(' or use an EMS actuator to establish a setpoint at this node ')
CALL ShowContinueError(' The overall loop setpoint will be assumed for heat recovery. '// &
'The simulation continues ...')
ElectricEIRChiller(EIRChillNum)%HeatRecSetpointNodeNum = &
PlantLoop(ElectricEIRChiller(EIRChillNum)%HRLoopNum)%TempSetPointNodeNum
ElectricEIRChiller(EIRChillNum)%HRSPErrDone = .TRUE.
ENDIF
ENDIF
END IF ! IF (.NOT. AnyEnergyManagementSystemInModel) THEN
END IF ! IF(THeatRecSetpoint == SensedNodeFlagValue)THEN
END IF ! IF(ElectricEIRChiller(EIRChillNum)%HeatRecSetpointNodeNum > 0)THEN
ENDIF ! IF (ElectricEIRChiller(EIRChillNum)%HeatRecActive) THEN
MyEnvrnFlag(EIRChillNum) = .FALSE.
END IF
IF (.not. BeginEnvrnFlag) THEN
MyEnvrnFlag(EIRChillNum)=.true.
END IF
IF ((ElectricEIRChiller(EIRChillNum)%FlowMode == LeavingSetpointModulated) &
.AND. ElectricEIRChiller(EIRChillNum)%ModulatedFlowSetToLoop) THEN
! fix for clumsy old input that worked because loop setpoint was spread.
! could be removed with transition, testing , model change, period of being obsolete.
Node(ElectricEIRChiller(EIRChillNum)%EvapOutletNodeNum)%TempSetPoint = &
Node(PlantLoop(ElectricEIRChiller(EIRChillNum)%CWLoopNum)%TempSetPointNodeNum)%TempSetPoint
Node(ElectricEIRChiller(EIRChillNum)%EvapOutletNodeNum)%TempSetPointHi = &
Node(PlantLoop(ElectricEIRChiller(EIRChillNum)%CWLoopNum)%TempSetPointNodeNum)%TempSetPointHi
ENDIF
IF ((ABS(MyLoad) > 0.d0) .AND. RunFlag) THEN
mdot = ElectricEIRChiller(EIRChillNum)%EvapMassFlowRateMax
mdotCond = ElectricEIRChiller(EIRChillNum)%CondMassFlowRateMax
ELSE
mdot = 0.d0
mdotCond = 0.d0
ENDIF
CALL SetComponentFlowRate( mdot, EvapInletNode, EvapOutletNode, &
ElectricEIRChiller(EIRChillNum)%CWLoopNum, &
ElectricEIRChiller(EIRChillNum)%CWLoopSideNum, &
ElectricEIRChiller(EIRChillNum)%CWBranchNum, &
ElectricEIRChiller(EIRChillNum)%CWCompNum)
IF (ElectricEIRChiller(EIRChillNum)%CondenserType == WaterCooled) THEN
CALL SetComponentFlowRate( mdotCond, CondInletNode, CondOutletNode, &
ElectricEIRChiller(EIRChillNum)%CDLoopNum, &
ElectricEIRChiller(EIRChillNum)%CDLoopSideNum, &
ElectricEIRChiller(EIRChillNum)%CDBranchNum, &
ElectricEIRChiller(EIRChillNum)%CDCompNum)
ENDIF
! Initialize heat recovery flow rates at node
IF (ElectricEIRChiller(EIRChillNum)%HeatRecActive ) THEN
LoopNum = ElectricEIRChiller(EIRChillNum)%HRLoopNum
LoopSideNum = ElectricEIRChiller(EIRChillNum)%HRLoopSideNum
BranchIndex = ElectricEIRChiller(EIRChillNum)%HRBranchNum
CompIndex = ElectricEIRChiller(EIRChillNum)%HRCompNum
If (RunFlag) Then
mdot = ElectricEIRChiller(EIRChillNum)%DesignHeatRecMassFlowRate
ELSE
mdot = 0.0D0
ENDIF
CALL SetComponentFlowRate(mdot,HeatRecInNode,HeatRecOutNode,LoopNum,LoopSideNum,BranchIndex,CompIndex)
END IF
IF (ElectricEIRChiller(EIRChillNum)%CondenserType == EvapCooled) THEN
BasinHeaterPower = 0.0d0
ENDIF
RETURN
END SUBROUTINE InitElectricEIRChiller