source: trunk/src/calc_cloud_vlat.pro @ 87

Last change on this file since 87 was 87, checked in by pinsard, 13 years ago

add missing tools for coare correction

  • Property svn:keywords set to URL
File size: 2.8 KB
Line 
1
2 function calc_cloud_vlat, jday,SWR,XLAT
3
4; Translated directly from Margie McCartys Fortran,
5; added XLAT~=0 capability from WEARE et al 1980,
6; and lats>20 capability from REED 1977.
7;
8;     CALCULATE DAILY CLOUD FRACTION FROM DAILY SOLAR RADIATION,
9;     by comparing theoretical clear sky radiation to measured.
10;
11;  INPUT:
12;       jday: value jday
13;       SWR: vector of  SW rad in Watts/m^2
14;       XLAT: corresponding vector of lat
15;
16;  OUTPUT:
17;       CLD:  cloud fraction - value between 0-1.
18;       Qclsky: clearsky Qsw = Q0 in Reeds notation
19;
20
21; SET COEFFICIENTS FOR THE Q0 CALCULATION
22
23pi=!pi
24xlat=double(xlat) & NN=n_elements(xlat)
25
26CLD=SWR*0.+!values.f_nan
27Qclsky = SWR*0.+!values.f_nan
28
29A0 = (-32.65 + 674.76*cos(XLAT*pi/180))
30A1 = (19.88 + 397.26*cos((XLAT+90.0)*pi/180))
31A2 = (-1.32 +  16.10*sin((2*(XLAT-45.0))*pi/180))
32B1 = (-6.75 + 224.38*sin(XLAT*pi/180))
33B2 = (-1.04 +  29.76*cos((2*(XLAT-5.0))*pi/180))
34
35;A0 = (-32.65 + 674.76*cos(XLAT*pi/180))*(abs(XLAT) le 20.)
36;A1 = (19.88 + 397.26*cos((XLAT+90.0)*pi/180))*(abs(XLAT) le 20.)
37;A2 = (-1.32 +  16.10*sin((2*(XLAT-45.0))*pi/180))*(abs(XLAT) le 20.)
38;B1 = (-6.75 + 224.38*sin(XLAT*pi/180))*(abs(XLAT) le 20.)
39;B2 = (-1.04 +  29.76*cos((2*(XLAT-5.0))*pi/180))*(abs(XLAT) le 20.)
40;
41;A0 = A0+(-15.82 + 326.87*cos(XLAT*pi/180))*((abs(XLAT) gt 20.) and (abs(XLAT) le 40.))
42;A1 = A1+(  9.63 + 192.44*cos((XLAT+90.0)*pi/180))*((abs(XLAT) gt 20.) and (abs(XLAT) le 40.))
43;A2 = A2+( -0.64 +   7.80*sin((2*(XLAT-45.0))*pi/180))*((abs(XLAT) gt 20.) and (abs(XLAT) le 40.))
44;B1 = B1+( -3.27 + 108.70*sin(XLAT*pi/180))*((abs(XLAT) gt 20.) and (abs(XLAT) le 40.))
45;B2 = B2+( -0.50 +  14.42*cos((2*(XLAT-5.0))*pi/180))*((abs(XLAT) gt 20.) and (abs(XLAT) le 40.))
46;
47;A0 = A0+(342.61 - 1.97*XLAT - 0.018*XLAT^2)*((abs(XLAT) gt 40.) and (abs(XLAT) le 60.))
48;A1 = A1+( 52.08 - 5.86*XLAT + 0.043*XLAT^2)*((abs(XLAT) gt 40.) and (abs(XLAT) le 60.))
49;A2 = A2+(  1.08 - 0.47*XLAT + 0.011*XLAT^2)*((abs(XLAT) gt 40.) and (abs(XLAT) le 60.))
50;B1 = B1+( -4.80 + 2.46*XLAT - 0.017*XLAT^2)*((abs(XLAT) gt 40.) and (abs(XLAT) le 60.))
51;B2 = B2+(-38.79 + 2.43*XLAT - 0.034*XLAT^2)*((abs(XLAT) gt 40.) and (abs(XLAT) le 60.))
52
53  DAY=jday ; day is day of that year;
54  XDIV=365.15
55
56; CALCULATE PHI
57  PHI = (360./XDIV * (DAY-21.0))*pi/180.
58
59; CALCULATE Q0; MULTIPY BY .4846 TO CONVERT FROM
60; LY/DAY TO W/M**2
61  Q0 = A0+A1*cos(PHI)+B1*sin(PHI)+A2*cos(2*PHI)+B2*sin(2*PHI);
62  Q0=Q0*.4846;
63
64  SNALPHA=sin(XLAT*pi/180)*sin(23.45*sin((DAY-82)*pi/180)*pi/180) + $
65           cos(XLAT*pi/180)*cos(23.45*sin((DAY-82)*pi/180)*pi/180)
66  ALPHA = asin(SNALPHA)*180/pi
67
68; SEE MARINE CLIMATE ATLAS OF TROPICAL PACIFC OCEAN, WEARE,STRUB,
69; AND SAMUEL -- UC,DAVIS;  THIS IS ACTUALLY REEDS 1977
70; FORMULA
71  CLD = (1.0+0.0019*ALPHA-SWR/Q0)/.62
72  Qclsky = Q0
73
74indx=where(CLD ge 1.0)
75if (indx(0) ne -1) then CLD(indx) = 1.+0.*indx
76
77;;return, [[CLD],[Qclsky]]
78return, cld
79
80end
81     
Note: See TracBrowser for help on using the repository browser.