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

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

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

revision 1.2 by molod, Mon Jun 7 18:11:38 2004 UTC revision 1.3 by molod, Wed Jun 9 16:46:31 2004 UTC
# Line 6  c--------------------------------------- Line 6  c---------------------------------------
6  c  Subroutine update_earth_exports - 'Wrapper' routine to update  c  Subroutine update_earth_exports - 'Wrapper' routine to update
7  c        the fields related to the earth's surface that are needed  c        the fields related to the earth's surface that are needed
8  c        by fizhi.  c        by fizhi.
 c        Also: Set up "bi, bj loop" and some timers and clocks here.  
9  c  c
10  c Call:  getalb    (Set the 4 albedos based on veg type and time)  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  c        getemiss  (Set the surface emissivity based on the veg type
# Line 20  c--------------------------------------- Line 19  c---------------------------------------
19  #include "GRID.h"  #include "GRID.h"
20  #include "fizhi_land_SIZE.h"  #include "fizhi_land_SIZE.h"
21  #include "fizhi_SIZE.h"  #include "fizhi_SIZE.h"
 #include "DYNVARS.h"  
22  #include "fizhi_coms.h"  #include "fizhi_coms.h"
23  #include "gridalt_mapping.h"  #include "gridalt_mapping.h"
24  #include "fizhi_land_coms.h"  #include "fizhi_land_coms.h"
25  #include "EEPARAMS.h"  #include "EEPARAMS.h"
26    
27         integer myTime, myIter, myThid        integer myTime, myIter, myThid
28    
29         integer i, j, L, bi, bj        integer i, j, L, bi, bj
30         integer im1, im2, jm1, jm2, idim1, idim2, jdim1, jdim2        integer im1, im2, jm1, jm2, idim1, idim2, jdim1, jdim2
31    
32         im1 = 1-OLx        idim1 = 1-OLx
33         im2 = sNx+OLx        idim2 = sNx+OLx
34         jm1 = 1-OLy        jdim1 = 1-OLy
35         jm2 = sNy+OLy        jdim2 = sNy+OLy
36         idim1 = 1        im1 = 1
37         idim2 = sNx        im2 = sNx
38         jdim1 = 1        jm1 = 1
39         jdim2 = sNy        jm2 = sNy
40    
41         do bj = myByLo(myThid), myByHi(myThid)        do bj = myByLo(myThid), myByHi(myThid)
42         do bi = myBxLo(myThid), myBxHi(myThid)        do bi = myBxLo(myThid), myBxHi(myThid)
43    
        enddo  
        enddo  
44    
45         return  C***********************************************************************
46         end  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

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

  ViewVC Help
Powered by ViewVC 1.1.22