Index: trunk/NEMOGCM/NEMO/OPA_SRC/SBC/albedo.F90
===================================================================
--- trunk/NEMOGCM/NEMO/OPA_SRC/SBC/albedo.F90	(revision 7753)
+++ trunk/NEMOGCM/NEMO/OPA_SRC/SBC/albedo.F90	(revision 7813)
@@ -39,5 +39,5 @@
    !                             !!* namelist namsbc_alb
    INTEGER  ::   nn_ice_alb
-   REAL(wp) ::   rn_albice
+   REAL(wp) ::   rn_alb_sdry, rn_alb_smlt, rn_alb_idry, rn_alb_imlt
 
    !!----------------------------------------------------------------------
@@ -89,5 +89,4 @@
       INTEGER  ::   ji, jj, jl         ! dummy loop indices
       INTEGER  ::   ijpl               ! number of ice categories (3rd dim of ice input arrays)
-      REAL(wp)            ::   ralb_im, ralb_sf, ralb_sm, ralb_if
       REAL(wp)            ::   zswitch, z1_c1, z1_c2
       REAL(wp)                            ::   zalb_sm, zalb_sf, zalb_st ! albedo of snow melting, freezing, total
@@ -100,5 +99,4 @@
 
       IF( albd_init == 0 )   CALL albedo_init      ! initialization 
-
       
       SELECT CASE ( nn_ice_alb )
@@ -109,12 +107,7 @@
       CASE( 0 )
        
-         ralb_sf = 0.80       ! dry snow
-         ralb_sm = 0.65       ! melting snow
-         ralb_if = 0.72       ! bare frozen ice
-         ralb_im = rn_albice  ! bare puddled ice 
-         
          !  Computation of ice albedo (free of snow)
-         WHERE     ( ph_snw == 0._wp .AND. pt_ice >= rt0_ice )   ;   zalb(:,:,:) = ralb_im
-         ELSE WHERE                                              ;   zalb(:,:,:) = ralb_if
+         WHERE     ( ph_snw == 0._wp .AND. pt_ice >= rt0_ice )   ;   zalb(:,:,:) = rn_alb_imlt
+         ELSE WHERE                                              ;   zalb(:,:,:) = rn_alb_idry
          END  WHERE
       
@@ -132,15 +125,14 @@
                   ! freezing snow
                   ! no effect of underlying ice layer IF snow thickness > c1. Albedo does not depend on snow thick if > c2
-                  !                                        !  freezing snow        
                   zswitch   = 1._wp - MAX( 0._wp , SIGN( 1._wp , - ( ph_snw(ji,jj,jl) - c1 ) ) )
                   zalb_sf   = ( 1._wp - zswitch ) * (  zalb_it(ji,jj,jl)  &
-                     &                           + ph_snw(ji,jj,jl) * ( ralb_sf - zalb_it(ji,jj,jl) ) / c1  )   &
-                     &        +         zswitch   * ralb_sf  
+                     &                           + ph_snw(ji,jj,jl) * ( rn_alb_sdry - zalb_it(ji,jj,jl) ) / c1  )   &
+                     &        +         zswitch   * rn_alb_sdry  
 
                   ! melting snow
                   ! no effect of underlying ice layer. Albedo does not depend on snow thick IF > c2
                   zswitch   = MAX( 0._wp , SIGN( 1._wp , ph_snw(ji,jj,jl) - c2 ) )
-                  zalb_sm = ( 1._wp - zswitch ) * ( ralb_im + ph_snw(ji,jj,jl) * ( ralb_sm - ralb_im ) / c2 )   &
-                      &     +         zswitch   *   ralb_sm 
+                  zalb_sm = ( 1._wp - zswitch ) * ( rn_alb_imlt + ph_snw(ji,jj,jl) * ( rn_alb_smlt - rn_alb_imlt ) / c2 )   &
+                      &     +         zswitch   *   rn_alb_smlt 
                   !
                   ! snow albedo
@@ -163,23 +155,22 @@
       CASE( 1 ) 
 
-         ralb_im = rn_albice  ! bare puddled ice
 ! compilation of values from literature
-         ralb_sf = 0.85      ! dry snow
-         ralb_sm = 0.75      ! melting snow
-         ralb_if = 0.60      ! bare frozen ice
+!        rn_alb_sdry = 0.85      ! dry snow
+!        rn_alb_smlt = 0.75      ! melting snow
+!        rn_alb_idry = 0.60      ! bare frozen ice
 ! Perovich et al 2002 (Sheba) => the only dataset for which all types of ice/snow were retrieved
-!         ralb_sf = 0.85       ! dry snow
-!         ralb_sm = 0.72       ! melting snow
-!         ralb_if = 0.65       ! bare frozen ice
+!        rn_alb_sdry = 0.85      ! dry snow
+!        rn_alb_smlt = 0.72      ! melting snow
+!        rn_alb_idry = 0.65      ! bare frozen ice
 ! Brandt et al 2005 (East Antarctica)
-!         ralb_sf = 0.87      ! dry snow
-!         ralb_sm = 0.82      ! melting snow
-!         ralb_if = 0.54      ! bare frozen ice
+!        rn_alb_sdry = 0.87      ! dry snow
+!        rn_alb_smlt = 0.82      ! melting snow
+!        rn_alb_idry = 0.54      ! bare frozen ice
 ! 
          !  Computation of ice albedo (free of snow)
          z1_c1 = 1. / ( LOG(1.5) - LOG(0.05) ) 
          z1_c2 = 1. / 0.05
-         WHERE     ( ph_snw == 0._wp .AND. pt_ice >= rt0_ice )   ;   zalb = ralb_im
-         ELSE WHERE                                              ;   zalb = ralb_if
+         WHERE     ( ph_snw == 0._wp .AND. pt_ice >= rt0_ice )   ;   zalb = rn_alb_imlt
+         ELSE WHERE                                              ;   zalb = rn_alb_idry
          END  WHERE
          
@@ -196,8 +187,8 @@
             DO jj = 1, jpj
                DO ji = 1, jpi
-                  zalb_sf = ralb_sf - ( ralb_sf - zalb_it(ji,jj,jl)) * EXP( - ph_snw(ji,jj,jl) * z1_c1 );
-                  zalb_sm = ralb_sm - ( ralb_sm - zalb_it(ji,jj,jl)) * EXP( - ph_snw(ji,jj,jl) * z1_c2 );
-
-                   ! snow albedo
+                  zalb_sf = rn_alb_sdry - ( rn_alb_sdry - zalb_it(ji,jj,jl)) * EXP( - ph_snw(ji,jj,jl) * z1_c1 );
+                  zalb_sm = rn_alb_smlt - ( rn_alb_smlt - zalb_it(ji,jj,jl)) * EXP( - ph_snw(ji,jj,jl) * z1_c2 );
+
+                  ! snow albedo
                   zswitch = MAX( 0._wp , SIGN( 1._wp , pt_ice(ji,jj,jl) - rt0_snow ) )   
                   zalb_st = zswitch * zalb_sm + ( 1._wp - zswitch ) * zalb_sf
@@ -248,5 +239,5 @@
       !!----------------------------------------------------------------------
       INTEGER  ::   ios                 ! Local integer output status for namelist read
-      NAMELIST/namsbc_alb/ nn_ice_alb, rn_albice 
+      NAMELIST/namsbc_alb/ nn_ice_alb, rn_alb_sdry, rn_alb_smlt, rn_alb_idry , rn_alb_imlt
       !!----------------------------------------------------------------------
       !
@@ -267,6 +258,9 @@
          WRITE(numout,*) '~~~~~~~'
          WRITE(numout,*) '   Namelist namsbc_alb : albedo '
-         WRITE(numout,*) '      choose the albedo parameterization                  nn_ice_alb = ', nn_ice_alb
-         WRITE(numout,*) '      albedo of bare puddled ice                          rn_albice  = ', rn_albice
+         WRITE(numout,*) '      choose the albedo parameterization                  nn_ice_alb  = ', nn_ice_alb
+         WRITE(numout,*) '      albedo of dry snow                                  rn_alb_sdry = ', rn_alb_sdry
+         WRITE(numout,*) '      albedo of melting snow                              rn_alb_smlt = ', rn_alb_smlt
+         WRITE(numout,*) '      albedo of dry ice                                   rn_alb_idry = ', rn_alb_idry
+         WRITE(numout,*) '      albedo of bare puddled ice                          rn_alb_imlt = ', rn_alb_imlt
       ENDIF
       !
