Index: /branches/UKMO/dev_r5518_GO6_fix_zemp_ice/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90
===================================================================
--- /branches/UKMO/dev_r5518_GO6_fix_zemp_ice/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90	(revision 10994)
+++ /branches/UKMO/dev_r5518_GO6_fix_zemp_ice/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90	(revision 10995)
@@ -184,4 +184,6 @@
    LOGICAL     ::   ln_usecplmask          !  use a coupling mask file to merge data received from several models
                                            !   -> file cplmask.nc with the float variable called cplmask (jpi,jpj,nn_cplmodel)
+   LOGICAL, PUBLIC ::   ln_fix_sublimation_botmelt     ! Apply sublimation bug fixes (GMED#449)
+
    TYPE ::   DYNARR     
       REAL(wp), POINTER, DIMENSION(:,:,:)    ::   z3   
@@ -259,5 +261,6 @@
          &                  ln_usecplmask, nn_coupled_iceshelf_fluxes, ln_iceshelf_init_atmos,        &
          &                  rn_greenland_total_fw_flux, rn_greenland_calving_fraction, &
-         &                  rn_antarctica_total_fw_flux, rn_antarctica_calving_fraction, rn_iceshelf_fluxes_tolerance
+         &                  rn_antarctica_total_fw_flux, rn_antarctica_calving_fraction, rn_iceshelf_fluxes_tolerance, &
+         &                  ln_fix_sublimation_botmelt
       !!---------------------------------------------------------------------
 
@@ -329,4 +332,5 @@
          WRITE(numout,*)'  nn_cplmodel                         = ', nn_cplmodel
          WRITE(numout,*)'  ln_usecplmask                       = ', ln_usecplmask
+         WRITE(numout,*)'  ln_fix_sublimation_botmelt          = ', ln_fix_sublimation_botmelt
          WRITE(numout,*)'  nn_coupled_iceshelf_fluxes          = ', nn_coupled_iceshelf_fluxes
          WRITE(numout,*)'  ln_iceshelf_init_atmos              = ', ln_iceshelf_init_atmos
@@ -1770,7 +1774,15 @@
          IF ( TRIM(sn_rcv_emp%clcat) == 'yes' ) THEN
             ! zemp_ice is the sum of frcv(jpr_ievp)%z3(:,:,1) over all layers - snow
-            zemp_ice(:,:) = - frcv(jpr_snow)%z3(:,:,1) * zicefr(:,:)
+            IF ( ln_fix_sublimation_botmelt ) THEN
+               zemp_ice(:,:) = - frcv(jpr_snow)%z3(:,:,1) * zicefr(:,:)
+            ELSE
+               zemp_ice(:,:) = - frcv(jpr_snow)%z3(:,:,1)
+            ENDIF
             DO jl=1,jpl
-               zemp_ice(:,:   ) = zemp_ice(:,:) + frcv(jpr_ievp)%z3(:,:,jl) * a_i_last_couple(:,:,jl)
+               IF ( ln_fix_sublimation_botmelt ) THEN
+                  zemp_ice(:,:   ) = zemp_ice(:,:) + frcv(jpr_ievp)%z3(:,:,jl) * a_i_last_couple(:,:,jl)
+               ELSE
+                  zemp_ice(:,:   ) = zemp_ice(:,:) + frcv(jpr_ievp)%z3(:,:,jl)
+               ENDIF
             ENDDO
             ! latent heat coupled for each category in CICE
Index: /branches/UKMO/dev_r5518_GO6_fix_zemp_ice/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_cice.F90
===================================================================
--- /branches/UKMO/dev_r5518_GO6_fix_zemp_ice/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_cice.F90	(revision 10994)
+++ /branches/UKMO/dev_r5518_GO6_fix_zemp_ice/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_cice.F90	(revision 10995)
@@ -395,5 +395,9 @@
          ELSE IF (ksbc == jp_purecpl) THEN
             DO jl=1,ncat
-               ztmpn(:,:,jl)=qla_ice(:,:,jl)*a_i_last_couple(:,:,jl)
+               IF ( ln_fix_sublimation_botmelt ) THEN
+                  ztmpn(:,:,jl)=qla_ice(:,:,jl)*a_i_last_couple(:,:,jl)
+               ELSE
+                  ztmpn(:,:,jl)=qla_ice(:,:,jl)*a_i(:,:,jl)
+               ENDIF
             ENDDO
 	 ELSE
@@ -408,5 +412,9 @@
 !  Convert to GBM
             IF (ksbc == jp_flx .OR. ksbc == jp_purecpl) THEN
-               ztmp(:,:) = botmelt(:,:,jl)*a_i_last_couple(:,:,jl)
+               IF ( ln_fix_sublimation_botmelt ) THEN
+                  ztmp(:,:) = botmelt(:,:,jl)*a_i_last_couple(:,:,jl)
+               ELSE
+                  ztmp(:,:) = botmelt(:,:,jl)*a_i(:,:,jl)
+               ENDIF
             ELSE
                ztmp(:,:) = botmelt(:,:,jl)
@@ -417,5 +425,9 @@
 !  Convert to GBM
             IF (ksbc == jp_flx .OR. ksbc == jp_purecpl) THEN
-               ztmp(:,:) = (topmelt(:,:,jl)+botmelt(:,:,jl))*a_i_last_couple(:,:,jl) 
+               IF ( ln_fix_sublimation_botmelt ) THEN
+                  ztmp(:,:) = (topmelt(:,:,jl)+botmelt(:,:,jl))*a_i_last_couple(:,:,jl) 
+               ELSE
+                  ztmp(:,:) = (topmelt(:,:,jl)+botmelt(:,:,jl))*a_i(:,:,jl)
+               ENDIF
             ELSE
                ztmp(:,:) = (topmelt(:,:,jl)+botmelt(:,:,jl))
