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
/
TAZONE.FOR
< prev
next >
Wrap
Text File
|
1992-05-08
|
15KB
|
448 lines
SUBROUTINE TAZONE(AIRMAS,CMPUMP,QCEIL4,QDCTZN,QFLBAS,QFLCRW,
+ QFRLFE,QFLSPB,QFLSPC,QINC,QINF,QINFB,QINFC,
+ QINFFRN,QINFS,QINT,QNT,QPART,QRADCB,QSLFL,
+ QSUM,QSUM1,QSUM2,QWALL,QWGR,QWINST,QIZONE,
+ TBAS,TCRW,TIN,XQADNC,IDBG)
C
C COMPUTE ZONE AIR TEMPERATURE
C
C NRMBGW ZONE NO. THAT HAS A BELOW-GROUND WALL
C NRMSLB ZONE NO. THAT HAS A SLAB FLOOR
C NRMVNT ZONE NO. THAT VENT PASSES THROUGH
C RQINT(NZN) RATIO OF QINT FLOWING TO THIS ZONE
C
C - - - CONSTANTS
CMDK BTUKWH
CMDK CPAIR
CMDK FTR
CMDK NZN
CMDK NIWL
CMDK NKONST
CMDK NWL
CMDK NWN
CMDK NZW
CMDK RHOAIR
CMDK BAR
CMDK BLKFMT
CMDK BLKQS
CMDK BLKQGS
CMDK BLKGS2
CMDK BLKRAD
CMDK CNSTRK
CMDK DUCTS1
CMDK EBALA
CMDK ENCBK1
CMDK ENCBK2
CMDK ENCBLK
CMDK INDIC1
CMDK IWLS
CMDK IZPART
CMDK IZZQ
CMDK MRTBLK
CMDK MZON1
CMDK OWETHR
CMDK QIZNB
CMDK QUAYLE
CMDK SOLARB
CMDK STRUCA
CMDK SURFAR
CMDK TEMPB
CMDK TEMP1
CMDK TIMEB
CMDK TSTB2
CMDK TSTB4
CMDK TSTATC
C
C - - - DIMENSIONS
REAL AIRMAS(NZN), QINFC(NZN), QINFS(NZN), QWALL(6), TIN(NZN)
+ ,RTQINF(NZN)
LOGICAL FIRST,IFN,IFNB
CHARACTER*125 FRMT
C
DATA FIRST/.TRUE./
IDBGSV=IDBG
C IF(TIME.GT.8.020)THEN
C IDBG=1
C IDBGSV=1
C ENDIF
C IF(TIME.GT.16.57.AND.TIME.LE.16.64)IDBG=1
C IF(TIME.GT.17.80)THEN
C IDBG=1
C IF(TIME.GT.17.95) IDBGSV=1
C ENDIF
IF(.NOT.FIRST)GO TO 3
C CALC DISTRIBUTION OF FURNACE-INDUCED INFILTRATION IN OTHER ZONES THAN
C WHERE FURNACE IS LOCATED (BASED ON RELATIVE FLOOR AREAS IN ZONES)
C AFLRT IS SET IN CONSLD
AFSUM=0.
DO 1 JT=1,NROOMS
NRM=NRMA(JT)
RTQINF(NRM)=0.
C SKIP OUT IF FURNACE IS IN THIS ZONE !
IF(IFLOC.EQ.1.AND.NRM.EQ.1)GO TO 1
IF(IFLOC.GT.8.AND.(IFLOC-7).EQ.NRM)GO TO 1
AFSUM=AFSUM+AFLRT(NRM)
1 CONTINUE
DO 2 JT=1,NROOMS
NRM=NRMA(JT)
C SKIP OUT IF FURNACE IS IN THIS ZONE !
IF(IFLOC.EQ.1.AND.NRM.EQ.1)GO TO 2
IF(IFLOC.GT.8.AND.(IFLOC-7).EQ.NRM)GO TO 2
RTQINF(NRM)=AFLRT(NRM)/AFSUM
2 CONTINUE
RHOBT=RHOAIR*BARRAT*(70.+FTR)
FIRST=.FALSE.
3 CONTINUE
CALL ZERV(10,QCEIL4,QFLSPB,QFLSPC,QINC,QINF,QSUM1,QSUM2,QSUM,
+ QWGR,QWINST)
CALL ZERV(10,QPART,QSLFL,QWALL(1),QWALL(2),QWALL(3),QWALL(4),
+QIZONE,QNT,QFLBAS,QFLCRW)
CALL ZERV(6,QWALL(5),QWALL(6),QDCTZN,SMA,SMTA,QINFFRN,
+ DM1,DM2,DM3,DM4)
C MUST SET INTERZONE Q'S BEFORE ZONE TEMPS ARE CALC SO THAT VALUES
C GET SET PROPERLY
DO 4 JT=1,NROOMS
QIZN(JT)=0.
4 QIZONS(JT)=0.
DO 5 JT=1,NROOMS
NRM=NRMA(JT)
C SET INTERZONE FLOWS
CALL QIZSET(NRM,RHOBT,QIZN(NRM),QINF,QINFB,IDBG)
5 CONTINUE
TWIFZ=TBAS
TWIGZ=TBAS
TWIHZ=TCRW
TWIIZ=TCRW
C
DO 100 JT=1,NROOMS
NRM=NRMA(JT)
C BASEMENT ZONE CALC ARE DONE IN TBZONE
IF(NRM.EQ.NZNBAS)GO TO 100
TIA=TI(NRM)
TWIF=TIA
TWIG=TIA
TWIH=TIA
TWII=TIA
IFN=.FALSE.
IF(ICTRLZ(NRM).EQ.1.AND.IEFAN.EQ.1)IFN=.TRUE.
CALL ZERV(3,QPARTN,QCEL4N,QRADPQ,DM1,DM2,DM3,DM4,DM5,
+ DM6,DM7)
C M CP OF ROOM AIR
AIRMAS(NRM)=RHOBT/(TIA+FTR)*ROMVOL(NRM)/DTIME
CPMASS=CPAIR*AIRMAS(NRM)
C SET HEAT FLOW ASSOCIATED WITH INTERZONE AIR FLOWS
C QIZN AND QIZONS ARE HEAT FLOWS INTO AND OUT OF THIS ZONE.
C NEGATIVE OUTFLOW OF HEAT(QIZONS) IS NOT A HEAT LOAD.
C INFLOW OF HEAT IS EITHER POSITIVE OR NEGATIVE
QIZONN=QIZN(NRM)-QIZONS(NRM)
QIZONE=QIZONE+QIZONN
N2=NWALLA(NRM)
C SET INDICES WHICH WILL GIVE AWALLA(IZWI)=0. IF IZWI IS NOT
C DEFINED BELOW (AWALLA(IZT+1) IS SET = 0. IN CONSLD BELOW
C LABEL 140)
IZWF=IZT+1
IZWG=IZT+1
IZWH=IZT+1
IZWI=IZT+1
C
DO 10 K2=1,N2
IZW=NENC(NRM,K2)
KON=KONSTA(IZW)
NLM=NLMP(KON)
ID=IDEXP(IZW)
NZONC=NZNC(IZW)
NZON=NZONC-8
IF(ID.LE.4)THEN
C - - - OUTSIDE WALL HEAT FLOWS (QSUM1)
T4=TMP(4,IZW)
HIWC=HC(NRM,IZW,3,IFN,T4,TIA)
QWALLC=AWALLA(IZW)*HIWC*(T4-TIA)
QCSURF(IZW)=QCSURF(IZW)-QWALLC
SMA=SMA+AWALLA(IZW)
SMTA=SMTA+AWALLA(IZW)*T4
C QRMRT VALUE IS SET IN OWALLS
QRADW=QRMRT(IZW)
QWALL(ID)=QWALL(ID)+QWALLC-QRADW
QSUM1=QSUM1+QWALLC
ENDIF
QGARAG=0.
IF(ID.EQ.7.AND.NZONC.EQ.6)THEN
IF(NLM.EQ.1)THEN
TWI=TMP(3,IZW)
ELSE
TWI=TMP(4,IZW)
ENDIF
HIWGC=HC(NRM,IZW,3,IFN,TWI,TIA)
QGARAG=AWALLA(IZW)*HIWGC*(TWI-TIA)
QCSURF(IZW)=QCSURF(IZW)-QGARAG
SMA=SMA+AWALLA(IZW)
SMTA=SMTA+AWALLA(IZW)*TWI
C QRMRT VALUE IS SET IN IWALLS
QRADW=QRMRT(IZW)
C IDXGAR IS SET IN STRCTL!
QWALL(IDXGAR)=QWALL(IDXGAR)+QGARAG-QRADW
QSUM1=QSUM1+QGARAG
ENDIF
IF(ID.EQ.5)THEN
C - - -CEILING HEAT FLOW
T4=TMP(4,IZW)
HICC=HC(NRM,IZW,1,IFN,T4,TIA)
QCEL4C=AWALLA(IZW)*HICC*(T4-TIA)
QCSURF(IZW)=QCSURF(IZW)-QCEL4C
QCEL4N=QCEL4N+QCEL4C
SMA=SMA+AWALLA(IZW)
SMTA=SMTA+AWALLA(IZW)*T4
QRADC=QRMRT(IZW)
QCEIL4=QCEIL4+QCEL4C
QWALL(6)=QWALL(6)+QCEL4C-QRADC
ENDIF
C GET INDICES FOR FLOOR
IF(ID.EQ.6)THEN
IF(NZONC.EQ.2)THEN
C FLOOR OVER BASEMENT W/O DUCTS BELOW
IZWF=IZW
TWIF=TMP(3,IZWF)
IF(NLM.EQ.3)TWIF=TMP(4,IZWF)
C SET INDICE FOR BASEMENT CEILING BELOW
IZWFZ=IZSET(IZWF)
TWIFZ=TMP(1,IZWF)
ENDIF
IF(NZONC.EQ.7)THEN
C FLOOR OVER BASEMENT W/ DUCTS BELOW
IZWG=IZW
TWIG=TMP(3,IZWG)
IF(NLM.EQ.3)TWIG=TMP(4,IZWG)
C SET INDICE FOR BSMT CEILING BELOW
IZWGZ=IZSET(IZWG)
TWIGZ=TMP(1,IZWG)
ENDIF
IF(NZONC.EQ.3)THEN
C A CRAWL SPACE IS BELOW FLOOR
IZWH=IZW
TWIH=TMP(3,IZWH)
IF(NLM.EQ.3)TWIH=TMP(4,IZWH)
TWIHZ=TMP(1,IZWH)
ENDIF
IF(NZONC.EQ.8)THEN
C A CRAWL SPACE WITH DUCTS IS BELOW FLOOR
IZWI=IZW
TWII=TMP(3,IZWI)
IF(NLM.EQ.1)TWII=TMP(4,IZWI)
TWIIZ=TMP(1,IZWI)
ENDIF
ENDIF
IF(ID.EQ.7)THEN
C - - - -PARTITION HEAT FLOW
C DOUBLE AREA IF SUBMERGED INTERIOR ENCLOSURE ELEMENT
XR=1.
IF(NZON.EQ.NRM)XR=2.
TWI=TMP(3,IZW)
IF(NLM.EQ.3)TWI=TMP(4,IZW)
HIWPC=HC(NRM,IZW,3,IFN,TWI,TIA)
C SAVE CONVECTIVE H AT PARTITION WALLS TO USE WITH FURNITURE
IF(XR.EQ.2)HIWPCS=HIWPC
QPARTC=HIWPC*XR*AWALLA(IZW)*(TWI-TIA)
C QSURF FOR SUBMERGED PARTITION WALL IS FOR ONE SIDE ONLY
QCSURF(IZW)=QCSURF(IZW)-QPARTC/XR
SMA=SMA+XR*AWALLA(IZW)
SMTA=SMTA+XR*AWALLA(IZW)*TWI
QRADP=QRMRT(IZW)*XR
QRADPQ=QRADPQ+QRADP
QPARTN=QPARTN+QPARTC
QPART=QPART+QPARTC-QRADP
IF(IDBG.NE.0)WRITE(60,505)NRM,IZW,QPARTC,TWI,HIWPC,XR
ENDIF
10 CONTINUE
C GET FURNITURE HEAT EXCHANGE
CALL FMASS(NRM,HIWPCS,TIA,TFM,QCFM)
QCFMQ(NRM)= QCFM
C QINFFRN BELOW IS FURNACE-INDUCED INFILTRATION TO LVG SPC ZONES
C XQADNC IS CALC IN LOOP
QINFRN=XQADNC*RTQINF(NRM)*(TODDB-TIA)
QINFFRN=QINFFRN+QINFRN
QINFN=QINFC(NRM)-TIA*QINFS(NRM)+QINFRN
QINF=QINF+QINFN
C
C - - -NET HEAT FLOW AT WINDOWS (QWINST)
QWISTN=(1.-RADSOL)*SOLARL(NRM+2)+UWIND*AWAWT(NRM)
+*(TODDB-TIA)
QWINST=QWINST+QWISTN
C
C - - -HEAT INPUT FROM VENT(IF PASSING THROUGH THIS ZONE)
QVNTS=0.
IF(NRMVNT.EQ.1.AND.IRMVNT(1).EQ.NRM)THEN
QVNTS=QVNTLS
ELSE IF(NRMVNT.EQ.2)THEN
DO 20 IQ=1,NRMVNT
IF(IRMVNT(IQ).EQ.NRM)QVNTS=FRCVNT(IQ)*QVNTLS
20 CONTINUE
ENDIF
C
C - - -HEAT FLOW FROM DUCTS PASSING THROUGH THIS ZONE
C INDICE FOR QDUCTZ MUST CORRESPOND TO INDICE FOR TZONE
C (SEE BCLSD)
NQD=1
IF(NRM.GT.1)NQD=NRM+7
QDCTZ1=QDUCTZ(NQD)
QDCTZN=QDCTZN+QDCTZ1
C
C - - -NET HEAT DELIVERY TO ZONE NRM FROM DUCTS
QNTN=QNET(NRM)
QNT=QNT+QNTN
C
C - - -SUM OF MISC HEAT FLOWS
C
C
C - - - - SLAB FLOOR HEAT FLOW
QSLFLN=0.
IF(NRMSLB(NRM).NE.0)THEN
QSLFLN=ASLFL(NRM)*USLFL*(TIA-TODAG1)
QSLFL=QSLFL+QSLFLN
ENDIF
C
C - - - - HEAT FLOW AT BELOW-GROUND WALL IN LIVING SPACE
C NOTE: MODEL FOR BELOW-GROUND WALL IN LVG SPC IS NOT CHECKED OUT
C BY BATTELLE. BETTER TO MODEL SUCH A WALL IN BASEMENT
C WHEN BASEMENT IS A HEATED ZONE.
C
QWGRN=0.
IF(NRMBGW(NRM).EQ.NRM)THEN
QWGRN=AWGR(NRM)*UWGR*(TIA-TODAG2)
QWGR=QWGR+QWGRN
ENDIF
C
C - - - - HEAT FLOW AT FLOOR
C NOTE:IZW INDICES WERE SET ABOVE
H3FFC=HC(NRM,IZWF,6,IFN,TWIF,TIA)
H3FGC=HC(NRM,IZWG,5,IFN,TWIG,TIA)
QFLPB1=H3FFC*AWALLA(IZWF)*(TWIF-TIA)
QFLPB2=H3FGC*AWALLA(IZWG)*(TWIG-TIA)
QFLPBN=QFLPB1+QFLPB2
QCSURF(IZWF)=QCSURF(IZWF)-QFLPB1
QCSURF(IZWG)=QCSURF(IZWG)-QFLPB2
SMA=SMA+AWALLA(IZWF)+AWALLA(IZWG)
SMTA=SMTA+AWALLA(IZWF)*TMP(3,IZW)+AWALLA(IZWG)*TMP(3,IZWG)
QRADF=QRMRT(IZWF)+QRMRT(IZWG)
C QFLBAS IS HEAT FLOW FROM BSMT CEILING TO BSMT AIR
IFNB=.FALSE.
IF(ICTRLZ(NZNBAS).EQ.1.AND.IEFAN.EQ.1)IFNB=.TRUE.
H1FFZC=HC(NRM,IZWF,2,IFNB,TWIFZ,TBAS)
H1FGZC=HC(NRM,IZWG,2,IFNB,TWIGZ,TBAS)
QFLBS1=H1FFZC*AWALLA(IZWF)*(TWIFZ-TBAS)
QFLBS2=H1FGZC*AWALLA(IZWG)*(TWIGZ-TBAS)
QRADCB=QRMRT(IZWFZ)+QRMRT(IZWGZ)
QFLBAS=QFLBS1+QFLBS2
QCSURF(IZWFZ)=QCSURF(IZWFZ)-QFLBS1
QCSURF(IZWGZ)=QCSURF(IZWGZ)-QFLBS2
IF(IDBG.NE.0)WRITE(60,507)NRM,IZWFZ,QFLBS1,H1FFZC,
+ IZWGZ,QFLBS2,H1FGZC
QFLSPB=QFLSPB+QFLPBN-QRADF
C HEAT FLOW WITH CRAWL SPACE ON OTHER SIDE
IF(IZWH.GT.IZT)THEN
H3FHC=0.
H1FHZC=0.
QFLPC1=0.
ELSE
H3FHC=HC(NRM,IZWH,6,IFN,TWIH,TIA)
H1FHZC=HC(NRM,IZWH,2,.FALSE.,TWIHZ,TCRW)
QFLPC1=H3FHC*AWALLA(IZWH)*(TWIH-TIA)
ENDIF
IF(IZWI.GT.IZT)THEN
H3FIC=0.
H1FIZC=0.
QFLPC2=0.
ELSE
H3FIC=HC(NRM,IZWI,6,IFN,TWII,TIA)
H1FIZC=HC(NRM,IZWI,2,.FALSE.,TWIIZ,TCRW)
QFLPC2=H3FIC*AWALLA(IZWI)*(TWII-TIA)
ENDIF
QFLPCN=QFLPC1+QFLPC2
QCSURF(IZWH)=QCSURF(IZWH)-QFLPC1
QCSURF(IZWI)=QCSURF(IZWI)-QFLPC2
C QFLCRW IS CONVECTIVE HEAT FLOW FROM UNDERSIDE OF LVG SPC/CRAWL SPC
C FLOOR TO CRAWLSPACE BELOW
QFLCRW=QFLCRW+H1FHZC*AWALLA(IZWH)*(TWIHZ-TCRW)
+ +H1FIZC*AWALLA(IZWI)*(TWIIZ-TCRW)
C QCSURF EQUIVALENT FOR BOTTOM-SIDE OF LVG SPC FLOOR WITH CRAWLSPACE
C BELOW IS CALC (AND USED) IN FLOOR (SEE QCSRF IN FLOOR)
QFLSPC=QFLSPC+QFLPCN
C
C - - - - CONVECTION PORTION OF INTERNAL LOADS
C NOTE: RADIATION PORTION IS ACCOUNTED FOR IN MEAN RADIANT TEMP(MRTSWF)
QINCN=QINT*(1.-RADINT)*RQINT(NRM)
QINC=QINC+QINCN
C
QSUM2N=QPARTN-QSLFLN-QWGRN+QFLPBN+QFLPCN+QINCN+QCFM
QSUM2=QSUM2+QSUM2N+QIZONN
C
C - - -HEAT EXCHANGE WITH FURNACE IN CLOSET, IF ANY
QFRLF=0.
IF((IFLOC.EQ.1.AND.NRM.EQ.1).OR.(IFLOC.GT.8.AND.(IFLOC-7).EQ.
+NRM))THEN
QFRLF=(QPLEN+QJACK)*NCELLS+QDRAFT+QVENTB+CMPUMP* BTUKWH
ENDIF
IF(QFRLF.NE.0.)QFRLFE=QFRLF
C
C - - -SUM OF HEAT FLOWS
QSUMN=QSUM1+QINFN+QWISTN+QVNTS+QCEL4N+QDCTZ1+QNTN+
+ QSUM2N+QFRLF+QIZONN
QSUM=QSUM+QSUMN
C
C - - -AIR TEMP IN THIS ZONE
TIN(NRM)=QSUMN/CPMASS+TIA
IF(IDBG.NE.0)THEN
TIMP=TIME*60.
TENCMN=SMTA/SMA
IF(NRM.EQ.1)WRITE(60,500)TIMP,NRM,TIN(NRM),TIA
+ ,TMR(NRM),TENCMN
IF(NRM.EQ.2)WRITE(60,501)TIMP,NRM,TIN(NRM),TIA
+ ,TMR(NRM),TENCMN
IF(NRM.EQ.3)WRITE(60,502)TIMP,NRM,TIN(NRM),TIA
+ ,TMR(NRM),TENCMN
IF(NRM.EQ.4)WRITE(60,503)TIMP,NRM,TIN(NRM),TIA
+ ,TMR(NRM),TENCMN
IF(NRM.EQ.5)WRITE(60,504)TIMP,NRM,TIN(NRM),TIA
+ ,TMR(NRM),TENCMN
FRMT='(5X,100H QSUM1 QINFN QWISTN QVNTLS QCEL4N
+ QDCTZ1 QFRLF QIZONN QPARTN QSLFLN /5X,10F10.1)'
CALL VZOUT(10,FRMT,QSUM1 ,QINFN,QWISTN,QVNTLS,QCEL4N,QDCTZ1,
+ QFRLF,QIZONN,QPARTN,QSLFLN)
FRMT='(5X,55H QWGRN QFLPBN QFLPCN QINCN QNTN
+ QCFM /5X,6F10.1/)'
CALL VZOUT(6,FRMT,QWGRN,QFLPBN,QFLPCN,QINCN,QNTN,QCFM,
+ DM1,DM2,DM3,DM4)
C MOST H VALUES BELOW ARE LAST VALUES CALC ABOVE (SOME OF THESE H'S
C GET CALC MORE THAN ONCE ABOVE)
WRITE(60,508)HIWC,HIWGC,HICC,HIWPC,H3FFC,H3FGC,H1FFZC,H1FGZC,
+ H3FHC,H3FIC,H1FHZC,H1FIZC
ENDIF
IF(TIME.GT.TMEBLS)THEN
ETRM=QSUM1+QCEL4N+QINFN+QWISTN+QSUM2N+QNTN+QDCTZ1+QVNTS+
+ QFRLF+QIZONN
EBAL(NRM)=EBAL(NRM)+ETRM
EBALT(NRM)=EBALT(NRM)+QNTN+QDCTZ1
ENDIF
100 CONTINUE
IDBG=IDBGSV
RETURN
500 FORMAT(/1X,'TAZONE:TIME(MIN),NRM,TIN,TI,TMR,TENCMN='/
+20X,F8.1,I4,4G13.5)
501 FORMAT(/4X,'TAZONE:TIME(MIN),NRM,TIN,TI,TMR,TENCMN='/
+20X,F8.1,I4,4G13.5)
502 FORMAT(/7X,'TAZONE:TIME(MIN),NRM,TIN,TI,TMR,TENCMN='/
+20X,F8.1,I4,4G13.5)
503 FORMAT(/10X,'TAZONE:TIME(MIN),NRM,TIN,TI,TMR,TENCMN='/
+20X,F8.1,I4,4G13.5)
504 FORMAT(/13X,'TAZONE:TIME(MIN),NRM,TIN,TI,TMR,TENCMN='/
+20X,F8.1,I4,4G13.5)
505 FORMAT(1X,'TAZONE:NRM,IZW,QPARTC,TWI,H ,XR= '/
+10X,2I5,4G13.5)
507 FORMAT(1X,'TAZONE:NRM,IZWFZ,QFLBS1,H = ',2I5,2G13.5/
+ 12X,'IZWGZ,QFLBS2,H = ',I5,2G13.5)
508 FORMAT(5X,'HIWC,HIWGC,HICC,HIWPC= ',4G13.5/
+5X,'H3FFC,H3FGC,H1FFZC,H1FGZC= ',4G13.5/
+5X,'H3FHC,H3FIC,H1FHZC,H1FIZC= ',4G13.5)
510 FORMAT(1X,'TAZONE:TIME,NRM,TIA,TIN(NRM),QIZONN= ',G13.5,
+I4,3G13.5)
END