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) | :: | WrapperNum | |||
logical, | intent(in) | :: | RunFlag | |||
logical, | intent(in) | :: | FirstIteration | |||
real(kind=r64), | intent(in) | :: | MyLoad | |||
integer, | intent(in) | :: | LoopNum |
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 InitWrapper(WrapperNum,RunFlag,FirstIteration,myLoad,LoopNum)
! SUBROUTINE INFORMATION:
! AUTHOR Daeho Kang, PNNL
! DATE WRITTEN Feb 2013
! MODIFIED na
! RE-ENGINEERED na
! PURPOSE OF THIS SUBROUTINE:
! This subroutine is for initializations of the CentralHeatPumpSystem variables
! METHODOLOGY EMPLOYED:
! Uses the status flags to trigger initializations.
! REFERENCES:
! na
! USE STATEMENTS:
USE DataGlobals, ONLY : BeginEnvrnFlag, AnyEnergyManagementSystemInModel, DayOfSim, &
HourOfDay, NumOfTimeStepInHour, outputfiledebug, InitConvTemp
USE DataPlant, ONLY : PlantLoop, TypeOf_CentralGroundSourceHeatPump, ScanPlantLoopsForObject, &
PlantSizesOkayToFinalize, PlantSizeNotComplete, LoopFlowStatus_NeedyIfLoopOn
USE InputProcessor, ONLY : SameString
USE DataEnvironment, ONLY : StdBaroPress
USE Psychrometrics, ONLY : PsyRhoAirFnPbTdbW
USE CurveManager, ONLY : GetCurveMinMaxValues
USE PlantUtilities, ONLY : InterConnectTwoPlantLoopSides, InitComponentNodes, SetComponentFlowRate
USE EMSManager, ONLY : iTemperatureSetpoint, CheckIfNodeSetpointManagedByEMS
IMPLICIT NONE ! Enforce explicit typing of all variables in this routine
! SUBROUTINE ARGUMENT DEFINITIONS:
INTEGER, INTENT(IN) :: WrapperNum ! Number of the current wrapper being simulated
LOGICAL, INTENT(IN) :: RunFlag ! TRUE when chiller operating
LOGICAL, INTENT(IN) :: FirstIteration ! Initialize variables when TRUE
REAL(r64), INTENT(IN) :: MyLoad ! Demand Load
INTEGER, INTENT(IN) :: LoopNum ! Loop Number Index
! SUBROUTINE PARAMETER DEFINITIONS:
! na
! INTERFACE BLOCK SPECIFICATIONS:
! na
! DERIVED TYPE DEFINITIONS:
! na
! SUBROUTINE LOCAL VARIABLE DECLARATIONS:
LOGICAL,SAVE :: MyWrapperOneTimeFlag = .true. ! Flag used to execute code only once
LOGICAL, ALLOCATABLE, SAVE, DIMENSION(:) :: MyWrapperFlag ! TRUE in order to set component location
LOGICAL, ALLOCATABLE, SAVE, DIMENSION(:) :: MyWrapperEnvrnFlag ! TRUE when new environment is started
INTEGER :: WrapperCondInletNode ! Node number for condenser water inlet node
INTEGER :: WrapperCondOutletNode ! 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
INTEGER :: Comp ! component index
INTEGER :: ChillerHeaterNum ! Chiller Heater index
INTEGER :: GSHeatPumpNum ! Ground Source Heat Pump index
LOGICAL :: errFlag ! Err flag
LOGICAL :: FatalError ! Fatal error indicator
INTEGER :: CHWInletNodeNum ! Chilled water inlet node number
INTEGER :: CHWOutletNodeNum ! Chilled water outlet node number
INTEGER :: HWInletNodeNum ! Hot water inlet node number
INTEGER :: HWOutletNodeNum ! Hot water outlet node number
INTEGER :: GLHEInletNodeNum ! Condenser water inlet node number
INTEGER :: GLHEOutletNodeNum ! Condenser water outlet node number
REAL(r64) :: rho ! local fluid density
REAL(r64) :: mdotCHW ! Chilled water mass flow rate
REAL(r64) :: mdotHW ! Hot water mass flow rate
REAL(r64) :: mdotGLHE ! Condenser water mass flow rate
REAL(r64) :: CHWMassFlowRateMax ! Maximum chilled water mass flow rate
REAL(r64) :: HWMassFlowRateMax ! Maximum hot water mass flow rate
REAL(r64) :: GLHEMassFlowRateMax ! Maximum condenser water mass flow rate
REAL(r64) :: mdotCHWAvail ! Maximum available chillled water mass flow rate
REAL(r64) :: mdotHWAvail ! Maximum available hot water mass flow ratre
REAL(r64) :: mdotGLHEAvail ! Maximum available condenser mass flow rate
! Do the one time initializations
IF (MyWrapperOneTimeFlag) THEN
ALLOCATE(MyWrapperEnvrnFlag(NumWrappers))
ALLOCATE(MyWrapperFlag(NumWrappers))
MyWrapperEnvrnFlag = .TRUE.
MyWrapperFlag = .TRUE.
MyWrapperOneTimeFlag = .FALSE.
END IF
IF (MyWrapperFlag(WrapperNum)) THEN
! Locate the chillers on the plant loops for later usage
errFlag=.false.
CALL ScanPlantLoopsForObject(Wrapper(WrapperNum)%Name, &
TypeOf_CentralGroundSourceHeatPump, &
Wrapper(WrapperNum)%CWLoopNum, &
Wrapper(WrapperNum)%CWLoopSideNum, &
Wrapper(WrapperNum)%CWBranchNum,&
Wrapper(WrapperNum)%CWCompNum, &
InletNodeNumber = Wrapper(WrapperNum)%CHWInletNodeNum, &
errFlag=errFlag)
CALL ScanPlantLoopsForObject(Wrapper(WrapperNum)%Name, &
TypeOf_CentralGroundSourceHeatPump, &
Wrapper(WrapperNum)%HWLoopNum, &
Wrapper(WrapperNum)%HWLoopSideNum, &
Wrapper(WrapperNum)%HWBranchNum,&
Wrapper(WrapperNum)%HWCompNum, &
InletNodeNumber = Wrapper(WrapperNum)%HWInletNodeNum, &
errFlag=errFlag)
CALL ScanPlantLoopsForObject(Wrapper(WrapperNum)%Name, &
TypeOf_CentralGroundSourceHeatPump, &
Wrapper(WrapperNum)%GLHELoopNum, &
Wrapper(WrapperNum)%GLHELoopSideNum, &
Wrapper(WrapperNum)%GLHEBranchNum,&
Wrapper(WrapperNum)%GLHECompNum, &
InletNodeNumber = Wrapper(WrapperNum)%GLHEInletNodeNum, &
errFlag=errFlag)
CALL InterConnectTwoPlantLoopSides( Wrapper(WrapperNum)%CWLoopNum, &
Wrapper(WrapperNum)%CWLoopSideNum, &
Wrapper(WrapperNum)%GLHELoopNum, &
Wrapper(WrapperNum)%GLHELoopSideNum, &
TypeOf_CentralGroundSourceHeatPump, .TRUE. )
CALL InterConnectTwoPlantLoopSides( Wrapper(WrapperNum)%HWLoopNum, &
Wrapper(WrapperNum)%HWLoopSideNum, &
Wrapper(WrapperNum)%GLHELoopNum, &
Wrapper(WrapperNum)%GLHELoopSideNum, &
TypeOf_CentralGroundSourceHeatPump, .TRUE. )
CALL InterConnectTwoPlantLoopSides( Wrapper(WrapperNum)%CWLoopNum, &
Wrapper(WrapperNum)%CWLoopSideNum, &
Wrapper(WrapperNum)%HWLoopNum, &
Wrapper(WrapperNum)%HWLoopSideNum, &
TypeOf_CentralGroundSourceHeatPump, .TRUE. )
IF (Wrapper(WrapperNum)%VariableFlowCH) THEN
! Reset flow priority
IF(LoopNum == Wrapper(WrapperNum)%CWLoopNum) THEN
PlantLoop(Wrapper(WrapperNum)%CWLoopNum)%LoopSide(Wrapper(WrapperNum)%CWLoopSideNum)% &
Branch(Wrapper(WrapperNum)%CWBranchNum)%Comp(Wrapper(WrapperNum)%CWCompNum)%FlowPriority &
= LoopFlowStatus_NeedyIfLoopOn
ELSE IF(LoopNum == Wrapper(WrapperNum)%HWLoopNum) THEN
PlantLoop(Wrapper(WrapperNum)%HWLoopNum)%LoopSide(Wrapper(WrapperNum)%HWLoopSideNum)% &
Branch(Wrapper(WrapperNum)%HWBranchNum)%Comp(Wrapper(WrapperNum)%HWCompNum)%FlowPriority &
= LoopFlowStatus_NeedyIfLoopOn
END IF
! check if setpoint on outlet node - chilled water loop
IF (Node(Wrapper(WrapperNum)%CHWOutletNodeNum)%TempSetPoint == SensedNodeFlagValue) THEN
IF (.NOT. AnyEnergyManagementSystemInModel) THEN
IF (.NOT. Wrapper(WrapperNum)%CoolSetpointErrDone) THEN
CALL ShowWarningError('Missing temperature setpoint on cooling side for CentralHeatPumpSystem named ' // &
TRIM(Wrapper(WrapperNum)%Name) )
CALL ShowContinueError(' A temperature setpoint is needed at the outlet node of a CentralHeatPumpSystem ' // &
', use a SetpointManager')
CALL ShowContinueError(' The overall loop setpoint will be assumed for CentralHeatPumpSystem. '// &
'The simulation continues ... ')
Wrapper(WrapperNum)%CoolSetpointErrDone = .TRUE.
ENDIF
ELSE
! need call to EMS to check node
FatalError = .FALSE. ! but not really fatal yet, but should be.
CALL CheckIfNodeSetpointManagedByEMS(Wrapper(WrapperNum)%CHWOutletNodeNum,iTemperatureSetpoint, FatalError)
IF (FatalError) THEN
IF (.NOT. Wrapper(WrapperNum)%CoolSetpointErrDone) THEN
CALL ShowWarningError('Missing temperature setpoint on cooling side for CentralHeatPumpSystem named ' // &
TRIM(Wrapper(WrapperNum)%Name) )
CALL ShowContinueError('A temperature setpoint is needed at the outlet node of a CentralHeatPumpSystem ')
CALL ShowContinueError('use a Setpoint Manager to establish a setpoint at the chiller side 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 side. ' // &
'The simulation continues ... ')
Wrapper(WrapperNum)%CoolSetpointErrDone = .TRUE.
ENDIF
ENDIF
ENDIF
Wrapper(WrapperNum)%CoolSetpointSetToLoop = .TRUE.
Node(Wrapper(WrapperNum)%CHWOutletNodeNum)%TempSetPoint = &
Node(PlantLoop(Wrapper(WrapperNum)%CWLoopNum)%TempSetPointNodeNum)%TempSetPoint
ENDIF
IF (Node(Wrapper(WrapperNum)%HWOutletNodeNum)%TempSetPoint == SensedNodeFlagValue) THEN
IF (.NOT. AnyEnergyManagementSystemInModel) THEN
IF (.NOT. Wrapper(WrapperNum)%HeatSetpointErrDone) THEN
CALL ShowWarningError('Missing temperature setpoint on heating side for CentralHeatPumpSystem named ' // &
TRIM(Wrapper(WrapperNum)%Name) )
CALL ShowContinueError(' A temperature setpoint is needed at the outlet node of a CentralHeatPumpSystem ' // &
', use a SetpointManager')
CALL ShowContinueError(' The overall loop setpoint will be assumed for CentralHeatPumpSystem. '// &
'The simulation continues ... ')
Wrapper(WrapperNum)%HeatSetpointErrDone = .TRUE.
ENDIF
ELSE
! need call to EMS to check node
FatalError = .FALSE. ! but not really fatal yet, but should be.
CALL CheckIfNodeSetpointManagedByEMS(Wrapper(WrapperNum)%HWOutletNodeNum,iTemperatureSetpoint, FatalError)
IF (FatalError) THEN
IF (.NOT. Wrapper(WrapperNum)%HeatSetpointErrDone) THEN
CALL ShowWarningError('Missing temperature setpoint on heating side for CentralHeatPumpSystem named ' // &
TRIM(Wrapper(WrapperNum)%Name) )
CALL ShowContinueError('A temperature setpoint is needed at the outlet node of a CentralHeatPumpSystem ')
CALL ShowContinueError('use a Setpoint Manager to establish a setpoint at the chiller side 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 side. ' // &
'The simulation continues ... ')
Wrapper(WrapperNum)%HeatSetpointErrDone = .TRUE.
ENDIF
ENDIF
ENDIF
Wrapper(WrapperNum)%HeatSetpointSetToLoop = .TRUE.
Node(Wrapper(WrapperNum)%HWOutletNodeNum)%TempSetPoint = &
Node(PlantLoop(Wrapper(WrapperNum)%HWLoopNum)%TempSetPointNodeNum)%TempSetPoint
ENDIF
ENDIF
MyWrapperFlag(WrapperNum)=.FALSE.
ENDIF
CHWInletNodeNum = Wrapper(WrapperNum)%CHWInletNodeNum
CHWOutletNodeNum = Wrapper(WrapperNum)%CHWOutletNodeNum
HWInletNodeNum = Wrapper(WrapperNum)%HWInletNodeNum
HWOutletNodeNum = Wrapper(WrapperNum)%HWOutletNodeNum
GLHEInletNodeNum = Wrapper(WrapperNum)%GLHEInletNodeNum
GLHEOutletNodeNum = Wrapper(WrapperNum)%GLHEOutletNodeNum
IF (MyWrapperEnvrnFlag(WrapperNum) .AND. BeginEnvrnFlag .AND. (PlantSizesOkayToFinalize)) THEN
IF (PlantSizeNotComplete) CALL SizeWrapper(WrapperNum)
IF (Wrapper(WrapperNum)%ControlMode==SmartMixing) THEN
Wrapper(WrapperNum)%CHWVolFlowRate = 0.0d0
Wrapper(WrapperNum)%HWVolFlowRate = 0.0d0
Wrapper(WrapperNum)%GLHEVolFlowRate = 0.0d0
DO ChillerHeaterNum = 1, Wrapper(WrapperNum)%ChillerHeaterNums
Wrapper(WrapperNum)%CHWVolFlowRate = Wrapper(WrapperNum)%CHWVolFlowRate + &
Wrapper(WrapperNum)%Chillerheater(ChillerHeaterNum)%EvapVolFlowRate
Wrapper(WrapperNum)%HWVolFlowRate = Wrapper(WrapperNum)%HWVolFlowRate + &
Wrapper(WrapperNum)%Chillerheater(ChillerHeaterNum)%DesignHotWaterVolFlowRate
Wrapper(WrapperNum)%GLHEVolFlowRate = Wrapper(WrapperNum)%GLHEVolFlowRate + &
Wrapper(WrapperNum)%Chillerheater(ChillerHeaterNum)%CondVolFlowRate
END DO
rho = GetDensityGlycol(PlantLoop(Wrapper(WrapperNum)%CWLoopNum)%FluidName, &
InitConvTemp, &
PlantLoop(Wrapper(WrapperNum)%CWLoopNum)%FluidIndex,&
'InitCGSHPHeatPump')
Wrapper(WrapperNum)%CHWMassFlowRateMax = Wrapper(WrapperNum)%CHWVolFlowRate * rho
Wrapper(WrapperNum)%HWMassFlowRateMax = Wrapper(WrapperNum)%HWVolFlowRate * rho
Wrapper(WrapperNum)%GLHEMassFlowRateMax = Wrapper(WrapperNum)%GLHEVolFlowRate * rho
CALL InitComponentNodes(0.d0, Wrapper(WrapperNum)%CHWMassFlowRateMax, &
CHWInletNodeNum, &
CHWOutletNodeNum, &
Wrapper(WrapperNum)%CWLoopNum, &
Wrapper(WrapperNum)%CWLoopSideNum, &
Wrapper(WrapperNum)%CWBranchNum, &
Wrapper(WrapperNum)%CWCompNum)
CALL InitComponentNodes(0.d0, Wrapper(WrapperNum)%HWMassFlowRateMax, &
HWInletNodeNum, &
HWOutletNodeNum, &
Wrapper(WrapperNum)%HWLoopNum, &
Wrapper(WrapperNum)%HWLoopSideNum, &
Wrapper(WrapperNum)%HWBranchNum, &
Wrapper(WrapperNum)%HWCompNum)
CALL InitComponentNodes(0.d0, Wrapper(WrapperNum)%GLHEMassFlowRateMax, &
GLHEInletNodeNum, &
GLHEOutletNodeNum, &
Wrapper(WrapperNum)%GLHELoopNum, &
Wrapper(WrapperNum)%GLHELoopSideNum, &
Wrapper(WrapperNum)%GLHEBranchNum, &
Wrapper(WrapperNum)%GLHECompNum)
! Initialize nodes for individual chiller heaters
DO ChillerHeaterNum = 1 , Wrapper(WrapperNum)%ChillerHeaterNums
Wrapper(WrapperNum)%Chillerheater(ChillerHeaterNum)%EvapInletNode%MassFlowRateMin = 0.d0
Wrapper(WrapperNum)%Chillerheater(ChillerHeaterNum)%EvapInletNode%MassFlowRateMinAvail = 0.d0
Wrapper(WrapperNum)%Chillerheater(ChillerHeaterNum)%EvapInletNode%MassFlowRateMax = &
rho * Wrapper(WrapperNum)%Chillerheater(ChillerHeaterNum)%EvapVolFlowRate
Wrapper(WrapperNum)%Chillerheater(ChillerHeaterNum)%EvapInletNode%MassFlowRateMaxAvail = &
rho * Wrapper(WrapperNum)%Chillerheater(ChillerHeaterNum)%EvapVolFlowRate
Wrapper(WrapperNum)%Chillerheater(ChillerHeaterNum)%EvapInletNode%MassFlowRate = 0.d0
Wrapper(WrapperNum)%Chillerheater(ChillerHeaterNum)%CondInletNode%MassFlowRateMin = 0.d0
Wrapper(WrapperNum)%Chillerheater(ChillerHeaterNum)%CondInletNode%MassFlowRateMinAvail = 0.d0
Wrapper(WrapperNum)%Chillerheater(ChillerHeaterNum)%CondInletNode%MassFlowRateMax = &
rho * Wrapper(WrapperNum)%Chillerheater(ChillerHeaterNum)%EvapVolFlowRate
Wrapper(WrapperNum)%Chillerheater(ChillerHeaterNum)%CondInletNode%MassFlowRateMaxAvail = &
rho * Wrapper(WrapperNum)%Chillerheater(ChillerHeaterNum)%EvapVolFlowRate
Wrapper(WrapperNum)%Chillerheater(ChillerHeaterNum)%CondInletNode%MassFlowRate = 0.d0
Wrapper(WrapperNum)%Chillerheater(ChillerHeaterNum)%CondInletNode%MassFlowRateRequest = 0.d0
END DO
END IF
MyWrapperEnvrnFlag(WrapperNum) = .FALSE.
ENDIF
IF (.not. BeginEnvrnFlag) THEN
MyWrapperEnvrnFlag(WrapperNum) = .TRUE.
ENDIF
IF (Wrapper(WrapperNum)%CoolSetpointSetToLoop) THEN
!IF (CurCoolingLoad > 0.d0) THEN
Node(Wrapper(WrapperNum)%CHWOutletNodeNum)%TempSetPoint = &
Node(PlantLoop(Wrapper(WrapperNum)%CWLoopNum)%TempSetPointNodeNum)%TempSetPoint
ENDIF
!IF (CurHeatingLoad > 0.d0) THEN
IF (Wrapper(WrapperNum)%HeatsetpointSetToLoop) THEN
Node(Wrapper(WrapperNum)%HWOutletNodeNum)%TempSetPoint = &
Node(PlantLoop(Wrapper(WrapperNum)%HWLoopNum)%TempSetPointNodeNum)%TempSetPoint
!ENDIF
ENDIF
! Switch over the mass flow rate to the condenser loop, i.e., ground heat exchanger
IF (LoopNum == Wrapper(WrapperNum)%CWLoopNum) THEN ! called for on cooling loop
IF (MyLoad < -1.d0) THEN ! calling for cooling
mdotCHW = Node(CHWInletNodeNum)%MassFlowRateMax
ELSE
mdotCHW = 0.d0
ENDIF
IF ( Wrapper(WrapperNum)%WrapperHeatingLoad > 1.d0) THEN
mdotHW = Node(HWInletNodeNum)%MassFlowRateMax
ELSE
mdotHW = 0.d0
ENDIF
IF ((MyLoad < -1.d0) .OR. (Wrapper(WrapperNum)%WrapperHeatingLoad > 1.d0)) THEN
mdotGLHE = Node(GLHEInletNodeNum)%MassFlowRateMax
ELSE
mdotGLHE = 0.d0
ENDIF
ELSEIF (LoopNum == Wrapper(WrapperNum)%HWLoopNum) THEN
IF (MyLoad > 1.d0) THEN
mdotHW = Node(HWInletNodeNum)%MassFlowRateMax
ELSE
mdotHW = 0.d0
ENDIF
IF (Wrapper(WrapperNum)%WrapperCoolingLoad > 1.d0) THEN
mdotCHW = Node(CHWInletNodeNum)%MassFlowRateMax
ELSE
mdotCHW = 0.d0
ENDIF
IF ((MyLoad > 1.d0) .OR. (Wrapper(WrapperNum)%WrapperCoolingLoad > 1.d0)) THEN
mdotGLHE = Node(GLHEInletNodeNum)%MassFlowRateMax
ELSE
mdotGLHE = 0.d0
ENDIF
ELSEIF (LoopNum == Wrapper(WrapperNum)%GLHELoopNum) THEN
IF (Wrapper(WrapperNum)%WrapperCoolingLoad > 1.d0) THEN
mdotCHW = Node(CHWInletNodeNum)%MassFlowRateMax
ELSE
mdotCHW = 0.d0
ENDIF
IF (Wrapper(WrapperNum)%WrapperHeatingLoad > 1.d0) THEN
mdotHW = Node(HWInletNodeNum)%MassFlowRateMax
ELSE
mdotHW = 0.d0
ENDIF
IF ((Wrapper(WrapperNum)%WrapperHeatingLoad > 1.d0) .OR. &
(Wrapper(WrapperNum)%WrapperCoolingLoad > 1.d0)) THEN
mdotGLHE = Node(GLHEInletNodeNum)%MassFlowRateMax
ELSE
mdotGLHE = 0.d0
ENDIF
ENDIF
CALL SetComponentFlowRate(mdotCHW, CHWInletNodeNum, CHWOutletNodeNum, &
Wrapper(WrapperNum)%CWLoopNum, &
Wrapper(WrapperNum)%CWLoopSideNum, &
Wrapper(WrapperNum)%CWBranchNum, &
Wrapper(WrapperNum)%CWCompNum)
CALL SetComponentFlowRate( mdotHW, HWInletNodeNum, HWOutletNodeNum, &
Wrapper(WrapperNum)%HWLoopNum, &
Wrapper(WrapperNum)%HWLoopSideNum, &
Wrapper(WrapperNum)%HWBranchNum, &
Wrapper(WrapperNum)%HWCompNum)
CALL SetComponentFlowRate( mdotGLHE, GLHEInletNodeNum, GLHEOutletNodeNum, &
Wrapper(WrapperNum)%GLHELoopNum, &
Wrapper(WrapperNum)%GLHELoopSideNum, &
Wrapper(WrapperNum)%GLHEBranchNum, &
Wrapper(WrapperNum)%GLHECompNum)
RETURN
END SUBROUTINE InitWrapper