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 / LOOP.FOR < prev    next >
Text File  |  1992-05-11  |  21KB  |  622 lines

  1.       SUBROUTINE LOOP(ACINFL,  ATOUT, AVENC2, DTIM2, DTCRW, FLOC,
  2.      +FLOWIN, HDUM, HUMON, ICL1, ICYC1, ICYC6, ICYCCP, IDAYM, ILINES, 
  3.      +INC, ISUM, MPRINT, NROUT,POWA, QBASVN, QCONRF, QCRAD,
  4.      +QHUMT, QINFC, QINFS, QINT, QLOSRF, QRAD, QSKY, QSPT,
  5.      +QWAS, RDUM, RELHMI,RHA,RLOADL, RLOADS, TBAS, TDUM, TISUM, TMRSUM,
  6.      +TODDBR, TONMAX, TRO, TS, WATER, WINFC, WINFSS, WINT, WODFAC,
  7.      +WODHMR, IDBG) 
  8. C-----PERFORMS GASASHR TIME LOOP
  9. C-----CONSTANTS 
  10. CMDK BTUKWH
  11. CMDK CPAIR
  12. CMDK FTR
  13. CMDK NHBK
  14. CMDK NHRO
  15. CMDK NHRP
  16. CMDK NZN
  17. CMDK NIWL
  18. CMDK NOUTDY
  19. CMDK NWL
  20. CMDK NWN
  21. CMDK NZN7
  22. CMDK NZW
  23. CMDK RHOAIR
  24. CMDK LPSTRB
  25. CMDK DUCTS5
  26. CMDK FANBLK
  27. CMDK ACND
  28. CMDK BAR
  29. CMDK BLK10
  30. CMDK BLK85
  31. CMDK BLKCM2
  32. CMDK BLKGS2
  33. CMDK BLKQGS
  34. CMDK BLKQS
  35. CMDK COLLEC
  36. CMDK DTRQ
  37. CMDK DUCTS1
  38. CMDK DUCTS2
  39. CMDK DUCTS4
  40. CMDK ENCBK1
  41. CMDK ENCBK2
  42. CMDK ENCBLK
  43. CMDK FUEL1
  44. CMDK HANDBK
  45. CMDK HUMIDC
  46. CMDK IELCB
  47. CMDK INDIC1
  48. CMDK IWETHR
  49. CMDK IZWQ
  50. CMDK IZZQ
  51. CMDK MRTBLK
  52. CMDK MZON1
  53. CMDK OUTPUT
  54. CMDK OWETHR
  55. CMDK QUAYCH
  56. CMDK QUAYLE
  57. CMDK PRT1
  58. CMDK SOLARB
  59. CMDK STRUCA
  60. CMDK SURFAR
  61. CMDK TEMP1
  62. CMDK TEMPB
  63. CMDK TIMEB
  64. CMDK BLKTM2
  65. CMDK TSTATC
  66. CMDK TSTB2
  67. CMDK TSTB3
  68. CMDK TSTB4
  69. CMDK WIBLK
  70. CMDK ITM
  71.       REAL    UNDEF , RMVOL(NZN), RMVL(NZN)
  72. C     "UNDEF" SET TO 9.999999E36, AND IS USED TO TRAP UNDEF REF
  73. C-----ARGUMENTS 
  74.       INTEGER FLOC (NZN7), NROUT(24), IBLPF(4)
  75.       REAL    ACINFL(NZN), AIRMAS(NZN), ATOUT(12,24), 
  76.      +      FLOWIN(NZN), QINFC(NZN), QINFS(NZN),  QWALL(6), 
  77.      +        TATTCN(2), TIN(NZN), TISUM(NZN), TMRSUM(NZN), TSUP(NZN),
  78.      +        WINFSS(NZN), WINFC(NZN), WIN(NZN) 
  79. C-----INITIALIZATIONS 
  80.       DATA UNDEF/9.99999E36/
  81.       DATA IBLPF  /0, 0, 1, 0/
  82.       DATA IFIRST /1/ 
  83.       DATA QP     /0.0/ 
  84.       DATA WIZLS/9999./
  85.       IF(ITIM.EQ.0)THEN 
  86.          ITIM=1 
  87. C  NOTE:   ITIM GETS RESET TO 0 IN TSTATD  FOR 121486 RUN WHICH CHANGES 
  88. C          FROM ICTRLZ(1-3) = 1 AT START TO CHANGE CONTROLLED ZONES TO 
  89. C          ICTRLZ(2) = 1 ONLY AT NOON OF FIRST DAY         
  90. C  IS FURNACE IN CONDITIONED SPACE????   IF SO, IFLC1 = 1 !!!!
  91.          IFLC1=0
  92.          IF(IFLOC.EQ.1.OR.IFLOC.GT.8)IFLC1=1
  93.          IF(IFLOC.EQ.2.AND.ICTRLZ(NZNBAS).GT.0)IFLC1=1
  94.          DO 3 IJ=1,NROOMS
  95.          NRM=NRMA(IJ)
  96. C  RMVOL VALUES ARE VOLUMES OF CONTROLLED ZONES OTHER THAN W/ FURNACE         
  97.          RMVOL(NRM)=0.
  98.          IF(ICTRLZ(NRM).GT.0.AND.NRM.NE.NZNBAS)RMVOL(NRM)=ROMVOL(NRM)
  99. C  RMVL VALUES ARE VOLUMES OF CONTROLLED ZONES         
  100.          RMVL(NRM) = 0.
  101.          IF(ICTRLZ(NRM).GT.0)RMVL(NRM)=ROMVOL(NRM)
  102.     3    CONTINUE         
  103.          ENDIF
  104.       DTIME=DTIM2
  105.       DO 50 L=1, NSUBDV 
  106.          IF (TENCLO (IDAYM).GE.999.0) TENCLO (IDAYM)=TODDB
  107. C  MEAN TEMPERATURE AND SPECIFIC HUMIDITY IN ALL ZONES
  108. C    AVERAGED BY SUPPLY-AIR FRACTIONS (RWSDCT)
  109.       TIM=AVGWV(TI,NROOMS,RWSDCT) 
  110.       WIM=AVGWV(WI,NROOMS,RWSDCT) 
  111. C MEAN INDOOR TEMPERATURE WEIGHTED BY CONDITIONED ZONE VOLUMES
  112.       TIMN=AVGWV(TI,NROOMS,RMVL)
  113. C MEAN INDOOR TEMP IN ZONES OTHER THAN THE BASEMENT IN CONDITIONED ZONEZ      
  114.       TIMNB=AVGWV(TI,NROOMS,RMVOL)
  115. C !!!!!TZONE VALUES ARE SET FOR USE IN DUCT ROUTINES
  116.          TZONE (1)=TI(1)
  117.          TZONE (2)=TBAS 
  118.          TZONE (3)=TCRW 
  119.          TZONE (4)=TATTC(1) 
  120.          TZONE (5)=TENCLO (IDAYM) 
  121.          TZONE (6)=TGARAG 
  122.          TZONE (7)=TODDB
  123.          TZONE (8)=TATTC(2) 
  124.          DO 4 JT=2,NZN
  125.          IF(NROOMS.GE.JT)THEN 
  126.            TZONE(JT+7)=TI(JT) 
  127.          ELSE 
  128.            TZONE(JT+7)=UNDEF
  129.            ENDIF
  130.    4     CONTINUE 
  131. C--------CALCULATE ATTIC AIR TEMPERATURE
  132.          CALL TAATTC(ATCDT,QAVENT,QCEIL1,QWALL(5),RAIRAT,TATTCN,
  133.      +               TODDBR,         WODFAC, IDBG)
  134.          TAIN=TZONE (IFLOC) 
  135.          TCOMB=TAIN*IDIRCT1+TODDB*IDIRCT
  136.          IF(IFLOC.EQ.2)THEN
  137.            WIZ=WI(NZNBAS)
  138.          ELSE IF(IFLOC.GT.8)THEN
  139.            WIZ=WI(IFLOC-7)
  140.          ENDIF
  141.          IF(WIZ.NE.WIZLS)THEN
  142.            IPSY= -4
  143.            CALL PSY(IPSY,TAIN,TWBI,TDUM,RHDUM,WIZ,HDUM)
  144.            WIZLS=WIZ
  145.          ENDIF
  146. C--------IS THE INDOOR FAN ON?
  147.          I10=1+IAC+2*IEFAN
  148. C--------RETURN DUCTS 
  149. C  SET LVG SPC ENVIRONMENT FOR DUCTS
  150.       IZLVG=1 
  151.       IF(NROOMS.GT.1)THEN 
  152. C                        FIND MAX VALUE OF RWSDCT 
  153.           RWSMX=0.
  154.           DO 5 I=1,NROOMS 
  155.           NRM=NRMA(I)
  156.           IF(RWSDCT(I).GT.RWSMX)THEN
  157.               RWSMX=RWSDCT(I) 
  158.               IZLVG=NRM 
  159.               IF(NRM.GT.1)IZLVG=NRM+7
  160.               ENDIF 
  161.    5      CONTINUE
  162.           ENDIF 
  163.           CALL RETDUCT (         I10, TIM, IZLVG, TWRT, TWRTB, TRET,
  164.      +      TRETB, QRET, QRETB, FLOW10, FLOW11, FLOW14) 
  165. C--------CALCULATE BASEMENT MOISTURE INFILTRATION, BALANCE
  166.          VMIX=FLOW10
  167.          IF (IBRP.GT.0) THEN
  168. C   AIR IS RETURNED TO FURNACE THOUGH BASEMENT WITH NO RETURN DUCTS 
  169.             TMIX=TBAS 
  170.             WMIX=WBAS 
  171.             WROOM=FLOW10*(WIM-WBAS) 
  172.             AVENVB=ACINFL(NZNBAS)*ROMVOL(NZNBAS)
  173.             WINFB=AVENVB*(WODHMR-WBAS*RHOAIR)+FINFB*(1-FLOC (1))* 
  174.      +         (WODHUM-WBAS)+WAIRB*(WIM-WBAS)*FLOC (1)*(1-FLOC (7)) 
  175.             WSUMB=(WROOM+WINFB)*DTIME 
  176.             WBASN=(WSUMB/AIRMSB)+WBAS 
  177.          ELSE 
  178.             TMIX=TRETB
  179.             WMIX=WIM
  180.          END IF 
  181. C--------CALCULATE MIXTURE AFTER HUMIDIFIER BYPASS MIXING 
  182.          WMIXS=WMIX 
  183.          IF (CFMBP.NE.0.0) THEN 
  184.             IF (IEFAN.NE.0) THEN
  185.                VMXX=WA1+VMIX
  186.                WMIX=(WA1*WBULK+VMIX*WMIX)/VMXX
  187.                TMIX=(TBULK*WA1+TMIX*VMIX)/VMXX
  188.             END IF
  189.          END IF 
  190. C   AIR TEMPERATURE TO FURNACE HEAT EXCHANGER(INCLUDES BLOWER DELTA T)
  191.          TRETP=TMIX+EFANCC (I10)
  192.          DTBLR=EFANCC (I10) 
  193.          IF(IMODE.EQ.1.OR.(IMODE.EQ.2.AND.CFMBP.GT.0.))THEN
  194.            IPSY=-4
  195.            CALL PSY (IPSY, TRETP, TRETWB, TDUM, RDUM, WMIX, HDUM) 
  196.          ELSE
  197. C            DEACTIVATE MOISTURE BAL IN HEATING MODE (TO SAVE TIME)
  198.            TRETWB=TRETP-5.
  199.          ENDIF
  200.          IF (TRETWB.GT.TRETP) TRETWB=TRETP-.01
  201.          IF (IMODE.EQ.1) THEN 
  202.             CMPUMP=0. 
  203.             IRGSF=1 
  204.             IF (IFIRST.EQ.1) CALL PLENUM
  205.             IFIRST=0
  206.          ELSE 
  207.             IHON=H2ON (IT)-TIME 
  208. C-----------CALL THE FURNACE SUBROUTINES
  209.             CALL GASF 
  210.             IF (IELC.EQ.0) THEN 
  211.                QP=QPILOT*(1-IBURN)
  212.             ELSE
  213.                QP=QPILOP
  214.             END IF
  215.             NRDF1=1 
  216.            CMPUMP=((CMFANP+PUMPWP)*IBURN+CMFANP*ICL1*(1-IBURN))*REDH
  217.            QEXT=QEXT*REDH 
  218.            QPLEN=QPLEN*REDH 
  219.            QVENTB=QVENTB*REDH 
  220.            QVNTLS=QVNTLS*REDH 
  221.            QVENTA=QVENTA*REDH 
  222.            QDRAFT=QDRAFT*REDH 
  223.            QJACK=QJACK*REDH 
  224.            WAIRB=WAIRB*REDH 
  225.            TB=TPL 
  226.          END IF 
  227. C--------HUMIDIFIER PERFORMANCE 
  228.          IF (IMODE.EQ.2) CALL HUMDF3 (TIM)
  229. C--------A/C AND PLENUM PERFORMANCE FOR COOLING MODE
  230.          IF (IMODE.EQ.1) THEN 
  231.             TAIN=TBAS 
  232.             WAIRB=0.
  233.             CPWAIR=CPAIR*ECFMC1*IAC*U45*BARRAT
  234.             CALL ACND2 (IEFAN, TRETWB, TRETB) 
  235.          END IF 
  236. C--------SUPPLY DUCTS 
  237.          CALL SUPDUCT (         I10, TIM, IZLVG, TPL, TWSP, TWSPB,
  238.      +      TSUP, TSUPB, QSUP, QSUPB,IDBG)
  239. C--------CALCULATE BASEMENT AND CRAWL SPACE TEMPERATUTES
  240. C--------CALCULATE THE FURNACE/PLENUM HEAT LOSS, AND ADDED INFILTRATION 
  241.          QPLENB=(QPLEN+QJACK)*NCELLS
  242.          IF (IDIRCT.EQ.1) THEN
  243.             XQADNC=0.
  244.             QIZFRNB=0.0
  245.             QIFRNB=0.0
  246.          ELSE IF (IFLOC.EQ.2) THEN
  247. C  NOTE: INFILTRATION IN LVG SPC ZONE CAUSED BY FURNACE OPERATION IN
  248. C        BASEMENT IS SPLIT BY RATIO OF FLOOR AREAS IN TAZONE.  XQADNC 
  249. C        BELOW IS USED IN THAT CALCULATION
  250.             XQADNC=CPAIR*WAIRB*PHI*PHIINF*SRCEAB
  251. C     QIFRNB - INFLITRATION DIRECTLY INTO BASEMENT DUE TO FURN OPERATION
  252. C     QIZFRNB - INTERZONE HEAT FLOW FROM LIVING SPACES TO BASEMENT DUE TO
  253. C               FURNACE OPERATION.             
  254. C   NOTE: TIMNB HERE SHOULD BE FOR ALL OTHER ZONES
  255.             QIZFRNB=XQADNC*(TIMNB-TI(NZNBAS))
  256.             QIFRNB=CPAIR*WAIRB*PHI*PHIINF*(1.0-SRCEAB)*
  257.      +             (TODDB-TI(NZNBAS))
  258.          ELSE 
  259. C   FURNACE IS NOT IN BASEMENT!         
  260.             XQADNC=CPAIR*WAIRB*PHI*PHIINF
  261.             QIZFRNB=0.
  262.             QIFRNB=0.
  263.          END IF 
  264.          IF (IDEBUG.EQ.1) WRITE(60, 500) QIFRNB,XQADNC, PHI,
  265.      +      PHIINF,WAIRB, CPAIR, SRCEAB, TIMN, TCOMB, TODDB 
  266.          QFRLFE=(QPLENB+QDRAFT+QVENTB+CMPUMP*BTUKWH)
  267.          TATTCN(NATVNT)=TATTCN(NATVNT)+(QFRLFE+XQADNC*
  268.      +           (TODDB-TATTC(NATVNT))*FLOC (4)+QDUCTZ (4))*ATCDT/RAIRAT
  269. C        AIR COND CAPACITIES NOW CALCULATED IN ACOND 11/5/85 KEH
  270.          WAC=WMIX-WMOIST/FLOW14 
  271.          WHUM=VMIX*(WAC-WIM)
  272. C - -- - - - - - - - - -- - 
  273. C  GET ZONE AIR TEMPERATURES
  274.          CALL TAZONE(AIRMAS,CMPUMP,QCEIL4,QDCTZN,QFLBAS,QFLCRW,
  275.      +               QFRLFE,QFLSPB,QFLSPC,QINC,QINF,QINFB,QINFC,
  276.      +               QINFFRN,QINFS,QINT,QNT,QPART,QRADCB,QSLFL,
  277.      +               QSUM,QSUM1,QSUM2,QWALL,QWGR,QWINST,QIZONE,
  278.      +               TBAS,TCRW,TIN,XQADNC,IDBG) 
  279.       IF(IBAS.GT.0)THEN 
  280.           QINFB=QINFB+QIFRNB
  281.           QINFFRN=QINFFRN+QIFRNB
  282.           CALL TBZONE(AIRMAS,FLOC,FLOW11,QBASFT,QBWAG,QBWBGT, 
  283.      +    QDCTZF,QFLBAS,QFRLFE,QINCB,QINFB,QINFC,QINFS,QINT,QIZFRNB,
  284.      +    QNT,QPARTB,QRADCB,QRETB,QSUMB,QSUMB1,QSUMB2,QIZONB,TBAS,
  285.      +    TBASN,TIMNB,TIN,IDBG) 
  286.           IF(ICTRLZ(NZNBAS).GT.0)THEN 
  287. C               CEILING Q IN BSMT IS ADDED INTO QSUMB2 IN TBZONE IF 
  288. C               BSMT IS A CONTROLLED ZONE.  IT IS NOT ADDED INTO
  289. C               QCEIL4, BECAUSE QCEIL4 IS RESERVED FOR CEILING-TO-
  290. C               ATTIC HEAT FLOW 
  291.              QSUM1=QSUM1+QSUMB1 
  292.              QINF=QINF+QINFB
  293.              QINC=QINC+QINCB
  294.              QPART=QPART+QPARTB 
  295.              QSUM2=QSUM2+QSUMB2 
  296.              QIZONE=QIZONE+QIZONB 
  297.              QDCTZN=QDCTZN+QDUCTZ(2)
  298.              ENDIF
  299.           ENDIF 
  300. C--------CRAWL SPACE
  301.          IF (ICRW.GT.0) THEN
  302.             AFLCR1=AWALLA(IZWH)*H1F 
  303.             QCRWVN=AVENC2*(TCRW-TODDB)
  304.             QGRND=AFLCR1*(TCRW-TODAG1)
  305.             TCRWN=(QFLCRW-QCRWVN-QGRND+ 
  306.      +         QFRLFE*FLOC (3)+QDUCTZ (3))*DTCRW+TCRW 
  307.          END IF 
  308. C  SAVE INDOOR AIR TEMPS USED TO DETERMINE MEAN DAILY VALUE IN GASASHR
  309.          DO 18 JT=1,NROOMS
  310.          TMRSUM(JT)=TMRSUM(JT)+TMR(JT)
  311.    18    TISUM(JT)=TISUM(JT)+TI(JT) 
  312.          ISUM=ISUM+1
  313. C - - - - - - - - - - - - - - - - - - - - 
  314. C--------MOISTURE BALANCE ON ROOM 
  315. C              DEACTIVATE IN HEATING MODE TO SAVE TIME.
  316. C              IN HEATING MODE, CALC MOISTURE WITH HUMIDIFIER OPERATION
  317.          
  318.          IF(IMODE.EQ.1.OR.(IMODE.EQ.2.AND.CFMBP.GT.0.))THEN
  319.            CALL WIZONE(AIRMAS,FINFB,FLOC,FLOW10,FLOW14,WIN,
  320.      +               WIM,WINF,WINFC,WINFS,WINFSS,WINT,IDBG) 
  321. C              FIND REL HUMIDITY TO EVAP COIL,  RHIN     
  322.            IPSY=-4
  323.            WIMN=AVGWV(WI,NROOMS,ROMVOL) 
  324.            CALL PSY (IPSY, TIMN, TDUM, TDUM, RHIN, WIMN, HDUM)
  325.          ELSE
  326.            DO 19 JT=1,NROOMS
  327.    19      WIN(JT)=WI(JT)
  328.            RHIN = RELHMI
  329.          ENDIF
  330.          IF (IWATER.GT.0 .AND. IWATER.LT.120) THEN
  331.             IWATER=IWATER+1 
  332.             WRITE(60, 501) RHIN, WIMN, WINF, WINT, WHUM, WINFS 
  333.          END IF 
  334. C--------FIND NEW SET POINTS FOR ALL THERMOSTATS
  335. C  ALSO PRINT EVENT FILES: AND IF IBPRT, PRINT TI AND ALL EVENTS
  336.          CALL TSTATD (5, IAC, IAC1, IBURN, IEFAN, IDBG) 
  337.          IF (MODE.LE.1) THEN
  338.             RHSN=TCRH*(RHI-RHS)+RHS 
  339.             IHUMN=(1.-.0001*(RHSN-(SETHS+DIFFHS*IHUM)))*IBLPF (I10) 
  340.          END IF 
  341. C========WRITE PROGRAM GENERATED EVENT FILE(MOVED TO TSTATD 3/7/88) 
  342. C  MEAN SUPPLY AIR TEMP TO ACTIVELY CONDITIONED ZONES 
  343.       TSUPM=AVGWV(TSUP,NROOMS,RWSDCT) 
  344. C========ILINES USAGE:  
  345. C        = 1, DEBUG PRINT 
  346. C        = 2, STORE HOURLY TOTALS 
  347. C        = 3, SKIP DEBUG AND HOURLY STORAGE 
  348.          IF (ILINES.EQ.3) GO TO 30
  349.          IF (ILINES.EQ.1) THEN
  350.             WRITE(60, 503) TIME, TODDB, TI(1), RHI, TPL, TSUPM,
  351.      +         TRETB, TBAS, TATTC(1), TFLUE, IAC, IBURN, IEFAN, IHON, 
  352.      +         EXCESS 
  353.             WRITE(60, 504) QVENTB, QSUPB, QRETB, QPLENB, QDRAFT, 
  354.      +         QINFFRN, QBASFT, I10
  355.             WRITE(60, *) 'QDUCTZ, WDUCTZ...', QDUCTZ, WDUCTZ 
  356.             LINES=LINES+1 
  357.             IF (LINES.GT.IDEBUG .AND. NSEQW.EQ.0) ILINES=3
  358.             IF (NDPRE.NE.0) GO TO 30
  359.          END IF 
  360. C--------END OF SPACE CALCULATIONS
  361. C--------CALCULATE HOURLY TOTALS
  362.          HROUT (1, IT)=HROUT (1, IT)+TODDB
  363.          HROUT (2, IT)=HROUT (2, IT)+TIMN 
  364.          HROUT (3, IT)=HROUT (3, IT)+RHI
  365.          HROUT (4, IT)=HROUT (4, IT)+IAC
  366.          HROUT (5, IT)=HROUT (5, IT)+IBURN
  367.          HROUT (6, IT)=HROUT (6, IT)+IEFAN-IAC
  368.          HROUT (7, IT)=HROUT (7, IT)+QEXT+QP
  369.          HROUT (8, IT)=HROUT (8, IT)+EFANPH*(IEFAN-IAC) 
  370.          HROUT (9, IT)=HROUT (9, IT)+CMPUMP 
  371.          HROUT (10, IT)=HROUT (10, IT)+QSUM1
  372.          HROUT (11, IT)=HROUT (11, IT)+QCEIL4 
  373.          HROUT (12, IT)=HROUT (12, IT)+QINF 
  374.          HROUT (13, IT)=HROUT (13, IT)+QWINST 
  375. C        SUM THE DUCT LOSSES NOT IN THE CONDITIONED SPACE 
  376.          SQDZ=0.0 
  377.           IQDZS=2 
  378.           IF(ICTRLZ(NZNBAS).NE.0)IQDZS=3
  379.          DO 20 IQDZ=IQDZS,8 
  380.             SQDZ=SQDZ+QDUCTZ (IQDZ) 
  381.    20       CONTINUE
  382.          HROUT (14, IT)=HROUT (14, IT)+QSUM2-SQDZ-QDCTZF
  383.          HROUT (15, IT)=HROUT (15, IT)+ 
  384.      +      (WINF+WINT+VMIX*(WMIXS-WIM)+WINFS)*1061.
  385.          HROUT (16, IT)=HROUT (16, IT)-TCR
  386.          HROUT (17, IT)=HROUT (17, IT)-SHCR 
  387.          HROUT (18, IT)=HROUT (18, IT)+POW*IAC
  388.          HROUT (19, IT)=HROUT (19, IT)+EFANC*IAC
  389.          HROUT (20, IT)=HROUT (20, IT)+CFANPC*IAC 
  390.          HROUT (21, IT)=HROUT (21, IT)+FLOW11*(TPL-TRETB) 
  391.          HROUT (22, IT)=HROUT (22, IT)+QFRLFE*IFLC1+QVNTLS
  392.          HROUT (23, IT)=HROUT (23, IT)+TMIX 
  393.          HROUT (24, IT)=HROUT (24, IT)+TBAS 
  394.          HROUT (25, IT)=HROUT (25, IT)+QFRLFE*(1-IFLC1) 
  395.          HROUT (26, IT)=HROUT (26, IT)+WSPED
  396.          HROUT (27, IT)=HROUT (27, IT)+WAIRB
  397. C        HROUT (28, IT) IS COLLECTED AT THE END OF EACH HOUR IN HOUS_II
  398.          ACINV=AVGWV(ACINFL,NROOMS,ROMVOL)
  399.          HROUT (29, IT)=HROUT (29, IT)+ACINV
  400.          TOTVOL=TOTV(ROMVOL,NROOMS) 
  401.          HROUT (30, IT)=HROUT (30, IT)+ 
  402.      +      WAIRB*PHI*SRCEAB/(RHOAIR*TOTVOL)
  403.          HROUT (31, IT)=HROUT (31, IT)+TSUPM
  404.          TATCM=AVGWV(TATTC,NATC,ATCVOL) 
  405.          HROUT (32, IT)=HROUT (32, IT)+TATCM
  406.          HROT(1,IT)=HROT(1,IT)+SQDZ 
  407.          HROT(2,IT)=HROT(2,IT)+QNT
  408.          HROT(3,IT)=HROT(3,IT)+QDCTZN 
  409.          IF (IAPRT.EQ.1) THEN 
  410. C  NOTE----VALUES BELOW ARE FOR ATTIC 1 ONLY
  411.             ATOUT (1, IT)=ATOUT (1, IT)+TRO 
  412.             ATOUT (2, IT)=ATOUT (2, IT)+TMP(1,IZT+1)
  413.             ATOUT (3, IT)=ATOUT (3, IT)+TMP(4,IZT+1)
  414.             ATOUT (4, IT)=ATOUT (4, IT)+TMP(1,IZWC) 
  415.             ATOUT (5, IT)=ATOUT (5, IT)+TMP(4,IZWC) 
  416. C           ATOUT (6, IT)=NOT USED CURRENTLY
  417.             ATOUT (7, IT)=ATOUT (7, IT)+0.
  418.             ATOUT (8, IT)=ATOUT (8, IT)+QLOSRF
  419.             ATOUT (9, IT)=ATOUT (9, IT)+QCONRF
  420.             ATOUT (10, IT)=ATOUT (10, IT)+QSKY
  421.             ATOUT (11, IT)=ATOUT (11, IT)+QCRAD 
  422.          END IF 
  423.          IF (WHUM.LT.0.0) WHUM=0.0
  424.          WATER=WATER+WHUM 
  425.          QSPT=QSPT+QSP
  426.          QWAS=QWAS+QWA
  427.          QHUMT=QHUMT+QHUM 
  428.          HUMON=HUMON+IHUM 
  429.          INC=INC+1
  430.          NROUT (IT)=NROUT (IT)+1
  431. C--------KEEP TRACK OF HANDBOOK FACTORS 
  432.          IF (HBKRNL.GE.0.0) THEN
  433.             HBKPEI=QEXT+QP
  434.             HBKAEI=BTUKWH*(CMPUMP+EFANPH*(IEFAN-IAC)+EFANPC*IAC)
  435. C  SUM OF DUCT LOSSES IN CONDITIONED SPACE
  436.             SQDZCS=QDUCTZ(1)
  437.             IF(ICTRLZ(NZNBAS).NE.0)SQDZCS=SQDZCS+QDUCTZ(2)
  438.             IF(NROOMS.GT.1)THEN 
  439.                IQ=8 
  440.                DO 22 IR=2,NROOMS
  441.                IQ=IQ+1
  442.                SQDZCS=SQDZCS+QDUCTZ(IQ) 
  443.    22          CONTINUE 
  444.                ENDIF
  445.             HBK (1)=HBK (1)+FLOW11*(TA2-TMIX) 
  446.             HBK (2)=HBK (2)+(HBKPEI+HBKAEI)-(QVLLOS+QVSLOS)
  447.             HBK (3)=HBK (3)+QPLEN*NCELLS+(SQDZ+SQDZCS)+QNT
  448.             HBK (4)=HBK (4)+HBKPEI
  449.             HBK (5)=HBK (5)+HBKAEI
  450.             HBK (6)=HBK (6)+QNT 
  451.             HBK (7)=HBK (7)+QNT+QVNTLS+SQDZCS+(QFRLFE)*IFLC1
  452.          END IF 
  453. C--------COLLECT DATA FOR WRITING 
  454.          IF (ICOLL.NE.0) THEN 
  455.             CTIME (1)=KM
  456.             CTIME (2)=IDAYM 
  457.             CTIME (3)=IT
  458.             CTIME (4)=TIME
  459. C           CDATA (5 TO 16) IS SET IN GASF
  460.             CDATA (17)=TRETB
  461.             CDATA (18)=TSUPM
  462.             CDATA (19)=HROUT (7, IT)
  463.             CDATA (20)=HROUT (8, IT)
  464.             CDATA (21)=TIMN 
  465.             CDATA (22)=TMR(1) 
  466.             CDATA (23)=QIZONE 
  467.             IF(NROOMS.GT.1)CDATA(23)=TMR(2) 
  468.             CDATA (24)=TBAS 
  469.             CDATA (25)=TATCM
  470.             CDATA (26)=TMP(1,IZWJ)
  471.             CDATA (27)=TMP(3,IZWJ)
  472.             CDATA (28)=WSPED
  473.             CDATA (29)=ACINV
  474.             CDATA (30)=VENBAS 
  475.             CDATA (32)=TGARAG 
  476.             CDATA (33)=TODDB
  477.             FLWINT=TOTV(FLOWIN,NROOMS)
  478.             CDATA (34)=FLWINT 
  479.             CDATA (35)=TMP(1,IZWF)
  480. C  ABOVE GROUND BASEMENT WALL (IZWD)
  481.             CDATA (36)=TMP(3,IZWK)
  482.             CDATA (37)=TMP(4,IZWS(2)) 
  483.             CDATA (38)=TMP(4,IZT+1) 
  484.             CDATA (39)=TMP(4,IZWC)
  485.             CDATA (40)=TMP(4,IZWS(1)) 
  486.             CDATA (41)=TMP(4,IZWS(3)) 
  487.             CDATA (42)=TMP(4,IZWS(4)) 
  488.             CDATA (43)=TMP(3,IZWF)
  489.             CDATA (44)=TMP(1,IZWK)
  490.             CDATA (45)=TMP(1,IZWS(2)) 
  491.             CDATA (46)=TMP(1,IZT+1) 
  492.             CDATA (47)=TMP(1,IZWC)
  493.             CDATA (48)=TMP(3,IZWG)
  494.             CDATA (49)=TODAG1 
  495.             CDATA (50)=TODAG2 
  496.             DO 24 IR=1,NROOMS 
  497.             NRM=NRMA(IR)
  498.             CDATA(50+NRM)=TI(NRM) 
  499.             CDATA(55+NRM)=TMR(NRM)
  500.    24       CONTINUE
  501. C           CDATA (64)      IS SET IN TSTAT 
  502.             CALL COLLECT (1)
  503.          ENDIF
  504.          IF (INC.EQ.MPRINT) THEN
  505.             MPRINT=MPRINT+NINC
  506.             WRITE(60, 505) TIME, TODDB, TI(1), RHI, TPL, TSUPM,
  507.      +         TRETB, TBAS, TATTC(1), TFLUE, IAC, IBURN, IEFAN, IHON, 
  508.      +         EXCESS 
  509.          END IF 
  510. C--------CHECK FOR CYCLING OF A/C 
  511.          IF (IACN.NE.IAC) ICYCCP=ICYCCP+1 
  512. C         
  513. C--------CHECK FOR CYCLING OF THE BURNER AND COLLECT TIME AND TEMP
  514.          IF ((IBURNN*(1-2*IBURN)+IBURN).GE.1) THEN
  515.             ICYC1=ICYC1+1 
  516.             IF (IBURNN.EQ.0 .AND. ICYC1.GT.1) THEN
  517.                TON=TIME-TIMCYL
  518.                IF (TON.GT.TONMAX) TONMAX=TON
  519.                END IF 
  520.             TIMCYL=TIME 
  521.             END IF
  522.          IF (IHUMN.NE.IHUM) ICYC6=ICYC6+1 
  523. C--------RESET VALUES 
  524.    30 CONTINUE
  525.          DO 32 JT=1,NROOMS
  526.          TI(JT)=TIN(JT) 
  527.    32    WI(JT)=WIN(JT) 
  528.          RHI=RHIN 
  529. C--------RESET VALUES IN THERMOSTAT MODEL 
  530.          CALL TSTATD (6, IAC, IAC1, IBURN, IEFAN,IDBG)
  531.          RHS=RHSN 
  532.          TBAS=TBASN 
  533.          WBAS=WBASN 
  534.          TCRW=TCRWN 
  535.          IAC=IACN 
  536.          RHA=RHA+RHI
  537.          QLSWL=0. 
  538.          QLSFL=0.
  539.          SOLRQ=0. 
  540.          DO 34 JT=1,NROOMS
  541.          NRM=NRMA(JT) 
  542.          QLSWL=QLSWL+QLOSWL(NRM)
  543.          QLSFL=QLSFL+QLOSFL(NRM)
  544.          SOLRQ=SOLRQ+SOLARL(NRM+2)
  545.    34    TA(NRM)=TA(NRM)+TI(NRM)
  546.          DO 36 IA=1,NATC
  547.          TATTC(IA)=TATTCN(IA) 
  548.    36    TATTA(IA)=TATTA(IA)+TATTC(IA)
  549.          TCRWA=TCRWA+TCRW 
  550.          TS=TS+TVENTI 
  551.          IHUM=IHUMN 
  552. C--------RESET THE EVAP FAN FLOW RATE VALUE 
  553.          IBL=1+IAC
  554.          TBASA=TBASA+TBAS 
  555.          EFAN=EFANPH*(IEFAN-IAC)
  556.          CALL QACCUM (TINDEX, DTIME, 56, QWALL (1), QWALL (2),
  557.      +      QWALL (3), QWALL (4), QWGR, QFLSPB, QFLSPC, QLSWL,
  558.      +      QWALL(6), QWINST, QINF, QSLFL, QPART, QLSFL, QINT, QINC, 
  559.      +      QRAD, QNT, QDUCTZ (1), SOLRQ,      QVNTLS, QSUM1, QSUM2,
  560.      +      QSUM, QLOSRF, QBWAG, QBWBGT, QBASFT, QFLBAS, QBASVN, QFRLFE,
  561.      +      QDUCTZ (2), QLEAK, QVENTB,  QWALL(5), 
  562.      +      QRADRF,    QCEIL1, QAVENT, QVENTA, QPLENB, QDRAFT, QINFFRN,
  563.      +      CMPUMP, QPLEN, QJACK, QVSLOS, QVLLOS, QEXT, EFAN, 
  564.      +      QP, QFLCRW, QCRWVN, QGRND)
  565. C--------STEP TIME
  566.          TIME=TIME+DTIME
  567.          TINDEX=TINDEX+DTIME
  568.          TIMEOY=TINDEX-24.0 
  569.          RLOADS=RLOADS+SHCR*IAC 
  570.          RLOADL=RLOADL+(TCR-SHCR)*IAC 
  571.          POWA=POWA+POW*IAC
  572. C         IF(ITMQQ.GE.24)GO TO 52
  573.    50    CONTINUE 
  574.       IF(IDBG.NE.0)THEN 
  575.           DO 60 IZU=1,IZT 
  576.    60     WRITE(60,506)IZU,(TMP(I,IZU),I=1,4)
  577.           ENDIF 
  578.       RETURN
  579.   500 FORMAT (' LOOP:QIFRNB,XQADNC,PHI,PHIINF,WAIRB,CPAIR,SRCEAB,', 
  580.      +'TI(1),TCOMB,TODDB= '/2X,5G13.5/4X,5G13.5)
  581.   501 FORMAT (' WATER BAL INFO ', 6E12.4) 
  582.   503 FORMAT (1X, F8.3, 9F10.2, 4I5, F8.3, ' *')
  583.   504 FORMAT (7E13.4, I5) 
  584.   505 FORMAT (1X, F8.3, 9F10.2, 4I5, F8.3)
  585.   506 FORMAT(1X,'IZW,(TMP(I,IZW),I=1,4)=',I5,4G13.5)
  586.  7081 FORMAT(32X,'HOUR= ',I3,'    DAY= ',I4)
  587.       END 
  588.