Index: CONFIG/IPSLCM/IPSLCM5/branches/IPSLCM5_v2/EXP00/COMP/opa9.driver
===================================================================
--- CONFIG/IPSLCM/IPSLCM5/branches/IPSLCM5_v2/EXP00/COMP/opa9.driver	(revision 704)
+++ CONFIG/IPSLCM/IPSLCM5/branches/IPSLCM5_v2/EXP00/COMP/opa9.driver	(revision 705)
@@ -17,31 +17,34 @@
     ##--Variables used by OPA --
 
-    # cexper experience name for vairmer format
-    # ln_rstart boolean term for restart (true or false)
-    # nrstdt control of the time step (0, 1 or 2)
-    # nit000 number of the first time step
-    # nitend number of the last time step
-    # ndate0 initial calendar date aammjj
-    # nleapy Leap year calendar (1) or not (0), or 360 days calendar (30)
-    # nstock frequency of restart file
-    # nwrite frequency of OUTPUT file
-    # nmsh  =1 create a mesh file (coordinates, scale factors, masks)
-    # nwrihf frequency of HF OUTPUT file
-    # rdt time step in seconds (coming from namelist)
+    # cn_exp    experience name
+    # nn_it000  number of the first time step
+    # nn_itend  number of the last time step
+    # nn_date0  initial calendar date yymmdd (used if  nn_rstctl=1)
+    # nn_leapy  Leap year calendar (1) or not (0), or 360 days calendar (30)
+    # nn_stock  frequency of creation of a restart file (modulo referenced to 1)
+    # nn_write  frequency of write in the output file   (modulo referenced to nn_it000)
+    # ln_rstart start from rest (F) or from a restart file (T)
+    # nn_rstctl restart control = 0 nn_it000 is not compared to the restart file value
+    #                           = 1 use nn_date0 in namelist (not the value in the restart file)
+    #                           = 2 calendar parameters read in the restart file
+    # nn_msh    =1 create a mesh file (coordinates, scale factors, masks)
+    # rn_rdt    time step in seconds for the dynamics (and tracer if nacc=0)   ==> 5760 (coming from namelist)
+    # nn_prg    time-step frequency of gap print in model output
     # nf_ptr_wri frequency of zonal means and transport output
 
-    PAT_CEXPER=$( supergrep cexper     ${SUBMIT_DIR}/PARAM/namelist_${RESOL_OCE} )
-    PAT_NIT000=$( supergrep nit000     ${SUBMIT_DIR}/PARAM/namelist_${RESOL_OCE} )
-    PAT_NITEND=$( supergrep nitend     ${SUBMIT_DIR}/PARAM/namelist_${RESOL_OCE} )
-    PAT_NWRITE=$( supergrep nwrite     ${SUBMIT_DIR}/PARAM/namelist_${RESOL_OCE} )
+    PAT_CEXPER=$( supergrep cn_exp     ${SUBMIT_DIR}/PARAM/namelist_${RESOL_OCE} )
+    PAT_NIT000=$( supergrep nn_it000   ${SUBMIT_DIR}/PARAM/namelist_${RESOL_OCE} )
+    PAT_NITEND=$( supergrep nn_itend   ${SUBMIT_DIR}/PARAM/namelist_${RESOL_OCE} )
+    PAT_NDATE0=$( supergrep nn_date0   ${SUBMIT_DIR}/PARAM/namelist_${RESOL_OCE} )
+    PAT_NLEAPY=$( supergrep nn_leapy   ${SUBMIT_DIR}/PARAM/namelist_${RESOL_OCE} )
+    PAT_NSTOCK=$( supergrep nn_stock   ${SUBMIT_DIR}/PARAM/namelist_${RESOL_OCE} )
+    PAT_NWRITE=$( supergrep nn_write   ${SUBMIT_DIR}/PARAM/namelist_${RESOL_OCE} )
+    PAT_RESTAR=$( supergrep ln_rstart  ${SUBMIT_DIR}/PARAM/namelist_${RESOL_OCE} )
+    PAT_NRSTAR=$( supergrep nn_rstctl  ${SUBMIT_DIR}/PARAM/namelist_${RESOL_OCE} )
+    PAT_NMSH=$(   supergrep nn_msh     ${SUBMIT_DIR}/PARAM/namelist_${RESOL_OCE} )
+    PAT_PRG=$(    supergrep nn_prg ${SUBMIT_DIR}/PARAM/namelist_${RESOL_OCE} )
     PAT_NF_PTR=$( supergrep nf_ptr_wri ${SUBMIT_DIR}/PARAM/namelist_${RESOL_OCE} )
-    PAT_RESTAR=$( supergrep ln_rstart  ${SUBMIT_DIR}/PARAM/namelist_${RESOL_OCE} )
-    PAT_NSTOCK=$( supergrep nstock     ${SUBMIT_DIR}/PARAM/namelist_${RESOL_OCE} )
-    PAT_NRSTAR=$( supergrep nrstdt     ${SUBMIT_DIR}/PARAM/namelist_${RESOL_OCE} )
-    PAT_NDATE0=$( supergrep ndate0     ${SUBMIT_DIR}/PARAM/namelist_${RESOL_OCE} )
-    PAT_NLEAPY=$( supergrep nleapy     ${SUBMIT_DIR}/PARAM/namelist_${RESOL_OCE} )
-    PAT_NMSH=$(   supergrep nmsh       ${SUBMIT_DIR}/PARAM/namelist_${RESOL_OCE} )
-
-    ORCA_RDT=$( supergrep rdt  ${SUBMIT_DIR}/PARAM/namelist_${RESOL_OCE} | sed 's/ *rdt *=//' | sed 's/\. *//' )
+
+    ORCA_RDT=$( supergrep rn_rdt  ${SUBMIT_DIR}/PARAM/namelist_${RESOL_OCE} | sed 's/ *rdt *=//' | sed 's/\. *//' )
 
     # Period Length In Days between DateBegin and first day of calendar 0001 01 01
@@ -168,16 +171,16 @@
 
 
-    sed -e "s/${PAT_CEXPER}/       cexper=\"${config_UserChoices_JobName}\"/" \
-	-e "s/${PAT_NIT000}/       nit000=${ORCA_NIT000}/"                    \
-	-e "s/${PAT_NITEND}/       nitend=${ORCA_NITEND}/"                    \
-	-e "s/${PAT_NWRITE}/       nwrite=${ORCA_NWRITE}/"                    \
+    sed -e "s/${PAT_CEXPER}/       cn_exp=\"${config_UserChoices_JobName}\"/" \
+	-e "s/${PAT_NIT000}/       nn_it000=${ORCA_NIT000}/"                    \
+	-e "s/${PAT_NITEND}/       nn_itend=${ORCA_NITEND}/"                    \
+	-e "s/${PAT_NDATE0}/       nn_date0=${PeriodDateBegin}/"                \
+        -e "s%${PAT_NLEAPY}%       nn_leapy=${ORCA_NLEAPY}%"                    \
+	-e "s/${PAT_NSTOCK}/       nn_stock=${ORCA_NSTOCK}/"                    \
+	-e "s/${PAT_NWRITE}/       nn_write=${ORCA_NWRITE}/"                    \
 	-e "s/${PAT_RESTAR}/       ln_rstart=${ORCA_LRSTAR}/"                 \
-	-e "s/${PAT_NPRG}/         nprg=${ORCA_NWRITE}/"                      \
+	-e "s/${PAT_NRSTAR}/       nn_rstctl=${ORCA_NRSTDT}/"                    \
+	-e "s/${PAT_NMSH}/         nn_msh=${ORCA_NMSH}/"                        \
+	-e "s/${PAT_NPRG}/         nn_prg=${ORCA_NWRITE}/"                      \
 	-e "s/${PAT_NF_PTR}/       nf_ptr_wri=${ORCA_NWRITE}/"                \
-	-e "s/${PAT_NSTOCK}/       nstock=${ORCA_NSTOCK}/"                    \
-	-e "s/${PAT_NRSTAR}/       nrstdt=${ORCA_NRSTDT}/"                    \
-	-e "s/${PAT_NDATE0}/       ndate0=${PeriodDateBegin}/"                \
-        -e "s%${PAT_NLEAPY}%       nleapy=${ORCA_NLEAPY}%"                    \
-	-e "s/${PAT_NMSH}/         nmsh=${ORCA_NMSH}/"                        \
 	namelist > namelist.tmp
 
Index: CONFIG/IPSLCM/IPSLCM5/branches/IPSLCM5_v2/EXP00/PARAM/namelist_ORCA2
===================================================================
--- CONFIG/IPSLCM/IPSLCM5/branches/IPSLCM5_v2/EXP00/PARAM/namelist_ORCA2	(revision 704)
+++ CONFIG/IPSLCM/IPSLCM5/branches/IPSLCM5_v2/EXP00/PARAM/namelist_ORCA2	(revision 705)
@@ -1,14 +1,14 @@
 !!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 !! NEMO/OPA  :  1 - run manager      (namrun)
-!! namelists    2 - Domain           (nam_zgr, nam_zgr_sco, namdom)
+!! namelists    2 - Domain           (namzgr, namzgr_sco, namdom)
 !!              3 - Surface boundary (namsbc, namsbc_ana, namsbc_flx, namsbc_clio, namsbc_core
-!!                                    namsbc_cpl, namqsr, namsbc_rnf, namsbc_ssr, namalb)
-!!              4 - lateral boundary (namlbc, namcla, namobc, namagrif, nambdy, namtide)
+!!                                    namsbc_cpl, namqsr, namsbc_rnf, namsbc_ssr, namsbc_alb)
+!!              4 - lateral boundary (namlbc, namcla, namobc, namagrif, nambdy, nambdy_tide)
 !!              5 - bottom  boundary (nambfr, nambbc, nambbl)
-!!              6 - Tracer           (nameos, nam_traadv, nam_traldf, namtdp)
-!!              7 - dynamics         (nam_dynadv, nam_dynvor, nam_dynhpg, namflg, nam_dynspg, nam_dynldf)
-!!              8 - Verical physics  (namzdf, namnpc, namric, namtke, namkpp, namddm)
+!!              6 - Tracer           (nameos, namtra_adv, namtra_ldf, namtra_dmp)
+!!              7 - dynamics         (namdyn_adv, namdyn_vor, namdyn_hpg, namdyn_spg, namdyn_ldf)
+!!              8 - Verical physics  (namzdf, namzdf_ric, namzdf_tke, namzdf_kpp, namzdf_ddm, namzdf_tmx)
 !!              9 - diagnostics      (namtrd, namgap, namspr, namflo, namptr)
-!!              9 - miscellaneous    (namsol, nam_mpp, nam_mpp_dyndist, namctl)
+!!              9 - miscellaneous    (namsol, nammpp, nammpp_dyndist, namctl)
 !!>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 !  CAUTION: some scripts does not support CAPITALs for logical use .true./.false., not .TRUE./.FALSE.
@@ -23,32 +23,34 @@
 &namrun        !   parameters of the run
 !-----------------------------------------------------------------------
-   no          =       0       !  job number
-   cexper      =  "ORCA2"      !  AUTO - experience name 
+   nn_no       =       0   !  job number
+   cn_exp      =  "ORCA2"  !  AUTO - experience name 
+   nn_it000    =       1   !  AUTO - first time step
+   nn_itend    =    5475   !  AUTO - last  time step(std 5475)
+   nn_date0    =  010101   !  AUTO - initial calendar date yymmdd (used if  nn_rstctl=1)
+   nn_leapy    =       0   !  AUTO - Leap year calendar (1) or not (0)
+   nn_istate   =       0   !  output the initial state (1) or not (0)
+   nn_stock    =    5475   !  AUTO - frequency of creation of a restart file (modulo referenced to 1)
+   nn_write    =    5475   !  AUTO - frequency of write in the output file   (modulo referenced to nn_it000)
+   ln_dimgnnn  = .false.   !  DIMG file format: 1 file for all processors (F) or by processor (T)
+   ln_mskland  = .true.    !  mask land points in NetCDF outputs (costly: + ~15%)
+   ln_clobber  = .false.   !  clobber (overwrite) an existing file
+   nn_chunksz  =       0   !  chunksize (bytes) for NetCDF file (working only with iom_nf90 routines)
+   ln_rstart   = .false.   !  AUTO - start from rest (F) or from a restart file (T)
+   nn_rstctl   =       0   !  AUTO - restart control = 0 nn_it000 is not compared to the restart file value
+                           !                  = 1 use nn_date0 in namelist (not the value in the restart file)
+                           !                  = 2 calendar parameters read in the restart file
    cn_ocerst_in  = "restartopa"!  suffix of ocean restart name (input)
    cn_ocerst_out = "restart"   !  suffix of ocean restart name (output)
-   ln_rstart   = .false.   !  AUTO - start from rest (F) or from a restart file (T)
-   nrstdt      =       0   !  AUTO - restart control = 0 nit000 is not compared to the restart file value
-                           !                  = 1 use ndate0 in namelist (not the value in the restart file)
-                           !                  = 2 calendar parameters read in the restart file
-   nit000      =       1   !  AUTO - first time step
-   nitend      =    5475   !  AUTO - last  time step
-   ndate0      =  010101   !  AUTO - initial calendar date yymmdd (used if nrstdt=1)
-   nleapy      =       0   !  AUTO - Leap year calendar (1) or not (0)
-   ninist      =       0   !  output the initial state (1) or not (0)
-   nstock      =    5475   !  AUTO - frequency of creation of a restart file (modulo referenced to 1)
-   nwrite      =    5475   !  AUTO - frequency of write in the output file   (modulo referenced to nit000)
-   ln_dimgnnn  = .false.   !  DIMG file format: 1 file for all processors (F) or by processor (T)
-   ln_mskland  = .true.    !  mask land points in NetCDF outputs (costly: + ~15%)
 /
 !!======================================================================
 !!                      ***  Domain namelists  ***
 !!======================================================================
-!!   nam_zgr       vertical coordinate
-!!   nam_zgr_sco   s-coordinate or hybrid z-s-coordinate
-!!   namdom        space and time domain (bathymetry, mesh, timestep)
-!!======================================================================
-
-!-----------------------------------------------------------------------
-&nam_zgr       !   vertical coordinate
+!!   namzgr       vertical coordinate
+!!   namzgr_sco   s-coordinate or hybrid z-s-coordinate
+!!   namdom       space and time domain (bathymetry, mesh, timestep)
+!!======================================================================
+
+!-----------------------------------------------------------------------
+&namzgr        !   vertical coordinate
 !-----------------------------------------------------------------------
    ln_zco      = .false.   !  z-coordinate - full    steps   (T/F)      ("key_zco" may also be defined)
@@ -57,29 +59,32 @@
 /
 !-----------------------------------------------------------------------
-&nam_zgr_sco   !   s-coordinate or hybrid z-s-coordinate
-!-----------------------------------------------------------------------
-   sbot_min    =  300.     !  minimum depth of s-bottom surface (>0) (m)
-   sbot_max    = 5250.     !  maximum depth of s-bottom surface (= ocean depth) (>0) (m)
-   theta       =    6.0    !  surface control parameter (0<=theta<=20)
-   thetb       =    0.75   !  bottom control parameter  (0<=thetb<= 1)
-   r_max       =    0.15   !  maximum cut-off r-value allowed (0<r_max<1)
+&namzgr_sco    !   s-coordinate or hybrid z-s-coordinate
+!-----------------------------------------------------------------------
+   rn_sbot_min =  300.     !  minimum depth of s-bottom surface (>0) (m)
+   rn_sbot_max = 5250.     !  maximum depth of s-bottom surface (= ocean depth) (>0) (m)
+   rn_theta    =    6.0    !  surface control parameter (0<=theta<=20)
+   rn_thetb    =    0.75   !  bottom control parameter  (0<=thetb<= 1)
+   rn_rmax     =    0.15   !  maximum cut-off r-value allowed (0<r_max<1)
+   ln_s_sigma  = .false.   !  hybrid s-sigma coordinates
+   rn_bb       =    0.8    !  stretching with s-sigma
+   rn_hc       =  150.0    !  critical depth with s-sigma 
 /
 !-----------------------------------------------------------------------
 &namdom        !   space and time domain (bathymetry, mesh, timestep)
 !-----------------------------------------------------------------------
-   ntopo       =    1      !  compute (=0) or read(=1) the bathymetry file
-   e3zps_min   =    5.     !  the thickness of the partial step is set larger than the minimum
-   e3zps_rat   =    0.1    !  of e3zps_min and e3zps_rat * e3t   (N.B. 0<e3zps_rat<1)
-   nmsh        =    0      !  AUTO - create (=1) a mesh file (coordinates, scale factors, masks) or not (=0)
-   nacc        =    0      !  =1 acceleration of convergence method used, rdt < rdttra(k)
-                           !  =0, no acceleration, rdt = rdttra
-   atfp        =    0.1    !  asselin time filter parameter
-   rdt         = 5760.     !  time step for the dynamics (and tracer if nacc=0)
-   rdtmin      = 5760.     !  minimum time step on tracers (used if nacc=1)
-   rdtmax      = 5760.     !  maximum time step on tracers (used if nacc=1)
-   rdth        =  800.     !  depth variation of tracer time step  (used if nacc=1)
+   nn_bathy    =    1      !  compute (=0) or read(=1) the bathymetry file
+   nn_closea   =    1      !  closed seas and lakes are removed (=0) or kept (=1) from the ORCA domain
+   nn_msh      =    0      !  AUTO create (=1) a mesh file (coordinates, scale factors, masks) or not (=0)
+   rn_e3zps_min=    5.     !  the thickness of the partial step is set larger than the minimum
+   rn_e3zps_rat=    0.1    !  of e3zps_min and e3zps_rat * e3t   (N.B. 0<e3zps_rat<1)
+                           !
+   rn_rdt      = 5760.     !  time step for the dynamics (and tracer if nacc=0)   ==> 5760
    nn_baro     =   64      !  number of barotropic time step (for the split explicit algorithm) ("key_dynspg_ts")
-   nclosea     =    1      !  = 0 no closed sea in the model domain
-                           !  = 1 closed sea (Black Sea, Caspian Sea, Great US Lakes...) 
+   rn_atfp     =    0.1    !  asselin time filter parameter
+   nn_acc      =    0      !  acceleration of convergence : =1      used, rdt < rdttra(k)
+                                 !                          =0, not used, rdt = rdttra
+   rn_rdtmin   = 28800.          !  minimum time step on tracers (used if nacc=1)
+   rn_rdtmax   = 28800.          !  maximum time step on tracers (used if nacc=1)
+   rn_rdth     =  800.           !  depth variation of tracer time step  (used if nacc=1)
 /
 !!======================================================================
@@ -92,8 +97,8 @@
 !!   namsbc_core   CORE bulk formulea formulation
 !!   namsbc_cpl    CouPLed            formulation                       ("key_coupled")
-!!   namqsr        penetrative solar radiation
+!!   namtra_qsr    penetrative solar radiation
 !!   namsbc_rnf    river runoffs
 !!   namsbc_ssr    sea surface restoring term (for T and/or S)
-!!   namalb        albedo parameters
+!!   namsbc_alb    albedo parameters
 !!======================================================================
 
@@ -117,7 +122,8 @@
    ln_rnf      = .true.    !  runoffs (T => fill namsbc_rnf)
    ln_ssr      = .false.   !  Sea Surface Restoring on T and/or S (T => fill namsbc_ssr)
-   nn_fwb      = 0         !  FreshWater Budget: =0 unchecked                              , 
-                           !                     =1 global mean of e-p-r set to zero at each nn_fsbc time step   ,
+   nn_fwb      = 3         !  FreshWater Budget: =0 unchecked 
+                           !                     =1 global mean of e-p-r set to zero at each time step 
                            !                     =2 annual global mean of e-p-r set to zero
+                           !                     =3 global emp set to zero and spread out over erp area
 /
 !-----------------------------------------------------------------------
@@ -134,11 +140,11 @@
 &namsbc_flx    !   surface boundary condition : flux formulation
 !-----------------------------------------------------------------------
-!              !      file name     ! frequency (hours) !  variable  ! time interpol. !  clim   ! 'yearly' or ! weights  ! rotation !
-!              !                    !  (if <0  months)  !    name    !    (logical)   !  (T/F)  !  'monthly'  ! filename ! pairing  !
-   sn_utau     =      'utau'        ,        24.        ,    'utau'  ,     .false.    , .false. ,   'yearly'  , ''       , ''
-   sn_vtau     =      'vtau'        ,        24.        ,    'vtau'  ,     .false.    , .false. ,   'yearly'  , ''       , ''
-   sn_qtot     =      'qtot'        ,        24.        ,    'qtot'  ,     .false.    , .false. ,   'yearly'  , ''       , ''
-   sn_qsr      =      'qsr'         ,        24.        ,    'qsr'   ,     .false.    , .false. ,   'yearly'  , ''       , ''
-   sn_emp      =      'emp'         ,        24.        ,    'emp'   ,     .false.    , .false. ,   'yearly'  , ''       , ''
+!              !   file name  ! frequency (hours) !  variable  ! time interpol. !  clim   ! 'yearly'/ ! weights  ! rotation !
+!              !              !  (if <0  months)  !    name    !    (logical)   !  (T/F)  ! 'monthly' ! filename ! pairing  !
+   sn_utau     = 'utau'       ,        24.        ,    'utau'  ,     .false.    , .false. , 'yearly'  , ''       , ''
+   sn_vtau     = 'vtau'       ,        24.        ,    'vtau'  ,     .false.    , .false. , 'yearly'  , ''       , ''
+   sn_qtot     = 'qtot'       ,        24.        ,    'qtot'  ,     .false.    , .false. , 'yearly'  , ''       , ''
+   sn_qsr      = 'qsr'        ,        24.        ,    'qsr'   ,     .false.    , .false. , 'yearly'  , ''       , ''
+   sn_emp      = 'emp'        ,        24.        ,    'emp'   ,     .false.    , .false. , 'yearly'  , ''       , ''
 !
    cn_dir      = './'      !  root directory for the location of the flux files
@@ -147,13 +153,13 @@
 &namsbc_clio   !   namsbc_clio  CLIO bulk formulea
 !-----------------------------------------------------------------------
-!              !      file name     ! frequency (hours) !  variable  ! time interpol. !  clim   ! 'yearly' or ! weights  ! rotation !
-!              !                    !  (if <0  months)  !    name    !    (logical)   !  (T/F)  !  'monthly'  ! filename ! pairing  !
-   sn_utau     =    'taux_1m'       ,       -1.         , 'sozotaux' ,    .true.      , .true.  ,   'yearly'  , ''       , ''
-   sn_vtau     =    'tauy_1m'       ,       -1.         , 'sometauy' ,    .true.      , .true.  ,   'yearly'  , ''       , ''
-   sn_wndm     =    'flx'           ,       -1.         , 'socliowi' ,    .true.      , .true.  ,   'yearly'  , ''       , ''
-   sn_tair     =    'flx'           ,       -1.         , 'socliot2' ,    .true.      , .true.  ,   'yearly'  , ''       , ''
-   sn_humi     =    'flx'           ,       -1.         , 'socliohu' ,    .true.      , .true.  ,   'yearly'  , ''       , ''
-   sn_ccov     =    'flx'           ,       -1.         , 'socliocl' ,    .false.     , .true.  ,   'yearly'  , ''       , ''
-   sn_prec     =    'flx'           ,       -1.         , 'socliopl' ,    .false.     , .true.  ,   'yearly'  , ''       , ''
+!              !   file name  ! frequency (hours) !  variable  ! time interpol. !  clim   ! 'yearly'/ ! weights  ! rotation !
+!              !              !  (if <0  months)  !    name    !    (logical)   !  (T/F)  ! 'monthly' ! filename ! pairing  !
+   sn_utau     = 'taux_1m'    ,       -1.         , 'sozotaux' ,    .true.      , .true.  , 'yearly'  , ''       , ''
+   sn_vtau     = 'tauy_1m'    ,       -1.         , 'sometauy' ,    .true.      , .true.  , 'yearly'  , ''       , ''
+   sn_wndm     = 'flx'        ,       -1.         , 'socliowi' ,    .true.      , .true.  , 'yearly'  , ''       , ''
+   sn_tair     = 'flx'        ,       -1.         , 'socliot2' ,    .true.      , .true.  , 'yearly'  , ''       , ''
+   sn_humi     = 'flx'        ,       -1.         , 'socliohu' ,    .true.      , .true.  , 'yearly'  , ''       , ''
+   sn_ccov     = 'flx'        ,       -1.         , 'socliocl' ,    .false.     , .true.  , 'yearly'  , ''       , ''
+   sn_prec     = 'flx'        ,       -1.         , 'socliopl' ,    .false.     , .true.  , 'yearly'  , ''       , ''
 !
    cn_dir      = './'      !  root directory for the location of the bulk files are
@@ -162,23 +168,23 @@
 &namsbc_core   !   namsbc_core  CORE bulk formulea
 !-----------------------------------------------------------------------
-!              !   file name        ! frequency (hours) ! variable   ! time interpol. !  clim   ! 'yearly' or ! weights  ! rotation !
-!              !                    !  (if <0  months)  !   name     !    (logical)   !  (T/F)  !  'monthly'  ! filename ! pairing  !
-   sn_wndi     =    'u10_core'      ,       -1.         , 'u10'      ,    .true.      , .true.  ,   'yearly'  ,'bicubic_weights_orca2.nc' ,  'U1'
-   sn_wndj     =    'v10_core'      ,       -1.         , 'v10'      ,    .true.      , .true.  ,   'yearly'  ,'bicubic_weights_orca2.nc' ,  'V1'
-   sn_qsr      =    'qsw_core'      ,       -1.         , 'swdn'     ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  ''
-   sn_qlw      =    'qlw_core'      ,       -1.         , 'lwdn'     ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  ''
-   sn_tair     =    't2_core'       ,       -1.         , 't2'       ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  ''
-   sn_humi     =    'q2_core'       ,       -1.         , 'q2'       ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  ''
-   sn_prec     =    'precip_core'   ,       -1.         , 'precip'   ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  ''
-   sn_snow     =    'snow_core'     ,       -1.         , 'snow'     ,    .true.      , .true.  ,   'yearly'  ,'bilinear_weights_orca2.nc',  ''
+!              !   file name  ! frequency (hours) ! variable   ! time interpol. !  clim   ! 'yearly'/ ! weights              ! rotation !
+!              !              !  (if <0  months)  !   name     !    (logical)   !  (T/F)  ! 'monthly' ! filename             ! pairing  !
+   sn_wndi     = 'u10_core'   ,       -1.         , 'u10'      ,    .true.      , .true.  , 'yearly'  ,'bicubic_weights_orca2.nc' , 'U1'
+   sn_wndj     = 'v10_core'   ,       -1.         , 'v10'      ,    .true.      , .true.  , 'yearly'  ,'bicubic_weights_orca2.nc' , 'V1'
+   sn_qsr      = 'qsw_core'   ,       -1.         , 'swdn'     ,    .true.      , .true.  , 'yearly'  ,'bilinear_weights_orca2.nc', ''
+   sn_qlw      = 'qlw_core'   ,       -1.         , 'lwdn'     ,    .true.      , .true.  , 'yearly'  ,'bilinear_weights_orca2.nc', ''
+   sn_tair     = 't2_core'    ,       -1.         , 't2'       ,    .true.      , .true.  , 'yearly'  ,'bilinear_weights_orca2.nc', ''
+   sn_humi     = 'q2_core'    ,       -1.         , 'q2'       ,    .true.      , .true.  , 'yearly'  ,'bilinear_weights_orca2.nc', ''
+   sn_prec     = 'precip_core',       -1.         , 'precip'   ,    .true.      , .true.  , 'yearly'  ,'bilinear_weights_orca2.nc', ''
+   sn_snow     = 'snow_core'  ,       -1.         , 'snow'     ,    .true.      , .true.  , 'yearly'  ,'bilinear_weights_orca2.nc', ''
 !
    cn_dir      = './'      !  root directory for the location of the bulk files
    ln_2m       = .false.   !  air temperature and humidity referenced at 2m (T) instead 10m (F)
-   alpha_precip= 1.        !  multiplicative factor for precipitation (total & snow)
+   rn_pfac     = 1.        !  multiplicative factor for precipitation (total & snow)
 /
 !-----------------------------------------------------------------------
 &namsbc_cpl    !   coupled ocean/atmosphere model                        ("key_coupled")
 !-----------------------------------------------------------------------
-! SEND
+                                       ! send
 cn_snd_temperature= 'weighted oce and ice'  ! 'oce only' 'weighted oce and ice' 'mixed oce-ice'
 cn_snd_albedo     = 'weighted ice'          ! 'none' 'weighted ice' 'mixed oce-ice'
@@ -188,5 +194,5 @@
 cn_snd_crt_orient = 'eastward-northward'    ! 'eastward-northward' or 'local grid'
 cn_snd_crt_grid   = 'T'                     ! 'T'
-! RECEIVE
+                                       ! receive
 cn_rcv_w10m       = 'none'                  ! 'none' 'coupled'
 cn_rcv_tau_nature = 'mixed oce-ice'         ! 'oce only' 'oce and ice' 'mixed oce-ice'
@@ -202,19 +208,35 @@
 /
 !-----------------------------------------------------------------------
-&namqsr        !   penetrative solar radiation
-!-----------------------------------------------------------------------
-   ln_traqsr   = .true.    !  penetrative solar radiation (T) or not (F)
-   rabs        =   0.58    !  fraction of qsr associated with xsi1
-   xsi1        =   0.35    !  first depth of extinction
-   xsi2        =   23.0    !  second depth of extinction
+&namsbc_cpl_co2   !   coupled ocean/biogeo/atmosphere model            ("key_cpl_carbon_cycle")
+!-----------------------------------------------------------------------
+cn_snd_co2        = 'coupled'         ! send    :  'none' 'coupled'
+cn_rcv_co2        = 'coupled'         ! receive : 'none' 'coupled'
+/
+!-----------------------------------------------------------------------
+&namtra_qsr    !   penetrative solar radiation
+!-----------------------------------------------------------------------
+!              !   file name  ! frequency (hours) ! variable   ! time interpol. !  clim   ! 'yearly'/ ! weights  ! rotation !
+!              !              !  (if <0  months)  !   name     !    (logical)   !  (T/F)  ! 'monthly' ! filename ! pairing  !
+   sn_chl      = 'chlorophyll',        -1.        , 'CHLA'     ,    .true.      , .true.  , 'yearly'  , ''       , ''
+ 
+   cn_dir      = './'      !  root directory for the location of the runoff files
+   ln_traqsr   = .true.    !  Light penetration (T) or not (F)
+   ln_qsr_rgb  = .true.    !  RGB (Red-Green-Blue) light penetration
+   ln_qsr_2bd  = .false.   !  2 bands              light penetration
+   ln_qsr_bio  = .false.   !  bio-model light penetration
+   nn_chldta   =      0    !  RGB : Chl data (=1) or cst value (=0)
+   rn_abs      =   0.58    !  RGB & 2 bands: fraction of light (rn_si1)
+   rn_si0      =   0.35    !  RGB & 2 bands: shortess depth of extinction
+   rn_si1      =   23.0    !  2 bands: longest depth of extinction
+   rn_si2      =   62.0    !  3 bands: longest depth of extinction (for blue waveband & 0.01 mg/m2 Chl)
 /
 !-----------------------------------------------------------------------
 &namsbc_rnf    !   runoffs namelist surface boundary condition
 !-----------------------------------------------------------------------
-!              !     file name      ! frequency (hours) ! variable   ! time interpol. !  clim   ! 'yearly' or ! weights  ! rotation !
-!              !                    !  (if <0  months)  !   name     !    (logical)   !  (T/F)  !  'monthly'  ! filename ! pairing  !
-   sn_rnf    =   'runoff_1m_nomask' ,        -1.        , 'sorunoff' ,    .true.      , .true.  ,   'yearly'  , ''       , ''
-   sn_cnf    =   'runoff_1m_nomask' ,         0.        , 'socoefr'  ,    .false.     , .true.  ,   'yearly'  , ''       , ''
-!
+!              !   file name  ! frequency (hours) ! variable   ! time interpol. !  clim   ! 'yearly'/ ! weights  ! rotation !
+!              !              !  (if <0  months)  !   name     !    (logical)   !  (T/F)  ! 'monthly' ! filename ! pairing  !
+   sn_rnf      = 'runoff_1m_nomask' ,  -1.        , 'sorunoff' ,    .true.      , .true.  , 'yearly'  , ''       , ''
+   sn_cnf      = 'runoff_1m_nomask' ,   0.        , 'socoefr'  ,    .false.     , .true.  , 'yearly'  , ''       , ''
+ 
    cn_dir       = './'      !  root directory for the location of the runoff files
    ln_rnf_emp   =   .true.  !  runoffs included into precipitation field (T) or into a file (F)
@@ -222,28 +244,33 @@
    rn_hrnf      =   0.e0    !  depth over which enhanced vertical mixing is used
    rn_avt_rnf   =   1.e-3   !  value of the additional vertical mixing coef. [m2/s]
+   rn_rfact     =   1.e0    !  multiplicative factor for runoff
 /
 !-----------------------------------------------------------------------
 &namsbc_ssr    !   surface boundary condition : sea surface restoring
 !-----------------------------------------------------------------------
-!              !     file name      ! frequency (hours) ! variable   ! time interpol. !  clim   ! 'yearly' or ! weights  ! rotation !
-!              !                    !  (if <0  months)  !   name     !    (logical)   !  (T/F)  !  'monthly'  ! filename ! pairing  !
-   sn_sst      =    'sst_data'     ,        24.        ,  'sst'     ,     .false.    , .false. ,   'yearly'   , ''       , ''
-   sn_sss      =    'sss_data'     ,        -1.        ,  'sss'     ,     .true.     , .true.  ,   'yearly'   , ''       , ''
-!   
+!              !   file name  ! frequency (hours) ! variable   ! time interpol. !  clim   ! 'yearly'/ ! weights  ! rotation !
+!              !              !  (if <0  months)  !   name     !    (logical)   !  (T/F)  ! 'monthly' ! filename ! pairing  !
+   sn_sst      = 'sst_data'   ,        24.        ,  'sst'     ,     .false.    , .false. , 'yearly'  , ''       , ''
+   sn_sss      = 'sss_data'   ,        -1.        ,  'sss'     ,     .true.     , .true.  , 'yearly'  , ''       , ''
+    
    cn_dir      = './'      !  root directory for the location of the runoff files
    nn_sstr     =     0     !  add a retroaction term in the surface heat       flux (=1) or not (=0)
-   nn_sssr     =     1     !  add a damping     term in the surface freshwater flux (=1) or not (=0)
-   dqdt        =   -40.    !  magnitude of the retroaction on temperature   [W/m2/K]
-   deds        =   -27.7   !  magnitude of the damping on salinity   [mm/day/psu]
+   nn_sssr     =     2     !  add a damping     term in the surface freshwater flux (=2) 
+                           !  or to SSS only (=1) or no damping term (=0)
+   rn_dqdt     =   -40.    !  magnitude of the retroaction on temperature   [W/m2/K]
+   rn_deds     =   -27.7   !  magnitude of the damping on salinity   [mm/day/psu]
+   ln_sssr_bnd =   .true.  !  flag to bound erp term (associated with nn_sssr=2)
+   rn_sssr_bnd =   4.e0    !  ABS(Max/Min) value of the damping erp term [mm/day]
 /      
 !-----------------------------------------------------------------------
-&namalb        !   albedo parameters
-!-----------------------------------------------------------------------
-   cgren       =    0.0    !  correction of the snow or ice albedo to take into account the
-   albice      =    0.5    !  albedo of melting ice in the arctic and antarctic
-   alphd       =    0.80   !  coefficients for linear interpolation used to
-   alphc       =    0.65   !  compute albedo between two extremes values 
-   alphdi      =    0.72   !  (Pyane, 1972)
-/
+&namsbc_alb    !   albedo parameters
+!-----------------------------------------------------------------------
+   rn_cloud    =    0.0    !  cloud correction to snow and ice albedo 
+   rn_albice   =    0.5    !  albedo of melting ice in the arctic and antarctic
+   rn_alphd    =    0.80   !  coefficients for linear interpolation used to
+   rn_alphc    =    0.65   !  compute albedo between two extremes values 
+   rn_alphdi   =    0.72   !  (Pyane, 1972)
+/
+
 !!======================================================================
 !!               ***  Lateral boundary condition  ***
@@ -260,45 +287,43 @@
 &namlbc        !   lateral momentum boundary condition
 !-----------------------------------------------------------------------
-   shlat       =    2.     !      shlat = 0 : free slip
-                           !  0 < shlat < 2 : partial slip
-                           !      shlat = 2 : no slip
-                           !  2 < shlat     : strong slip
+   rn_shlat    =    2.     !  shlat = 0  !  0 < shlat < 2  !  shlat = 2  !  2 < shlat
+                           !  free slip  !   partial slip  !   no slip   ! strong slip
 /
 !-----------------------------------------------------------------------
 &namcla        !   cross land advection
 !-----------------------------------------------------------------------
-   n_cla       =    0      !  advection between 2 ocean pts separates by land
+   nn_cla      =    0      !  advection between 2 ocean pts separates by land
 /
 !-----------------------------------------------------------------------
 &namobc        !   open boundaries parameters                           ("key_obc")
 !-----------------------------------------------------------------------
-    nobc_dta   =    1      !  = 0 the obc data are equal to the initial state
-                           !  = 1 the obc data are read in 'obc.dta' files
-    cffile     = 'annual'  !  set to annual if obc datafile hold 1 year of data
-                           !  set to monthly if obc datafile hold 1 month of data
-    rdpein     =    1.     !  ???
-    rdpwin     =    1.     !  ???
-    rdpnin     =    1.     !  ???
-    rdpsin     =    1.     !  ???
-    rdpeob     = 3000.     !  time relaxation (days) for the east  open boundary
-    rdpwob     =   15.     !    "        "             "     west         "
-    rdpnob     = 3000.     !    "        "             "     north        "
-    rdpsob     =   15.     !    "        "             "     south        "
-    zbsic1     =  140.e+6  !   barotropic stream function on first  isolated coastline
-    zbsic2     =    1.e+6  !    "                   "        second       "
-    zbsic3     =    0.     !    "                   "        thrid        "
     ln_obc_clim= .false.   !  climatological obc data files (T) or not (F)
     ln_vol_cst = .true.    !  impose the total volume conservation (T) or not (F)
-/
-!-----------------------------------------------------------------------
-&namagrif      !                                                        ("key_agrif")
-!-----------------------------------------------------------------------
-    nbclineupdate = 3      !  baroclinic update frequency
+    ln_obc_fla = .false.   !  Flather open boundary condition 
+    nn_obcdta  =    1      !  = 0 the obc data are equal to the initial state
+                           !  = 1 the obc data are read in 'obc.dta' files
+    cn_obcdta  = 'annual'  !  set to annual if obc datafile hold 1 year of data
+                           !  set to monthly if obc datafile hold 1 month of data
+    rn_dpein   =    1.     !  damping time scale for inflow at east  open boundary
+    rn_dpwin   =    1.     !     -           -         -       west    -      -
+    rn_dpnin   =    1.     !     -           -         -       north   -      -
+    rn_dpsin   =    1.     !     -           -         -       south   -      -
+    rn_dpeob   = 3000.     !  time relaxation (days) for the east  open boundary
+    rn_dpwob   =   15.     !     -           -         -     west    -      -
+    rn_dpnob   = 3000.     !     -           -         -     north   -      -
+    rn_dpsob   =   15.     !     -           -         -     south   -      -
+    rn_volemp  =  1.       !  = 0 the total volume change with the surface flux (E-P-R)
+                           !  = 1 the total volume remains constant
+/
+!-----------------------------------------------------------------------
+&namagrif      !  AGRIF zoom                                            ("key_agrif")
+!-----------------------------------------------------------------------
+    nn_cln_update = 3      !  baroclinic update frequency
     ln_spc_dyn    = .true. !  use 0 as special value for dynamics
-    visc_tra      = 2880.  !  viscosity coeeficient for tracers sponge layer
-    visc_dyn      = 2880.  !  viscosity coeeficient for dynamics sponge layer
-/
-!-----------------------------------------------------------------------
-&nambdy        !  unstructured open boundaries parameters               ("key_bdy")
+    rn_sponge_tra = 2880.  !  coefficient for tracer   sponge layer [s]
+    rn_sponge_dyn = 2880.  !  coefficient for dynamics sponge layer [s]
+/
+!-----------------------------------------------------------------------
+&nambdy        !  unstructured open boundaries                          ("key_bdy")
 !-----------------------------------------------------------------------
     filbdy_mask    =  ''                  !  name of mask file (if ln_bdy_mask=.TRUE.)
@@ -320,5 +345,5 @@
 /
 !-----------------------------------------------------------------------
-&namtide        ! tidal forcing at unstructured boundaries              
+&nambdy_tide     ! tidal forcing at unstructured boundaries              
 !-----------------------------------------------------------------------
     filtide      = 'bdytide_'           !  file name root of tidal forcing files
@@ -327,4 +352,5 @@
     ln_tide_date = .false.              !  adjust tidal harmonics for start date of run
 /
+
 !!======================================================================
 !!                 ***  Bottom boundary condition  ***
@@ -338,17 +364,17 @@
 &nambfr        !   bottom friction
 !-----------------------------------------------------------------------
-   nbotfr      =    1      !  type of bottom friction :   = 0 : no   slip,  = 2 : nonlinear friction
+   nn_bfr      =    1      !  type of bottom friction :   = 0 : no   slip,  = 2 : nonlinear friction
                            !                              = 3 : free slip,  = 1 :    linear friction
-   bfri1       =    4.e-4  !  bottom drag coefficient (linear case)
-   bfri2       =    1.e-3  !  bottom drag coefficient (non linear case)
-   bfeb2       =    2.5e-3 !  bottom turbulent kinetic energy background  (m^2/s^2)
+   rn_bfri1    =    4.e-4  !  bottom drag coefficient (linear case)
+   rn_bfri2    =    1.e-3  !  bottom drag coefficient (non linear case)
+   rn_bfeb2    =    2.5e-3 !  bottom turbulent kinetic energy background  (m^2/s^2)
 /
 !-----------------------------------------------------------------------
 &nambbc        !   bottom temperature boundary condition
 !-----------------------------------------------------------------------
-   ngeo_flux   =    2      !  geothermal heat flux = 0 no flux considered 
-                           !                       = 1 constant flux
-                           !                       = 2 variable flux (read in geothermal_heating.nc in mW/m2) 
-   ngeo_flux_const = 86.4e-3  !  Constant value of geothermal heat flux [W/m2]
+   nn_geoflx   =    2      !  geothermal heat flux: = 0 no flux 
+                           !     = 1 constant flux
+                           !     = 2 variable flux (read in geothermal_heating.nc in mW/m2) 
+   rn_geoflx_cst = 86.4e-3 !  Constant value of geothermal heat flux [W/m2]
 /
 !-----------------------------------------------------------------------
@@ -357,5 +383,5 @@
 !                          !  diffusive bbl                             ("key_trabbl")
 !                          !  advective bbl                             ("key_trabbl_adv")
-   atrbbl      =  10000.   !  lateral mixing coefficient in the bbl  [m2/s]
+   rn_ahtbbl   =  10000.   !  lateral mixing coefficient in the bbl  [m2/s]
 /
 !!======================================================================
@@ -363,7 +389,7 @@
 !!======================================================================
 !!   nameos        equation of state
-!!   nam_traadv    advection scheme
-!!   nam_traldf    lateral diffusion scheme
-!!   namtdp        tracer newtonian damping                             ("key_tradmp")
+!!   namtra_adv    advection scheme
+!!   namtra_ldf    lateral diffusion scheme
+!!   namtra_dmp    T & S newtonian damping                              ("key_tradmp")
 !!======================================================================
 
@@ -371,13 +397,13 @@
 &nameos        !   ocean physical parameters
 !-----------------------------------------------------------------------
-   neos        =    0      !  type of equation of state and Brunt-Vaisala frequency
+   nn_eos      =    0      !  type of equation of state and Brunt-Vaisala frequency
                            !     = 0, UNESCO (formulation of Jackett and McDougall (1994) and of McDougall (1987) )
                            !     = 1, linear: rho(T)   = rau0 * ( 1.028 - ralpha * T )
                            !     = 2, linear: rho(T,S) = rau0 * ( rbeta * S - ralpha * T )
-   ralpha      =    2.e-4  !  thermal expension coefficient (neos= 1 or 2)
-   rbeta       =    0.001  !  saline  expension coefficient (neos= 2)
-/
-!-----------------------------------------------------------------------
-&nam_traadv    !   advection scheme for tracer 
+   rn_alpha    =    2.e-4  !  thermal expension coefficient (neos= 1 or 2)
+   rn_beta     =    0.001  !  saline  expension coefficient (neos= 2)
+/
+!-----------------------------------------------------------------------
+&namtra_adv    !   advection scheme for tracer 
 !-----------------------------------------------------------------------
    ln_traadv_cen2   =  .true.   !  2nd order centered scheme   
@@ -388,46 +414,44 @@
 /
 !-----------------------------------------------------------------------
-&nam_traldf    !   lateral diffusion scheme for tracer 
-!-----------------------------------------------------------------------
-!                               !  Type of the operator : 
+&namtra_ldf    !   lateral diffusion scheme for tracer 
+!-----------------------------------------------------------------------
+                           !  Type of the operator : 
    ln_traldf_lap    =  .true.   !     laplacian operator       
    ln_traldf_bilap  =  .false.  !     bilaplacian operator     
-                                !  Direction of action  :
+                           !  Direction of action  :
    ln_traldf_level  =  .false.  !     iso-level                
    ln_traldf_hor    =  .false.  !     horizontal (geopotential)         (require "key_ldfslp" when ln_sco=T)
    ln_traldf_iso    =  .true.   !     iso-neutral                       (require "key_ldfslp")
-!                               !  Coefficient
-   aht0        =  2000.         !     horizontal eddy diffusivity for tracers [m2/s]
-   ahtb0       =     0.         !     background eddy diffusivity for ldf_iso [m2/s]
-   aeiv0       =  2000.         !     eddy induced velocity coefficient [m2/s]    (require "key_traldf_eiv")
-/
-!-----------------------------------------------------------------------
-&namtdp        !   tracer newtonian damping                             ('key_tradmp')
-!-----------------------------------------------------------------------
-   ndmp        =   -1      !  type of damping in temperature and salinity 
-                           !     ='latitude', damping poleward of 'ndmp' degrees and function 
-                           !                  of the distance-to-coast. Red and Med Seas as ndmp=-1
-                           !     =-1 damping only in Med and Red Seas
-   ndmpf       =    1      !  create a damping.coeff NetCDF file (=1) or not (=0)
-   nmldmp      =    1      !  type of damping: =0 damping throughout the water column
-                           !                   =1 no damping in the mixed layer defined by avt >5cm2/s )
-                           !                   =2 no damping in the mixed layer defined rho<rho(surf)+.01 )
-   sdmp        =   50.     !  surface time scale for internal damping (days)
-   bdmp        =  360.     !  bottom  time scale for internal damping (days)
-   hdmp        =  800.     !  depth of transition between sdmp and bdmp (meters)
+                           !  Coefficient
+   rn_aht_0         =  2000.    !     horizontal eddy diffusivity for tracers [m2/s]
+   rn_ahtb_0        =     0.    !     background eddy diffusivity for ldf_iso [m2/s]
+   rn_aeiv_0        =  2000.    !     eddy induced velocity coefficient [m2/s]    (require "key_traldf_eiv")
+/
+!-----------------------------------------------------------------------
+&namtra_dmp    !   tracer: T & S newtonian damping                      ('key_tradmp')
+!-----------------------------------------------------------------------
+   nn_hdmp     =   -1      !  horizontal shape =-1, damping in Med and Red Seas only
+                           !                   =XX, damping poleward of XX degrees (XX>0)
+                           !                      + F(distance-to-coast) + Red and Med Seas
+   nn_zdmp     =    1      !  vertical   shape =0    damping throughout the water column
+                           !                   =1 no damping in the mixing layer (kz  criteria)
+                           !                   =2 no damping in the mixed  layer (rho crieria)
+   rn_surf     =   50.     !  surface time scale of damping   [days]
+   rn_bot      =  360.     !  bottom  time scale of damping   [days]
+   rn_dep      =  800.     !  depth of transition between rn_surf and rn_bot [meters]
+   nn_file     =    1      !  create a damping.coeff NetCDF file (=1) or not (=0)
 /
 !!======================================================================
 !!                      ***  Dynamics namelists  ***
 !!======================================================================
-!!   nam_dynadv    formulation of the momentum advection
-!!   nam_dynvor    advection scheme
-!!   nam_dynhpg    hydrostatic pressure gradient
-!!   namflg        hydrostatic pressure gradient time stepping
-!!   nam_dynspg    surface pressure gradient                            (CPP key only)
-!!   nam_dynldf    lateral diffusion scheme
-!!======================================================================
-
-!-----------------------------------------------------------------------
-&nam_dynadv    !   formulation of the momentum advection
+!!   namdyn_adv    formulation of the momentum advection
+!!   namdyn_vor    advection scheme
+!!   namdyn_hpg    hydrostatic pressure gradient
+!!   namdyn_spg    surface pressure gradient                            (CPP key only)
+!!   namdyn_ldf    lateral diffusion scheme
+!!======================================================================
+
+!-----------------------------------------------------------------------
+&namdyn_adv    !   formulation of the momentum advection
 !-----------------------------------------------------------------------
    ln_dynadv_vec = .true.  !  vector form (T) or flux form (F)  
@@ -436,5 +460,5 @@
 /  
 !-----------------------------------------------------------------------
-&nam_dynvor    !   option of physics/algorithm (not control by CPP keys)
+&namdyn_vor    !   option of physics/algorithm (not control by CPP keys)
 !-----------------------------------------------------------------------
    ln_dynvor_ene = .false. !  enstrophy conserving scheme  
@@ -444,5 +468,5 @@
 /
 !-----------------------------------------------------------------------
-&nam_dynhpg    !   Hydrostatic pressure gradient option
+&namdyn_hpg    !   Hydrostatic pressure gradient option
 !-----------------------------------------------------------------------
    ln_hpg_zco  = .false.   !  z-coordinate - full steps                   
@@ -453,34 +477,29 @@
    ln_hpg_djc  = .false.   !  s-coordinate (Density Jacobian with Cubic polynomial)
    ln_hpg_rot  = .false.   !  s-coordinate (ROTated axes scheme)
-   gamm        = 0.e0      !  weighting coefficient (wdj scheme)
-/
-!-----------------------------------------------------------------------
-&namflg        !   algorithm flags (algorithm not control by CPP keys)
-!-----------------------------------------------------------------------
-   ln_dynhpg_imp = .false. !  hydrostatic pressure gradient: semi-implicit time scheme  (T)
-                           !                                 centered      time scheme  (F)
-   nn_dynhpg_rst =  0      !  add dynhpg implicit variables in restart ot not (1/0)
-/
-!-----------------------------------------------------------------------
-!nam_dynspg    !   surface pressure gradient   (CPP key only)
+   rn_gamma    = 0.e0      !  weighting coefficient (wdj scheme)
+   ln_dynhpg_imp = .false. !  time stepping: semi-implicit time scheme  (T)
+                                 !           centered      time scheme  (F)
+   nn_dynhpg_rst =  0            ! =1 dynhpg restartable restart or not (=0)
+/
+!-----------------------------------------------------------------------
+!namdyn_spg    !   surface pressure gradient   (CPP key only)
 !-----------------------------------------------------------------------
 !                          !  explicit free surface                     ("key_dynspg_exp")
 !                          !  filtered free surface                     ("key_dynspg_flt")
 !                          !  split-explicit free surface               ("key_dynspg_ts")
-!                          !  rigid-lid                                 ("key_dynspg_rl")
-
-!-----------------------------------------------------------------------
-&nam_dynldf    !   lateral diffusion on momentum
-!-----------------------------------------------------------------------
-!                               !  Type of the operator : 
-   ln_dynldf_lap    =  .true.   !     laplacian operator         
-   ln_dynldf_bilap  =  .false.  !     bilaplacian operator    
-!                               !  Direction of action  : 
-   ln_dynldf_level  =  .false.  !     iso-level               
-   ln_dynldf_hor    =  .true.   !     horizontal (geopotential)        (require "key_ldfslp" in s-coord.)
-   ln_dynldf_iso    =  .false.  !     iso-neutral                      (require "key_ldfslp")
-                                !  Coefficient
-   ahm0    = 40000.             !     horizontal eddy viscosity   [m2/s]
-   ahmb0   =     0.             !     background eddy viscosity for ldf_iso [m2/s]
+
+!-----------------------------------------------------------------------
+&namdyn_ldf    !   lateral diffusion on momentum
+!-----------------------------------------------------------------------
+                           !  Type of the operator : 
+   ln_dynldf_lap    =  .true.   !  laplacian operator         
+   ln_dynldf_bilap  =  .false.  !  bilaplacian operator    
+                           !  Direction of action  : 
+   ln_dynldf_level  =  .false.  !  iso-level               
+   ln_dynldf_hor    =  .true.   !  horizontal (geopotential)            (require "key_ldfslp" in s-coord.)
+   ln_dynldf_iso    =  .false.  !  iso-neutral                          (require "key_ldfslp")
+                           !  Coefficient
+   rn_ahm_0    = 40000.         !  horizontal eddy viscosity   [m2/s]
+   rn_ahmb_0   =     0.         !  background eddy viscosity for ldf_iso [m2/s]
 /
 !!======================================================================
@@ -488,9 +507,9 @@
 !!======================================================================
 !!       namzdf        vertical physics
-!!       namnpc        non penetrative convection                       
-!!       namric        richardson number dependent vertical mixing      ("key_zdfric"      )
-!!       namtke        TKE dependent vertical mixing                    ("key_zdftke"      )
-!!       namkpp        KPP dependent vertical mixing                    ("key_zdfkpp"      )
-!!       namddm        double diffusive mixing parameterization         ("key_zdfddm"      )
+!!       namzdf_ric    richardson number dependent vertical mixing      ("key_zdfric"      )
+!!       namzdf_tke    TKE dependent vertical mixing                    ("key_zdftke"      )
+!!       namzdf_kpp    KPP dependent vertical mixing                    ("key_zdfkpp"      )
+!!       namzdf_ddm    double diffusive mixing parameterization         ("key_zdfddm"      )
+!!       namzdf_tmx    tidal mixing parameterization                    ("key_zdftmx"      )
 !!======================================================================
 
@@ -498,37 +517,33 @@
 &namzdf        !   vertical physics
 !-----------------------------------------------------------------------
-   avm0        =   1.2e-4  !  vertical eddy viscosity   [m2/s]          (background Kz if not "key_zdfcst")
-   avt0        =   1.2e-5  !  vertical eddy diffusivity [m2/s]          (background Kz if not "key_zdfcst")
-   ln_zdfnpc   = .false.   !  convection: Non-Penetrative algorithm (T) or not (F)
-   ln_zdfevd   = .true.    !  convection: enhanced vertical diffusion (T) or not (F)    
-   avevd       = 100.      !  vertical coefficient for enhanced diffusion scheme [m2/s]
-   n_evdm      =   1       !  enhanced mixing apply on tracer (=0) or on tracer and momentum (=1)
-   ln_zdfexp   =  .false.  !  split explicit (T) or implicit (F) time stepping
-   n_zdfexp    =   3       !  number of sub-timestep for ln_zdfexp=T
-/
-!-----------------------------------------------------------------------
-&namnpc        !   non penetrative convection
-!-----------------------------------------------------------------------
-   nnpc1       =    1      !  non penetrative convective scheme computation frequency
-   nnpc2       =  365      !  non penetrative convective scheme print frequency
-/
-!-----------------------------------------------------------------------
-&namric        !   richardson number dependent vertical diffusion       ("key_zdfric" )
-!-----------------------------------------------------------------------
-   avmri       = 100.e-4   !  maximum value of the vertical viscosity
-   alp         =   5.      !  coefficient of the parameterization
-   nric        =   2       !  coefficient of the parameterization
-/
-!-----------------------------------------------------------------------
-&namtke        !   turbulent eddy kinetic dependent vertical diffusion  ("key_zdftke")
-!-----------------------------------------------------------------------
-   ln_rstke    = .false.   !  restart with tke from a run without tke (T) or not (F)
-   nn_itke     =  50       !  number of iterative loops if ln_rstke=T 
+   rn_avm0     =   1.2e-4  !  vertical eddy viscosity   [m2/s]          (background Kz if not "key_zdfcst")
+   rn_avt0     =   1.2e-5  !  vertical eddy diffusivity [m2/s]          (background Kz if not "key_zdfcst")
+   nn_avb      =    0      !  profile for background avt & avm (=1) or not (=0)
+   nn_havtb    =    0      !  horizontal shape for avtb (=1) or not (=0)
+   ln_zdfevd   = .true.    !  enhanced vertical diffusion (evd) (T) or not (F)
+   nn_evdm     =    1      !  evd apply on tracer (=0) or on tracer and momentum (=1)
+   rn_avevd    =  100.     !  evd mixing coefficient [m2/s]
+   ln_zdfnpc   = .false.   !  Non-Penetrative algorithm (T) or not (F)
+   nn_npc      =    1            !  frequency of application of npc
+   nn_npcp     =  365            !  npc control print frequency
+   ln_zdfexp   = .false.   !  time-stepping: split-explicit (T) or implicit (F) time stepping
+   nn_zdfexp   =    3            !  number of sub-timestep for ln_zdfexp=T
+/
+!-----------------------------------------------------------------------
+&namzdf_ric    !   richardson number dependent vertical diffusion       ("key_zdfric" )
+!-----------------------------------------------------------------------
+   rn_avmri    = 100.e-4   !  maximum value of the vertical viscosity
+   rn_alp      =   5.      !  coefficient of the parameterization
+   nn_ric      =   2       !  coefficient of the parameterization
+/
+!-----------------------------------------------------------------------
+&namzdf_tke    !   turbulent eddy kinetic dependent vertical diffusion  ("key_zdftke")
+!-----------------------------------------------------------------------
    rn_ediff    =   0.1     !  coef. for vertical eddy coef. (avt=rn_ediff*mxl*sqrt(e) )
    rn_ediss    =   0.7     !  coef. of the Kolmogoroff dissipation
    rn_ebb      =   3.75    !  coef. of the surface input of tke
-   rn_efave    =   1.      !  boost of the tke diffusion ( avtke=rn_efave*avm )
    rn_emin     =   1.e-6   !  minimum value of tke [m2/s2]
    rn_emin0    =   1.e-4   !  surface minimum value of tke [m2/s2]
+   rn_bshear   =   1.e-20  !  background shear (>0)
    nn_mxl      =   2       !  mixing length: = 0 bounded by the distance to surface and bottom
                            !                 = 1 bounded by the local vertical scale factor
@@ -536,6 +551,4 @@
                            !                 = 3 same criteria as case 2 but applied in a different way
    nn_pdl      =   1       !  Prandtl number function of richarson number (=1, avt=pdl(Ri)*avm) or not (=0, avt=avm)
-   nn_avb      =   0       !  profile for constant background used on avt & avm (=1) or not (=0)
-   nn_ave      =   1       !  horizontal averaged on avt (=1) or not (=0) 
    ln_mxl0     = .false.   !  mixing length scale surface value as function of wind stress (T) or not (F)
    rn_lmin     =   0.4     !  interior buoyancy lenght scale minimum value
@@ -543,40 +556,47 @@
    nn_etau     =   0       !  exponentially deceasing penetration of tke due to internal & intertial waves
                            !        = 0 no penetration ( O(2 km) resolution)
-                           !        = 1 additional tke source 
+                           !        = 1 additional tke source
                            !        = 2 additional tke source applied only at the base of the mixed layer
-   nn_htau     =   2       !  type of exponential decrease of tke penetration
+   nn_htau     =   1       !  type of exponential decrease of tke penetration
                            !        = 0  constant 10 m length scale
-                           !        = 1  ???
-                           !        = 2  ???
+                           !        = 1  0.5m at the equator to 30m at high latitudes
    rn_efr      =   0.05    !  fraction of surface tke value which penetrates inside the ocean
-   ln_lc       = .false.   !  Langmuir cell effect
+   ln_lc       = .false.   !  Langmuir cell parameterisation
    rn_lc       =   0.15    !  coef. associated to Langmuir cells
-   nn_havtb    =   0       !  horizontal shape for avtb (=1) or not (=0)
 /
 !------------------------------------------------------------------------
-&namkpp        !   K-Profile Parameterization dependent vertical mixing  ("key_zdfkpp", and optionnally:
-!                                                                         "key_kppcustom" or "key_kpplktb")
-!------------------------------------------------------------------------
+&namzdf_kpp    !   K-Profile Parameterization dependent vertical mixing  ("key_zdfkpp", and optionnally:
+!------------------------------------------------------------------------ "key_kppcustom" or "key_kpplktb")
    ln_kpprimix = .true.    !  shear instability mixing 
-   difmiw      =  1.0e-04  !  constant internal wave viscosity [m2/s]
-   difsiw      =  0.1e-04  !  constant internal wave diffusivity [m2/s]
-   Riinfty     =  0.8      !  local Richardson Number limit for shear instability
-   difri       =  0.0050   !  maximum shear mixing at Rig = 0    [m2/s]
-   bvsqcon     = -0.01e-07 !  Brunt-Vaisala squared for maximum convection [1/s2] 
-   difcon      =  1.       !  maximum mixing in interior convection [m2/s]
-   navb        =  0        !  horizontal averaged (=1) or not (=0) on avt and amv
-   nave        =  1        !  constant (=0) or profile (=1) background on avt
-/
-!-----------------------------------------------------------------------
-&namddm        !   double diffusive mixing parameterization                  ("key_zdfddm")
-!-----------------------------------------------------------------------
-      avts     = 1.e-4     !  maximum avs (vertical mixing on salinity)
-      hsbfr    = 1.6       !  heat/salt buoyancy flux ratio
+   rn_difmiw   =  1.0e-04  !  constant internal wave viscosity [m2/s]
+   rn_difsiw   =  0.1e-04  !  constant internal wave diffusivity [m2/s]
+   rn_riinfty  =  0.8      !  local Richardson Number limit for shear instability
+   rn_difri    =  0.0050   !  maximum shear mixing at Rig = 0    [m2/s]
+   rn_bvsqcon  = -0.01e-07 !  Brunt-Vaisala squared for maximum convection [1/s2] 
+   rn_difcon   =  1.       !  maximum mixing in interior convection [m2/s] 
+   nn_avb      =  0        !  horizontal averaged (=1) or not (=0) on avt and amv
+   nn_ave      =  1        !  constant (=0) or profile (=1) background on avt
+/
+!-----------------------------------------------------------------------
+&namzdf_ddm    !   double diffusive mixing parameterization             ("key_zdfddm")
+!-----------------------------------------------------------------------
+   rn_avts     = 1.e-4     !  maximum avs (vertical mixing on salinity)
+   rn_hsbfr    = 1.6       !  heat/salt buoyancy flux ratio
+/
+!-----------------------------------------------------------------------
+&namzdf_tmx    !   tidal mixing parameterization                        ("key_zdftmx")
+!-----------------------------------------------------------------------
+   rn_htmx     = 500.      !  vertical decay scale for turbulence (meters)
+   rn_n2min    = 1.e-8     !  threshold of the Brunt-Vaisala frequency (s-1)
+   rn_tfe      = 0.333     !  tidal dissipation efficiency
+   rn_me       = 0.2       !  mixing efficiency 
+   ln_tmx_itf  = .FALSE.   !  ITF specific parameterisation
+   rn_tfe_itf  = 1.        !  ITF tidal dissipation efficiency
 /
 !!======================================================================
 !!                  ***  Miscelaneous namelists  ***
 !!======================================================================
-!!   nam_mpp           Massively Parallel Processing                    ("key_mpp_mpi)
-!!   nam_mpp_dyndist   Massively Parallel domain decomposition          ("key_agrif" && "key_mpp_dyndist")
+!!   nammpp            Massively Parallel Processing                    ("key_mpp_mpi)
+!!   nammpp_dyndist    Massively Parallel domain decomposition          ("key_agrif" && "key_mpp_dyndist")
 !!   namctl            Control prints & Benchmark
 !!   namsol            elliptic solver / island / free surface 
@@ -586,49 +606,45 @@
 &namsol        !   elliptic solver / island / free surface 
 !-----------------------------------------------------------------------
-   nsolv       =      1    !  elliptic solver: =1 preconditioned conjugate gradient (pcg)
+   nn_solv     =      1    !  elliptic solver: =1 preconditioned conjugate gradient (pcg)
                            !                   =2 successive-over-relaxation (sor)
-                           !                   =3 FETI (fet)                               ("key_feti")
-                           !                   =4 sor with extra outer halo
-   nsol_arp    =      0    !  absolute/relative (0/1) precision convergence test
-   nmin        =    300    !  minimum of iterations for the SOR solver
-   nmax        =    800    !  maximum of iterations for the SOR solver
-   nmod        =     10    !  frequency of test for the SOR solver
-   eps         =  1.e-6    !  absolute precision of the solver
-   resmax      =  1.e-10   !  absolute precision for the SOR solver
-   sor         =  1.92     !  optimal coefficient for SOR solver (to be adjusted with the domain)
-   epsisl      =  1.e-10   !  absolute precision on stream function solver
-   nmisl       =   4000    !  maximum pcg iterations for island                            ("key_islands")
-   rnu         =      1.   !  strength of the additional force used in filtered free surface
-/
-!-----------------------------------------------------------------------
-&nam_mpp      !   Massively Parallel Processing                         ("key_mpp_mpi)
-!-----------------------------------------------------------------------
-   c_mpi_send =  'S'       !  mpi send/recieve type   ='S', 'B', or 'I' for standard send,
+   nn_sol_arp  =      0    !  absolute/relative (0/1) precision convergence test
+   rn_eps      =  1.e-6    !  absolute precision of the solver
+   nn_nmin     =    300    !  minimum of iterations for the SOR solver
+   nn_nmax     =    800    !  maximum of iterations for the SOR solver
+   nn_nmod     =     10    !  frequency of test for the SOR solver
+   rn_resmax   =  1.e-10   !  absolute precision for the SOR solver
+   rn_sor      =  1.92     !  optimal coefficient for SOR solver (to be adjusted with the domain)
+/
+!-----------------------------------------------------------------------
+&nammpp        !   Massively Parallel Processing                        ("key_mpp_mpi)
+!-----------------------------------------------------------------------
+   cn_mpi_send =  'S'      !  mpi send/recieve type   ='S', 'B', or 'I' for standard send,
                            !  buffer blocking send or immediate non-blocking sends, resp.
-   nn_buffer  =   0        !  size in bytes of exported buffer ('B' case), 0 no exportation
-/
-!-----------------------------------------------------------------------
-&nam_mpp_dyndist !   Massively Parallel Distribution                    ("key_agrif" && "key_mpp_dyndist")
-!-----------------------------------------------------------------------
-   jpni       =    1       !  jpni   number of processors following i
-   jpnj       =    1       !  jpnj   number of processors following j
-   jpnij      =    1       !  jpnij  number of local domains
-/
-!-----------------------------------------------------------------------
-&namctl       !   Control prints & Benchmark
-!-----------------------------------------------------------------------
-   ln_ctl     = .false.    !  trends control print (expensive!)
-   nprint     =    0       !  level of print (0 no extra print)
-   nictls     =    0       !  start i indice of control sum (use to compare mono versus
-   nictle     =    0       !  end   i indice of control sum        multi processor runs
-   njctls     =    0       !  start j indice of control               over a subdomain)
-   njctle     =    0       !  end   j indice of control 
-   isplt      =    1       !  number of processors in i-direction
-   jsplt      =    1       !  number of processors in j-direction
-   nbench     =    0       !  Bench mode (1/0): CAUTION use zero except for bench
+   nn_buffer   =   0       !  size in bytes of exported buffer ('B' case), 0 no exportation
+/
+!-----------------------------------------------------------------------
+&nammpp_dyndist !   Massively Parallel Distribution for AGRIF zoom      ("key_agrif" && "key_mpp_dyndist")
+!-----------------------------------------------------------------------
+   jpni        =    1      !  jpni   number of processors following i
+   jpnj        =    1      !  jpnj   number of processors following j
+   jpnij       =    1      !  jpnij  number of local domains
+/
+!-----------------------------------------------------------------------
+&namctl        !   Control prints & Benchmark
+!-----------------------------------------------------------------------
+   ln_ctl      = .false.   !  trends control print (expensive!)
+   nn_print    =    0      !  level of print (0 no extra print)
+   nn_ictls    =    0      !  start i indice of control sum (use to compare mono versus
+   nn_ictle    =    0      !  end   i indice of control sum        multi processor runs
+   nn_jctls    =    0      !  start j indice of control               over a subdomain)
+   nn_jctle    =    0      !  end   j indice of control
+   nn_isplt    =    1      !  number of processors in i-direction
+   nn_jsplt    =    1      !  number of processors in j-direction
+   nn_bench    =    0      !  Bench mode (1/0): CAUTION use zero except for bench
                            !     (no physical validity of the results)
-   nbit_cmp   =    0       !  bit comparison mode (1/0): CAUTION use zero except for test
+   nn_bit_cmp  =    0      !  bit comparison mode (1/0): CAUTION use zero except for test
                            !     of comparison between single and multiple processor runs
 /
+
 !!======================================================================
 !!                       ***  Diagnostics namelists  ***
@@ -636,5 +652,4 @@
 !!   namtrd       dynamics and/or tracer trends                         ("key_trddyn","key_trdtra","key_trdmld")
 !!   namgap       level mean model-data gap                             ("key_diagap")
-!!   namspr       surface pressure diagnosed in rigid-lid               ("key_diaspr")
 !!   namflo       float parameters                                      ("key_float")
 !!   namptr       Poleward Transport Diagnostics
@@ -642,28 +657,20 @@
 
 !-----------------------------------------------------------------------
-&namtrd       !   diagnostics on dynamics and/or tracer trends             ("key_trddyn" and/or "key_trdtra")
-!                          or mixed-layer trends                        ('key_trdmld')
-!                          or barotropic vorticity                      ("key_trdvor")
-!-----------------------------------------------------------------------
-   ntrd       = 365        !  time step frequency dynamics and tracers trends
-   nctls      =   0        !  control surface type in mixed-layer trends (0,1 or n<jpk)
-   ucf        =   1.       !  unit conversion factor (=1 -> /seconds ; =86400. -> /day)
-   cn_trdrst_in  = "restart_mld"   ! suffix of ocean restart name (input)
-   cn_trdrst_out = "restart_mld"   ! suffix of ocean restart name (output)
-   ln_trdmld_restart = .false.     !  restart for ML diagnostics
-   ln_trdmld_instant = .false.     !  flag to diagnose trends of instantantaneous or mean ML T/S
+&namtrd        !   diagnostics on dynamics and/or tracer trends         ("key_trddyn" and/or "key_trdtra")
+!              !       or mixed-layer trends or barotropic vorticity    ('key_trdmld' or  "key_trdvor")
+!-----------------------------------------------------------------------
+   nn_trd      = 365       !  time step frequency dynamics and tracers trends
+   nn_ctls     =   0       !  control surface type in mixed-layer trends (0,1 or n<jpk)
+   rn_ucf      =   1.      !  unit conversion factor (=1 -> /seconds ; =86400. -> /day)
+   cn_trdrst_in      = "restart_mld"   ! suffix of ocean restart name (input)
+   cn_trdrst_out     = "restart_mld"   ! suffix of ocean restart name (output)
+   ln_trdmld_restart = .false.         !  restart for ML diagnostics
+   ln_trdmld_instant = .false.         !  flag to diagnose trends of instantantaneous or mean ML T/S
 /
 !-----------------------------------------------------------------------
 &namgap       !   level mean model-data gap                             ('key_diagap')
 !-----------------------------------------------------------------------
-   ngap       =  15        !  time-step frequency of model-data gap computation
-   nprg       =  10        !  AUTO - time-step frequency of gap print in model output
-/
-!-----------------------------------------------------------------------
-&namspr       !   surface pressure diagnostic
-!-----------------------------------------------------------------------
-   nmaxp      =   1000     !  maximum of iterations for the solver
-   epsp       =  1.e-3     !  absolute precision of the solver
-   niterp     =    400     !  number of iteration done by the solver
+   nn_gap     =  15        !  time-step frequency of model-data gap computation
+   nn_prg     =  10        !  AUTO - time-step frequency of gap print in model output
 /
 !-----------------------------------------------------------------------
@@ -671,6 +678,6 @@
 !-----------------------------------------------------------------------
     ln_rstflo = .false.    !  float restart (T) or not (F)
-    nwritefl  =      75    !  frequency of writing in float output file 
-    nstockfl  =    5475    !  frequency of creation of the float restart file 
+    nn_writefl=      75    !  frequency of writing in float output file 
+    nn_stockfl=    5475    !  frequency of creation of the float restart file 
     ln_argo   = .false.    !  Argo type floats (stay at the surface each 10 days)
     ln_flork4 = .false.    !  trajectories computed with a 4th order Runge-Kutta (T)
Index: CONFIG/IPSLCM/IPSLCM5/branches/IPSLCM5_v2/EXP00/PARAM/namelist_ice_ORCA2
===================================================================
--- CONFIG/IPSLCM/IPSLCM5/branches/IPSLCM5_v2/EXP00/PARAM/namelist_ice_ORCA2	(revision 704)
+++ CONFIG/IPSLCM/IPSLCM5/branches/IPSLCM5_v2/EXP00/PARAM/namelist_ice_ORCA2	(revision 705)
@@ -87,4 +87,5 @@
    swiqst      = 1.        !  energy stored in brine pocket (=1) or not (=0)	
    sbeta       = 1.        !  numerical caracteritic of the scheme for diffusion in ice
+                           !        Cranck-Nicholson (=0.5), implicit (=1), explicit (=0)
    parlat      = 0.0       !  percentage of energy used for lateral ablation
    hakspl      = 0.5       !  slope of distr. for Hakkinen-Mellor's lateral melting
Index: CONFIG/IPSLCM/IPSLCM5/branches/IPSLCM5_v2/scripts/BB_make
===================================================================
--- CONFIG/IPSLCM/IPSLCM5/branches/IPSLCM5_v2/scripts/BB_make	(revision 704)
+++ CONFIG/IPSLCM/IPSLCM5/branches/IPSLCM5_v2/scripts/BB_make	(revision 705)
@@ -11,5 +11,7 @@
 #-Q- platine L_X = $(L_O) 
 #-Q- sx8mercure  # Compiler options NEMO (CEA SX8-NEC) 
-#-Q- sx8mercure  F_O = -f2003 nocbind -size_t64 -dw -Wf\"-A dbl4\" -sx8 -C vopt -Wf"-P nh" -Wf,-pvctl noassume loopcnt=10000 -L transform -I $(MODDIR) -I $(MODDIR)/oce -I $(NCDF_INC) $(USER_INC) 
+#-Q- sx8mercure  F_O = -f2003 nocbind -size_t64 -dw -Wf\"-A dbl4\" -sx8 -C vopt -P stack -Wf"-init stack=nan" -Wl"-f nan" -Wf"-P nh -O overlap" -Wf"-P nh" -Wf,-pvctl noassume loopcnt=10000 shape=10000000 -L transform -I $(MODDIR) -I $(MODDIR)/oce -I $(NCDF_INC) $(USER_INC) 
+#-Q- sx8mercure  # For SX9 delete -sx8 option
+#-Q- sx8mercure  # F_O = -f2003 nocbind -size_t64 -dw -Wf\"-A dbl4\" -C vopt -P stack -Wf"-init stack=nan" -Wl"-f nan" -Wf"-P nh -O overlap" -Wf"-P nh" -Wf,-pvctl noassume loopcnt=10000 shape=10000000 -L transform -I $(MODDIR) -I $(MODDIR)/oce -I $(NCDF_INC) $(USER_INC) 
 #-Q- sx8mercure  L_X = $(L_O)
 #-Q- sx8brodie  # Compiler options NEMO (IDRIS SX8-NEC) 
@@ -44,7 +46,7 @@
 #-Q- aix   L_O = $(F_P) -q64 -O3
 #-Q- aix   L_X = $(L_O)
-#-Q- aix6   # Compiler options for NEMO (aix6 version)
-#-Q- aix6   F_O = -O3 -qsave -qrealsize=8 -qsuffix=f=f90 -qsuffix=cpp=F90 -qsource -q64 -qlargepage -qmaxmem=-1 -I $(MODDIR) -I $(MODDIR)/oce -I $(NCDF_INC) $(USER_INC)
-#-Q- aix6   L_O = $(F_P) -q64 -brename:.flush,.flush_ -O3
+#-Q- aix6    # Compiler options for NEMO (aix6 version)
+#-Q- aix6    F_O = -O3 -qsave -qrealsize=8 -qsuffix=f=f90 -qsuffix=cpp=F90 -qextname -qsource -q64 -qlargepage -qmaxmem=-1 -I $(MODDIR) -I $(MODDIR)/oce -I $(NCDF_INC) $(USER_INC)
+#-Q- aix6   L_O = $(F_P) -q64 -O3
 #-Q- aix6   L_X = $(L_O)
 #-Q- babel  # Compiler options for NEMO (blue gene version)
@@ -77,4 +79,23 @@
 endif
 
+# Some tests to define variables related to xmlioserver compilation
+# Please do not change 
+ifneq (,$(findstring key_iomput,$(P_P)))
+IOSERVER=use
+override USER_LIB += -L../../../lib/libxmlio_server -lioserver -lxmlio -lxmlf90
+override USER_INC += -I../../../lib/libxmlio_server
+ifneq (,$(findstring key_mpp_mpi,$(P_P)))
+IOSERVER_MPI=
+else
+IOSERVER_MPI=-DNO_MPI
+endif
+else
+IOSERVER=notuse
+endif
+
+# A variables related to xmlioserver compilationi (fcm or AA_make)
+# Please do not change 
+override FCM += notuse
+
 KEY_LIST = \
      key_agrif \
@@ -83,7 +104,7 @@
      key_bdy \
      key_c1d \
-     key_cfg_1d \
      key_coupled \
      key_cpl_albedo \
+     key_cpl_carbon_cycle \
      key_cpl_discharge \
      key_cpl_ocevel \
@@ -103,5 +124,4 @@
      key_dynspg_exp \
      key_dynspg_flt \
-     key_dynspg_rl \
      key_dynspg_ts \
      key_eel_r2 \
@@ -109,5 +129,4 @@
      key_eel_r6 \
      key_esopa \
-     key_feti \
      key_floats \
      key_flx_bulk_monthly \
@@ -115,5 +134,5 @@
      key_flx_forced_daily \
      key_gyre \
-     key_islands \
+     key_iomput \
      key_kppcustom \
      key_kpplktb \
@@ -134,5 +153,4 @@
      key_orca_r4 \
      key_pisces \
-     key_sigma_vvl \
      key_top \
      key_trabbc \
@@ -158,9 +176,9 @@
      key_zdfric \
      key_zdftke \
-     key_zdftke2 
+     key_zdftke_old \
+     key_zdftmx 
 # .o file list in the library
 LIB_OBJ = \
 		$(MODEL_LIB)(lib_cray.o)\
-		$(MODEL_LIB)(lib_isml.o)\
 		$(MODEL_LIB)(lib_print.o)\
 		$(MODEL_LIB)(agrif_opa_interp.o)\
@@ -183,5 +201,4 @@
 		$(MODEL_LIB)(cpl_oasis3.o)\
 		$(MODEL_LIB)(cpl_oasis4.o)\
-		$(MODEL_LIB)(ctlopn.o)\
 		$(MODEL_LIB)(daymod.o)\
 		$(MODEL_LIB)(diadimg.o)\
@@ -192,5 +209,4 @@
 		$(MODEL_LIB)(dianam.o)\
 		$(MODEL_LIB)(diaptr.o)\
-		$(MODEL_LIB)(diaspr.o)\
 		$(MODEL_LIB)(diawri_c1d.o)\
 		$(MODEL_LIB)(diawri.o)\
@@ -225,5 +241,4 @@
 		$(MODEL_LIB)(dynspg_flt.o)\
 		$(MODEL_LIB)(dynspg_oce.o)\
-		$(MODEL_LIB)(dynspg_rl.o)\
 		$(MODEL_LIB)(dynspg_ts.o)\
 		$(MODEL_LIB)(dynvor.o)\
@@ -243,5 +258,4 @@
 		$(MODEL_LIB)(ice_2.o)\
 		$(MODEL_LIB)(iceini_2.o)\
-		$(MODEL_LIB)(ice_oce.o)\
 		$(MODEL_LIB)(in_out_manager.o)\
 		$(MODEL_LIB)(iom_def.o)\
@@ -252,4 +266,5 @@
 		$(MODEL_LIB)(istate.o)\
 		$(MODEL_LIB)(lbclnk.o)\
+		$(MODEL_LIB)(lbcnfd.o)\
 		$(MODEL_LIB)(ldfdyn.o)\
 		$(MODEL_LIB)(ldfdyn_oce.o)\
@@ -258,5 +273,4 @@
 		$(MODEL_LIB)(ldftra.o)\
 		$(MODEL_LIB)(ldftra_oce.o)\
-		$(MODEL_LIB)(lib_feti.o)\
 		$(MODEL_LIB)(lib_mpp.o)\
 		$(MODEL_LIB)(limadv_2.o)\
@@ -278,6 +292,4 @@
 		$(MODEL_LIB)(mppini.o)\
 		$(MODEL_LIB)(oasis4_date.o)\
-		$(MODEL_LIB)(obccli.o)\
-		$(MODEL_LIB)(obcdom.o)\
 		$(MODEL_LIB)(obcdta.o)\
 		$(MODEL_LIB)(obcdyn_bt.o)\
@@ -289,5 +301,4 @@
 		$(MODEL_LIB)(obcrad.o)\
 		$(MODEL_LIB)(obcrst.o)\
-		$(MODEL_LIB)(obcspg.o)\
 		$(MODEL_LIB)(obctra.o)\
 		$(MODEL_LIB)(obcvol.o)\
@@ -315,7 +326,4 @@
 		$(MODEL_LIB)(sbcssm.o)\
 		$(MODEL_LIB)(sbcssr.o)\
-		$(MODEL_LIB)(sms.o)\
-		$(MODEL_LIB)(solfet.o)\
-		$(MODEL_LIB)(solisl.o)\
 		$(MODEL_LIB)(solmat.o)\
 		$(MODEL_LIB)(sol_oce.o)\
@@ -323,4 +331,5 @@
 		$(MODEL_LIB)(solsor.o)\
 		$(MODEL_LIB)(solver.o)\
+		$(MODEL_LIB)(sshwzv.o)\
 		$(MODEL_LIB)(step_c1d.o)\
 		$(MODEL_LIB)(step.o)\
@@ -350,7 +359,5 @@
 		$(MODEL_LIB)(trazdf.o)\
 		$(MODEL_LIB)(trazdf_imp.o)\
-		$(MODEL_LIB)(trcini.o)\
 		$(MODEL_LIB)(trc_oce.o)\
-		$(MODEL_LIB)(trcstp.o)\
 		$(MODEL_LIB)(trdicp.o)\
 		$(MODEL_LIB)(trdicp_oce.o)\
@@ -362,5 +369,4 @@
 		$(MODEL_LIB)(trdvor.o)\
 		$(MODEL_LIB)(trdvor_oce.o)\
-		$(MODEL_LIB)(wzvmod.o)\
 		$(MODEL_LIB)(zdfbfr.o)\
 		$(MODEL_LIB)(zdfddm.o)\
@@ -371,6 +377,7 @@
 		$(MODEL_LIB)(zdf_oce.o)\
 		$(MODEL_LIB)(zdfric.o)\
-		$(MODEL_LIB)(zdftke2.o)\
 		$(MODEL_LIB)(zdftke.o)\
+		$(MODEL_LIB)(zdftke_old.o)\
+		$(MODEL_LIB)(zdftmx.o)\
 		$(MODEL_LIB)(zpshde.o)
 
@@ -393,9 +400,21 @@
 		@if [ ! -d ../../../lib/oce ] ; then mkdir ../../../lib/oce ; fi
 
-$(EXEC_BIN) :	libioipsl firstagrif mpiagrif key keyverif src_file_list libagrif $(MODEL_LIB) $(IOIPSL_LIB) $(AGRIF_LIB) agrif2model.o model.o
+$(EXEC_BIN) :	libioipsl libioserver firstagrif mpiagrif key keyverif src_file_list libagrif $(MODEL_LIB) $(IOIPSL_LIB) $(AGRIF_LIB) agrif2model.o model.o 
 ifeq ($(AGRIF),use)
 		$(F_L) $(L_X) -o $(EXEC_BIN) model.o agrif2model.o $(SXMODEL_LIB) $(USER_LIB) $(IOIPSL_LIB) $(AGRIF_LIB) $(NCDF_LIB) $(LIBMPI) $(LIBMP)
 else
 		$(F_L) $(L_X) -o $(EXEC_BIN) model.o $(SXMODEL_LIB) $(USER_LIB) $(IOIPSL_LIB) $(NCDF_LIB) $(LIBMPI) $(LIBMP)
+endif
+
+# ioserver library
+libioserver :
+ifeq ($(IOSERVER),use)
+ifeq ($(FCM),use)
+	(cd ../../XMLF90; ./configure -arch $(FCM_ARCH); fcm build; mkdir -p ../../lib/libxmlio_server  ; cd ../../lib/libxmlio_server ; ln -sf ../../modeles/XMLF90/lib/*.a .; ln -sf ../../modeles/XMLF90/inc/*.mod .)
+	(cd ../../XMLIO_SERVER; ./configure -arch $(FCM_ARCH); fcm build ; cd ../../lib/libxmlio_server ; ln -sf ../../modeles/XMLIO_SERVER/lib/*.a . ; ln -sf ../../modeles/XMLIO_SERVER/inc/* . ; cd ../../bin ; ln -sf ../modeles/XMLIO_SERVER/bin/server.exe ioserver)
+else
+	(cd ../../XMLF90/external ; $(M_K) -f Makefile )
+	(cd ../../XMLIO_SERVER/external ; $(M_K) -f Makefile P_P="$(IOSERVER_MPI)" )
+endif
 endif
 
@@ -613,4 +632,5 @@
 	iom.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	lib_mpp.F90 \
 	lib_print.f90 \
@@ -622,4 +642,5 @@
 	$(MODEL_LIB)(iom.o) \
 	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -662,4 +683,5 @@
 	iom_rstdimg.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	lib_mpp.F90 \
 	lib_print.f90 \
@@ -675,4 +697,5 @@
 	$(MODEL_LIB)(iom_rstdimg.o) \
 	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -725,4 +748,5 @@
 	iom_rstdimg.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	lib_mpp.F90 \
 	lib_print.f90 \
@@ -736,4 +760,5 @@
 	$(MODEL_LIB)(iom_rstdimg.o) \
 	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -774,4 +799,5 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
+	lbcnfd.F90 \
 	lib_mpp.F90 \
 	lib_print.f90 \
@@ -779,4 +805,5 @@
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -804,4 +831,5 @@
 	in_out_manager.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	lib_print.f90 \
 	$(MODEL_LIB)(bdy_par.o) \
@@ -809,4 +837,5 @@
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_print.o) \
 	$(MODEL_LIB)(par_kind.o) \
@@ -838,9 +867,11 @@
 	in_out_manager.F90 \
 	lbclnk.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
+	lbcnfd.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -871,4 +902,5 @@
 	in_out_manager.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	lib_mpp.F90 \
 	lib_print.f90 \
@@ -877,7 +909,7 @@
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(obccli.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(lib_print.o) \
 	$(MODEL_LIB)(obc_oce.o) \
 	$(MODEL_LIB)(obc_par.o) \
@@ -889,5 +921,4 @@
 	$(MODEL_LIB)(sol_oce.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
-	obccli.F90 \
 	obc_oce.F90 \
 	obc_par.F90 \
@@ -913,5 +944,4 @@
 	$(MODEL_LIB)(phycst.o) \
 	$(MODEL_LIB)(sbc_oce.o) \
-	$(MODEL_LIB)(solfet.o) \
 	$(MODEL_LIB)(sol_oce.o) \
 	$(MODEL_LIB)(solpcg.o) \
@@ -924,5 +954,4 @@
 	phycst.F90 \
 	sbc_oce.F90 \
-	solfet.F90 \
 	sol_oce.F90 \
 	solpcg.F90 \
@@ -937,9 +966,11 @@
 	in_out_manager.F90 \
 	lbclnk.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
+	lbcnfd.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -970,9 +1001,11 @@
 	in_out_manager.F90 \
 	lbclnk.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
+	lbcnfd.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -1001,8 +1034,10 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
+	lbcnfd.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -1027,8 +1062,10 @@
 	in_out_manager.F90 \
 	iom.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(iom.o) \
+	lbcnfd.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_print.o) \
 	$(MODEL_LIB)(par_kind.o) \
@@ -1058,16 +1095,4 @@
 	KEY_CPP \
 	cpl_oasis4.F90
-$(MODEL_LIB)(ctlopn.o) :	\
-	lib_print.f90 \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	par_kind.F90 \
-	par_oce.F90 \
-	in_out_manager.F90 \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(AGRIF_LIB) \
-	KEY_CPP \
-	ctlopn.F90
 $(MODEL_LIB)(daymod.o) :	\
 	c1d.F90 \
@@ -1100,5 +1125,6 @@
 	$(MODEL_LIB)(phycst.o) \
 	$(MODEL_LIB)(trdmld_oce.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
+	$(MODEL_LIB)(zdfmxl.o) \
 	$(MODEL_LIB)(zpshde.o) \
 	oce.F90 \
@@ -1107,5 +1133,6 @@
 	phycst.F90 \
 	trdmld_oce.F90 \
-	zdf_oce.F90 \
+	zdfddm.F90 \
+	zdfmxl.F90 \
 	zpshde.F90 \
 	dom_oce.F90 \
@@ -1121,4 +1148,5 @@
 	prtctl.F90 \
 	restart.F90 \
+	$(IOIPSL_LIB) \
 	daymod.F90
 $(MODEL_LIB)(diadimg.o) :	\
@@ -1156,8 +1184,10 @@
 	in_out_manager.F90 \
 	lbclnk.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
+	lbcnfd.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_print.o) \
 	$(MODEL_LIB)(par_kind.o) \
@@ -1189,4 +1219,5 @@
 	iom.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	lib_print.f90 \
 	$(MODEL_LIB)(daymod.o) \
@@ -1195,4 +1226,5 @@
 	$(MODEL_LIB)(iom.o) \
 	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_print.o) \
 	$(MODEL_LIB)(oce.o) \
@@ -1249,16 +1281,30 @@
 	diahdy.F90
 $(MODEL_LIB)(diahth.o) :	\
-	in_out_manager.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	par_kind.F90 \
-	par_oce.F90 \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	iom_def.F90 \
+	iom_ioipsl.F90 \
+	iom_nf90.F90 \
+	iom_rstdimg.F90 \
+	lbclnk.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom_def.o) \
+	$(MODEL_LIB)(iom_ioipsl.o) \
+	$(MODEL_LIB)(iom_nf90.o) \
+	$(MODEL_LIB)(iom_rstdimg.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	par_kind.F90 \
+	par_oce.F90 \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	iom.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom.o) \
 	$(MODEL_LIB)(oce.o) \
 	$(MODEL_LIB)(phycst.o) \
@@ -1307,4 +1353,5 @@
 	iom_rstdimg.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	lib_print.f90 \
 	$(MODEL_LIB)(daymod.o) \
@@ -1317,4 +1364,5 @@
 	$(MODEL_LIB)(iom_rstdimg.o) \
 	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_print.o) \
 	$(MODEL_LIB)(par_kind.o) \
@@ -1351,45 +1399,4 @@
 	KEY_CPP \
 	diaptr.F90
-$(MODEL_LIB)(diaspr.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(sol_oce.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	sol_oce.F90 \
-	zdf_oce.F90 \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_mpp.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(solfet.o) \
-	$(MODEL_LIB)(sol_oce.o) \
-	$(MODEL_LIB)(solpcg.o) \
-	$(MODEL_LIB)(solsor.o) \
-	oce.F90 \
-	phycst.F90 \
-	solfet.F90 \
-	sol_oce.F90 \
-	solpcg.F90 \
-	solsor.F90 \
-	KEY_CPP \
-	diaspr.F90
 $(MODEL_LIB)(diawri_c1d.o) :	\
 	closea.F90 \
@@ -1399,17 +1406,18 @@
 	diahth.F90 \
 	dianam.F90 \
-	diaspr.F90 \
-	dom_oce.F90 \
+	dom_oce.F90 \
+	domvvl.F90 \
 	dynzdf_exp.F90 \
 	eosbn2.F90 \
 	fldread.F90 \
-	ice_oce.F90 \
-	in_out_manager.F90 \
-	iom.F90 \
-	lbclnk.F90 \
+	in_out_manager.F90 \
+	iom.F90 \
+	lbclnk.F90 \
+	lbcnfd.F90 \
 	ldfdyn_oce.F90 \
 	ldftra_oce.F90 \
 	lib_mpp.F90 \
 	lib_print.f90 \
+	limwri_2.F90 \
 	$(MODEL_LIB)(closea.o) \
 	$(MODEL_LIB)(cpl_oasis3.o) \
@@ -1418,18 +1426,20 @@
 	$(MODEL_LIB)(diahth.o) \
 	$(MODEL_LIB)(dianam.o) \
-	$(MODEL_LIB)(diaspr.o) \
-	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(domvvl.o) \
 	$(MODEL_LIB)(dynzdf_exp.o) \
 	$(MODEL_LIB)(eosbn2.o) \
 	$(MODEL_LIB)(fldread.o) \
-	$(MODEL_LIB)(ice_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(iom.o) \
-	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(ldfdyn_oce.o) \
 	$(MODEL_LIB)(ldftra_oce.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(limwri_2.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(par_ice_2.o) \
 	$(MODEL_LIB)(par_kind.o) \
 	$(MODEL_LIB)(par_oce.o) \
@@ -1458,4 +1468,5 @@
 	$(MODEL_LIB)(zdf_oce.o) \
 	oce.F90 \
+	par_ice_2.F90 \
 	par_kind.F90 \
 	par_oce.F90 \
@@ -1487,5 +1498,4 @@
 	diawri.F90 \
 	dom_oce.F90 \
-	ice_oce.F90 \
 	in_out_manager.F90 \
 	lbclnk.F90 \
@@ -1494,5 +1504,4 @@
 	$(MODEL_LIB)(diawri.o) \
 	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(lbclnk.o) \
@@ -1509,4 +1518,5 @@
 	$(MODEL_LIB)(zdf_oce.o) \
 	$(MODEL_LIB)(zdftke.o) \
+	$(MODEL_LIB)(zdftke_old.o) \
 	oce.F90 \
 	phycst.F90 \
@@ -1521,4 +1531,5 @@
 	zdf_oce.F90 \
 	zdftke.F90 \
+	zdftke_old.F90 \
 	zdfddm_substitute.h90 \
 	$(IOIPSL_LIB) \
@@ -1527,20 +1538,37 @@
 $(MODEL_LIB)(diawri.o) :	\
 	daymod.F90 \
+	dianam.F90 \
+	dom_ice_2.F90 \
 	dom_oce.F90 \
 	fldread.F90 \
-	in_out_manager.F90 \
-	iom.F90 \
-	lbclnk.F90 \
+	ice_2.F90 \
+	in_out_manager.F90 \
+	iom_def.F90 \
+	iom.F90 \
+	iom_ioipsl.F90 \
+	iom_nf90.F90 \
+	iom_rstdimg.F90 \
+	lbclnk.F90 \
+	lbcnfd.F90 \
 	lib_mpp.F90 \
 	lib_print.f90 \
 	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(dianam.o) \
+	$(MODEL_LIB)(dom_ice_2.o) \
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(fldread.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(iom.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(ice_2.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom_def.o) \
+	$(MODEL_LIB)(iom_ioipsl.o) \
+	$(MODEL_LIB)(iom_nf90.o) \
+	$(MODEL_LIB)(iom.o) \
+	$(MODEL_LIB)(iom_rstdimg.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(par_ice_2.o) \
 	$(MODEL_LIB)(par_kind.o) \
 	$(MODEL_LIB)(par_oce.o) \
@@ -1548,12 +1576,10 @@
 	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(restart.o) \
+	$(MODEL_LIB)(sbc_ice.o) \
 	$(MODEL_LIB)(sbc_oce.o) \
 	$(MODEL_LIB)(sbcrnf.o) \
-	$(MODEL_LIB)(solfet.o) \
-	$(MODEL_LIB)(sol_oce.o) \
-	$(MODEL_LIB)(solpcg.o) \
-	$(MODEL_LIB)(solsor.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
 	oce.F90 \
+	par_ice_2.F90 \
 	par_kind.F90 \
 	par_oce.F90 \
@@ -1561,10 +1587,7 @@
 	prtctl.F90 \
 	restart.F90 \
+	sbc_ice.F90 \
 	sbc_oce.F90 \
 	sbcrnf.F90 \
-	solfet.F90 \
-	sol_oce.F90 \
-	solpcg.F90 \
-	solsor.F90 \
 	zdf_oce.F90 \
 	daymod.F90 \
@@ -1572,22 +1595,22 @@
 	diahth.F90 \
 	dianam.F90 \
-	diaspr.F90 \
-	dom_oce.F90 \
-	ice_oce.F90 \
-	in_out_manager.F90 \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	iom.F90 \
 	lbclnk.F90 \
 	ldfdyn_oce.F90 \
 	ldftra_oce.F90 \
+	limwri_2.F90 \
 	$(MODEL_LIB)(daymod.o) \
 	$(MODEL_LIB)(diadimg.o) \
 	$(MODEL_LIB)(diahth.o) \
 	$(MODEL_LIB)(dianam.o) \
-	$(MODEL_LIB)(diaspr.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(ice_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom.o) \
 	$(MODEL_LIB)(lbclnk.o) \
 	$(MODEL_LIB)(ldfdyn_oce.o) \
 	$(MODEL_LIB)(ldftra_oce.o) \
+	$(MODEL_LIB)(limwri_2.o) \
 	$(MODEL_LIB)(oce.o) \
 	$(MODEL_LIB)(phycst.o) \
@@ -1619,4 +1642,5 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
+	lbcnfd.F90 \
 	lib_mpp.F90 \
 	lib_print.f90 \
@@ -1624,4 +1648,5 @@
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -1651,5 +1676,4 @@
 	divcur.F90
 $(MODEL_LIB)(domain.o) :	\
-	bdy_oce.F90 \
 	c1d.F90 \
 	closea.F90 \
@@ -1659,7 +1683,7 @@
 	iom.F90 \
 	lbclnk.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(bdy_oce.o) \
+	lbcnfd.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
 	$(MODEL_LIB)(c1d.o) \
 	$(MODEL_LIB)(closea.o) \
@@ -1669,4 +1693,5 @@
 	$(MODEL_LIB)(iom.o) \
 	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -1677,5 +1702,4 @@
 	$(MODEL_LIB)(phycst.o) \
 	$(MODEL_LIB)(sbc_oce.o) \
-	$(MODEL_LIB)(solisl.o) \
 	obc_oce.F90 \
 	oce.F90 \
@@ -1684,5 +1708,4 @@
 	phycst.F90 \
 	sbc_oce.F90 \
-	solisl.F90 \
 	closea.F90 \
 	domhgr.F90 \
@@ -1693,5 +1716,4 @@
 	domwri.F90 \
 	domzgr.F90 \
-	ice_oce.F90 \
 	in_out_manager.F90 \
 	lib_mpp.F90 \
@@ -1704,5 +1726,4 @@
 	$(MODEL_LIB)(domwri.o) \
 	$(MODEL_LIB)(domzgr.o) \
-	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
@@ -1720,38 +1741,22 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
-	iom.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(iom.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(obc_oce.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(solfet.o) \
-	$(MODEL_LIB)(sol_oce.o) \
-	$(MODEL_LIB)(solpcg.o) \
-	$(MODEL_LIB)(solsor.o) \
-	obc_oce.F90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	solfet.F90 \
-	sol_oce.F90 \
-	solpcg.F90 \
-	solsor.F90 \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_mpp.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(solisl.o) \
-	phycst.F90 \
-	solisl.F90 \
+	lbcnfd.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	par_kind.F90 \
+	par_oce.F90 \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_mpp.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(phycst.o) \
+	phycst.F90 \
 	domcfg.F90
 $(MODEL_LIB)(domhgr.o) :	\
@@ -1763,4 +1768,5 @@
 	iom_rstdimg.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	lib_print.f90 \
 	$(MODEL_LIB)(dom_oce.o) \
@@ -1771,4 +1777,5 @@
 	$(MODEL_LIB)(iom_rstdimg.o) \
 	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_print.o) \
 	$(MODEL_LIB)(par_kind.o) \
@@ -1798,46 +1805,34 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
-	iom.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(iom.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(lib_print.o) \
+	lbcnfd.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(obc_par.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	obc_par.F90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	dom_oce.F90 \
+	dynspg_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dynspg_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(obc_oce.o) \
-	$(MODEL_LIB)(obc_par.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(solfet.o) \
-	$(MODEL_LIB)(sol_oce.o) \
-	$(MODEL_LIB)(solpcg.o) \
-	$(MODEL_LIB)(solsor.o) \
+	$(MODEL_LIB)(oce.o) \
 	obc_oce.F90 \
-	obc_par.F90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	solfet.F90 \
-	sol_oce.F90 \
-	solpcg.F90 \
-	solsor.F90 \
-	dom_oce.F90 \
-	dynspg_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dynspg_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(obc_oce.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(solisl.o) \
-	obc_oce.F90 \
-	oce.F90 \
-	solisl.F90 \
+	oce.F90 \
 	vectopt_loop_substitute.h90 \
 	KEY_CPP \
@@ -1867,31 +1862,27 @@
 	domstp.F90
 $(MODEL_LIB)(domvvl.o) :	\
-	bdy_par.F90 \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(bdy_par.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	bdy_oce.F90 \
-	dom_oce.F90 \
-	dynspg_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	$(MODEL_LIB)(bdy_oce.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dynspg_oce.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lbcnfd.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(lbclnk.o) \
@@ -1915,4 +1906,5 @@
 	iom_rstdimg.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	lib_mpp.F90 \
 	lib_print.f90 \
@@ -1924,22 +1916,25 @@
 	$(MODEL_LIB)(iom_rstdimg.o) \
 	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	iom.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(iom.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	iom.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
 	domwri.F90
 $(MODEL_LIB)(domzgr.o) :	\
@@ -1947,9 +1942,9 @@
 	in_out_manager.F90 \
 	iom_def.F90 \
-	iom.F90 \
 	iom_ioipsl.F90 \
 	iom_nf90.F90 \
 	iom_rstdimg.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	lib_mpp.F90 \
 	lib_print.f90 \
@@ -1959,27 +1954,17 @@
 	$(MODEL_LIB)(iom_ioipsl.o) \
 	$(MODEL_LIB)(iom_nf90.o) \
-	$(MODEL_LIB)(iom.o) \
 	$(MODEL_LIB)(iom_rstdimg.o) \
 	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(obc_oce.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(sbc_oce.o) \
-	$(MODEL_LIB)(solfet.o) \
-	$(MODEL_LIB)(sol_oce.o) \
-	$(MODEL_LIB)(solpcg.o) \
-	$(MODEL_LIB)(solsor.o) \
-	obc_oce.F90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	sbc_oce.F90 \
-	solfet.F90 \
-	sol_oce.F90 \
-	solpcg.F90 \
-	solsor.F90 \
+	$(MODEL_LIB)(lbcnfd.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(sbc_oce.o) \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	sbc_oce.F90 \
 	c1d.F90 \
 	closea.F90 \
@@ -1997,7 +1982,5 @@
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(solisl.o) \
-	oce.F90 \
-	solisl.F90 \
+	oce.F90 \
 	domzgr_substitute.h90 \
 	vectopt_loop_substitute.h90 \
@@ -2013,4 +1996,5 @@
 	iom_rstdimg.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	lib_mpp.F90 \
 	lib_print.f90 \
@@ -2023,4 +2007,5 @@
 	$(MODEL_LIB)(iom_rstdimg.o) \
 	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -2063,4 +2048,5 @@
 	iom_rstdimg.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	lib_mpp.F90 \
 	lib_print.f90 \
@@ -2073,4 +2059,5 @@
 	$(MODEL_LIB)(iom_rstdimg.o) \
 	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -2107,7 +2094,4 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
-	iom.F90 \
-	lbclnk.F90 \
-	ldfdyn_oce.F90 \
 	ldftra_oce.F90 \
 	lib_mpp.F90 \
@@ -2115,23 +2099,12 @@
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(iom.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(ldfdyn_oce.o) \
 	$(MODEL_LIB)(ldftra_oce.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(obc_oce.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(restart.o) \
-	$(MODEL_LIB)(sbc_oce.o) \
-	$(MODEL_LIB)(solfet.o) \
-	$(MODEL_LIB)(solisl.o) \
-	$(MODEL_LIB)(sol_oce.o) \
-	$(MODEL_LIB)(solpcg.o) \
-	$(MODEL_LIB)(solsor.o) \
-	$(MODEL_LIB)(solver.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(sbc_oce.o) \
 	$(MODEL_LIB)(trdicp.o) \
 	$(MODEL_LIB)(trdicp_oce.o) \
@@ -2142,17 +2115,9 @@
 	$(MODEL_LIB)(trdvor_oce.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
-	obc_oce.F90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.F90 \
-	restart.F90 \
-	sbc_oce.F90 \
-	solfet.F90 \
-	solisl.F90 \
-	sol_oce.F90 \
-	solpcg.F90 \
-	solsor.F90 \
-	solver.F90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	sbc_oce.F90 \
 	trdicp.F90 \
 	trdicp_oce.F90 \
@@ -2164,10 +2129,6 @@
 	zdf_oce.F90 \
 	dom_oce.F90 \
-	dynspg_oce.F90 \
-	dynspg_rl.F90 \
-	in_out_manager.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dynspg_oce.o) \
-	$(MODEL_LIB)(dynspg_rl.o) \
+	in_out_manager.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(oce.o) \
@@ -2185,12 +2146,8 @@
 $(MODEL_LIB)(dynadv.o) :	\
 	dom_oce.F90 \
-	dynspg_oce.F90 \
-	dynspg_rl.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dynspg_oce.o) \
-	$(MODEL_LIB)(dynspg_rl.o) \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(lbclnk.o) \
@@ -2229,7 +2186,5 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
-	iom.F90 \
-	lbclnk.F90 \
-	ldfdyn_oce.F90 \
+	lbcnfd.F90 \
 	ldftra_oce.F90 \
 	lib_mpp.F90 \
@@ -2237,23 +2192,13 @@
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(iom.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(ldfdyn_oce.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(ldftra_oce.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(obc_oce.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(restart.o) \
-	$(MODEL_LIB)(sbc_oce.o) \
-	$(MODEL_LIB)(solfet.o) \
-	$(MODEL_LIB)(solisl.o) \
-	$(MODEL_LIB)(sol_oce.o) \
-	$(MODEL_LIB)(solpcg.o) \
-	$(MODEL_LIB)(solsor.o) \
-	$(MODEL_LIB)(solver.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(sbc_oce.o) \
 	$(MODEL_LIB)(trdicp.o) \
 	$(MODEL_LIB)(trdicp_oce.o) \
@@ -2264,17 +2209,9 @@
 	$(MODEL_LIB)(trdvor_oce.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
-	obc_oce.F90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.F90 \
-	restart.F90 \
-	sbc_oce.F90 \
-	solfet.F90 \
-	solisl.F90 \
-	sol_oce.F90 \
-	solpcg.F90 \
-	solsor.F90 \
-	solver.F90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	sbc_oce.F90 \
 	trdicp.F90 \
 	trdicp_oce.F90 \
@@ -2286,11 +2223,7 @@
 	zdf_oce.F90 \
 	dom_oce.F90 \
-	dynspg_oce.F90 \
-	dynspg_rl.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dynspg_oce.o) \
-	$(MODEL_LIB)(dynspg_rl.o) \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(lbclnk.o) \
@@ -2336,4 +2269,5 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
+	lbcnfd.F90 \
 	ldftra_oce.F90 \
 	lib_mpp.F90 \
@@ -2341,4 +2275,5 @@
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(ldftra_oce.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
@@ -2445,4 +2380,5 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
+	lbcnfd.F90 \
 	ldftra_oce.F90 \
 	lib_mpp.F90 \
@@ -2450,4 +2386,5 @@
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(ldftra_oce.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
@@ -2502,4 +2439,5 @@
 	in_out_manager.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	ldfdyn_oce.F90 \
 	ldftra_oce.F90 \
@@ -2509,4 +2447,5 @@
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(ldfdyn_oce.o) \
 	$(MODEL_LIB)(ldftra_oce.o) \
@@ -2571,4 +2510,5 @@
 	in_out_manager.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	ldfdyn_oce.F90 \
 	ldfslp.F90 \
@@ -2579,4 +2519,5 @@
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(ldfdyn_oce.o) \
 	$(MODEL_LIB)(ldfslp.o) \
@@ -2654,4 +2595,5 @@
 	in_out_manager.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	ldfdyn_oce.F90 \
 	ldftra_oce.F90 \
@@ -2661,4 +2603,5 @@
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(ldfdyn_oce.o) \
 	$(MODEL_LIB)(ldftra_oce.o) \
@@ -2789,8 +2732,10 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
+	lbcnfd.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -2819,8 +2764,13 @@
 	daymod.F90 \
 	dom_oce.F90 \
+	dynadv_cen2.F90 \
+	dynadv_ubs.F90 \
+	dynkeg.F90 \
 	dynspg_oce.F90 \
-	in_out_manager.F90 \
-	iom.F90 \
-	lbclnk.F90 \
+	dynzad.F90 \
+	in_out_manager.F90 \
+	iom.F90 \
+	lbclnk.F90 \
+	lbcnfd.F90 \
 	lib_mpp.F90 \
 	lib_print.f90 \
@@ -2830,11 +2780,15 @@
 	$(MODEL_LIB)(daymod.o) \
 	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dynadv_cen2.o) \
+	$(MODEL_LIB)(dynadv_ubs.o) \
+	$(MODEL_LIB)(dynkeg.o) \
 	$(MODEL_LIB)(dynspg_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(iom.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(obccli.o) \
+	$(MODEL_LIB)(dynzad.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(lib_print.o) \
 	$(MODEL_LIB)(obc_oce.o) \
 	$(MODEL_LIB)(obc_par.o) \
@@ -2844,5 +2798,4 @@
 	$(MODEL_LIB)(phycst.o) \
 	$(MODEL_LIB)(sbc_oce.o) \
-	obccli.F90 \
 	obc_oce.F90 \
 	obc_par.F90 \
@@ -2859,4 +2812,5 @@
 	dom_oce.F90 \
 	domvvl.F90 \
+	dynadv.F90 \
 	dynspg_oce.F90 \
 	in_out_manager.F90 \
@@ -2869,4 +2823,5 @@
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(domvvl.o) \
+	$(MODEL_LIB)(dynadv.o) \
 	$(MODEL_LIB)(dynspg_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
@@ -2901,4 +2856,5 @@
 	iom_rstdimg.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	lib_mpp.F90 \
 	lib_print.f90 \
@@ -2915,7 +2871,7 @@
 	$(MODEL_LIB)(iom_rstdimg.o) \
 	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(obccli.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(lib_print.o) \
 	$(MODEL_LIB)(obc_oce.o) \
 	$(MODEL_LIB)(obc_par.o) \
@@ -2925,7 +2881,7 @@
 	$(MODEL_LIB)(phycst.o) \
 	$(MODEL_LIB)(trdmld_oce.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
+	$(MODEL_LIB)(zdfmxl.o) \
 	$(MODEL_LIB)(zpshde.o) \
-	obccli.F90 \
 	obc_oce.F90 \
 	obc_par.F90 \
@@ -2935,5 +2891,6 @@
 	phycst.F90 \
 	trdmld_oce.F90 \
-	zdf_oce.F90 \
+	zdfddm.F90 \
+	zdfmxl.F90 \
 	zpshde.F90 \
 	dom_oce.F90 \
@@ -2983,5 +2940,4 @@
 	iom.F90 \
 	lbclnk.F90 \
-	ldfdyn_oce.F90 \
 	ldftra_oce.F90 \
 	lib_mpp.F90 \
@@ -3002,5 +2958,4 @@
 	$(MODEL_LIB)(iom.o) \
 	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(ldfdyn_oce.o) \
 	$(MODEL_LIB)(ldftra_oce.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
@@ -3019,6 +2974,4 @@
 	$(MODEL_LIB)(restart.o) \
 	$(MODEL_LIB)(sbc_oce.o) \
-	$(MODEL_LIB)(solfet.o) \
-	$(MODEL_LIB)(solisl.o) \
 	$(MODEL_LIB)(solmat.o) \
 	$(MODEL_LIB)(sol_oce.o) \
@@ -3047,6 +3000,4 @@
 	restart.F90 \
 	sbc_oce.F90 \
-	solfet.F90 \
-	solisl.F90 \
 	solmat.F90 \
 	sol_oce.F90 \
@@ -3066,5 +3017,4 @@
 	dynspg_flt.F90 \
 	dynspg_oce.F90 \
-	dynspg_rl.F90 \
 	dynspg_ts.F90 \
 	in_out_manager.F90 \
@@ -3073,5 +3023,4 @@
 	$(MODEL_LIB)(dynspg_flt.o) \
 	$(MODEL_LIB)(dynspg_oce.o) \
-	$(MODEL_LIB)(dynspg_rl.o) \
 	$(MODEL_LIB)(dynspg_ts.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
@@ -3105,5 +3054,5 @@
 	iom_rstdimg.F90 \
 	lbclnk.F90 \
-	lib_feti.F90 \
+	lbcnfd.F90 \
 	lib_mpp.F90 \
 	lib_print.f90 \
@@ -3122,8 +3071,7 @@
 	$(MODEL_LIB)(iom_rstdimg.o) \
 	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_feti.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(obccli.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(lib_print.o) \
 	$(MODEL_LIB)(obcdyn.o) \
 	$(MODEL_LIB)(obc_oce.o) \
@@ -3135,6 +3083,4 @@
 	$(MODEL_LIB)(phycst.o) \
 	$(MODEL_LIB)(sbc_oce.o) \
-	$(MODEL_LIB)(solfet.o) \
-	$(MODEL_LIB)(solisl.o) \
 	$(MODEL_LIB)(solmat.o) \
 	$(MODEL_LIB)(sol_oce.o) \
@@ -3142,7 +3088,8 @@
 	$(MODEL_LIB)(solsor.o) \
 	$(MODEL_LIB)(trdmld_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
+	$(MODEL_LIB)(zdfmxl.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
 	$(MODEL_LIB)(zpshde.o) \
-	obccli.F90 \
 	obcdyn.F90 \
 	obc_oce.F90 \
@@ -3154,6 +3101,4 @@
 	phycst.F90 \
 	sbc_oce.F90 \
-	solfet.F90 \
-	solisl.F90 \
 	solmat.F90 \
 	sol_oce.F90 \
@@ -3161,4 +3106,6 @@
 	solsor.F90 \
 	trdmld_oce.F90 \
+	zdfddm.F90 \
+	zdfmxl.F90 \
 	zdf_oce.F90 \
 	zpshde.F90 \
@@ -3193,5 +3140,4 @@
 	$(MODEL_LIB)(restart.o) \
 	$(MODEL_LIB)(sbc_oce.o) \
-	$(MODEL_LIB)(solfet.o) \
 	$(MODEL_LIB)(solmat.o) \
 	$(MODEL_LIB)(sol_oce.o) \
@@ -3208,5 +3154,4 @@
 	restart.F90 \
 	sbc_oce.F90 \
-	solfet.F90 \
 	solmat.F90 \
 	sol_oce.F90 \
@@ -3227,102 +3172,4 @@
 	KEY_CPP \
 	dynspg_oce.F90
-$(MODEL_LIB)(dynspg_rl.o) :	\
-	c1d.F90 \
-	dom_oce.F90 \
-	dynspg_oce.F90 \
-	eosbn2.F90 \
-	in_out_manager.F90 \
-	iom_def.F90 \
-	iom.F90 \
-	iom_ioipsl.F90 \
-	iom_nf90.F90 \
-	iom_rstdimg.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(c1d.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dynspg_oce.o) \
-	$(MODEL_LIB)(eosbn2.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(iom_def.o) \
-	$(MODEL_LIB)(iom_ioipsl.o) \
-	$(MODEL_LIB)(iom_nf90.o) \
-	$(MODEL_LIB)(iom.o) \
-	$(MODEL_LIB)(iom_rstdimg.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(obc_oce.o) \
-	$(MODEL_LIB)(obc_par.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(solfet.o) \
-	$(MODEL_LIB)(solisl.o) \
-	$(MODEL_LIB)(solmat.o) \
-	$(MODEL_LIB)(sol_oce.o) \
-	$(MODEL_LIB)(solpcg.o) \
-	$(MODEL_LIB)(solsor.o) \
-	$(MODEL_LIB)(trdmld_oce.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	$(MODEL_LIB)(zpshde.o) \
-	obc_oce.F90 \
-	obc_par.F90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.F90 \
-	solfet.F90 \
-	solisl.F90 \
-	solmat.F90 \
-	sol_oce.F90 \
-	solpcg.F90 \
-	solsor.F90 \
-	trdmld_oce.F90 \
-	zdf_oce.F90 \
-	zpshde.F90 \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	iom.F90 \
-	lbclnk.F90 \
-	ldfdyn_oce.F90 \
-	ldftra_oce.F90 \
-	lib_mpp.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(iom.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(ldfdyn_oce.o) \
-	$(MODEL_LIB)(ldftra_oce.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(obc_oce.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(restart.o) \
-	$(MODEL_LIB)(solfet.o) \
-	$(MODEL_LIB)(solisl.o) \
-	$(MODEL_LIB)(sol_oce.o) \
-	$(MODEL_LIB)(solpcg.o) \
-	$(MODEL_LIB)(solsor.o) \
-	$(MODEL_LIB)(solver.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	obc_oce.F90 \
-	oce.F90 \
-	phycst.F90 \
-	restart.F90 \
-	solfet.F90 \
-	solisl.F90 \
-	sol_oce.F90 \
-	solpcg.F90 \
-	solsor.F90 \
-	solver.F90 \
-	zdf_oce.F90 \
-	domzgr_substitute.h90 \
-	obc_vectopt_loop_substitute.h90 \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	dynspg_rl.F90
 $(MODEL_LIB)(dynspg_ts.o) :	\
 	bdy_oce.F90 \
@@ -3342,4 +3189,5 @@
 	iom_rstdimg.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	lib_mpp.F90 \
 	lib_print.f90 \
@@ -3360,7 +3208,7 @@
 	$(MODEL_LIB)(iom_rstdimg.o) \
 	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(obccli.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(lib_print.o) \
 	$(MODEL_LIB)(obcdta.o) \
 	$(MODEL_LIB)(obc_oce.o) \
@@ -3375,7 +3223,7 @@
 	$(MODEL_LIB)(trdmod.o) \
 	$(MODEL_LIB)(trdmod_oce.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
+	$(MODEL_LIB)(zdfmxl.o) \
 	$(MODEL_LIB)(zpshde.o) \
-	obccli.F90 \
 	obcdta.F90 \
 	obc_oce.F90 \
@@ -3390,5 +3238,6 @@
 	trdmod.F90 \
 	trdmod_oce.F90 \
-	zdf_oce.F90 \
+	zdfddm.F90 \
+	zdfmxl.F90 \
 	zpshde.F90 \
 	bdydta.F90 \
@@ -3447,4 +3296,5 @@
 	dynzad.F90 \
 	in_out_manager.F90 \
+	lbcnfd.F90 \
 	ldftra_oce.F90 \
 	lib_mpp.F90 \
@@ -3456,4 +3306,5 @@
 	$(MODEL_LIB)(dynzad.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(ldftra_oce.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
@@ -3593,4 +3444,5 @@
 $(MODEL_LIB)(dynzdf.o) :	\
 	dom_oce.F90 \
+	domvvl.F90 \
 	dynzdf_exp.F90 \
 	eosbn2.F90 \
@@ -3602,4 +3454,5 @@
 	lib_print.f90 \
 	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(domvvl.o) \
 	$(MODEL_LIB)(dynzdf_exp.o) \
 	$(MODEL_LIB)(eosbn2.o) \
@@ -3664,6 +3517,6 @@
 	$(MODEL_LIB)(zdfkpp.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
-	$(MODEL_LIB)(zdftke2.o) \
 	$(MODEL_LIB)(zdftke.o) \
+	$(MODEL_LIB)(zdftke_old.o) \
 	oce.F90 \
 	prtctl.F90 \
@@ -3672,6 +3525,6 @@
 	zdfkpp.F90 \
 	zdf_oce.F90 \
-	zdftke2.F90 \
 	zdftke.F90 \
+	zdftke_old.F90 \
 	domzgr_substitute.h90 \
 	vectopt_loop_substitute.h90 \
@@ -3811,4 +3664,5 @@
 	flo_oce.F90 \
 	in_out_manager.F90 \
+	lbcnfd.F90 \
 	lib_mpp.F90 \
 	$(MODEL_LIB)(daymod.o) \
@@ -3816,4 +3670,5 @@
 	$(MODEL_LIB)(flo_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(oce.o) \
@@ -3841,7 +3696,9 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
+	lbcnfd.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_print.o) \
 	$(MODEL_LIB)(par_kind.o) \
@@ -3867,7 +3724,9 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
+	lbcnfd.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_print.o) \
 	$(MODEL_LIB)(par_kind.o) \
@@ -3899,8 +3758,10 @@
 	in_out_manager.F90 \
 	iom.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(iom.o) \
+	lbcnfd.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_print.o) \
 	$(MODEL_LIB)(par_kind.o) \
@@ -3932,8 +3793,10 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
+	lbcnfd.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -3968,5 +3831,4 @@
 	eosbn2.F90 \
 	ice_2.F90 \
-	ice_oce.F90 \
 	in_out_manager.F90 \
 	iom.F90 \
@@ -3978,5 +3840,4 @@
 	$(MODEL_LIB)(eosbn2.o) \
 	$(MODEL_LIB)(ice_2.o) \
-	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(iom.o) \
@@ -4000,5 +3861,4 @@
 	dom_oce.F90 \
 	ice_2.F90 \
-	ice_oce.F90 \
 	in_out_manager.F90 \
 	limistate_2.F90 \
@@ -4008,5 +3868,4 @@
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(ice_2.o) \
-	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(limistate_2.o) \
@@ -4021,11 +3880,4 @@
 	KEY_CPP \
 	iceini_2.F90
-$(MODEL_LIB)(ice_oce.o) :	\
-	$(MODEL_LIB)(par_kind.o) \
-	par_kind.F90 \
-	$(MODEL_LIB)(par_oce.o) \
-	par_oce.F90 \
-	KEY_CPP \
-	ice_oce.F90
 $(MODEL_LIB)(in_out_manager.o) :	\
 	$(MODEL_LIB)(par_kind.o) \
@@ -4037,4 +3889,5 @@
 	par_kind.F90 \
 	par_oce.F90 \
+	$(AGRIF_LIB) \
 	KEY_CPP \
 	in_out_manager.F90
@@ -4050,4 +3903,5 @@
 	iom_def.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	lib_mpp.F90 \
 	lib_print.f90 \
@@ -4056,4 +3910,5 @@
 	$(MODEL_LIB)(iom_def.o) \
 	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -4098,8 +3953,10 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
+	lbcnfd.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -4122,8 +3979,10 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
+	lbcnfd.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -4159,5 +4018,4 @@
 	dynspg_flt.F90 \
 	dynspg_oce.F90 \
-	dynspg_rl.F90 \
 	dynspg_ts.F90 \
 	dynvor.F90 \
@@ -4170,4 +4028,5 @@
 	iom_rstdimg.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	lib_mpp.F90 \
 	lib_print.f90 \
@@ -4187,5 +4046,4 @@
 	$(MODEL_LIB)(dynspg_flt.o) \
 	$(MODEL_LIB)(dynspg_oce.o) \
-	$(MODEL_LIB)(dynspg_rl.o) \
 	$(MODEL_LIB)(dynspg_ts.o) \
 	$(MODEL_LIB)(dynvor.o) \
@@ -4198,4 +4056,5 @@
 	$(MODEL_LIB)(iom_rstdimg.o) \
 	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -4213,5 +4072,4 @@
 	$(MODEL_LIB)(restart.o) \
 	$(MODEL_LIB)(sbc_oce.o) \
-	$(MODEL_LIB)(solfet.o) \
 	$(MODEL_LIB)(solmat.o) \
 	$(MODEL_LIB)(sol_oce.o) \
@@ -4223,4 +4081,5 @@
 	$(MODEL_LIB)(trdmod_oce.o) \
 	$(MODEL_LIB)(zdfddm.o) \
+	$(MODEL_LIB)(zdfmxl.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
 	$(MODEL_LIB)(zpshde.o) \
@@ -4238,5 +4097,4 @@
 	restart.F90 \
 	sbc_oce.F90 \
-	solfet.F90 \
 	solmat.F90 \
 	sol_oce.F90 \
@@ -4248,4 +4106,5 @@
 	trdmod_oce.F90 \
 	zdfddm.F90 \
+	zdfmxl.F90 \
 	zdf_oce.F90 \
 	zpshde.F90 \
@@ -4287,6 +4146,4 @@
 	$(MODEL_LIB)(phycst.o) \
 	$(MODEL_LIB)(restart.o) \
-	$(MODEL_LIB)(solisl.o) \
-	$(MODEL_LIB)(wzvmod.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
 	$(MODEL_LIB)(zpshde.o) \
@@ -4294,6 +4151,4 @@
 	phycst.F90 \
 	restart.F90 \
-	solisl.F90 \
-	wzvmod.F90 \
 	zdf_oce.F90 \
 	zpshde.F90 \
@@ -4305,17 +4160,23 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	par_kind.F90 \
-	par_oce.F90 \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_mpp.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
+	lbcnfd.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbcnfd.F90 \
+	lib_mpp.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(oce.o) \
@@ -4323,8 +4184,23 @@
 	KEY_CPP \
 	lbclnk.F90
+$(MODEL_LIB)(lbcnfd.o) :	\
+	lib_print.f90 \
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	par_kind.F90 \
+	par_oce.F90 \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(oce.o) \
+	oce.F90 \
+	lbcnfd.F90
 $(MODEL_LIB)(ldfdyn.o) :	\
 	dom_oce.F90 \
 	in_out_manager.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	ldfdyn_oce.F90 \
 	ldftra_oce.F90 \
@@ -4334,4 +4210,5 @@
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(ldfdyn_oce.o) \
 	$(MODEL_LIB)(ldftra_oce.o) \
@@ -4390,6 +4267,11 @@
 	fldread.F90 \
 	in_out_manager.F90 \
-	iom.F90 \
-	lbclnk.F90 \
+	iom_def.F90 \
+	iom.F90 \
+	iom_ioipsl.F90 \
+	iom_nf90.F90 \
+	iom_rstdimg.F90 \
+	lbclnk.F90 \
+	lbcnfd.F90 \
 	ldfdyn_oce.F90 \
 	ldftra_oce.F90 \
@@ -4401,6 +4283,11 @@
 	$(MODEL_LIB)(fldread.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(iom.o) \
-	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(iom_def.o) \
+	$(MODEL_LIB)(iom_ioipsl.o) \
+	$(MODEL_LIB)(iom_nf90.o) \
+	$(MODEL_LIB)(iom.o) \
+	$(MODEL_LIB)(iom_rstdimg.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(ldfdyn_oce.o) \
 	$(MODEL_LIB)(ldftra_oce.o) \
@@ -4423,4 +4310,5 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
+	iom.F90 \
 	lbclnk.F90 \
 	ldfslp.F90 \
@@ -4428,4 +4316,5 @@
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom.o) \
 	$(MODEL_LIB)(lbclnk.o) \
 	$(MODEL_LIB)(ldfslp.o) \
@@ -4448,8 +4337,12 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
+	iom.F90 \
+	lbcnfd.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -4490,4 +4383,5 @@
 	in_out_manager.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	ldfdyn_oce.F90 \
 	ldftra_oce.F90 \
@@ -4497,4 +4391,5 @@
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(ldfdyn_oce.o) \
 	$(MODEL_LIB)(ldftra_oce.o) \
@@ -4546,26 +4441,23 @@
 $(MODEL_LIB)(lib_cray.o) :	\
 	lib_cray.f90
-$(MODEL_LIB)(lib_feti.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	lib_mpp.F90 \
-	$(MODEL_LIB)(lib_mpp.o) \
-	KEY_CPP \
-	lib_feti.F90
-$(MODEL_LIB)(lib_isml.o) :	\
-	lib_isml.f90
 $(MODEL_LIB)(lib_mpp.o) :	\
-	lib_print.f90 \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	par_kind.F90 \
-	par_oce.F90 \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbcnfd.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(AGRIF_LIB) \
 	KEY_CPP \
@@ -4578,8 +4470,10 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
+	lbcnfd.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -4594,14 +4488,15 @@
 	dom_ice_2.F90 \
 	dom_oce.F90 \
-	ice_oce.F90 \
+	ice_2.F90 \
 	in_out_manager.F90 \
 	lbclnk.F90 \
 	$(MODEL_LIB)(dom_ice_2.o) \
 	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(ice_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(prtctl.o) \
-	prtctl.F90 \
+	$(MODEL_LIB)(ice_2.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	prtctl.F90 \
+	vectopt_loop_substitute.h90 \
 	KEY_CPP \
 	limadv_2.F90
@@ -4611,5 +4506,4 @@
 	eosbn2.F90 \
 	ice_2.F90 \
-	ice_oce.F90 \
 	in_out_manager.F90 \
 	iom.F90 \
@@ -4620,5 +4514,4 @@
 	$(MODEL_LIB)(eosbn2.o) \
 	$(MODEL_LIB)(ice_2.o) \
-	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(iom.o) \
@@ -4642,5 +4535,4 @@
 	dom_ice_2.F90 \
 	ice_2.F90 \
-	ice_oce.F90 \
 	in_out_manager.F90 \
 	limistate_2.F90 \
@@ -4648,5 +4540,4 @@
 	$(MODEL_LIB)(dom_ice_2.o) \
 	$(MODEL_LIB)(ice_2.o) \
-	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(limistate_2.o) \
@@ -4710,5 +4601,4 @@
 	dom_oce.F90 \
 	ice_2.F90 \
-	ice_oce.F90 \
 	in_out_manager.F90 \
 	iom.F90 \
@@ -4716,5 +4606,4 @@
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(ice_2.o) \
-	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(iom.o) \
@@ -4733,8 +4622,8 @@
 	eosbn2.F90 \
 	ice_2.F90 \
-	ice_oce.F90 \
-	in_out_manager.F90 \
-	iom.F90 \
-	lbclnk.F90 \
+	in_out_manager.F90 \
+	iom.F90 \
+	lbclnk.F90 \
+	lbcnfd.F90 \
 	lib_mpp.F90 \
 	lib_print.f90 \
@@ -4743,8 +4632,8 @@
 	$(MODEL_LIB)(eosbn2.o) \
 	$(MODEL_LIB)(ice_2.o) \
-	$(MODEL_LIB)(ice_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(iom.o) \
-	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -4766,5 +4655,4 @@
 	dom_oce.F90 \
 	ice_2.F90 \
-	ice_oce.F90 \
 	in_out_manager.F90 \
 	lbclnk.F90 \
@@ -4775,5 +4663,4 @@
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(ice_2.o) \
-	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(lbclnk.o) \
@@ -4793,8 +4680,10 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
+	lbcnfd.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -4809,5 +4698,4 @@
 	dom_oce.F90 \
 	ice_2.F90 \
-	ice_oce.F90 \
 	in_out_manager.F90 \
 	lbclnk.F90 \
@@ -4815,5 +4703,4 @@
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(ice_2.o) \
-	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(lbclnk.o) \
@@ -4832,4 +4719,5 @@
 	iom_rstdimg.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	lib_mpp.F90 \
 	lib_print.f90 \
@@ -4841,4 +4729,5 @@
 	$(MODEL_LIB)(iom_rstdimg.o) \
 	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -4860,5 +4749,4 @@
 	eosbn2.F90 \
 	ice_2.F90 \
-	ice_oce.F90 \
 	in_out_manager.F90 \
 	iom.F90 \
@@ -4867,5 +4755,4 @@
 	$(MODEL_LIB)(eosbn2.o) \
 	$(MODEL_LIB)(ice_2.o) \
-	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(iom.o) \
@@ -4882,8 +4769,10 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
+	lbcnfd.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -4911,8 +4800,10 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
+	lbcnfd.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -4927,5 +4818,4 @@
 	dom_ice_2.F90 \
 	ice_2.F90 \
-	ice_oce.F90 \
 	in_out_manager.F90 \
 	lbclnk.F90 \
@@ -4933,5 +4823,4 @@
 	$(MODEL_LIB)(dom_ice_2.o) \
 	$(MODEL_LIB)(ice_2.o) \
-	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(lbclnk.o) \
@@ -4996,10 +4885,20 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
+	iom_def.F90 \
+	iom_ioipsl.F90 \
+	iom_nf90.F90 \
+	iom_rstdimg.F90 \
+	lbclnk.F90 \
+	lbcnfd.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom_def.o) \
+	$(MODEL_LIB)(iom_ioipsl.o) \
+	$(MODEL_LIB)(iom_nf90.o) \
+	$(MODEL_LIB)(iom_rstdimg.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -5017,16 +4916,14 @@
 	cpl_oasis3.F90 \
 	dom_oce.F90 \
-	dynspg_oce.F90 \
 	ice_2.F90 \
-	ice_oce.F90 \
-	in_out_manager.F90 \
+	in_out_manager.F90 \
+	iom.F90 \
 	lbclnk.F90 \
 	$(MODEL_LIB)(albedo.o) \
 	$(MODEL_LIB)(cpl_oasis3.o) \
 	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dynspg_oce.o) \
 	$(MODEL_LIB)(ice_2.o) \
-	$(MODEL_LIB)(ice_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom.o) \
 	$(MODEL_LIB)(lbclnk.o) \
 	$(MODEL_LIB)(par_oce.o) \
@@ -5052,7 +4949,11 @@
 	dom_oce.F90 \
 	ice_2.F90 \
-	ice_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
+	in_out_manager.F90 \
+	iom_def.F90 \
+	iom_ioipsl.F90 \
+	iom_nf90.F90 \
+	iom_rstdimg.F90 \
+	lbclnk.F90 \
+	lbcnfd.F90 \
 	lib_mpp.F90 \
 	lib_print.f90 \
@@ -5061,7 +4962,11 @@
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(ice_2.o) \
-	$(MODEL_LIB)(ice_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom_def.o) \
+	$(MODEL_LIB)(iom_ioipsl.o) \
+	$(MODEL_LIB)(iom_nf90.o) \
+	$(MODEL_LIB)(iom_rstdimg.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -5072,4 +4977,5 @@
 	$(MODEL_LIB)(par_oce.o) \
 	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(sbc_oce.o) \
 	$(MODEL_LIB)(thd_ice_2.o) \
 	oce.F90 \
@@ -5078,11 +4984,13 @@
 	par_oce.F90 \
 	phycst.F90 \
+	sbc_oce.F90 \
 	thd_ice_2.F90 \
 	cpl_oasis3.F90 \
 	dom_ice_2.F90 \
 	dom_oce.F90 \
+	domvvl.F90 \
 	ice_2.F90 \
-	ice_oce.F90 \
-	in_out_manager.F90 \
+	in_out_manager.F90 \
+	iom.F90 \
 	lbclnk.F90 \
 	limtab_2.F90 \
@@ -5092,7 +5000,8 @@
 	$(MODEL_LIB)(dom_ice_2.o) \
 	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(domvvl.o) \
 	$(MODEL_LIB)(ice_2.o) \
-	$(MODEL_LIB)(ice_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom.o) \
 	$(MODEL_LIB)(lbclnk.o) \
 	$(MODEL_LIB)(limtab_2.o) \
@@ -5117,5 +5026,4 @@
 	eosbn2.F90 \
 	ice_2.F90 \
-	ice_oce.F90 \
 	in_out_manager.F90 \
 	iom.F90 \
@@ -5124,5 +5032,4 @@
 	$(MODEL_LIB)(eosbn2.o) \
 	$(MODEL_LIB)(ice_2.o) \
-	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(iom.o) \
@@ -5139,8 +5046,6 @@
 	phycst.F90 \
 	ice_2.F90 \
-	ice_oce.F90 \
 	limistate_2.F90 \
 	$(MODEL_LIB)(ice_2.o) \
-	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(limistate_2.o) \
 	$(MODEL_LIB)(par_oce.o) \
@@ -5157,5 +5062,4 @@
 	eosbn2.F90 \
 	ice_2.F90 \
-	ice_oce.F90 \
 	in_out_manager.F90 \
 	iom.F90 \
@@ -5166,5 +5070,4 @@
 	$(MODEL_LIB)(eosbn2.o) \
 	$(MODEL_LIB)(ice_2.o) \
-	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(iom.o) \
@@ -5183,10 +5086,8 @@
 	cpl_oasis3.F90 \
 	ice_2.F90 \
-	ice_oce.F90 \
 	in_out_manager.F90 \
 	limistate_2.F90 \
 	$(MODEL_LIB)(cpl_oasis3.o) \
 	$(MODEL_LIB)(ice_2.o) \
-	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(limistate_2.o) \
@@ -5204,8 +5105,8 @@
 	eosbn2.F90 \
 	ice_2.F90 \
-	ice_oce.F90 \
-	in_out_manager.F90 \
-	iom.F90 \
-	lbclnk.F90 \
+	in_out_manager.F90 \
+	iom.F90 \
+	lbclnk.F90 \
+	lbcnfd.F90 \
 	lib_mpp.F90 \
 	lib_print.f90 \
@@ -5214,8 +5115,8 @@
 	$(MODEL_LIB)(eosbn2.o) \
 	$(MODEL_LIB)(ice_2.o) \
-	$(MODEL_LIB)(ice_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(iom.o) \
-	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -5238,5 +5139,4 @@
 	dom_oce.F90 \
 	ice_2.F90 \
-	ice_oce.F90 \
 	in_out_manager.F90 \
 	lbclnk.F90 \
@@ -5249,5 +5149,4 @@
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(ice_2.o) \
-	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(lbclnk.o) \
@@ -5265,6 +5164,11 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
-	iom.F90 \
-	lbclnk.F90 \
+	iom_def.F90 \
+	iom.F90 \
+	iom_ioipsl.F90 \
+	iom_nf90.F90 \
+	iom_rstdimg.F90 \
+	lbclnk.F90 \
+	lbcnfd.F90 \
 	lib_mpp.F90 \
 	lib_print.f90 \
@@ -5272,6 +5176,11 @@
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(iom.o) \
-	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(iom_def.o) \
+	$(MODEL_LIB)(iom_ioipsl.o) \
+	$(MODEL_LIB)(iom_nf90.o) \
+	$(MODEL_LIB)(iom.o) \
+	$(MODEL_LIB)(iom_rstdimg.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -5295,6 +5204,6 @@
 	dom_oce.F90 \
 	ice_2.F90 \
-	ice_oce.F90 \
-	in_out_manager.F90 \
+	in_out_manager.F90 \
+	iom.F90 \
 	lbclnk.F90 \
 	$(MODEL_LIB)(daymod.o) \
@@ -5303,6 +5212,6 @@
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(ice_2.o) \
-	$(MODEL_LIB)(ice_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom.o) \
 	$(MODEL_LIB)(lbclnk.o) \
 	$(MODEL_LIB)(phycst.o) \
@@ -5333,7 +5242,9 @@
 	dtatem.F90 \
 	dyncor_c1d.F90 \
+	dynhpg.F90 \
 	dynspg_oce.F90 \
 	eosbn2.F90 \
 	in_out_manager.F90 \
+	iom.F90 \
 	istate.F90 \
 	ldfdyn.F90 \
@@ -5353,7 +5264,9 @@
 	$(MODEL_LIB)(dtatem.o) \
 	$(MODEL_LIB)(dyncor_c1d.o) \
+	$(MODEL_LIB)(dynhpg.o) \
 	$(MODEL_LIB)(dynspg_oce.o) \
 	$(MODEL_LIB)(eosbn2.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom.o) \
 	$(MODEL_LIB)(istate.o) \
 	$(MODEL_LIB)(ldfdyn.o) \
@@ -5369,9 +5282,7 @@
 	$(MODEL_LIB)(step_c1d.o) \
 	$(MODEL_LIB)(step.o) \
-	$(MODEL_LIB)(trcini.o) \
 	$(MODEL_LIB)(trdmod.o) \
 	$(MODEL_LIB)(trdmod_oce.o) \
 	$(MODEL_LIB)(zdfini.o) \
-	$(MODEL_LIB)(zpshde.o) \
 	mppini.F90 \
 	obcini.F90 \
@@ -5383,9 +5294,7 @@
 	step_c1d.F90 \
 	step.F90 \
-	trcini.F90 \
 	trdmod.F90 \
 	trdmod_oce.F90 \
 	zdfini.F90 \
-	zpshde.F90 \
 	$(MODEL_LIB)(opa.o) \
 	opa.F90 \
@@ -5394,21 +5303,23 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	par_kind.F90 \
-	par_oce.F90 \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_mpp.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(sol_oce.o) \
-	sol_oce.F90 \
-	iom.F90 \
+	lbcnfd.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	par_kind.F90 \
+	par_oce.F90 \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_mpp.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	in_out_manager.F90 \
+	iom.F90 \
+	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(iom.o) \
 	domzgr_substitute.h90 \
@@ -5420,49 +5331,4 @@
 	KEY_CPP \
 	oasis4_date.F90
-$(MODEL_LIB)(obccli.o) :	\
-	in_out_manager.F90 \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(obc_par.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	obc_par.F90 \
-	par_oce.F90 \
-	dom_oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(obc_oce.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	obc_oce.F90 \
-	oce.F90 \
-	phycst.F90 \
-	domzgr_substitute.h90 \
-	KEY_CPP \
-	obccli.F90
-$(MODEL_LIB)(obcdom.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(obc_par.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	obc_par.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_mpp.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(obc_oce.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	obc_oce.F90 \
-	oce.F90 \
-	phycst.F90 \
-	KEY_CPP \
-	obcdom.F90
 $(MODEL_LIB)(obcdta.o) :	\
 	dom_oce.F90 \
@@ -5474,4 +5340,5 @@
 	iom_rstdimg.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	lib_mpp.F90 \
 	lib_print.f90 \
@@ -5484,7 +5351,7 @@
 	$(MODEL_LIB)(iom_rstdimg.o) \
 	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(obc_oce.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(lib_print.o) \
 	$(MODEL_LIB)(obc_par.o) \
 	$(MODEL_LIB)(oce.o) \
@@ -5494,5 +5361,4 @@
 	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(restart.o) \
-	obc_oce.F90 \
 	obc_par.F90 \
 	oce.F90 \
@@ -5516,9 +5382,7 @@
 	$(MODEL_LIB)(lbclnk.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(obccli.o) \
 	$(MODEL_LIB)(obc_oce.o) \
 	$(MODEL_LIB)(oce.o) \
 	$(MODEL_LIB)(phycst.o) \
-	obccli.F90 \
 	obc_oce.F90 \
 	oce.F90 \
@@ -5531,37 +5395,33 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(lib_print.o) \
+	lbcnfd.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(obc_par.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	obc_par.F90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	dom_oce.F90 \
+	dynspg_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dynspg_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(obc_oce.o) \
-	$(MODEL_LIB)(obc_par.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	obc_oce.F90 \
-	obc_par.F90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.F90 \
-	dom_oce.F90 \
-	dynspg_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dynspg_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(obccli.o) \
-	$(MODEL_LIB)(obc_oce.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	obccli.F90 \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
 	obc_oce.F90 \
 	oce.F90 \
@@ -5572,37 +5432,33 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(lib_print.o) \
+	lbcnfd.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(obc_par.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	obc_par.F90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	dom_oce.F90 \
+	dynspg_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dynspg_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(obc_oce.o) \
-	$(MODEL_LIB)(obc_par.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	obc_oce.F90 \
-	obc_par.F90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.F90 \
-	dom_oce.F90 \
-	dynspg_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dynspg_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(obccli.o) \
-	$(MODEL_LIB)(obc_oce.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	obccli.F90 \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
 	obc_oce.F90 \
 	oce.F90 \
@@ -5625,5 +5481,4 @@
 	$(MODEL_LIB)(lbclnk.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(obccli.o) \
 	$(MODEL_LIB)(obc_oce.o) \
 	$(MODEL_LIB)(obc_par.o) \
@@ -5631,5 +5486,4 @@
 	$(MODEL_LIB)(par_oce.o) \
 	$(MODEL_LIB)(phycst.o) \
-	obccli.F90 \
 	obc_oce.F90 \
 	obc_par.F90 \
@@ -5656,4 +5510,5 @@
 	in_out_manager.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	lib_mpp.F90 \
 	lib_print.f90 \
@@ -5662,4 +5517,5 @@
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -5686,10 +5542,8 @@
 	$(MODEL_LIB)(lbclnk.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(obcdom.o) \
 	$(MODEL_LIB)(obc_oce.o) \
 	$(MODEL_LIB)(obcrst.o) \
 	$(MODEL_LIB)(oce.o) \
 	$(MODEL_LIB)(phycst.o) \
-	obcdom.F90 \
 	obc_oce.F90 \
 	obcrst.F90 \
@@ -5721,8 +5575,10 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
+	lbcnfd.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -5756,9 +5612,11 @@
 	in_out_manager.F90 \
 	iom.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(iom.o) \
+	lbcnfd.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -5795,45 +5653,13 @@
 	KEY_CPP \
 	obcrst.F90
-$(MODEL_LIB)(obcspg.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(obc_par.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	obc_par.F90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(obc_oce.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	obc_oce.F90 \
-	oce.F90 \
-	phycst.F90 \
-	obc_vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	obcspg.F90
 $(MODEL_LIB)(obctra.o) :	\
 	dom_oce.F90 \
 	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
+	lbcnfd.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -5867,8 +5693,10 @@
 	in_out_manager.F90 \
 	lbclnk.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
+	lbcnfd.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_print.o) \
 	$(MODEL_LIB)(obc_par.o) \
@@ -5901,5 +5729,4 @@
 	$(MODEL_LIB)(par_oce.o) \
 	par_oce.F90 \
-	KEY_CPP \
 	oce.F90
 $(MODEL_LIB)(opa.o) :	\
@@ -5910,5 +5737,4 @@
 	bdytides.F90 \
 	c1d.F90 \
-	cla_div.F90 \
 	cla.F90 \
 	closea.F90 \
@@ -5921,5 +5747,4 @@
 	dianam.F90 \
 	diaptr.F90 \
-	diaspr.F90 \
 	diawri_c1d.F90 \
 	diawri.F90 \
@@ -5950,8 +5775,12 @@
 	floats.F90 \
 	flo_oce.F90 \
-	ice_oce.F90 \
-	in_out_manager.F90 \
-	iom.F90 \
-	lbclnk.F90 \
+	in_out_manager.F90 \
+	iom_def.F90 \
+	iom.F90 \
+	iom_ioipsl.F90 \
+	iom_nf90.F90 \
+	iom_rstdimg.F90 \
+	lbclnk.F90 \
+	lbcnfd.F90 \
 	ldfdyn_oce.F90 \
 	ldfeiv.F90 \
@@ -5966,5 +5795,4 @@
 	$(MODEL_LIB)(bdytides.o) \
 	$(MODEL_LIB)(c1d.o) \
-	$(MODEL_LIB)(cla_div.o) \
 	$(MODEL_LIB)(cla.o) \
 	$(MODEL_LIB)(closea.o) \
@@ -5977,5 +5805,4 @@
 	$(MODEL_LIB)(dianam.o) \
 	$(MODEL_LIB)(diaptr.o) \
-	$(MODEL_LIB)(diaspr.o) \
 	$(MODEL_LIB)(diawri_c1d.o) \
 	$(MODEL_LIB)(diawri.o) \
@@ -6006,8 +5833,12 @@
 	$(MODEL_LIB)(floats.o) \
 	$(MODEL_LIB)(flo_oce.o) \
-	$(MODEL_LIB)(ice_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(iom.o) \
-	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom_def.o) \
+	$(MODEL_LIB)(iom_ioipsl.o) \
+	$(MODEL_LIB)(iom_nf90.o) \
+	$(MODEL_LIB)(iom.o) \
+	$(MODEL_LIB)(iom_rstdimg.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(ldfdyn_oce.o) \
 	$(MODEL_LIB)(ldfeiv.o) \
@@ -6017,5 +5848,4 @@
 	$(MODEL_LIB)(lib_print.o) \
 	$(MODEL_LIB)(oasis4_date.o) \
-	$(MODEL_LIB)(obcdom.o) \
 	$(MODEL_LIB)(obcdta.o) \
 	$(MODEL_LIB)(obc_oce.o) \
@@ -6023,5 +5853,4 @@
 	$(MODEL_LIB)(obcrad.o) \
 	$(MODEL_LIB)(obcrst.o) \
-	$(MODEL_LIB)(obcspg.o) \
 	$(MODEL_LIB)(oce.o) \
 	$(MODEL_LIB)(par_kind.o) \
@@ -6034,6 +5863,5 @@
 	$(MODEL_LIB)(sbc_oce.o) \
 	$(MODEL_LIB)(sbcrnf.o) \
-	$(MODEL_LIB)(solisl.o) \
-	$(MODEL_LIB)(sol_oce.o) \
+	$(MODEL_LIB)(sshwzv.o) \
 	$(MODEL_LIB)(stpctl.o) \
 	$(MODEL_LIB)(traadv.o) \
@@ -6047,5 +5875,4 @@
 	$(MODEL_LIB)(trasbc.o) \
 	$(MODEL_LIB)(trazdf.o) \
-	$(MODEL_LIB)(trcstp.o) \
 	$(MODEL_LIB)(trdicp.o) \
 	$(MODEL_LIB)(trdicp_oce.o) \
@@ -6053,8 +5880,8 @@
 	$(MODEL_LIB)(trdmld_oce.o) \
 	$(MODEL_LIB)(trdmld_rst.o) \
+	$(MODEL_LIB)(trdmod.o) \
 	$(MODEL_LIB)(trdmod_oce.o) \
 	$(MODEL_LIB)(trdvor.o) \
 	$(MODEL_LIB)(trdvor_oce.o) \
-	$(MODEL_LIB)(wzvmod.o) \
 	$(MODEL_LIB)(zdfbfr.o) \
 	$(MODEL_LIB)(zdfddm.o) \
@@ -6064,9 +5891,9 @@
 	$(MODEL_LIB)(zdf_oce.o) \
 	$(MODEL_LIB)(zdfric.o) \
-	$(MODEL_LIB)(zdftke2.o) \
 	$(MODEL_LIB)(zdftke.o) \
+	$(MODEL_LIB)(zdftke_old.o) \
+	$(MODEL_LIB)(zdftmx.o) \
 	$(MODEL_LIB)(zpshde.o) \
 	oasis4_date.F90 \
-	obcdom.F90 \
 	obcdta.F90 \
 	obc_oce.F90 \
@@ -6074,5 +5901,4 @@
 	obcrad.F90 \
 	obcrst.F90 \
-	obcspg.F90 \
 	oce.F90 \
 	par_kind.F90 \
@@ -6085,6 +5911,5 @@
 	sbc_oce.F90 \
 	sbcrnf.F90 \
-	solisl.F90 \
-	sol_oce.F90 \
+	sshwzv.F90 \
 	stpctl.F90 \
 	traadv.F90 \
@@ -6098,5 +5923,4 @@
 	trasbc.F90 \
 	trazdf.F90 \
-	trcstp.F90 \
 	trdicp.F90 \
 	trdicp_oce.F90 \
@@ -6104,8 +5928,8 @@
 	trdmld_oce.F90 \
 	trdmld_rst.F90 \
+	trdmod.F90 \
 	trdmod_oce.F90 \
 	trdvor.F90 \
 	trdvor_oce.F90 \
-	wzvmod.F90 \
 	zdfbfr.F90 \
 	zdfddm.F90 \
@@ -6115,6 +5939,7 @@
 	zdf_oce.F90 \
 	zdfric.F90 \
-	zdftke2.F90 \
 	zdftke.F90 \
+	zdftke_old.F90 \
+	zdftmx.F90 \
 	zpshde.F90 \
 	bdyini.F90 \
@@ -6131,7 +5956,9 @@
 	dtatem.F90 \
 	dyncor_c1d.F90 \
+	dynhpg.F90 \
 	dynspg_oce.F90 \
 	eosbn2.F90 \
 	in_out_manager.F90 \
+	iom.F90 \
 	istate.F90 \
 	ldfdyn.F90 \
@@ -6151,7 +5978,9 @@
 	$(MODEL_LIB)(dtatem.o) \
 	$(MODEL_LIB)(dyncor_c1d.o) \
+	$(MODEL_LIB)(dynhpg.o) \
 	$(MODEL_LIB)(dynspg_oce.o) \
 	$(MODEL_LIB)(eosbn2.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom.o) \
 	$(MODEL_LIB)(istate.o) \
 	$(MODEL_LIB)(ldfdyn.o) \
@@ -6167,9 +5996,7 @@
 	$(MODEL_LIB)(step_c1d.o) \
 	$(MODEL_LIB)(step.o) \
-	$(MODEL_LIB)(trcini.o) \
 	$(MODEL_LIB)(trdmod.o) \
 	$(MODEL_LIB)(trdmod_oce.o) \
 	$(MODEL_LIB)(zdfini.o) \
-	$(MODEL_LIB)(zpshde.o) \
 	mppini.F90 \
 	obcini.F90 \
@@ -6181,9 +6008,7 @@
 	step_c1d.F90 \
 	step.F90 \
-	trcini.F90 \
 	trdmod.F90 \
 	trdmod_oce.F90 \
 	zdfini.F90 \
-	zpshde.F90 \
 	KEY_CPP \
 	opa.F90
@@ -6226,7 +6051,9 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
+	lbcnfd.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_print.o) \
 	$(MODEL_LIB)(par_kind.o) \
@@ -6246,4 +6073,5 @@
 	in_out_manager.F90 \
 	iom_def.F90 \
+	iom.F90 \
 	iom_ioipsl.F90 \
 	iom_nf90.F90 \
@@ -6257,4 +6085,5 @@
 	$(MODEL_LIB)(iom_ioipsl.o) \
 	$(MODEL_LIB)(iom_nf90.o) \
+	$(MODEL_LIB)(iom.o) \
 	$(MODEL_LIB)(iom_rstdimg.o) \
 	$(MODEL_LIB)(lbclnk.o) \
@@ -6266,4 +6095,5 @@
 	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(zdfddm.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
 	oce.F90 \
 	par_kind.F90 \
@@ -6272,4 +6102,5 @@
 	prtctl.F90 \
 	zdfddm.F90 \
+	zdf_oce.F90 \
 	c1d.F90 \
 	dom_oce.F90 \
@@ -6285,10 +6116,12 @@
 	$(MODEL_LIB)(phycst.o) \
 	$(MODEL_LIB)(trdmld_oce.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
+	$(MODEL_LIB)(zdfmxl.o) \
 	$(MODEL_LIB)(zpshde.o) \
 	oce.F90 \
 	phycst.F90 \
 	trdmld_oce.F90 \
-	zdf_oce.F90 \
+	zdfddm.F90 \
+	zdfmxl.F90 \
 	zpshde.F90 \
 	vectopt_loop_substitute.h90 \
@@ -6300,10 +6133,12 @@
 	iom.F90 \
 	lbclnk.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(iom.o) \
-	$(MODEL_LIB)(lbclnk.o) \
+	lbcnfd.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -6351,4 +6186,5 @@
 	iom_rstdimg.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	lib_mpp.F90 \
 	lib_print.f90 \
@@ -6363,4 +6199,5 @@
 	$(MODEL_LIB)(iom_rstdimg.o) \
 	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -6384,5 +6221,4 @@
 	fldread.F90 \
 	ice_2.F90 \
-	ice_oce.F90 \
 	in_out_manager.F90 \
 	iom.F90 \
@@ -6394,16 +6230,17 @@
 	$(MODEL_LIB)(fldread.o) \
 	$(MODEL_LIB)(ice_2.o) \
-	$(MODEL_LIB)(ice_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(iom.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(prtctl.o) \
-	$(MODEL_LIB)(sbc_oce.o) \
-	oce.F90 \
-	phycst.F90 \
-	prtctl.F90 \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(sbc_ice.o) \
+	$(MODEL_LIB)(sbc_oce.o) \
+	oce.F90 \
+	phycst.F90 \
+	prtctl.F90 \
+	sbc_ice.F90 \
 	sbc_oce.F90 \
 	vectopt_loop_substitute.h90 \
@@ -6421,4 +6258,5 @@
 	iom_rstdimg.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	lib_mpp.F90 \
 	lib_print.f90 \
@@ -6433,7 +6271,9 @@
 	$(MODEL_LIB)(iom_rstdimg.o) \
 	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(par_ice_2.o) \
 	$(MODEL_LIB)(par_kind.o) \
 	$(MODEL_LIB)(par_oce.o) \
@@ -6442,4 +6282,5 @@
 	$(MODEL_LIB)(restart.o) \
 	oce.F90 \
+	par_ice_2.F90 \
 	par_kind.F90 \
 	par_oce.F90 \
@@ -6450,5 +6291,4 @@
 	dom_oce.F90 \
 	fldread.F90 \
-	ice_oce.F90 \
 	in_out_manager.F90 \
 	iom.F90 \
@@ -6458,16 +6298,17 @@
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(fldread.o) \
-	$(MODEL_LIB)(ice_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(iom.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(prtctl.o) \
-	$(MODEL_LIB)(sbc_oce.o) \
-	oce.F90 \
-	phycst.F90 \
-	prtctl.F90 \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(sbc_ice.o) \
+	$(MODEL_LIB)(sbc_oce.o) \
+	oce.F90 \
+	phycst.F90 \
+	prtctl.F90 \
+	sbc_ice.F90 \
 	sbc_oce.F90 \
 	domzgr_substitute.h90 \
@@ -6486,4 +6327,5 @@
 	iom_rstdimg.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	lib_mpp.F90 \
 	lib_print.f90 \
@@ -6498,4 +6340,5 @@
 	$(MODEL_LIB)(iom_rstdimg.o) \
 	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -6506,5 +6349,6 @@
 	$(MODEL_LIB)(phycst.o) \
 	$(MODEL_LIB)(trdmld_oce.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
+	$(MODEL_LIB)(zdfmxl.o) \
 	$(MODEL_LIB)(zpshde.o) \
 	oce.F90 \
@@ -6514,5 +6358,6 @@
 	phycst.F90 \
 	trdmld_oce.F90 \
-	zdf_oce.F90 \
+	zdfddm.F90 \
+	zdfmxl.F90 \
 	zpshde.F90 \
 	albedo.F90 \
@@ -6521,5 +6366,4 @@
 	geo2ocean.F90 \
 	ice_2.F90 \
-	ice_oce.F90 \
 	in_out_manager.F90 \
 	iom.F90 \
@@ -6531,10 +6375,10 @@
 	$(MODEL_LIB)(geo2ocean.o) \
 	$(MODEL_LIB)(ice_2.o) \
-	$(MODEL_LIB)(ice_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(iom.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(par_ice_2.o) \
 	$(MODEL_LIB)(par_kind.o) \
 	$(MODEL_LIB)(phycst.o) \
@@ -6543,4 +6387,5 @@
 	$(MODEL_LIB)(sbc_oce.o) \
 	oce.F90 \
+	par_ice_2.F90 \
 	par_kind.F90 \
 	phycst.F90 \
@@ -6562,4 +6407,5 @@
 	iom_rstdimg.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	lib_mpp.F90 \
 	lib_print.f90 \
@@ -6574,4 +6420,5 @@
 	$(MODEL_LIB)(iom_rstdimg.o) \
 	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -6620,4 +6467,6 @@
 	iom.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
+	lib_mpp.F90 \
 	lib_print.f90 \
 	$(MODEL_LIB)(closea.o) \
@@ -6628,5 +6477,8 @@
 	$(MODEL_LIB)(iom.o) \
 	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(oce.o) \
 	$(MODEL_LIB)(par_kind.o) \
 	$(MODEL_LIB)(par_oce.o) \
@@ -6635,4 +6487,6 @@
 	$(MODEL_LIB)(restart.o) \
 	$(MODEL_LIB)(sbc_oce.o) \
+	$(MODEL_LIB)(sbcrnf.o) \
+	oce.F90 \
 	par_kind.F90 \
 	par_oce.F90 \
@@ -6641,11 +6495,14 @@
 	restart.F90 \
 	sbc_oce.F90 \
+	sbcrnf.F90 \
 	daymod.F90 \
 	dom_oce.F90 \
 	in_out_manager.F90 \
+	lbclnk.F90 \
 	lib_mpp.F90 \
 	$(MODEL_LIB)(daymod.o) \
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(oce.o) \
@@ -6653,8 +6510,10 @@
 	$(MODEL_LIB)(sbc_oce.o) \
 	$(MODEL_LIB)(sbcrnf.o) \
+	$(MODEL_LIB)(sbcssr.o) \
 	oce.F90 \
 	phycst.F90 \
 	sbc_oce.F90 \
 	sbcrnf.F90 \
+	sbcssr.F90 \
 	domzgr_substitute.h90 \
 	vectopt_loop_substitute.h90 \
@@ -6663,6 +6522,10 @@
 $(MODEL_LIB)(sbc_ice.o) :	\
 	$(MODEL_LIB)(par_kind.o) \
-	par_kind.F90 \
-	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	par_kind.F90 \
+	par_oce.F90 \
+	$(MODEL_LIB)(par_ice_2.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	par_ice_2.F90 \
 	par_oce.F90 \
 	KEY_CPP \
@@ -6729,9 +6592,8 @@
 	dom_ice_2.F90 \
 	dom_oce.F90 \
-	dynspg_oce.F90 \
+	domvvl.F90 \
 	fldread.F90 \
 	geo2ocean.F90 \
 	ice_2.F90 \
-	ice_oce.F90 \
 	in_out_manager.F90 \
 	iom_def.F90 \
@@ -6741,4 +6603,5 @@
 	iom_rstdimg.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	lib_mpp.F90 \
 	lib_print.f90 \
@@ -6758,9 +6621,8 @@
 	$(MODEL_LIB)(dom_ice_2.o) \
 	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dynspg_oce.o) \
+	$(MODEL_LIB)(domvvl.o) \
 	$(MODEL_LIB)(fldread.o) \
 	$(MODEL_LIB)(geo2ocean.o) \
 	$(MODEL_LIB)(ice_2.o) \
-	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(iom_def.o) \
@@ -6770,4 +6632,5 @@
 	$(MODEL_LIB)(iom_rstdimg.o) \
 	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -6813,5 +6676,4 @@
 	ice_2.F90 \
 	iceini_2.F90 \
-	ice_oce.F90 \
 	in_out_manager.F90 \
 	iom.F90 \
@@ -6834,5 +6696,4 @@
 	$(MODEL_LIB)(ice_2.o) \
 	$(MODEL_LIB)(iceini_2.o) \
-	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(iom.o) \
@@ -6875,5 +6736,4 @@
 	fldread.F90 \
 	ice_2.F90 \
-	ice_oce.F90 \
 	in_out_manager.F90 \
 	iom_def.F90 \
@@ -6883,4 +6743,5 @@
 	iom_rstdimg.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	lib_mpp.F90 \
 	lib_print.f90 \
@@ -6890,5 +6751,4 @@
 	$(MODEL_LIB)(fldread.o) \
 	$(MODEL_LIB)(ice_2.o) \
-	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(iom_def.o) \
@@ -6898,7 +6758,9 @@
 	$(MODEL_LIB)(iom_rstdimg.o) \
 	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(par_ice_2.o) \
 	$(MODEL_LIB)(par_kind.o) \
 	$(MODEL_LIB)(par_oce.o) \
@@ -6906,7 +6768,9 @@
 	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(restart.o) \
+	$(MODEL_LIB)(sbc_ice.o) \
 	$(MODEL_LIB)(sbc_oce.o) \
 	$(MODEL_LIB)(zdfddm.o) \
 	oce.F90 \
+	par_ice_2.F90 \
 	par_kind.F90 \
 	par_oce.F90 \
@@ -6914,4 +6778,5 @@
 	prtctl.F90 \
 	restart.F90 \
+	sbc_ice.F90 \
 	sbc_oce.F90 \
 	zdfddm.F90 \
@@ -6921,5 +6786,4 @@
 	dom_oce.F90 \
 	eosbn2.F90 \
-	ice_oce.F90 \
 	in_out_manager.F90 \
 	iom.F90 \
@@ -6931,5 +6795,4 @@
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(eosbn2.o) \
-	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(iom.o) \
@@ -6967,5 +6830,4 @@
 	ice_2.F90 \
 	iceini_2.F90 \
-	ice_oce.F90 \
 	in_out_manager.F90 \
 	iom_def.F90 \
@@ -6997,5 +6859,4 @@
 	$(MODEL_LIB)(ice_2.o) \
 	$(MODEL_LIB)(iceini_2.o) \
-	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(iom_def.o) \
@@ -7028,6 +6889,8 @@
 	$(MODEL_LIB)(sbc_oce.o) \
 	$(MODEL_LIB)(sbcrnf.o) \
+	$(MODEL_LIB)(sbcssr.o) \
 	$(MODEL_LIB)(trdmld_oce.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
+	$(MODEL_LIB)(zdfmxl.o) \
 	$(MODEL_LIB)(zpshde.o) \
 	oce.F90 \
@@ -7044,6 +6907,8 @@
 	sbc_oce.F90 \
 	sbcrnf.F90 \
+	sbcssr.F90 \
 	trdmld_oce.F90 \
-	zdf_oce.F90 \
+	zdfddm.F90 \
+	zdfmxl.F90 \
 	zpshde.F90 \
 	closea.F90 \
@@ -7051,5 +6916,4 @@
 	daymod.F90 \
 	dom_oce.F90 \
-	ice_oce.F90 \
 	in_out_manager.F90 \
 	iom.F90 \
@@ -7058,5 +6922,4 @@
 	$(MODEL_LIB)(daymod.o) \
 	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(iom.o) \
@@ -7074,4 +6937,5 @@
 	$(MODEL_LIB)(sbcice_lim_2.o) \
 	$(MODEL_LIB)(sbcice_lim.o) \
+	$(MODEL_LIB)(sbc_ice.o) \
 	$(MODEL_LIB)(sbc_oce.o) \
 	$(MODEL_LIB)(sbcrnf.o) \
@@ -7088,4 +6952,5 @@
 	sbcflx.F90 \
 	sbcfwb.F90 \
+	sbc_ice.F90 \
 	sbcice_if.F90 \
 	sbcice_lim_2.F90 \
@@ -7101,7 +6966,9 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
-	lib_mpp.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
+	lbcnfd.F90 \
+	lib_mpp.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(oce.o) \
@@ -7208,5 +7075,6 @@
 	$(MODEL_LIB)(restart.o) \
 	$(MODEL_LIB)(trdmld_oce.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
+	$(MODEL_LIB)(zdfmxl.o) \
 	$(MODEL_LIB)(zpshde.o) \
 	oce.F90 \
@@ -7217,5 +7085,6 @@
 	restart.F90 \
 	trdmld_oce.F90 \
-	zdf_oce.F90 \
+	zdfddm.F90 \
+	zdfmxl.F90 \
 	zpshde.F90 \
 	daymod.F90 \
@@ -7251,4 +7120,5 @@
 	iom_rstdimg.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	lib_mpp.F90 \
 	lib_print.f90 \
@@ -7265,4 +7135,5 @@
 	$(MODEL_LIB)(iom_rstdimg.o) \
 	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -7306,46 +7177,13 @@
 	KEY_CPP \
 	sbcssr.F90
-$(MODEL_LIB)(sms.o) :	\
-	sms.F90
-$(MODEL_LIB)(solfet.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_mpp.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	oce.F90 \
-	par_oce.F90 \
-	dom_oce.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(sol_oce.o) \
-	oce.F90 \
-	sol_oce.F90 \
-	KEY_CPP \
-	solfet.F90
-$(MODEL_LIB)(solisl.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	iom_def.F90 \
-	iom_ioipsl.F90 \
-	iom_nf90.F90 \
-	iom_rstdimg.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(iom_def.o) \
-	$(MODEL_LIB)(iom_ioipsl.o) \
-	$(MODEL_LIB)(iom_nf90.o) \
-	$(MODEL_LIB)(iom_rstdimg.o) \
-	$(MODEL_LIB)(lbclnk.o) \
+$(MODEL_LIB)(solmat.o) :	\
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbcnfd.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -7354,61 +7192,15 @@
 	$(MODEL_LIB)(par_kind.o) \
 	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(sol_oce.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
 	obc_par.F90 \
 	oce.F90 \
 	par_kind.F90 \
 	par_oce.F90 \
-	sol_oce.F90 \
-	zdf_oce.F90 \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	iom.F90 \
-	lib_mpp.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(iom.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(obc_oce.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(solfet.o) \
-	$(MODEL_LIB)(sol_oce.o) \
-	$(MODEL_LIB)(solpcg.o) \
-	$(MODEL_LIB)(solsor.o) \
-	obc_oce.F90 \
-	oce.F90 \
-	solfet.F90 \
-	sol_oce.F90 \
-	solpcg.F90 \
-	solsor.F90 \
-	$(IOIPSL_LIB) \
-	KEY_CPP \
-	solisl.F90
-$(MODEL_LIB)(solmat.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(obc_par.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	obc_par.F90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_feti.F90 \
-	lib_mpp.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_feti.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(obc_oce.o) \
@@ -7432,8 +7224,10 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
+	lbcnfd.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -7462,8 +7256,10 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
+	lbcnfd.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -7492,14 +7288,12 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
-	iom.F90 \
-	lbclnk.F90 \
-	lib_feti.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(iom.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_feti.o) \
+	lbclnk.F90 \
+	lbcnfd.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -7510,8 +7304,5 @@
 	$(MODEL_LIB)(par_oce.o) \
 	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(solfet.o) \
 	$(MODEL_LIB)(sol_oce.o) \
-	$(MODEL_LIB)(solpcg.o) \
-	$(MODEL_LIB)(solsor.o) \
 	obc_oce.F90 \
 	obc_par.F90 \
@@ -7520,8 +7311,5 @@
 	par_oce.F90 \
 	phycst.F90 \
-	solfet.F90 \
 	sol_oce.F90 \
-	solpcg.F90 \
-	solsor.F90 \
 	dom_oce.F90 \
 	dynspg_oce.F90 \
@@ -7536,5 +7324,4 @@
 	$(MODEL_LIB)(obc_oce.o) \
 	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(solisl.o) \
 	$(MODEL_LIB)(solmat.o) \
 	$(MODEL_LIB)(sol_oce.o) \
@@ -7542,5 +7329,4 @@
 	obc_oce.F90 \
 	oce.F90 \
-	solisl.F90 \
 	solmat.F90 \
 	sol_oce.F90 \
@@ -7548,4 +7334,87 @@
 	KEY_CPP \
 	solver.F90
+$(MODEL_LIB)(sshwzv.o) :	\
+	bdy_oce.F90 \
+	c1d.F90 \
+	dom_oce.F90 \
+	eosbn2.F90 \
+	in_out_manager.F90 \
+	iom_def.F90 \
+	iom.F90 \
+	iom_ioipsl.F90 \
+	iom_nf90.F90 \
+	iom_rstdimg.F90 \
+	lbclnk.F90 \
+	lbcnfd.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(bdy_oce.o) \
+	$(MODEL_LIB)(c1d.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(eosbn2.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom_def.o) \
+	$(MODEL_LIB)(iom_ioipsl.o) \
+	$(MODEL_LIB)(iom_nf90.o) \
+	$(MODEL_LIB)(iom.o) \
+	$(MODEL_LIB)(iom_rstdimg.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(obc_oce.o) \
+	$(MODEL_LIB)(obc_par.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(sbc_oce.o) \
+	$(MODEL_LIB)(trdmld_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
+	$(MODEL_LIB)(zdfmxl.o) \
+	$(MODEL_LIB)(zpshde.o) \
+	obc_oce.F90 \
+	obc_par.F90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	sbc_oce.F90 \
+	trdmld_oce.F90 \
+	zdfddm.F90 \
+	zdfmxl.F90 \
+	zpshde.F90 \
+	cla_div.F90 \
+	divcur.F90 \
+	dom_oce.F90 \
+	domvvl.F90 \
+	in_out_manager.F90 \
+	iom.F90 \
+	lbclnk.F90 \
+	$(MODEL_LIB)(cla_div.o) \
+	$(MODEL_LIB)(divcur.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(domvvl.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(obc_oce.o) \
+	$(MODEL_LIB)(obc_par.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(restart.o) \
+	$(MODEL_LIB)(sbc_oce.o) \
+	obc_oce.F90 \
+	obc_par.F90 \
+	oce.F90 \
+	phycst.F90 \
+	prtctl.F90 \
+	restart.F90 \
+	sbc_oce.F90 \
+	domzgr_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	sshwzv.F90
 $(MODEL_LIB)(step_c1d.o) :	\
 	agrif_opa_interp.F90 \
@@ -7559,8 +7428,8 @@
 	diahth.F90 \
 	dianam.F90 \
-	diaspr.F90 \
 	diawri.F90 \
 	dom_oce.F90 \
 	domvvl.F90 \
+	dynhpg.F90 \
 	dynspg_oce.F90 \
 	dynzdf_exp.F90 \
@@ -7568,5 +7437,4 @@
 	eosbn2.F90 \
 	fldread.F90 \
-	ice_oce.F90 \
 	in_out_manager.F90 \
 	iom_def.F90 \
@@ -7576,8 +7444,10 @@
 	iom_rstdimg.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	ldfdyn_oce.F90 \
 	ldftra_oce.F90 \
 	lib_mpp.F90 \
 	lib_print.f90 \
+	limwri_2.F90 \
 	$(MODEL_LIB)(agrif_opa_interp.o) \
 	$(MODEL_LIB)(agrif_opa_update.o) \
@@ -7590,8 +7460,8 @@
 	$(MODEL_LIB)(diahth.o) \
 	$(MODEL_LIB)(dianam.o) \
-	$(MODEL_LIB)(diaspr.o) \
 	$(MODEL_LIB)(diawri.o) \
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(domvvl.o) \
+	$(MODEL_LIB)(dynhpg.o) \
 	$(MODEL_LIB)(dynspg_oce.o) \
 	$(MODEL_LIB)(dynzdf_exp.o) \
@@ -7599,5 +7469,4 @@
 	$(MODEL_LIB)(eosbn2.o) \
 	$(MODEL_LIB)(fldread.o) \
-	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(iom_def.o) \
@@ -7607,8 +7476,10 @@
 	$(MODEL_LIB)(iom_rstdimg.o) \
 	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(ldfdyn_oce.o) \
 	$(MODEL_LIB)(ldftra_oce.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(limwri_2.o) \
 	$(MODEL_LIB)(obctra.o) \
 	$(MODEL_LIB)(oce.o) \
@@ -7633,5 +7504,4 @@
 	$(MODEL_LIB)(sbcssm.o) \
 	$(MODEL_LIB)(sbcssr.o) \
-	$(MODEL_LIB)(solisl.o) \
 	$(MODEL_LIB)(sol_oce.o) \
 	$(MODEL_LIB)(traqsr.o) \
@@ -7646,6 +7516,6 @@
 	$(MODEL_LIB)(zdfmxl.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
-	$(MODEL_LIB)(zdftke2.o) \
 	$(MODEL_LIB)(zdftke.o) \
+	$(MODEL_LIB)(zdftke_old.o) \
 	$(MODEL_LIB)(zpshde.o) \
 	obctra.F90 \
@@ -7671,5 +7541,4 @@
 	sbcssm.F90 \
 	sbcssr.F90 \
-	solisl.F90 \
 	sol_oce.F90 \
 	traqsr.F90 \
@@ -7684,6 +7553,6 @@
 	zdfmxl.F90 \
 	zdf_oce.F90 \
-	zdftke2.F90 \
 	zdftke.F90 \
+	zdftke_old.F90 \
 	zpshde.F90 \
 	daymod.F90 \
@@ -7697,5 +7566,4 @@
 	dynzdf.F90 \
 	eosbn2.F90 \
-	ice_oce.F90 \
 	in_out_manager.F90 \
 	iom.F90 \
@@ -7711,5 +7579,4 @@
 	$(MODEL_LIB)(dynzdf.o) \
 	$(MODEL_LIB)(eosbn2.o) \
-	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(iom.o) \
@@ -7726,5 +7593,4 @@
 	$(MODEL_LIB)(trasbc.o) \
 	$(MODEL_LIB)(trazdf.o) \
-	$(MODEL_LIB)(trcstp.o) \
 	$(MODEL_LIB)(zdfbfr.o) \
 	$(MODEL_LIB)(zdfddm.o) \
@@ -7746,5 +7612,4 @@
 	trasbc.F90 \
 	trazdf.F90 \
-	trcstp.F90 \
 	zdfbfr.F90 \
 	zdfddm.F90 \
@@ -7769,4 +7634,5 @@
 	bdytra.F90 \
 	c1d.F90 \
+	cla_div.F90 \
 	closea.F90 \
 	cpl_oasis3.F90 \
@@ -7775,6 +7641,5 @@
 	diahth.F90 \
 	dianam.F90 \
-	diaspr.F90 \
-	diawri.F90 \
+	divcur.F90 \
 	dom_oce.F90 \
 	domvvl.F90 \
@@ -7784,4 +7649,5 @@
 	dynadv.F90 \
 	dynadv_ubs.F90 \
+	dynhpg.F90 \
 	dynkeg.F90 \
 	dynldf_bilap.F90 \
@@ -7792,5 +7658,4 @@
 	dynspg_flt.F90 \
 	dynspg_oce.F90 \
-	dynspg_rl.F90 \
 	dynspg_ts.F90 \
 	dynzad.F90 \
@@ -7806,5 +7671,4 @@
 	geo2ocean.F90 \
 	ice_2.F90 \
-	ice_oce.F90 \
 	in_out_manager.F90 \
 	iom_def.F90 \
@@ -7814,4 +7678,5 @@
 	iom_rstdimg.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	ldfdyn_oce.F90 \
 	ldfslp.F90 \
@@ -7819,4 +7684,5 @@
 	lib_mpp.F90 \
 	lib_print.f90 \
+	limwri_2.F90 \
 	$(MODEL_LIB)(agrif_opa_interp.o) \
 	$(MODEL_LIB)(agrif_opa_update.o) \
@@ -7828,4 +7694,5 @@
 	$(MODEL_LIB)(bdytra.o) \
 	$(MODEL_LIB)(c1d.o) \
+	$(MODEL_LIB)(cla_div.o) \
 	$(MODEL_LIB)(closea.o) \
 	$(MODEL_LIB)(cpl_oasis3.o) \
@@ -7834,6 +7701,5 @@
 	$(MODEL_LIB)(diahth.o) \
 	$(MODEL_LIB)(dianam.o) \
-	$(MODEL_LIB)(diaspr.o) \
-	$(MODEL_LIB)(diawri.o) \
+	$(MODEL_LIB)(divcur.o) \
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(domvvl.o) \
@@ -7843,4 +7709,5 @@
 	$(MODEL_LIB)(dynadv.o) \
 	$(MODEL_LIB)(dynadv_ubs.o) \
+	$(MODEL_LIB)(dynhpg.o) \
 	$(MODEL_LIB)(dynkeg.o) \
 	$(MODEL_LIB)(dynldf_bilapg.o) \
@@ -7851,5 +7718,4 @@
 	$(MODEL_LIB)(dynspg_flt.o) \
 	$(MODEL_LIB)(dynspg_oce.o) \
-	$(MODEL_LIB)(dynspg_rl.o) \
 	$(MODEL_LIB)(dynspg_ts.o) \
 	$(MODEL_LIB)(dynzad.o) \
@@ -7865,5 +7731,4 @@
 	$(MODEL_LIB)(geo2ocean.o) \
 	$(MODEL_LIB)(ice_2.o) \
-	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(iom_def.o) \
@@ -7873,4 +7738,5 @@
 	$(MODEL_LIB)(iom_rstdimg.o) \
 	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(ldfdyn_oce.o) \
 	$(MODEL_LIB)(ldfslp.o) \
@@ -7878,5 +7744,5 @@
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(obccli.o) \
+	$(MODEL_LIB)(limwri_2.o) \
 	$(MODEL_LIB)(obcdyn_bt.o) \
 	$(MODEL_LIB)(obcdyn.o) \
@@ -7886,4 +7752,5 @@
 	$(MODEL_LIB)(obcvol.o) \
 	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(par_ice_2.o) \
 	$(MODEL_LIB)(par_kind.o) \
 	$(MODEL_LIB)(par_oce.o) \
@@ -7905,9 +7772,5 @@
 	$(MODEL_LIB)(sbcssm.o) \
 	$(MODEL_LIB)(sbcssr.o) \
-	$(MODEL_LIB)(solfet.o) \
-	$(MODEL_LIB)(solisl.o) \
 	$(MODEL_LIB)(sol_oce.o) \
-	$(MODEL_LIB)(solpcg.o) \
-	$(MODEL_LIB)(solsor.o) \
 	$(MODEL_LIB)(traadv_cen2.o) \
 	$(MODEL_LIB)(traadv_eiv.o) \
@@ -7937,8 +7800,7 @@
 	$(MODEL_LIB)(zdfmxl.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
-	$(MODEL_LIB)(zdftke2.o) \
 	$(MODEL_LIB)(zdftke.o) \
+	$(MODEL_LIB)(zdftke_old.o) \
 	$(MODEL_LIB)(zpshde.o) \
-	obccli.F90 \
 	obcdyn_bt.F90 \
 	obcdyn.F90 \
@@ -7948,4 +7810,5 @@
 	obcvol.F90 \
 	oce.F90 \
+	par_ice_2.F90 \
 	par_kind.F90 \
 	par_oce.F90 \
@@ -7967,9 +7830,5 @@
 	sbcssm.F90 \
 	sbcssr.F90 \
-	solfet.F90 \
-	solisl.F90 \
 	sol_oce.F90 \
-	solpcg.F90 \
-	solsor.F90 \
 	traadv_cen2.F90 \
 	traadv_eiv.F90 \
@@ -7999,11 +7858,10 @@
 	zdfmxl.F90 \
 	zdf_oce.F90 \
-	zdftke2.F90 \
 	zdftke.F90 \
+	zdftke_old.F90 \
 	zpshde.F90 \
 	agrif_opa_sponge.F90 \
 	bdydta.F90 \
 	bdy_par.F90 \
-	cla_div.F90 \
 	cla.F90 \
 	cpl_oasis3.F90 \
@@ -8014,9 +7872,6 @@
 	diahth.F90 \
 	diaptr.F90 \
-	diaspr.F90 \
 	diawri.F90 \
-	divcur.F90 \
-	dom_oce.F90 \
-	domvvl.F90 \
+	dom_oce.F90 \
 	dtasal.F90 \
 	dtatem.F90 \
@@ -8032,5 +7887,4 @@
 	floats.F90 \
 	flo_oce.F90 \
-	ice_oce.F90 \
 	in_out_manager.F90 \
 	iom.F90 \
@@ -8043,5 +7897,4 @@
 	$(MODEL_LIB)(bdydta.o) \
 	$(MODEL_LIB)(bdy_par.o) \
-	$(MODEL_LIB)(cla_div.o) \
 	$(MODEL_LIB)(cla.o) \
 	$(MODEL_LIB)(cpl_oasis3.o) \
@@ -8052,9 +7905,6 @@
 	$(MODEL_LIB)(diahth.o) \
 	$(MODEL_LIB)(diaptr.o) \
-	$(MODEL_LIB)(diaspr.o) \
 	$(MODEL_LIB)(diawri.o) \
-	$(MODEL_LIB)(divcur.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(domvvl.o) \
+	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(dtasal.o) \
 	$(MODEL_LIB)(dtatem.o) \
@@ -8070,5 +7920,4 @@
 	$(MODEL_LIB)(floats.o) \
 	$(MODEL_LIB)(flo_oce.o) \
-	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(iom.o) \
@@ -8082,5 +7931,4 @@
 	$(MODEL_LIB)(obcrad.o) \
 	$(MODEL_LIB)(obcrst.o) \
-	$(MODEL_LIB)(obcspg.o) \
 	$(MODEL_LIB)(oce.o) \
 	$(MODEL_LIB)(prtctl.o) \
@@ -8089,4 +7937,5 @@
 	$(MODEL_LIB)(sbcmod.o) \
 	$(MODEL_LIB)(sbcrnf.o) \
+	$(MODEL_LIB)(sshwzv.o) \
 	$(MODEL_LIB)(stpctl.o) \
 	$(MODEL_LIB)(traadv.o) \
@@ -8100,5 +7949,4 @@
 	$(MODEL_LIB)(trasbc.o) \
 	$(MODEL_LIB)(trazdf.o) \
-	$(MODEL_LIB)(trcstp.o) \
 	$(MODEL_LIB)(trdicp.o) \
 	$(MODEL_LIB)(trdmld.o) \
@@ -8106,5 +7954,4 @@
 	$(MODEL_LIB)(trdmod_oce.o) \
 	$(MODEL_LIB)(trdvor.o) \
-	$(MODEL_LIB)(wzvmod.o) \
 	$(MODEL_LIB)(zdfbfr.o) \
 	$(MODEL_LIB)(zdfddm.o) \
@@ -8114,6 +7961,7 @@
 	$(MODEL_LIB)(zdf_oce.o) \
 	$(MODEL_LIB)(zdfric.o) \
-	$(MODEL_LIB)(zdftke2.o) \
 	$(MODEL_LIB)(zdftke.o) \
+	$(MODEL_LIB)(zdftke_old.o) \
+	$(MODEL_LIB)(zdftmx.o) \
 	$(MODEL_LIB)(zpshde.o) \
 	obcdta.F90 \
@@ -8121,5 +7969,4 @@
 	obcrad.F90 \
 	obcrst.F90 \
-	obcspg.F90 \
 	oce.F90 \
 	prtctl.F90 \
@@ -8128,4 +7975,5 @@
 	sbcmod.F90 \
 	sbcrnf.F90 \
+	sshwzv.F90 \
 	stpctl.F90 \
 	traadv.F90 \
@@ -8139,5 +7987,4 @@
 	trasbc.F90 \
 	trazdf.F90 \
-	trcstp.F90 \
 	trdicp.F90 \
 	trdmld.F90 \
@@ -8145,5 +7992,4 @@
 	trdmod_oce.F90 \
 	trdvor.F90 \
-	wzvmod.F90 \
 	zdfbfr.F90 \
 	zdfddm.F90 \
@@ -8153,6 +7999,7 @@
 	zdf_oce.F90 \
 	zdfric.F90 \
-	zdftke2.F90 \
 	zdftke.F90 \
+	zdftke_old.F90 \
+	zdftmx.F90 \
 	zpshde.F90 \
 	domzgr_substitute.h90 \
@@ -8162,79 +8009,33 @@
 	step.F90
 $(MODEL_LIB)(stpctl.o) :	\
-	daymod.F90 \
-	diadimg.F90 \
-	diahth.F90 \
-	dianam.F90 \
-	diaspr.F90 \
-	dom_oce.F90 \
-	ice_oce.F90 \
-	in_out_manager.F90 \
-	iom.F90 \
-	lbclnk.F90 \
-	ldfdyn_oce.F90 \
-	ldftra_oce.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(diadimg.o) \
-	$(MODEL_LIB)(diahth.o) \
-	$(MODEL_LIB)(dianam.o) \
-	$(MODEL_LIB)(diaspr.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(ice_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(iom.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(ldfdyn_oce.o) \
-	$(MODEL_LIB)(ldftra_oce.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(obc_oce.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(sbc_ice.o) \
-	$(MODEL_LIB)(sbc_oce.o) \
-	$(MODEL_LIB)(sbcssr.o) \
-	$(MODEL_LIB)(solfet.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbcnfd.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	dom_oce.F90 \
+	dynspg_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dynspg_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(oce.o) \
 	$(MODEL_LIB)(sol_oce.o) \
-	$(MODEL_LIB)(solpcg.o) \
-	$(MODEL_LIB)(solsor.o) \
-	$(MODEL_LIB)(zdfddm.o) \
-	$(MODEL_LIB)(zdfmxl.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	obc_oce.F90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.F90 \
-	sbc_ice.F90 \
-	sbc_oce.F90 \
-	sbcssr.F90 \
-	solfet.F90 \
-	sol_oce.F90 \
-	solpcg.F90 \
-	solsor.F90 \
-	zdfddm.F90 \
-	zdfmxl.F90 \
-	zdf_oce.F90 \
-	diawri.F90 \
-	dom_oce.F90 \
-	dynspg_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	$(MODEL_LIB)(diawri.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dynspg_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(solisl.o) \
-	$(MODEL_LIB)(sol_oce.o) \
-	oce.F90 \
-	solisl.F90 \
+	oce.F90 \
 	sol_oce.F90 \
 	stpctl.F90
@@ -8247,4 +8048,5 @@
 	thd_ice_2.F90
 $(MODEL_LIB)(traadv_cen2.o) :	\
+	c1d.F90 \
 	closea.F90 \
 	cpl_oasis3.F90 \
@@ -8254,11 +8056,16 @@
 	eosbn2.F90 \
 	fldread.F90 \
-	ice_oce.F90 \
-	in_out_manager.F90 \
-	iom.F90 \
-	lbclnk.F90 \
+	in_out_manager.F90 \
+	iom_def.F90 \
+	iom.F90 \
+	iom_ioipsl.F90 \
+	iom_nf90.F90 \
+	iom_rstdimg.F90 \
+	lbclnk.F90 \
+	lbcnfd.F90 \
 	ldftra_oce.F90 \
 	lib_mpp.F90 \
 	lib_print.f90 \
+	$(MODEL_LIB)(c1d.o) \
 	$(MODEL_LIB)(closea.o) \
 	$(MODEL_LIB)(cpl_oasis3.o) \
@@ -8268,8 +8075,12 @@
 	$(MODEL_LIB)(eosbn2.o) \
 	$(MODEL_LIB)(fldread.o) \
-	$(MODEL_LIB)(ice_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(iom.o) \
-	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom_def.o) \
+	$(MODEL_LIB)(iom_ioipsl.o) \
+	$(MODEL_LIB)(iom_nf90.o) \
+	$(MODEL_LIB)(iom.o) \
+	$(MODEL_LIB)(iom_rstdimg.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(ldftra_oce.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
@@ -8290,4 +8101,5 @@
 	$(MODEL_LIB)(sbcice_lim_2.o) \
 	$(MODEL_LIB)(sbcice_lim.o) \
+	$(MODEL_LIB)(sbc_ice.o) \
 	$(MODEL_LIB)(sbc_oce.o) \
 	$(MODEL_LIB)(sbcrnf.o) \
@@ -8303,5 +8115,7 @@
 	$(MODEL_LIB)(trdvor_oce.o) \
 	$(MODEL_LIB)(zdfddm.o) \
+	$(MODEL_LIB)(zdfmxl.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zpshde.o) \
 	oce.F90 \
 	par_kind.F90 \
@@ -8316,4 +8130,5 @@
 	sbcflx.F90 \
 	sbcfwb.F90 \
+	sbc_ice.F90 \
 	sbcice_if.F90 \
 	sbcice_lim_2.F90 \
@@ -8332,5 +8147,7 @@
 	trdvor_oce.F90 \
 	zdfddm.F90 \
+	zdfmxl.F90 \
 	zdf_oce.F90 \
+	zpshde.F90 \
 	closea.F90 \
 	diaptr.F90 \
@@ -8339,4 +8156,5 @@
 	eosbn2.F90 \
 	in_out_manager.F90 \
+	iom.F90 \
 	lbclnk.F90 \
 	lib_mpp.F90 \
@@ -8347,8 +8165,10 @@
 	$(MODEL_LIB)(eosbn2.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(iom.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(restart.o) \
 	$(MODEL_LIB)(sbcmod.o) \
 	$(MODEL_LIB)(sbc_oce.o) \
@@ -8360,4 +8180,5 @@
 	oce.F90 \
 	prtctl.F90 \
+	restart.F90 \
 	sbcmod.F90 \
 	sbc_oce.F90 \
@@ -8374,4 +8195,8 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
+	iom_def.F90 \
+	iom_ioipsl.F90 \
+	iom_nf90.F90 \
+	iom_rstdimg.F90 \
 	lbclnk.F90 \
 	ldfdyn_oce.F90 \
@@ -8380,4 +8205,8 @@
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom_def.o) \
+	$(MODEL_LIB)(iom_ioipsl.o) \
+	$(MODEL_LIB)(iom_nf90.o) \
+	$(MODEL_LIB)(iom_rstdimg.o) \
 	$(MODEL_LIB)(lbclnk.o) \
 	$(MODEL_LIB)(ldfdyn_oce.o) \
@@ -8398,8 +8227,10 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
+	iom.F90 \
 	ldfslp.F90 \
 	ldftra_oce.F90 \
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom.o) \
 	$(MODEL_LIB)(ldfslp.o) \
 	$(MODEL_LIB)(ldftra_oce.o) \
@@ -8419,4 +8250,9 @@
 	eosbn2.F90 \
 	in_out_manager.F90 \
+	iom_def.F90 \
+	iom.F90 \
+	iom_ioipsl.F90 \
+	iom_nf90.F90 \
+	iom_rstdimg.F90 \
 	lbclnk.F90 \
 	ldfslp.F90 \
@@ -8430,4 +8266,9 @@
 	$(MODEL_LIB)(eosbn2.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom_def.o) \
+	$(MODEL_LIB)(iom_ioipsl.o) \
+	$(MODEL_LIB)(iom_nf90.o) \
+	$(MODEL_LIB)(iom.o) \
+	$(MODEL_LIB)(iom_rstdimg.o) \
 	$(MODEL_LIB)(lbclnk.o) \
 	$(MODEL_LIB)(ldfslp.o) \
@@ -8439,4 +8280,5 @@
 	$(MODEL_LIB)(par_oce.o) \
 	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(restart.o) \
 	$(MODEL_LIB)(sbcmod.o) \
 	$(MODEL_LIB)(sbc_oce.o) \
@@ -8450,4 +8292,5 @@
 	par_oce.F90 \
 	prtctl.F90 \
+	restart.F90 \
 	sbcmod.F90 \
 	sbc_oce.F90 \
@@ -8459,7 +8302,9 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
+	iom.F90 \
 	ldftra_oce.F90 \
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom.o) \
 	$(MODEL_LIB)(ldftra_oce.o) \
 	$(MODEL_LIB)(oce.o) \
@@ -8495,4 +8340,5 @@
 	iom.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	ldftra_oce.F90 \
 	lib_mpp.F90 \
@@ -8505,4 +8351,5 @@
 	$(MODEL_LIB)(iom.o) \
 	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(ldftra_oce.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
@@ -8572,4 +8419,5 @@
 	iom.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	ldftra_oce.F90 \
 	lib_mpp.F90 \
@@ -8582,4 +8430,5 @@
 	$(MODEL_LIB)(iom.o) \
 	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(ldftra_oce.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
@@ -8649,4 +8498,5 @@
 	iom.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	ldftra_oce.F90 \
 	lib_mpp.F90 \
@@ -8659,4 +8509,5 @@
 	$(MODEL_LIB)(iom.o) \
 	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(ldftra_oce.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
@@ -8726,4 +8577,5 @@
 	iom.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	ldftra_oce.F90 \
 	lib_mpp.F90 \
@@ -8736,4 +8588,5 @@
 	$(MODEL_LIB)(iom.o) \
 	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(ldftra_oce.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
@@ -8801,4 +8654,5 @@
 	in_out_manager.F90 \
 	iom.F90 \
+	lbcnfd.F90 \
 	ldftra_oce.F90 \
 	lib_mpp.F90 \
@@ -8809,4 +8663,5 @@
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(iom.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(ldftra_oce.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
@@ -8931,4 +8786,5 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
+	lbcnfd.F90 \
 	ldftra_oce.F90 \
 	lib_mpp.F90 \
@@ -8936,4 +8792,5 @@
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(ldftra_oce.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
@@ -8986,5 +8843,7 @@
 	trdmod_oce.F90 \
 	eosbn2.F90 \
+	iom.F90 \
 	$(MODEL_LIB)(eosbn2.o) \
+	$(MODEL_LIB)(iom.o) \
 	$(MODEL_LIB)(oce.o) \
 	oce.F90 \
@@ -9004,4 +8863,5 @@
 	iom_rstdimg.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	ldftra_oce.F90 \
 	lib_mpp.F90 \
@@ -9016,4 +8876,5 @@
 	$(MODEL_LIB)(iom_rstdimg.o) \
 	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(ldftra_oce.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
@@ -9085,4 +8946,5 @@
 	iom.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	ldfdyn_oce.F90 \
 	ldftra_oce.F90 \
@@ -9095,4 +8957,5 @@
 	$(MODEL_LIB)(iom.o) \
 	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(ldfdyn_oce.o) \
 	$(MODEL_LIB)(ldftra_oce.o) \
@@ -9162,4 +9025,5 @@
 	iom.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	ldfdyn_oce.F90 \
 	ldftra_oce.F90 \
@@ -9172,4 +9036,5 @@
 	$(MODEL_LIB)(iom.o) \
 	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(ldfdyn_oce.o) \
 	$(MODEL_LIB)(ldftra_oce.o) \
@@ -9238,4 +9103,5 @@
 	in_out_manager.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	ldfdyn_oce.F90 \
 	ldfslp.F90 \
@@ -9249,4 +9115,5 @@
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(ldfdyn_oce.o) \
 	$(MODEL_LIB)(ldfslp.o) \
@@ -9273,6 +9140,6 @@
 	$(MODEL_LIB)(zdfmxl.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
-	$(MODEL_LIB)(zdftke2.o) \
 	$(MODEL_LIB)(zdftke.o) \
+	$(MODEL_LIB)(zdftke_old.o) \
 	oce.F90 \
 	par_kind.F90 \
@@ -9294,6 +9161,6 @@
 	zdfmxl.F90 \
 	zdf_oce.F90 \
-	zdftke2.F90 \
 	zdftke.F90 \
+	zdftke_old.F90 \
 	dom_oce.F90 \
 	in_out_manager.F90 \
@@ -9479,4 +9346,5 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
+	lbcnfd.F90 \
 	ldftra_oce.F90 \
 	lib_mpp.F90 \
@@ -9484,4 +9352,5 @@
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(ldftra_oce.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
@@ -9528,7 +9397,9 @@
 	$(MODEL_LIB)(trdmod.o) \
 	$(MODEL_LIB)(trdmod_oce.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
 	oce.F90 \
 	trdmod.F90 \
 	trdmod_oce.F90 \
+	zdf_oce.F90 \
 	domzgr_substitute.h90 \
 	KEY_CPP \
@@ -9539,4 +9410,5 @@
 	in_out_manager.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	ldftra_oce.F90 \
 	lib_mpp.F90 \
@@ -9546,8 +9418,103 @@
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(ldftra_oce.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
 	$(MODEL_LIB)(obc_oce.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(sbc_oce.o) \
+	$(MODEL_LIB)(trdicp.o) \
+	$(MODEL_LIB)(trdicp_oce.o) \
+	$(MODEL_LIB)(trdmld.o) \
+	$(MODEL_LIB)(trdmld_oce.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	$(MODEL_LIB)(trdvor.o) \
+	$(MODEL_LIB)(trdvor_oce.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	obc_oce.F90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.F90 \
+	sbc_oce.F90 \
+	trdicp.F90 \
+	trdicp_oce.F90 \
+	trdmld.F90 \
+	trdmld_oce.F90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
+	trdvor.F90 \
+	trdvor_oce.F90 \
+	zdf_oce.F90 \
+	agrif_opa_interp.F90 \
+	agrif_opa_update.F90 \
+	bdytra.F90 \
+	dom_oce.F90 \
+	domvvl.F90 \
+	dynhpg.F90 \
+	dynspg_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	$(MODEL_LIB)(agrif_opa_interp.o) \
+	$(MODEL_LIB)(agrif_opa_update.o) \
+	$(MODEL_LIB)(bdytra.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(domvvl.o) \
+	$(MODEL_LIB)(dynhpg.o) \
+	$(MODEL_LIB)(dynspg_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(obctra.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	obctra.F90 \
+	oce.F90 \
+	phycst.F90 \
+	prtctl.F90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
+	zdf_oce.F90 \
+	domzgr_substitute.h90 \
+	$(AGRIF_LIB) \
+	KEY_CPP \
+	tranxt.F90
+$(MODEL_LIB)(traqsr.o) :	\
+	daymod.F90 \
+	dom_oce.F90 \
+	geo2ocean.F90 \
+	in_out_manager.F90 \
+	iom_def.F90 \
+	iom.F90 \
+	iom_ioipsl.F90 \
+	iom_nf90.F90 \
+	iom_rstdimg.F90 \
+	lbclnk.F90 \
+	ldftra_oce.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(geo2ocean.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom_def.o) \
+	$(MODEL_LIB)(iom_ioipsl.o) \
+	$(MODEL_LIB)(iom_nf90.o) \
+	$(MODEL_LIB)(iom.o) \
+	$(MODEL_LIB)(iom_rstdimg.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(ldftra_oce.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(lib_print.o) \
 	$(MODEL_LIB)(oce.o) \
 	$(MODEL_LIB)(par_kind.o) \
@@ -9563,5 +9530,4 @@
 	$(MODEL_LIB)(trdvor_oce.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
-	obc_oce.F90 \
 	oce.F90 \
 	par_kind.F90 \
@@ -9577,79 +9543,12 @@
 	trdvor_oce.F90 \
 	zdf_oce.F90 \
-	agrif_opa_interp.F90 \
-	agrif_opa_update.F90 \
-	bdytra.F90 \
-	dom_oce.F90 \
-	dynspg_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	$(MODEL_LIB)(agrif_opa_interp.o) \
-	$(MODEL_LIB)(agrif_opa_update.o) \
-	$(MODEL_LIB)(bdytra.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dynspg_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(obctra.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(prtctl.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	obctra.F90 \
-	oce.F90 \
-	phycst.F90 \
-	prtctl.F90 \
-	trdmod.F90 \
-	trdmod_oce.F90 \
-	zdf_oce.F90 \
-	domzgr_substitute.h90 \
-	$(AGRIF_LIB) \
-	KEY_CPP \
-	tranxt.F90
-$(MODEL_LIB)(traqsr.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	ldftra_oce.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(ldftra_oce.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(sbc_oce.o) \
-	$(MODEL_LIB)(trdicp.o) \
-	$(MODEL_LIB)(trdicp_oce.o) \
-	$(MODEL_LIB)(trdmld.o) \
-	$(MODEL_LIB)(trdmld_oce.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	$(MODEL_LIB)(trdvor.o) \
-	$(MODEL_LIB)(trdvor_oce.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.F90 \
-	sbc_oce.F90 \
-	trdicp.F90 \
-	trdicp_oce.F90 \
-	trdmld.F90 \
-	trdmld_oce.F90 \
-	trdmod_oce.F90 \
-	trdvor.F90 \
-	trdvor_oce.F90 \
-	zdf_oce.F90 \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
+	dom_oce.F90 \
+	fldread.F90 \
+	in_out_manager.F90 \
+	iom.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(fldread.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom.o) \
 	$(MODEL_LIB)(oce.o) \
 	$(MODEL_LIB)(phycst.o) \
@@ -9672,5 +9571,7 @@
 $(MODEL_LIB)(trasbc.o) :	\
 	dom_oce.F90 \
-	in_out_manager.F90 \
+	fldread.F90 \
+	in_out_manager.F90 \
+	iom.F90 \
 	lbclnk.F90 \
 	ldftra_oce.F90 \
@@ -9678,5 +9579,7 @@
 	lib_print.f90 \
 	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(fldread.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom.o) \
 	$(MODEL_LIB)(lbclnk.o) \
 	$(MODEL_LIB)(ldftra_oce.o) \
@@ -9738,7 +9641,5 @@
 	trasbc.F90
 $(MODEL_LIB)(trazdf_exp.o) :	\
-	bdy_oce.F90 \
-	dom_oce.F90 \
-	dynspg_oce.F90 \
+	dom_oce.F90 \
 	in_out_manager.F90 \
 	lbclnk.F90 \
@@ -9746,7 +9647,5 @@
 	lib_mpp.F90 \
 	lib_print.f90 \
-	$(MODEL_LIB)(bdy_oce.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dynspg_oce.o) \
+	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(lbclnk.o) \
@@ -9806,8 +9705,6 @@
 	trazdf_exp.F90
 $(MODEL_LIB)(trazdf.o) :	\
-	bdy_oce.F90 \
 	dom_oce.F90 \
 	domvvl.F90 \
-	dynspg_oce.F90 \
 	dynzdf_exp.F90 \
 	eosbn2.F90 \
@@ -9815,4 +9712,5 @@
 	iom.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	ldfslp.F90 \
 	ldftra.F90 \
@@ -9820,8 +9718,6 @@
 	lib_mpp.F90 \
 	lib_print.f90 \
-	$(MODEL_LIB)(bdy_oce.o) \
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(domvvl.o) \
-	$(MODEL_LIB)(dynspg_oce.o) \
 	$(MODEL_LIB)(dynzdf_exp.o) \
 	$(MODEL_LIB)(eosbn2.o) \
@@ -9829,4 +9725,5 @@
 	$(MODEL_LIB)(iom.o) \
 	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(ldfslp.o) \
 	$(MODEL_LIB)(ldftra.o) \
@@ -9894,6 +9791,6 @@
 	$(MODEL_LIB)(zdfkpp.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
-	$(MODEL_LIB)(zdftke2.o) \
 	$(MODEL_LIB)(zdftke.o) \
+	$(MODEL_LIB)(zdftke_old.o) \
 	oce.F90 \
 	phycst.F90 \
@@ -9906,6 +9803,6 @@
 	zdfkpp.F90 \
 	zdf_oce.F90 \
-	zdftke2.F90 \
 	zdftke.F90 \
+	zdftke_old.F90 \
 	domzgr_substitute.h90 \
 	vectopt_loop_substitute.h90 \
@@ -9914,9 +9811,8 @@
 	trazdf.F90
 $(MODEL_LIB)(trazdf_imp.o) :	\
-	bdy_oce.F90 \
-	dom_oce.F90 \
-	dynspg_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lbcnfd.F90 \
 	ldfdyn_oce.F90 \
 	ldfslp.F90 \
@@ -9924,9 +9820,8 @@
 	lib_mpp.F90 \
 	lib_print.f90 \
-	$(MODEL_LIB)(bdy_oce.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dynspg_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(ldfdyn_oce.o) \
 	$(MODEL_LIB)(ldfslp.o) \
@@ -9996,21 +9891,28 @@
 	KEY_CPP \
 	trazdf_imp.F90
-$(MODEL_LIB)(trcini.o) :	\
-	trcini.F90
 $(MODEL_LIB)(trc_oce.o) :	\
-	$(MODEL_LIB)(par_kind.o) \
-	par_kind.F90 \
-	$(MODEL_LIB)(par_oce.o) \
-	par_oce.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	par_kind.F90 \
+	par_oce.F90 \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	par_oce.F90 \
+	domzgr_substitute.h90 \
 	KEY_CPP \
 	trc_oce.F90
-$(MODEL_LIB)(trcstp.o) :	\
-	trcstp.F90
 $(MODEL_LIB)(trdicp.o) :	\
 	dom_oce.F90 \
 	in_out_manager.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
+	lbcnfd.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_print.o) \
 	$(MODEL_LIB)(par_kind.o) \
@@ -10069,4 +9971,5 @@
 	iom.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	ldfdyn_oce.F90 \
 	ldftra_oce.F90 \
@@ -10080,4 +9983,5 @@
 	$(MODEL_LIB)(iom.o) \
 	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(ldfdyn_oce.o) \
 	$(MODEL_LIB)(ldftra_oce.o) \
@@ -10094,4 +9998,5 @@
 	$(MODEL_LIB)(trdmod_oce.o) \
 	$(MODEL_LIB)(trdvor_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
 	$(MODEL_LIB)(zdfmxl.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
@@ -10107,4 +10012,5 @@
 	trdmod_oce.F90 \
 	trdvor_oce.F90 \
+	zdfddm.F90 \
 	zdfmxl.F90 \
 	zdf_oce.F90 \
@@ -10189,5 +10095,6 @@
 	$(MODEL_LIB)(trdmld_oce.o) \
 	$(MODEL_LIB)(trdvor_oce.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
+	$(MODEL_LIB)(zdfmxl.o) \
 	$(MODEL_LIB)(zpshde.o) \
 	oce.F90 \
@@ -10200,5 +10107,6 @@
 	trdmld_oce.F90 \
 	trdvor_oce.F90 \
-	zdf_oce.F90 \
+	zdfddm.F90 \
+	zdfmxl.F90 \
 	zpshde.F90 \
 	daymod.F90 \
@@ -10311,4 +10219,5 @@
 	in_out_manager.F90 \
 	iom.F90 \
+	lbcnfd.F90 \
 	lib_mpp.F90 \
 	lib_print.f90 \
@@ -10317,4 +10226,5 @@
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(iom.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -10374,65 +10284,13 @@
 	KEY_CPP \
 	trdvor_oce.F90
-$(MODEL_LIB)(wzvmod.o) :	\
-	bdy_oce.F90 \
-	bdy_par.F90 \
-	dom_oce.F90 \
-	dynspg_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(bdy_oce.o) \
-	$(MODEL_LIB)(bdy_par.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dynspg_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(obc_par.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(sbc_oce.o) \
-	obc_par.F90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.F90 \
-	sbc_oce.F90 \
-	bdy_oce.F90 \
-	dom_oce.F90 \
-	domvvl.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	$(MODEL_LIB)(bdy_oce.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(domvvl.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(obc_oce.o) \
-	$(MODEL_LIB)(obc_par.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(prtctl.o) \
-	$(MODEL_LIB)(sbc_oce.o) \
-	obc_oce.F90 \
-	obc_par.F90 \
-	oce.F90 \
-	phycst.F90 \
-	prtctl.F90 \
-	sbc_oce.F90 \
-	domzgr_substitute.h90 \
-	KEY_CPP \
-	wzvmod.F90
 $(MODEL_LIB)(zdfbfr.o) :	\
 	dom_oce.F90 \
 	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
+	lbcnfd.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -10461,8 +10319,10 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
+	lbcnfd.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -10492,5 +10352,10 @@
 	eosbn2.F90 \
 	in_out_manager.F90 \
-	lbclnk.F90 \
+	iom_def.F90 \
+	iom_ioipsl.F90 \
+	iom_nf90.F90 \
+	iom_rstdimg.F90 \
+	lbclnk.F90 \
+	lbcnfd.F90 \
 	lib_mpp.F90 \
 	lib_print.f90 \
@@ -10498,5 +10363,10 @@
 	$(MODEL_LIB)(eosbn2.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(iom_def.o) \
+	$(MODEL_LIB)(iom_ioipsl.o) \
+	$(MODEL_LIB)(iom_nf90.o) \
+	$(MODEL_LIB)(iom_rstdimg.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -10521,7 +10391,9 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
-	lbclnk.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
+	iom.F90 \
+	lbclnk.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom.o) \
 	$(MODEL_LIB)(lbclnk.o) \
 	$(MODEL_LIB)(oce.o) \
@@ -10535,19 +10407,33 @@
 	zdfevd.F90
 $(MODEL_LIB)(zdfini.o) :	\
-	dom_oce.F90 \
+	c1d.F90 \
+	dom_oce.F90 \
+	domvvl.F90 \
 	dynzdf_exp.F90 \
 	eosbn2.F90 \
 	in_out_manager.F90 \
-	iom.F90 \
-	lbclnk.F90 \
+	iom_def.F90 \
+	iom.F90 \
+	iom_ioipsl.F90 \
+	iom_nf90.F90 \
+	iom_rstdimg.F90 \
+	lbclnk.F90 \
+	lbcnfd.F90 \
 	ldfdyn_oce.F90 \
 	ldftra_oce.F90 \
 	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(c1d.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(domvvl.o) \
 	$(MODEL_LIB)(dynzdf_exp.o) \
 	$(MODEL_LIB)(eosbn2.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(iom.o) \
-	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(iom_def.o) \
+	$(MODEL_LIB)(iom_ioipsl.o) \
+	$(MODEL_LIB)(iom_nf90.o) \
+	$(MODEL_LIB)(iom.o) \
+	$(MODEL_LIB)(iom_rstdimg.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(ldfdyn_oce.o) \
 	$(MODEL_LIB)(ldftra_oce.o) \
@@ -10561,4 +10447,5 @@
 	$(MODEL_LIB)(sbc_oce.o) \
 	$(MODEL_LIB)(trazdf_exp.o) \
+	$(MODEL_LIB)(trdmld_oce.o) \
 	$(MODEL_LIB)(trdmod.o) \
 	$(MODEL_LIB)(trdmod_oce.o) \
@@ -10567,4 +10454,5 @@
 	$(MODEL_LIB)(zdfmxl.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zpshde.o) \
 	oce.F90 \
 	par_kind.F90 \
@@ -10575,4 +10463,5 @@
 	sbc_oce.F90 \
 	trazdf_exp.F90 \
+	trdmld_oce.F90 \
 	trdmod.F90 \
 	trdmod_oce.F90 \
@@ -10581,5 +10470,7 @@
 	zdfmxl.F90 \
 	zdf_oce.F90 \
-	in_out_manager.F90 \
+	zpshde.F90 \
+	in_out_manager.F90 \
+	iom.F90 \
 	ldfdyn_oce.F90 \
 	ldfslp.F90 \
@@ -10587,4 +10478,5 @@
 	lib_mpp.F90 \
 	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom.o) \
 	$(MODEL_LIB)(ldfdyn_oce.o) \
 	$(MODEL_LIB)(ldfslp.o) \
@@ -10592,4 +10484,5 @@
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(restart.o) \
 	$(MODEL_LIB)(tranpc.o) \
 	$(MODEL_LIB)(zdfddm.o) \
@@ -10598,7 +10491,8 @@
 	$(MODEL_LIB)(zdf_oce.o) \
 	$(MODEL_LIB)(zdfric.o) \
-	$(MODEL_LIB)(zdftke2.o) \
 	$(MODEL_LIB)(zdftke.o) \
-	par_oce.F90 \
+	$(MODEL_LIB)(zdftke_old.o) \
+	par_oce.F90 \
+	restart.F90 \
 	tranpc.F90 \
 	zdfddm.F90 \
@@ -10607,6 +10501,6 @@
 	zdf_oce.F90 \
 	zdfric.F90 \
-	zdftke2.F90 \
 	zdftke.F90 \
+	zdftke_old.F90 \
 	zdfini.F90
 $(MODEL_LIB)(zdfkpp.o) :	\
@@ -10614,4 +10508,5 @@
 	in_out_manager.F90 \
 	lbclnk.F90 \
+	lbcnfd.F90 \
 	ldftra_oce.F90 \
 	lib_mpp.F90 \
@@ -10620,4 +10515,5 @@
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(ldftra_oce.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
@@ -10677,70 +10573,5 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	par_kind.F90 \
-	par_oce.F90 \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(prtctl.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	oce.F90 \
-	prtctl.F90 \
-	zdf_oce.F90 \
-	domzgr_substitute.h90 \
-	KEY_CPP \
-	zdfmxl.F90
-$(MODEL_LIB)(zdf_oce.o) :	\
-	$(MODEL_LIB)(par_kind.o) \
-	par_kind.F90 \
-	$(MODEL_LIB)(par_oce.o) \
-	par_oce.F90 \
-	KEY_CPP \
-	zdf_oce.F90
-$(MODEL_LIB)(zdfric.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	oce.F90 \
-	zdf_oce.F90 \
-	domzgr_substitute.h90 \
-	KEY_CPP \
-	zdfric.F90
-$(MODEL_LIB)(zdftke2.o) :	\
-	c1d.F90 \
-	dom_oce.F90 \
-	domvvl.F90 \
-	eosbn2.F90 \
-	in_out_manager.F90 \
 	iom_def.F90 \
-	iom.F90 \
 	iom_ioipsl.F90 \
 	iom_nf90.F90 \
@@ -10749,15 +10580,173 @@
 	lib_mpp.F90 \
 	lib_print.f90 \
-	$(MODEL_LIB)(c1d.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(domvvl.o) \
-	$(MODEL_LIB)(eosbn2.o) \
+	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(iom_def.o) \
 	$(MODEL_LIB)(iom_ioipsl.o) \
 	$(MODEL_LIB)(iom_nf90.o) \
-	$(MODEL_LIB)(iom.o) \
 	$(MODEL_LIB)(iom_rstdimg.o) \
 	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	par_kind.F90 \
+	par_oce.F90 \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	iom.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	oce.F90 \
+	prtctl.F90 \
+	zdf_oce.F90 \
+	domzgr_substitute.h90 \
+	KEY_CPP \
+	zdfmxl.F90
+$(MODEL_LIB)(zdf_oce.o) :	\
+	$(MODEL_LIB)(par_kind.o) \
+	par_kind.F90 \
+	$(MODEL_LIB)(par_oce.o) \
+	par_oce.F90 \
+	KEY_CPP \
+	zdf_oce.F90
+$(MODEL_LIB)(zdfric.o) :	\
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbcnfd.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	oce.F90 \
+	zdf_oce.F90 \
+	domzgr_substitute.h90 \
+	KEY_CPP \
+	zdfric.F90
+$(MODEL_LIB)(zdftke.o) :	\
+	c1d.F90 \
+	dom_oce.F90 \
+	eosbn2.F90 \
+	in_out_manager.F90 \
+	iom_def.F90 \
+	iom.F90 \
+	iom_ioipsl.F90 \
+	iom_nf90.F90 \
+	iom_rstdimg.F90 \
+	lbclnk.F90 \
+	lbcnfd.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(c1d.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(eosbn2.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom_def.o) \
+	$(MODEL_LIB)(iom_ioipsl.o) \
+	$(MODEL_LIB)(iom_nf90.o) \
+	$(MODEL_LIB)(iom.o) \
+	$(MODEL_LIB)(iom_rstdimg.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(sbc_oce.o) \
+	$(MODEL_LIB)(trdmld_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
+	$(MODEL_LIB)(zdfmxl.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zpshde.o) \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.F90 \
+	sbc_oce.F90 \
+	trdmld_oce.F90 \
+	zdfddm.F90 \
+	zdfmxl.F90 \
+	zdf_oce.F90 \
+	zpshde.F90 \
+	dom_oce.F90 \
+	domvvl.F90 \
+	in_out_manager.F90 \
+	iom.F90 \
+	lbclnk.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(domvvl.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(restart.o) \
+	$(MODEL_LIB)(sbc_oce.o) \
+	$(MODEL_LIB)(zdfmxl.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	oce.F90 \
+	phycst.F90 \
+	prtctl.F90 \
+	restart.F90 \
+	sbc_oce.F90 \
+	zdfmxl.F90 \
+	zdf_oce.F90 \
+	domzgr_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	zdftke.F90
+$(MODEL_LIB)(zdftke_old.o) :	\
+	c1d.F90 \
+	dom_oce.F90 \
+	domvvl.F90 \
+	eosbn2.F90 \
+	in_out_manager.F90 \
+	iom_def.F90 \
+	iom.F90 \
+	iom_ioipsl.F90 \
+	iom_nf90.F90 \
+	iom_rstdimg.F90 \
+	lbclnk.F90 \
+	lbcnfd.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(c1d.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(domvvl.o) \
+	$(MODEL_LIB)(eosbn2.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom_def.o) \
+	$(MODEL_LIB)(iom_ioipsl.o) \
+	$(MODEL_LIB)(iom_nf90.o) \
+	$(MODEL_LIB)(iom.o) \
+	$(MODEL_LIB)(iom_rstdimg.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -10772,4 +10761,5 @@
 	$(MODEL_LIB)(trdmod_oce.o) \
 	$(MODEL_LIB)(zdfddm.o) \
+	$(MODEL_LIB)(zdfmxl.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
 	$(MODEL_LIB)(zpshde.o) \
@@ -10784,4 +10774,5 @@
 	trdmod_oce.F90 \
 	zdfddm.F90 \
+	zdfmxl.F90 \
 	zdf_oce.F90 \
 	zpshde.F90 \
@@ -10815,93 +10806,69 @@
 	vectopt_loop_substitute.h90 \
 	KEY_CPP \
-	zdftke2.F90
-$(MODEL_LIB)(zdftke.o) :	\
-	c1d.F90 \
-	dom_oce.F90 \
-	domvvl.F90 \
-	eosbn2.F90 \
+	zdftke_old.F90
+$(MODEL_LIB)(zdftmx.o) :	\
+	dom_oce.F90 \
 	in_out_manager.F90 \
 	iom_def.F90 \
-	iom.F90 \
 	iom_ioipsl.F90 \
 	iom_nf90.F90 \
 	iom_rstdimg.F90 \
 	lbclnk.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(c1d.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(domvvl.o) \
-	$(MODEL_LIB)(eosbn2.o) \
+	lbcnfd.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(iom_def.o) \
 	$(MODEL_LIB)(iom_ioipsl.o) \
 	$(MODEL_LIB)(iom_nf90.o) \
-	$(MODEL_LIB)(iom.o) \
 	$(MODEL_LIB)(iom_rstdimg.o) \
 	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(prtctl.o) \
-	$(MODEL_LIB)(sbc_oce.o) \
-	$(MODEL_LIB)(trdmld_oce.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(zdfddm.o) \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.F90 \
+	zdfddm.F90 \
+	dom_oce.F90 \
+	eosbn2.F90 \
+	in_out_manager.F90 \
+	iom.F90 \
+	lbclnk.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(eosbn2.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
-	$(MODEL_LIB)(zpshde.o) \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.F90 \
-	prtctl.F90 \
-	sbc_oce.F90 \
-	trdmld_oce.F90 \
-	trdmod.F90 \
-	trdmod_oce.F90 \
-	zdfddm.F90 \
-	zdf_oce.F90 \
-	zpshde.F90 \
-	dom_oce.F90 \
-	dynzdf_exp.F90 \
-	in_out_manager.F90 \
-	iom.F90 \
-	lbclnk.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dynzdf_exp.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(iom.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(prtctl.o) \
-	$(MODEL_LIB)(restart.o) \
-	$(MODEL_LIB)(sbc_oce.o) \
-	$(MODEL_LIB)(trazdf_exp.o) \
-	$(MODEL_LIB)(zdfmxl.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	oce.F90 \
-	phycst.F90 \
-	prtctl.F90 \
-	restart.F90 \
-	sbc_oce.F90 \
-	trazdf_exp.F90 \
-	zdfmxl.F90 \
+	oce.F90 \
+	phycst.F90 \
+	prtctl.F90 \
 	zdf_oce.F90 \
 	domzgr_substitute.h90 \
 	vectopt_loop_substitute.h90 \
 	KEY_CPP \
-	zdftke.F90
+	zdftmx.F90
 $(MODEL_LIB)(zpshde.o) :	\
 	dom_oce.F90 \
 	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
+	lbcnfd.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbcnfd.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -11001,7 +10968,4 @@
 	if [ -n "$$check" ] ; then  \
 	echo "   use TOP_SRC files"                ; \
-      \$(RM) trcstp.F90                      ; \
-      \$(RM) sms.F90                         ; \
-      \$(RM) trcini.F90                      ; \
       ln -sf ../TOP_SRC/*.[Ffh]90          . ; \
       ln -sf ../TOP_SRC/*/*.[Ffh]90      . ; \
