home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-387-Vol-3of3.iso / h / house_ii.zip / FOR / ELCFUR.FOR < prev    next >
Text File  |  1992-04-07  |  6KB  |  199 lines

  1.       SUBROUTINE ELCFUR(IBURN,TCYCLE,WAIR,TA1,PCTJAC,TA2,QIN)
  2. C
  3. C  ELECTRIC FURNACE MODEL
  4. C
  5. C  IBURN = 0, TSTAT OFF        IBURN=1, TSTAT ON
  6. C  TCYCLE = TIME FROM TSTAT EVENT(END OF THIS DTIME INTERVAL),HR
  7. C  WAIR = BLOWER AIR FLOW, LB/HR
  8. C  TA1 = RETURN AIR TEMP TO BLOWER, F
  9. C        (BLOWER PWR IS LUMPED WITH ELEC FUR PWR)
  10. C  PCTJAC  JACKET LOSS IN PCT OF INPUT ENERGY
  11. C  TA2 = OUTLET AIR TEMP, F
  12. C  QIN = INTEG INPUT ENERGY FOR THIS TIMESTEP,BTU/HR
  13. CMDK EFUR
  14.       NAMELIST/INPELC/FACKW,TMOF,TMON,XKWOF,XKWON
  15. C INPUTS FROM NAMELIST INPELC:
  16. C  FACKW - CAPACITY MULTIPLIER (APPLIED TO BOTH XKWOF AND XKWON 
  17. C  TMOF  - (1) TIME AFTER OFF EVENT AT STEP TO XKWOF(2),SEC
  18. C          (2) TIME AFTER OFF EVENT AT STEP TO XKWOF(3),SEC
  19. C          (3) TIME AFTER OFF EVENT AT STEP TO XKWOF(4),SEC
  20. C  TMON  - (1) TIME AFTER ON EVENT AT STEP TO XKWON(2),SEC
  21. C          (2) TIME AFTER ON EVENT AT STEP TO XKWON(3),SEC
  22. C          (3) TIME AFTER ON EVENT AT STEP TO XKWON(4),SEC
  23. C          (4) TIME AFTER ON EVENT AT STEP TO XKWON(5),SEC
  24. C  XKWOF - HEATING RATE IN STEPS FROM MAX FOR XKWOF(1) AT OFF EVENT
  25. C          TO 0. AT XKWOF(4),KW
  26. C  XKWON - HEATING RATE IN FIVE STEPS FROM 0. FOR XKWON(1) AT THE 
  27. C          ON EVENT TO MAXIMUM AT XKWON(5),KW
  28. C
  29. C  PROGRAM LOGIC SETUP FOR LENNOX ELECTRIC FURNACE
  30. C     TIMES IN TMON AND TMOF ARE SEC AND WERE ADJUSTED SO THAT
  31. C          RUN KWH WILL BE MATCHED WHEN PROCESSING EVENT FILE
  32.       DATA TCYCSL/0./
  33.       DATA IBRNLS/0/
  34.       DATA IONE/0/
  35.       IF(IONE.EQ.0)THEN
  36.           FACJAC=1.-.01*PCTJAC
  37. C
  38.           OPEN(13,FILE='TAPE13',STATUS='OLD',IOSTAT=IO13)
  39.           IF(IO13.NE.0)THEN
  40.             WRITE(60,*)' ELCFUR: CANT OPEN TAPE13 WITH NAMELIST INPELC'
  41.             STOP 'ELCFUR: CANT OPEN TAPE13 WITH NAMELIST INPELC'
  42.             END IF
  43.           READ(13,INPELC,END=90)
  44.           CLOSE(13)
  45.           WRITE(60,INPELC)
  46. C
  47.           DO 4 I=1,5
  48.           IF(I.EQ.5)GO TO 2
  49.           XKWOF(I)=XKWOF(I)*FACKW
  50.     2     XKWON(I)=XKWON(I)*FACKW
  51.     4     CONTINUE
  52.           WRITE(60,500)PCTJAC
  53.           WRITE(60,503)TMON,XKWON
  54.           WRITE(60,501)TMOF,XKWOF
  55.           IONE=1
  56.           ENDIF
  57. C
  58.       WACP=WAIR*.24
  59. C  FIND CONTROL INTERVAL FOR ELECT FURNACE
  60.       TCYCS=TCYCLE*3600.
  61.       IF(IBURN.EQ.0)THEN
  62. C  TSTAT OFF - - - - - -
  63.       IF(IBURN.NE.IBRNLS)TCYCSL=0.
  64.           CALL EFUROF(TCYCSL,TCYCS,IEON,TA1,FACJAC,TA2,QIN)
  65.       ELSE
  66. C  TSTAT ON  - - - - - - -
  67.       IF(IBURN.NE.IBRNLS)TCYCSL=0.
  68.           CALL EFURON(TCYCSL,TCYCS,IEON,TA1,FACJAC,TA2,QIN)
  69.           ENDIF
  70.       TCYCSL=TCYCS
  71.       IBRNLS=IBURN
  72.       RETURN
  73.    90 STOP 'ELCFUR: EOF ON TAPE13'
  74.   500 FORMAT(1H0,'ELECTRIC FURNACE CALIBRATION DATA'/
  75.      +10X,'UNIT HAS JACKET LOSS OF ',G13.5,
  76.      +' PERCENT OF INPUT ENERGY WHEN ON')
  77.   501 FORMAT(1H0,' TIME(SEC)OFF= ',13X,4G13.5/
  78.      +' KW INPUT    = ',5G13.5)
  79.   503 FORMAT(' TIME(SEC) ON= ',4G13.5/
  80.      +' KW INPUT    = ',5G13.5)
  81.       END
  82.       SUBROUTINE EFUROF(TCYCSL,TCYCS,IEON,TA1,FACJAC,TA2,QIN)
  83. C
  84. C  CALCULATE OUTLET TEMP OF ELEC FURN WHEN TSTAT TURNED OFF
  85. C  INPUTS: TCYCSL  "ON" CYCLE TIME AT LAST TIMESTEP,SEC
  86. C          TCYCS  "ON" CYCLE TIME AT THIS TIMESTEP,SEC
  87. C          IEON  INTERVAL NO. AT LAST TSTAT "ON" STEP
  88. C          TA1  INLET AIR TEMP(UPSTREAM OF BLOWER OR
  89. C              DOWNSTREAM OF BLOWER WITH BLOWER POWER=0.
  90. C OUTPUT: TA2  OUTLET AIR TEMP,F
  91. C ASSUMPTIONS: NO THERMAL LAG IN ELECTRIC HEATER
  92. CMDK EFUR
  93. C
  94. C  FIND IEOFL AND IEOF
  95.       IEOFL=4
  96.       IEOF=4
  97.       I=4
  98.       JI=1
  99.       DTQ=0.
  100.       IF(IEON.EQ.4)THEN
  101.           DTQ=TMOF(1)
  102.           JI=2
  103.           ENDIF
  104.       DO 10 J=JI,3
  105.       I=I-1
  106.       IF((TMOF(I)-DTQ).GT.TCYCS)IEOF=I
  107.    10 IF((TMOF(I)-DTQ).GT.TCYCSL)IEOFL=I
  108. C
  109. C  SELECT INTERVAL ON SAME IEOF'S
  110.       DO 20 J=1,4
  111.    20 IF(IEOFL.EQ.J.AND.IEOF.EQ.J)GO TO 30
  112.       GO TO 40
  113. C  INTERVAL WITH SAME IEOF'S
  114.    30 DTMS2=TCYCS-TCYCSL
  115.       DTMS1=0.
  116.       QIN1=0.
  117.       GO TO 70
  118. C  INTERVAL WITH CONSEQUTIVE IEOF'S
  119.    40 DO 50 I=JI,3
  120.       IF(IEOFL.EQ.I.AND.IEOF.EQ.I+1)THEN
  121.           DTMS1=(TMOF(I)-DTQ)-TCYCSL
  122.           DTMS2=TCYCS-(TMOF(I)-DTQ)
  123.           GO TO 60
  124.           ENDIF
  125.    50 CONTINUE
  126.       WRITE(60,500)IEOFL,IEOF,TCYCSL,TCYCS
  127.       STOP 'EFUROF: TROUBLE WITH INTERVALS'
  128. C  FIRST SEGMENT OF INTERVAL
  129.    60 QIN1=3413.*XKWOF(IEOFL)
  130. C  SECOND SEGMENT OF INTERVAL
  131.    70 QIN2=3413.*XKWOF(IEOF)
  132. C
  133. C  INTEGRATED QIN
  134.       QIN=(QIN1*DTMS1+QIN2*DTMS2)/(DTMS1+DTMS2)
  135.       TA2=TA1+QIN*FACJAC/WACP
  136.       RETURN
  137.   500 FORMAT(1H0,'---OOPS,COULD NOT FIND IEOF INTERVALS',
  138.      +' IEOFL,IEOF= ',2I5,' TCYCSL,TCYCS= ',2G13.5)
  139.       END
  140.       SUBROUTINE EFURON(TCYCSL,TCYCS,IEON,TA1,FACJAC,TA2,QIN)
  141. C
  142. C  CALCULATE OUTLET TEMP OF ELEC FURN WHEN TSTAT TURNED ON
  143. C  INPUTS: TCYCSL  "ON" CYCLE TIME AT LAST TIMESTEP,SEC
  144. C          TCYCS  "ON" CYCLE TIME AT THIS TIMESTEP, SEC
  145. C          TA1  INLET AIR TEMP(UPSTREAM OF BLOWER OR
  146. C               DOWNSTREAM OF BLOWER WITH BLOWER POWER=0.),F
  147. C  OUTPUTS: IEON  INTERVAL NO. UPON EXITING
  148. C           TA2  OUTLET AIR TEMP,F
  149. C  ASSUMPTION:  NO THERMAL LAG IN ELECTRIC HEATER
  150. C
  151. CMDK EFUR
  152. C
  153. C  FIND IEONL AND IEON
  154.       IEONL=5
  155.       IEON=5
  156.       I=5
  157.       DO 10 J=1  ,4
  158.       I=I-1
  159.       IF(TMON(I).GT.TCYCS)IEON=I
  160.    10 IF(TMON(I).GT.TCYCSL)IEONL=I
  161. C
  162. C  SELECT INTERVAL ON SAME IEON'S
  163.       DO 20 J=1,5
  164.    20 IF(IEONL.EQ.J.AND.IEON.EQ.J)GO TO 30
  165.       GO TO 40
  166. C  INTERVAL WITH SAME IEON'S
  167.    30 DTMS2=TCYCS-TCYCSL
  168.       DTMS1=0.
  169.       QIN1=0.
  170.       GO TO 70
  171. C  INTERVAL WITH CONSECUTIVE IEON'S
  172.    40 IF(IEONL.EQ.1.AND.IEON.EQ.2)THEN
  173.       DTMS1=0.
  174.       QIN1=0.
  175.       DTMS2=TCYCS-TMON(1)
  176.       GO TO 70
  177.       ENDIF
  178.       DO 50 I=2,4
  179.       IF(IEONL.EQ.I.AND.IEON.EQ.I+1)THEN
  180.           DTMS1=TMON(I)-TCYCSL
  181.           DTMS2=TCYCS-TMON(I)
  182.           GO TO 60
  183.           ENDIF
  184.    50 CONTINUE
  185.       WRITE(60,500)IEONL,IEON,TCYCSL,TCYCS
  186.       STOP 'EFURON:TROUBLE WITH INTERVALS'
  187. C  FIRST SEGMENT OF INTERVAL
  188.    60 QIN1=3413.*XKWON(IEONL)
  189. C  SECOND SEGMENT OF INTERVAL
  190.    70 QIN2=3413.*XKWON(IEON)
  191. C
  192. C  INTEGRATED QIN
  193.       QIN=(QIN1*DTMS1+QIN2*DTMS2)/(DTMS1+DTMS2)
  194.       TA2=TA1+QIN*FACJAC/WACP
  195.       RETURN
  196.   500 FORMAT(1H0,'- - -OOPS,COULD NOT FIND IEON INTERVALS,'/
  197.      +' IEONL,IEON= ',2I5,' TCYCSL,TCYCS= ',2G13.5)
  198.       END
  199.