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 / MRTSWF.FOR < prev    next >
Text File  |  1992-05-11  |  8KB  |  246 lines

  1.       SUBROUTINE MRTSWF(QINT,QRAD,IDBG)
  2. C
  3. C  COMPUTE SELF-WEIGHTING FACTORS FOR MEAN RADIENT TEMP ANALYSIS
  4. C  USED TO ACCOUNT FOR THE FACT THAT A SURFACE CANNOT SEE ITSELF
  5. C  (CALL TO MRTSWF ONLY OCCURS ONCE (FROM STRRUN), BUT ENTRY MRTHRI
  6. C   IS EXECUTED AT EVERY 2 MIN. TIMESTEP)
  7. C
  8. C - - -CONSTANTS
  9.       PARAMETER (NSF=22)
  10. CMDK NZN
  11. CMDK NIWL
  12. CMDK NKONST
  13. CMDK NWN
  14. CMDK NWL
  15. CMDK NZW
  16. CMDK BLKRAD
  17. CMDK CNSTRK
  18. CMDK ENCBK1
  19. CMDK ENCBK2
  20. CMDK ENCBLK
  21. CMDK MRTBLK
  22. CMDK MZON1
  23. CMDK SOLARB
  24. CMDK SURFAR
  25. CMDK TEMPB
  26. CMDK TIMEB
  27.       REAL S(NSF), FSV(NSF), F(NSF), HRF(NZW), TRL(NZN), AFLTOT(NZN),
  28.      +     AWLTOT(NZN)
  29. C  NSF MUST BE LARGE ENOUGH TO INCL ALL ACTIVE ENCLOSURE
  30. C      ELEMENTS FOR ONE ZONE (INCLUDING BACKSIDE OF SUBMERGED INTERIOR
  31. C         PARTITION WALLS)
  32.       DATA TOL/.0001/
  33.       DATA SIGMA/.1714E-08/
  34.       DATA IMESS/0/
  35. C  NOTE: TREF, C1,AND C2 ARE INTERRELATED AS INDICATED BELOW
  36. C        VALUES FOR TREF AND C2 ARE ARBITRARY
  37.       DATA TREF/80.6/
  38.       C2=1./360.
  39.       C1=1.-C2*TREF
  40.       C4=RADSOL*(1.-RADSFL)
  41.       C5=RADSOL*RADSFL
  42.       TREF3=(TREF+459.7)**3
  43.       IF(IDBG.NE.0)WRITE(60,504)TREF,TREF3,RADSOL,RADSFL,C1,C2,C4
  44. C
  45.       DO 200 JT=1,NROOMS
  46.       NRM=NRMA(JT)
  47.       AFLTOT(NRM)=0.
  48.       AWLTOT(NRM)=0.
  49.       N2=NWALLA(NRM)
  50.       IF(N2.GT.NSF)THEN
  51.           WRITE(60,502)NSF
  52.           STOP 'MRTSWF:MUST INCR NSF'
  53.           ENDIF
  54. C
  55. C  FOR ZONE NRM, CALC ALL SELF-WEIGHTING FACTORS,FI, AND HRF VALUES
  56. C
  57.       N2A=N2
  58.       DO 100 K2=1,N2
  59.       IZW=NENC(NRM,K2)
  60.       ID=IDEXP(IZW)
  61.       NZON=NZNC(IZW)-8
  62.       IF(ID.EQ.7.AND.NZNC(IZW).NE.6)THEN
  63.         XR=1
  64. C  FOR PARTITION WALLS SUBMERGED IN ZONE, XR=2.
  65.         IF(ID.EQ.7.AND.NRM.EQ.NZON)THEN
  66.           XR=2.
  67.         ENDIF
  68.         AWLTOT(NRM)=AWLTOT(NRM)+XR*AWALLA(IZW)
  69.       ENDIF
  70.       IF(ID.EQ.6.OR.ID.EQ.8)THEN
  71.         AFLTOT(NRM)=AFLTOT(NRM)+AWALLA(IZW)
  72.       ENDIF
  73.       S(K2)=AWALLA(IZW)
  74.       FSV(K2)=1.
  75.       F(K2)=1.
  76. C  CHECK FOR ANY SUBMERGED PARTITION WALLS.  ADD AN ENCLOSURE
  77. C     SURFACE FOR EACH SUBMERGED WALL TO ACCOUNT FOR RADIATION
  78. C     EXCHANGE WITH BACKSIDE OF SURFACE.  THIS ADDED SURFACE
  79. C     IS ONLY USED TO GET CORRECT F(I)
  80.       IF(ID.EQ.7.AND.NRM.EQ.NZON)THEN
  81.           N2A=N2A+1
  82.           IF(N2A.GT.NSF)THEN
  83.               WRITE(60,502)NSF
  84.               STOP 'MRTSWF:MUST INCR NSF'
  85.               ENDIF
  86.           S(N2A)=AWALLA(IZW)
  87.           FSV(N2A)=1.
  88.           F(N2A)=1.
  89.           ENDIF
  90.   100 CONTINUE
  91. C
  92. C  NOW CALC SELF WEIGHTING FACTORS(F(I)) AND HRF VALUES FOR THIS ZONE
  93.       ITER=0
  94. C
  95. C  ITERATE TO GET F(I)'S BY DIRECT SUBSTITUTION
  96.   130 IGO=0
  97.       SUM=0
  98.       DO 140 J=1,N2A
  99.       SUM=SUM+S(J)*F(J)
  100.   140 CONTINUE
  101.       DO 150 I=1,N2A
  102.       FSV(I)=1./(1.-S(I)*F(I)/SUM)
  103.       DIF=ABS(FSV(I)-F(I))
  104.       IF(DIF.GT.TOL*F(I))IGO=1
  105.   150 CONTINUE
  106.       ITER=ITER+1
  107.       IF(IGO.EQ.1)THEN
  108.         IF(IDBG.NE.0)WRITE(60,500)NRM,ITER,(FSV(K),F(K),K=1,N2)
  109.         DO 160 I=1,N2A
  110.   160   F(I)=FSV(I)
  111.         IF(ITER.LT.100)GO TO 130
  112.         STOP 'MRTSWF: F WONT CONVERGE'
  113.       ENDIF
  114.       DO 170 I=1,N2A
  115.   170 F(I)=FSV(I)
  116.       IF(IDBG.NE.0)WRITE(60,501)NRM,ITER,(F(K),K=1,N2A)
  117. C
  118. C  NOW CALC HRF VALUES (TARP MANUAL -MAR.1983,P.69,EQN H.2.3)
  119.       DO 180 K2=1,N2
  120.       IZW=NENC(NRM,K2)
  121.       FI=F(K2)
  122.       EPSLMI=WALLFI(IZW)
  123.       HRF(IZW)=4.*SIGMA*TREF3/(1./FI+(1.-EPSLMI)/EPSLMI)
  124.       HRI(IZW)=HRF(IZW)
  125.       IF(IDBG.NE.0)WRITE(60,503)NRM,IZW,HRF(IZW),SIGMA,
  126.      +             FI,EPSLMI
  127.   180 CONTINUE
  128.   200 CONTINUE
  129.       QRAD=0.
  130.       RETURN
  131. C- - - - - - - ENTRY MRTHRI BELOW
  132.       ENTRY MRTHRI(QINT,QRAD,IDBG)
  133.       IF(IDBG.NE.0)WRITE(60,505)QINT,RADINT,RADSOL,RADSFL
  134. C - - - - - -
  135.       DO 220 JT=1,NROOMS
  136.       NRM=NRMA(JT)
  137.       CALL ZERV(2,SUMA,SUMB,0.,0.,0.,0.,0.,0.,0.,0.)
  138.       N2=NWALLA(NRM)
  139. C - - - - - -
  140.       DO 210 K2=1,N2
  141.       IZW=NENC(NRM,K2)
  142.       NZON=NZNC(IZW)-8
  143.       IF(NZNC(IZW).EQ.2.OR.NZNC(IZW).EQ.7)NZON=NZNBAS
  144.       ID=IDEXP(IZW)
  145. C - - -GET ZONE-SIDE SURFACE TEMP
  146.       KON=KONSTA(IZW)
  147.       NLM=NLMP(KON)
  148.       IF(NLM.EQ.1)TISRF=TMPN(3,IZW)
  149.       IF(NLM.EQ.3)TISRF=TMPN(4,IZW)
  150.       HRI(IZW)=(C1+C2*TISRF)*HRF(IZW)
  151.       XR=1.
  152. C  DOUBLE RADIATION AREA TO ACCOUNT FOR BOTH SIDES OF SUBMERGED
  153. C       INTERIOR WALLS
  154.       IF(ID.EQ.7.AND.NZON.EQ.NRM)XR=2.
  155.       SUMA=SUMA+XR*HRI(IZW)*AWALLA(IZW)*TISRF
  156.       SUMB=SUMB+XR*HRI(IZW)*AWALLA(IZW)
  157.       IF(IDBG.NE.0)WRITE(60,511)NRM,IZW,ID,HRI(IZW),TISRF,XR,SUMA,SUMB
  158.      +,AWALLA(IZW)
  159.   210 CONTINUE
  160.       IF(SUMB.EQ.0.)WRITE(*,*)' MRTSWF: SUMB AT 210 = 0.,NRM= ',NRM
  161.       TRL(NRM)=SUMA/SUMB
  162.       IF(IDBG.NE.0)WRITE(60,512)TRL(NRM),SUMA,SUMB
  163.   220 CONTINUE
  164.       QRAD=0.
  165. C
  166.       DO 240 JT=1,NROOMS
  167.       NRM=NRMA(JT)
  168.       CALL ZERV(2,SUMA,SUMB,0.,0.,0.,0.,0.,0.,0.,0.)
  169.       N2=NWALLA(NRM)
  170.       C3=C1+C2*TRL(NRM)
  171.       QRADC=QINT*RADINT*RQINT(NRM)
  172.       QRAD=QRAD+QRADC
  173.       SOLARW=SOLARL(2+NRM)
  174.       IF(IMESS.LT.50)THEN      
  175.         IF(NRM.EQ.NZNBAS.AND.SOLARW.GT.0.)THEN
  176.           WRITE(60,*)' ****  OOOPS!  SHOULDNT HAVE SOLAR IN BASEMENT!'
  177.           WRITE(60,*)'       SOLARW= ',SOLARW,' IN ZONE ',NRM
  178.         ENDIF
  179.         IMESS=IMESS+1
  180.       ENDIF
  181.       QSIF=C5*SOLARW/AFLTOT(NRM)
  182.       QSIW=C4*SOLARW/AWLTOT(NRM)
  183.       IF(IDBG.NE.0)WRITE(60,506)NRM,TRL(NRM),C3,RQINT(NRM),
  184.      +                         QRADC,SOLARW
  185. C
  186.       DO 230 K2=1,N2
  187.       IZW=NENC(NRM,K2)
  188.       NZON=NZNC(IZW)-8
  189.       IF(NZNC(IZW).EQ.2.OR.NZNC(IZW).EQ.7)NZON=NZNBAS
  190.       HRI(IZW)=C3*HRI(IZW)
  191.       IF(IDBG.NE.0)WRITE(60,507)IZW,HRI(IZW)
  192.       ID=IDEXP(IZW)
  193.       KON=KONSTA(IZW)
  194.       NLM=NLMP(KON)
  195.       IF(NLM.EQ.1)TISRF=TMPN(3,IZW)
  196.       IF(NLM.EQ.3)TISRF=TMPN(4,IZW)
  197.       SUMA=SUMA+XR*HRI(IZW)*AWALLA(IZW)*TISRF
  198.       SUMB=SUMB+XR*HRI(IZW)*AWALLA(IZW)
  199. C - -    QSI IS REFLECTED SOLAR ABSORBED BY INSIDE SURFACE OF PART WALLS
  200. C        OR FLOOR IZW, BTU/HR-FT2 (*--*NOTE:PER SQ FT!!)
  201. C        SOLARL IS SET IN STRLP1.
  202.       QSI(IZW)=0.
  203.       IF(ID.EQ.6.OR.ID.EQ.8)THEN
  204. C              FLOOR INSIDE      
  205.         QSI(IZW)=QSIF
  206.       ELSE
  207.         IF(ID.EQ.7.AND.NZNC(IZW).NE.6)THEN
  208.           QSI(IZW)=QSIW
  209.         ENDIF
  210.       ENDIF
  211.       IF(IDBG.NE.0)WRITE(60,508)QSI(IZW),SUMA,SUMB,TISRF,XR
  212.   230 CONTINUE
  213. C
  214. C  TMR IS MEAN RADIENT TEMPERATURE
  215. C    NOTE::WINDOW AREAS ARE NOT INCLUDED IN TMR CALCULATION AS YET.
  216. C          LOSSES AT WINDOWS ARE ACCOUNTED FOR IN OVERALL U FROM
  217. C          ZONE AIR TO OUTDOOR TEMP AT WINDOWS IN SUBPROGRAM LOOP
  218. C          (SEE QWINST PARAMETER IN LOOP)
  219.       IF(SUMB.EQ.0.)WRITE(*,*)' MRTSWF: SUMB AT 230 = 0.,NRM= ',NRM
  220.       TMR(NRM)=(SUMA+QRADC)/SUMB
  221.       IF(IDBG.NE.0)WRITE(60,509)NRM,TMR(NRM)
  222.   240 CONTINUE
  223. C
  224.   500 FORMAT(1X,'MRTSWF:ZONE= ',I3,'ITER= ',I5/' FSV,F= '/
  225.      +20(1X,2G13.5/))
  226.   501 FORMAT(1X,'MRTSWF:ZONE= ',I3,'MAX ITER= ',I5/
  227.      +' FINAL VALUES FOR FI ARE= '/
  228.      +20(1X,G13.5/))
  229.   502 FORMAT(1H0,'MRTSWF:MUST INCR NSF ABOVE ',I5)
  230.   503 FORMAT(10X,'NRM,IZW,HRF= ',2I5,G13.5/
  231.      +       10X,'SIGMA,FI,EPSLMI= ',3G13.5)
  232.   504 FORMAT(1H0,'MRTSWF:TREF,TREF3,RADSOL,RADSFL= ',4G13.5/
  233.      +       8X,'C1,C2,C4= ',3G13.5)
  234.   505 FORMAT(1H0,'- - -BEGIN MRTHRI IN MRTSWF'/
  235.      +       10X,'QINT,RADINT,RADSOL,RADSFL= ',4G13.5)
  236.   506 FORMAT(8X,'NRM,TRL(NRM),C3= ',I5,2G13.5/
  237.      +8X,'RQINT(NRM),QRADC,SOLARW= ',3G13.5)
  238.   507 FORMAT(1H0,9X,'IZW,HRI AFTER ADJUSTMENT BY C3= ',I5,G13.5)
  239.   508 FORMAT(12X,'QSI,SUMA,SUMB= ',3G13.5/
  240.      +12X,'TISURF,XR= ',2G13.5)
  241.   509 FORMAT(10X,'ZONE NO.= ',I4,'  MEAN RAD TEMP= ',G13.5)
  242.   511 FORMAT(10X,'NRM,IZW,ID,HRI,TISRF= ',3I4,2G13.5/
  243.      +10X,'XR,SUMA,SUMB,AWALLA(IZW)= ',4G13.5)
  244.   512 FORMAT(12X,'TRL,SUMA,SUMB= ',3G13.5)
  245.       END
  246.