source: branches/2016/dev_v3.20_2016_gravity_drainage/SOURCES/source_3.20/ice_rad.f @ 8

Last change on this file since 8 was 4, checked in by vancop, 8 years ago

initial import /Users/ioulianikolskaia/Boulot/CODES/LIM1D/ARCHIVE/TMP/LIM1D_v3.20/

File size: 20.0 KB
Line 
1      SUBROUTINE ice_rad(nlay_s,nlay_i,kideb,kiut)
2
3!=============================================================================!
4!
5!     ice_rad :
6!
7!     Transmission / absorption of radiation
8!     through the snow-ice system
9!
10!     (c) v1.0 Martouf, UCL-ASTR, June 2007. Nadal Federer 1 set partout
11!         v2.0 Oct 2011: clarification of snow and the SSL.
12!                        Les diables n'y sont pas
13!
14!     Practically, downwelling radiation decreases exponentially
15!     through the snow-ice surface, except near the surface
16!     The uppermost portion of the snow is highly scattering (Perovich,
17!     J. Glaciol., 2007). For sea ice, if melt has occured, a
18!     a highly scattering layer is formed near the surface (Light et
19!     al., JGR 2008). This layer is referred to as "Surface Scattering Layer" (SSL)
20!
21!     We assume that the surface layer, both in snow and ice, absorbs
22!     all near infrared radiation, so that the remaining radiation is
23!     only in the visible part of the SW spectrum.
24!
25!     Here, snow and sea ice are represented as a highly-scattering
26!     surface layer (thickness h_not_s / h_not_i) and a deeper layer
27!
28!     The surface layer has radiative properties zrad_kappa_i_su_x,
29!     zrad_kappa_s_su_x,
30!     Depth has radiative properties zrad_kappa_s_de_x,
31!     zrad_kappa_i_de_x
32!
33!     Algae and detritus also absorb radiation
34!
35!     If sea ice is snow covered the SSL has a depth equal to zero
36!
37!     2 schemes for the SSL are used
38!     ... more ...
39!
40!     2 discretizations for radiative transfer are coded
41!     ... more ...
42!
43!=============================================================================!
44!
45
46      USE lib_fortran
47
48      INCLUDE 'type.com'
49      INCLUDE 'para.com'
50      INCLUDE 'const.com'
51      INCLUDE 'ice.com'
52      INCLUDE 'thermo.com'
53      INCLUDE 'bio.com'
54
55!-----------------------------------------------------------------------------!
56
57! Local variables
58      REAL(8), DIMENSION(maxnlay) :: 
59     &   zkappa_alg , !: extinction coefficient for algae
60     &   zkappa_det   !: extinction coefficient for detritus
61
62      LOGICAL :: ln_write
63
64      zeps = 1.0e-20
65
66      ln_write = .FALSE.
67!==============================================================================!
68 
69      WRITE(numout,*)
70      WRITE(numout,*) ' ** ice_rad : '
71      WRITE(numout,*) ' ~~~~~~~~~~~~ '
72      WRITE(numout,*) ' c_rad_scheme : ', c_rad_scheme
73      WRITE(numout,*) ' c_rad_discr  : ', c_rad_discr
74      WRITE(numout,*) ' h_not_s: ', h_not_s
75      WRITE(numout,*) ' h_not_i: ', h_not_i
76
77      WRITE(numout,*)
78
79      DO ji = kideb, kiut
80!
81!------------------------------------------------------------------------------!
82!  1) Surface transmission parameter                                           !
83!------------------------------------------------------------------------------!
84!
85      IF ( ln_write ) THEN
86         WRITE(numout,*)
87         WRITE(numout,*) ' Surface transmission parameter '
88         WRITE(numout,*) ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ '
89      ENDIF
90
91      !--------------------------------
92      ! Snow and surface melt switches
93      !--------------------------------
94      ! Is there snow or not ?
95      isnow   = INT( 1.0 - MAX( 0.0 , SIGN( 1.0d0 , - ht_s_b(ji) ) ) )
96
97      IF ( ln_write ) THEN
98         WRITE(numout,*) ' Test isnow ', ji
99         WRITE(numout,*) ' ht_s_b : ', ht_s_b(ji)
100         WRITE(numout,*) ' SIGN   : ', SIGN( 1.0d0 , - ht_s_b(ji) )
101         WRITE(numout,*) ' MAX    : ', MAX( 0.0 , 
102     &                                 SIGN( 1.0d0 , - ht_s_b(ji) ) )
103         WRITE(numout,*) ' ARG    : ', 1.0 - MAX( 0.0 , SIGN( 1.0d0 , 
104     &                                 - ht_s_b(ji) ) )
105      ENDIF
106
107      ! Melting or not
108      imelt_su = INT( MAX( 0.0 , SIGN( 1.0d0 , t_su_b(ji)-tpw) ) )  ! 1 if surface melt
109      imelt_sn = INT( MAX( 0.0 , SIGN( 1.0d0 , t_s_b(ji,1)-tpw) ) ) ! 1 if snow melts
110      imelt = 0
111      IF ( ( imelt_su .EQ. 1 ) .OR. ( imelt_sn .EQ. 1 ) ) imelt = 1
112
113      !-----------------------------------
114      ! Surface transmissivity i_o (inot)
115      !-----------------------------------
116      IF ( c_rad_scheme .EQ. 'INOT' ) THEN
117         z_inot_vis_snow = rad_inot_s_dry * ( 1.0 - imelt ) +
118     &                     rad_inot_s_wet * imelt
119         z_inot_vis_ice  = rad_inot_i_dry * ( 1.0 - imelt ) +
120     &                     rad_inot_i_wet * imelt
121         z_inot_vis = isnow * z_inot_vis_snow + 
122     &                ( 1.0 - isnow ) * z_inot_vis_ice
123!        z_inot_vis = isnow * rad_inot_s + ( 1.0 - isnow ) * rad_inot_i
124         z_inot     = z_inot_vis * fpar_fsw
125      ENDIF
126      IF ( c_rad_scheme .EQ. 'EXTC' ) THEN
127         z_inot = 1.0
128      ENDIF
129      ab(ji) = 1.0 - z_inot ! used in other routines
130
131      !-------------------------------------------
132      ! Solar radiation transmitted below the SSL
133      !-------------------------------------------
134      ftrice      =  fsolgb(ji) * ( 1.0 - ab(ji) )
135
136      IF ( ln_write ) THEN
137         WRITE(numout,*) ' isnow : ', isnow
138         WRITE(numout,*) ' imelt : ', imelt
139         WRITE(numout,*) ' z_inot: ', z_inot
140         WRITE(numout,*) ' ab    : ', ab(ji)
141         WRITE(numout,*) ' ftrice : ', ftrice
142      ENDIF
143!
144!------------------------------------------------------------------------------!
145!  2) Extinction coefficients
146!------------------------------------------------------------------------------!
147!
148      IF ( ln_write ) THEN
149         WRITE(numout,*)
150         WRITE(numout,*) ' Extinction coefficients '
151         WRITE(numout,*) ' ~~~~~~~~~~~~~~~~~~~~~~~~~'
152         WRITE(numout,*)
153      ENDIF
154
155      zmurad = 0.656 ! angle factor
156      zchla = 0.0    ! temporary value of chla in mg/m-3
157
158      ! Chlorophyll a interpolation
159      IF ( c_bio_model .EQ. 'KRILL' ) THEN
160         CALL ice_bio_interp_bio2phy(kideb,kiut,nlay_i,.FALSE.)
161      ELSE
162         DO layer = 1, nlay_bio
163            chla_i(layer) = 0.0
164         END DO
165      ENDIF
166
167      IF ( ln_write ) THEN
168         WRITE(numout,*) ' chla_i : ', 
169     &                   ( chla_i(layer), layer = 1, nlay_i )
170         WRITE(numout,*)
171      ENDIF
172
173      ! chlorophyll and detritus extinction coefficients
174      DO layer = 1, nlay_i
175         zchla = chla_i(layer)
176         zkappa_alg(layer) = zchla * astar_alg / zmurad
177         zkappa_det(layer) = zkappa_alg(layer) * fdet_alg
178      END DO
179
180      ! snow and ice extinction coefficients
181      IF ( c_rad_scheme .EQ. 'INOT' ) THEN
182         zrad_kappa_s_su = 0.0
183         zrad_kappa_i_su = 0.0
184      ENDIF
185      IF ( c_rad_scheme .EQ. 'EXTC' ) THEN
186         zrad_kappa_s_su = ( 1 - imelt ) * rad_kappa_s_su_d +
187     &                     imelt * rad_kappa_s_su_m
188         zrad_kappa_i_su = ( 1 - imelt ) * rad_kappa_i_su_d + 
189     &                     imelt * rad_kappa_i_su_m
190      ENDIF
191
192      ! deep snow extinction coefficient
193      zrad_kappa_s_de = ( 1 - imelt ) * rad_kappa_s_de_d +
194     &                  imelt * rad_kappa_s_de_m
195
196      ! deep ice extinction coefficient
197      zrad_kappa_i_de = ( 1 - imelt ) * rad_kappa_i_de_d +
198     &                  imelt * rad_kappa_i_de_m
199
200      IF ( ln_write ) THEN
201         WRITE(numout,*) ' zrad_kappa_s_su : ', zrad_kappa_s_su
202         WRITE(numout,*) ' zrad_kappa_s_de : ', zrad_kappa_s_de
203         WRITE(numout,*) ' zrad_kappa_i_de : ', zrad_kappa_i_de
204         WRITE(numout,*) ' zrad_kappa_i_su : ', zrad_kappa_i_su
205
206         WRITE(numout,*) ' zkappa_alg : ', ( zkappa_alg(layer), 
207     &                   layer = 1, nlay_i )
208         WRITE(numout,*) ' zkappa_det : ', ( zkappa_det(layer), 
209     &                   layer = 1, nlay_i )
210      ENDIF
211!
212!------------------------------------------------------------------------------!
213!  3) Radiation transmitted through / absorbed by snow                         !
214!------------------------------------------------------------------------------!
215!
216      IF ( ln_write ) THEN
217         WRITE(numout,*)
218         WRITE(numout,*) ' Radiation absorption in snow '
219         WRITE(numout,*) ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ '
220         WRITE(numout,*)
221      ENDIF
222
223      radtr_s(0) =  ftrice
224      zdh1   = MIN( h_not_s, ht_s_b(ji) )
225      zdh2   = MIN( MAX( ht_s_b(ji) - h_not_s, 0. ), ht_s_b(ji) )
226
227      IF ( ln_write ) THEN
228         WRITE(numout,*) ' ftrice : ', ftrice
229         WRITE(numout,*) ' zdh1   : ', zdh1
230         WRITE(numout,*) ' zdh2   : ', zdh2
231      ENDIF
232
233      ! scheme based on transmission
234      ! other scheme based on transmission, more exact, the other one seems
235      ! not to work for high transmission coefficient and small SSL
236      IF ( c_rad_discr .EQ. 'TRA' ) THEN
237         zi1        = radtr_s(0) * EXP( -zrad_kappa_s_su * zdh1 )
238         radtr_s(1) = zi1 * EXP( -zrad_kappa_s_de * zdh2 )
239         radab_s(1) = radtr_s(0) - radtr_s(1)
240         IF ( ln_write) WRITE(numout,*) ' zi1    : ', zi1
241      ENDIF
242
243      ! scheme based on absorption
244      IF ( c_rad_discr  .EQ. 'ABS' ) THEN
245         zrada1 = radtr_s(0) * zdh1 * zrad_kappa_s_su * 
246     &            EXP( - zrad_kappa_s_su * zdh1 )
247         zi1    = radtr_s(0) - zrada1
248         zrada2 = zi1 * zdh2 * zrad_kappa_s_de * 
249     &            EXP( - zrad_kappa_s_de * zdh2 )
250
251         IF ( ln_write ) THEN
252            WRITE(numout,*) ' zrada1 : ', zrada1
253            WRITE(numout,*) ' zi1    : ', zi1
254            WRITE(numout,*) ' zrada2 : ', zrada2
255         ENDIF
256
257         radab_s(1) = zrada1 + zrada2
258         radtr_s(1) = radtr_s(0) - radab_s(1)
259      ENDIF
260         
261      IF ( ln_write ) THEN
262         WRITE(numout,*) ' ht_s_b : ', ht_s_b(ji)
263         WRITE(numout,*) ' radtr_s : ', 
264     &                   ( radtr_s(layer) , layer = 0, nlay_s )
265         WRITE(numout,*) ' radab_s : ', 
266     &                   ( radab_s(layer) , layer = 1, nlay_s )
267      ENDIF
268!
269!------------------------------------------------------------------------------!
270!  4) Radiation transmitted through / absorbed by ice                          !
271!------------------------------------------------------------------------------!
272!
273      IF ( ln_write ) THEN
274         WRITE(numout,*)
275         WRITE(numout,*) ' Radiation absorption in ice '
276         WRITE(numout,*) ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~ '
277         WRITE(numout,*)
278      ENDIF
279
280      ! transmitted at the upper ice layer
281      radtr_i(0) = isnow * radtr_s(nlay_s) + ( 1. - isnow ) * ftrice
282      ! thickness of surface SSL in sea ice is zero if there is no snow
283      zh_ssl = isnow * 0. + ( 1. - isnow ) * h_not_i 
284      IF ( ln_write ) THEN
285         WRITE(numout,*) ' zh_ssl : ', zh_ssl
286      ENDIF
287     
288      ! radiation absorbed physically and biologically in each layer
289      zz0 = 0.
290      zz1 = 0.
291      DO layer = 1, nlay_i
292         zz1 = zz1 + deltaz_i_phy(layer)
293
294         IF ( ln_write ) THEN
295            WRITE(numout,*) ' zz0     : ', zz0
296            WRITE(numout,*) ' zz1     : ', zz1
297         ENDIF
298
299         zdh1    = MIN ( MAX ( zh_ssl - zz0 , 0. ) , 
300     &                   deltaz_i_phy(layer) )  ! part of the ice layer belonging to the SSL
301         zdh2    = MIN ( MAX ( zz1 - zh_ssl , 0. ) , 
302     &                   deltaz_i_phy(layer) )  ! part of the ice layer belonging to the deep ice
303         zz0 = zz1
304
305         IF ( ln_write ) THEN
306            WRITE(numout,*) ' zh_ssl  : ', zh_ssl       
307            WRITE(numout,*) ' zz1-zh_ssl ',zz1 - zh_ssl 
308            WRITE(numout,*) ' deltaz_i_phy : ', deltaz_i_phy(layer)
309
310            WRITE(numout,*) ' '
311            WRITE(numout,*) ' layer : ', layer
312            WRITE(numout,*) ' zdh1  : ', zdh1
313            WRITE(numout,*) ' zdh2  : ', zdh2
314            WRITE(numout,*) ' deltaz_i_phy : ', deltaz_i_phy(layer)
315            WRITE(numout,*) ' '
316         ENDIF
317
318         ! Extinction coefficient in the SSL
319         zkappa1_phy = zrad_kappa_i_su + zkappa_det(layer)  ! physical extinction in SSL
320         zkappa1     = zkappa1_phy     + zkappa_alg(layer)  ! total extinction
321
322         ! Extinction coefficient deeper in the ice
323         zkappa2_phy = zrad_kappa_i_de + zkappa_det(layer)  ! physical extinction at depth
324         zkappa2     = zkappa2_phy     + zkappa_alg(layer)  ! total extinction at depth
325
326         IF ( ln_write ) THEN
327            WRITE(numout,*) ' zkappa1_phy : ', zkappa1_phy
328            WRITE(numout,*) ' zkappa1     : ', zkappa1
329            WRITE(numout,*) ' zkappa2_phy : ', zkappa2_phy
330            WRITE(numout,*) ' zkappa2     : ', zkappa2
331         ENDIF
332
333         !------------------------------
334         ! Scheme based on transmission
335         !------------------------------
336         IF ( c_rad_discr .EQ. 'TRA' ) THEN
337            zi1         = radtr_i(layer-1) * EXP ( -zkappa1*zdh1 )
338            WRITE(numout,*) ' Discretization : ', 'TRA'
339            WRITE(numout,*) ' zi1 : ', zi1
340            WRITE(numout,*)
341
342            ! transmitted radiation
343            radtr_i(layer) =  zi1 * EXP( -zkappa2 * zdh2 )
344            ! absorbed radiation
345            radab_i(layer) =  radtr_i(layer-1) - radtr_i(layer)
346
347            ! physically absorbed
348            radab_phy_i(layer) = radab_i(layer) * deltaz_i_phy(layer)
349     &                 * ( zkappa1_phy * zdh1 / MAX( zkappa1, zeps)
350     &                   + zkappa2_phy * zdh2 / MAX( zkappa2, zeps) )
351
352            IF ( ln_write ) THEN
353               WRITE(numout,*) ' deltaz_i_phy : ', deltaz_i_phy(layer)
354               WRITE(numout,*) ' zkappa2      : ', zkappa2
355               WRITE(numout,*) ' zkappa2_phy  : ', zkappa2_phy
356               WRITE(numout,*) ' zdh2         : ', zdh2
357               WRITE(numout,*) ' radab_i      : ', radab_i(layer)
358               WRITE(numout,*) ' zkappa1      : ', zkappa1
359               WRITE(numout,*) ' zkappa1_phy  : ', zkappa1_phy
360               WRITE(numout,*) ' zdh1         : ', zdh1
361            ENDIF
362
363            ! biologically absorbed
364            radab_alg_i(layer) = zkappa_alg(layer) * radab_i(layer) 
365     &                         / deltaz_i_phy(layer)
366     &                         * ( zdh1 / MAX ( zkappa1, zeps )
367     &                           + zdh2 / MAX ( zkappa2, zeps ) )
368
369         ENDIF
370
371         !----------------------------
372         ! Scheme based on absorption
373         !----------------------------
374         IF ( c_rad_discr .EQ. 'ABS' ) THEN
375            zdummy      = radtr_i(layer-1) * zdh1 *
376     &                    EXP( - zkappa1 * zdh1 )
377            zrada1_phy  = zkappa1_phy * zdummy                 ! physically absorbed
378            zrada1_alg  = zkappa_alg(layer) * zdummy           ! biologically absorbed
379            zrada1      = zrada1_phy + zrada1_alg              ! total absorption
380            zi1         = radtr_i(layer-1) - zrada1            ! radiance available below the SSL
381
382            IF ( ln_write) THEN
383               WRITE(numout,*) ' Discretization : ', 'ABS'
384               WRITE(numout,*) ' zi1 : ', zi1
385               WRITE(numout,*)
386               WRITE(numout,*) ' zdummy      : ', zdummy
387               WRITE(numout,*) ' zrada1_phy  : ', zrada1_phy
388               WRITE(numout,*) ' zrada1_alg  : ', zrada1_alg
389               WRITE(numout,*) ' zrada1      : ', zrada1
390            ENDIF
391
392            zdummy      = zi1 * zdh2 * EXP ( - zkappa2 * zdh2 )
393            zrada2_phy  = zkappa2_phy * zdummy                 ! physically absorbed
394            zrada2_alg  = zkappa_alg(layer) * zdummy           ! biologically absorbed
395            zrada2      = zrada2_phy + zrada2_alg              ! total absorption
396
397            IF ( ln_write) THEN
398               WRITE(numout,*) ' zdummy      : ', zdummy
399               WRITE(numout,*) ' zrada2_phy  : ', zrada2_phy
400               WRITE(numout,*) ' zrada2_alg  : ', zrada2_alg
401               WRITE(numout,*) ' zrada2      : ', zrada2
402            ENDIF
403
404            ! Cumulated absorption
405            radab_phy_i(layer) = zrada1_phy + zrada2_phy
406            radab_alg_i(layer) = zrada1_alb + zrada2_alg
407            radab_i(layer)     = radab_phy_i(layer) + radab_alg_i(layer)
408
409            ! Transmission below the layer
410            radtr_i(layer)     = radtr_i(layer-1) - radab_phy_i(layer)
411     &                                         - radab_alg_i(layer)
412         ENDIF
413
414         IF ( ln_write ) THEN
415            WRITE(numout,*) ' radab_phy_i : ', radab_phy_i(layer)
416            WRITE(numout,*) ' radab_alg_i : ', radab_alg_i(layer)
417            WRITE(numout,*) ' radab_i     : ', radab_i(layer)
418            WRITE(numout,*) ' sum of both : ', radab_phy_i(layer) 
419     &                                       + radab_alg_i(layer)
420            WRITE(numout,*) ' radtr_i     : ', radtr_i(layer)
421         ENDIF
422
423      END DO
424
425      ! radiation sent to the ocean
426      ftroce = radtr_i(nlay_i)
427       
428!
429!------------------------------------------------------------------------------!
430!  5) PAR (phy and bio grids)
431!------------------------------------------------------------------------------!
432!
433      IF ( ln_write ) THEN
434         WRITE(numout,*)
435         WRITE(numout,*) ' PAR '
436         WRITE(numout,*) ' ~~~~'
437         WRITE(numout,*)
438      ENDIF
439      ! PAR on phy grid (top of each layer)
440      ! this choice was made to minimize sensitivity to grid type at comparable resolution)
441
442      IF ( ln_write ) WRITE(numout,*) ' * physical grid ... '
443
444      WRITE(numout,*) ' qpar_fsw : ', qpar_fsw
445      WRITE(numout,*) ' fpar_fsw : ', fpar_fsw
446
447      DO layer = 1, nlay_i
448         par(layer)         = qpar_fsw / fpar_fsw * radtr_i(layer-1)
449      END DO
450
451!     ! PAR on bio grid (top of each layer)
452      IF ( ln_write ) WRITE(numout,*) ' * biological grid ... '
453
454      DO layer_bio = 1, nlay_bio
455         ! identify in which layer the upper boundary of the bio layer is
456         DO layer_phy = 1, nlay_bio
457            zzb = zb_i_bio(layer_bio-1)
458            zzf1 = zb_i_phy(layer_phy-1)
459            zzf2 = zb_i_phy(layer_phy)
460            IF ( ( zzb .GE. zzf1 ) .AND. ( zzb .LT. zzf2 ) ) 
461     &         zindex = layer_phy
462         END DO
463         zm    = ( radtr_i(zindex) - radtr_i(zindex-1) ) / 
464     &           ( zb_i_phy(zindex) - zb_i_phy(zindex-1) )
465         zdh   = zb_i_bio(layer_bio-1) - zb_i_phy(zindex-1)
466         zdrad = zm * zdh
467         par_bio(layer_bio) = radtr_i(zindex-1) + zdrad  ! at the upper interface of the layer
468
469!        IF ( ln_write ) THEN
470!           WRITE(numout,*)
471!           WRITE(numout,*) ' layer    : ', layer_bio
472!           WRITE(numout,*) ' zindex   : ', zindex
473!           WRITE(numout,*) ' zb_i_bio : ', zb_i_bio(layer_bio-1)
474!           WRITE(numout,*) ' zb_i_phy : ', zb_i_phy(zindex-1),
475!    &                                   zb_i_phy(zindex)
476!           WRITE(numout,*) ' radtr_i  : ', radtr_i(zindex-1),
477!    &                                   radtr_i(zindex)
478!           WRITE(numout,*) ' In W/m2 ... '
479!           WRITE(numout,*) ' par_bio  : ', par_bio(layer_bio)
480!        ENDIF
481
482         par_bio(layer_bio) = par_bio(layer_bio) * qpar_fsw / fpar_fsw
483
484!        IF ( ln_write ) THEN
485!           WRITE(numout,*) ' In microE/m2/s ... '
486!           WRITE(numout,*) ' par_bio  : ', par_bio(layer_bio)
487!        ENDIF
488
489      END DO
490         
491!
492!------------------------------------------------------------------------------!
493!  6) Conservation check
494!------------------------------------------------------------------------------!
495!
496      sumrad = radab_s(1)
497      DO layer = 1, nlay_i
498         sumrad = sumrad + radab_i(layer) 
499      END DO
500      WRITE(numout,*) ' Conservation check '
501      WRITE(numout,*) ' ftrice - ftroce : ', ftrice-ftroce
502      WRITE(numout,*) ' sumrad          : ', sumrad
503
504      ! Final write
505      WRITE(numout,*)
506      WRITE(numout,*) ' i0     : ', 1.0-ab(ji)
507      WRITE(numout,*) ' ftrice : ', ftrice
508      WRITE(numout,*) ' ftroce : ', ftroce
509      WRITE(numout,*) ' radtr_i : ', 
510     &                ( radtr_i(layer) , layer = 0, nlay_i )
511      WRITE(numout,*) ' radab_phy_i : ', 
512     &                ( radab_phy_i(layer) , layer = 1, nlay_i )
513      WRITE(numout,*) ' radab_alg_i : ', 
514     &                ( radab_alg_i(layer) , layer = 1, nlay_i )
515      WRITE(numout,*) ' par     : ', ( par(layer), layer = 1, nlay_i )
516      WRITE(numout,*) ' par_bio : ', ( par_bio(layer), 
517     &                                 layer = 1, nlay_bio )
518
519
520      WRITE(numout,*)
521      WRITE(numout,*) ' End of ice_rad '
522      WRITE(numout,*) '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
523
524      END DO !ji
525
526!==============================================================================!
527! end of the subroutine
528
529      END SUBROUTINE
Note: See TracBrowser for help on using the repository browser.