! This component has been assigned Type Number 203. If that number conflicts with ! another user Type number, you will need to change it and recompile the appropriate ! dll. SUBROUTINE TYPE203(TIME,XIN,OUT,T,DTDT,PAR,INFO,ICNTRL,*) !DEC$ATTRIBUTES DLLEXPORT :: TYPE203 C*********************************************************************** C THIS SUBROUTINE MODELS A COMMERCIAL (> 100 ton) GAS FIRED DOUBLE-EFFECT C WATER-LITHIUM BROMIDE ABSORPTION CHILLER IN PARALLEL FLOW CONFIGURATION. C THE CHILLER IS MODELED AFTER A YORK PARALLEL FLOW CHILLER. C C THE NOMINAL, FULL LOAD CONDITIONS REFER TO : AN OUTLET CHILLED C WATER TEMPERATURE OF 6.667 C (44 F), AN INLET CHILLED WATER TEMPERATURE OF C 12.22 C (54 F), AN INLET COOLING WATER TEMPERATURE OF 29.44 C (85 F), AND C AN OUTLET COOLING WATER TEMPERATURE OF 35 C (95 F). C C THE PARAMETERS ARE: 1) THE NOMINAL CAPACITY -KJ/HR 2) THE NOMINAL COP-HHV C 3) THE NOMINAL CHILLED WATER FLOW RATE -KG/HR 4) THE NOMINAL COOLING WATER C FLOW RATE -KG/HR. THIS INFORMATION MAY BE OBTAINED FROM THE MANUFACTURERS C CATALOG. C C NOTATION: E-CHILLED WATER (EVAPORATOR) C-COOLING WATER (CONDENSER) C M-MASS FLOW RATE R-RATIO OF A VALUE OVER ITS NOMINAL VALUE C N-NOMINAL T-TEMPERATURE O-OUT I-IN C C THE CHILLER MODULATES BETWEEN 30% AND 100% OF FULL-LOAD AND CYCLES OFF C BELWOW 30%. CAPACITANCE AFFECTS ARE NOT INCLUDED IN THE MODEL. THE INLET C COOLING WATER TEMPERATURE (TCI) RANGE IS 18.33 C (65F) TO 32.22 C (90F). C THE CHILLED WATER SETPOINT (TEO) RANGE IS 5.56 C (42F) AND 8.89 C (48F). C THE CHILLED WATER FLOW RATE CAN BE VARIED PLUS 25% AND MINUS 50% OF THE C NOMINAL VALUE WITH NO EFFECT ON THE CHILLER COP. THE COOLING WATER FLOW C RATE CAN VARY PLUS 25% AND MINUS 50% OF THE NOMINAL VALUE, BUT THERE ARE C CERTAIN CONSTRAINTS DUE TO THE POSSIBILITY OF CRYSTALLIZATION. THESE C CONSTRAINTS EXIST DUE TO THE HIGH VALUES OF THE STRONG SOLUTION C CONCENTRATION EXITING THE HIGH TEMPERATURE GENERATOR WHICH BRINGS THE C CYCLE CLOSER TO THE POSSIBILITY OF CRYSTALLIZATION. THE CONSTRAINTS C WERE DETERMINED USING A HIGH TEMPERATURE GENERATOR TEMPERATURE CUTOFF OF C 165.56C (330F), WHICH WAS OBTAINED FROM THE MANUFACTURERS SPECS AT C TWO FIELD MONITORED SITES. C C OUTPUT #9 IS AN INTERGER VARIABLE DESRIBING THE OPERATING CONDITIONS OF C THE CHILLER MODEL, AND WILL SIGNAL WHEN AN OPERATING CONSTRAINT IS C ENCOUNTERED. -1 REFERS TO A PLF LESS THAN 0.30 FOR WHICH THE MODEL SHUT C DOWN, QLOAD = 0 COP=0. 0 MEANS EVERYTHING IS 0.K. 1 REFERS TO THE THE C CONDTION FOR WHICH THE PLF IS GREATER THAN 1 (QLOAD > QMAX). FOR THIS C CONDITION , QLOAD IS SET TO QMAX, AND THE OUTLET CHILLED WATER IS NOT EQUAL C TO THE CHILLED WATER SETPOINT, BUT IS RECALCULATED. VALUES 2-5 C REFER TO CONSTRAINTS INVOLVING THE INLET COOLING WATER TEMPERATURE AND C THE CHILLED WATER SETPOINT. VALUES 6-9 REFER TO CONSTRAINTS INVOLVING C THE CHILLED AND COOLING WATER FLOW RATES, I.E. LESS THAN 50% OF NOMINAL C OR GREATER THAN 125% OF NOMINAL. A VALUE OF 10 MEANS THE COOLING WATER C FLOW RATE IS INSUFFICIENT FOR THE CONDITIONS AND MUST BE INCREASED TO 75% C OF THE NOMINAL. A VALUE OF 11 MEANS THE COOLING WATER FLOW RATE IS C INSUFFICIENT FOR THE CONDITIONS AND MUST BE INCREASED TO 100% OF THE C NOMINAL. A VALUE OF 12 MEANS THE COOLING WATER FLOW RATE IS INSUFFICIENT C FOR THE CONDITIONS AND MUST BE INCREASED TO 125% OF THE NOMINAL. FOR AN C OUTPUT OF -1 THE MODEL COP IS ZERO. FOR ALL OTHER CONDTIONS THE MODEL WILL C STILL OUTPUT A COP EVEN IT IS NOT VALID (INCORRECT). WARNING C MESSAGES WILL BE PRINTED TO THE LIST FILE FOR OUPUTS OF 1-12. C C CURVE FITS OF COP MAPS OBTAINED FROM A STEADY STATE EES MODEL OF A DOUBLE- C EFFECT WATER-LiBr ABSORPTION CHILLER IN PARALLEL FLOW CONFIGURATION C ARE USED TO DETERMINE THE COP. A CURVEFIT OF THE COMBUSTION EFFICIENCY C AS A FUNCTION OF THE LOAD OBTAINED FROM THE STEADY STATE MODEL IS USED IN C CALCULATING THE OUTLET COOLING WATER TEMPERATURE FROM AN ENERGY BALANCE. C THE CHILLER ELECTRICAL POWER CONSUMED IS CALCULATED FROM A SIMPLE LINEAR C FUNCTION OF THE COOLING LOAD AND WAS OBTAINED FROM FIELD MONITORING DATA C OF THE ELECTRICAL POWER FOR A 200 AND A 400 TON CHILLER. C C WRITTEN BY ERIC A. KOEPPEL, SOLAR ENERGY LAB, 8-28-94 C M.S. Thesis "The Modeling, Performance and Optimal Control of Commercial C Absorption Chillers" C C********************************************************************** DOUBLE PRECISION XIN,OUT INTEGER INFO REAL PAR,TIME DIMENSION XIN(5),OUT(10),PAR(4),INFO(15) CHARACTER*1 TRNEDT,PERCOM,HEADER,PRTLAB,LNKCHK,PRUNIT,IOCHEK, & PRWARN REAL QMAX,COPN,MEN,MCN,TEO,TEI,MEI,TCI,MCI,CPW,TC(6),M(4),TE(3) REAL QLOAD,PLF,MER,MCR,TCO,MCO,MEO,PENALTY REAL C_HMHTC,C_HMLTC,C_LMHTC,C_LMLTC,COPRLM,COPRHM,COPR44 REAL COPR42,COPR48,COPR,QIN,N_HHV,COP,PELEC,TONS INTEGER HTC,LTC,HM,LM,HTE,LTE,FLAG COMMON /LUNITS/ LUR,LUW,IFORM,LUK COMMON /SIM/TIME0,TIMEF,DELT,IWARN COMMON /CONFIG/ TRNEDT,PERCOM,HEADER,PRTLAB,LNKCHK,PRUNIT,IOCHEK, & PRWARN CHARACTER*3 YCHECK(5),OCHECK(10) INTEGER SORTC,SORM REAL EFF EXTERNAL SORTC,SORM,EFF ! Set the version information for TRNSYS IF (INFO(7).EQ.-2) THEN INFO(12) = 15 RETURN 1 ENDIF IF (INFO(7) .GE. 0) GO TO 100 C------------------------------------------------------------------------- C FIRST CALL OF SIMULATION C------------------------------------------------------------------------ INFO(6)=10 INFO(9)=1 CALL TYPECK(1,INFO,5,4,0) DATA YCHECK/'TE1','TE1','MF1', 'TE1','MF1'/ DATA OCHECK/'TE1','MF1','TE1','MF1','PW1','PW1','DM1','PW3','DM1', & 'DM1'/ CALL RCHECK(INFO,YCHECK,OCHECK) C------------------------------------------------------------------------ C SET PARAMETERS AND INPUTS C------------------------------------------------------------------------ 100 QMAX=PAR(1) !NOMINAL CAPCAITY KJ/HR COPN=PAR(2) !NOMINAL COP HHV of fuel MEN=PAR(3) !NOMINAL FLOW RATE KG/HR MCN=PAR(4) !NOMINAL FLOW RATE KG/HR TEO=XIN(1) !CHILLED WATER (EVAPORATOR WATER) SETPOINT TEI=XIN(2) !INLET CHILLED WATER (EVAPORATOR) TEMP MEI=XIN(3) !INLET CHILLED WATER (EVAPORATOR) FLOW RATE TCI=XIN(4) !INLET COOLING WATER TEMP MCI=XIN(5) !INLET COOLING WATER FLOW RATE C------------------------------------------------------------------------ C SET CONSTANTS C------------------------------------------------------------------------ CPW=4.19 C INLET COOLING WATER TEMPERATURES - CELCIUS TC(6)=32.22 !32.22C, 90F TC(5)=29.44 !29.44C, 85F TC(4)=26.67 !26.67C, 80F TC(3)=23.89 !23.89C, 75F TC(2)=21.11 !21.11C, 70F TC(1)=18.33 !18.33C, 65F C CHILLED AND COOLING WATER FLOW RATES RATIOS M(4)=1.25 M(3)=1.0 M(2)=.72 M(1)=.50 C CHILLED WATER SETPOINTS - CELCIUS TE(1)=5.56 !42F TE(2)=6.67 !44F - NOMINAL SETPOINT TE(3)=8.89 !48F C------------------------------------------------------------------------ C CALCULATIONS OF THE OUTPUTS C------------------------------------------------------------------------ FLAG=0 C COOLING LOAD QLOAD=MEI*CPW*(TEI-TEO) !UNITS- KJ/HR C PARTLOAD FACTOR PLF=QLOAD/QMAX C DUE TO UNIT CONVERSIONS, SIG FIGS, ETC.., THE FOLLOWING IS USED TO MAKE C SURE THE PART LOAD FACTOR (PLF) IS NOT GREATER THAN 1.0 C BECAUSE THE CURVE FITS ARE NOT VALID FOR A PLF GREATER THAN 1.0 IF((PLF .GT. 1.0) .AND. (PLF .LE. 1.01)) THEN PLF=1.0 END IF C INLET FLOW RATE RATIOS MER=MEI/MEN MCR=MCI/MCN C CHECK THE PART-LOAD FACTOR LESS THAN 0.30 IF (PLF .LT. .29) THEN FLAG=-1 GO TO 300 !SHUT DOWN - CYCLES OFF END IF C CHECK FOR QLOAD GREATER THAN QMAX IF (PLF .GT. 1.01) THEN PLF=1.0 TEO=TEI-QMAX/(MEI*CPW) FLAG=1 GOTO 350 ELSE FLAG=.01 END IF C CHECK THE INLET COOLING WATER TEMPERATURES, >18.33 C (65F) <32.22 (90F) IF (TCI .LT. 18.325) THEN FLAG=2 TCI=18.33 GOTO 350 ELSE IF ((TCI .GE. 18.32) .AND. (TCI .LT. 18.33)) THEN TCI=18.33 ELSE IF (TCI .GT. 32.224) THEN FLAG=3 TCI=32.22 GOTO 350 END IF C CHECK THE CHILLED WATER SETPOINT, > 5.56 C (42F) < 8.89 C (48F) IF (TEO .LT. 5.555) THEN FLAG=4 GOTO 350 ELSE IF (TEO .GT. 8.9) THEN FLAG=5 GOTO 350 END IF C CHECK THE INLET COOLING WATER FLOW RATE IF(MCR .LT. .49) THEN FLAG=6 GOTO 350 ELSE IF (MCR .GT. 1.251) THEN FLAG=7 GOTO 350 END IF C CHECK THE INLET CHILLED WATER FLOW RATE IF(MER .LT. .49) THEN FLAG=8 GOTO 350 ELSE IF (MER .GT. 1.251) THEN FLAG=9 GOTO 350 END IF C OPERATING CONSTRAINTS - CRYSTALLIZATION COULD OCCUR UNDER THESE CONDITIONS C A HIGH TEMPERATURE GENERATOR TEMPERATURE CUTOFF OF 165.56 C WAS USED TO C ESTABLISH THESE CONDITIONS. A WARNING MESSAGE IS PRINTED AND THE INTEGER C WARNING VARIABLE OUTPUTED. THE COOLING WATER FLOW RATE SHOULD BE INCREASED C TO AVOID THE POSSIBILITY OF CRYSTALLIZATION. IF((TEO .GE. 5.555) .AND. (TEO .LE. 6.39)) THEN IF(TCI .GT. 31.11) THEN IF((MCR .GE. .49) .AND. (MCR .LT. .70)) THEN IF((PLF .GT. .65) .AND. (PLF .LE. .80)) THEN FLAG=10 ELSE IF((PLF .GT. .80) .AND. (PLF .LE. .90)) THEN FLAG=11 ELSE IF(PLF .GT. .90) THEN FLAG=12 END IF ELSE IF((MCR .GE. .70) .AND. (MCR .LT. .90)) THEN IF((PLF .GT. .80) .AND. (PLF .LE. .90)) THEN FLAG=11 ELSE IF(PLF .GT. .90) THEN FLAG=12 END IF ELSE IF((MCR .GE. .90) .AND. (MCR .LE. 1.05)) THEN IF(PLF .GT. .90) THEN FLAG=12 END IF END IF ELSE IF((TCI .GT. 29.44) .AND. (TCI .LE. 31.11)) THEN IF((MCR .GE. .49) .AND. (MCR .LT. .70)) THEN IF((PLF .GT. .70) .AND. (PLF .LE. .85)) THEN FLAG=10 ELSE IF((PLF .GT. .85) .AND. (PLF .LE. .95)) THEN FLAG=11 ELSE IF(PLF .GT. .95) THEN FLAG=12 END IF ELSE IF((MCR .GE. .70) .AND. (MCR .LT. .90)) THEN IF((PLF .GT. .85) .AND. (PLF .LE. .95)) THEN FLAG=11 ELSE IF(PLF .GT. .95) THEN FLAG=12 END IF ELSE IF((MCR .GE. .90) .AND. (MCR .LE. 1.05)) THEN IF(PLF .GT. .95) THEN FLAG=12 END IF END IF ELSE IF((TCI .GT. 28.33) .AND. (TCI .LE. 29.44)) THEN IF((MCR .GE. .49) .AND. (MCR .LT. .70)) THEN IF((PLF .GT. .75) .AND. (PLF .LE. .90)) THEN FLAG=10 ELSE IF(PLF .GT. .90) THEN FLAG=11 END IF ELSE IF((MCR .GE. .70) .AND. (MCR .LT. .90)) THEN IF(PLF .GT. .90) THEN FLAG=11 END IF ELSE IF((MCR .GE. 0.90) .AND. (MCR .LT. 0.97)) THEN IF(PLF .GT. .95) THEN FLAG=11 END IF END IF ELSE IF((TCI .GT. 26.67) .AND. (TCI .LE. 28.33)) THEN IF((MCR .GE. .49) .AND. (MCR .LT. .70)) THEN IF((PLF .GT. .80) .AND. (PLF .LE. 95)) THEN FLAG=10 ELSE IF(PLF .GT. .95) THEN FLAG=11 END IF ELSE IF((MCR .GE. .70) .AND. (MCR .LT. .90)) THEN IF(PLF .GT. .95) THEN FLAG=11 END IF ELSE IF((MCR .GE. .90) .AND. (MCR .LT. .97)) THEN IF(PLF .GT. .975) THEN FLAG=11 END IF END IF ELSE IF((TCI .GT. 26.11) .AND. (TCI .LE. 26.67)) THEN IF((MCR .GE. .49) .AND. (MCR .LT. .70)) THEN IF(PLF .GT. .85) THEN FLAG=10 END IF END IF END IF ELSE IF((TEO .GT. 6.39) .AND. (TEO .LE. 7.5)) THEN IF(TCI .GT. 31.11) THEN IF((MCR .GE. .49) .AND. (MCR .LT. .70)) THEN IF((PLF .GT. .65) .AND. (PLF .LE. 85)) THEN FLAG=10 ELSE IF((PLF .GT. .85) .AND. (PLF .LE. .95)) THEN FLAG=11 ELSE IF(PLF .GT. .95) THEN FLAG=12 END IF ELSE IF((MCR .GE. .70) .AND. (MCR .LT. .90)) THEN IF((PLF .GT. .85) .AND. (PLF .LE. .95)) THEN FLAG=11 ELSE IF(PLF .GT. .95) THEN FLAG=12 END IF ELSE IF((MCR .GE. .90) .AND. (MCR .LE. 1.05)) THEN IF(PLF .GT. .95) THEN FLAG=12 END IF END IF ELSE IF((TCI .GT. 29.44) .AND. (TCI .LE. 31.11)) THEN IF((MCR .GE. .49) .AND. (MCR .LT. .70)) THEN IF((PLF .GT. .70) .AND. (PLF .LE. .90)) THEN FLAG=10 ELSE IF(PLF .GT. .90) THEN FLAG=11 END IF ELSE IF((MCR .GE. .70) .AND. (MCR .LT. .90)) THEN IF(PLF .GT. .90) THEN FLAG=11 END IF ELSE IF((MCR .GE. .90) .AND. (MCR .LT. .98)) THEN IF(PLF .GT. .95) THEN FLAG=11 END IF END IF ELSE IF((TCI .GT. 28.33) .AND. (TCI .LE. 29.44)) THEN IF((MCR .GE. .49) .AND. (MCR .LT. .70)) THEN IF((PLF .GT. .75) .AND. (PLF .LE. .95)) THEN FLAG=10 ELSE IF(PLF .GT. .95) THEN FLAG=11 END IF ELSE IF((MCR .GE. .70) .AND. (MCR .LT. .90)) THEN IF(PLF .GT. .95) THEN FLAG=11 END IF END IF ELSE IF((TCI .GT. 26.67) .AND. (TCI .LE. 28.33)) THEN IF((MCR .GE. .49) .AND. (MCR .LT. .70)) THEN IF(PLF .GT. .80) THEN FLAG=10 END IF END IF ELSE IF((TCI .GT. 26.11) .AND. (TCI .LE. 26.67)) THEN IF((MCR .GE. .49) .AND. (MCR .LT. .70)) THEN IF(PLF .GT. .85) THEN FLAG=10 END IF END IF END IF ELSE IF(TEO .GT. 7.5) THEN IF(TCI .GT. 31.11) THEN IF((MCR .GE. .49) .AND. (MCR .LT. .70)) THEN IF((PLF .GT. .75) .AND. (PLF .LE. .90)) THEN FLAG=10 ELSE IF(PLF .GT. .90) THEN FLAG=11 END IF ELSE IF((MCR .GE. .70) .AND. (MCR .LT. .90)) THEN IF(PLF .GT. .90) THEN FLAG=11 END IF END IF ELSE IF((TCI .GT. 29.44) .AND. (TCI .LE. 31.11)) THEN IF((MCR .GE. .49) .AND. (MCR .LT. .70)) THEN IF((PLF .GT. .80) .AND. (PLF .LE. .95)) THEN FLAG=10 ELSE IF(PLF .GT. .95) THEN FLAG=11 END IF ELSE IF((MCR .GE. .70) .AND. (MCR .LT. .90)) THEN IF(PLF .GT. .95) THEN FLAG=11 END IF END IF ELSE IF((TCI .GT. 28.33) .AND. (TCI .LE. 29.44)) THEN IF((MCR .GE. .49) .AND. (MCR .LT. .70)) THEN IF(PLF .GT. .85) THEN FLAG=10 END IF END IF ELSE IF((TCI .GT. 27.78) .AND. (TCI .LE. 28.33)) THEN IF((MCR .GE. .49) .AND. (MCR .LT. .70)) THEN IF(PLF .GT. .90) THEN FLAG=10 END IF END IF END IF END IF C****************************** CHILLER MODULATION ************************ C DETERMINE THE COP, AND QIN 350 HTC=SORTC(TCI) !HIGHER COOLING WATER TEMPERATURE LTC=HTC-1 IF ((TEO .GE. 5.55) .AND. (TEO .LT. 6.67)) THEN HTE=2 !HIGHER CHILLED WATER SETPOINT ELSE HTE=3 END IF LTE=HTE-1 HM=SORM(MCR) !HIGHER COOLING WATER FLOW RATE RATIO LM=HM-1 C CALCULATE THE COP RATIO AT A CHILLED WATER SETPOINT OF 44F CALL COP44(HTC,LTC,HM,LM,PLF,C_HMHTC,C_HMLTC,C_LMHTC,C_LMLTC) CALL INTERP(C_LMHTC,C_LMLTC,TC(HTC),TC(LTC),TCI,COPRLM) CALL INTERP(C_HMHTC,C_HMLTC,TC(HTC),TC(LTC),TCI,COPRHM) CALL INTERP(COPRLM,COPRHM,M(LM),M(HM),MCR,COPR44) C CALCULATE THE COP RATIO FOR THE OTHER CHILLED WATER SETPOINT OF 44F C AND THEN INTERPOLATED FOR COP RATIO (COP/COP NOMINAL) IF (HTE .EQ. 2) THEN CALL COP42(HTC,LTC,HM,LM,PLF,C_HMHTC,C_HMLTC,C_LMHTC,C_LMLTC) CALL INTERP(C_LMHTC,C_LMLTC,TC(HTC),TC(LTC),TCI,COPRLM) CALL INTERP(C_HMHTC,C_HMLTC,TC(HTC),TC(LTC),TCI,COPRHM) CALL INTERP(COPRLM,COPRHM,M(LM),M(HM),MCR,COPR42) CALL INTERP(COPR42,COPR44,TE(LTE),TE(HTE),TEO,COPR) ELSE CALL COP48(HTC,LTC,HM,LM,PLF,C_HMHTC,C_HMLTC,C_LMHTC,C_LMLTC) CALL INTERP(C_LMHTC,C_LMLTC,TC(HTC),TC(LTC),TCI,COPRLM) CALL INTERP(C_HMHTC,C_HMLTC,TC(HTC),TC(LTC),TCI,COPRHM) CALL INTERP(COPRLM,COPRHM,M(LM),M(HM),MCR,COPR48) CALL INTERP(COPR44,COPR48,TE(LTE),TE(HTE),TEO,COPR) END IF COP=COPR*COPN QIN=QLOAD/COP C OPTIMIZATION CONSTRAINTS PENALTY=1E-6 IF (TCI .LE. 21.114) THEN PENALTY=1000 END IF IF (TCI .GT. 31.67) THEN PENALTY=1000 END IF IF (TCO .GE. 40) THEN TCO=40 PENALTY=1000 END IF IF (FLAG .EQ. 10) THEN PENALTY=1000 ELSE IF (FLAG .EQ. 11) THEN PENALTY=1000 ELSE IF (FLAG .EQ. 12) THEN PENALTY=1000 END IF C OUTGOING COOLING WATER MASS FLOW RATE AND TEMPERATURE MCO=MCI N_HHV=EFF(PLF) TCO=TCI + QLOAD*(1 + N_HHV/COP)/(MCI*CPW) !C C OUTGOUING CHILLED WATER MASS FLOW RATE MEO=MEI C DETERMINE THE CHILLER ELECTRICAL POWER CONSUMED - FOR PUMPS/CONTROLS, ETC.. TONS=QLOAD*.7898476E-4 PELEC=.01422*TONS+5.35 !KW, FROM FIELD MONITORED DATA GO TO 400 !!!!!!SET OUTPUTS C************************************************************************* C****************************** CHILLER CYCLES OFF ************************ 300 QLOAD=1E-6 COP=1E-6 QIN=1E-6 PELEC=1E-6 MCO=MCI TCO=TCI MEO=MEI TEO=TEI C************************************************************************** C-------------------------------------------------------------------------- C SET OUTPUTS AND PRINT WARNING MESSAGES FOR OPERATING CONSTRAINTS C--------------------------------------------------------------------------- 400 IF(((PRWARN .EQ. 'Y') .OR. (PRWARN .EQ. 'y')) .AND. & (INFO(7) .EQ. 0)) THEN IF(FLAG .EQ. 1) THEN IWARN=IWARN+1 WRITE(LUW,501) TIME ELSE IF (FLAG .EQ. 2) THEN IWARN=IWARN+1 WRITE(LUW,502) TIME ELSE IF (FLAG .EQ. 3) THEN IWARN=IWARN+1 WRITE(LUW,503) TIME ELSE IF (FLAG .EQ. 4) THEN IWARN=IWARN+1 WRITE(LUW,504) TIME ELSE IF (FLAG .EQ. 5) THEN IWARN=IWARN+1 WRITE(LUW,505) TIME ELSE IF (FLAG .EQ. 6) THEN IWARN=IWARN+1 WRITE(LUW,506) TIME ELSE IF (FLAG .EQ. 7) THEN IWARN=IWARN+1 WRITE(LUW,507) TIME ELSE IF (FLAG .EQ. 8) THEN IWARN=IWARN+1 WRITE(LUW,508) TIME ELSE IF (FLAG .EQ. 9) THEN IWARN=IWARN+1 WRITE(LUW,509) TIME ELSE IF (FLAG .EQ. 10) THEN IWARN=IWARN+1 WRITE(LUW,510) TIME ELSE IF (FLAG .EQ. 11) THEN IWARN=IWARN+1 WRITE(LUW,511) TIME ELSE IF (FLAG .EQ. 12) THEN IWARN=IWARN+1 WRITE(LUW,512) TIME END IF END IF OUT(1)=TEO OUT(2)=MEO OUT(3)=TCO OUT(4)=MCO OUT(5)=QLOAD OUT(6)=QIN OUT(7)=COP OUT(8)=PELEC OUT(9)=FLAG OUT(10)=PENALTY 501 FORMAT(//,1X,'************* WARNING *************',/,1X, & 'THE PART-LOAD FACTOR IS GREATER THAN 1.0 AT TIME = ',F7.2) 502 FORMAT(//,1X,'************* WARNING *************',/,1X, & 'TCI IS LESS THAN 18.33 C (65 F) AT TIME = ',F7.2) 503 FORMAT(//,1X,'************* WARNING *************',/,1X, & 'TCI IS GREATER THAN 32.22 C (90 F) AT TIME = ',F7.2) 504 FORMAT(//,1X,'************* WARNING *************',/,1X, & 'TEO IS LESS THAN 5.56 C (42 F) AT TIME = ',F7.2) 505 FORMAT(//,1X,'************* WARNING *************',/,1X, & 'TEO IS GREATER THAN 8.89 C (48 F) AT TIME = ',F7.2) 506 FORMAT(//,1X,'************* WARNING *************',/,1X, & 'MCI IS LESS THAN 50% OF THE NOMINAL FLOW AT TIME = ',F7.2) 507 FORMAT(//,1X,'************* WARNING *************',/,1X, & 'MCI IS GREATER THAN 125% OF THE NOMINAL FLOW AT TIME = ',F7.2) 508 FORMAT(//,1X,'************* WARNING *************',/,1X, & 'MEI IS LESS THAN 50% OF THE NOMINAL FLOW AT TIME = ',F7.2) 509 FORMAT(//,1X,'************* WARNING *************',/,1X, & 'MEI IS GREATER THAN 125% OF THE NOMINAL FLOW AT TIME = ',F7.2) 510 FORMAT(//,1X,'************* WARNING *************',/,1X, & 'OPERATING CONSTRAINTS ENCOUNTERED - CRYSTALLIZATION COULD OCCUR' & ,/,1X,'THE COOLING WATER FLOW RATE IS INSUFFICIENT ',/,1X, & 'AND MUST BE INCREASED TO AT LEAST 75% OF THE NOMINAL FLOW RATE' & ,/,1X,'FOR THE SPECIFIED OPERATING CONDITIONS AT TIME = ',F7.2) 511 FORMAT(//,1X,'************* WARNING *************',/,1X, & 'OPERATING CONSTRAINTS ENCOUNTERED - CRYSTALLIZATION COULD OCCUR' & ,/,1X,'THE COOLING WATER FLOW RATE IS INSUFFICIENT ',/,1X, & 'AND MUST BE INCREASED TO AT LEAST 100% OF THE NOMINAL FLOW RATE' & ,/,1X,'FOR THE SPECIFIED OPERATING CONDITIONS AT TIME = ',F7.2) 512 FORMAT(//,1X,'************* WARNING *************',/,1X, & 'OPERATING CONSTRAINTS ENCOUNTERED - CRYSTALLIZATION COULD OCCUR' & ,/,1X,'THE COOLING WATER FLOW RATE IS INSUFFICIENT ',/,1X, & 'AND MUST BE INCREASED TO AT LEAST 125% OF THE NOMINAL FLOW RATE' & ,/,1X,'FOR THE SPECIFIED OPERATING CONDITIONS AT TIME = ',F7.2) RETURN 1 END C***************************************************************************** C SUBROUTINES AND FUNCTIONS C***************************************************************************** C---------------------------------------------------------------------------- C FUNCTION SORTC - TO DETERMINE THE HIGHER AND LOWER INLET COOLING WATER C TEMPERATURES C---------------------------------------------------------------------------- INTEGER FUNCTION SORTC(T) REAL T INTEGER P IF((T .GE. 18.325) .AND. (T .LT. 21.11)) P=2 IF((T .GE. 21.11) .AND. (T .LT. 23.89)) P=3 IF((T .GE. 23.89) .AND. (T .LT. 26.67)) P=4 IF((T .GE. 26.67) .AND. (T .LT. 29.44)) P=5 IF((T .GE. 29.44) .AND. (T .LE. 32.224)) P=6 SORTC=P RETURN END C---------------------------------------------------------------------------- C FUNCTION SORM - TO DETERMINE THE HIGHER AND LOWER INLET COOLING WATER C FLOW RATE RATIOS: 0.5, 0.75, 1.0, 1.25 C---------------------------------------------------------------------------- INTEGER FUNCTION SORM(M) REAL M INTEGER P IF((M .GE. .49) .AND. (M .LT. .72)) P=2 IF((M .GE. .72 ) .AND. (M .LT. 1.0)) P=3 IF((M .GE. 1.0 ) .AND. (M .LE. 1.251)) P=4 SORM=P RETURN END C--------------------------------------------------------------------------- C SUBROUTINE COP44 - CONTAINS CURVE FITS OF THE PARTLOAD COP RATIOS C FOR DIFFERENT COOLING WATER FLOW RATES AS A C FUNCTION OF THE INLET COOLING WATER TEMPERATURE C AND THE LOAD - FOR A CHILED WATER SETPOINT OF 6.67 C (44F) C------------------------------------------------------------------------- SUBROUTINE COP44(HT,LT,HM,LM,PLF,C_HMHT,C_HMLT,C_LMHT,C_LMLT) REAL COPR(4,6),PLF,C_HMHT,C_HMLT,C_LMHT,C_LMLT INTEGER HT,LT,HM,LM IF(LM .EQ. 1) THEN GO TO 10 ELSE IF (LM .EQ. 2) THEN GO TO 20 ELSE IF (LM .EQ. 3) THEN GO TO 30 END IF C COP RATIOS (COP/COP_NOMINAL) FOR A COOLING WATER RATIO (MCI/MCN) OF .5 10 COPR(1,6)=.17621 + 3.3699*PLF -6.9925*PLF**2 + 7.2123*PLF**3 & - 3.0304*PLF**4 COPR(1,5)=.27908 + 2.9578*PLF -5.5675*PLF**2 + 5.0148*PLF**3 & - 1.8182*PLF**4 COPR(1,4)=.40237 + 2.5362*PLF -4.4187*PLF**2 + 3.5461*PLF**3 & - 1.1298*PLF**4 COPR(1,3)=.49603 + 2.4492*PLF -4.2845*PLF**2 + 3.3492*PLF**3 & - 1.0211*PLF**4 COPR(1,2)=.61807 + 2.2989*PLF -4.1538*PLF**2 + 3.2963*PLF**3 & - 1.0179*PLF**4 COPR(1,1)=.76642 + 2.0848*PLF -3.9288*PLF**2 + 3.1523*PLF**3 & - .976*PLF**4 C COP RATIOS (COP/COP_NOMINAL) FOR A COOLING WATER RATIO (MCI/MCN) OF 0.75 20 COPR(2,6)=.27934 + 2.5947*PLF -4.2053*PLF**2 + 3.2594*PLF**3 & - 1.014*PLF**4 COPR(2,5)=.33689 + 2.6313*PLF -4.3208*PLF**2 + 3.3437*PLF**3 & - 1.0291*PLF**4 COPR(2,4)=.42391 + 2.5359*PLF -4.1505*PLF**2 + 3.1428*PLF**3 & - .9394*PLF**4 COPR(2,3)=.51415 + 2.5229*PLF -4.2725*PLF**2 + 3.3021*PLF**3 & - 1.0012*PLF**4 COPR(2,2)=.62981 + 2.4287*PLF -4.2341*PLF**2 + 3.3017*PLF**3 & - 1.0034*PLF**4 COPR(2,1)=.7896 + 2.156*PLF -3.8462*PLF**2 + 2.981*PLF**3 & - .89488*PLF**4 IF(LM .EQ. 1) THEN GO TO 100 END IF C COP RATIOS (COP/COP_NOMINAL) FOR A COOLING WATER RATIO (MCI/MCN) OF 1.0 30 COPR(3,6)=.28433 + 2.6091*PLF -4.0854*PLF**2 + 3.0501*PLF**3 & - .9062*PLF**4 COPR(3,5)=.34843 + 2.617*PLF -4.1482*PLF**2 + 3.1026*PLF**3 & - .92021*PLF**4 COPR(3,4)=.42283 + 2.6327*PLF -4.279*PLF**2 + 3.2431*PLF**3 & - .96891*PLF**4 COPR(3,3)=.51785 + 2.6017*PLF -4.3613*PLF**2 + 3.3723*PLF**3 & - 1.0249*PLF**4 COPR(3,2)=.62994 + 2.5425*PLF -4.3983*PLF**2 + 3.4417*PLF**3 & - 1.0501*PLF**4 COPR(3,1)=.79494 + 2.2486*PLF -3.9667*PLF**2 + 3.0914*PLF**3 & - .93651*PLF**4 IF(LM .EQ. 2) THEN GO TO 100 END IF C COP RATIOS (COP/COP_NOMINAL) FOR A COOLING WATER RATIO (MCI/MCN) OF 1.25 COPR(4,6)=.29616 + 2.5684*PLF -3.917*PLF**2 + 2.8527*PLF**3 & - .82668*PLF**4 COPR(4,5)=.34865 + 2.6756*PLF -4.2542*PLF**2 + 3.2172*PLF**3 & - .96481*PLF**4 COPR(4,4)=.44205 + 2.5524*PLF -4.0122*PLF**2 + 2.9497*PLF**3 & - .85727*PLF**4 COPR(4,3)=.52998 + 2.569*PLF -4.1826*PLF**2 + 3.1369*PLF**3 & - .92165*PLF**4 COPR(4,2)=.64975 + 2.4748*PLF -4.168*PLF**2 + 3.1961*PLF**3 & - .96004*PLF**4 COPR(4,1)=.79269 + 2.3416*PLF -4.1221*PLF**2 + 3.2358*PLF**3 & - .98724*PLF**4 100 C_HMHT=COPR(HM,HT) C_HMLT=COPR(HM,LT) C_LMHT=COPR(LM,HT) C_LMLT=COPR(LM,LT) RETURN END C--------------------------------------------------------------------------- C SUBROUTINE COP42 - CONTAINS CURVE FITS OF THE PARTLOAD COP RATIOS C FOR DIFFERENT COOLING WATER FLOW RATES AS A C FUNCTION OF THE INLET COOLING WATER TEMPERATURE C AND THE LOAD - FOR A CHILED WATER SETPOINT OF 5.56 C C (42F) C------------------------------------------------------------------------- SUBROUTINE COP42(HT,LT,HM,LM,PLF,C_HMHT,C_HMLT,C_LMHT,C_LMLT) REAL COPR(4,6),PLF,C_HMHT,C_HMLT,C_LMHT,C_LMLT INTEGER HT,LT,HM,LM IF(LM .EQ. 1) THEN GO TO 10 ELSE IF (LM .EQ. 2) THEN GO TO 20 ELSE IF (LM .EQ. 3) THEN GO TO 30 END IF C COP RATIOS (COP/COP_NOMINAL) FOR A COOLING WATER RATIO (MCI/MCN) OF .5 10 COPR(1,6)=.20996 + 2.8619*PLF -5.341*PLF**2 + 4.949*PLF**3 & - 1.9087*PLF**4 COPR(1,5)=.28622 + 2.7012*PLF -4.8331*PLF**2 + 4.1537*PLF**3 & - 1.4531*PLF**4 COPR(1,4)=.36649 + 2.5589*PLF -4.3887*PLF**2 + 3.4693*PLF**3 & - 1.0887*PLF**4 COPR(1,3)=.47188 + 2.3766*PLF -4.0558*PLF**2 + 3.1185*PLF**3 & - .94258*PLF**4 COPR(1,2)=.57782 + 2.2804*PLF -3.9869*PLF**2 + 3.0642*PLF**3 & - .91486*PLF**4 COPR(1,1)=.70364 + 2.1769*PLF -4.0209*PLF**2 + 3.2048*PLF**3 & - .98877*PLF**4 C COP RATIOS (COP/COP_NOMINAL) FOR A COOLING WATER RATIO (MCI/MCN) OF 0.75 20 COPR(2,6)=.21933 + 2.8886*PLF -5.0466*PLF**2 + 4.3139*PLF**3 & - 1.4918*PLF**4 COPR(2,5)=.30695 + 2.6655*PLF -4.4181*PLF**2 + 3.4897*PLF**3 & - 1.1024*PLF**4 COPR(2,4)=.38661 + 2.5746*PLF -4.1998*PLF**2 + 3.1863*PLF**3 & - .95492*PLF**4 COPR(2,3)=.47313 + 2.5511*PLF -4.2762*PLF**2 + 3.2934*PLF**3 & - .99786*PLF**4 COPR(2,2)=.58178 + 2.4613*PLF -4.2172*PLF**2 + 3.2498*PLF**3 & - .97592*PLF**4 COPR(2,1)=.72801 + 2.2463*PLF -3.9697*PLF**2 + 3.0913*PLF**3 & - .93631*PLF**4 IF(LM .EQ. 1) THEN GO TO 100 END IF C COP RATIOS (COP/COP_NOMINAL) FOR A COOLING WATER RATIO (MCI/MCN) OF 1.0 30 COPR(3,6)=.23742 + 2.7998*PLF -4.6359*PLF**2 + 3.738*PLF**3 & - 1.2108*PLF**4 COPR(3,5)=.33613 + 2.5192*PLF -3.8947*PLF**2 + 2.8444*PLF**3 & - .82444*PLF**4 COPR(3,4)=.41238 + 2.489*PLF -3.8985*PLF**2 + 2.8558*PLF**3 & - .82811*PLF**4 COPR(3,3)=.47609 + 2.6225*PLF -4.3304*PLF**2 + 3.3095*PLF**3 & - .9939*PLF**4 COPR(3,2)=.58041 + 2.5814*PLF -4.4058*PLF**2 + 3.4263*PLF**3 & - 1.0406*PLF**4 COPR(3,1)=.728 + 2.3627*PLF -4.1283*PLF**2 + 3.222*PLF**3 & - .97966*PLF**4 IF(LM .EQ. 2) THEN GO TO 100 END IF C COP RATIOS (COP/COP_NOMINAL) FOR A COOLING WATER RATIO (MCI/MCN) OF 1.25 COPR(4,6)=.27514 + 2.5496*PLF -3.873*PLF**2 + 2.83*PLF**3 & - .82682*PLF**4 COPR(4,5)=.33385 + 2.5804*PLF -3.9868*PLF**2 + 2.9326*PLF**3 & - .85728*PLF**4 COPR(4,4)=.3976 + 2.6397*PLF -4.191*PLF**2 + 3.131*PLF**3 & - .92352*PLF**4 COPR(4,3)=.47982 + 2.6674*PLF -4.3938*PLF**2 + 3.3731*PLF**3 & - 1.0178*PLF**4 COPR(4,2)=.59702 + 2.5375*PLF -4.241*PLF**2 + 3.252*PLF**3 & - .97787*PLF**4 COPR(4,1)=.72932 + 2.4218*PLF -4.1988*PLF**2 + 3.2836*PLF**3 & - 1.0034*PLF**4 100 C_HMHT=COPR(HM,HT) C_HMLT=COPR(HM,LT) C_LMHT=COPR(LM,HT) C_LMLT=COPR(LM,LT) RETURN END C--------------------------------------------------------------------------- C SUBROUTINE COP48 - CONTAINS CURVE FITS OF THE PARTLOAD COP RATIOS C FOR DIFFERENT COOLING WATER FLOW RATES AS A C FUNCTION OF THE INLET COOLING WATER TEMPERATURE C AND THE LOAD - FOR A CHILED WATER SETPOINT OF 8.89 C C (48F) C------------------------------------------------------------------------- SUBROUTINE COP48(HT,LT,HM,LM,PLF,C_HMHT,C_HMLT,C_LMHT,C_LMLT) REAL COPR(4,6),PLF,C_HMHT,C_HMLT,C_LMHT,C_LMLT INTEGER HT,LT,HM,LM IF(LM .EQ. 1) THEN GO TO 10 ELSE IF (LM .EQ. 2) THEN GO TO 20 ELSE IF (LM .EQ. 3) THEN GO TO 30 END IF C COP RATIOS (COP/COP_NOMINAL) FOR A COOLING WATER RATIO (MCI/MCN) OF .5 10 COPR(1,6)=.26916 + 2.946*PLF -5.5669*PLF**2 + 5.0868*PLF**3 & - 1.8878*PLF**4 COPR(1,5)=.35641 + 2.7825*PLF -5.106*PLF**2 + 4.392*PLF**3 & - 1.5071*PLF**4 COPR(1,4)=.49613 + 2.3352*PLF -4.0005*PLF**2 + 3.0772*PLF**3 & - .9294*PLF**4 COPR(1,3)=.60309 + 2.2468*PLF -3.9577*PLF**2 + 3.0602*PLF**3 & - .9215*PLF**4 COPR(1,2)=.73437 + 2.1223*PLF -3.9392*PLF**2 + 3.1342*PLF**3 & - .96508*PLF**4 COPR(1,1)=.91618 + 1.7698*PLF -3.4199*PLF**2 + 2.6967*PLF**3 & - .81411*PLF**4 C COP RATIOS (COP/COP_NOMINAL) FOR A COOLING WATER RATIO (MCI/MCN) OF 0.75 20 COPR(2,6)=.32488 + 2.6359*PLF -4.3618*PLF**2 + 3.4352*PLF**3 & - 1.0846*PLF**4 COPR(2,5)=.41366 + 2.4971*PLF -4.0253*PLF**2 + 2.9944*PLF**3 & - .87683*PLF**4 COPR(2,4)=.50392 + 2.4672*PLF -4.1035*PLF**2 + 3.1162*PLF**3 & - .92917*PLF**4 COPR(2,3)=.59763 + 2.5107*PLF -4.4113*PLF**2 + 3.4894*PLF**3 & - 1.0757*PLF**4 COPR(2,2)=.74359 + 2.2961*PLF -4.129*PLF**2 + 3.2563*PLF**3 & - .99439*PLF**4 COPR(2,1)=.92905 + 1.9459*PLF -3.6329*PLF**2 + 2.878*PLF**3 & - .88044*PLF**4 IF(LM .EQ. 1) THEN GO TO 100 END IF C COP RATIOS (COP/COP_NOMINAL) FOR A COOLING WATER RATIO (MCI/MCN) OF 1.0 30 COPR(3,6)=.34471 + 2.5522*PLF -3.9835*PLF**2 + 2.9336*PLF**3 & - .85713*PLF**4 COPR(3,5)=.42134 + 2.5292*PLF -4.0017*PLF**2 + 2.9524*PLF**3 & - .86081*PLF**4 COPR(3,4)=.5065 + 2.5409*PLF -4.164*PLF**2 + 3.1425*PLF**3 & - .93118*PLF**4 COPR(3,3)=.61868 + 2.4632*PLF -4.16*PLF**2 + 3.1825*PLF**3 & - .95073*PLF**4 COPR(3,2)=.75104 + 2.3737*PLF -4.22*PLF**2 + 3.3411*PLF**3 & - 1.0282*PLF**4 COPR(3,1)=.92901 + 2.0757*PLF -3.8129*PLF**2 + 3.019*PLF**3 & - .92208*PLF**4 IF(LM .EQ. 2) THEN GO TO 100 END IF C COP RATIOS (COP/COP_NOMINAL) FOR A COOLING WATER RATIO (MCI/MCN) OF 1.25 COPR(4,6)=.34322 + 2.6144*PLF -4.0916*PLF**2 + 3.0517*PLF**3 & - .90599*PLF**4 COPR(4,5)=.41385 + 2.6468*PLF -4.2528*PLF**2 + 3.2206*PLF**3 & - .96481*PLF**4 COPR(4,4)=.50384 + 2.6152*PLF -4.27*PLF**2 + 3.2288*PLF**3 & - .95823*PLF**4 COPR(4,3)=.61461 + 2.5629*PLF -4.3413*PLF**2 + 3.3627*PLF**3 & - 1.0193*PLF**4 COPR(4,2)=.75581 + 2.4182*PLF -4.256*PLF**2 + 3.3569*PLF**3 & - 1.0284*PLF**4 COPR(4,1)=.93965 + 2.0806*PLF -3.7501*PLF**2 + 2.9453*PLF**3 & - .8969*PLF**4 100 C_HMHT=COPR(HM,HT) C_HMLT=COPR(HM,LT) C_LMHT=COPR(LM,HT) C_LMLT=COPR(LM,LT) RETURN END C--------------------------------------------------------------------------- C FUNCTION EFF- CALCULATES THE COMBUSTION EFFICIENCY OF METHANE-HHV C GIVEN THE PLF. BASED ON A STEADY STATE MODEL OF THE CHILLER C IN WHICH THE COMBUSTION EFF VARIES WITH THE LOAD DUE TO THE C EXITING COMBUSTION GAS TEMPERATURE VARYING INPROPORTION TO THE C HIGH TEMPERATURE GENERATOR TEMPERATURE. THE NOMINAL COMBUSTION C EFF OF 0.81 WAS CALCULATED USING AN EXITING COMBUSTION GAS C TEMPERATURE OF 450 F, AND 20% EXCESS AIR. C--------------------------------------------------------------------------- REAL FUNCTION EFF(PLF) REAL PLF EFF=.85686 -.042585*PLF + .0027005*PLF**2 - .0068711*PLF**3 RETURN END C----------------------------------------------------------------------------- C SUBROUTINE INTERP - LINEARLY INTERPOLATES BETWEEN TWO COP RATIOS C----------------------------------------------------------------------------- SUBROUTINE INTERP(Y1,Y2,X1,X2,X,Y) REAL Y1,Y2,X1,X2,Y,X Y=Y1 + (Y2-Y1)/(X2-X1)*(X-X1) RETURN END