Index: /branches/2016/dev_r6859_LIM3_meltponds/NEMOGCM/NEMO/LIM_SRC_3/ice.F90
===================================================================
--- /branches/2016/dev_r6859_LIM3_meltponds/NEMOGCM/NEMO/LIM_SRC_3/ice.F90	(revision 8097)
+++ /branches/2016/dev_r6859_LIM3_meltponds/NEMOGCM/NEMO/LIM_SRC_3/ice.F90	(revision 8098)
@@ -285,4 +285,5 @@
    INTEGER , PUBLIC ::   nn_pnd_cpl       !: type of melt pond coupling: =0 passive, =1 full, =2 radiation only, =3 freshwater only
    REAL(wp), PUBLIC ::   rn_apnd          !: prescribed pond fraction (0<rn_apnd<1), only if nn_pnd_scheme = 0
+   REAL(wp), PUBLIC ::   rn_hpnd          !: prescribed pond depth    (0<rn_hpnd<1), only if nn_pnd_scheme = 0
    ! END MV MP 2016
 
Index: /branches/2016/dev_r6859_LIM3_meltponds/NEMOGCM/NEMO/LIM_SRC_3/limistate.F90
===================================================================
--- /branches/2016/dev_r6859_LIM3_meltponds/NEMOGCM/NEMO/LIM_SRC_3/limistate.F90	(revision 8097)
+++ /branches/2016/dev_r6859_LIM3_meltponds/NEMOGCM/NEMO/LIM_SRC_3/limistate.F90	(revision 8098)
@@ -88,5 +88,5 @@
       REAL(wp)   :: ztmelts, zdh
       INTEGER    :: i_hemis, i_fill, jl0
-      REAL(wp)   :: zarg, zV, zconv, zdv, z1_jpl 
+      REAL(wp)   :: zarg, zV, zconv, zdv
       REAL(wp), POINTER, DIMENSION(:,:)   :: zswitch    ! ice indicator
       REAL(wp), POINTER, DIMENSION(:,:)   :: zht_i_ini, zat_i_ini, zvt_i_ini            !data from namelist or nc file
@@ -380,29 +380,17 @@
          ! MV MP 2016
          ! Melt pond volume and fraction
-         
-         z1_jpl =  1. / REAL(jpl)
-   
-         SELECT CASE ( nn_pnd_scheme )
-   
-            CASE ( 0 )           !--- Prescribed melt ponds
-   
-               DO jl = 1, jpl
-   
-                  a_ip(:,:,jl) = rn_apnd * z1_jpl * zswitch(:,:)
-                  v_ip(:,:,jl) = 0.1 * zswitch(:,:) * a_ip(:,:,jl)
-   
-               END DO
-   
-            CASE ( 1, 2 )        !--- Prognostic melt ponds
-   
-               DO jl = 1, jpl
-   
-                  a_ip(:,:,jl) = 0.1 * zswitch(:,:)
-                  v_ip(:,:,jl) = 0.1 * zswitch(:,:) * a_ip(:,:,jl)
-   
-               END DO
-   
-         END SELECT
-   
+         IF ( ln_pnd ) THEN
+
+            DO jl = 1, jpl
+               a_ip(:,:,jl) = 0.1 * zswitch(:,:)
+               v_ip(:,:,jl) = 0.1 * zswitch(:,:) * a_ip(:,:,jl)
+            END DO
+
+         ELSE
+
+            a_ip = 0._wp
+            v_ip = 0._wp
+
+         ENDIF
          ! END MV MP 2016
 
@@ -433,6 +421,4 @@
          a_ip(:,:,:)      = 0._wp
          v_ip(:,:,:)      = 0._wp
-         h_ip(:,:,:)      = 0._wp
-         a_ip_frac(:,:,:) = 0._wp
          ! END MV MP 2016
 
@@ -488,5 +474,5 @@
 
       ! MV MP 2016
-      IF ( nn_pnd_scheme >= 1 ) THEN
+      IF ( nn_pnd_scheme > 0 ) THEN
          sxap  (:,:,:) = 0._wp    ; sxvp  (:,:,:) = 0._wp 
          syap  (:,:,:) = 0._wp    ; syvp  (:,:,:) = 0._wp 
Index: /branches/2016/dev_r6859_LIM3_meltponds/NEMOGCM/NEMO/LIM_SRC_3/limmp.F90
===================================================================
--- /branches/2016/dev_r6859_LIM3_meltponds/NEMOGCM/NEMO/LIM_SRC_3/limmp.F90	(revision 8097)
+++ /branches/2016/dev_r6859_LIM3_meltponds/NEMOGCM/NEMO/LIM_SRC_3/limmp.F90	(revision 8098)
@@ -83,5 +83,5 @@
       !!-------------------------------------------------------------------
       INTEGER  ::   ios                 ! Local integer output status for namelist read
-      NAMELIST/namicemp/  ln_pnd, nn_pnd_scheme, nn_pnd_cpl, rn_apnd
+      NAMELIST/namicemp/  ln_pnd, nn_pnd_scheme, nn_pnd_cpl, rn_apnd, rn_hpnd
       !!-------------------------------------------------------------------
 
@@ -103,16 +103,19 @@
          WRITE(numout,*)'    Type of melt pond coupling =0 pass., =1 full, =2 rad, 3=fw  nn_pnd_cpl    = ', nn_pnd_cpl
          WRITE(numout,*)'    Prescribed pond fraction                                    rn_apnd       = ', rn_apnd
+         WRITE(numout,*)'    Prescribed pond depth                                       rn_hpnd       = ', rn_hpnd
       ENDIF
 
-      IF ( ln_pnd == .FALSE. ) THEN
-         WRITE(numout) ' Melt ponds are not activated '
-         WRITE(numout) ' nn_pnd_scheme, nn_pnd_cpl and rn_apnd are set to zero '
+      IF ( .NOT. ln_pnd ) THEN
+         WRITE(numout,*) ' Melt ponds are not activated '
+         WRITE(numout,*) ' nn_pnd_scheme, nn_pnd_cpl, rn_apnd and rn_hpnd are set to zero '
          nn_pnd_scheme = 0
          nn_pnd_cpl    = 0
          rn_apnd       = 0._wp
+         rn_hpnd       = 0._wp
       ENDIF
+
       !
    END SUBROUTINE lim_mp_init
-
+   
 
 
@@ -142,12 +145,17 @@
       SELECT CASE ( nn_pnd_scheme )
 
+         CASE (0)
+
+            CALL lim_mp_cstt       ! staircase melt ponds
+
          CASE (1)
 
-            CALL lim_mp_cesm ! empirical melt ponds
+            CALL lim_mp_cesm       ! empirical melt ponds
 
          CASE (2)
 
-            CALL lim_mp_topo    (at_i, a_i,                                       &
-                      &          vt_i, v_i, v_s,            t_i, s_i, a_ip_frac,  &
+            CALL lim_mp_topo   &   ! topographic melt ponds 
+                      &          (at_i, a_i,                                       &
+                      &          vt_i, v_i, v_s,            t_i, s_i, a_ip_frac,   &
                       &          h_ip,     t_su)
 
@@ -162,5 +170,42 @@
    END SUBROUTINE lim_mp 
 
-
+   SUBROUTINE lim_mp_cstt 
+       !!-------------------------------------------------------------------
+       !!                ***  ROUTINE lim_mp_cstt  ***
+       !!
+       !! ** Purpose    : Compute melt pond evolution
+       !!
+       !! ** Method     : Melt pond fraction and thickness are prescribed 
+       !!                 to non-zero values when t_su = 0C
+       !!
+       !! ** Tunable parameters : pond fraction (rn_apnd), pond depth (rn_hpnd)
+       !!                
+       !! ** Note       : Coupling with such melt ponds is only radiative
+       !!                 Advection, ridging, rafting... are bypassed
+       !!
+       !! ** References : Bush, G.W., and Trump, D.J. (2017)
+       !!    
+       !!-------------------------------------------------------------------
+       INTEGER                             :: ji, jj, jl
+       REAL(wp)                            :: z1_jpl            ! 1/jpl
+       !!-------------------------------------------------------------------
+
+       z1_jpl     = 1. / FLOAT(jpl)
+
+       WHERE ( ( a_i > epsi10 ) .AND. ( t_su >= rt0-epsi06 ) ) 
+          a_ip      = rn_apnd * z1_jpl 
+          h_ip      = rn_hpnd    
+          v_ip      = a_ip * h_ip 
+          a_ip_frac = a_ip / a_i
+       ELSE WHERE
+          a_ip      = 0._wp
+          h_ip      = 0._wp
+          v_ip      = 0._wp
+          a_ip_frac = 0._wp
+       END WHERE
+
+       wfx_pnd(:,:) = 0._wp
+
+   END SUBROUTINE lim_mp_cstt
 
    SUBROUTINE lim_mp_cesm
@@ -172,11 +217,12 @@
        !! ** Method     : Empirical method. A fraction of meltwater is accumulated 
        !!                 in pond volume. It is then released exponentially when
-       !!                 surface is freezingAccumulation of meltwater and exponential release
+       !!                 surface is freezing.
        !!
-       !! ** Tunable parameters :
-       !!                
+       !! ** Tunable parameters : (no expertise yet)
        !! 
        !! ** Note       : Stolen from CICE for quick test of the melt pond
        !!                 radiation and freshwater interfaces
+       !!                 Coupling can be radiative AND freshwater
+       !!                 Advection, ridging, rafting are called
        !!
        !! ** References : Holland, M. M. et al (J Clim 2012)
Index: /branches/2016/dev_r6859_LIM3_meltponds/NEMOGCM/NEMO/LIM_SRC_3/limvar.F90
===================================================================
--- /branches/2016/dev_r6859_LIM3_meltponds/NEMOGCM/NEMO/LIM_SRC_3/limvar.F90	(revision 8097)
+++ /branches/2016/dev_r6859_LIM3_meltponds/NEMOGCM/NEMO/LIM_SRC_3/limvar.F90	(revision 8098)
@@ -92,5 +92,5 @@
 
       ! MV MP 2016
-      IF ( nn_pnd_scheme > 0 ) THEN
+      IF ( ln_pnd ) THEN
          at_ip(:,:) = SUM( a_ip, dim=3 )
          vt_ip(:,:) = SUM( v_ip, dim=3 )
@@ -566,5 +566,5 @@
                zvs  = v_s  (ji,jj,  jl)
                zes  = e_s  (ji,jj,1,jl)
-               zvp  = v_ip (ji,jj  ,jl)
+               IF ( ln_pnd ) zvp  = v_ip (ji,jj  ,jl)
                !-----------------------------------------------------------------
                ! Zap snow energy 
@@ -585,7 +585,9 @@
 
                ! MV MP 2016
-               a_ip (ji,jj,jl) = a_ip (ji,jj,jl) * rswitch
-               v_ip (ji,jj,jl) = v_ip (ji,jj,jl) * rswitch
-               wfx_res(ji,jj)  = wfx_res(ji,jj) - ( v_ip(ji,jj,jl)  - zvp  ) * rhofw * r1_rdtice
+               IF ( ln_pnd ) THEN 
+                  a_ip (ji,jj,jl) = a_ip (ji,jj,jl) * rswitch
+                  v_ip (ji,jj,jl) = v_ip (ji,jj,jl) * rswitch
+                  wfx_res(ji,jj)  = wfx_res(ji,jj) - ( v_ip(ji,jj,jl)  - zvp  ) * rhofw * r1_rdtice
+               ENDIF
                ! END MV MP 2016
 
Index: /branches/2016/dev_r6859_LIM3_meltponds/NEMOGCM/NEMO/LIM_SRC_3/limwri.F90
===================================================================
--- /branches/2016/dev_r6859_LIM3_meltponds/NEMOGCM/NEMO/LIM_SRC_3/limwri.F90	(revision 8097)
+++ /branches/2016/dev_r6859_LIM3_meltponds/NEMOGCM/NEMO/LIM_SRC_3/limwri.F90	(revision 8098)
@@ -171,5 +171,5 @@
       CALL iom_put( "vfxice"     , wfx_ice * ztmp       )        ! total ice growth/melt 
 
-      IF ( ln_pnd .AND. ( nn_pnd_scheme >= 0 ) ) &
+      IF ( ln_pnd ) &
          CALL iom_put( "vfxpnd"  , wfx_pnd * ztmp       )        ! melt pond water flux
 
@@ -235,5 +235,5 @@
 
       ! MV MP 2016
-      IF ( ln_pnd .AND. ( nn_pnd_scheme >= 0 ) ) THEN
+      IF ( ln_pnd ) THEN
          IF ( iom_use( "iceamp_cat"  ) )  CALL iom_put( "iceamp_cat"     , a_ip   * zswi2   )       ! melt pond frac for categories
          IF ( iom_use( "icevmp_cat"  ) )  CALL iom_put( "icevmp_cat"     , v_ip   * zswi2   )       ! melt pond frac for categories
@@ -304,5 +304,5 @@
 
       ! MV MP 2016
-      IF ( ln_pnd .AND. ( nn_pnd_scheme >= 0 ) ) THEN
+      IF ( ln_pnd ) THEN
          CALL histdef( kid, "si_amp", "Melt pond fraction"      , "%"      ,   &
       &         jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt )
@@ -357,5 +357,5 @@
 
       ! MV MP 2016
-      IF ( ln_pnd .AND. ( nn_pnd_scheme >= 0 ) ) THEN
+      IF ( ln_pnd ) THEN
          CALL histwrite( kid, "si_amp", kt, at_ip         , jpi*jpj, (/1/) )
          CALL histwrite( kid, "si_vmp", kt, vt_ip         , jpi*jpj, (/1/) )
@@ -370,5 +370,5 @@
       CALL histwrite( kid, "vfxbom", kt, wfx_bom        , jpi*jpj, (/1/) )
       CALL histwrite( kid, "vfxsum", kt, wfx_sum        , jpi*jpj, (/1/) )
-      IF ( ln_pnd .AND. ( nn_pnd_scheme >= 0 ) ) &
+      IF ( ln_pnd ) &
          CALL histwrite( kid, "vfxpnd", kt, wfx_pnd     , jpi*jpj, (/1/) )
 
