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 / SOLR.FOR < prev    next >
Text File  |  1992-04-10  |  12KB  |  347 lines

  1.       SUBROUTINE SOLR(TIME,NDYRI,IDAY,KM,STM,DNLAT,DLONG, 
  2.      +                DST,ICC,CLEAR,
  3.      +                ISUN,ITH,IDHC,SAZM,SALT,
  4.      +                IDC,IDFC,DIRECT,DIFFUS,SFST,SFTT)
  5. C  CALCULATE SOLAR FACTORS FOR TIME=TIME AND DAY = NDYRI
  6. C  INPUTS FROM FORMAL PARAMETERS IN CALL STMT 
  7. C   TIME     TIME OF DAY,(0-24 HRS) 
  8. C   NDYRI    DAY OF YEAR
  9. C   IDAY     NO. OF DAYS RUN AT THIS TIME
  10. C             (IDAY IS ONLY USED TO IDENTIFY DEBUG OUTPUT)
  11. C   KM       MONTH OF YEAR (1 TO 12)
  12. C  STM       TIME ZONE (SEE ETIME SUBPROGRAM) 
  13. C  ICC     =1  CLOUD COVER DATA USED TO COMPUTE SOLAR 
  14. C          =0  TOTAL SOLAR RADIATION SUPPLIED IN  CC  ARRAY 
  15. C DNLAT      DEG N. LATTITUDE 
  16. C DLONG      DEG LONGITUDE
  17. C   DST    =0 FOR STANDARD TIME 
  18. C          =1 FOR DAYLIGHT SAVINGS TIME 
  19. C  CLEAR   CLEARNESS NO. FOR USE WITH CLOUD COVER DATA
  20. C  INPUTS FROM COMMON BLOCK ROOF - - - -
  21. C   IDEXPR  INTEGER 1-4 COMPASS DIRECTION THAT ROOF FACES 
  22. C     PAA   PITCH ANGLE BETWEEN VERTICAL AND ROOF LINE 
  23. C INPUTS FROM COMMON BLOCK NCR - - - - -
  24. C   IFXDS  INTEGER 1-4 COMPASS DIRECTIONS OF STRUCTURE THAT ARE ALWAYS
  25. C          SHADED.
  26. C   WROTA  ANGLE THAT STRUCTURE IS ROTATED FROM THE CARDINAL COMPASS
  27. C          DIRECTIONS (+CLOCKWISE, -COUNTERCLOCKWISE) 
  28. C INPUTS FROM COMMON BLOCK SIMA - - - - - - 
  29. C REFLG    GROUND REFLECTANCE FOR EA. MONTH OF YR.
  30. C
  31. C SOLARH   CLOUD COVER(0-10), IF ICC> 0 
  32. C            OR TOTAL HORIZ RADIATION, IF ICC=0, BTU/HR-SQ FT
  33. C  OUTPUTS - - - - - - - -
  34. C   ISUN  =1,NO SUN;  =0, SUN SUFFICIENTLY ABOVE HORIZON
  35. C   ITH  TOTAL HORIZONTAL SOLAR RADIATION, BTU/HR-SQ FT 
  36. C        IF ICC=1, ITH IS CLOUDLESS VALUE 
  37. C        IF ICC=0, ITH IS MEASURED VALUE FROM CC ARRAY
  38. C  IDHC  DIRECT SOLAR RADIATION ON HORIZONTAL SURFACE WITH
  39. C        CLOUDY SKY, BTU/HR-SQ FT 
  40. C  SAZM  SOLAR AZIMUTH ANGLE, RADIANS 
  41. C  SALT  SOALR ALTITUDE, RADIANS
  42. C  VALUES FOR EACH COMPASS DIRECTION ARE GIVEN BELOW  - - - - - - - 
  43. C  IDC  DIRECT SOLAR RADIATION ONTO VERTICAL SURFACE FOR CLOUDY SKY,
  44. C       BTU/HR-SQ FT
  45. C  IDFC  DIFFUSE SOLAR RADIATION ONTO VERTICAL SURFACE FOR
  46. C        CLOUDY SKY, BTU/HR-SQ FT 
  47. C  DIRECT  DIRECT SOLAR TRANSMITTED THROUGH WINDOWS / RATIO OF
  48. C          UNSHADED(BY OVERHANG AND REVEAL) WINDOW AREA TO TOTAL
  49. C          WINDOW AREA ,BTU/HR-SQ FT
  50. C  DIFFUS  DIFFUSE SOLAR RADIATION TRANSMITTED THROUGH WINDOWS
  51. C          (INCLUDES GROUND REFLECTANCE), BTU/HR-SQ FT
  52. C  SFST  SHADING-FROM-SIDE FACTOR (SHADING FROM REVEAL) 
  53. C  SFTT  SHADING FROM TOP FACTOR (SHADING FROM OVERHANG AND REVEAL) 
  54. CMDK NRF
  55. CMDK ROOF
  56. CMDK NCR
  57. CMDK SIMA
  58.       REAL IDN,IDH,IDFH,ITH,IDHC,IDC,IDFHC,IDFC 
  59.      + ,IZERO,IDHBS 
  60.       CHARACTER *4 STM
  61.       DIMENSION AJ(6),DIFFUS(4),DIRECT(4),IDC(4),IDFC(4),NDY21(12),
  62.      + PS(12), QS(12),RS(12),SFST(4),SFTT(4),TJ(6)
  63.       DATA  RAD/57.29577/ 
  64.       DATA  TJ/-0.00885, 2.71235,-0.62062,-7.07329, 9.75995,-3.89922/ 
  65.       DATA  AJ/ 0.01154, 0.77674,-3.94657, 8.57881,-8.38135, 3.01188/ 
  66.       DATA  PS/1.14,1.06,1.06,1.06,.96,.96,.96,.95,.95,.95,1.14,1.14/ 
  67.       DATA  QS/.003,.012,.012,.012,.033,.033,.033,.030,.030,
  68.      $         .030,.003,.003/
  69.       DATA  RS/-.0082,-.0084,-.0084,-.0084,-.0106,-.0106,-.0106,
  70.      $         -.0108,-.0108,-.0108,-.0082,-.0082/
  71.       DATA  PI/3.14159/ 
  72. C ***** SOLAR CONSTANT, BTU/FT2-HR
  73.       DATA SC/428./ 
  74. C  NDY21 IS DAY OF YR AT 21ST OF EACH MONTH 
  75.       DATA NDY21/21,52,80,111,141,172,202,233,264,
  76.      +294,325,355/
  77.       IDBG=0
  78.       ITM=INT(TIME+1.001) 
  79. C ***** TIME = TIME OF DAY (0 - 24),HR
  80.       IF (TIME.GT.23.98) GO TO 9996 
  81. C  SET SUN INDICATOR FOR SUNSHINE 
  82.       ISUN=0
  83. C  ZERO OUTPUTS FOR NO SUN
  84.       ITH=0.
  85.       IDHC=0. 
  86.       SAZM=0. 
  87.       SALT=0. 
  88.       DO 10 I=1,4 
  89.       IDC(I)=0. 
  90.       IDFC(I)=0.
  91.       DIRECT(I)=0.
  92.       DIFFUS(I)=0.
  93.       SFST(I)=0.
  94.       SFTT(I)=0.
  95.    10 CONTINUE
  96.       DO 15 I=1,NRF 
  97.       IDR(I)=0. 
  98.       IDIFR(I)=0. 
  99.    15 CONTINUE
  100.       NDYR=NDYRI
  101. C  IF NDYRI <= 0, USE DAY OF YEAR AT 21ST DAY OF KM MONTH 
  102.       IF(NDYRI.EQ.-1)NDYR=NDY21(KM)
  103.       CALL ETIME (NDYR,STM,ET,TZN)
  104. C **** CALCULATE SOLAR FACTORS
  105. C ***** D = DECLINATION  (TRNSYS) 
  106. C ***** SEE "ALGORITHMS FOR BUILDING HEAT TRANSFER SUBROUTINES" 
  107. C *****   P.17 ASHRAE 1976
  108.       D=23.45*SIN(360.*(284.+NDYR)/(365.*RAD))/RAD
  109.       XIM=1.0 
  110.       DO 44 IXM=1,12
  111.       IF (NDYR.LE.NDY21(IXM))GO TO 46 
  112.    44 CONTINUE
  113.    46 XIM=FLOAT(KM)
  114.       ABC=COS(15.*(2.*XIM-1.)/RAD)
  115.       A=367.5+22.5*ABC
  116.       B=0.174-.032*ABC
  117.       C=.0965-.0385*ABC 
  118.       DNL=DNLAT/RAD 
  119. C ***** SUNRISE HOUR ANGLE (HPRM), DEGREES FROM SOLAR NOON
  120.       HPRM=ACOS(-TAN(DNL)*TAN(D)) 
  121.       HLIM=ABS(HPRM)-15./RAD
  122.       H=15.*(TIME-12.+TZN+ET-DST)-DLONG 
  123.       HRAD=H/RAD
  124.       IF(IDBG.NE.0)WRITE(60,500)ITM,TIME,HPRM,HLIM,H,HRAD
  125.       IF (ABS(HRAD).LT.ABS(HLIM)) GO TO 50
  126.       ISUN=1
  127.       GO TO 9996
  128. C *** CALCULATE DIRECTION COSINES OF SOLAR BEAM 
  129. C ***** Z = ZENITH ANGLE, ANGLE BETWEEN BEAM FROM SUN AND VERTICAL
  130. 50    COSZ=SIN(DNL)*SIN(D)+COS(DNL)*COS(D)*COS(HRAD)
  131.       COSW=COS(D)*SIN(HRAD) 
  132.       COSS=(1-COSZ**2-COSW**2)**.5
  133.       COSH=COS(HRAD)
  134.       TANDL=TAN(D)/TAN(DNL) 
  135.       ISGN=1
  136.       IF (COSH.LT.TANDL) ISGN=-1
  137.       COSS=ISGN*COSS
  138. C *** CALCULATE SOLAR ALTITUDE ANGLE
  139.       SALT=ASIN(COSZ) 
  140. C *** CALCULATE SOLAR AZIMUTH ANGLE 
  141.       IF (COSS.LT.0.) GO TO 52
  142.       SAZM=ASIN(COSW/COS(SALT)) 
  143.       GO TO 54
  144. 52    SAZM=PI-ASIN(COSW/COS(SALT))
  145. C *** CALCULATE DIRECT NORMAL,SKY DIFFUSE AND GROUND REFLECTED RADIATION
  146. C *** IDN IS DIRECT NORMAL SOLAR RADIATION ON HORIZONTAL
  147. C *** BS IS DIFFUSE SOLAR RADIATION ON HORIZONTAL SURFACE 
  148. C *** BG IS PORTION OF TOTAL SOLAR RADIATION REFLECTED TO 
  149. C ***              VERTICAL WALL
  150.    54 IF(ICC.GT.0)GO TO 56
  151. C ***** TRNSYS MANUAL (TYPE 16 UNIT)
  152.       ITH=SOLARH(ITM)
  153.       IF(ITH.EQ.1.1E10)THEN 
  154.          WRITE(60,504) 
  155.          STOP 'SOLR:SOLAR BAD, SEE NOTE ON OUTPUT'
  156.          ENDIF
  157.       IF(IDBG.NE.0)WRITE(60,503)IDAY,ITM,KM,ITH
  158.       IZERO=SC*COSZ*(1.+.033*COS(360.*NDYR/(365.*RAD))) 
  159.       XKT=ITH/IZERO 
  160.       RAT=1.0045+XKT*(0.04349+XKT*((-3.5227)+2.6313*XKT)) 
  161.       IF(XKT.LT.0.0) RAT=1.0
  162.       IF(XKT.GT.0.8) RAT=0.165
  163.       IDHC=ITH*(1.0-RAT)
  164.       GO TO 60
  165. 56    CLOUDC=SOLARH(ITM)
  166.       IDN=A*CLEAR*EXP(-B/COSZ)
  167.       BS=C*IDN/(CLEAR)**2 
  168. C      BG=REFLG(KM)*(BS+IDN*COSZ)
  169. C *** CALCULATE CLOUDY SKY RADIATION
  170.       X=SIN(SALT) 
  171.       Y1=.309-.137*X+.394*X**2
  172.       XKSOL=X/(C+X)+(PS(KM)-1.)/(1.-Y1) 
  173.       IDH=IDN*COSZ
  174.       IDFH=BS 
  175.       ITH=IDH+IDFH
  176.       IDHC=ITH*XKSOL*(1.-CLOUDC/10.)
  177. C    M= COMPASS DIRECTION NO. 
  178.    60 DO 220 M=1,4
  179. C *** CALCULATE CLOUDY SKY RADIATION FOR WALL 
  180.       CALL SHADE (M,SAZM,SALT,WROTA,SFS,SFT,WAZ)
  181.       SFST(M)=SFS 
  182.       SFTT(M)=SFT 
  183. C---- WAZ IS WALL AZIMUTH ANGLE FROM SUN POSITION TO HORIZ. PLANE 
  184. C     COSINC IS SAME AS THAT IN EQ.5B IN ASHRAE F27.3 1981
  185.       COSINC=COS(SALT)*COS(WAZ/RAD) 
  186.       CT=COSINC 
  187.       VAL = 1.
  188.       IF (CT.LE.0.) VAL=0.
  189.       IDC(M)=VAL*IDHC*CT/COSZ 
  190.          Y2=0.55+CT*(0.437+CT*0.313)
  191.          IF (CT.LE. -0.2) Y2=.45
  192.       IF (ICC.GT.0)GO TO 92 
  193.       IDFHC=ITH-IDHC
  194.       IDFC(M)= Y2*IDFHC+0.5*REFLG(KM)*ITH 
  195.       GO TO 94
  196.    92 CONTINUE
  197. C *** IDF = DIFFUSE RADIATION FOR CLOUDLESS SKY ON VERTICAL SURFACE 
  198. C      IDF=BS*Y2+BG/2. 
  199.       CCF=PS(KM)+QS(KM)*CLOUDC+RS(KM)*CLOUDC**2 
  200.       IDFHC=ITH*CCF-IDHC
  201.       IDHBS=COSZ*CLEAR**2/C 
  202.       IDFC(M)=(Y2+0.5*REFLG(KM)*(1.+IDHBS))*IDFHC 
  203. C *** IDC=DIRECT
  204. C *** IDFC=DIFFUSE
  205.    94 CONTINUE
  206. C     CALC INSTANTANEOUS HEAT TRANSMISSION THRU WINDOWS 
  207.       TDIR=0. 
  208.       TDIF=0. 
  209.       ADIR=0. 
  210.       ADIF=0. 
  211.       DO 219 K=1,6
  212.       J=K-1 
  213.       TDIR=TDIR+TJ(K)*CT**J 
  214.       TDIF=TDIF+2.*TJ(K)/(J+2)
  215.       ADIR=ADIR+AJ(K)*CT**J 
  216. 219   ADIF=ADIF+ 2.0*AJ(K)/(J+2)
  217.       DIRECT(M)=IDC(M)*(TDIR+.267*ADIR) 
  218.       IF(ICC.LE.0) THEN 
  219.           DIFFUS(M)=0.5*(IDFHC+REFLG(KM)*ITH)*(TDIF+0.267*ADIF) 
  220.       ELSE
  221.           DIFFUS(M)=0.5*(1.+REFLG(KM)*(1.+IDHBS))*(TDIF+.267*ADIF)*IDFHC
  222.       ENDIF 
  223.   220 CONTINUE
  224. C---- CALCULATE SOLAR LOADING ON ROOF 
  225.       DO 360 I=1,NSECTA 
  226.       M=IDEXPR(I) 
  227.       PA   =PAA   (I) 
  228. C *** DETERMINE SOLAR AZIMUTH FOR EACH ROOF SURFACE 
  229.       IF (M.EQ.1) RAZ=ABS(180.+SAZM*RAD-WROTA)
  230.       IF (M.EQ.2) RAZ=ABS( 90.+SAZM*RAD-WROTA)
  231.       IF (M.EQ.3) RAZ=ABS(     SAZM*RAD-WROTA)
  232.       IF (M.EQ.4) RAZ=ABS( 90.+WROTA-SAZM*RAD)
  233.       PARAD=PA/RAD
  234.       CSINC=COS(SALT)*COS(RAZ/RAD)*COS(PARAD)+
  235.      $       SIN(SALT)*SIN(PARAD) 
  236.       IF (CSINC.LE.0.) GO TO 346
  237.       IDR(I)=IDHC*CSINC/COSZ
  238.       GO TO 347 
  239. 346   IDR(I)=0. 
  240. 347   IDIFR(I)=IDFHC*((1.+SIN(PARAD))/2.) 
  241.       IF(IDBG.NE.0)THEN 
  242.       WRITE(60,502)I,M,PA,RAZ,CSINC,IDR(I),IDHC,IDIFR(I),IDFHC 
  243.           ENDIF 
  244. 360   CONTINUE
  245. 9996  CONTINUE
  246.           IF(IDBG.NE.0)THEN 
  247.       WRITE(60,501)ITH,IDHC,SAZM,SALT,IDC,IDFC,DIRECT,DIFFUS,SFST,SFTT 
  248.           ENDIF 
  249.       RETURN
  250.   500 FORMAT(1X,'SOLR: ITM,TIME,HPRM,HLIM,H,HRAD= ',I5,5G13.5)
  251.   501 FORMAT(1X,'SOLR OUTPUTS:ITH,IDHC,SAZM,SALT= ',4G13.5/ 
  252.      +' IDC= ',4G13.5/' IDFC= ',4G13.5/ 
  253.      +' DIRECT= ',4G13.5/' DIFFUS= ',4G13.5/
  254.      +' SFST= ',4G13.5/' SFTT= ',4G13.5)
  255.   502 FORMAT(1X,'I,M,PA,RAZ,CSINC= ',2I3,3G13.5/
  256.      +3X,'IDR,IDHC,IDIFR,IDFHC= ',4G13.5) 
  257.   503 FORMAT(1X,'SOLR:IDAY,ITM,KM,ITH= ',3I5,G13.5) 
  258.   504 FORMAT(1X,'SOLR:SOLAR BAD, CHECK WETHER DATA OR VALUE OF MONTH',
  259.      +' READ IN STRRUN')
  260.       END 
  261.       SUBROUTINE ETIME(NDYR,STM,ET,TZN) 
  262. C  CALC EQUATION OF TIME
  263. C      REAL LSTM(6)
  264.       CHARACTER *4 TMER,STM 
  265.       DIMENSION E(10),TMER(6),TZNS(6) 
  266.       DATA E/-4.319780295E+00 , -6.560560432E-03 , -1.768353820E-05 , 
  267.      +        1.880630945E-08 , -3.612378625E-12 , -1.243267535E-15 , 
  268.      +        6.119539396E-19 , -9.877736221E-23 ,  7.200722198E-27 , 
  269.      +       -2.009408139E-31/
  270. C *** INPUTS
  271. C     NDYR  DAY OF YEAR(NON-LEAP YEAR), 1-365 
  272. C     STM  TIME ZONE (EST,CST,MST,PST,YST,ANST) 
  273. C *** OUTPUTS 
  274. C     ET  EQN OF TIME, HR (SEE SOLAR ENERGY BY DUFFIE AND BECKMAN)
  275. C     TZN  TIME ZONE NO., 1-6 
  276.   
  277. C    EQN OF TIME VALUES ARE FOR THE 21ST DAY OF MONTH 
  278.       DATA TMER/'EST','CST','MST','PST','YST','AHST'/ 
  279. C      DATA LSTM/75.,90.,105.,120.,135.,150./
  280.       DATA TZNS/5.,6.,7.,8.,9.,10./ 
  281.       DO 10 I=1,6 
  282.         IF (STM.EQ.TMER(I)) GO TO 20
  283. 10      CONTINUE
  284.       WRITE(60,15)
  285. 15    FORMAT ('0ERROR IN INPUT FOR STANDARD TIME MERIDIAN') 
  286.       STOP 'ETIME:ERROR IN STM FOR STD TIME ZONE' 
  287. 20    CONTINUE
  288. C      LONGM=LSTM(I) 
  289. C  EQUA OF TIME IS ON P. 19 OF DUFFIE AND BECKMAN 
  290.       T=(NDYR-0.5)*24.
  291.       ET=E(1)+T*(E(2)+T*(E(3)+T*(E(4)+T*(E(5)+T*(E(6)+
  292.      +T*(E(7)+T*(E(8)+T*(E(9)+T*E(10))))))))) 
  293. C  ET IS IN MINUTES SO CONVERT TO HRS 
  294.       ET=ET/60. 
  295.       TZN=TZNS(I) 
  296.       RETURN
  297.       END 
  298.       SUBROUTINE SHADE (M,SAZM,SALT,WA,SFS,SFT,WAZ) 
  299. C  CALCULATE WINDOW SHADING FACTORS 
  300.       DATA RAD/57.29577/
  301.   
  302.       SAZ=SAZM*RAD
  303.       IF (M.EQ.1) WAZ=ABS(180.+SAZ-WA)
  304.       IF (M.EQ.2) WAZ=ABS( 90.+SAZ-WA)
  305.       IF (M.EQ.3) WAZ=ABS(     SAZ-WA)
  306.       IF (M.EQ.4) WAZ=ABS( 90.+WA-SAZ)
  307.       IF ((SALT.EQ. 0.0 .AND. (SAZM.EQ. 0.0)))GO TO 20
  308.       IF (WAZ.GE.90.) GO TO 10
  309.       WAZRAD=WAZ/RAD
  310.       SFS=TAN(WAZRAD) 
  311.       SFT=TAN(SALT)/COS(WAZRAD) 
  312.       GO TO 20
  313. 10    SFS=0.0 
  314.       SFT=0.0 
  315. 20    RETURN
  316.       END 
  317.