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 / POST / TCYC.FOR < prev    next >
Text File  |  1992-05-11  |  11KB  |  332 lines

  1. C      PROGRAM TCYC(INPUT,OUTPUT,TAPE5=INPUT,TAPE6=OUTPUT,TAPE1,
  2. C     +TAPE2,TAPE3,TAPE7,TAPE8)
  3. C
  4. C   THERMOSTAT CYCLING RATES.  EVTIS.DAT FILE IS TAPE3 EDITED FOR 
  5. C   STARTING/STOPPING TIME AND ANY GAPS TO AGREE WITH EXP DATA.
  6. C   NOTE: TAPE3 IS ACTIVATED BY SETTING IEVPRT=1 IN FILE FUR1AH1A.DAT.
  7. C     CALC CPH VS PCTON VALUES FROM ON-OFF TSTAT DATA
  8.       DIMENSION TGAP(10,2)
  9.       CHARACTER*10 NHEAD(8)
  10.       CHARACTER*1 IA1
  11.       OPEN(1,FILE='TCY1.OUT',STATUS='NEW')
  12.       OPEN(2,FILE='TCY2.OUT',STATUS='NEW')
  13.       OPEN(3,FILE='TCY3.OUT',STATUS='NEW')
  14.       OPEN(7,FILE='TCYC.OUT',STATUS='NEW')
  15.       OPEN(4,FILE='CYCDATA',STATUS='OLD')
  16.       OPEN(5,FILE='EVTIS.DAT',STATUS='OLD')
  17.       TIMLS=0.
  18.       TMONQ1=0.
  19.       TMOFQ1=0.
  20.       TMONQ2=0.
  21.       TMOFQ2=0.
  22.       TMONQ3=0.
  23.       TMOFQ3=0.
  24.       ICLS1=0
  25.       ICLS2=0
  26.       ICLS3=0
  27.       NDYUU=1
  28.       IQ1=0
  29.       IQ2=0
  30.       IQ3=0
  31.       NCY1=0
  32.       NCY2=0
  33.       NCY3=0
  34.       ILOLD=1
  35.       NAFTER=0
  36.       READ(4,517,END=997)NHEAD
  37.       WRITE(7,518)NHEAD
  38. C  ITYP = 1  MEASURED DATA
  39. C  ITYP = 2  PREDICTED DATA      
  40.       READ(4,*)ITYP,IPR,TMSTRT,TMSTOP 
  41.       READ(4,*)NGAP 
  42.       IF(NGAP.NE.0)THEN
  43.         READ(4,*)((TGAP(I,J),J=1,2),I=1,NGAP)
  44.          WRITE(7,520)((TGAP(I,J),J=1,2),I=1,NGAP)
  45.          ENDIF
  46.       IF(ITYP.EQ.2)THEN    
  47. C         IDAMP = 1 TO USE DAMPER EVENTS,  = 0, TO USE THERMOSTAT EVENTS
  48. C              (NOTE: IF EXPERIMENTAL DATA (ITYP = 1) IDAMP SET = 0
  49.         OPEN(8,FILE='TCYC.DAT',STATUS='OLD')
  50.         READ(8,*)IDAMP
  51. C     TMSTRT AND TMSTOP ARE TIME OF YR FOR START AND STOP OF EXP DATA 
  52. C        HAVE TO DO SOME JUGGLING OF TIME HERE BECAUSE 24-HR CLOCK IS
  53. C        USED ON PREDICTED DATA, NOT TIME OF YR.
  54.         TSTRT=TMSTRT-INT(TMSTRT/24.)*24.
  55.         NDAYS=INT(TMSTOP/24.)-INT(TMSTRT/24.)+1
  56.         TSTOP=TMSTOP-INT(TMSTOP/24)*24.
  57.         WRITE(7,*)' TMSTRT,TMSTOP= ',TMSTRT,TMSTOP
  58.         WRITE(7,*)' TSTRT,TSTOP,NDAYS= ',TSTRT,TSTOP,NDAYS
  59.         TIMHR=24.*INT(TMSTRT/24.)
  60.         ENDIF
  61.    11 IF(ITYP.EQ.1)THEN
  62. C             NOTE::::::  FOR HOUSE A IC2 AND IC3 ARE INTERCHANGED!   
  63.          READ(5,*,END=999)TIMEHR,NDY,NHR,NMN,NSC,NDSC,ICODE,IYR,
  64.      +                   IC1,IC3,IC2
  65.          TIMHR=TIMEHR
  66.       ELSE
  67. C  SET TO READ THE TAPE3 A87D1Y/EVTIS FILES ON FILESET A87D1Y, FOR EXAMPLE
  68. C  5/22/90  NOTE: PC VERSION DOES NOT PRINT OUT 2 HEADER FILES!
  69. C                 BELOW CODE WILL WORK OK ANYWAY!
  70.          READ(5,519,END=999)IA1
  71. C   THE TWO HEADER LINES FOR EACH DAY HAVE A 1 IN COLUMN 1        
  72.           IF(IA1.EQ.'1')THEN
  73.            READ(5,519,END=999)IA1
  74.           ELSE
  75. C   BACKUP ONE LINE BECAUSE THE LINE CONTAINS GOOD DATA!!!        
  76.             BACKSPACE 5
  77.             ENDIF
  78.          IF(IDAMP.EQ.0)THEN
  79.            READ(5,*,END=999)TIMEHR,ICODE,TA1,TA1,TA1,TA1,TA1,
  80.      +                   IC1,IC2,IC3
  81.          ELSE
  82.            READ(5,*,END=999)TIMEHR,ICODE,TA1,TA1,TA1,TA1,TA1,
  83.      +                   IC1,IC1,IC1,IC1,IC1,IC1,IC2,IC3
  84.            ENDIF
  85.          WRITE(7,530)TIMEHR,ICODE,IC1,IC2,IC3
  86.          DTIMHR=TIMEHR-TIMLS
  87.          IF(TIMLS.GT.TIMEHR)THEN
  88.             NDYUU=NDYUU+1
  89.             DTIMHR=24.-TIMLS+TIMEHR
  90.             ENDIF
  91.          TIMHR=TIMHR+DTIMHR
  92.          ENDIF
  93.        ILNEW=0
  94.        IF(IC1.EQ.1)ILNEW=1
  95.        IF(IC2.EQ.1)ILNEW=1
  96.        IF(IC3.EQ.1)ILNEW=1
  97.        IF(ILOLD.EQ.1.AND.ILNEW.EQ.0)THEN
  98.          NAFTER=NAFTER+1
  99.          ENDIF
  100.       ILOLD=ILNEW
  101.       TIMLS=TIMEHR
  102.       IF(NDYUU.EQ.1.AND.TIMEHR.LT.TSTRT)GO TO 11
  103.       IF(NDYUU.EQ.NDAYS.AND.TIMEHR.GT.TSTOP)GO TO 999
  104. C         WRITE(7,*)' TIMEHR,ICODE,IC1,IC2,IC3= ',TIMEHR,ICODE,IC1,IC2,IC3
  105. C
  106.    20 IF(IQ1.EQ.0.AND.IC1.EQ.1)THEN
  107. C  FIRST ON SIGNAL IN TSTAT NO. 1
  108.          IQ1=1
  109.          TMELS1=TIMHR
  110.           WRITE(7,531)TIMEHR,TMELS1
  111.          ICLS1=1
  112.          ENDIF
  113.       IF(IQ2.EQ.0.AND.IC2.EQ.1)THEN
  114. C  FIRST ON SIGNAL IN TSTAT NO. 2
  115.          IQ2=1
  116.          TMELS2=TIMHR
  117.           WRITE(7,532)TIMEHR,TMELS2
  118.          ICLS2=1
  119.          ENDIF
  120.       IF(IQ3.EQ.0.AND.IC3.EQ.1)THEN
  121. C  FIRST ON SIGNAL IN TSTAT NO. 3
  122.          IQ3=1
  123.          TMELS3=TIMHR
  124.           WRITE(7,533)TIMEHR,TMELS3
  125.          ICLS3=1
  126.          ENDIF
  127.       IF(NGP.EQ.1)THEN
  128.          NGP=0
  129.          GOTO 11
  130.          ENDIF
  131. C         
  132.       IF(IC1.EQ.1.AND.ICLS1.EQ.0)THEN
  133. C TSTAT TURNED ON IN ZONE 1
  134.          TMEOF1=TIMHR-TMELS1
  135.           WRITE(7,534)TIMEHR,TMEOF1
  136.          TMQOF1=TIMHR
  137.          TCYC1=TMEOF1+TMEON1
  138.          CYHR1=1./TCYC1
  139.          PCTON1=100.*TMEON1/TCYC1
  140.          SLOP1=CYHR1/PCTON1
  141.          NGP=0
  142.          IF(NGAP.NE.0)THEN
  143.            DO 30 I=1,NGAP
  144. C  SEE IF ANY PORTION OF THIS CYCLE FALLS WITHIN GAP
  145.            NGP1=0
  146.            IF(TMQOF1.GT.TGAP(I,1).AND.TMQOF1.LT.TGAP(I,2))NGP1=1
  147.            IF(TMQON1.GT.TGAP(I,1).AND.TMQON1.LT.TGAP(I,2))NGP1=1
  148.             IF(TMQON1.LT.TGAP(I,1).AND.TMQOF1.GT.TGAP(I,2))NGP1=1
  149.            TMGAP=0.5*(TGAP(I,1)+TGAP(I,2))
  150.            IF(TMQON1.LE.TMGAP.AND.TMQOF1.GE.TMGAP)NGP1=1
  151.            IF(NGP1.EQ.1)THEN
  152.              WRITE(7,510)TGAP(I,1),1
  153.              NGP=1
  154.              IQ1=0
  155.              ENDIF
  156.   30       CONTINUE
  157.            ENDIF
  158.          IF(NGP.NE.1)THEN
  159.             WRITE(1,501)TIMHR,PCTON1,CYHR1
  160.             WRITE(7,506)1,TIMHR,PCTON1,CYHR1,SLOP1
  161.             NCY1=NCY1+1
  162.             TMONQ1=TMONQ1+TMEON1
  163.             TMOFQ1=TMOFQ1+TMEOF1
  164.             WRITE(7,514)TMONQ1,TMOFQ1
  165.             ENDIF
  166.          TMELS1=TIMHR
  167.          ICLS1=IC1
  168.          ENDIF
  169. C         
  170.       IF(IC2.EQ.1.AND.ICLS2.EQ.0)THEN
  171. C  TSTAT TURNED ON IN ZONE 2
  172.          TMEOF2=TIMHR-TMELS2
  173.           WRITE(7,535)TIMEHR,TMEOF2
  174.          TMQOF2=TIMHR
  175.          TCYC2=TMEOF2+TMEON2
  176.          CYHR2=1./TCYC2
  177.          PCTON2=100.*TMEON2/TCYC2
  178.          SLOP2=CYHR2/PCTON2
  179.          NGP=0
  180.          IF(NGAP.NE.0)THEN
  181.            DO 31 I=1,NGAP
  182. C  SEE IF ANY PORTION OF THIS CYCLE FALLS WITHIN GAP
  183.            NGP2=0
  184.            IF(TMQOF2.GT.TGAP(I,1).AND.TMQOF2.LT.TGAP(I,2))NGP2=1
  185.            IF(TMQON2.GT.TGAP(I,1).AND.TMQON2.LT.TGAP(I,2))NGP2=1
  186.             IF(TMQON2.LT.TGAP(I,1).AND.TMQOF2.GT.TGAP(I,2))NGP2=1
  187.            TMGAP=0.5*(TGAP(I,1)+TGAP(I,2))
  188.            IF(TMQON2.LE.TMGAP.AND.TMQOF2.GE.TMGAP)NGP2=1
  189.            IF(NGP2.EQ.1)THEN
  190.              WRITE(7,510)TGAP(I,1),2
  191.              NGP=1
  192.              IQ2=0
  193.              ENDIF
  194.   31       CONTINUE
  195.            ENDIF
  196.          IF(NGP.NE.1)THEN
  197.             WRITE(2,501)TIMHR,PCTON2,CYHR2
  198.             WRITE(7,507)2,TIMHR,PCTON2,CYHR2,SLOP2
  199.             NCY2=NCY2+1
  200.             TMONQ2=TMONQ2+TMEON2
  201.             TMOFQ2=TMOFQ2+TMEOF2
  202.             WRITE(7,515)TMONQ2,TMOFQ2
  203.             ENDIF
  204.          TMELS2=TIMHR
  205.          ICLS2=IC2
  206.          ENDIF
  207. C         
  208.       IF(IC3.EQ.1.AND.ICLS3.EQ.0)THEN
  209. C  TSTAT TURNED ON IN ZONE 3
  210.          TMEOF3=TIMHR-TMELS3
  211.           WRITE(7,536)TIMEHR,TMEOF3
  212.          TMQOF3=TIMHR
  213.          TCYC3=TMEOF3+TMEON3
  214.          CYHR3=1./TCYC3
  215.          PCTON3=100.*TMEON3/TCYC3
  216.          SLOP3=CYHR3/PCTON3
  217.          NGP=0
  218.          IF(NGAP.NE.0)THEN
  219.            DO 32 I=1,NGAP
  220. C  SEE IF ANY PORTION OF THIS CYCLE FALLS WITHIN GAP
  221.            NGP3=0
  222.            IF(TMQOF3.GT.TGAP(I,1).AND.TMQOF3.LT.TGAP(I,2))NGP3=1
  223.            IF(TMQON3.GT.TGAP(I,1).AND.TMQON3.LT.TGAP(I,2))NGP3=1
  224.             IF(TMQON3.LT.TGAP(I,1).AND.TMQOF3.GT.TGAP(I,2))NGP3=1
  225.            TMGAP=0.5*(TGAP(I,1)+TGAP(I,2))
  226.            IF(TMQON3.LE.TMGAP.AND.TMQOF3.GE.TMGAP)NGP3=1
  227.            IF(NGP3.EQ.1)THEN
  228.              WRITE(7,510)TGAP(I,1),3
  229.              NGP=1
  230.              IQ3=0
  231.              ENDIF
  232.   32       CONTINUE
  233.            ENDIF
  234.          IF(NGP.NE.1)THEN
  235.            WRITE(3,501)TIMHR,PCTON3,CYHR3
  236.            WRITE(7,508)3,TIMHR,PCTON3,CYHR3,SLOP3
  237.            NCY3=NCY3+1
  238.            TMONQ3=TMONQ3+TMEON3
  239.            TMOFQ3=TMOFQ3+TMEOF3
  240.            WRITE(7,516)TMONQ3,TMOFQ3
  241.            ENDIF
  242.          TMELS3=TIMHR
  243.          ICLS3=IC3
  244.          ENDIF
  245. C         
  246.       IF(IC1.EQ.0.AND.ICLS1.EQ.1)THEN
  247. C  TSTAT TURNED OFF IN ZONE 1 
  248.          TMEON1=TIMHR-TMELS1
  249.          WRITE(7,537)TIMEHR,TMEON1
  250.          TMQON1=TMELS1
  251.          TMELS1=TIMHR
  252.          ICLS1=IC1
  253.          ENDIF
  254.       IF(IC2.EQ.0.AND.ICLS2.EQ.1)THEN
  255. C  TSTAT TURNED OFF IN ZONE 2 
  256.          TMEON2=TIMHR-TMELS2
  257.           WRITE(7,538)TIMEHR,TMEON2
  258.          TMQON2=TMELS2
  259.          TMELS2=TIMHR
  260.          ICLS2=IC2
  261.          ENDIF
  262.       IF(IC3.EQ.0.AND.ICLS3.EQ.1)THEN
  263. C  TSTAT TURNED OFF IN ZONE 3 
  264.          TMEON3=TIMHR-TMELS3
  265.          WRITE(7,539)TIMEHR,TMEON3
  266.          TMQON3=TMELS3
  267.          TMELS3=TIMHR
  268.          ICLS3=IC3
  269.          ENDIF
  270.       TIMLS=TIMEHR
  271.       NGPQ=NGP1+NGP2+NGP3
  272.       IF(NGPQ.NE.0)THEN
  273.          NGP=1
  274.           GO TO 20
  275.           ENDIF
  276.       GO TO 11
  277.   997 STOP 'TCYC:EOF ON TOP OF FILE TAPE8'
  278.   999 WRITE(7,509)NCY1,NCY2,NCY3
  279.       DENOM1 = TMONQ1+TMOFQ1
  280.       IF(DENOM1.EQ.0.)THEN
  281.         PCTON1 = 0.
  282.       ELSE
  283.         PCTON1=100.*TMONQ1/(TMONQ1+TMOFQ1)
  284.         ENDIF
  285.       DENOM2 = TMONQ2+TMOFQ2
  286.       IF(DENOM2.EQ.0.)THEN
  287.         PCTON2=0.
  288.       ELSE
  289.         PCTON2=100.*TMONQ2/(TMONQ2+TMOFQ2)
  290.         ENDIF
  291.       DENOM3 = TMONQ3+TMOFQ3
  292.       IF(DENOM3.EQ.0.)THEN
  293.         PCTON3=0.
  294.       ELSE
  295.         PCTON3=100.*TMONQ3/(TMONQ3+TMOFQ3)
  296.         ENDIF
  297.       WRITE(7,511)PCTON1,TMONQ1,TMOFQ1
  298.       WRITE(7,512)PCTON2,TMONQ2,TMOFQ2
  299.       WRITE(7,513)PCTON3,TMONQ3,TMOFQ3
  300.       WRITE(7,540)NAFTER
  301.       STOP 'ENDED OK'
  302.   500 FORMAT(F12.0,22X,3I2)
  303.   501 FORMAT(1X,F12.4,2G13.5) 
  304.   503 FORMAT(A1)
  305.   506 FORMAT(1X,'ZONE= ',I2,F12.5,2X,F5.2,2X,F5.2,2X,F5.3)
  306.   507 FORMAT(1X,'ZONE= ',I2,F12.5,23X,F5.2,2X,F5.2,2X,F5.3) 
  307.   508 FORMAT(1X,'ZONE= ',I2,F12.5,44X,F5.2,2X,F5.2,2X,F5.3) 
  308.   509 FORMAT(1X,'NO. OF TSTAT CYCLES IN Z1-3= ',3I5)
  309.   510 FORMAT(1X,'GAP AT TIME= ',G13.5,' HR IN ZONE ',I3)
  310.   511 FORMAT(1X,'ZONE 1: PCTON,TIME ON,TIME OFF= ',3G13.5)
  311.   512 FORMAT(1X,'ZONE 2: PCTON,TIME ON,TIME OFF= ',3G13.5)
  312.   513 FORMAT(1X,'ZONE 3: PCTON,TIME ON,TIME OFF= ',3G13.5)
  313.   514 FORMAT(1X,'TMONQ1,TMOFQ1= ',2G13.5)
  314.   515 FORMAT(1X,'TMONQ2,TMOFQ2= ',2G13.5)
  315.   516 FORMAT(1X,'TMONQ3,TMOFQ3= ',2G13.5)
  316.   517 FORMAT(8A10)
  317.   518 FORMAT(1X,8A10)
  318.   519 FORMAT(A1)
  319.   520 FORMAT((1X,'GAP AT TIME ',F12.4,' TO ',F12.4/))
  320.   530 FORMAT(1X,'TIM,ICODE,IC1,IC2,IC3= ',F12.4,I5,3X,3I3)
  321.   531 FORMAT(1X,'TIMEHR,TMELS1= ',F12.5,F12.5)
  322.   532 FORMAT(10X,'TIMEHR,TMELS2= ',F12.5,F12.5)
  323.   533 FORMAT(20X,'TIMEHR,TMELS3= ',F12.5,F12.5)
  324.   534 FORMAT(15X,'TIMEHR,TMEOF1= ',F12.5,F12.5)
  325.   535 FORMAT(25X,'TIMEHR,TMEOF2= ',F12.5,F12.5)
  326.   536 FORMAT(35X,'TIMEHR,TMEOF3= ',F12.5,F12.5)
  327.   537 FORMAT(16X,'TIMEHR,TMEON1= ',F12.5,F12.5)
  328.   538 FORMAT(26X,'TIMEHR,TMEON2= ',F12.5,F12.5)
  329.   539 FORMAT(36X,'TIMEHR,TMEON3= ',F12.5,F12.5)
  330.   540 FORMAT(15X,' NO. OF BLOWER AFTERRUNS= ',I6)
  331.       END 
  332.