/[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.4 - (hide annotations) (download)
Wed Jun 9 18:35:31 2004 UTC (19 years, 11 months ago) by molod
Branch: MAIN
Changes since 1.3: +0 -0 lines
Initialising stuff for fizhi

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

  ViewVC Help
Powered by ViewVC 1.1.22