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 / QIZSET.FOR < prev    next >
Text File  |  1992-05-08  |  13KB  |  351 lines

  1.       SUBROUTINE QIZSET(NRM,RHOBT,QIZONE,QINF,QINFB,IDBG)
  2. C  SET HEAT FLOWS ASSOCIATED WITH INTERZONE FLOWS 
  3. CMDK NWL
  4. CMDK NZN
  5. CMDK NZW
  6. CMDK DUCTS2
  7. CMDK ENCBLK
  8. CMDK ENCBK1
  9. CMDK FLWSIZ
  10. CMDK INDIC1
  11. CMDK QIZNB
  12. CMDK TEMP1
  13.       DATA IFIRST/1/
  14. C  QINFB MAY GET RESET IN QIZLEAK BELOW!      
  15.       QINFB=0.
  16. C  SOLVE FOR HEAT FLOWS ASSOCIATED WITH THE BELOW INTERZONE AIRFLOW 
  17. C    NOTE: CFHIZ VALUES ARE READ AND SET IN DCTFLW
  18. C  NROOMS-    1       2       3       4       5 
  19. C CFHIZ INDICE
  20. C     1       0    W(1-2)   W(1-2)  W(1-2)  W(1-2)
  21. C     2       X       X     W(1-3)  W(1-3)  W(1-3)
  22. C     3       X       X       X     W(1-4)  W(1-4)
  23. C     4       X       X       X       X     W(1-5)
  24. C     5       X       X     W(2-3)  W(2-3)  W(2-3)
  25. C     6       X       X       X     W(2-4)  W(2-4)
  26. C     7       X       X       X       X     W(2-5)
  27. C     8       X       X       X     W(3-4)  W(3-4)
  28. C     9       X       X       X       X     W(3-5)
  29. C    10       X       X       X       X     W(4-5)
  30. C      HERE: 0 OR X MEANS NO INTERZONE FLOW 
  31. C            W(1-2) MEANS AIR FLOW FROM ZONE 1-2, ETC 
  32. C  SOLUTION LOGIC EXECUTES THE ABOVE TABLE BY ROWS
  33. C    NOTE:!!!!MORE LOGIC WILL BE REQUIRED FOR MORE ZONES THAN FIVE!!! 
  34. C   RESET ARRAYS ACCORDING TO THE ABOVE INDICE TABLE
  35.       IF(ICFIZB.EQ.0)THEN 
  36.          IF(NROOMS.EQ.3)THEN
  37.              CFHIZ(5)=CFHIZ(3)
  38.              ENDIF
  39.          IF(NROOMS.EQ.4)THEN
  40.              CFHIZ(9)=CFHIZ(5)
  41.              CFHIZ(10)=CFHIZ(6) 
  42.              CFHIZ(5)=CFHIZ(4)
  43.              CFHIZ(6)=CFHIZ(9)
  44.              CFHIZ(8)=CFHIZ(10) 
  45.              ENDIF
  46.           ENDIF 
  47.       IF(ICFIZB.GT.0.AND.IFIRST.EQ.1)THEN 
  48. C       ICFIZB AND CFHZBI VALUES ARE READ IN NAMELIST CONTROL IN STRRUN 
  49. C       CHFZB1 AND 2 ARE FLOWS INTO THE ZONE WITH BLWR ON AND OFF 
  50. C       CHFZB3 AND 4 ARE FLOWS OUT OF THE ZONE WITH BLWR ON AND OFF 
  51. C  FOUR CFHZBI(1) VALUES CORRESPOND TO W(1-2) IN ABOVE CFHIZ TABLE
  52. C  FOUR CFHZBI(2) VALUES CORRESPOND TO W(1-3) 
  53. C  FOUR CFHZB1(3) VALUES CORRESPOND TO W(2-3) 
  54.           IF(NROOMS.EQ.3)THEN 
  55. C  SET CFHZBI VALUES IN ACCORD WITH ORDER IN CFHIZ ARRAY 
  56.               CFHZB1(5)=CFHZB1(3) 
  57.               CFHZB2(5)=CFHZB2(3) 
  58.               CFHZB3(5)=CFHZB3(3) 
  59.               CFHZB4(5)=CFHZB4(3) 
  60.               ENDIF 
  61.           IF(NROOMS.EQ.4)THEN 
  62.               CFHZB1(9)=CFHZB1(5) 
  63.               CFHZB1(10)=CFHZB1(6)
  64.               CFHZB1(5)=CFHZB1(4) 
  65.               CFHZB1(6)=CFHZB1(9) 
  66.               CFHZB1(8)=CFHZB1(10)
  67.               CFHZB2(9)=CFHZB2(5) 
  68.               CFHZB2(10)=CFHZB2(6)
  69.               CFHZB2(5)=CFHZB2(4) 
  70.               CFHZB2(6)=CFHZB2(9) 
  71.               CFHZB2(8)=CFHZB2(10)
  72.               CFHZB3(9)=CFHZB3(5) 
  73.               CFHZB3(10)=CFHZB3(6)
  74.               CFHZB3(5)=CFHZB3(4) 
  75.               CFHZB3(6)=CFHZB3(9) 
  76.               CFHZB3(8)=CFHZB3(10)
  77.               CFHZB4(9)=CFHZB4(5) 
  78.               CFHZB4(10)=CFHZB4(6)
  79.               CFHZB4(5)=CFHZB4(4) 
  80.               CFHZB4(6)=CFHZB4(9) 
  81.               CFHZB4(8)=CFHZB4(10)
  82.               ENDIF 
  83.           IFIRST=0
  84.           ENDIF 
  85.       QIZONE=0. 
  86.       IF(NROOMS.EQ.1)GO TO 100
  87. C  HEAT FLOWS ASSOCIATED WITH INTERZONE FLOWS CAUSED BY BLWR OPERATION
  88.       IF(ICFIZB.EQ.0)CALL QZST(NRM,NROOMS,1,CFHIZ,RHOBT,QIZONE, 
  89.      +                         QIZONS,IDBG) 
  90.       IF(ICFIZB.GT.0)THEN 
  91. C  HEAT FLOWS ASSOCIATED WITH INTERZONE FLOWS INPUT IN NAMELIST 
  92. C   CONTROL  IN STRRUN
  93. C     INTERZONE HEAT FLOWS IN FORWARD DIR,I.E. (1-2),(1-3),(2-3)
  94.           IF(IEFAN.NE.0)THEN
  95. C                                -- BLOWER ON --
  96.               CALL QZST(NRM,NROOMS,1,CFHZB1,RHOBT,QIZONE,QIZONS,IDBG) 
  97.           ELSE
  98. C                                -- BLOWER OFF -- 
  99.               CALL QZST(NRM,NROOMS,1,CFHZB2,RHOBT,QIZONE,QIZONS,IDBG) 
  100.               ENDIF 
  101. C  INTERZONE HEAT FLOWS IN BACKWARD DIRECTION (2-1),(3-1),(3-2),
  102.           IF(IEFAN.NE.0)THEN
  103. C                                -- BLOWER ON --
  104.               CALL QZST(NRM,NROOMS,2,CFHZB3,RHOBT,QIZONE,QIZONS,IDBG) 
  105.           ELSE
  106. C                                -- BLOWER OFF -- 
  107.               CALL QZST(NRM,NROOMS,2,CFHZB4,RHOBT,QIZONE,QIZONS,IDBG) 
  108.               ENDIF 
  109.           ENDIF 
  110.   100 CONTINUE
  111.       IF(NLEAKS.GT.0)CALL QZLEAK(NRM,RHOBT,QIZONE,QIZONS,QINF,
  112.      +                           QINFB,IDBG)      
  113.       RETURN
  114.       END 
  115.       SUBROUTINE QZST(NRM,NROOMS,IC,CFHIZ,RHOBT,QIZONE,QIZONS,IDBG) 
  116. C   SET HEAT FLOWS ASSOCIATED WITH INTERZONE FLOWS
  117. C   IC    =1, FORWARD FLOWS (1-2),(1-3),(2-3) FOR EXAMPLE 
  118. C         =2, BACKFLOWS CAUSED BY THERMAL GRADIENTS IN OPENINGS SUCH
  119. C             AS A DOOR (2-1),(3-1),(3-2) FOR EXAMPLE 
  120.       PARAMETER (NZN=5)
  121.       DIMENSION CFHIZ(10),IZ(10,2,2),QIZONS(NZN)
  122. C  IZ VALUES ARE ZONE NUMBER OF OPERATING ZONES 
  123.       DATA (((IZ(I,J,K),I=1,10),J=1,2),K=1,2)/
  124.      +        1,1,1,1,2,2,2,3,3,4,
  125.      +        2,3,4,5,3,4,5,4,5,5,
  126.      +        2,3,4,5,3,4,5,4,5,5,
  127.      +        1,1,1,1,2,2,2,3,3,4/
  128.       IF(IDBG.NE.0)WRITE(60,501)NRM,IC,(CFHIZ(I),I=1,3)
  129. C  HEAT FLOWS SET IN ACCORD WITH ORDER OF CFHIZ ARRAY(SEE TABLE IN
  130. C  COMMENTS OF QIZSET SUBPROGRAM
  131.       DO 30 I=1,10
  132.       IF(NROOMS.EQ.3)THEN 
  133.          IF(I.EQ.3.OR.I.EQ.4)GO TO 30 
  134.          IF(I.EQ.6)GO TO 40 
  135.          ENDIF
  136.       IF(NROOMS.EQ.4)THEN 
  137.          IF(I.EQ.4.OR.I.EQ.7)GO TO 30 
  138.          IF(I.EQ.9)GO TO 40 
  139.          ENDIF
  140.       CALL QZSET(NRM,IZ(I,1,IC),IZ(I,2,IC),CFHIZ(I),RHOBT,QIZONE, 
  141.      +           QIZONS,IDBG) 
  142.       IF(NROOMS.EQ.2)GO TO 40 
  143.    30 CONTINUE
  144.    40 CONTINUE
  145.       RETURN
  146.   501 FORMAT(1X,'NRM,IC,CFHIZ= ',2I4,3G13.5)
  147.       END 
  148.       SUBROUTINE QZSET(NRM,NRM1,NRM2,CFHIZ,RHOBT,QIZONE,QIZONS,IDBG)
  149. C  AUXILLIARY SUBPROGRAM TO QIZSET USED TO SET INTERZONE
  150. C  HEAT FLOWS DUE TO AIR MOVEMENT BETWEEN ZONES 
  151. CMDK CPAIR
  152. CMDK FTR
  153. CMDK NZN
  154. CMDK FLWSIZ
  155. CMDK INDIC1
  156. CMDK TEMP1
  157. CMDK TIMEB
  158.       REAL QIZONS(NZN)
  159. C      
  160. C  QIZONE IS HEAT EXCHANGE IN ZONE NRM FROM INTERZONE FLOW
  161. C    NOTE: QIZONE BECOMES QIZN(NRM) IN TAZONE AND TBZONE.      
  162. C  QIZONS IS HEAT LOST FROM THE ZONE THAT INTR ZONE FLOW COMES FROM.
  163. C  RHOBT IS SET IN TAZONE.
  164.       DQZONE=0. 
  165. C         IF FURNACE BLOWER IS OFF, DONT PERMIT INTERZONE FLOWS 
  166. C         IF INTERZONE FLOWS WERE NOT READ IN NAMELIST CONTROL IN STRRUN
  167.       IF(IEFAN.EQ.0.AND.ICFIZB.EQ.0)GO TO 100 
  168.       IF(NRM.EQ.NRM1.AND.CFHIZ.LT.0.)THEN 
  169. C      
  170. C           AIR FLOW FROM ZONE NRM2 TO ZONE NRM1
  171.           DQZONE=RHOBT/(TI(NRM2)+FTR)*ABS(CFHIZ)*CPAIR* 
  172.      +                   (TI(NRM2)-TI(NRM1))
  173. C NOTE: IF TEMP IN ZONE NRM2 IS LOWER THAN IN NRM1, IT ISNT LOSING
  174. C       HEAT =DQZONE.  COOL AIR IS SIMPLY FLOWING OUT OF ZONE NRM2!     
  175.           IF(DQZONE.GT.0.)QIZONS(NRM2)=QIZONS(NRM2)+DQZONE
  176.             
  177.           IF(IDBG.GT.0)WRITE(60,500)NRM2,NRM1
  178.           ENDIF 
  179.       IF(NRM.EQ.NRM2.AND.CFHIZ.GT.0.)THEN 
  180. C      
  181. C            AIR FLOW FROM ZONE NRM1 TO ZONE NRM2 
  182.           DQZONE=RHOBT/(TI(NRM1)+FTR)*CFHIZ*CPAIR*
  183.      +                  (TI(NRM1)-TI(NRM2)) 
  184. C NOTE: IF TEMP IN ZONE NRM1 IS LOWER THAN IN NRM2, IT ISNT LOSING 
  185. C       HEAT = DQZONE.  COOL AIR IS SIMPLY FLOWING OUT OF ZONE NRM!     
  186.           IF(DQZONE.GT.0.)THEN
  187.             QIZONS(NRM1)=QIZONS(NRM1)+DQZONE
  188. C              MUST NEGATE DQZONE FOR PROPER SIGN WITH QIZONE            
  189.             DQZONE=(-1.)*DQZONE
  190.           ELSE
  191.             DQZONE=0.
  192.           ENDIF
  193.           IF(IDBG.GT.0)WRITE(60,500)NRM1,NRM2
  194.           ENDIF 
  195.   100 QIZONE=QIZONE+DQZONE
  196.       IF(IDBG.GT.0.AND.DQZONE.NE.0.)WRITE(60,501)NRM,CFHIZ,DQZONE,QIZONE 
  197.       RETURN
  198.   500 FORMAT(1H0,'AIR FLOW FROM ZONE',I4,' TO ZONE',I4) 
  199.   501 FORMAT(1X,'ZONE NO.= ',I4/1X,'ZONE AIR FLOW= ',G13.5,'CFH'/ 
  200.      +1X,'HEAT FLOW BY INTERZONE FLOW= ',G13.5,' BTU/HR'/ 
  201.      +1X,'TOTAL HEAT FLOW TO THIS ZONE BY INTERZONE FLOW= ',G13.5,
  202.      +' BTU/HR')
  203.       END 
  204.       SUBROUTINE QZLEAK(NRM,RHOBT,QIZONE,QIZONS,QINF,QINFB,IDBG)      
  205. C         HEAT FLOWS ASSOCIATED WITH LEAKS IN VERTICAL ENCLOSURE
  206. C         ELEMENTS WITH TEMPERATURE DIFFERENCE ON EITHER SIDE 
  207. C         
  208. CMDK CPAIR
  209. CMDK FTR
  210. CMDK NZN
  211. CMDK NZW
  212. CMDK NWL
  213. CMDK ENCBLK
  214. CMDK ENCBK1
  215. CMDK ENCBK2
  216. CMDK LPSTRB
  217. CMDK OWETHR
  218. CMDK TEMP1
  219. CMDK TIMEB
  220. C SEE QZSET FOR DEFINITION OF QIZONE AND QIZONS
  221.       DIMENSION QIZONS(NZN)
  222.       DO 100 J=1,NLEAKS
  223.       IZW=IZWLEAK(J)
  224. C  CHECK TO SEE IF THE ENCLOSURE IZW WITH THIS LEAK IS IN ZONE NRM:      
  225.       N2=NWALLA(NRM)
  226.       DO 2 K2=1,N2
  227.     2 IF(IZW.EQ.NENC(NRM,K2))GO TO 3
  228.       GO TO 100
  229.     3 CONTINUE
  230.       DQZONE=0.
  231.       H=HGTLEAK(IZW)
  232.       W=WDLEAK(IZW)
  233.       NZONC=NZNC(IZW)
  234.       IF(NZONC.GT.8)THEN
  235.         NZN8=NZONC-8
  236.         T2=TI(NZN8)
  237.       ELSE IF(NZONC.EQ.1)THEN
  238.         T2=TODDB
  239.       ELSE IF(NZONC.EQ.2.OR.NZONC.EQ.7)THEN
  240.         T2=TI(NZNBAS)
  241.       ELSE IF(NZONC.EQ.3.OR.NZONC.EQ.8)THEN
  242.         T2=TCRW
  243.       ELSE IF(NZONC.EQ.6)THEN
  244.         T2=TGARAG
  245.       ELSE
  246.         GO TO 100
  247.       ENDIF
  248.       RHO1=RHOBT/(TI(NRM)+FTR)
  249.       RHO2=RHOBT/(T2+FTR)
  250. C      IF(NTIM.LT.100)WRITE(60,*)' TI,TODDB,RHO1,RHO2= ',TI,TODDB,
  251. C     +               RHO1,RHO2
  252. C  USE FLOW THROUGH A CRACK IF WIDTH OR HEIGHT OF LEAKAGE OPENING
  253. C  IS LESS THAN 0.25 INCHES  (AN ARBITRARY DECISION!)
  254.       IF(H.LT.0.25.OR.W.LT.0.25)THEN
  255.         IOUT=1
  256.         IF(NZONC.EQ.1.AND.WSPED.GT.0.)THEN
  257. C           CONNECTING ZONE IS OUTDOORS (I.E. THIS IS AN OUTSIDE WALL)          
  258. C           USE WIND VELOCITY PRESSURE FOR DRIVING PRESSURE DIFF.
  259. C              UNITS:  WSPED - MILES/HR; RHO2 - LBM/FT3
  260. C                      DPW - LBF/FT2
  261. C                      RHO2 - LBM/FT3; WLEAK - LBM/HR
  262. C              .03343 IS (5280/3600)^2/(2*32.174)
  263. C              120.3 IS .6*3600*SQRT(2*32.174)/144.
  264.            DPW=.03343*RHO2*WSPED*WSPED
  265. C        ELSE
  266. C              USE STACK EFFECT DUE TO TEMP DIFF ACROSS ENCLOSURE ELE
  267. C              REF. 1989 ASHRAE HANDBOOK OF FUNDAMENTALS, P.23.4
  268. C              NOTE: HNPL IS HEIGHT FROM CENTER OF OPENING TO NEUTRAL
  269. C                    PRESSURE LEVEL IN BUILDING, INCHES
  270.           DPW=(RHO2-RHO1)*HNPL(IZW)/12.
  271.           IF(DPW.LT.0.)THEN
  272.             DPW=(-1.)*DPW
  273.             IOUT= -1
  274.           ENDIF
  275.         ENDIF
  276.         RHOAV=.5*(RHO1+RHO2)
  277.         IF(IOUT.EQ.1)THEN
  278.           WLEAK=120.3*W*H*RHO2*(DPW/RHOAV)**.65
  279.         ELSE
  280.           WLEAK=120.3*IOUT*W*H*RHO1*(DPW/RHOAV)**.65
  281.         ENDIF
  282.       ELSE
  283. C              USE BROWN-SOLVASON MODEL FOR LARGE OPENINGS.
  284. C              REF: INT.J.HEAT MASS TRANSFER,VOL 5,P.859-868(1962) 
  285. C              COEF OF .26 IF FROM WEBER AND KEARNEY AS PER WALTON
  286. C              REF: WALTON,G.N.,ASHRAE TRANS(1984),VOL 90,PT 1D
  287. C 10.5828 IS .26(.0147).72*SQRT(32.174)/(.24*12.32E-06*12^2.5)
  288. C  WHERE .0147 IS THERM COND OF AIR,BTU/HR-FT-F
  289. C        .72 IS PRANDTL NO. OF AIR
  290. C        12.32E-06 IS VISCOSITY OF AIR,LBM/FT-SEC
  291. C        .24 IS SPEC HEAT OF AIR, BTU/LBM-F
  292.         DRHO=RHO2-RHO1
  293.         RHOAV=.5*(RHO2+RHO1)
  294.         IOUT=1
  295.         RHO=RHO2
  296.         IF(DRHO.LT.0.)THEN
  297.           DRHO=DRHO* (-1.)
  298.           IOUT = -1
  299.           RHO=RHO1
  300.         ENDIF
  301.         WLEAK=10.5828*IOUT*RHO*W*H**1.5*SQRT(DRHO/RHOAV)
  302.       ENDIF
  303.       IF(WLEAK.GT.0.)THEN
  304. C              AIR FLOWS INTO ZONE NRM!
  305.         DQZONE=WLEAK*CPAIR*(T2 - TI(NRM))
  306.         IF(NZONC.EQ.1)THEN
  307.           IF(NRM.NE.NZNBAS)THEN
  308.             QINF=QINF+DQZONE
  309. C              QINF IS USED IN TAZONE TO TRAP INFILTRATION VALUES,
  310. C              BUT IS NOT USED IN CALC OF ZONE AIR TEMP.  THEREFORE
  311. C              DONT SET DQZONE= 0., BECAUSE IT IS NEEDED IN CALC OF
  312. C              ZONE AIR TEMP.        
  313.           ELSE
  314.             QINFB=QINFB+DQZONE
  315. C              HERE QINFB IS USED IN TBZONE TO CALC ZONE AIR TEMP, SO 
  316. C              SET DQZONE=0.
  317.             DQZONE=0.
  318.           ENDIF
  319.         ENDIF
  320.         
  321.         IF(DQZONE.GT.0.)THEN
  322.           IF(NZONC.GT.8)THEN
  323.             QIZONS(NZN8)=QIZONS(NZN8)+DQZONE
  324.           ELSE IF(NZONC.EQ.2.OR.NZONC.EQ.7)THEN
  325.             QIZONS(NZNBAS)=QIZONS(NZNBAS)+DQZONE
  326.           ENDIF
  327.         ENDIF
  328.       ELSE
  329. C              AIR FLOWS OUT OF ZONE NRM
  330. C    DQZONE IS NOT A HEAT LOAD OR LOSS IN ZONE NRM IF TI(NRM)<T2
  331. C    WHEN AIR FLOWS OUT OF ZONE NRM.
  332.         IF(TI(NRM).GT.T2)DQZONE=WLEAK*CPAIR*(TI(NRM)-T2)        
  333.       ENDIF
  334.       QIZONE=QIZONE+DQZONE
  335.       IF(IDBG.GT.0)WRITE(60,*)' QZLEAK: NRM,WLEAK,DQZONE,QIZONE= ',
  336.      +             NRM,WLEAK,DQZONE,QIZONE
  337.   100 CONTINUE      
  338.       RETURN
  339.       END
  340.