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

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: 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 #include "fizhi_land_SIZE.h"
21 #include "fizhi_SIZE.h"
22 #include "fizhi_coms.h"
23 #include "gridalt_mapping.h"
24 #include "fizhi_land_coms.h"
25 #include "EEPARAMS.h"
26
27 integer myTime, myIter, myThid
28
29 integer i, j, L, bi, bj
30 integer im1, im2, jm1, jm2, idim1, idim2, jdim1, jdim2
31
32 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
41 do bj = myByLo(myThid), myByHi(myThid)
42 do bi = myBxLo(myThid), myBxHi(myThid)
43
44
45 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