New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
albedo.F90 in branches/2016/dev_r6859_LIM3_meltponds/NEMOGCM/NEMO/OPA_SRC/SBC – NEMO

source: branches/2016/dev_r6859_LIM3_meltponds/NEMOGCM/NEMO/OPA_SRC/SBC/albedo.F90 @ 8179

Last change on this file since 8179 was 8179, checked in by vancop, 7 years ago

Replace total snow flux by snow meltwater flux

  • Property svn:keywords set to Id
File size: 21.6 KB
Line 
1MODULE albedo
2   !!======================================================================
3   !!                       ***  MODULE  albedo  ***
4   !! Ocean forcing:  bulk thermohaline forcing of the ocean (or ice)
5   !!=====================================================================
6   !! History :  8.0  ! 2001-04  (LIM 1.0)
7   !!   NEMO     1.0  ! 2003-07  (C. Ethe, G. Madec)  Optimization (old name:shine)
8   !!             -   ! 2004-11  (C. Talandier)  add albedo_init
9   !!             -   ! 2006-06  (M. Vancoppenolle) LIM 3.0
10   !!             -   ! 2006-08  (G. Madec)  cleaning for surface module
11   !!            3.6  ! 2016-01  (C. Rousset) new parameterization for sea ice albedo
12   !!            x.x  ! 2017-05  (M. Vancoppenolle, O. Lecomte) Melt ponds
13   !!----------------------------------------------------------------------
14
15   !!----------------------------------------------------------------------
16   !!   albedo_ice    : albedo for   ice (clear and overcast skies)
17   !!   albedo_oce    : albedo for ocean (clear and overcast skies)
18   !!   albedo_init   : initialisation of albedo computation
19   !!----------------------------------------------------------------------
20   USE phycst         ! physical constants
21   USE in_out_manager ! I/O manager
22   USE lib_mpp        ! MPP library
23   USE wrk_nemo       ! work arrays
24   USE lib_fortran    ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 
25
26   IMPLICIT NONE
27   PRIVATE
28
29   PUBLIC   albedo_ice   ! routine called sbcice_lim.F90
30   PUBLIC   albedo_oce   ! routine called by ???
31
32   INTEGER  ::   albd_init = 0      !: control flag for initialization
33 
34   REAL(wp) ::   rmue     = 0.40    !  cosine of local solar altitude
35   REAL(wp) ::   ralb_oce = 0.066   ! ocean or lead albedo (Pegau and Paulson, Ann. Glac. 2001)
36   REAL(wp) ::   c1       = 0.05    ! snow thickness (only for nn_ice_alb=0)
37   REAL(wp) ::   c2       = 0.10    !  "        "
38   REAL(wp) ::   rcloud   = 0.06    ! cloud effect on albedo (only-for nn_ice_alb=0)
39 
40   !                             !!* namelist namsbc_alb
41   INTEGER  ::   nn_ice_alb
42   REAL(wp) ::   rn_alb_sdry, rn_alb_smlt, rn_alb_idry, rn_alb_imlt, rn_alb_dpnd
43
44   !!----------------------------------------------------------------------
45   !! NEMO/OPA 3.3 , NEMO Consortium (2010)
46   !! $Id$
47   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
48   !!----------------------------------------------------------------------
49CONTAINS
50
51   SUBROUTINE albedo_ice( pt_ice, ph_ice, ph_snw, pafrac_pnd, ph_pnd, ld_pnd, pa_ice_cs, pa_ice_os )
52      !!----------------------------------------------------------------------
53      !!               ***  ROUTINE albedo_ice  ***
54      !!         
55      !! ** Purpose :   Computation of the albedo of the snow/ice system
56      !!       
57      !! ** Method  :   Two schemes are available (from namelist parameter nn_ice_alb)
58      !!                  0: the scheme is that of Shine & Henderson-Sellers (JGR 1985) for clear-skies
59      !!                  1: the scheme is "home made" (for cloudy skies) and based on Brandt et al. (J. Climate 2005)
60      !!                                                                           and Grenfell & Perovich (JGR 2004)
61      !!                  2: fractional surface-based formulation of scheme 1 (NEW)
62      !!                Description of scheme 1:
63      !!                  1) Albedo dependency on ice thickness follows the findings from Brandt et al (2005)
64      !!                     which are an update of Allison et al. (JGR 1993) ; Brandt et al. 1999
65      !!                     0-5cm  : linear function of ice thickness
66      !!                     5-150cm: log    function of ice thickness
67      !!                     > 150cm: constant
68      !!                  2) Albedo dependency on snow thickness follows the findings from Grenfell & Perovich (2004)
69      !!                     i.e. it increases as -EXP(-snw_thick/0.02) during freezing and -EXP(-snw_thick/0.03) during melting
70      !!                  3) Albedo dependency on clouds is speculated from measurements of Grenfell and Perovich (2004)
71      !!                     i.e. cloudy-clear albedo depend on cloudy albedo following a 2d order polynomial law
72      !!                  4) The needed 4 parameters are: dry and melting snow, freezing ice and bare puddled ice
73      !!
74      !! ** Note    :   The parameterization from Shine & Henderson-Sellers presents several misconstructions:
75      !!                  1) ice albedo when ice thick. tends to 0 is different than ocean albedo
76      !!                  2) for small ice thick. covered with some snow (<3cm?), albedo is larger
77      !!                     under melting conditions than under freezing conditions
78      !!                  3) the evolution of ice albedo as a function of ice thickness shows 
79      !!                     3 sharp inflexion points (at 5cm, 100cm and 150cm) that look highly unrealistic
80      !!
81      !! References :   Shine & Henderson-Sellers 1985, JGR, 90(D1), 2243-2250.
82      !!                Brandt et al. 2005, J. Climate, vol 18
83      !!                Grenfell & Perovich 2004, JGR, vol 109
84      !!
85      !!----------------------------------------------------------------------
86      !!
87      REAL(wp), INTENT(in   ), DIMENSION(:,:,:) ::   pt_ice              !  ice surface temperature (Kelvin)
88      REAL(wp), INTENT(in   ), DIMENSION(:,:,:) ::   ph_ice              !  sea-ice thickness
89      REAL(wp), INTENT(in   ), DIMENSION(:,:,:) ::   ph_snw              !  snow depth
90      REAL(wp), INTENT(in   ), DIMENSION(:,:,:) ::   pafrac_pnd          !  melt pond relative fraction (per unit ice area)
91      REAL(wp), INTENT(in   ), DIMENSION(:,:,:) ::   ph_pnd              !  melt pond depth
92      LOGICAL , INTENT(in   )                   ::   ld_pnd              !  melt ponds radiatively active or not
93      REAL(wp), INTENT(  out), DIMENSION(:,:,:) ::   pa_ice_cs           !  albedo of ice under clear    sky
94      REAL(wp), INTENT(  out), DIMENSION(:,:,:) ::   pa_ice_os           !  albedo of ice under overcast sky
95      !!
96      INTEGER  ::   ji, jj, jl                                           ! dummy loop indices
97      INTEGER  ::   ijpl                                                 ! number of ice categories (3rd dim of ice input arrays)
98      REAL(wp)                            ::   ralb_im, ralb_sf, ralb_sm, ralb_if, ralb_dp
99      REAL(wp)                            ::   zswitch, z1_c1, z1_c2
100      REAL(wp)                            ::   zhref_pnd                                 
101      REAL(wp)                            ::   zalb_sm, zalb_sf, zalb_st ! albedo of snow melting, freezing, total
102      REAL(wp), POINTER, DIMENSION(:,:,:) ::   zalb, zalb_it             ! intermediate variable & albedo of ice (snow free)
103      REAL(wp), POINTER, DIMENSION(:,:,:) ::   zalb_pnd                  ! ponded sea ice albedo
104      REAL(wp), POINTER, DIMENSION(:,:,:) ::   zalb_ice                  ! bare sea ice albedo
105      REAL(wp), POINTER, DIMENSION(:,:,:) ::   zalb_snw                  ! snow-covered sea ice albedo
106      REAL(wp), POINTER, DIMENSION(:,:,:) ::   zafrac_snw                ! relative snow fraction
107      REAL(wp), POINTER, DIMENSION(:,:,:) ::   zafrac_ice                ! relative ice fraction
108      REAL(wp), POINTER, DIMENSION(:,:,:) ::   zafrac_pnd                ! relative ice fraction (effective)
109      !!
110      !!---------------------------------------------------------------------
111
112      ijpl = SIZE( pt_ice, 3 )                     ! number of ice categories
113     
114      CALL wrk_alloc( jpi,jpj,ijpl, zalb, zalb_it )
115      CALL wrk_alloc( jpi,jpj,ijpl, zalb_pnd, zalb_ice, zalb_snw )
116      CALL wrk_alloc( jpi,jpj,ijpl, zalb_pnd, zafrac_snw, zafrac_ice, zafrac_pnd )
117
118      IF( albd_init == 0 )   CALL albedo_init      ! initialization
119
120      ralb_sf = rn_alb_sdry    ! dry snow
121      ralb_sm = rn_alb_smlt    ! melting snow
122      ralb_if = rn_alb_idry    ! bare frozen ice
123      ralb_im = rn_alb_imlt    ! bare puddled ice (assumes implicit contribution of melt ponds)
124      ralb_dp = rn_alb_dpnd    ! deep pond albedo
125
126      !-----------------------------------------------------
127      !  Snow-free albedo (no ice thickness dependence yet)
128      !-----------------------------------------------------
129      !
130      ! Part common to nn_ice_alb = 0, 1, 2
131      !
132
133      zalb = ralb_if         
134      IF ( .NOT. ld_pnd ) THEN   !--- No melt ponds OR radiatively inactive melt ponds
135
136         ! Bare ice albedo is prescribed, with implicit assumption on pond fraction and depth
137         WHERE     ( ph_snw == 0._wp .AND. pt_ice >= rt0_ice ) ;  zalb = ralb_im  ;  END WHERE 
138                                                       ! !!! MV I think we could replace rt0_ice by rt0 and get rid of rt0
139
140      ENDIF
141
142      SELECT CASE ( nn_ice_alb )
143
144      !------------------------------------------
145      !  Shine and Henderson-Sellers (1985)
146      !------------------------------------------
147      ! NB: This parameterization is based on clear sky values
148
149      CASE( 0 )
150       
151         ! Thickness-dependent bare ice albedo
152         WHERE     ( 1.5  < ph_ice                     )  ;  zalb_it = zalb
153         ELSE WHERE( 1.0  < ph_ice .AND. ph_ice <= 1.5 )  ;  zalb_it = 0.472  + 2.0 * ( zalb - 0.472 ) * ( ph_ice - 1.0 )
154         ELSE WHERE( 0.05 < ph_ice .AND. ph_ice <= 1.0 )  ;  zalb_it = 0.2467 + 0.7049 * ph_ice              &
155            &                                                                 - 0.8608 * ph_ice * ph_ice     &
156            &                                                                 + 0.3812 * ph_ice * ph_ice * ph_ice
157         ELSE WHERE                                       ;  zalb_it = 0.1    + 3.6    * ph_ice
158         END WHERE
159
160         IF ( ld_pnd ) THEN
161            ! Depth-dependent ponded ice albedo
162            zhref_pnd = 0.05        ! Characteristic length scale for thickness dependence of ponded ice albedo, Lecomte et al (2015)
163            zalb_pnd  = ralb_dp - ( ralb_dp - zalb_it ) * EXP( - ph_pnd / zhref_pnd ) 
164
165            ! Snow-free ice albedo is a function of pond fraction
166            WHERE ( ph_snw == 0._wp .AND. pt_ice >= rt0_ice )   ; zalb_it = zalb_it * ( 1. - pafrac_pnd  ) + zalb_pnd * pafrac_pnd ;   END WHERE
167         ENDIF
168
169         DO jl = 1, ijpl
170            DO jj = 1, jpj
171               DO ji = 1, jpi
172                  ! Freezing snow
173                  ! no effect of underlying ice layer IF snow thickness > c1. Albedo does not depend on snow thick if > c2
174                  !                                        !  freezing snow       
175                  zswitch   = 1._wp - MAX( 0._wp , SIGN( 1._wp , - ( ph_snw(ji,jj,jl) - c1 ) ) )
176                  zalb_sf   = ( 1._wp - zswitch ) * (  zalb_it(ji,jj,jl)  &
177                     &                           + ph_snw(ji,jj,jl) * ( ralb_sf - zalb_it(ji,jj,jl) ) / c1  )   &
178                     &        +         zswitch   * ralb_sf 
179
180                  ! Melting snow
181                  ! no effect of underlying ice layer. Albedo does not depend on snow thick IF > c2
182                  zswitch   = MAX( 0._wp , SIGN( 1._wp , ph_snw(ji,jj,jl) - c2 ) )
183                  zalb_sm = ( 1._wp - zswitch ) * ( ralb_im + ph_snw(ji,jj,jl) * ( ralb_sm - ralb_im ) / c2 )   &
184                      &     +         zswitch   *   ralb_sm 
185                   
186                  ! Snow albedo
187                  zswitch  =  MAX( 0._wp , SIGN( 1._wp , pt_ice(ji,jj,jl) - rt0_snow ) )   
188                  zalb_st  =  zswitch * zalb_sm + ( 1._wp - zswitch ) * zalb_sf
189               
190                  ! Surface albedo
191                  zswitch             = 1._wp - MAX( 0._wp , SIGN( 1._wp , - ph_snw(ji,jj,jl) ) )
192                  pa_ice_cs(ji,jj,jl) = zswitch * zalb_st + ( 1._wp - zswitch ) * zalb_it(ji,jj,jl)
193
194               END DO
195            END DO
196         END DO
197
198         pa_ice_os(:,:,:) = pa_ice_cs(:,:,:) + rcloud       ! Oberhuber correction for overcast sky
199
200      !------------------------------------------
201      !  New parameterization (2016)
202      !------------------------------------------
203      ! NB: This parameterization is based on overcast skies values
204     
205      CASE( 1 ) 
206
207!         ! Reference (overcast sky) values
208!        ralb_sf = 0.85      ! dry snow
209!        ralb_sm = 0.75      ! melting snow
210!        ralb_if = 0.60      ! bare frozen ice
211!        ralb_dp = 0.36      ! ponded-ice overcast albedo (Lecomte et al, 2015)
212!                            ! early melt pnds 0.27, late melt ponds 0.14 Grenfell & Perovich
213! Perovich et al 2002 (Sheba) => the only dataset for which all types of ice/snow were retrieved
214!         ralb_sf = 0.85       ! dry snow
215!         ralb_sm = 0.72       ! melting snow
216!         ralb_if = 0.65       ! bare frozen ice
217! Brandt et al 2005 (East Antarctica)
218!         ralb_sf = 0.87      ! dry snow
219!         ralb_sm = 0.82      ! melting snow
220!         ralb_if = 0.54      ! bare frozen ice
221!
222         ! Computation of snow-free ice albedo
223         z1_c1 = 1. / ( LOG(1.5) - LOG(0.05) ) 
224         z1_c2 = 1. / 0.05
225
226         ! Accounting for the ice-thickness dependency
227         WHERE     ( 1.5  < ph_ice                     )        ;  zalb_it = zalb
228         ELSE WHERE( 0.05 < ph_ice .AND. ph_ice <= 1.5 )        ;  zalb_it = zalb     + ( 0.18 - zalb     ) * z1_c1 *  &
229            &                                                                     ( LOG(1.5) - LOG(ph_ice) )
230         ELSE WHERE                                             ;  zalb_it = ralb_oce + ( 0.18 - ralb_oce ) * z1_c2 * ph_ice
231         END WHERE
232
233         IF ( ld_pnd ) THEN
234            ! Depth-dependent ponded ice albedo
235            zhref_pnd = 0.05        ! Characteristic length scale for thickness dependence of ponded ice albedo, Lecomte et al (2015)
236            zalb_pnd  = ralb_dp - ( ralb_dp - zalb_it ) * EXP( - ph_pnd / zhref_pnd ) 
237
238            ! Snow-free ice albedo is weighted mean of ponded ice and bare ice contributions
239            WHERE ( ph_snw == 0._wp .AND. pt_ice >= rt0_ice )   ;  zalb_it = zalb_it * ( 1. - pafrac_pnd  ) + zalb_pnd * pafrac_pnd ;  END WHERE
240         ENDIF
241
242         z1_c1 = 1. / 0.02
243         z1_c2 = 1. / 0.03
244         
245         ! Overcast sky surface albedo (accounting for snow, ice melt ponds)
246         DO jl = 1, ijpl
247            DO jj = 1, jpj
248               DO ji = 1, jpi
249
250                  ! Snow depth dependence of snow albedo
251                  zalb_sf = ralb_sf - ( ralb_sf - zalb_it(ji,jj,jl)) * EXP( - ph_snw(ji,jj,jl) * z1_c1 );
252                  zalb_sm = ralb_sm - ( ralb_sm - zalb_it(ji,jj,jl)) * EXP( - ph_snw(ji,jj,jl) * z1_c2 );
253
254                  ! Snow albedo (MV I guess we could use rt0 instead of rt0_snow)
255                  zswitch = MAX( 0._wp , SIGN( 1._wp , pt_ice(ji,jj,jl) - rt0_snow ) )   
256                  zalb_st = zswitch * zalb_sm + ( 1._wp - zswitch ) * zalb_sf
257
258                  ! Surface albedo   
259                  zswitch             = MAX( 0._wp , SIGN( 1._wp , - ph_snw(ji,jj,jl) ) )
260                  pa_ice_os(ji,jj,jl) = ( 1._wp - zswitch ) * zalb_st + zswitch *  zalb_it(ji,jj,jl) 
261
262              END DO
263            END DO
264         END DO
265
266         ! Clear sky surface albedo
267         pa_ice_cs = pa_ice_os - ( - 0.1010 * pa_ice_os * pa_ice_os + 0.1933 * pa_ice_os - 0.0148 ); 
268
269      !---------------------------------------------------
270      !  Fractional surface-based parameterization (2017)
271      !---------------------------------------------------
272      CASE( 2 ) 
273 
274      ! MV: I propose this formulation that is more elegant, and more easy to expand towards
275      !     varying pond and snow fraction.
276      !     Formulation 1 has issues to handle ponds and snow together that
277      !     can't easily be fixed. This one handles it better, I believe.
278
279          !-----------------------------------------
280          ! Snow, bare ice and ponded ice fractions
281          !-----------------------------------------
282          ! Specific fractions (zafrac) refer to relative area covered by snow within each ice category
283
284          !--- Effective pond fraction (for now, we prevent melt ponds and snow at the same time)
285          zafrac_pnd = 0._wp
286          IF ( ld_pnd ) THEN 
287             WHERE( ph_snw == 0._wp ) ;  zafrac_pnd = pafrac_pnd ;  END WHERE  ! Snow fully "shades" melt ponds
288          ENDIF         
289
290          !--- Specific snow fraction (for now, prescribed)
291          WHERE     ( ph_snw > 0._wp     ) ;  zafrac_snw = 1.
292          ELSE WHERE                       ;  zafrac_snw = 0.
293          END WHERE
294 
295          !--- Specific ice fraction
296          zafrac_ice = 1. - zafrac_snw - zafrac_pnd
297 
298          !--------------------------------------------------
299          ! Snow-covered, pond-covered, and bare ice albedos
300          !--------------------------------------------------
301          ! Bare ice albedo
302          z1_c1 = 1. / ( LOG(1.5) - LOG(0.05) ) 
303          z1_c2 = 1. / 0.05
304          WHERE     ( 1.5  < ph_ice                     )  ;  zalb_ice = zalb
305          ELSE WHERE( 0.05 < ph_ice .AND. ph_ice <= 1.5 )  ;  zalb_ice = zalb     + ( 0.18 - zalb     ) * z1_c1 *  &
306            &                                                                       ( LOG(1.5) - LOG(ph_ice) )
307          ELSE WHERE                                       ;  zalb_ice = ralb_oce + ( 0.18 - ralb_oce ) * z1_c2 * ph_ice
308          END WHERE
309
310          ! Snow-covered ice albedo (freezing, melting cases)
311          z1_c1 = 1. / 0.02
312          z1_c2 = 1. / 0.03
313         
314          WHERE( pt_ice < rt0_snow ) ; zalb_snw = ralb_sf - ( ralb_sf - zalb_ice ) * EXP( - ph_snw * z1_c1 );
315          ELSE WHERE                 ; zalb_snw = ralb_sm - ( ralb_sm - zalb_ice ) * EXP( - ph_snw * z1_c2 );
316          END WHERE
317
318          ! Depth-dependent ponded ice albedo
319          IF ( ld_pnd ) THEN
320             zhref_pnd = 0.05        ! Characteristic length scale for thickness dependence of ponded ice albedo, Lecomte et al (2015)
321             zalb_pnd  = ralb_dp - ( ralb_dp - zalb_ice ) * EXP( - ph_pnd / zhref_pnd ) 
322          ELSE
323             zalb_pnd  = ralb_dp
324          ENDIF
325
326          ! Surface albedo is weighted mean of snow, ponds and bare ice contributions
327          pa_ice_os = zafrac_snw * zalb_snw  +  zafrac_pnd * zalb_pnd  +  zafrac_ice * zalb_ice
328         
329          pa_ice_cs = pa_ice_os - ( - 0.1010 * pa_ice_os * pa_ice_os + 0.1933 * pa_ice_os - 0.0148 )
330
331      END SELECT
332     
333      CALL wrk_dealloc( jpi,jpj,ijpl, zalb, zalb_it )
334      CALL wrk_dealloc( jpi,jpj,ijpl, zalb_pnd, zalb_ice, zalb_snw )
335      CALL wrk_dealloc( jpi,jpj,ijpl, zalb_pnd, zafrac_snw, zafrac_ice, zafrac_pnd )
336      !
337   END SUBROUTINE albedo_ice
338
339
340   SUBROUTINE albedo_oce( pa_oce_os , pa_oce_cs )
341      !!----------------------------------------------------------------------
342      !!               ***  ROUTINE albedo_oce  ***
343      !!
344      !! ** Purpose :   Computation of the albedo of the ocean
345      !!----------------------------------------------------------------------
346      REAL(wp), DIMENSION(:,:), INTENT(out) ::   pa_oce_os   !  albedo of ocean under overcast sky
347      REAL(wp), DIMENSION(:,:), INTENT(out) ::   pa_oce_cs   !  albedo of ocean under clear sky
348      !!
349      REAL(wp) :: zcoef 
350      !!----------------------------------------------------------------------
351      !
352      zcoef = 0.05 / ( 1.1 * rmue**1.4 + 0.15 )   ! Parameterization of Briegled and Ramanathan, 1982
353      pa_oce_cs(:,:) = zcoef 
354      pa_oce_os(:,:) = 0.06                       ! Parameterization of Kondratyev, 1969 and Payne, 1972
355      !
356   END SUBROUTINE albedo_oce
357
358
359   SUBROUTINE albedo_init
360      !!----------------------------------------------------------------------
361      !!                 ***  ROUTINE albedo_init  ***
362      !!
363      !! ** Purpose :   initializations for the albedo parameters
364      !!
365      !! ** Method  :   Read the namelist namsbc_alb
366      !!----------------------------------------------------------------------
367      INTEGER  ::   ios                 ! Local integer output status for namelist read
368      NAMELIST/namsbc_alb/ nn_ice_alb, rn_alb_sdry, rn_alb_smlt, rn_alb_idry , rn_alb_imlt, rn_alb_dpnd
369      !!----------------------------------------------------------------------
370      !
371      albd_init = 1                     ! indicate that the initialization has been done
372      !
373      REWIND( numnam_ref )              ! Namelist namsbc_alb in reference namelist : Albedo parameters
374      READ  ( numnam_ref, namsbc_alb, IOSTAT = ios, ERR = 901)
375901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_alb in reference namelist', lwp )
376
377      REWIND( numnam_cfg )              ! Namelist namsbc_alb in configuration namelist : Albedo parameters
378      READ  ( numnam_cfg, namsbc_alb, IOSTAT = ios, ERR = 902 )
379902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_alb in configuration namelist', lwp )
380      IF(lwm) WRITE ( numond, namsbc_alb )
381      !
382      IF(lwp) THEN                      ! Control print
383         WRITE(numout,*)
384         WRITE(numout,*) 'albedo : set albedo parameters'
385         WRITE(numout,*) '~~~~~~~'
386         WRITE(numout,*) '   Namelist namsbc_alb : albedo '
387         WRITE(numout,*) '      choose the albedo parameterization                  nn_ice_alb = ', nn_ice_alb
388         WRITE(numout,*) '      albedo of dry snow                                  rn_alb_sdry = ', rn_alb_sdry
389         WRITE(numout,*) '      albedo of melting snow                              rn_alb_smlt = ', rn_alb_smlt
390         WRITE(numout,*) '      albedo of dry ice                                   rn_alb_idry = ', rn_alb_idry
391         WRITE(numout,*) '      albedo of bare ice                                  rn_alb_imlt = ', rn_alb_imlt
392         WRITE(numout,*) '      albedo of ponded ice                                rn_alb_dpnd = ', rn_alb_dpnd
393      ENDIF
394      !
395   END SUBROUTINE albedo_init
396
397   !!======================================================================
398END MODULE albedo
Note: See TracBrowser for help on using the repository browser.