Index: branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/OFF_SRC/dtadyn.F90
===================================================================
--- branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/OFF_SRC/dtadyn.F90	(revision 3622)
+++ branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/OFF_SRC/dtadyn.F90	(revision 3623)
@@ -52,5 +52,5 @@
    LOGICAL            ::   ln_degrad  = .false. !: degradation option enabled or not 
 
-   INTEGER  , PARAMETER ::   jpfld = 19     ! maximum number of files to read
+   INTEGER  , PARAMETER ::   jpfld = 20     ! maximum number of fields to read
    INTEGER  , SAVE      ::   jf_tem         ! index of temperature
    INTEGER  , SAVE      ::   jf_sal         ! index of salinity
@@ -72,4 +72,5 @@
    INTEGER  , SAVE      ::   jf_eiv         ! index of v-eiv
    INTEGER  , SAVE      ::   jf_eiw         ! index of w-eiv
+   INTEGER  , SAVE      ::   jf_sfx         ! index of downward salt flux
 
    TYPE(FLD), ALLOCATABLE, DIMENSION(:) :: sf_dyn  ! structure of input fields (file informations, fields read)
@@ -250,11 +251,12 @@
       un (:,:,:)       = sf_dyn(jf_uwd)%fnow(:,:,:) * umask(:,:,:)    ! u-velocity
       vn (:,:,:)       = sf_dyn(jf_vwd)%fnow(:,:,:) * vmask(:,:,:)    ! v-velocity 
-      IF( .NOT.ln_dynwzv ) &                                           ! w-velocity read in file 
+      IF( .NOT.ln_dynwzv ) &                                          ! w-velocity read in file 
          wn (:,:,:)    = sf_dyn(jf_wwd)%fnow(:,:,:) * tmask(:,:,:)    
       hmld(:,:)        = sf_dyn(jf_mld)%fnow(:,:,1) * tmask(:,:,1)    ! mixed layer depht
       wndm(:,:)        = sf_dyn(jf_wnd)%fnow(:,:,1) * tmask(:,:,1)    ! wind speed - needed for gas exchange
       emp (:,:)        = sf_dyn(jf_emp)%fnow(:,:,1) * tmask(:,:,1)    ! E-P
-      sfx (:,:)        = emp(:,:) 
-      fr_i(:,:)        = sf_dyn(jf_ice)%fnow(:,:,1) * tmask(:,:,1)     ! Sea-ice fraction
+      sfx (:,:)        = 0.0_wp      ! enable testing with old inputs ! downward salt flux 
+!     sfx (:,:)        = sf_dyn(jf_sfx)%fnow(:,:,1) * tmask(:,:,1)    ! downward salt flux (v3.5+)
+      fr_i(:,:)        = sf_dyn(jf_ice)%fnow(:,:,1) * tmask(:,:,1)    ! Sea-ice fraction
       qsr (:,:)        = sf_dyn(jf_qsr)%fnow(:,:,1) * tmask(:,:,1)    ! solar radiation
 
@@ -330,10 +332,10 @@
       TYPE(FLD_N) :: sn_tem, sn_sal, sn_mld, sn_emp, sn_ice, sn_qsr, sn_wnd  ! informations about the fields to be read
       TYPE(FLD_N) :: sn_uwd, sn_vwd, sn_wwd, sn_avt, sn_ubl, sn_vbl          !   "                                 "
-      TYPE(FLD_N) :: sn_ahu, sn_ahv, sn_ahw, sn_eiu, sn_eiv, sn_eiw          !   "                                 "
+      TYPE(FLD_N) :: sn_ahu, sn_ahv, sn_ahw, sn_eiu, sn_eiv, sn_eiw, sn_sfx  !   "                                 "
       !
       NAMELIST/namdta_dyn/cn_dir, ln_dynwzv, ln_dynbbl, ln_degrad,    &
          &                sn_tem, sn_sal, sn_mld, sn_emp, sn_ice, sn_qsr, sn_wnd,  &
          &                sn_uwd, sn_vwd, sn_wwd, sn_avt, sn_ubl, sn_vbl,          &
-         &                sn_ahu, sn_ahv, sn_ahw, sn_eiu, sn_eiv, sn_eiw
+         &                sn_ahu, sn_ahv, sn_ahw, sn_eiu, sn_eiv, sn_eiw, sn_sfx
 
       !!----------------------------------------------------------------------
@@ -348,4 +350,6 @@
       sn_mld  = FLD_N( 'dyna_grid_T' ,    120    , 'somixght' ,  .true.    , .true. ,   'yearly'  , ''       , ''         )
       sn_emp  = FLD_N( 'dyna_grid_T' ,    120    , 'sowaflcd' ,  .true.    , .true. ,   'yearly'  , ''       , ''         )
+!!    sn_emp  = FLD_N( 'dyna_grid_T' ,    120    , 'sowaflup' ,  .true.    , .true. ,   'yearly'  , ''       , ''         ) ! v3.5+
+      sn_sfx  = FLD_N( 'dyna_grid_T' ,    120    , 'sosfldow' ,  .true.    , .true. ,   'yearly'  , ''       , ''         ) ! v3.5+
       sn_ice  = FLD_N( 'dyna_grid_T' ,    120    , 'soicecov' ,  .true.    , .true. ,   'yearly'  , ''       , ''         )
       sn_qsr  = FLD_N( 'dyna_grid_T' ,    120    , 'soshfldo' ,  .true.    , .true. ,   'yearly'  , ''       , ''         )
@@ -426,4 +430,7 @@
         ENDIF
       ENDIF
+      ! Salt flux and concntration/dilution terms (new from v3.5) !! disabled to allow testing with old input files
+!!    jf_sfx = jfld + 1    ;    jfld = jfld + 1
+!!    slf_d(jf_sfx) = sn_sfx
   
       ALLOCATE( sf_dyn(jfld), STAT=ierr )         ! set sf structure
Index: branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/TOP_SRC/oce_trc.F90
===================================================================
--- branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/TOP_SRC/oce_trc.F90	(revision 3622)
+++ branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/TOP_SRC/oce_trc.F90	(revision 3623)
@@ -227,5 +227,5 @@
    USE sbc_oce , ONLY :   emp        =>    emp        !: freshwater budget: volume flux               [Kg/m2/s]
    USE sbc_oce , ONLY :   emp_b      =>    emp_b      !: freshwater budget: volume flux               [Kg/m2/s]
-   USE sbc_oce , ONLY :   sfx        =>    sfx        !: freshwater budget: concentration/dillution   [Kg/m2/s]
+   USE sbc_oce , ONLY :   sfx        =>    sfx        !: downward salt flux                          [PSU/m2/s]
    USE sbc_oce , ONLY :   rnf        =>    rnf        !: river runoff   [Kg/m2/s]
    USE sbc_oce , ONLY :   ln_dm2dc   =>    ln_dm2dc   !: Daily mean to Diurnal Cycle short wave (qsr) 
Index: branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/TOP_SRC/trc.F90
===================================================================
--- branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/TOP_SRC/trc.F90	(revision 3622)
+++ branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/TOP_SRC/trc.F90	(revision 3623)
@@ -133,5 +133,5 @@
    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::  fr_i_tm    !: average ice fraction     [m/s]
    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::  emp_tm     !: freshwater budget: volume flux [Kg/m2/s]
-   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::  emps_tm    !: freshwater budget:concentration/dilution [Kg/m2/s]
+   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::  sfx_tm     !: downward salt flux [PSU/m2/s]
    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::  emp_b_hold !: hold emp from the beginning of each sub-stepping[m]  
    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::  qsr_tm     !: solar radiation average [m]
@@ -173,5 +173,5 @@
    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)   ::  hdivb_temp, rotb_temp
    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::  hmld_temp, qsr_temp, fr_i_temp,wndm_temp
-   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::  emp_temp, emps_temp, emp_b_temp
+   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)     ::  emp_temp, sfx_temp, emp_b_temp
    !
 #if defined key_trabbl
Index: branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/TOP_SRC/trcsub.F90
===================================================================
--- branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/TOP_SRC/trcsub.F90	(revision 3622)
+++ branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/TOP_SRC/trcsub.F90	(revision 3623)
@@ -121,5 +121,5 @@
           fr_i_tm  (:,:)         = fr_i_tm  (:,:)         + fr_i  (:,:)
           emp_tm   (:,:)         = emp_tm   (:,:)         + emp   (:,:) 
-          emps_tm  (:,:)         = emps_tm  (:,:)         + sfx   (:,:)
+          sfx_tm   (:,:)         = sfx_tm   (:,:)         + sfx   (:,:)
           qsr_tm   (:,:)         = qsr_tm   (:,:)         + qsr   (:,:)
           wndm_tm  (:,:)         = wndm_tm  (:,:)         + wndm  (:,:)
@@ -209,5 +209,5 @@
          emp_temp   (:,:)        = emp   (:,:)
          emp_b_temp (:,:)        = emp_b (:,:)
-         emps_temp  (:,:)        = sfx   (:,:)
+         sfx_temp   (:,:)        = sfx   (:,:)
          qsr_temp   (:,:)        = qsr   (:,:)
          wndm_temp  (:,:)        = wndm  (:,:)
@@ -313,5 +313,5 @@
          fr_i_tm  (:,:)          = fr_i_tm    (:,:)       + fr_i  (:,:)
          emp_tm   (:,:)          = emp_tm     (:,:)       + emp   (:,:) 
-         emps_tm  (:,:)          = emps_tm    (:,:)       + sfx   (:,:)
+         sfx_tm   (:,:)          = sfx_tm     (:,:)       + sfx   (:,:)
          qsr_tm   (:,:)          = qsr_tm     (:,:)       + qsr   (:,:)
          wndm_tm  (:,:)          = wndm_tm    (:,:)       + wndm  (:,:)
@@ -332,5 +332,5 @@
             qsr   (:,:)          = qsr_tm     (:,:) * r1_ndttrc 
             emp   (:,:)          = emp_tm     (:,:) * r1_ndttrc 
-            sfx   (:,:)          = emps_tm    (:,:) * r1_ndttrc 
+            sfx   (:,:)          = sfx_tm     (:,:) * r1_ndttrc 
             fr_i  (:,:)          = fr_i_tm    (:,:) * r1_ndttrc
 # if defined key_trabbl
@@ -348,5 +348,5 @@
             qsr   (:,:)          = qsr_tm     (:,:) * r1_ndttrcp1 
             emp   (:,:)          = emp_tm     (:,:) * r1_ndttrcp1 
-            sfx   (:,:)          = emps_tm    (:,:) * r1_ndttrcp1 
+            sfx   (:,:)          = sfx_tm     (:,:) * r1_ndttrcp1 
             fr_i  (:,:)          = fr_i_tm    (:,:) * r1_ndttrcp1 
 # if defined key_trabbl
@@ -598,5 +598,5 @@
       fr_i_tm(:,:) = 0._wp
       emp_tm (:,:) = 0._wp
-      emps_tm(:,:) = 0._wp
+      sfx_tm(:,:)  = 0._wp
       qsr_tm (:,:) = 0._wp
       wndm_tm(:,:) = 0._wp
@@ -705,5 +705,5 @@
       fr_i  (:,:)     =  fr_i_temp  (:,:)
       emp   (:,:)     =  emp_temp   (:,:)
-      sfx   (:,:)     =  emps_temp  (:,:)
+      sfx   (:,:)     =  sfx_temp   (:,:)
       emp_b (:,:)     =  emp_b_temp (:,:)
       qsr   (:,:)     =  qsr_temp   (:,:)
@@ -824,5 +824,5 @@
       fr_i_tm    (:,:) = fr_i  (:,:)
       emp_tm     (:,:) = emp   (:,:)
-      emps_tm    (:,:) = sfx   (:,:)
+      sfx_tm     (:,:) = sfx   (:,:)
       qsr_tm     (:,:) = qsr   (:,:)
       wndm_tm    (:,:) = wndm  (:,:)
@@ -1053,5 +1053,5 @@
          &      rnf_temp(jpi,jpj)           ,  h_rnf_temp(jpi,jpj) ,     &
          &      tsn_temp(jpi,jpj,jpk,2)     ,  emp_b_temp(jpi,jpj),      &
-         &      emp_temp(jpi,jpj)           ,  emps_temp(jpi,jpj) ,      &
+         &      emp_temp(jpi,jpj)           ,  sfx_temp(jpi,jpj)  ,      &
          &      hmld_temp(jpi,jpj)          ,  qsr_temp(jpi,jpj) ,       &
          &      fr_i_temp(jpi,jpj)          ,  fr_i_tm(jpi,jpj) ,        &
@@ -1101,5 +1101,5 @@
          &      sshv_n_tm(jpi,jpj)          ,  sshv_b_hold(jpi,jpj),     &
          &      tsn_tm(jpi,jpj,jpk,2)       ,                            &
-         &      emp_tm(jpi,jpj)             ,  emps_tm(jpi,jpj) ,        &
+         &      emp_tm(jpi,jpj)             ,  sfx_tm(jpi,jpj)  ,        &
          &      emp_b_hold(jpi,jpj)         ,                            &
          &      hmld_tm(jpi,jpj)            ,  qsr_tm(jpi,jpj) ,         &
