Index: trunk/CONFIG/GYRE_LOBSTER/scripts/BB_make
===================================================================
--- trunk/CONFIG/GYRE_LOBSTER/scripts/BB_make	(revision 1344)
+++ trunk/CONFIG/GYRE_LOBSTER/scripts/BB_make	(revision 1439)
@@ -77,4 +77,14 @@
 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
+else
+IOSERVER=notuse
+endif
+
 KEY_LIST = \
      key_agrif \
@@ -118,4 +128,5 @@
      key_flx_forced_daily \
      key_gyre \
+     key_iomput \
      key_islands \
      key_kppcustom \
@@ -144,5 +155,4 @@
      key_sed \
      key_sed_off \
-     key_sigma_vvl \
      key_top \
      key_trabbc \
@@ -180,5 +190,6 @@
      key_zdfric \
      key_zdftke \
-     key_zdftke2 
+     key_zdftke2 \
+     key_zdftmx 
 # .o file list in the library
 LIB_OBJ = \
@@ -497,4 +508,5 @@
 		$(MODEL_LIB)(zdftke.o)\
 		$(MODEL_LIB)(zdftke2.o)\
+		$(MODEL_LIB)(zdftmx.o)\
 		$(MODEL_LIB)(zpshde.o)\
 		$(MODEL_LIB)(zpshde_trc.o)
@@ -518,9 +530,16 @@
 		@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)
+	(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)
 endif
 
@@ -711,4 +730,5 @@
 	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(restart.o) \
+	$(MODEL_LIB)(zdfddm.o) \
 	bdy_oce.F90 \
 	bdy_par.F90 \
@@ -729,4 +749,5 @@
 	prtctl.F90 \
 	restart.F90 \
+	zdfddm.F90 \
 	$(MODEL_LIB)(bdy_oce.o) \
 	$(MODEL_LIB)(bdytides.o) \
@@ -814,4 +835,5 @@
 	$(MODEL_LIB)(par_oce.o) \
 	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(zdfddm.o) \
 	bdy_oce.F90 \
 	bdy_par.F90 \
@@ -832,4 +854,5 @@
 	par_oce.F90 \
 	phycst.F90 \
+	zdfddm.F90 \
 	$(MODEL_LIB)(bdy_oce.o) \
 	$(MODEL_LIB)(bdytides.o) \
@@ -869,4 +892,5 @@
 	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(restart.o) \
+	$(MODEL_LIB)(zdfddm.o) \
 	bdy_par.F90 \
 	dom_oce.F90 \
@@ -887,4 +911,5 @@
 	prtctl.F90 \
 	restart.F90 \
+	zdfddm.F90 \
 	$(MODEL_LIB)(bdy_oce.o) \
 	$(MODEL_LIB)(bdy_par.o) \
@@ -1242,4 +1267,5 @@
 	$(MODEL_LIB)(trdmld_oce.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
 	$(MODEL_LIB)(zpshde.o) \
 	c1d.F90 \
@@ -1261,4 +1287,5 @@
 	trdmld_oce.F90 \
 	zdf_oce.F90 \
+	zdfddm.F90 \
 	zpshde.F90 \
 	$(MODEL_LIB)(dom_oce.o) \
@@ -1274,4 +1301,5 @@
 	prtctl.F90 \
 	restart.F90 \
+	$(IOIPSL_LIB) \
 	daymod.F90
 $(MODEL_LIB)(diadimg.o) :	\
@@ -1471,4 +1499,5 @@
 	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(restart.o) \
+	$(MODEL_LIB)(zdfddm.o) \
 	daymod.F90 \
 	dom_oce.F90 \
@@ -1487,4 +1516,5 @@
 	prtctl.F90 \
 	restart.F90 \
+	zdfddm.F90 \
 	$(MODEL_LIB)(daymod.o) \
 	$(MODEL_LIB)(dianam.o) \
@@ -1559,4 +1589,8 @@
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(iom.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) \
@@ -1576,4 +1610,5 @@
 	$(MODEL_LIB)(solsor.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
 	daymod.F90 \
 	dom_oce.F90 \
@@ -1581,4 +1616,8 @@
 	in_out_manager.F90 \
 	iom.F90 \
+	iom_def.F90 \
+	iom_ioipsl.F90 \
+	iom_nf90.F90 \
+	iom_rstdimg.F90 \
 	lbclnk.F90 \
 	lbcnfd.F90 \
@@ -1598,4 +1637,5 @@
 	solsor.F90 \
 	zdf_oce.F90 \
+	zdfddm.F90 \
 	$(MODEL_LIB)(daymod.o) \
 	$(MODEL_LIB)(diadimg.o) \
@@ -1606,4 +1646,5 @@
 	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom.o) \
 	$(MODEL_LIB)(lbclnk.o) \
 	$(MODEL_LIB)(ldfdyn_oce.o) \
@@ -1626,4 +1667,5 @@
 	ice_oce.F90 \
 	in_out_manager.F90 \
+	iom.F90 \
 	lbclnk.F90 \
 	ldfdyn_oce.F90 \
@@ -1832,5 +1874,4 @@
 	dom_oce.F90
 $(MODEL_LIB)(domain.o) :	\
-	$(MODEL_LIB)(bdy_oce.o) \
 	$(MODEL_LIB)(c1d.o) \
 	$(MODEL_LIB)(closea.o) \
@@ -1850,5 +1891,4 @@
 	$(MODEL_LIB)(sbc_oce.o) \
 	$(MODEL_LIB)(solisl.o) \
-	bdy_oce.F90 \
 	c1d.F90 \
 	closea.F90 \
@@ -1952,4 +1992,5 @@
 	$(MODEL_LIB)(par_kind.o) \
 	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
 	dom_oce.F90 \
 	in_out_manager.F90 \
@@ -1963,4 +2004,5 @@
 	par_kind.F90 \
 	par_oce.F90 \
+	zdfddm.F90 \
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
@@ -2042,5 +2084,4 @@
 	domstp.F90
 $(MODEL_LIB)(domvvl.o) :	\
-	$(MODEL_LIB)(bdy_par.o) \
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
@@ -2052,5 +2093,4 @@
 	$(MODEL_LIB)(par_kind.o) \
 	$(MODEL_LIB)(par_oce.o) \
-	bdy_par.F90 \
 	dom_oce.F90 \
 	in_out_manager.F90 \
@@ -2062,16 +2102,12 @@
 	par_kind.F90 \
 	par_oce.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)(lib_mpp.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(sbc_oce.o) \
-	bdy_oce.F90 \
-	dom_oce.F90 \
-	dynspg_oce.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(sbc_oce.o) \
+	dom_oce.F90 \
 	in_out_manager.F90 \
 	lbclnk.F90 \
@@ -2098,4 +2134,5 @@
 	$(MODEL_LIB)(par_kind.o) \
 	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
 	dom_oce.F90 \
 	in_out_manager.F90 \
@@ -2111,4 +2148,5 @@
 	par_kind.F90 \
 	par_oce.F90 \
+	zdfddm.F90 \
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
@@ -2143,4 +2181,5 @@
 	$(MODEL_LIB)(solpcg.o) \
 	$(MODEL_LIB)(solsor.o) \
+	$(MODEL_LIB)(zdfddm.o) \
 	dom_oce.F90 \
 	in_out_manager.F90 \
@@ -2163,4 +2202,5 @@
 	solpcg.F90 \
 	solsor.F90 \
+	zdfddm.F90 \
 	$(MODEL_LIB)(c1d.o) \
 	$(MODEL_LIB)(closea.o) \
@@ -2203,4 +2243,5 @@
 	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(restart.o) \
+	$(MODEL_LIB)(zdfddm.o) \
 	dom_oce.F90 \
 	in_out_manager.F90 \
@@ -2220,4 +2261,5 @@
 	prtctl.F90 \
 	restart.F90 \
+	zdfddm.F90 \
 	$(MODEL_LIB)(daymod.o) \
 	$(MODEL_LIB)(dom_oce.o) \
@@ -2255,4 +2297,5 @@
 	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(restart.o) \
+	$(MODEL_LIB)(zdfddm.o) \
 	dom_oce.F90 \
 	in_out_manager.F90 \
@@ -2272,4 +2315,5 @@
 	prtctl.F90 \
 	restart.F90 \
+	zdfddm.F90 \
 	$(MODEL_LIB)(daymod.o) \
 	$(MODEL_LIB)(dom_oce.o) \
@@ -3237,4 +3281,5 @@
 	$(MODEL_LIB)(trdmld_oce.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
 	$(MODEL_LIB)(zpshde.o) \
 	c1d.F90 \
@@ -3262,4 +3307,5 @@
 	trdmld_oce.F90 \
 	zdf_oce.F90 \
+	zdfddm.F90 \
 	zpshde.F90 \
 	$(MODEL_LIB)(dom_oce.o) \
@@ -3330,4 +3376,5 @@
 	$(MODEL_LIB)(trdmld_oce.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
 	$(MODEL_LIB)(zpshde.o) \
 	bdy_oce.F90 \
@@ -3367,4 +3414,5 @@
 	trdmld_oce.F90 \
 	zdf_oce.F90 \
+	zdfddm.F90 \
 	zpshde.F90 \
 	$(MODEL_LIB)(agrif_opa_interp.o) \
@@ -3461,4 +3509,5 @@
 	$(MODEL_LIB)(trdmld_oce.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
 	$(MODEL_LIB)(zpshde.o) \
 	c1d.F90 \
@@ -3490,4 +3539,5 @@
 	trdmld_oce.F90 \
 	zdf_oce.F90 \
+	zdfddm.F90 \
 	zpshde.F90 \
 	$(MODEL_LIB)(dom_oce.o) \
@@ -3566,4 +3616,5 @@
 	$(MODEL_LIB)(trdmod_oce.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
 	$(MODEL_LIB)(zpshde.o) \
 	bdy_oce.F90 \
@@ -3600,4 +3651,5 @@
 	trdmod_oce.F90 \
 	zdf_oce.F90 \
+	zdfddm.F90 \
 	zpshde.F90 \
 	$(MODEL_LIB)(bdy_oce.o) \
@@ -3969,4 +4021,5 @@
 	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(restart.o) \
+	$(MODEL_LIB)(zdfddm.o) \
 	dom_oce.F90 \
 	in_out_manager.F90 \
@@ -3983,4 +4036,5 @@
 	prtctl.F90 \
 	restart.F90 \
+	zdfddm.F90 \
 	$(MODEL_LIB)(daymod.o) \
 	$(MODEL_LIB)(dom_oce.o) \
@@ -4271,4 +4325,6 @@
 	$(MODEL_LIB)(par_kind.o) \
 	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
 	dom_oce.F90 \
 	in_out_manager.F90 \
@@ -4281,4 +4337,6 @@
 	par_kind.F90 \
 	par_oce.F90 \
+	prtctl.F90 \
+	zdf_oce.F90 \
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
@@ -4288,4 +4346,5 @@
 	$(MODEL_LIB)(iom_rstdimg.o) \
 	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(zdfddm.o) \
 	dom_oce.F90 \
 	in_out_manager.F90 \
@@ -4295,4 +4354,5 @@
 	iom_rstdimg.F90 \
 	lbclnk.F90 \
+	zdfddm.F90 \
 	KEY_CPP \
 	iom.F90
@@ -4952,4 +5012,5 @@
 	$(MODEL_LIB)(trdmod_oce.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
 	$(MODEL_LIB)(zdfmxl.o) \
 	dom_oce.F90 \
@@ -4975,4 +5036,5 @@
 	trdmod_oce.F90 \
 	zdf_oce.F90 \
+	zdfddm.F90 \
 	zdfmxl.F90 \
 	$(MODEL_LIB)(daymod.o) \
@@ -5243,4 +5305,5 @@
 	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(restart.o) \
+	$(MODEL_LIB)(zdfddm.o) \
 	dom_oce.F90 \
 	in_out_manager.F90 \
@@ -5258,4 +5321,5 @@
 	prtctl.F90 \
 	restart.F90 \
+	zdfddm.F90 \
 	$(MODEL_LIB)(daymod.o) \
 	$(MODEL_LIB)(ice_2.o) \
@@ -5551,4 +5615,8 @@
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(iom.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) \
@@ -5562,8 +5630,13 @@
 	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(restart.o) \
+	$(MODEL_LIB)(zdfddm.o) \
 	daymod.F90 \
 	dom_oce.F90 \
 	in_out_manager.F90 \
 	iom.F90 \
+	iom_def.F90 \
+	iom_ioipsl.F90 \
+	iom_nf90.F90 \
+	iom_rstdimg.F90 \
 	lbclnk.F90 \
 	lbcnfd.F90 \
@@ -5577,4 +5650,5 @@
 	prtctl.F90 \
 	restart.F90 \
+	zdfddm.F90 \
 	$(MODEL_LIB)(daymod.o) \
 	$(MODEL_LIB)(dianam.o) \
@@ -5584,4 +5658,5 @@
 	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom.o) \
 	$(MODEL_LIB)(lbclnk.o) \
 	$(MODEL_LIB)(phycst.o) \
@@ -5595,4 +5670,5 @@
 	ice_oce.F90 \
 	in_out_manager.F90 \
+	iom.F90 \
 	lbclnk.F90 \
 	phycst.F90 \
@@ -5623,4 +5699,5 @@
 	$(MODEL_LIB)(eosbn2.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom.o) \
 	$(MODEL_LIB)(istate.o) \
 	$(MODEL_LIB)(ldfdyn.o) \
@@ -5657,4 +5734,5 @@
 	eosbn2.F90 \
 	in_out_manager.F90 \
+	iom.F90 \
 	istate.F90 \
 	ldfdyn.F90 \
@@ -5795,4 +5873,5 @@
 	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(restart.o) \
+	$(MODEL_LIB)(zdfddm.o) \
 	dom_oce.F90 \
 	in_out_manager.F90 \
@@ -5814,4 +5893,5 @@
 	prtctl.F90 \
 	restart.F90 \
+	zdfddm.F90 \
 	$(MODEL_LIB)(daymod.o) \
 	$(MODEL_LIB)(dom_oce.o) \
@@ -6347,4 +6427,8 @@
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(iom.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) \
@@ -6418,4 +6502,5 @@
 	$(MODEL_LIB)(zdftke.o) \
 	$(MODEL_LIB)(zdftke2.o) \
+	$(MODEL_LIB)(zdftmx.o) \
 	$(MODEL_LIB)(zpshde.o) \
 	$(MODEL_LIB)(zpshde_trc.o) \
@@ -6469,4 +6554,8 @@
 	in_out_manager.F90 \
 	iom.F90 \
+	iom_def.F90 \
+	iom_ioipsl.F90 \
+	iom_nf90.F90 \
+	iom_rstdimg.F90 \
 	lbclnk.F90 \
 	lbcnfd.F90 \
@@ -6540,4 +6629,5 @@
 	zdftke.F90 \
 	zdftke2.F90 \
+	zdftmx.F90 \
 	zpshde.F90 \
 	zpshde_trc.F90 \
@@ -6558,4 +6648,5 @@
 	$(MODEL_LIB)(eosbn2.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom.o) \
 	$(MODEL_LIB)(istate.o) \
 	$(MODEL_LIB)(ldfdyn.o) \
@@ -6592,4 +6683,5 @@
 	eosbn2.F90 \
 	in_out_manager.F90 \
+	iom.F90 \
 	istate.F90 \
 	ldfdyn.F90 \
@@ -7814,4 +7906,5 @@
 	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(restart.o) \
+	$(MODEL_LIB)(zdfddm.o) \
 	daymod.F90 \
 	dom_oce.F90 \
@@ -7834,4 +7927,5 @@
 	prtctl.F90 \
 	restart.F90 \
+	zdfddm.F90 \
 	$(MODEL_LIB)(albedo.o) \
 	$(MODEL_LIB)(daymod.o) \
@@ -7885,4 +7979,5 @@
 	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(restart.o) \
+	$(MODEL_LIB)(zdfddm.o) \
 	daymod.F90 \
 	dom_oce.F90 \
@@ -7904,4 +7999,5 @@
 	prtctl.F90 \
 	restart.F90 \
+	zdfddm.F90 \
 	$(MODEL_LIB)(daymod.o) \
 	$(MODEL_LIB)(dom_oce.o) \
@@ -7953,4 +8049,5 @@
 	$(MODEL_LIB)(trdmld_oce.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
 	$(MODEL_LIB)(zpshde.o) \
 	c1d.F90 \
@@ -7974,4 +8071,5 @@
 	trdmld_oce.F90 \
 	zdf_oce.F90 \
+	zdfddm.F90 \
 	zpshde.F90 \
 	$(MODEL_LIB)(albedo.o) \
@@ -8030,4 +8128,5 @@
 	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(restart.o) \
+	$(MODEL_LIB)(zdfddm.o) \
 	daymod.F90 \
 	dom_oce.F90 \
@@ -8049,4 +8148,5 @@
 	prtctl.F90 \
 	restart.F90 \
+	zdfddm.F90 \
 	$(MODEL_LIB)(daymod.o) \
 	$(MODEL_LIB)(dom_oce.o) \
@@ -8460,4 +8560,5 @@
 	$(MODEL_LIB)(trdmld_oce.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
 	$(MODEL_LIB)(zpshde.o) \
 	albedo.F90 \
@@ -8506,4 +8607,5 @@
 	trdmld_oce.F90 \
 	zdf_oce.F90 \
+	zdfddm.F90 \
 	zpshde.F90 \
 	$(MODEL_LIB)(closea.o) \
@@ -8578,4 +8680,5 @@
 	$(MODEL_LIB)(restart.o) \
 	$(MODEL_LIB)(sbc_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
 	daymod.F90 \
 	dom_oce.F90 \
@@ -8597,4 +8700,5 @@
 	restart.F90 \
 	sbc_oce.F90 \
+	zdfddm.F90 \
 	$(MODEL_LIB)(closea.o) \
 	$(MODEL_LIB)(daymod.o) \
@@ -8635,4 +8739,5 @@
 	$(MODEL_LIB)(trdmld_oce.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
 	$(MODEL_LIB)(zpshde.o) \
 	c1d.F90 \
@@ -8656,4 +8761,5 @@
 	trdmld_oce.F90 \
 	zdf_oce.F90 \
+	zdfddm.F90 \
 	zpshde.F90 \
 	$(MODEL_LIB)(daymod.o) \
@@ -8699,4 +8805,5 @@
 	$(MODEL_LIB)(restart.o) \
 	$(MODEL_LIB)(sbc_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
 	closea.F90 \
 	daymod.F90 \
@@ -8721,4 +8828,5 @@
 	restart.F90 \
 	sbc_oce.F90 \
+	zdfddm.F90 \
 	$(MODEL_LIB)(daymod.o) \
 	$(MODEL_LIB)(dom_oce.o) \
@@ -8937,4 +9045,5 @@
 	$(MODEL_LIB)(sms_pisces.o) \
 	$(MODEL_LIB)(trc.o) \
+	$(MODEL_LIB)(zdfddm.o) \
 	daymod.F90 \
 	dom_oce.F90 \
@@ -8950,4 +9059,5 @@
 	sms_pisces.F90 \
 	trc.F90 \
+	zdfddm.F90 \
 	$(MODEL_LIB)(iom.o) \
 	$(MODEL_LIB)(sed.o) \
@@ -8975,4 +9085,5 @@
 	$(MODEL_LIB)(sms_pisces.o) \
 	$(MODEL_LIB)(trc.o) \
+	$(MODEL_LIB)(zdfddm.o) \
 	daymod.F90 \
 	dom_oce.F90 \
@@ -8991,4 +9102,5 @@
 	sms_pisces.F90 \
 	trc.F90 \
+	zdfddm.F90 \
 	$(MODEL_LIB)(iom.o) \
 	$(MODEL_LIB)(sed.o) \
@@ -9122,4 +9234,5 @@
 	$(MODEL_LIB)(sms_pisces.o) \
 	$(MODEL_LIB)(trc.o) \
+	$(MODEL_LIB)(zdfddm.o) \
 	daymod.F90 \
 	dom_oce.F90 \
@@ -9135,4 +9248,5 @@
 	sms_pisces.F90 \
 	trc.F90 \
+	zdfddm.F90 \
 	$(MODEL_LIB)(iom.o) \
 	$(MODEL_LIB)(sed.o) \
@@ -9347,4 +9461,5 @@
 	$(MODEL_LIB)(sol_oce.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
 	dom_oce.F90 \
 	in_out_manager.F90 \
@@ -9363,4 +9478,5 @@
 	sol_oce.F90 \
 	zdf_oce.F90 \
+	zdfddm.F90 \
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
@@ -9829,5 +9945,4 @@
 	$(MODEL_LIB)(divcur.o) \
 	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(domvvl.o) \
 	$(MODEL_LIB)(dtasal.o) \
 	$(MODEL_LIB)(dtatem.o) \
@@ -9889,4 +10004,5 @@
 	$(MODEL_LIB)(zdftke.o) \
 	$(MODEL_LIB)(zdftke2.o) \
+	$(MODEL_LIB)(zdftmx.o) \
 	$(MODEL_LIB)(zpshde.o) \
 	agrif_opa_sponge.F90 \
@@ -9906,5 +10022,4 @@
 	divcur.F90 \
 	dom_oce.F90 \
-	domvvl.F90 \
 	dtasal.F90 \
 	dtatem.F90 \
@@ -9966,4 +10081,5 @@
 	zdftke.F90 \
 	zdftke2.F90 \
+	zdftmx.F90 \
 	zpshde.F90 \
 	domzgr_substitute.h90 \
@@ -10942,4 +11058,5 @@
 	$(MODEL_LIB)(trdvor_oce.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
 	dom_oce.F90 \
 	in_out_manager.F90 \
@@ -10965,4 +11082,5 @@
 	trdvor_oce.F90 \
 	zdf_oce.F90 \
+	zdfddm.F90 \
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
@@ -11080,4 +11198,5 @@
 	$(MODEL_LIB)(trdvor_oce.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
 	daymod.F90 \
 	dom_oce.F90 \
@@ -11107,4 +11226,5 @@
 	trdvor_oce.F90 \
 	zdf_oce.F90 \
+	zdfddm.F90 \
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(dtasal.o) \
@@ -11651,4 +11771,5 @@
 	$(MODEL_LIB)(bdytra.o) \
 	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(domvvl.o) \
 	$(MODEL_LIB)(dynspg_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
@@ -11665,4 +11786,5 @@
 	bdytra.F90 \
 	dom_oce.F90 \
+	domvvl.F90 \
 	dynspg_oce.F90 \
 	in_out_manager.F90 \
@@ -11680,6 +11802,13 @@
 	tranxt.F90
 $(MODEL_LIB)(traqsr.o) :	\
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(geo2ocean.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom.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)(ldftra_oce.o) \
@@ -11700,6 +11829,14 @@
 	$(MODEL_LIB)(trdvor_oce.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
+	$(MODEL_LIB)(zdfddm.o) \
+	daymod.F90 \
+	dom_oce.F90 \
+	geo2ocean.F90 \
+	in_out_manager.F90 \
+	iom.F90 \
+	iom_def.F90 \
+	iom_ioipsl.F90 \
+	iom_nf90.F90 \
+	iom_rstdimg.F90 \
 	lbclnk.F90 \
 	ldftra_oce.F90 \
@@ -11720,6 +11857,9 @@
 	trdvor_oce.F90 \
 	zdf_oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
+	zdfddm.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) \
@@ -11730,5 +11870,7 @@
 	$(MODEL_LIB)(trdmod_oce.o) \
 	dom_oce.F90 \
-	in_out_manager.F90 \
+	fldread.F90 \
+	in_out_manager.F90 \
+	iom.F90 \
 	oce.F90 \
 	phycst.F90 \
@@ -11744,5 +11886,7 @@
 $(MODEL_LIB)(trasbc.o) :	\
 	$(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) \
@@ -11766,5 +11910,7 @@
 	$(MODEL_LIB)(zdf_oce.o) \
 	dom_oce.F90 \
-	in_out_manager.F90 \
+	fldread.F90 \
+	in_out_manager.F90 \
+	iom.F90 \
 	lbclnk.F90 \
 	ldftra_oce.F90 \
@@ -11810,8 +11956,6 @@
 	trasbc.F90
 $(MODEL_LIB)(trazdf.o) :	\
-	$(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) \
@@ -11844,8 +11988,6 @@
 	$(MODEL_LIB)(zdfddm.o) \
 	$(MODEL_LIB)(zdfmxl.o) \
-	bdy_oce.F90 \
 	dom_oce.F90 \
 	domvvl.F90 \
-	dynspg_oce.F90 \
 	dynzdf_exp.F90 \
 	eosbn2.F90 \
@@ -11920,7 +12062,5 @@
 	trazdf.F90
 $(MODEL_LIB)(trazdf_exp.o) :	\
-	$(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) \
@@ -11942,7 +12082,5 @@
 	$(MODEL_LIB)(trdvor_oce.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
-	bdy_oce.F90 \
-	dom_oce.F90 \
-	dynspg_oce.F90 \
+	dom_oce.F90 \
 	in_out_manager.F90 \
 	lbclnk.F90 \
@@ -11988,7 +12126,5 @@
 	trazdf_exp.F90
 $(MODEL_LIB)(trazdf_imp.o) :	\
-	$(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) \
@@ -12014,7 +12150,5 @@
 	$(MODEL_LIB)(zdf_oce.o) \
 	$(MODEL_LIB)(zdfmxl.o) \
-	bdy_oce.F90 \
-	dom_oce.F90 \
-	dynspg_oce.F90 \
+	dom_oce.F90 \
 	in_out_manager.F90 \
 	lbclnk.F90 \
@@ -12092,14 +12226,21 @@
 	trc.F90
 $(MODEL_LIB)(trc_oce.o) :	\
+	$(MODEL_LIB)(lib_print.o) \
 	$(MODEL_LIB)(par_kind.o) \
 	$(MODEL_LIB)(par_oce.o) \
 	$(MODEL_LIB)(par_trc.o) \
+	lib_print.f90 \
 	par_kind.F90 \
 	par_oce.F90 \
 	par_trc.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(par_oce.o) \
 	$(MODEL_LIB)(sms_pisces.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
 	par_oce.F90 \
 	sms_pisces.F90 \
+	domzgr_substitute.h90 \
 	KEY_CPP \
 	trc_oce.F90
@@ -16500,4 +16641,5 @@
 	$(MODEL_LIB)(trdvor_oce.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
 	$(MODEL_LIB)(zpshde.o) \
 	c1d.F90 \
@@ -16522,4 +16664,5 @@
 	trdvor_oce.F90 \
 	zdf_oce.F90 \
+	zdfddm.F90 \
 	zpshde.F90 \
 	$(MODEL_LIB)(daymod.o) \
@@ -16898,9 +17041,13 @@
 	trp_trc.F90
 $(MODEL_LIB)(wzvmod.o) :	\
-	$(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)(c1d.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(eosbn2.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iom.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) \
@@ -16913,9 +17060,17 @@
 	$(MODEL_LIB)(phycst.o) \
 	$(MODEL_LIB)(sbc_oce.o) \
-	bdy_oce.F90 \
-	bdy_par.F90 \
-	dom_oce.F90 \
-	dynspg_oce.F90 \
-	in_out_manager.F90 \
+	$(MODEL_LIB)(trdmld_oce.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
+	$(MODEL_LIB)(zpshde.o) \
+	c1d.F90 \
+	dom_oce.F90 \
+	eosbn2.F90 \
+	in_out_manager.F90 \
+	iom.F90 \
+	iom_def.F90 \
+	iom_ioipsl.F90 \
+	iom_nf90.F90 \
+	iom_rstdimg.F90 \
 	lbclnk.F90 \
 	lbcnfd.F90 \
@@ -16928,8 +17083,12 @@
 	phycst.F90 \
 	sbc_oce.F90 \
-	$(MODEL_LIB)(bdy_oce.o) \
+	trdmld_oce.F90 \
+	zdf_oce.F90 \
+	zdfddm.F90 \
+	zpshde.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)(obc_oce.o) \
@@ -16938,9 +17097,10 @@
 	$(MODEL_LIB)(phycst.o) \
 	$(MODEL_LIB)(prtctl.o) \
-	$(MODEL_LIB)(sbc_oce.o) \
-	bdy_oce.F90 \
+	$(MODEL_LIB)(restart.o) \
+	$(MODEL_LIB)(sbc_oce.o) \
 	dom_oce.F90 \
 	domvvl.F90 \
 	in_out_manager.F90 \
+	iom.F90 \
 	lbclnk.F90 \
 	obc_oce.F90 \
@@ -16949,6 +17109,8 @@
 	phycst.F90 \
 	prtctl.F90 \
+	restart.F90 \
 	sbc_oce.F90 \
 	domzgr_substitute.h90 \
+	vectopt_loop_substitute.h90 \
 	KEY_CPP \
 	wzvmod.F90
@@ -17438,4 +17600,59 @@
 	KEY_CPP \
 	zdftke2.F90
+$(MODEL_LIB)(zdftmx.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_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)(zdfddm.o) \
+	dom_oce.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 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.F90 \
+	zdfddm.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) \
+	dom_oce.F90 \
+	eosbn2.F90 \
+	in_out_manager.F90 \
+	iom.F90 \
+	lbclnk.F90 \
+	oce.F90 \
+	phycst.F90 \
+	prtctl.F90 \
+	zdf_oce.F90 \
+	domzgr_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	zdftmx.F90
 $(MODEL_LIB)(zpshde.o) :	\
 	$(MODEL_LIB)(dom_oce.o) \
