Index: /branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/OPA_SRC/SBC/sbcssr.F90
===================================================================
--- /branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/OPA_SRC/SBC/sbcssr.F90	(revision 9633)
+++ /branches/NERC/dev_r5518_GO6_under_ice_relax/NEMOGCM/NEMO/OPA_SRC/SBC/sbcssr.F90	(revision 9634)
@@ -39,5 +39,6 @@
    INTEGER, PUBLIC ::   nn_sssr         ! SST/SSS restoring indicator
    REAL(wp)        ::   rn_dqdt         ! restoring factor on SST and SSS
-   REAL(wp)        ::   rn_deds         ! restoring factor on SST and SSS
+   REAL(wp)        ::   rn_deds         ! restoring factor on SST and SSS on Ice-free ocean
+   REAL(wp)        ::   rn_deds_ice     ! restoring factor on SST and SSS under sea-ice 
    LOGICAL         ::   ln_sssr_bnd     ! flag to bound erp term 
    REAL(wp)        ::   rn_sssr_bnd     ! ABS(Max./Min.) value of erp term [mm/day]
@@ -80,5 +81,4 @@
       REAL(wp) ::   zice     ! local scalar to permit differential under sea-ice relaxation
       REAL(wp) ::   zsrp_ice     !  local scalar for unit conversion of rn_deds factor - under ice
-      REAL(wp), PARAMETER ::   rn_deds_ice = -333.333     ! under ice relaxation term
       INTEGER  ::   ierror   ! return error code
       !!
@@ -118,5 +118,5 @@
                      !!      rn_deds (ice-free) to rn_deds_ice (100% ice)
                      zice = ((1. - fr_i(ji,jj)) * zsrp) +        &
-                        &   (fr_i(ji,jj) * zsrp_ice) 
+                        &   (fr_i(ji,jj) * zsrp_ice)
                      zerp = zice * ( 1. - 2.*rnfmsk(ji,jj) )   &      ! No damping in vicinity of river mouths
                         &        * ( sss_m(ji,jj) - sf_sss(1)%fnow(ji,jj,1) ) 
@@ -129,9 +129,14 @@
             ELSEIF( nn_sssr == 2 ) THEN                               !* Salinity damping term (volume flux (emp) and associated heat flux (qns)
                zsrp = rn_deds / rday                                  ! from [mm/day] to [kg/m2/s]
+               zsrp_ice = rn_deds_ice / rday                          ! from [mm/day] to [kg/m2/s]
                zerp_bnd = rn_sssr_bnd / rday                          !       -              -    
 !CDIR COLLAPSE
                DO jj = 1, jpj
                   DO ji = 1, jpi                            
-                     zerp = zsrp * ( 1. - 2.*rnfmsk(ji,jj) )   &      ! No damping in vicinity of river mouths
+                     !! AXY (16-04-2018) Calculate ice-scaled zsrp term - from
+                     !!      rn_deds (ice-free) to rn_deds_ice (100% ice)
+                     zice = ((1. - fr_i(ji,jj)) * zsrp) +        &
+                        &   (fr_i(ji,jj) * zsrp_ice)
+                     zerp = zice * ( 1. - 2.*rnfmsk(ji,jj) )   &      ! No damping in vicinity of river mouths
                         &        * ( sss_m(ji,jj) - sf_sss(1)%fnow(ji,jj,1) )   &
                         &        / MAX(  sss_m(ji,jj), 1.e-20   )
@@ -172,5 +177,5 @@
       CHARACTER(len=100) ::  cn_dir          ! Root directory for location of ssr files
       TYPE(FLD_N) ::   sn_sst, sn_sss        ! informations about the fields to be read
-      NAMELIST/namsbc_ssr/ cn_dir, nn_sstr, nn_sssr, rn_dqdt, rn_deds, sn_sst, sn_sss, ln_sssr_bnd, rn_sssr_bnd
+      NAMELIST/namsbc_ssr/ cn_dir, nn_sstr, nn_sssr, rn_dqdt, rn_deds, rn_deds_ice, sn_sst, sn_sss, ln_sssr_bnd, rn_sssr_bnd
       INTEGER     ::  ios
       !!----------------------------------------------------------------------
@@ -191,11 +196,12 @@
          WRITE(numout,*) '~~~~~~~ '
          WRITE(numout,*) '   Namelist namsbc_ssr :'
-         WRITE(numout,*) '      SST restoring term (Yes=1)             nn_sstr     = ', nn_sstr
-         WRITE(numout,*) '      SSS damping term (Yes=1, salt flux)    nn_sssr     = ', nn_sssr
+         WRITE(numout,*) '      SST restoring term (Yes=1)                    nn_sstr     = ', nn_sstr
+         WRITE(numout,*) '      SSS damping term (Yes=1, salt flux)           nn_sssr     = ', nn_sssr
          WRITE(numout,*) '                       (Yes=2, volume flux) '
-         WRITE(numout,*) '      dQ/dT (restoring magnitude on SST)     rn_dqdt     = ', rn_dqdt, ' W/m2/K'
-         WRITE(numout,*) '      dE/dS (restoring magnitude on SST)     rn_deds     = ', rn_deds, ' mm/day'
-         WRITE(numout,*) '      flag to bound erp term                 ln_sssr_bnd = ', ln_sssr_bnd
-         WRITE(numout,*) '      ABS(Max./Min.) erp threshold           rn_sssr_bnd = ', rn_sssr_bnd, ' mm/day'
+         WRITE(numout,*) '      dQ/dT (restoring magnitude on SST)            rn_dqdt     = ', rn_dqdt, ' W/m2/K'
+         WRITE(numout,*) '      dE/dS (restoring magnitude on ice-free SSS)   rn_deds     = ', rn_deds, ' mm/day'
+         WRITE(numout,*) '      dE/dS (restoring magnitude under sea-ice SSS) rn_deds_ice = ', rn_deds_ice, ' mm/day'
+         WRITE(numout,*) '      flag to bound erp term                        ln_sssr_bnd = ', ln_sssr_bnd
+         WRITE(numout,*) '      ABS(Max./Min.) erp threshold                  rn_sssr_bnd = ', rn_sssr_bnd, ' mm/day'
       ENDIF
       !
