/[MITgcm]/MITgcm/pkg/fizhi/update_earth_exports.F
ViewVC logotype

Annotation of /MITgcm/pkg/fizhi/update_earth_exports.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.5 - (hide annotations) (download)
Wed Jun 9 18:54:20 2004 UTC (20 years ago) by molod
Branch: MAIN
Changes since 1.4: +27 -26 lines
Developing....

1 molod 1.3 C $Header: /u/gcmpack/MITgcm/pkg/fizhi/update_earth_exports.F,v 1.2 2004/06/07 18:11:38 molod Exp $
2 molod 1.1 C $Name: $
3    
4     subroutine update_earth_exports (myTime, myIter, myThid)
5     c----------------------------------------------------------------------
6     c Subroutine update_earth_exports - 'Wrapper' routine to update
7     c the fields related to the earth's surface that are needed
8     c by fizhi.
9     c
10 molod 1.5 c Call: getlgr (Set the leaf area index and surface greenness,
11     c based on veg type and month)
12     c getalb (Set the 4 albedos based on veg type, snow and time)
13 molod 1.1 c getemiss (Set the surface emissivity based on the veg type
14     c and the snow depth)
15     c-----------------------------------------------------------------------
16     implicit none
17     #include "CPP_OPTIONS.h"
18     #include "SIZE.h"
19 molod 1.2 #include "fizhi_land_SIZE.h"
20 molod 1.1 #include "fizhi_SIZE.h"
21     #include "fizhi_coms.h"
22     #include "gridalt_mapping.h"
23 molod 1.2 #include "fizhi_land_coms.h"
24 molod 1.5 #include "fizhi_earth_coms.h"
25 molod 1.1 #include "EEPARAMS.h"
26    
27 molod 1.3 integer myTime, myIter, myThid
28 molod 1.1
29 molod 1.5 real lats(sNx,sNy), lons(sNx,sNy), cosz(sNx,sNy)
30 molod 1.3 integer i, j, L, bi, bj
31     integer im1, im2, jm1, jm2, idim1, idim2, jdim1, jdim2
32 molod 1.5 integer sec, day, month
33     integer nmonf,ndayf
34     nmonf(n) = mod(n,10000)/100
35     ndayf(n) = mod(n,100)
36 molod 1.1
37 molod 1.3 idim1 = 1-OLx
38     idim2 = sNx+OLx
39     jdim1 = 1-OLy
40     jdim2 = sNy+OLy
41     im1 = 1
42     im2 = sNx
43     jm1 = 1
44     jm2 = sNy
45 molod 1.5 month = nmonf(nymd)
46     day = ndayf(nymd)
47     sec = nsecf(nhms)
48 molod 1.1
49 molod 1.3 do bj = myByLo(myThid), myByHi(myThid)
50     do bi = myBxLo(myThid), myBxHi(myThid)
51 molod 1.5 do j = jm1,jm2
52     do i = im1,im2
53     lons(i,j,bi,bj) = xC(i,j,bi,bj)
54     lats(i,j,bi,bj) = yC(i,j,bi,bj)
55     enddo
56     enddo
57 molod 1.1
58 molod 1.3 C***********************************************************************
59     C* Get Leaf-Area-Index and Greenness Index *
60     C***********************************************************************
61    
62     if( alarm('turb') .or. alarm('radsw') ) then
63 molod 1.5 call getlgr (sec,month,day,chlt,ityp,nchpland,alai,agrn )
64 molod 1.3 endif
65    
66     C **********************************************************************
67     C Compute Surface Albedo
68     C **********************************************************************
69    
70     if( alarm('radsw') ) then
71 molod 1.5 call astro ( nymd,nhms, lats,lons, im2*jm2, cosz,ra )
72     call getalb ( sec,month,day,cosz,snodep,fraci,fracl,
73     . im,jm,nchp,nchpland,igrd,ityp,chfr,chlt,alai,agrn,
74     . albvisdr,albvisdf,albnirdr,albnirdf )
75 molod 1.3 endif
76    
77    
78     C **********************************************************************
79     C Compute Surface Emissivity
80     C **********************************************************************
81    
82     if( alarm('radlw') ) then
83 molod 1.5 call grd2msc ( fraci,im,jm,igrd,ficetile,nchp,nchp )
84     call getemiss ( fracl,im,jm,nchp,igrd,ityp,chfr,snodep,ficetile,
85     . emiss )
86 molod 1.3 endif
87    
88    
89     C*********************************************************************
90     C Ground Temperature Over Ocean is from SST array,
91     C*********************************************************************
92    
93     do j = 1,jm
94     do i = 1,im
95 molod 1.5 if(fracl(i,j).lt.0.3.and.sea_ice(i,j).eq.0.0)tgz(i,j) = sst(i,j)
96 molod 1.3 endif
97     enddo
98     enddo
99    
100     enddo
101     enddo
102    
103     return
104     end
105    
106     SUBROUTINE SIBALB ( AVISDR, ANIRDR, AVISDF, ANIRDF,
107     . VLAI, VGRN, ZTH, SNW, ITYP, IRUN )
108    
109     C*********************************************************************
110     C The input list is as follows:
111     C VLAI: the leaf area index.
112     C VGRN: the greenness index.
113     C ZTH: The cosine of the solar zenith angle.
114     C SNW: Snow cover in meters water equivalent.
115     C ITYP: The surface type (grass, bare soil, etc.)
116     C IRUN: Number of tiles (same as used for SUBROUTINE TILE).
117     C
118     C The output list is as follows:
119     C
120     C AVISDR: visible, direct albedo.
121     C ANIRDR: near infra-red, direct albedo.
122     C AVISDF: visible, diffuse albedo.
123     C ANIRDF: near infra-red, diffuse albedo.
124     C*******************************************************************
125    
126     IMPLICIT NONE
127    
128     INTEGER IRUN
129     REAL AVISDR (IRUN), ANIRDR (IRUN), AVISDF (IRUN), ANIRDF (IRUN),
130     ` VLAI (IRUN), VGRN (IRUN), ZTH (IRUN), SNW (IRUN)
131     INTEGER ITYP (IRUN)
132    
133     REAL ALVDRS, ALIDRS
134     REAL ALVDRDL, ALIDRDL
135     REAL ALVDRDD, ALIDRDD
136     REAL ALVDRI, ALIDRI
137     REAL minval
138     external minval
139    
140     PARAMETER ( ALVDRS = 0.100 ) ! Albedo of soil for visible direct solar radiation.
141     PARAMETER ( ALIDRS = 0.200 ) ! Albedo of soil for infra-red direct solar radiation.
142     PARAMETER ( ALVDRDL = 0.300 ) ! Albedo of light desert for visible direct solar radiation.
143     PARAMETER ( ALIDRDL = 0.350 ) ! Albedo of light desert for infra-red direct solar radiation.
144     PARAMETER ( ALVDRDD = 0.250 ) ! Albedo of dark desert for visible direct solar radiation.
145     PARAMETER ( ALIDRDD = 0.300 ) ! Albedo of dark desert for infra-red direct solar radiation.
146     PARAMETER ( ALVDRI = 0.800 ) ! Albedo of ice for visible direct solar radiation.
147     PARAMETER ( ALIDRI = 0.800 ) ! Albedo of ice for infra-red direct solar radiation.
148    
149     * --------------------------------------------------------------------------------------------
150    
151     INTEGER NTYPS
152     INTEGER NLAI
153     REAL ZERO, ONE
154     REAL EPSLN, BLAI, DLAI
155     REAL ALATRM
156     PARAMETER (NLAI = 14 )
157     PARAMETER (EPSLN = 1.E-6)
158     PARAMETER (BLAI = 0.5)
159     PARAMETER (DLAI = 0.5)
160     PARAMETER (ZERO=0., ONE=1.0)
161     PARAMETER (ALATRM = BLAI + (NLAI - 1) * DLAI - EPSLN)
162     PARAMETER (NTYPS=10)
163    
164    
165     C ITYP: Vegetation type as follows:
166     C 1: BROADLEAF EVERGREEN TREES
167     C 2: BROADLEAF DECIDUOUS TREES
168     C 3: NEEDLELEAF TREES
169     C 4: GROUND COVER
170     C 5: BROADLEAF SHRUBS
171     C 6: DWARF TREES (TUNDRA)
172     C 7: BARE SOIL
173     C 8: LIGHT DESERT
174     C 9: GLACIER
175     C 10: DARK DESERT
176     C
177    
178    
179     * [ Definition of Variables: ]
180     *
181     INTEGER I, LAI
182    
183     REAL FAC, GAMMA, BETA, ALPHA,
184     ` DX, DY, ALA, GRN (2),
185     ` SNWALB (4, NTYPS), SNWMID (NTYPS)
186    
187     * [ Definition of Functions: ]
188     *
189     REAL COEFF
190    
191     C Constants used in albedo calculations:
192    
193     REAL ALVDR (NLAI, 2, NTYPS)
194     REAL BTVDR (NLAI, 2, NTYPS)
195     REAL GMVDR (NLAI, 2, NTYPS)
196     REAL ALIDR (NLAI, 2, NTYPS)
197     REAL BTIDR (NLAI, 2, NTYPS)
198     REAL GMIDR (NLAI, 2, NTYPS)
199    
200     C (Data statements for ALVDR described in full; data statements for
201     C other constants follow same framework.)
202    
203     C BROADLEAF EVERGREEN (ITYP=4); GREEN=0.33; LAI: .5-7
204     DATA (ALVDR (I, 1, 1), I = 1, 14)
205     ` /0.0808, 0.0796, 0.0792, 0.0790, 10*0.0789/
206    
207     C BROADLEAF EVERGREEN (ITYP=4); GREEN=0.67; LAI: .5-7
208     DATA (ALVDR (I, 2, 1), I = 1, 14)
209     ` /0.0788, 0.0775, 0.0771, 0.0769, 10*0.0768/
210    
211     C BROADLEAF DECIDUOUS (ITYP=1); GREEN=0.33; LAI: .5-7
212     DATA (ALVDR (I, 1, 2), I = 1, 14)
213     ` /0.0803, 0.0790, 0.0785, 0.0784, 3*0.0783, 7*0.0782/
214    
215     C BROADLEAF DECIDUOUS (ITYP=1); GREEN=0.67; LAI: .5-7
216     DATA (ALVDR (I, 2, 2), I = 1, 14)
217     ` /0.0782, 0.0770, 0.0765, 0.0763, 10*0.0762/
218    
219     C NEEDLELEAF (ITYP=3); GREEN=0.33; LAI=.5-7
220     DATA (ALVDR (I, 1, 3), I = 1, 14)
221     ` /0.0758, 0.0746, 0.0742, 0.0740, 10*0.0739/
222    
223     C NEEDLELEAF (ITYP=3); GREEN=0.67; LAI=.5-7
224     DATA (ALVDR (I, 2, 3), I = 1, 14)
225     ` /0.0683, 0.0672, 0.0667, 2*0.0665, 9*0.0664/
226    
227     C GROUNDCOVER (ITYP=2); GREEN=0.33; LAI=.5-7
228     DATA (ALVDR (I, 1, 4), I = 1, 14)
229     ` /0.2436, 0.2470, 0.2486, 0.2494, 0.2498, 0.2500, 2*0.2501,
230     ` 6*0.2502
231     ` /
232     C GROUNDCOVER (ITYP=2); GREEN=0.67; LAI=.5-7
233     DATA (ALVDR (I, 2, 4), I = 1, 14) /14*0.1637/
234    
235     C BROADLEAF SHRUBS (ITYP=5); GREEN=0.33,LAI=.5-7
236     DATA (ALVDR (I, 1, 5), I = 1, 14)
237     & /0.0807, 0.0798, 0.0794, 0.0792, 0.0792, 9*0.0791/
238    
239     C BROADLEAF SHRUBS (ITYP=5); GREEN=0.67,LAI=.5-7
240     DATA (ALVDR (I, 2, 5), I = 1, 14)
241     & /0.0787, 0.0777, 0.0772, 0.0771, 10*0.0770/
242    
243     C DWARF TREES, OR TUNDRA (ITYP=6); GREEN=0.33,LAI=.5-7
244     DATA (ALVDR (I, 1, 6), I = 1, 14)
245     & /0.0802, 0.0791, 0.0787, 0.0786, 10*0.0785/
246    
247     C DWARF TREES, OR TUNDRA (ITYP=6); GREEN=0.67,LAI=.5-7
248     DATA (ALVDR (I, 2, 6), I = 1, 14)
249     & /0.0781, 0.0771, 0.0767, 0.0765, 0.0765, 9*0.0764/
250    
251    
252     C BARE SOIL
253     DATA (ALVDR (I, 1, 7), I = 1, 14) /14*ALVDRS/
254     DATA (ALVDR (I, 2, 7), I = 1, 14) /14*ALVDRS/
255    
256     C LIGHT DESERT (SAHARA, EG)
257     DATA (ALVDR (I, 1, 8), I = 1, 14) /14*ALVDRDL/
258     DATA (ALVDR (I, 2, 8), I = 1, 14) /14*ALVDRDL/
259    
260     C ICE
261     DATA (ALVDR (I, 1, 9), I = 1, 14) /14*ALVDRI/
262     DATA (ALVDR (I, 2, 9), I = 1, 14) /14*ALVDRI/
263    
264     C DARK DESERT (AUSTRALIA, EG)
265     DATA (ALVDR (I, 1, 10), I = 1, 14) /14*ALVDRDD/
266     DATA (ALVDR (I, 2, 10), I = 1, 14) /14*ALVDRDD/
267     C****
268     C**** -------------------------------------------------
269     DATA (BTVDR (I, 1, 1), I = 1, 14)
270     ` /0.0153, 0.0372, 0.0506, 0.0587, 0.0630, 0.0652, 0.0663,
271     ` 0.0668, 0.0671, 0.0672, 4*0.0673
272     ` /
273     DATA (BTVDR (I, 2, 1), I = 1, 14)
274     * /0.0135, 0.0354, 0.0487, 0.0568, 0.0611, 0.0633, 0.0644,
275     ` 0.0650, 0.0652, 0.0654, 0.0654, 3*0.0655
276     ` /
277     DATA (BTVDR (I, 1, 2), I = 1, 14)
278     * /0.0148, 0.0357, 0.0462, 0.0524, 0.0554, 0.0569, 0.0576,
279     ` 0.0579, 0.0580, 0.0581, 0.0581, 3*0.0582
280     ` /
281     DATA (BTVDR (I, 2, 2), I = 1, 14)
282     * /0.0131, 0.0342, 0.0446, 0.0508, 0.0539, 0.0554, 0.0560,
283     ` 0.0564, 0.0565, 5*0.0566
284     ` /
285     DATA (BTVDR (I, 1, 3), I = 1, 14)
286     * /0.0108, 0.0334, 0.0478, 0.0571, 0.0624, 0.0652, 0.0666,
287     ` 0.0673, 0.0677, 0.0679, 4*0.0680
288     ` /
289     DATA (BTVDR (I, 2, 3), I = 1, 14)
290     * /0.0034, 0.0272, 0.0408, 0.0501, 0.0554, 0.0582, 0.0597,
291     * 0.0604, 0.0608, 0.0610, 4*0.0611
292     ` /
293     DATA (BTVDR (I, 1, 4), I = 1, 14)
294     * /0.2050, 0.2524, 0.2799, 0.2947, 0.3022, 0.3059, 0.3076,
295     * 0.3085, 0.3088, 0.3090, 4*0.3091
296     ` /
297     DATA (BTVDR (I, 2, 4), I = 1, 14)
298     * /0.1084, 0.1404, 0.1617, 0.1754, 0.1837, 0.1887, 0.1915,
299     * 0.1931, 0.1940, 0.1946, 0.1948, 0.1950, 2*0.1951
300     ` /
301     DATA (BTVDR (I, 1, 5), I = 1, 14)
302     & /0.0203, 0.0406, 0.0548, 0.0632, 0.0679, 0.0703, 0.0716,
303     & 0.0722, 0.0726, 0.0727, 0.0728, 0.0728, 0.0728, 0.0729
304     ` /
305    
306     DATA (BTVDR (I, 2, 5), I = 1, 14)
307     & /0.0184, 0.0385, 0.0526, 0.0611, 0.0658, 0.0683, 0.0696,
308     & 0.0702, 0.0705, 0.0707, 4*0.0708
309     ` /
310    
311     DATA (BTVDR (I, 1, 6), I = 1, 14)
312     & /0.0199, 0.0388, 0.0494, 0.0554, 0.0584, 0.0599, 0.0606,
313     & 0.0609, 0.0611, 5*0.0612
314     ` /
315    
316     DATA (BTVDR (I, 2, 6), I = 1, 14)
317     & /0.0181, 0.0371, 0.0476, 0.0537, 0.0568, 0.0583, 0.0590,
318     & 0.0593, 0.0595, 0.0595, 4*0.0596
319     ` /
320    
321     DATA (BTVDR (I, 1, 7), I = 1, 14) /14*0./
322     DATA (BTVDR (I, 2, 7), I = 1, 14) /14*0./
323    
324     DATA (BTVDR (I, 1, 8), I = 1, 14) /14*0./
325     DATA (BTVDR (I, 2, 8), I = 1, 14) /14*0./
326    
327     DATA (BTVDR (I, 1, 9), I = 1, 14) /14*0./
328     DATA (BTVDR (I, 2, 9), I = 1, 14) /14*0./
329    
330     DATA (BTVDR (I, 1, 10), I = 1, 14) /14*0./
331     DATA (BTVDR (I, 2, 10), I = 1, 14) /14*0./
332    
333     C****
334     C**** -----------------------------------------------------------
335     DATA (GMVDR (I, 1, 1), I = 1, 14)
336     ` /0.0814, 0.1361, 0.2078, 0.2650, 0.2986, 0.3169, 0.3265,
337     * 0.3313, 0.3337, 0.3348, 0.3354, 0.3357, 2*0.3358
338     ` /
339     DATA (GMVDR (I, 2, 1), I = 1, 14)
340     * /0.0760, 0.1336, 0.2034, 0.2622, 0.2969, 0.3159, 0.3259,
341     * 0.3309, 0.3333, 0.3346, 0.3352, 0.3354, 2*0.3356
342     ` /
343     DATA (GMVDR (I, 1, 2), I = 1, 14)
344     * /0.0834, 0.1252, 0.1558, 0.1927, 0.2131, 0.2237, 0.2290,
345     * 0.2315, 0.2327, 0.2332, 0.2335, 2*0.2336, 0.2337
346     ` /
347     DATA (GMVDR (I, 2, 2), I = 1, 14)
348     * /0.0789, 0.1235, 0.1531, 0.1912, 0.2122, 0.2232, 0.2286,
349     * 0.2312, 0.2324, 0.2330, 0.2333, 0.2334, 2*0.2335
350     ` /
351     DATA (GMVDR (I, 1, 3), I = 1, 14)
352     * /0.0647, 0.1342, 0.2215, 0.2968, 0.3432, 0.3696, 0.3838,
353     * 0.3912, 0.3950, 0.3968, 0.3978, 0.3982, 0.3984, 0.3985
354     ` /
355     DATA (GMVDR (I, 2, 3), I = 1, 14)
356     * /0.0258, 0.1227, 0.1999, 0.2825, 0.3339, 0.3634, 0.3794,
357     * 0.3877, 0.3919, 0.3940, 0.3950, 0.3956, 0.3958, 0.3959
358     ` /
359     DATA (GMVDR (I, 1, 4), I = 1, 14)
360     * /0.3371, 0.5762, 0.7159, 0.7927, 0.8324, 0.8526, 0.8624,
361     * 0.8671, 0.8693, 0.8704, 0.8709, 0.8710, 2*0.8712
362     ` /
363     DATA (GMVDR (I, 2, 4), I = 1, 14)
364     * /0.2634, 0.4375, 0.5532, 0.6291, 0.6763, 0.7048, 0.7213,
365     * 0.7310, 0.7363, 0.7395, 0.7411, 0.7420, 0.7426, 0.7428
366     ` /
367     DATA (GMVDR (I, 1, 5), I = 1, 14)
368     & /0.0971, 0.1544, 0.2511, 0.3157, 0.3548, 0.3768, 0.3886,
369     & 0.3948, 0.3978, 0.3994, 0.4001, 0.4006, 0.4007, 0.4008
370     ` /
371    
372     DATA (GMVDR (I, 2, 5), I = 1, 14)
373     & /0.0924, 0.1470, 0.2458, 0.3123, 0.3527, 0.3756, 0.3877,
374     & 0.3942, 0.3974, 0.3990, 0.3998, 0.4002, 0.4004, 0.4005
375     ` /
376    
377     DATA (GMVDR (I, 1, 6), I = 1, 14)
378     & /0.0970, 0.1355, 0.1841, 0.2230, 0.2447, 0.2561, 0.2617,
379     & 0.2645, 0.2658, 0.2664, 0.2667, 3*0.2669
380     ` /
381    
382     DATA (GMVDR (I, 2, 6), I = 1, 14)
383     & /0.0934, 0.1337, 0.1812, 0.2213, 0.2437, 0.2554, 0.2613,
384     & 0.2642, 0.2656, 0.2662, 0.2665, 0.2667, 0.2667, 0.2668
385     ` /
386    
387     DATA (GMVDR (I, 1, 7), I = 1, 14) /14*1./
388     DATA (GMVDR (I, 2, 7), I = 1, 14) /14*1./
389    
390     DATA (GMVDR (I, 1, 8), I = 1, 14) /14*1./
391     DATA (GMVDR (I, 2, 8), I = 1, 14) /14*1./
392    
393     DATA (GMVDR (I, 1, 9), I = 1, 14) /14*1./
394     DATA (GMVDR (I, 2, 9), I = 1, 14) /14*1./
395    
396     DATA (GMVDR (I, 1, 10), I = 1, 14) /14*1./
397     DATA (GMVDR (I, 2, 10), I = 1, 14) /14*1./
398    
399     C****
400     C**** -----------------------------------------------------------
401    
402     DATA (ALIDR (I, 1, 1), I = 1, 14)
403     * /0.2867, 0.2840, 0.2828, 0.2822, 0.2819, 0.2818, 2*0.2817,
404     * 6*0.2816
405     ` /
406     DATA (ALIDR (I, 2, 1), I = 1, 14)
407     * /0.3564, 0.3573, 0.3577, 0.3580, 2*0.3581, 8*0.3582/
408     DATA (ALIDR (I, 1, 2), I = 1, 14)
409     * /0.2848, 0.2819, 0.2804, 0.2798, 0.2795, 2*0.2793, 7*0.2792/
410     DATA (ALIDR (I, 2, 2), I = 1, 14)
411     * /0.3544, 0.3550, 0.3553, 2*0.3555, 9*0.3556/
412     DATA (ALIDR (I, 1, 3), I = 1, 14)
413     * /0.2350, 0.2311, 0.2293, 0.2285, 0.2281, 0.2280, 8*0.2279/
414     DATA (ALIDR (I, 2, 3), I = 1, 14)
415     * /0.2474, 0.2436, 0.2418, 0.2410, 0.2406, 0.2405, 3*0.2404,
416     * 5*0.2403
417     ` /
418     DATA (ALIDR (I, 1, 4), I = 1, 14)
419     * /0.5816, 0.6157, 0.6391, 0.6556, 0.6673, 0.6758, 0.6820,
420     * 0.6866, 0.6899, 0.6924, 0.6943, 0.6956, 0.6966, 0.6974
421     ` /
422     DATA (ALIDR (I, 2, 4), I = 1, 14)
423     * /0.5489, 0.5770, 0.5955, 0.6079, 0.6163, 0.6221, 0.6261,
424     * 0.6288, 0.6308, 0.6321, 0.6330, 0.6337, 0.6341, 0.6344
425     ` /
426     DATA (ALIDR (I, 1, 5), I = 1, 14)
427     & /0.2845, 0.2837, 0.2832, 0.2831, 0.2830, 9*0.2829/
428     DATA (ALIDR (I, 2, 5), I = 1, 14)
429     & /0.3532, 0.3562, 0.3578, 0.3586, 0.3590, 0.3592, 0.3594,
430     & 0.3594, 0.3594, 5*0.3595
431     ` /
432     DATA (ALIDR (I, 1, 6), I = 1, 14)
433     & /0.2825, 0.2812, 0.2806, 0.2803, 0.2802, 9*0.2801/
434     DATA (ALIDR (I, 2, 6), I = 1, 14)
435     & /0.3512, 0.3538, 0.3552, 0.3559, 0.3562, 0.3564, 0.3565,
436     & 0.3565, 6*0.3566
437     ` /
438    
439     DATA (ALIDR (I, 1, 7), I = 1, 14) /14*ALIDRS/
440     DATA (ALIDR (I, 2, 7), I = 1, 14) /14*ALIDRS/
441    
442     DATA (ALIDR (I, 1, 8), I = 1, 14) /14*ALIDRDL/
443     DATA (ALIDR (I, 2, 8), I = 1, 14) /14*ALIDRDL/
444    
445     DATA (ALIDR (I, 1, 9), I = 1, 14) /14*ALIDRI/
446     DATA (ALIDR (I, 2, 9), I = 1, 14) /14*ALIDRI/
447    
448     DATA (ALIDR (I, 1, 10), I = 1, 14) /14*ALIDRDD/
449     DATA (ALIDR (I, 2, 10), I = 1, 14) /14*ALIDRDD/
450    
451     C****
452     C**** -----------------------------------------------------------
453     DATA (BTIDR (I, 1, 1), I = 1, 14)
454     * /0.1291, 0.1707, 0.1969, 0.2125, 0.2216, 0.2267, 0.2295,
455     * 0.2311, 0.2319, 0.2323, 0.2326, 2*0.2327, 0.2328
456     ` /
457     DATA (BTIDR (I, 2, 1), I = 1, 14)
458     * /0.1939, 0.2357, 0.2598, 0.2735, 0.2810, 0.2851, 0.2874,
459     * 0.2885, 0.2892, 0.2895, 0.2897, 3*0.2898
460     ` /
461     DATA (BTIDR (I, 1, 2), I = 1, 14)
462     * /0.1217, 0.1522, 0.1713, 0.1820, 0.1879, 0.1910, 0.1926,
463     * 0.1935, 0.1939, 0.1942, 2*0.1943, 2*0.1944
464     ` /
465     DATA (BTIDR (I, 2, 2), I = 1, 14)
466     * /0.1781, 0.2067, 0.2221, 0.2301, 0.2342, 0.2363, 0.2374,
467     * 0.2379, 0.2382, 0.2383, 2*0.2384, 2*0.2385
468     ` /
469     DATA (BTIDR (I, 1, 3), I = 1, 14)
470     * /0.0846, 0.1299, 0.1614, 0.1814, 0.1935, 0.2004, 0.2043,
471     * 0.2064, 0.2076, 0.2082, 0.2085, 2*0.2087, 0.2088
472     ` /
473     DATA (BTIDR (I, 2, 3), I = 1, 14)
474     * /0.0950, 0.1410, 0.1722, 0.1921, 0.2042, 0.2111, 0.2151,
475     * 0.2172, 0.2184, 0.2191, 0.2194, 0.2196, 2*0.2197
476     ` /
477     DATA (BTIDR (I, 1, 4), I = 1, 14)
478     * /0.5256, 0.7444, 0.9908, 1.2700, 1.5680, 1.8505, 2.0767,
479     * 2.2211, 2.2808, 2.2774, 2.2362, 2.1779, 2.1160, 2.0564
480     ` /
481     DATA (BTIDR (I, 2, 4), I = 1, 14)
482     * /0.4843, 0.6714, 0.8577, 1.0335, 1.1812, 1.2858, 1.3458,
483     * 1.3688, 1.3685, 1.3546, 1.3360, 1.3168, 1.2989, 1.2838
484     ` /
485     DATA (BTIDR (I, 1, 5), I = 1, 14)
486     & /0.1498, 0.1930, 0.2201, 0.2364, 0.2460, 0.2514, 0.2544,
487     & 0.2560, 0.2569, 0.2574, 0.2577, 0.2578, 0.2579, 0.2579
488     ` /
489    
490     DATA (BTIDR (I, 2, 5), I = 1, 14)
491     & /0.2184, 0.2656, 0.2927, 0.3078, 0.3159, 0.3202, 0.3224,
492     & 0.3235, 0.3241, 0.3244, 0.3245, 3*0.3246
493     ` /
494    
495     DATA (BTIDR (I, 1, 6), I = 1, 14)
496     & /0.1369, 0.1681, 0.1860, 0.1958, 0.2010, 0.2038, 0.2053,
497     & 0.2060, 0.2064, 0.2066, 0.2067, 3*0.2068
498     ` /
499    
500     DATA (BTIDR (I, 2, 6), I = 1, 14)
501     & /0.1969, 0.2268, 0.2416, 0.2488, 0.2521, 0.2537, 0.2544,
502     & 0.2547, 0.2548, 5*0.2549
503     ` /
504    
505    
506     DATA (BTIDR (I, 1, 7), I = 1, 14) /14*0./
507     DATA (BTIDR (I, 2, 7), I = 1, 14) /14*0./
508    
509     DATA (BTIDR (I, 1, 8), I = 1, 14) /14*0./
510     DATA (BTIDR (I, 2, 8), I = 1, 14) /14*0./
511    
512     DATA (BTIDR (I, 1, 9), I = 1, 14) /14*0./
513     DATA (BTIDR (I, 2, 9), I = 1, 14) /14*0./
514    
515     DATA (BTIDR (I, 1, 10), I = 1, 14) /14*0./
516     DATA (BTIDR (I, 2, 10), I = 1, 14) /14*0./
517    
518     C****
519     C**** --------------------------------------------------------------
520     DATA (GMIDR (I, 1, 1), I = 1, 14)
521     * /0.1582, 0.2581, 0.3227, 0.3635, 0.3882, 0.4026, 0.4108,
522     * 0.4154, 0.4179, 0.4193, 0.4200, 0.4204, 0.4206, 0.4207
523     ` /
524     DATA (GMIDR (I, 2, 1), I = 1, 14)
525     * /0.1934, 0.3141, 0.3818, 0.4200, 0.4415, 0.4533, 0.4598,
526     * 0.4633, 0.4651, 0.4662, 0.4667, 0.4671, 2*0.4672
527     ` /
528     DATA (GMIDR (I, 1, 2), I = 1, 14)
529     * /0.1347, 0.1871, 0.2277, 0.2515, 0.2651, 0.2727, 0.2768,
530     * 0.2790, 0.2801, 0.2808, 0.2811, 0.2812, 0.2813, 0.2814
531     ` /
532     DATA (GMIDR (I, 2, 2), I = 1, 14)
533     * /0.1440, 0.2217, 0.2629, 0.2839, 0.2947, 0.3003, 0.3031,
534     * 0.3046, 0.3054, 0.3058, 0.3060, 2*0.3061, 0.3062
535     ` /
536     DATA (GMIDR (I, 1, 3), I = 1, 14)
537     * /0.1372, 0.2368, 0.3235, 0.3839, 0.4229, 0.4465, 0.4602,
538     * 0.4679, 0.4722, 0.4745, 0.4758, 0.4764, 0.4768, 0.4770
539     ` /
540     DATA (GMIDR (I, 2, 3), I = 1, 14)
541     * /0.1435, 0.2524, 0.3370, 0.3955, 0.4332, 0.4563, 0.4697,
542     * 0.4773, 0.4815, 0.4839, 0.4851, 0.4858, 0.4861, 0.4863
543     ` /
544     DATA (GMIDR (I, 1, 4), I = 1, 14)
545     * /0.4298, 0.9651, 1.6189, 2.4084, 3.2992, 4.1928, 4.9611,
546     * 5.5095, 5.8085, 5.9069, 5.8726, 5.7674, 5.6346, 5.4944
547     ` /
548     DATA (GMIDR (I, 2, 4), I = 1, 14)
549     * /0.4167, 0.8974, 1.4160, 1.9414, 2.4147, 2.7803, 3.0202,
550     * 3.1468, 3.1954, 3.1932, 3.1676, 3.1328, 3.0958, 3.0625
551     ` /
552     DATA (GMIDR (I, 1, 5), I = 1, 14)
553     & /0.1959, 0.3203, 0.3985, 0.4472, 0.4766, 0.4937, 0.5034,
554     & 0.5088, 0.5117, 0.5134, 0.5143, 0.5147, 0.5150, 0.5152
555     ` /
556    
557     DATA (GMIDR (I, 2, 5), I = 1, 14)
558     & /0.2328, 0.3859, 0.4734, 0.5227, 0.5498, 0.5644, 0.5720,
559     & 0.5761, 0.5781, 0.5792, 0.5797, 0.5800, 0.5802, 0.5802
560     ` /
561    
562     DATA (GMIDR (I, 1, 6), I = 1, 14)
563     & /0.1447, 0.2244, 0.2698, 0.2953, 0.3094, 0.3170, 0.3211,
564     & 0.3233, 0.3244, 0.3250, 0.3253, 0.3255, 0.3256, 0.3256
565     ` /
566    
567     DATA (GMIDR (I, 2, 6), I = 1, 14)
568     & /0.1643, 0.2624, 0.3110, 0.3347, 0.3461, 0.3517, 0.3543,
569     & 0.3556, 0.3562, 0.3564, 0.3565, 0.3566, 0.3566, 0.3566
570     ` /
571    
572     DATA (GMIDR (I, 1, 7), I = 1, 14) /14*1./
573     DATA (GMIDR (I, 2, 7), I = 1, 14) /14*1./
574    
575     DATA (GMIDR (I, 1, 8), I = 1, 14) /14*1./
576     DATA (GMIDR (I, 2, 8), I = 1, 14) /14*1./
577    
578     DATA (GMIDR (I, 1, 9), I = 1, 14) /14*1./
579     DATA (GMIDR (I, 2, 9), I = 1, 14) /14*1./
580    
581     DATA (GMIDR (I, 1, 10), I = 1, 14) /14*1./
582     DATA (GMIDR (I, 2, 10), I = 1, 14) /14*1./
583    
584    
585     C**** -----------------------------------------------------------
586    
587     DATA GRN /0.33, 0.67/
588    
589     include 'snwmid.h'
590     DATA SNWALB /.65, .38, .65, .38,
591     * .65, .38, .65, .38,
592     * .65, .38, .65, .38,
593     * .65, .38, .65, .38,
594     * .65, .38, .65, .38,
595     & .65, .38, .65, .38,
596     & .65, .38, .65, .38,
597     & .65, .38, .65, .38,
598     & .80, .60, .80, .60,
599     & .65, .38, .65, .38
600     ` /
601    
602     #if CRAY
603     #if f77
604     cfpp$ expand (coeff)
605     #endif
606     #if f90
607     !DIR$ inline always coeff
608     #endif
609     #endif
610    
611     DO 100 I=1,IRUN
612     ALA = MIN (MAX (ZERO, VLAI(I)), ALATRM)
613     LAI = 1 + MAX(0, INT((ALA-BLAI)/DLAI) )
614     DX = (ALA - (BLAI+(LAI-1)*DLAI)) * (ONE/DLAI)
615     DY = (VGRN(I)- GRN(1)) * (ONE/(GRN(2) - GRN(1)))
616    
617     ALPHA = COEFF (ALVDR (1, 1, ITYP (I)), NLAI, LAI ,DX, DY)
618     BETA = COEFF (BTVDR (1, 1, ITYP (I)), NLAI, LAI ,DX, DY)
619     GAMMA = COEFF (GMVDR (1, 1, ITYP (I)), NLAI, LAI ,DX, DY)
620    
621     AVISDR(I) = ALPHA - ZTH(I)*BETA / (GAMMA+ZTH(I))
622     AVISDF(I) = ALPHA-BETA
623     * + 2.*BETA*GAMMA*(1.-GAMMA*LOG((1.+GAMMA)/GAMMA))
624    
625     ALPHA = COEFF (ALIDR (1, 1, ITYP (I)), NLAI, LAI ,DX, DY)
626     BETA = COEFF (BTIDR (1, 1, ITYP (I)), NLAI, LAI ,DX, DY)
627     GAMMA = COEFF (GMIDR (1, 1, ITYP (I)), NLAI, LAI ,DX, DY)
628    
629     ANIRDR(I) = ALPHA - ZTH(I)*BETA / (GAMMA+ZTH(I))
630     ANIRDF(I) = ALPHA-BETA
631     * + 2.*BETA*GAMMA*(1.-GAMMA*LOG((1.+GAMMA)/GAMMA))
632    
633     IF (SNW (I) .GT. ZERO) THEN
634     FAC = SNW(I) / (SNW(I) + SNWMID(ITYP(I)))
635    
636     AVISDR(I) = AVISDR(I) + (SNWALB(1,ITYP(I)) - AVISDR(I)) * FAC
637     ANIRDR(I) = ANIRDR(I) + (SNWALB(2,ITYP(I)) - ANIRDR(I)) * FAC
638     AVISDF(I) = AVISDF(I) + (SNWALB(3,ITYP(I)) - AVISDF(I)) * FAC
639     ANIRDF(I) = ANIRDF(I) + (SNWALB(4,ITYP(I)) - ANIRDF(I)) * FAC
640     ENDIF
641    
642     100 CONTINUE
643    
644     RETURN
645     END
646     FUNCTION COEFF(TABLE, NTABL, LAI ,DX, DY)
647    
648     INTEGER NTABL, LAI
649    
650     REAL TABLE (NTABL, 2), DX, DY
651    
652     COEFF = (TABLE(LAI, 1)
653     * + (TABLE(LAI ,2) - TABLE(LAI ,1)) * DY ) * (1.0-DX)
654     * + (TABLE(LAI+1,1)
655     * + (TABLE(LAI+1,2) - TABLE(LAI+1,1)) * DY ) * DX
656    
657     RETURN
658     END
659     SUBROUTINE GETLGR(sec,IMON,IDAY,ALAT,ITYP,NCHPS,ALAI,AGRN)
660    
661     C*********************************************************************
662     C*********************** ARIES MODEL *******************************
663     C********************* SUBROUTINE GETLGR ****************************
664     C********************** 14 JUNE 1991 ******************************
665     C*********************************************************************
666     implicit none
667    
668     integer ntyps
669     real one,daylen
670     PARAMETER (NTYPS=10)
671     parameter (one = 1.)
672     parameter (daylen = 86400.)
673    
674     integer sec, imon, iday, nchps
675     real ALAI(NCHPS), AGRN(NCHPS), ALAT(NCHPS)
676     integer ITYP(NCHPS)
677    
678     integer i,midmon,midm,midp,id,k1,k2,kk1,kk2
679     real fac
680    
681     INTEGER DAYS(12)
682     DATA DAYS/31,28,31,30,31,30,31,31,30,31,30,31/
683    
684    
685     REAL VGLA(12,NTYPS), VGGR(12,NTYPS)
686    
687     DATA VGLA /
688     1 5.117, 5.117, 5.117, 5.117, 5.117, 5.117, 5.117, 5.117,
689     1 5.117, 5.117, 5.117, 5.117,
690     2 0.520, 0.520, 0.867, 2.107, 4.507, 6.773, 7.173, 6.507,
691     2 5.040, 2.173, 0.867, 0.520,
692     3 8.760, 9.160, 9.827,10.093,10.360,10.760,10.493,10.227,
693     3 10.093, 9.827, 9.160, 8.760,
694     4 0.782, 0.893, 1.004, 1.116, 1.782, 3.671, 4.782, 4.227,
695     4 2.004, 1.227, 1.004, 0.893,
696     5 3.760, 3.760, 2.760, 1.760, 1.760, 1.760, 1.760, 5.760,
697     5 10.760, 7.760, 4.760, 3.760,
698     6 0.739, 0.739, 0.739, 0.739, 0.739, 1.072, 5.072, 5.739,
699     6 4.405, 0.739, 0.739, 0.739,
700     7 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001,
701     7 0.001, 0.001, 0.001, 0.001,
702     8 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001,
703     8 0.001, 0.001, 0.001, 0.001,
704     9 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001,
705     9 0.001, 0.001, 0.001, 0.001,
706     1 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001,
707     1 0.001, 0.001, 0.001, 0.001
708     & /
709    
710    
711     DATA VGGR
712     1 /0.905, 0.905, 0.905, 0.905, 0.905, 0.905, 0.905, 0.905,
713     1 0.905, 0.905, 0.905, 0.905,
714     2 0.026, 0.026, 0.415, 0.759, 0.888, 0.925, 0.836, 0.697,
715     2 0.331, 0.166, 0.015, 0.026,
716     3 0.913, 0.917, 0.923, 0.925, 0.927, 0.905, 0.902, 0.913,
717     3 0.898, 0.855, 0.873, 0.913,
718     4 0.568, 0.622, 0.664, 0.697, 0.810, 0.908, 0.813, 0.394,
719     4 0.443, 0.543, 0.553, 0.498,
720     5 0.798, 0.532, 0.362, 0.568, 0.568, 0.568, 0.568, 0.868,
721     5 0.651, 0.515, 0.630, 0.798,
722     6 0.451, 0.451, 0.451, 0.451, 0.451, 0.622, 0.920, 0.697,
723     6 0.076, 0.451, 0.451, 0.451,
724     7 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001,
725     7 0.001, 0.001, 0.001, 0.001,
726     8 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001,
727     8 0.001, 0.001, 0.001, 0.001,
728     9 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001,
729     9 0.001, 0.001, 0.001, 0.001,
730     1 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001, 0.001,
731     1 0.001, 0.001, 0.001, 0.001
732     & /
733    
734    
735     MIDMON = DAYS(IMON)/2 + 1
736    
737    
738     IF (IDAY .LT. MIDMON) THEN
739     K2 = IMON
740     K1 = MOD(IMON+10,12) + 1
741     ELSE
742     K1 = IMON
743     K2 = MOD(IMON,12) + 1
744     ENDIF
745    
746     IF (IDAY .LT. MIDMON) THEN
747     MIDM = DAYS(K1)/2 + 1
748     MIDP = DAYS(K1) + MIDMON
749     ID = IDAY + DAYS(K1)
750     ELSE
751     MIDM = MIDMON
752     MIDP = DAYS(K2)/2 + 1 + DAYS(K1)
753     ID = IDAY
754     ENDIF
755    
756     FAC = (REAL(ID -MIDM)*DAYLEN + SEC) /
757     * (REAL(MIDP-MIDM)*DAYLEN )
758    
759     DO 220 I=1,NCHPS
760    
761     IF(ALAT(I).GT.0.) THEN
762     KK1 = K1
763     KK2 = K2
764     ELSE
765     KK1 = MOD(K1+5,12) + 1
766     KK2 = MOD(K2+5,12) + 1
767     ENDIF
768    
769     ALAI(I) = VGLA(KK2,ITYP(I))*FAC + VGLA(KK1,ITYP(I))*(ONE-FAC)
770     AGRN(I) = VGGR(KK2,ITYP(I))*FAC + VGGR(KK1,ITYP(I))*(ONE-FAC)
771    
772     220 CONTINUE
773    
774     RETURN
775     END
776    
777     subroutine getalb(sec,month,day,cosz,snodep,fraci,fracg,
778     1 im,jm,nchp,nchpland,igrd,ityp,chfr,chlt,
779     2 alai,agrn,albvr,albvf,albnr,albnf)
780     C***********************************************************************
781     C PURPOSE
782     C To act as an interface to routine sibalb, which calculates
783     C the four albedos for use by the shortwave radiation routine
784     C
785     C INPUT:
786     C sec - number of seconds into the day of current time
787     C month - month of the year of current time
788     C day - day of the month of current time
789     C cosz - local cosine of the zenith angle [im,jm]
790     C snodep - snow cover in meters [nchp]
791     C fraci - real array in grid space of total sea ice fraction [im,jm]
792     C fracg - real array in grid space of total land fraction [im,jm]
793     C im - model grid longitude dimension
794     C jm - model grid latitude dimension (number of lat. points)
795     C nchp - integer actual number of tiles in tile space
796     C nchpland - integer number of land tiles
797     C igrd - integer array in tile space of grid point number for each
798     C tile [nchp]
799     C ityp - integer array in tile space of land surface type for each
800     C tile [nchp]
801     C chfr - real array in tile space of land surface type fraction for
802     C each tile [nchp]
803     C chlt - real array in tile space of latitude value for each tile
804     C [nchp]
805     C
806     C OUTPUT:
807     C albvr - real array [im,jm] of visible direct beam albedo
808     C albvf - real array [im,jm] of visible diffuse beam albedo
809     C albnr - real array [im,jm] of near-ir direct beam albedo
810     C albnf - real array [im,jm] of near-ir diffuse beam albedo
811     C
812     C***********************************************************************
813     implicit none
814     real one,a0,a1,a2,a3,ocnalb,albsi
815     PARAMETER (one = 1.)
816     PARAMETER (A0= 0.40670980)
817     PARAMETER (A1=-1.2523634 )
818     PARAMETER (A2= 1.4224051 )
819     PARAMETER (A3=-0.55573341)
820     PARAMETER (OCNALB=0.08)
821     ccc PARAMETER (ALBSI=0.6)
822     PARAMETER (ALBSI=0.7) ! Increased to GEOS-1 Value (0.7) L.Takacs 4/2/96
823    
824     integer sec,month,day,im,jm,nchp,nchpland
825     real cosz(im,jm),fraci(im,jm),fracg(im,jm)
826     real snodep(nchp),chfr(nchp),chlt(nchp)
827     integer igrd(nchp),ityp(nchp)
828     real albvr(im,jm),albvf(im,jm),albnr(im,jm)
829     real albnf(im,jm)
830    
831     real alboc(im,jm)
832     real AVISDR(nchp),ANIRDR(nchp),AVISDF(nchp)
833     real ANIRDF(nchp),zenith(nchp)
834     real alai(nchp),agrn(nchp)
835     integer i,j
836    
837     DO I=1,IM
838     DO J=1,JM
839     ALBOC(I,J) = A0 + (A1 + (A2 + A3*cosz(I,J))*cosz(I,J))*cosz(I,J)
840     ALBVR(I,J) = ALBSI * FRACI(I,J) + ALBOC(I,J) * (ONE-FRACI(I,J))
841     ALBNR(I,J) = ALBVR(I,J)
842     ALBVF(I,J) = ALBSI * FRACI(I,J) + OCNALB * (ONE-FRACI(I,J))
843     ALBNF(I,J) = ALBVF(I,J)
844     ENDDO
845     ENDDO
846    
847    
848     C and now some conversions from grid space to tile space before sibalb
849    
850     call grd2msc(cosz,im,jm,igrd,zenith,nchp,nchpland)
851    
852     C and now call sibalb
853    
854     call sibalb(avisdr,anirdr,avisdf,anirdf,alai,agrn,zenith,
855     1 snodep,ityp,nchpland)
856    
857     C finally some transformations back to grid space for albedos
858    
859     call msc2grd(igrd,chfr,avisdr,nchp,nchpland,fracg,albvr,im,jm)
860     call msc2grd(igrd,chfr,avisdf,nchp,nchpland,fracg,albvf,im,jm)
861     call msc2grd(igrd,chfr,anirdr,nchp,nchpland,fracg,albnr,im,jm)
862     call msc2grd(igrd,chfr,anirdf,nchp,nchpland,fracg,albnf,im,jm)
863    
864     return
865     end
866    
867     subroutine getemiss (fracg,im,jm,nchp,igrd,ityp,chfr,snowdep,fraci,emiss)
868     C***********************************************************************
869     C PURPOSE
870     C To act as an interface to routine to emissivity, which calculates
871     C ten bands of surface emissivities for use by the longwave radiation
872     C
873     C INPUT:
874     C fracg - real array in grid space of total land fraction [im,jm]
875     C im - model grid longitude dimension
876     C jm - model grid latitude dimension (number of lat. points)
877     C nchp - integer actual number of tiles in tile space
878     C igrd - integer array in tile space of grid point number for each
879     C tile [nchp]
880     C ityp - integer array in tile space of land surface type for each
881     C tile [nchp]
882     C chfr - real array in tile space of land surface type fraction for
883     C each tile [nchp]
884     C snowdep - real array in tile space of snow depth (liquid water equiv)
885     C in mm [nchp]
886     C fraci - real array in tile space of sea ice fraction [nchp]
887     C
888     C OUTPUT:
889     C emiss - real array [im,jm,10] of surface emissivities (fraction)
890     C
891     C***********************************************************************
892     implicit none
893     integer im,jm,nchp
894     real fracg(im,jm)
895     real chfr(nchp)
896     integer igrd(nchp), ityp(nchp)
897     real snowdep(nchp),fraci(nchp)
898     real emiss(im,jm,10)
899    
900     real emisstile(nchp,10)
901     integer i,n
902    
903     do i = 1,10
904     do n = 1,nchp
905     emisstile(n,i) = 1.
906     enddo
907     enddo
908    
909     c call emissivity to get values in tile space
910     c -------------------------------------------
911     call emissivity (snowdep,fraci,nchp,ityp,emisstile)
912    
913     c transform back to grid space for emissivities
914     c ---------------------------------------------
915     do i = 1,10
916     emiss(:,:,i) = 0.0
917     call msc2grd (igrd,chfr,emisstile(1,i),nchp,nchp,fracg,emiss(1,1,i),im,jm)
918     enddo
919    
920     return
921     end
922    
923     subroutine emissivity (snowdepth,fraci,numpts,ityp,newemis)
924     implicit none
925     integer numpts
926     integer ityp(numpts)
927     real snowdepth(numpts),fraci(numpts)
928     real newemis(numpts,10)
929    
930     real emis(12,11)
931     real snwmid(10)
932     real fac
933     integer i,j
934    
935     c-----------------------------------------------------------------------
936     c NOTE: Emissivities were obtained for the following surface types:
937     c ( 1) evergreen needleleaf = conifer
938     c ( 2) evergreen broadleaf = conifer
939     c ( 3) deciduous needleleaf = deciduous
940     c ( 4) deciduous broadleaf = deciduous
941     c ( 5) mixed forests = 1/2 conifer + 1/2 deciduous = tree
942     c ( 6) closed shrublands = 3/4 tree + 1/4 quartz
943     c ( 7) open shrubland = 1/4 tree + 3/4 quartz
944     c ( 8) woody savannas = grass
945     c ( 9) savannas = grass
946     c (10) grasslands = grass
947     c (11) permanent wetlands = 1/2 grass + 1/2 water
948     c (12) croplands = grass
949     c (13) urban = black body
950     c (14) mosaic = 1/2 grass + 1/2 mixed forest
951     c (15) snow/ice
952     c (16) barren/sparsely vegetated = desert(quartz)
953     c (17) water
954     c (18) tundra = frost
955     c
956     c NOTE: Translation to Koster-Suarez surface types was as follows:
957     c ( 1) broadleaf evergreen FROM above type 1 (conifer)
958     c ( 2) broadleaf deciduous FROM above type 2 (deciduous)
959     c ( 3) needleleaf evergreen FROM above type 1 (conifer)
960     c ( 4) groundcover FROM above type 10 (grass)
961     c ( 5) broadleaf shrubs FROM above type 6 (closed shrublands)
962     c ( 6) dwarf trees (tundra) FROM above type 18 (tundra)
963     c ( 7) bare soil FROM above type 16 (desert)
964     c ( 8) light desert FROM above type 16 (desert)
965     c ( 9) glacier FROM above type 15 (snow/ice)
966     c ( 10) dark desert FROM above type 16 (desert)
967     c (100) ocean FROM above type 17 (water)
968     c
969     c NOTE: snow-covered ground uses interpolated emissivities based on snow depth
970     c =============================================================================
971     c -----------------------------------------------------------------------------
972     c Emmissivities for 12 bands in Fu/Liou
973     c band 1: 4.5 - 5.3 um
974     c band 2: 5.3 - 5.9 um
975     c band 3: 5.9 - 7.1 um
976     c band 4: 7.1 - 8.0 um
977     c band 5: 8.0 - 9.1 um
978     c band 6: 9.1 - 10.2 um
979     c band 7: 10.2 - 12.5 um
980     c band 8: 12.5 - 14.9 um
981     c band 9: 14.9 - 18.5 um
982     c band 10: 18.5 - 25.0 um
983     c band 11: 25.0 - 35.7 um
984     c band 12: 35.7 - oo um
985     c
986     c-------------------------------------------------------------------------
987     data ((emis(i,j),i=1,12),j=1,11) /
988     & 0.9891, 0.9892, 0.9900, 0.9914, 0.9908, 0.9903, ! evergreen needleleaf
989     & 0.9898, 0.9948, 1.0000, 1.0000, 1.0000, 1.0000,
990     & 0.9849, 0.9856, 0.9841, 0.9831, 0.9789, 0.9805, ! deciduous needleleaf
991     & 0.9733, 0.9869, 1.0000, 1.0000, 1.0000, 1.0000,
992     & 0.9891, 0.9892, 0.9900, 0.9914, 0.9908, 0.9903, ! evergreen needleleaf
993     & 0.9898, 0.9948, 1.0000, 1.0000, 1.0000, 1.0000,
994     & 0.9867, 0.9897, 0.9920, 0.9933, 0.9830, 0.9752, ! grasslands
995     & 0.9853, 0.9928, 1.0000, 1.0000, 1.0000, 1.0000,
996     & 0.9490, 0.9697, 0.9738, 0.9712, 0.9474, 0.9582, ! closed shrublands
997     & 0.9663, 0.9747, 0.9836, 0.9836, 0.9836, 0.9836,
998     & 0.9469, 0.9670, 0.9883, 0.9795, 0.9751, 0.9767, ! tundra
999     & 0.9920, 0.9888, 0.9888, 0.9888, 0.9888, 0.9888,
1000     & 0.8353, 0.9163, 0.9342, 0.9229, 0.8354, 0.8766, ! barren
1001     & 0.9210, 0.9262, 0.9345, 0.9345, 0.9345, 0.9345,
1002     & 0.8353, 0.9163, 0.9342, 0.9229, 0.8354, 0.8766, ! barren
1003     & 0.9210, 0.9262, 0.9345, 0.9345, 0.9345, 0.9345,
1004     & 0.9998, 0.9998, 0.9998, 0.9998, 0.9998, 0.9999, ! snow/ice
1005     & 0.9997, 0.9994, 0.9995, 0.9995, 0.9995, 0.9995,
1006     & 0.8353, 0.9163, 0.9342, 0.9229, 0.8354, 0.8766, ! barren
1007     & 0.9210, 0.9262, 0.9345, 0.9345, 0.9345, 0.9345,
1008     & 0.9788, 0.9833, 0.9819, 0.9820, 0.9835, 0.9865, ! water
1009     & 0.9886, 0.9719, 0.9719, 0.9719, 0.9719, 0.9719/
1010    
1011     include 'snwmid.h'
1012    
1013     c Convert to the 10 bands needed by Chou Radiation
1014     c ------------------------------------------------
1015     do i=1,numpts
1016    
1017     c land points
1018     c------------
1019     if(ityp(i).le.10)then
1020     newemis(i, 1) = (emis( 1,ityp(i))+emis(2,ityp(i)))/2.
1021     newemis(i, 2) = (emis( 2,ityp(i))+emis(3,ityp(i)))/2.
1022     newemis(i, 3) = (emis( 4,ityp(i))+emis(5,ityp(i)))/2.
1023     newemis(i, 4) = emis( 6,ityp(i))
1024     newemis(i, 5) = emis( 7,ityp(i))
1025     newemis(i, 6) = emis( 8,ityp(i))
1026     newemis(i, 7) = emis( 9,ityp(i))
1027     newemis(i, 8) = (emis(10,ityp(i))+emis(11,ityp(i)))/2.
1028     newemis(i, 9) = emis(12,ityp(i))
1029     newemis(i,10) = emis( 4,ityp(i))
1030    
1031     c modify emissivity for snow based on snow depth (like albedo)
1032     c-------------------------------------------------------------
1033     if(snowdepth (i).gt.0.) then
1034     fac = snowdepth(i) / (snowdepth(i) + snwmid(ityp(i)))
1035     newemis(i, 1) = newemis(i, 1) + (((emis( 1,9)+emis( 2,9))/2.) - newemis(i, 1)) * fac
1036     newemis(i, 2) = newemis(i, 2) + (((emis( 2,9)+emis( 3,9))/2.) - newemis(i, 2)) * fac
1037     newemis(i, 3) = newemis(i, 3) + (((emis( 4,9)+emis( 5,9))/2.) - newemis(i, 3)) * fac
1038     newemis(i, 4) = newemis(i, 4) + (emis( 6,9) - newemis(i, 4)) * fac
1039     newemis(i, 5) = newemis(i, 5) + (emis( 7,9) - newemis(i, 5)) * fac
1040     newemis(i, 6) = newemis(i, 6) + (emis( 8,9) - newemis(i, 6)) * fac
1041     newemis(i, 7) = newemis(i, 7) + (emis( 9,9) - newemis(i, 7)) * fac
1042     newemis(i, 8) = newemis(i, 8) + (((emis(10,9)+emis(11,9))/2.) - newemis(i, 8)) * fac
1043     newemis(i, 9) = newemis(i, 9) + (emis(12,9) - newemis(i, 9)) * fac
1044     newemis(i,10) = newemis(i,10) + (emis( 4,9) - newemis(i,10)) * fac
1045     endif
1046    
1047     c open water
1048     c-----------
1049     else
1050     if(fraci(i).eq.0.)then
1051     newemis(i, 1) = (emis( 1,11)+emis(2,11))/2.
1052     newemis(i, 2) = (emis( 2,11)+emis(3,11))/2.
1053     newemis(i, 3) = (emis( 4,11)+emis(5,11))/2.
1054     newemis(i, 4) = emis( 6,11)
1055     newemis(i, 5) = emis( 7,11)
1056     newemis(i, 6) = emis( 8,11)
1057     newemis(i, 7) = emis( 9,11)
1058     newemis(i, 8) = (emis(10,11)+emis(11,11))/2.
1059     newemis(i, 9) = emis(12,11)
1060     newemis(i,10) = emis( 4,11)
1061    
1062     c sea ice (like glacier and snow)
1063     c--------------------------------
1064     else
1065     newemis(i, 1) = (emis( 1,9)+emis(2,9))/2.
1066     newemis(i, 2) = (emis( 2,9)+emis(3,9))/2.
1067     newemis(i, 3) = (emis( 4,9)+emis(5,9))/2.
1068     newemis(i, 4) = emis( 6,9)
1069     newemis(i, 5) = emis( 7,9)
1070     newemis(i, 6) = emis( 8,9)
1071     newemis(i, 7) = emis( 9,9)
1072     newemis(i, 8) = (emis(10,9)+emis(11,9))/2.
1073     newemis(i, 9) = emis(12,9)
1074     newemis(i,10) = emis( 4,9)
1075     endif
1076     endif
1077     enddo
1078    
1079     return
1080     end

  ViewVC Help
Powered by ViewVC 1.1.22