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

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

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


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

1 C $Header: /u/gcmpack/MITgcm/pkg/fizhi/update_earth_exports.F,v 1.2 2004/06/07 18:11:38 molod Exp $
2 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: 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 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 #include "fizhi_land_SIZE.h"
20 #include "fizhi_SIZE.h"
21 #include "fizhi_coms.h"
22 #include "gridalt_mapping.h"
23 #include "fizhi_land_coms.h"
24 #include "fizhi_earth_coms.h"
25 #include "EEPARAMS.h"
26
27 integer myTime, myIter, myThid
28
29 real lats(sNx,sNy), lons(sNx,sNy), cosz(sNx,sNy)
30 integer i, j, L, bi, bj
31 integer im1, im2, jm1, jm2, idim1, idim2, jdim1, jdim2
32 integer sec, day, month
33 integer nmonf,ndayf
34 nmonf(n) = mod(n,10000)/100
35 ndayf(n) = mod(n,100)
36
37 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 month = nmonf(nymd)
46 day = ndayf(nymd)
47 sec = nsecf(nhms)
48
49 do bj = myByLo(myThid), myByHi(myThid)
50 do bi = myBxLo(myThid), myBxHi(myThid)
51 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
58 C***********************************************************************
59 C* Get Leaf-Area-Index and Greenness Index *
60 C***********************************************************************
61
62 if( alarm('turb') .or. alarm('radsw') ) then
63 call getlgr (sec,month,day,chlt,ityp,nchpland,alai,agrn )
64 endif
65
66 C **********************************************************************
67 C Compute Surface Albedo
68 C **********************************************************************
69
70 if( alarm('radsw') ) then
71 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 endif
76
77
78 C **********************************************************************
79 C Compute Surface Emissivity
80 C **********************************************************************
81
82 if( alarm('radlw') ) then
83 call grd2msc ( fraci,im,jm,igrd,ficetile,nchp,nchp )
84 call getemiss ( fracl,im,jm,nchp,igrd,ityp,chfr,snodep,ficetile,
85 . emiss )
86 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 if(fracl(i,j).lt.0.3.and.sea_ice(i,j).eq.0.0)tgz(i,j) = sst(i,j)
96 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