Index: /trunk/CONFIG/GYRE/scripts/BB_make
===================================================================
--- /trunk/CONFIG/GYRE/scripts/BB_make	(revision 269)
+++ /trunk/CONFIG/GYRE/scripts/BB_make	(revision 270)
@@ -25,5 +25,5 @@
 #-Q- sx6nec	PREF=i.
 #-Q- sxdkrz	PREF=i.
-#-Q- hpux	PREF=i.
+#-Q- hpux		PREF=i.
 
 KEY_LIST = \
@@ -31,4 +31,5 @@
      key_arctic \
      key_autotasking \
+     key_cfg_1d \
      key_coupled \
      key_diaeiv \
@@ -59,4 +60,6 @@
      key_ice_lim \
      key_islands \
+     key_kppcustom \
+     key_kpplktb \
      key_ldfslp \
      key_lim_cp1 \
@@ -96,4 +99,5 @@
      key_zdfcst \
      key_zdfddm \
+     key_zdfkpp \
      key_zdfric \
      key_zdftke 
@@ -104,4 +108,5 @@
 		$(MODEL_LIB)(lib_isml.o)\
 		$(MODEL_LIB)(lib_print.o)\
+		$(MODEL_LIB)(prtctl.o)\
 		$(MODEL_LIB)(albedo.o)\
 		$(MODEL_LIB)(blk_oce.o)\
@@ -123,5 +128,8 @@
 		$(MODEL_LIB)(diaspr.o)\
 		$(MODEL_LIB)(diawri.o)\
+		$(MODEL_LIB)(diawri1d.o)\
 		$(MODEL_LIB)(divcur.o)\
+		$(MODEL_LIB)(dom_ice.o)\
+		$(MODEL_LIB)(dom_oce.o)\
 		$(MODEL_LIB)(domain.o)\
 		$(MODEL_LIB)(domcfg.o)\
@@ -131,17 +139,17 @@
 		$(MODEL_LIB)(domwri.o)\
 		$(MODEL_LIB)(domzgr.o)\
-		$(MODEL_LIB)(dom_ice.o)\
-		$(MODEL_LIB)(dom_oce.o)\
 		$(MODEL_LIB)(dtasal.o)\
 		$(MODEL_LIB)(dtasst.o)\
 		$(MODEL_LIB)(dtatem.o)\
+		$(MODEL_LIB)(dyncor1d.o)\
 		$(MODEL_LIB)(dynhpg.o)\
 		$(MODEL_LIB)(dynhpg_atsk.o)\
 		$(MODEL_LIB)(dynkeg.o)\
+		$(MODEL_LIB)(dynldf_bilap.o)\
 		$(MODEL_LIB)(dynldf_bilapg.o)\
-		$(MODEL_LIB)(dynldf_bilap.o)\
 		$(MODEL_LIB)(dynldf_iso.o)\
 		$(MODEL_LIB)(dynldf_lap.o)\
 		$(MODEL_LIB)(dynnxt.o)\
+		$(MODEL_LIB)(dynnxt1d.o)\
 		$(MODEL_LIB)(dynspg_fsc.o)\
 		$(MODEL_LIB)(dynspg_fsc_atsk.o)\
@@ -155,20 +163,22 @@
 		$(MODEL_LIB)(eosbn2.o)\
 		$(MODEL_LIB)(flo4rk.o)\
+		$(MODEL_LIB)(flo_oce.o)\
 		$(MODEL_LIB)(floats.o)\
 		$(MODEL_LIB)(floblk.o)\
 		$(MODEL_LIB)(flodom.o)\
 		$(MODEL_LIB)(flowri.o)\
-		$(MODEL_LIB)(flo_oce.o)\
+		$(MODEL_LIB)(flx_oce.o)\
 		$(MODEL_LIB)(flxblk.o)\
 		$(MODEL_LIB)(flxfwb.o)\
 		$(MODEL_LIB)(flxmod.o)\
 		$(MODEL_LIB)(flxrnf.o)\
-		$(MODEL_LIB)(flx_oce.o)\
 		$(MODEL_LIB)(geo2ocean.o)\
+		$(MODEL_LIB)(ice.o)\
+		$(MODEL_LIB)(ice_oce.o)\
 		$(MODEL_LIB)(iceini.o)\
 		$(MODEL_LIB)(icestp.o)\
-		$(MODEL_LIB)(ice.o)\
-		$(MODEL_LIB)(ice_oce.o)\
+		$(MODEL_LIB)(icestp1d.o)\
 		$(MODEL_LIB)(in_out_manager.o)\
+		$(MODEL_LIB)(ini1d.o)\
 		$(MODEL_LIB)(istate.o)\
 		$(MODEL_LIB)(lbclnk.o)\
@@ -197,4 +207,6 @@
 		$(MODEL_LIB)(limwri.o)\
 		$(MODEL_LIB)(mppini.o)\
+		$(MODEL_LIB)(obc_oce.o)\
+		$(MODEL_LIB)(obc_par.o)\
 		$(MODEL_LIB)(obccli.o)\
 		$(MODEL_LIB)(obcdom.o)\
@@ -207,8 +219,6 @@
 		$(MODEL_LIB)(obctra.o)\
 		$(MODEL_LIB)(obcvol.o)\
-		$(MODEL_LIB)(obc_oce.o)\
-		$(MODEL_LIB)(obc_par.o)\
+		$(MODEL_LIB)(oce.o)\
 		$(MODEL_LIB)(ocesbc.o)\
-		$(MODEL_LIB)(oce.o)\
 		$(MODEL_LIB)(ocfzpt.o)\
 		$(MODEL_LIB)(opa.o)\
@@ -219,4 +229,5 @@
 		$(MODEL_LIB)(restart.o)\
 		$(MODEL_LIB)(sms.o)\
+		$(MODEL_LIB)(sol_oce.o)\
 		$(MODEL_LIB)(solfet.o)\
 		$(MODEL_LIB)(solisl.o)\
@@ -225,6 +236,6 @@
 		$(MODEL_LIB)(solsor.o)\
 		$(MODEL_LIB)(solver.o)\
-		$(MODEL_LIB)(sol_oce.o)\
 		$(MODEL_LIB)(step.o)\
+		$(MODEL_LIB)(step1d.o)\
 		$(MODEL_LIB)(stpctl.o)\
 		$(MODEL_LIB)(taumod.o)\
@@ -232,12 +243,12 @@
 		$(MODEL_LIB)(traadv_cen2.o)\
 		$(MODEL_LIB)(traadv_ctl.o)\
+		$(MODEL_LIB)(traadv_muscl.o)\
 		$(MODEL_LIB)(traadv_muscl2.o)\
-		$(MODEL_LIB)(traadv_muscl.o)\
 		$(MODEL_LIB)(traadv_tvd.o)\
 		$(MODEL_LIB)(trabbc.o)\
 		$(MODEL_LIB)(trabbl.o)\
 		$(MODEL_LIB)(tradmp.o)\
+		$(MODEL_LIB)(traldf_bilap.o)\
 		$(MODEL_LIB)(traldf_bilapg.o)\
-		$(MODEL_LIB)(traldf_bilap.o)\
 		$(MODEL_LIB)(traldf_iso.o)\
 		$(MODEL_LIB)(traldf_iso_zps.o)\
@@ -251,6 +262,6 @@
 		$(MODEL_LIB)(trazdf_iso.o)\
 		$(MODEL_LIB)(trazdf_iso_vopt.o)\
+		$(MODEL_LIB)(trc_oce.o)\
 		$(MODEL_LIB)(trcstp.o)\
-		$(MODEL_LIB)(trc_oce.o)\
 		$(MODEL_LIB)(trdicp.o)\
 		$(MODEL_LIB)(trdicp_oce.o)\
@@ -262,12 +273,13 @@
 		$(MODEL_LIB)(trdvor_oce.o)\
 		$(MODEL_LIB)(wzvmod.o)\
+		$(MODEL_LIB)(zdf_oce.o)\
 		$(MODEL_LIB)(zdfbfr.o)\
 		$(MODEL_LIB)(zdfddm.o)\
 		$(MODEL_LIB)(zdfevd.o)\
 		$(MODEL_LIB)(zdfini.o)\
+		$(MODEL_LIB)(zdfkpp.o)\
 		$(MODEL_LIB)(zdfmxl.o)\
 		$(MODEL_LIB)(zdfric.o)\
 		$(MODEL_LIB)(zdftke.o)\
-		$(MODEL_LIB)(zdf_oce.o)\
 		$(MODEL_LIB)(zpshde.o)
 #
@@ -396,4 +408,14 @@
 #
 $(MODEL_LIB)(albedo.o) :	\
+	$(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_ice.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
 	dom_oce.F90 \
 	in_out_manager.F90 \
@@ -405,12 +427,15 @@
 	par_oce.F90 \
 	phycst.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_ice.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
+	prtctl.f90 \
+	$(MODEL_LIB)(blk_oce.o) \
+	$(MODEL_LIB)(cpl_oce.o) \
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(flx_oce.o) \
+	$(MODEL_LIB)(ice.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(ocfzpt.o) \
 	$(MODEL_LIB)(phycst.o) \
 	blk_oce.F90 \
@@ -425,4 +450,13 @@
 	ocfzpt.F90 \
 	phycst.F90 \
+	albedo.F90
+$(MODEL_LIB)(blk_oce.o) :	\
+	$(MODEL_LIB)(par_kind.o) \
+	par_kind.F90 \
+	$(MODEL_LIB)(par_oce.o) \
+	par_oce.F90 \
+	blk_oce.F90
+$(MODEL_LIB)(bulk.o) :	\
+	$(MODEL_LIB)(albedo.o) \
 	$(MODEL_LIB)(blk_oce.o) \
 	$(MODEL_LIB)(cpl_oce.o) \
@@ -430,18 +464,14 @@
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(flx_oce.o) \
-	$(MODEL_LIB)(ice.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.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)(ocfzpt.o) \
-	$(MODEL_LIB)(phycst.o) \
-	albedo.F90
-$(MODEL_LIB)(blk_oce.o) :	\
-	par_kind.F90 \
-	$(MODEL_LIB)(par_kind.o) \
-	par_oce.F90 \
-	$(MODEL_LIB)(par_oce.o) \
-	blk_oce.F90
-$(MODEL_LIB)(bulk.o) :	\
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
 	albedo.F90 \
 	blk_oce.F90 \
@@ -452,4 +482,5 @@
 	in_out_manager.F90 \
 	lbclnk.F90 \
+	lib_mpp.F90 \
 	lib_print.f90 \
 	oce.F90 \
@@ -458,4 +489,402 @@
 	par_oce.F90 \
 	phycst.F90 \
+	prtctl.f90 \
+	$(MODEL_LIB)(blk_oce.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(flx_oce.o) \
+	$(MODEL_LIB)(flxblk.o) \
+	$(MODEL_LIB)(ice_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(ocfzpt.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(taumod.o) \
+	blk_oce.F90 \
+	dom_oce.F90 \
+	flx_oce.F90 \
+	flxblk.F90 \
+	ice_oce.F90 \
+	in_out_manager.F90 \
+	oce.F90 \
+	ocfzpt.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	taumod.F90 \
+	bulk.F90
+$(MODEL_LIB)(cla.o) :	\
+	$(MODEL_LIB)(blk_oce.o) \
+	$(MODEL_LIB)(cpl_oce.o) \
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dtasal.o) \
+	$(MODEL_LIB)(dtasst.o) \
+	$(MODEL_LIB)(dtatem.o) \
+	$(MODEL_LIB)(flx_oce.o) \
+	$(MODEL_LIB)(flxmod.o) \
+	$(MODEL_LIB)(flxrnf.o) \
+	$(MODEL_LIB)(ice_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)(ocfzpt.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(taumod.o) \
+	$(MODEL_LIB)(tradmp.o) \
+	blk_oce.F90 \
+	cpl_oce.F90 \
+	daymod.F90 \
+	dom_oce.F90 \
+	dtasal.F90 \
+	dtasst.F90 \
+	dtatem.F90 \
+	flx_oce.F90 \
+	flxmod.F90 \
+	flxrnf.F90 \
+	ice_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	oce.F90 \
+	ocfzpt.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	taumod.F90 \
+	tradmp.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)(ocesbc.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	oce.F90 \
+	ocesbc.F90 \
+	domzgr_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	cla.F90
+$(MODEL_LIB)(cla_div.o) :	\
+	$(MODEL_LIB)(blk_oce.o) \
+	$(MODEL_LIB)(cpl_oce.o) \
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dtasal.o) \
+	$(MODEL_LIB)(dtasst.o) \
+	$(MODEL_LIB)(dtatem.o) \
+	$(MODEL_LIB)(flx_oce.o) \
+	$(MODEL_LIB)(flxmod.o) \
+	$(MODEL_LIB)(flxrnf.o) \
+	$(MODEL_LIB)(ice_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)(ocfzpt.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(taumod.o) \
+	$(MODEL_LIB)(tradmp.o) \
+	blk_oce.F90 \
+	cpl_oce.F90 \
+	daymod.F90 \
+	dom_oce.F90 \
+	dtasal.F90 \
+	dtasst.F90 \
+	dtatem.F90 \
+	flx_oce.F90 \
+	flxmod.F90 \
+	flxrnf.F90 \
+	ice_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	oce.F90 \
+	ocfzpt.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	taumod.F90 \
+	tradmp.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)(ocesbc.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	oce.F90 \
+	ocesbc.F90 \
+	domzgr_substitute.h90 \
+	KEY_CPP \
+	cla_div.F90
+$(MODEL_LIB)(cla_dynspg.o) :	\
+	$(MODEL_LIB)(blk_oce.o) \
+	$(MODEL_LIB)(cpl_oce.o) \
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dtasal.o) \
+	$(MODEL_LIB)(dtasst.o) \
+	$(MODEL_LIB)(dtatem.o) \
+	$(MODEL_LIB)(flx_oce.o) \
+	$(MODEL_LIB)(flxmod.o) \
+	$(MODEL_LIB)(flxrnf.o) \
+	$(MODEL_LIB)(ice_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_oce.o) \
+	$(MODEL_LIB)(obc_par.o) \
+	$(MODEL_LIB)(obccli.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(ocesbc.o) \
+	$(MODEL_LIB)(ocfzpt.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(sol_oce.o) \
+	$(MODEL_LIB)(taumod.o) \
+	$(MODEL_LIB)(tradmp.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	blk_oce.F90 \
+	cpl_oce.F90 \
+	daymod.F90 \
+	dom_oce.F90 \
+	dtasal.F90 \
+	dtasst.F90 \
+	dtatem.F90 \
+	flx_oce.F90 \
+	flxmod.F90 \
+	flxrnf.F90 \
+	ice_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	obc_oce.F90 \
+	obc_par.F90 \
+	obccli.F90 \
+	oce.F90 \
+	ocesbc.F90 \
+	ocfzpt.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	sol_oce.F90 \
+	taumod.F90 \
+	tradmp.F90 \
+	zdf_oce.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(flxrnf.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(obc_oce.o) \
+	$(MODEL_LIB)(obcdyn.o) \
+	$(MODEL_LIB)(obcvol.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(ocesbc.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(sol_oce.o) \
+	$(MODEL_LIB)(solfet.o) \
+	$(MODEL_LIB)(solpcg.o) \
+	$(MODEL_LIB)(solsor.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	dom_oce.F90 \
+	flxrnf.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	obc_oce.F90 \
+	obcdyn.F90 \
+	obcvol.F90 \
+	oce.F90 \
+	ocesbc.F90 \
+	phycst.F90 \
+	sol_oce.F90 \
+	solfet.F90 \
+	solpcg.F90 \
+	solsor.F90 \
+	zdf_oce.F90 \
+	domzgr_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	cla_dynspg.F90
+$(MODEL_LIB)(closea.o) :	\
+	$(MODEL_LIB)(blk_oce.o) \
+	$(MODEL_LIB)(cpl_oce.o) \
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dtasal.o) \
+	$(MODEL_LIB)(dtasst.o) \
+	$(MODEL_LIB)(dtatem.o) \
+	$(MODEL_LIB)(flx_oce.o) \
+	$(MODEL_LIB)(flxmod.o) \
+	$(MODEL_LIB)(flxrnf.o) \
+	$(MODEL_LIB)(ice_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)(ocfzpt.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(taumod.o) \
+	$(MODEL_LIB)(tradmp.o) \
+	blk_oce.F90 \
+	cpl_oce.F90 \
+	daymod.F90 \
+	dom_oce.F90 \
+	dtasal.F90 \
+	dtasst.F90 \
+	dtatem.F90 \
+	flx_oce.F90 \
+	flxmod.F90 \
+	flxrnf.F90 \
+	ice_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	oce.F90 \
+	ocfzpt.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	taumod.F90 \
+	tradmp.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(flxrnf.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(ocesbc.o) \
+	dom_oce.F90 \
+	flxrnf.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	oce.F90 \
+	ocesbc.F90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	closea.F90
+$(MODEL_LIB)(cpl.o) :	\
+	$(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) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_print.f90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	$(MODEL_LIB)(cpl_oce.o) \
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(flx_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(ocfzpt.o) \
+	$(MODEL_LIB)(phycst.o) \
+	cpl_oce.F90 \
+	daymod.F90 \
+	dom_oce.F90 \
+	flx_oce.F90 \
+	in_out_manager.F90 \
+	oce.F90 \
+	ocfzpt.F90 \
+	phycst.F90 \
+	../../../lib/libioipsl.a \
+	cpl.F90
+$(MODEL_LIB)(cpl_oce.o) :	\
+	$(MODEL_LIB)(par_kind.o) \
+	par_kind.F90 \
+	$(MODEL_LIB)(par_oce.o) \
+	par_oce.F90 \
+	cpl_oce.F90
+$(MODEL_LIB)(daymod.o) :	\
+	$(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) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	daymod.F90
+$(MODEL_LIB)(diadimg.o) :	\
+	$(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) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_print.f90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(oce.o) \
+	daymod.F90 \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	oce.F90 \
+	domzgr_substitute.h90 \
+	KEY_CPP \
+	diadimg.F90
+$(MODEL_LIB)(diafwb.o) :	\
 	$(MODEL_LIB)(albedo.o) \
 	$(MODEL_LIB)(blk_oce.o) \
@@ -463,67 +892,10 @@
 	$(MODEL_LIB)(daymod.o) \
 	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(flx_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(ocfzpt.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	blk_oce.F90 \
-	dom_oce.F90 \
-	flxblk.F90 \
-	flx_oce.F90 \
-	ice_oce.F90 \
-	in_out_manager.F90 \
-	oce.F90 \
-	ocfzpt.F90 \
-	phycst.F90 \
-	taumod.F90 \
-	$(MODEL_LIB)(blk_oce.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(flxblk.o) \
-	$(MODEL_LIB)(flx_oce.o) \
-	$(MODEL_LIB)(ice_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(ocfzpt.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(taumod.o) \
-	bulk.F90
-$(MODEL_LIB)(cla.o) :	\
-	blk_oce.F90 \
-	cpl_oce.F90 \
-	daymod.F90 \
-	dom_oce.F90 \
-	dtasal.F90 \
-	dtasst.F90 \
-	dtatem.F90 \
-	flxmod.F90 \
-	flxrnf.F90 \
-	flx_oce.F90 \
-	ice_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	oce.F90 \
-	ocfzpt.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.F90 \
-	taumod.F90 \
-	tradmp.F90 \
-	$(MODEL_LIB)(blk_oce.o) \
-	$(MODEL_LIB)(cpl_oce.o) \
-	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(dtasal.o) \
 	$(MODEL_LIB)(dtasst.o) \
 	$(MODEL_LIB)(dtatem.o) \
+	$(MODEL_LIB)(flx_oce.o) \
 	$(MODEL_LIB)(flxmod.o) \
 	$(MODEL_LIB)(flxrnf.o) \
-	$(MODEL_LIB)(flx_oce.o) \
 	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
@@ -536,317 +908,7 @@
 	$(MODEL_LIB)(par_oce.o) \
 	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(taumod.o) \
 	$(MODEL_LIB)(tradmp.o) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	ocesbc.F90 \
-	oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(ocesbc.o) \
-	$(MODEL_LIB)(oce.o) \
-	domzgr_substitute.h90 \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	cla.F90
-$(MODEL_LIB)(cla_div.o) :	\
-	blk_oce.F90 \
-	cpl_oce.F90 \
-	daymod.F90 \
-	dom_oce.F90 \
-	dtasal.F90 \
-	dtasst.F90 \
-	dtatem.F90 \
-	flxmod.F90 \
-	flxrnf.F90 \
-	flx_oce.F90 \
-	ice_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	oce.F90 \
-	ocfzpt.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.F90 \
-	taumod.F90 \
-	tradmp.F90 \
-	$(MODEL_LIB)(blk_oce.o) \
-	$(MODEL_LIB)(cpl_oce.o) \
-	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dtasal.o) \
-	$(MODEL_LIB)(dtasst.o) \
-	$(MODEL_LIB)(dtatem.o) \
-	$(MODEL_LIB)(flxmod.o) \
-	$(MODEL_LIB)(flxrnf.o) \
-	$(MODEL_LIB)(flx_oce.o) \
-	$(MODEL_LIB)(ice_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)(ocfzpt.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(taumod.o) \
-	$(MODEL_LIB)(tradmp.o) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	ocesbc.F90 \
-	oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(ocesbc.o) \
-	$(MODEL_LIB)(oce.o) \
-	domzgr_substitute.h90 \
-	KEY_CPP \
-	cla_div.F90
-$(MODEL_LIB)(cla_dynspg.o) :	\
-	blk_oce.F90 \
-	cpl_oce.F90 \
-	daymod.F90 \
-	dom_oce.F90 \
-	dtasal.F90 \
-	dtasst.F90 \
-	dtatem.F90 \
-	flxmod.F90 \
-	flxrnf.F90 \
-	flx_oce.F90 \
-	ice_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	obccli.F90 \
-	obc_oce.F90 \
-	obc_par.F90 \
-	ocesbc.F90 \
-	oce.F90 \
-	ocfzpt.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.F90 \
-	sol_oce.F90 \
-	taumod.F90 \
-	tradmp.F90 \
-	zdf_oce.F90 \
-	$(MODEL_LIB)(blk_oce.o) \
-	$(MODEL_LIB)(cpl_oce.o) \
-	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dtasal.o) \
-	$(MODEL_LIB)(dtasst.o) \
-	$(MODEL_LIB)(dtatem.o) \
-	$(MODEL_LIB)(flxmod.o) \
-	$(MODEL_LIB)(flxrnf.o) \
-	$(MODEL_LIB)(flx_oce.o) \
-	$(MODEL_LIB)(ice_oce.o) \
-	$(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)(obc_oce.o) \
-	$(MODEL_LIB)(obc_par.o) \
-	$(MODEL_LIB)(ocesbc.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(ocfzpt.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(sol_oce.o) \
-	$(MODEL_LIB)(taumod.o) \
-	$(MODEL_LIB)(tradmp.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	dom_oce.F90 \
-	flxrnf.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	obcdyn.F90 \
-	obcvol.F90 \
-	obc_oce.F90 \
-	ocesbc.F90 \
-	oce.F90 \
-	phycst.F90 \
-	solfet.F90 \
-	solpcg.F90 \
-	solsor.F90 \
-	sol_oce.F90 \
-	zdf_oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(flxrnf.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(obcdyn.o) \
-	$(MODEL_LIB)(obcvol.o) \
-	$(MODEL_LIB)(obc_oce.o) \
-	$(MODEL_LIB)(ocesbc.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(solfet.o) \
-	$(MODEL_LIB)(solpcg.o) \
-	$(MODEL_LIB)(solsor.o) \
-	$(MODEL_LIB)(sol_oce.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	domzgr_substitute.h90 \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	cla_dynspg.F90
-$(MODEL_LIB)(closea.o) :	\
-	blk_oce.F90 \
-	cpl_oce.F90 \
-	daymod.F90 \
-	dom_oce.F90 \
-	dtasal.F90 \
-	dtasst.F90 \
-	dtatem.F90 \
-	flxmod.F90 \
-	flxrnf.F90 \
-	flx_oce.F90 \
-	ice_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	oce.F90 \
-	ocfzpt.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.F90 \
-	taumod.F90 \
-	tradmp.F90 \
-	$(MODEL_LIB)(blk_oce.o) \
-	$(MODEL_LIB)(cpl_oce.o) \
-	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dtasal.o) \
-	$(MODEL_LIB)(dtasst.o) \
-	$(MODEL_LIB)(dtatem.o) \
-	$(MODEL_LIB)(flxmod.o) \
-	$(MODEL_LIB)(flxrnf.o) \
-	$(MODEL_LIB)(flx_oce.o) \
-	$(MODEL_LIB)(ice_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)(ocfzpt.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(taumod.o) \
-	$(MODEL_LIB)(tradmp.o) \
-	dom_oce.F90 \
-	flxrnf.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	ocesbc.F90 \
-	oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(flxrnf.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(ocesbc.o) \
-	$(MODEL_LIB)(oce.o) \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	closea.F90
-$(MODEL_LIB)(cpl.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_print.f90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.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) \
-	$(MODEL_LIB)(phycst.o) \
-	cpl_oce.F90 \
-	daymod.F90 \
-	dom_oce.F90 \
-	flx_oce.F90 \
-	in_out_manager.F90 \
-	oce.F90 \
-	ocfzpt.F90 \
-	phycst.F90 \
-	$(MODEL_LIB)(cpl_oce.o) \
-	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(flx_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(ocfzpt.o) \
-	$(MODEL_LIB)(phycst.o) \
-	../../../lib/libioipsl.a \
-	cpl.F90
-$(MODEL_LIB)(cpl_oce.o) :	\
-	par_kind.F90 \
-	$(MODEL_LIB)(par_kind.o) \
-	par_oce.F90 \
-	$(MODEL_LIB)(par_oce.o) \
-	cpl_oce.F90
-$(MODEL_LIB)(daymod.o) :	\
-	in_out_manager.F90 \
-	lib_print.f90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	phycst.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(phycst.o) \
-	daymod.F90
-$(MODEL_LIB)(diadimg.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_print.f90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.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) \
-	$(MODEL_LIB)(phycst.o) \
-	daymod.F90 \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	oce.F90 \
-	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(oce.o) \
-	domzgr_substitute.h90 \
-	KEY_CPP \
-	diadimg.F90
-$(MODEL_LIB)(diafwb.o) :	\
 	albedo.F90 \
 	blk_oce.F90 \
@@ -857,7 +919,7 @@
 	dtasst.F90 \
 	dtatem.F90 \
+	flx_oce.F90 \
 	flxmod.F90 \
 	flxrnf.F90 \
-	flx_oce.F90 \
 	ice_oce.F90 \
 	in_out_manager.F90 \
@@ -870,7 +932,213 @@
 	par_oce.F90 \
 	phycst.F90 \
+	prtctl.f90 \
 	taumod.F90 \
 	tradmp.F90 \
-	$(MODEL_LIB)(albedo.o) \
+	$(MODEL_LIB)(blk_oce.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(flxblk.o) \
+	$(MODEL_LIB)(flxrnf.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(ocesbc.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	blk_oce.F90 \
+	dom_oce.F90 \
+	flxblk.F90 \
+	flxrnf.F90 \
+	in_out_manager.F90 \
+	lib_mpp.F90 \
+	oce.F90 \
+	ocesbc.F90 \
+	phycst.F90 \
+	zdf_oce.F90 \
+	domzgr_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	diafwb.F90
+$(MODEL_LIB)(diagap.o) :	\
+	$(MODEL_LIB)(daymod.o) \
+	$(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) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	daymod.F90 \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_print.f90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(dianam.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dtasal.o) \
+	$(MODEL_LIB)(dtatem.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(oce.o) \
+	daymod.F90 \
+	dianam.F90 \
+	dom_oce.F90 \
+	dtasal.F90 \
+	dtatem.F90 \
+	in_out_manager.F90 \
+	lib_mpp.F90 \
+	oce.F90 \
+	domzgr_substitute.h90 \
+	../../../lib/libioipsl.a \
+	KEY_CPP \
+	diagap.F90
+$(MODEL_LIB)(diahdy.o) :	\
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	in_out_manager.F90 \
+	lib_print.f90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	oce.F90 \
+	phycst.F90 \
+	domzgr_substitute.h90 \
+	KEY_CPP \
+	diahdy.F90
+$(MODEL_LIB)(diahth.o) :	\
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	in_out_manager.F90 \
+	lib_print.f90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	oce.F90 \
+	phycst.F90 \
+	domzgr_substitute.h90 \
+	KEY_CPP \
+	diahth.F90
+$(MODEL_LIB)(dianam.o) :	\
+	$(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) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_print.f90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(phycst.o) \
+	daymod.F90 \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	phycst.F90 \
+	dianam.F90
+$(MODEL_LIB)(diaptr.o) :	\
+	$(MODEL_LIB)(daymod.o) \
+	$(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) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	daymod.F90 \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_print.f90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(dianam.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(ldftra_oce.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	daymod.F90 \
+	dianam.F90 \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	ldftra_oce.F90 \
+	lib_mpp.F90 \
+	oce.F90 \
+	phycst.F90 \
+	domzgr_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	../../../lib/libioipsl.a \
+	KEY_CPP \
+	diaptr.F90
+$(MODEL_LIB)(diaspr.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) \
+	$(MODEL_LIB)(sol_oce.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	sol_oce.F90 \
+	zdf_oce.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)(sol_oce.o) \
+	$(MODEL_LIB)(solfet.o) \
+	$(MODEL_LIB)(solpcg.o) \
+	$(MODEL_LIB)(solsor.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_mpp.F90 \
+	oce.F90 \
+	phycst.F90 \
+	sol_oce.F90 \
+	solfet.F90 \
+	solpcg.F90 \
+	solsor.F90 \
+	diaspr.F90
+$(MODEL_LIB)(diawri.o) :	\
 	$(MODEL_LIB)(blk_oce.o) \
 	$(MODEL_LIB)(cpl_oce.o) \
@@ -880,7 +1148,7 @@
 	$(MODEL_LIB)(dtasst.o) \
 	$(MODEL_LIB)(dtatem.o) \
+	$(MODEL_LIB)(flx_oce.o) \
 	$(MODEL_LIB)(flxmod.o) \
 	$(MODEL_LIB)(flxrnf.o) \
-	$(MODEL_LIB)(flx_oce.o) \
 	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
@@ -893,281 +1161,39 @@
 	$(MODEL_LIB)(par_oce.o) \
 	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(sol_oce.o) \
+	$(MODEL_LIB)(solfet.o) \
+	$(MODEL_LIB)(solpcg.o) \
+	$(MODEL_LIB)(solsor.o) \
 	$(MODEL_LIB)(taumod.o) \
 	$(MODEL_LIB)(tradmp.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
 	blk_oce.F90 \
-	dom_oce.F90 \
-	flxblk.F90 \
+	cpl_oce.F90 \
+	daymod.F90 \
+	dom_oce.F90 \
+	dtasal.F90 \
+	dtasst.F90 \
+	dtatem.F90 \
+	flx_oce.F90 \
+	flxmod.F90 \
 	flxrnf.F90 \
-	in_out_manager.F90 \
-	lib_mpp.F90 \
-	ocesbc.F90 \
-	oce.F90 \
-	phycst.F90 \
-	zdf_oce.F90 \
-	$(MODEL_LIB)(blk_oce.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(flxblk.o) \
-	$(MODEL_LIB)(flxrnf.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(ocesbc.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	domzgr_substitute.h90 \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	diafwb.F90
-$(MODEL_LIB)(diagap.o) :	\
-	daymod.F90 \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_print.f90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.F90 \
-	$(MODEL_LIB)(daymod.o) \
-	$(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) \
-	$(MODEL_LIB)(phycst.o) \
-	daymod.F90 \
-	dianam.F90 \
-	dom_oce.F90 \
-	dtasal.F90 \
-	dtatem.F90 \
-	in_out_manager.F90 \
-	lib_mpp.F90 \
-	oce.F90 \
-	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(dianam.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dtasal.o) \
-	$(MODEL_LIB)(dtatem.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(oce.o) \
-	domzgr_substitute.h90 \
-	../../../lib/libioipsl.a \
-	KEY_CPP \
-	diagap.F90
-$(MODEL_LIB)(diahdy.o) :	\
-	in_out_manager.F90 \
-	lib_print.f90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	oce.F90 \
-	phycst.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	domzgr_substitute.h90 \
-	KEY_CPP \
-	diahdy.F90
-$(MODEL_LIB)(diahth.o) :	\
-	in_out_manager.F90 \
-	lib_print.f90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	oce.F90 \
-	phycst.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	domzgr_substitute.h90 \
-	KEY_CPP \
-	diahth.F90
-$(MODEL_LIB)(dianam.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_print.f90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.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) \
-	$(MODEL_LIB)(phycst.o) \
-	daymod.F90 \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	phycst.F90 \
-	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(phycst.o) \
-	dianam.F90
-$(MODEL_LIB)(diaptr.o) :	\
-	daymod.F90 \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_print.f90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.F90 \
-	$(MODEL_LIB)(daymod.o) \
-	$(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) \
-	$(MODEL_LIB)(phycst.o) \
-	daymod.F90 \
-	dianam.F90 \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	ldftra_oce.F90 \
-	lib_mpp.F90 \
-	oce.F90 \
-	phycst.F90 \
-	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(dianam.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(ldftra_oce.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	domzgr_substitute.h90 \
-	vectopt_loop_substitute.h90 \
-	../../../lib/libioipsl.a \
-	KEY_CPP \
-	diaptr.F90
-$(MODEL_LIB)(diaspr.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
+	ice_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	oce.F90 \
+	ocfzpt.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
 	sol_oce.F90 \
-	zdf_oce.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) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_mpp.F90 \
-	oce.F90 \
-	phycst.F90 \
 	solfet.F90 \
 	solpcg.F90 \
 	solsor.F90 \
-	sol_oce.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)(solpcg.o) \
-	$(MODEL_LIB)(solsor.o) \
-	$(MODEL_LIB)(sol_oce.o) \
-	diaspr.F90
-$(MODEL_LIB)(diawri.o) :	\
-	blk_oce.F90 \
-	cpl_oce.F90 \
-	daymod.F90 \
-	dom_oce.F90 \
-	dtasal.F90 \
-	dtasst.F90 \
-	dtatem.F90 \
-	flxmod.F90 \
-	flxrnf.F90 \
-	flx_oce.F90 \
-	ice_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	oce.F90 \
-	ocfzpt.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.F90 \
-	solfet.F90 \
-	solpcg.F90 \
-	solsor.F90 \
-	sol_oce.F90 \
 	taumod.F90 \
 	tradmp.F90 \
-	zdf_oce.F90 \
-	$(MODEL_LIB)(blk_oce.o) \
-	$(MODEL_LIB)(cpl_oce.o) \
-	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dtasal.o) \
-	$(MODEL_LIB)(dtasst.o) \
-	$(MODEL_LIB)(dtatem.o) \
-	$(MODEL_LIB)(flxmod.o) \
-	$(MODEL_LIB)(flxrnf.o) \
-	$(MODEL_LIB)(flx_oce.o) \
-	$(MODEL_LIB)(ice_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)(ocfzpt.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(solfet.o) \
-	$(MODEL_LIB)(solpcg.o) \
-	$(MODEL_LIB)(solsor.o) \
-	$(MODEL_LIB)(sol_oce.o) \
-	$(MODEL_LIB)(taumod.o) \
-	$(MODEL_LIB)(tradmp.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	daymod.F90 \
-	diadimg.F90 \
-	diahth.F90 \
-	dianam.F90 \
-	diaspr.F90 \
-	dom_oce.F90 \
-	flxrnf.F90 \
-	flx_oce.F90 \
-	ice_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	ldfdyn_oce.F90 \
-	ldftra_oce.F90 \
-	ocesbc.F90 \
-	oce.F90 \
-	ocfzpt.F90 \
-	phycst.F90 \
-	sol_oce.F90 \
-	taumod.F90 \
-	zdfddm.F90 \
-	zdfmxl.F90 \
 	zdf_oce.F90 \
 	$(MODEL_LIB)(daymod.o) \
@@ -1177,6 +1203,6 @@
 	$(MODEL_LIB)(diaspr.o) \
 	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(flx_oce.o) \
 	$(MODEL_LIB)(flxrnf.o) \
-	$(MODEL_LIB)(flx_oce.o) \
 	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
@@ -1184,17 +1210,39 @@
 	$(MODEL_LIB)(ldfdyn_oce.o) \
 	$(MODEL_LIB)(ldftra_oce.o) \
+	$(MODEL_LIB)(oce.o) \
 	$(MODEL_LIB)(ocesbc.o) \
-	$(MODEL_LIB)(oce.o) \
 	$(MODEL_LIB)(ocfzpt.o) \
 	$(MODEL_LIB)(phycst.o) \
 	$(MODEL_LIB)(sol_oce.o) \
 	$(MODEL_LIB)(taumod.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
 	$(MODEL_LIB)(zdfddm.o) \
 	$(MODEL_LIB)(zdfmxl.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
+	daymod.F90 \
+	diadimg.F90 \
+	diahth.F90 \
+	dianam.F90 \
+	diaspr.F90 \
+	dom_oce.F90 \
+	flx_oce.F90 \
+	flxrnf.F90 \
+	ice_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	ldfdyn_oce.F90 \
+	ldftra_oce.F90 \
+	oce.F90 \
+	ocesbc.F90 \
+	ocfzpt.F90 \
+	phycst.F90 \
+	sol_oce.F90 \
+	taumod.F90 \
+	zdf_oce.F90 \
+	zdfddm.F90 \
+	zdfmxl.F90 \
+	$(MODEL_LIB)(dtasst.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
 	dtasst.F90 \
 	lib_mpp.F90 \
-	$(MODEL_LIB)(dtasst.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
 	diawri_dimg.h90 \
 	zdfddm_substitute.h90 \
@@ -1202,5 +1250,132 @@
 	KEY_CPP \
 	diawri.F90
+$(MODEL_LIB)(diawri1d.o) :	\
+	$(MODEL_LIB)(blk_oce.o) \
+	$(MODEL_LIB)(cpl_oce.o) \
+	$(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)(dtasal.o) \
+	$(MODEL_LIB)(dtasst.o) \
+	$(MODEL_LIB)(dtatem.o) \
+	$(MODEL_LIB)(dynzdf_exp.o) \
+	$(MODEL_LIB)(eosbn2.o) \
+	$(MODEL_LIB)(flx_oce.o) \
+	$(MODEL_LIB)(flxmod.o) \
+	$(MODEL_LIB)(flxrnf.o) \
+	$(MODEL_LIB)(ice_oce.o) \
+	$(MODEL_LIB)(in_out_manager.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)(oce.o) \
+	$(MODEL_LIB)(ocesbc.o) \
+	$(MODEL_LIB)(ocfzpt.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(sol_oce.o) \
+	$(MODEL_LIB)(taumod.o) \
+	$(MODEL_LIB)(tradmp.o) \
+	$(MODEL_LIB)(trazdf_exp.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
+	$(MODEL_LIB)(zdfmxl.o) \
+	blk_oce.F90 \
+	cpl_oce.F90 \
+	daymod.F90 \
+	diadimg.F90 \
+	diahth.F90 \
+	dianam.F90 \
+	diaspr.F90 \
+	dom_oce.F90 \
+	dtasal.F90 \
+	dtasst.F90 \
+	dtatem.F90 \
+	dynzdf_exp.F90 \
+	eosbn2.F90 \
+	flx_oce.F90 \
+	flxmod.F90 \
+	flxrnf.F90 \
+	ice_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	ldfdyn_oce.F90 \
+	ldftra_oce.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	oce.F90 \
+	ocesbc.F90 \
+	ocfzpt.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	sol_oce.F90 \
+	taumod.F90 \
+	tradmp.F90 \
+	trazdf_exp.F90 \
+	zdf_oce.F90 \
+	zdfddm.F90 \
+	zdfmxl.F90 \
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(diahth.o) \
+	$(MODEL_LIB)(dianam.o) \
+	$(MODEL_LIB)(diawri.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(flxrnf.o) \
+	$(MODEL_LIB)(ice_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(ocesbc.o) \
+	$(MODEL_LIB)(ocfzpt.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(sol_oce.o) \
+	$(MODEL_LIB)(taumod.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
+	$(MODEL_LIB)(zdfkpp.o) \
+	$(MODEL_LIB)(zdfmxl.o) \
+	$(MODEL_LIB)(zdftke.o) \
+	daymod.F90 \
+	diahth.F90 \
+	dianam.F90 \
+	diawri.F90 \
+	dom_oce.F90 \
+	flxrnf.F90 \
+	ice_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	oce.F90 \
+	ocesbc.F90 \
+	ocfzpt.F90 \
+	phycst.F90 \
+	sol_oce.F90 \
+	taumod.F90 \
+	zdf_oce.F90 \
+	zdfddm.F90 \
+	zdfkpp.F90 \
+	zdfmxl.F90 \
+	zdftke.F90 \
+	zdfddm_substitute.h90 \
+	../../../lib/libioipsl.a \
+	KEY_CPP \
+	diawri1d.F90
 $(MODEL_LIB)(divcur.o) :	\
+	$(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) \
 	dom_oce.F90 \
 	in_out_manager.F90 \
@@ -1213,10 +1388,7 @@
 	$(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) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(obc_oce.o) \
+	$(MODEL_LIB)(oce.o) \
 	dom_oce.F90 \
 	in_out_manager.F90 \
@@ -1224,14 +1396,41 @@
 	obc_oce.F90 \
 	oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(obc_oce.o) \
-	$(MODEL_LIB)(oce.o) \
 	domzgr_substitute.h90 \
 	vectopt_loop_substitute.h90 \
 	KEY_CPP \
 	divcur.F90
+$(MODEL_LIB)(dom_ice.o) :	\
+	$(MODEL_LIB)(par_oce.o) \
+	par_oce.F90 \
+	$(MODEL_LIB)(par_ice.o) \
+	par_ice.F90 \
+	dom_ice.F90
+$(MODEL_LIB)(dom_oce.o) :	\
+	$(MODEL_LIB)(par_kind.o) \
+	par_kind.F90 \
+	$(MODEL_LIB)(par_oce.o) \
+	par_oce.F90 \
+	dom_oce.F90
 $(MODEL_LIB)(domain.o) :	\
+	$(MODEL_LIB)(blk_oce.o) \
+	$(MODEL_LIB)(closea.o) \
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dynspg_fsc.o) \
+	$(MODEL_LIB)(dynspg_fsc_atsk.o) \
+	$(MODEL_LIB)(flxrnf.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(ini1d.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)(ocesbc.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(solisl.o) \
 	blk_oce.F90 \
 	closea.F90 \
@@ -1242,13 +1441,15 @@
 	flxrnf.F90 \
 	in_out_manager.F90 \
+	ini1d.F90 \
 	lbclnk.F90 \
 	lib_mpp.F90 \
 	lib_print.f90 \
 	obc_oce.F90 \
+	oce.F90 \
 	ocesbc.F90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
 	solisl.F90 \
 	$(MODEL_LIB)(blk_oce.o) \
@@ -1256,21 +1457,19 @@
 	$(MODEL_LIB)(daymod.o) \
 	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dynspg_fsc.o) \
-	$(MODEL_LIB)(dynspg_fsc_atsk.o) \
+	$(MODEL_LIB)(domhgr.o) \
+	$(MODEL_LIB)(dommsk.o) \
+	$(MODEL_LIB)(domstp.o) \
+	$(MODEL_LIB)(domwri.o) \
+	$(MODEL_LIB)(domzgr.o) \
 	$(MODEL_LIB)(flxrnf.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(obc_oce.o) \
-	$(MODEL_LIB)(ocesbc.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(solisl.o) \
+	$(MODEL_LIB)(ice_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
 	blk_oce.F90 \
 	closea.F90 \
 	daymod.F90 \
+	dom_oce.F90 \
 	domhgr.F90 \
 	dommsk.F90 \
@@ -1278,5 +1477,4 @@
 	domwri.F90 \
 	domzgr.F90 \
-	dom_oce.F90 \
 	flxrnf.F90 \
 	ice_oce.F90 \
@@ -1285,19 +1483,4 @@
 	oce.F90 \
 	phycst.F90 \
-	$(MODEL_LIB)(blk_oce.o) \
-	$(MODEL_LIB)(closea.o) \
-	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(domhgr.o) \
-	$(MODEL_LIB)(dommsk.o) \
-	$(MODEL_LIB)(domstp.o) \
-	$(MODEL_LIB)(domwri.o) \
-	$(MODEL_LIB)(domzgr.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(flxrnf.o) \
-	$(MODEL_LIB)(ice_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
 	domzgr_substitute.h90 \
 	../../../lib/libioipsl.a \
@@ -1305,4 +1488,16 @@
 	domain.F90
 $(MODEL_LIB)(domcfg.o) :	\
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.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)(sol_oce.o) \
+	$(MODEL_LIB)(solfet.o) \
+	$(MODEL_LIB)(solpcg.o) \
+	$(MODEL_LIB)(solsor.o) \
 	dom_oce.F90 \
 	in_out_manager.F90 \
@@ -1313,49 +1508,61 @@
 	par_kind.F90 \
 	par_oce.F90 \
+	sol_oce.F90 \
 	solfet.F90 \
 	solpcg.F90 \
 	solsor.F90 \
-	sol_oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(solisl.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_mpp.F90 \
+	phycst.F90 \
+	solisl.F90 \
+	domcfg.F90
+$(MODEL_LIB)(domhgr.o) :	\
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	in_out_manager.F90 \
+	lib_print.f90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(phycst.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	phycst.F90 \
+	../../../lib/libioipsl.a \
+	domhgr.F90
+$(MODEL_LIB)(dommsk.o) :	\
+	$(MODEL_LIB)(cla_dynspg.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(flxrnf.o) \
+	$(MODEL_LIB)(in_out_manager.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)(obc_par.o) \
+	$(MODEL_LIB)(obcdyn.o) \
+	$(MODEL_LIB)(obcvol.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(ocesbc.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(sol_oce.o) \
 	$(MODEL_LIB)(solfet.o) \
 	$(MODEL_LIB)(solpcg.o) \
 	$(MODEL_LIB)(solsor.o) \
-	$(MODEL_LIB)(sol_oce.o) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_mpp.F90 \
-	phycst.F90 \
-	solisl.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) \
-	domcfg.F90
-$(MODEL_LIB)(domhgr.o) :	\
-	in_out_manager.F90 \
-	lib_print.f90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	phycst.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(phycst.o) \
-	../../../lib/libioipsl.a \
-	domhgr.F90
-$(MODEL_LIB)(dommsk.o) :	\
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
 	cla_dynspg.F90 \
 	dom_oce.F90 \
@@ -1365,21 +1572,78 @@
 	lib_mpp.F90 \
 	lib_print.f90 \
+	obc_oce.F90 \
+	obc_par.F90 \
 	obcdyn.F90 \
 	obcvol.F90 \
-	obc_oce.F90 \
-	obc_par.F90 \
+	oce.F90 \
 	ocesbc.F90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	sol_oce.F90 \
 	solfet.F90 \
 	solpcg.F90 \
 	solsor.F90 \
-	sol_oce.F90 \
 	trdmod.F90 \
 	trdmod_oce.F90 \
 	zdf_oce.F90 \
-	$(MODEL_LIB)(cla_dynspg.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dynspg_fsc.o) \
+	$(MODEL_LIB)(dynspg_fsc_atsk.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) \
+	dom_oce.F90 \
+	dynspg_fsc.F90 \
+	dynspg_fsc_atsk.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	obc_oce.F90 \
+	oce.F90 \
+	solisl.F90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	dommsk.F90
+$(MODEL_LIB)(domstp.o) :	\
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	lib_print.f90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(oce.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	oce.F90 \
+	domzgr_substitute.h90 \
+	KEY_CPP \
+	domstp.F90
+$(MODEL_LIB)(domwri.o) :	\
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	lib_print.f90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	daymod.F90 \
+	lib_mpp.F90 \
+	domwri_dimg.h90 \
+	../../../lib/libioipsl.a \
+	KEY_CPP \
+	domwri.F90
+$(MODEL_LIB)(domzgr.o) :	\
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(flxrnf.o) \
@@ -1388,123 +1652,48 @@
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(obcdyn.o) \
-	$(MODEL_LIB)(obcvol.o) \
 	$(MODEL_LIB)(obc_oce.o) \
-	$(MODEL_LIB)(obc_par.o) \
+	$(MODEL_LIB)(oce.o) \
 	$(MODEL_LIB)(ocesbc.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(sol_oce.o) \
 	$(MODEL_LIB)(solfet.o) \
 	$(MODEL_LIB)(solpcg.o) \
 	$(MODEL_LIB)(solsor.o) \
-	$(MODEL_LIB)(sol_oce.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	dom_oce.F90 \
-	dynspg_fsc.F90 \
-	dynspg_fsc_atsk.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
+	dom_oce.F90 \
+	flxrnf.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
 	obc_oce.F90 \
 	oce.F90 \
-	solisl.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dynspg_fsc.o) \
-	$(MODEL_LIB)(dynspg_fsc_atsk.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) \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	dommsk.F90
-$(MODEL_LIB)(domstp.o) :	\
-	lib_print.f90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(oce.o) \
-	domzgr_substitute.h90 \
-	KEY_CPP \
-	domstp.F90
-$(MODEL_LIB)(domwri.o) :	\
-	lib_print.f90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	daymod.F90 \
-	lib_mpp.F90 \
-	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	domwri_dimg.h90 \
-	../../../lib/libioipsl.a \
-	KEY_CPP \
-	domwri.F90
-$(MODEL_LIB)(domzgr.o) :	\
-	dom_oce.F90 \
-	flxrnf.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	obc_oce.F90 \
 	ocesbc.F90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	sol_oce.F90 \
 	solfet.F90 \
 	solpcg.F90 \
 	solsor.F90 \
-	sol_oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(flxrnf.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(obc_oce.o) \
-	$(MODEL_LIB)(ocesbc.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(solfet.o) \
-	$(MODEL_LIB)(solpcg.o) \
-	$(MODEL_LIB)(solsor.o) \
-	$(MODEL_LIB)(sol_oce.o) \
+	$(MODEL_LIB)(closea.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(ini1d.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(solisl.o) \
 	closea.F90 \
 	dom_oce.F90 \
 	in_out_manager.F90 \
+	ini1d.F90 \
 	lbclnk.F90 \
 	lib_mpp.F90 \
 	oce.F90 \
 	solisl.F90 \
-	$(MODEL_LIB)(closea.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) \
-	$(MODEL_LIB)(solisl.o) \
+	domzgr_s.h90 \
 	domzgr_substitute.h90 \
-	domzgr_s.h90 \
 	domzgr_zps.h90 \
 	vectopt_loop_substitute.h90 \
@@ -1512,37 +1701,27 @@
 	KEY_CPP \
 	domzgr.F90
-$(MODEL_LIB)(dom_ice.o) :	\
-	par_oce.F90 \
-	$(MODEL_LIB)(par_oce.o) \
-	par_ice.F90 \
-	$(MODEL_LIB)(par_ice.o) \
-	dom_ice.F90
-$(MODEL_LIB)(dom_oce.o) :	\
-	par_kind.F90 \
-	$(MODEL_LIB)(par_kind.o) \
-	par_oce.F90 \
-	$(MODEL_LIB)(par_oce.o) \
-	dom_oce.F90
 $(MODEL_LIB)(dtasal.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_print.f90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.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) \
-	$(MODEL_LIB)(phycst.o) \
+	$(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) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_print.f90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(oce.o) \
 	daymod.F90 \
 	dom_oce.F90 \
 	in_out_manager.F90 \
 	oce.F90 \
-	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(oce.o) \
 	domzgr_substitute.h90 \
 	../../../lib/libioipsl.a \
@@ -1550,18 +1729,25 @@
 	dtasal.F90
 $(MODEL_LIB)(dtasst.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_print.f90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.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) \
-	$(MODEL_LIB)(phycst.o) \
+	$(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) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_print.f90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(ocfzpt.o) \
 	daymod.F90 \
 	dom_oce.F90 \
@@ -1569,39 +1755,72 @@
 	oce.F90 \
 	ocfzpt.F90 \
-	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(ocfzpt.o) \
 	../../../lib/libioipsl.a \
 	dtasst.F90
 $(MODEL_LIB)(dtatem.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_print.f90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.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) \
-	$(MODEL_LIB)(phycst.o) \
+	$(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) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_print.f90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(oce.o) \
 	daymod.F90 \
 	dom_oce.F90 \
 	in_out_manager.F90 \
 	oce.F90 \
-	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(oce.o) \
 	domzgr_substitute.h90 \
 	../../../lib/libioipsl.a \
 	KEY_CPP \
 	dtatem.F90
+$(MODEL_LIB)(dyncor1d.o) :	\
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	in_out_manager.F90 \
+	lib_print.f90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	oce.F90 \
+	phycst.F90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	dyncor1d.F90
 $(MODEL_LIB)(dynhpg.o) :	\
-	dom_oce.F90 \
-	in_out_manager.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) \
+	$(MODEL_LIB)(trabbl.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) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_mpp.F90 \
 	lib_print.f90 \
 	oce.F90 \
@@ -1618,4 +1837,24 @@
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
+	domzgr_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	dynhpg.F90
+$(MODEL_LIB)(dynhpg_atsk.o) :	\
+	$(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) \
@@ -1632,21 +1871,5 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
-	oce.F90 \
-	phycst.F90 \
-	trdmod.F90 \
-	trdmod_oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	domzgr_substitute.h90 \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	dynhpg.F90
-$(MODEL_LIB)(dynhpg_atsk.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
+	lib_mpp.F90 \
 	lib_print.f90 \
 	oce.F90 \
@@ -1663,4 +1886,24 @@
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
+	domzgr_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	dynhpg_atsk.F90
+$(MODEL_LIB)(dynkeg.o) :	\
+	$(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) \
@@ -1677,21 +1920,5 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
-	oce.F90 \
-	phycst.F90 \
-	trdmod.F90 \
-	trdmod_oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	domzgr_substitute.h90 \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	dynhpg_atsk.F90
-$(MODEL_LIB)(dynkeg.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
+	lib_mpp.F90 \
 	lib_print.f90 \
 	oce.F90 \
@@ -1708,4 +1935,21 @@
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	oce.F90 \
+	prtctl.f90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	dynkeg.F90
+$(MODEL_LIB)(dynldf_bilap.o) :	\
+	$(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) \
@@ -1722,16 +1966,60 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
-	oce.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	trabbl.F90 \
+	trdicp.F90 \
+	trdicp_oce.F90 \
+	trdmld.F90 \
+	trdmld_oce.F90 \
+	trdmod_oce.F90 \
+	trdvor.F90 \
+	trdvor_oce.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(ldfdyn_oce.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	ldfdyn_oce.F90 \
+	oce.F90 \
+	prtctl.f90 \
 	trdmod.F90 \
 	trdmod_oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(trdmod.o) \
+	domzgr_substitute.h90 \
+	ldfdyn_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	dynldf_bilap.F90
+$(MODEL_LIB)(dynldf_bilapg.o) :	\
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.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)(oce.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(trabbl.o) \
+	$(MODEL_LIB)(trdicp.o) \
+	$(MODEL_LIB)(trdicp_oce.o) \
+	$(MODEL_LIB)(trdmld.o) \
+	$(MODEL_LIB)(trdmld_oce.o) \
 	$(MODEL_LIB)(trdmod_oce.o) \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	dynkeg.F90
-$(MODEL_LIB)(dynldf_bilapg.o) :	\
+	$(MODEL_LIB)(trdvor.o) \
+	$(MODEL_LIB)(trdvor_oce.o) \
+	$(MODEL_LIB)(zdfmxl.o) \
 	dom_oce.F90 \
 	in_out_manager.F90 \
@@ -1745,4 +2033,5 @@
 	par_oce.F90 \
 	phycst.F90 \
+	prtctl.f90 \
 	trabbl.F90 \
 	trdicp.F90 \
@@ -1758,4 +2047,29 @@
 	$(MODEL_LIB)(lbclnk.o) \
 	$(MODEL_LIB)(ldfdyn_oce.o) \
+	$(MODEL_LIB)(ldfslp.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	ldfdyn_oce.F90 \
+	ldfslp.F90 \
+	oce.F90 \
+	prtctl.f90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
+	zdf_oce.F90 \
+	domzgr_substitute.h90 \
+	ldfdyn_substitute.h90 \
+	KEY_CPP \
+	dynldf_bilapg.F90
+$(MODEL_LIB)(dynldf_iso.o) :	\
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(ldfdyn_oce.o) \
 	$(MODEL_LIB)(ldftra_oce.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
@@ -1765,4 +2079,5 @@
 	$(MODEL_LIB)(par_oce.o) \
 	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(trabbl.o) \
 	$(MODEL_LIB)(trdicp.o) \
@@ -1778,83 +2093,12 @@
 	lbclnk.F90 \
 	ldfdyn_oce.F90 \
-	ldfslp.F90 \
-	oce.F90 \
-	trdmod.F90 \
-	trdmod_oce.F90 \
-	zdf_oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(ldfdyn_oce.o) \
-	$(MODEL_LIB)(ldfslp.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	domzgr_substitute.h90 \
-	ldfdyn_substitute.h90 \
-	KEY_CPP \
-	dynldf_bilapg.F90
-$(MODEL_LIB)(dynldf_bilap.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	trabbl.F90 \
-	trdicp.F90 \
-	trdicp_oce.F90 \
-	trdmld.F90 \
-	trdmld_oce.F90 \
-	trdmod_oce.F90 \
-	trdvor.F90 \
-	trdvor_oce.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) \
-	$(MODEL_LIB)(trabbl.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) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	ldfdyn_oce.F90 \
-	oce.F90 \
-	trdmod.F90 \
-	trdmod_oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(ldfdyn_oce.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	domzgr_substitute.h90 \
-	ldfdyn_substitute.h90 \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	dynldf_bilap.F90
-$(MODEL_LIB)(dynldf_iso.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	ldfdyn_oce.F90 \
 	ldftra_oce.F90 \
-	lib_print.f90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
 	trabbl.F90 \
 	trdicp.F90 \
@@ -1868,12 +2112,40 @@
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(ldfdyn_oce.o) \
+	$(MODEL_LIB)(ldfslp.o) \
+	$(MODEL_LIB)(ldftra_oce.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	ldfdyn_oce.F90 \
+	ldfslp.F90 \
+	ldftra_oce.F90 \
+	oce.F90 \
+	prtctl.f90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
+	zdf_oce.F90 \
+	domzgr_substitute.h90 \
+	ldfdyn_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	dynldf_iso.F90
+$(MODEL_LIB)(dynldf_lap.o) :	\
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(lbclnk.o) \
 	$(MODEL_LIB)(ldfdyn_oce.o) \
 	$(MODEL_LIB)(ldftra_oce.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)(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)(trabbl.o) \
 	$(MODEL_LIB)(trdicp.o) \
@@ -1887,36 +2159,14 @@
 	dom_oce.F90 \
 	in_out_manager.F90 \
-	ldfdyn_oce.F90 \
-	ldfslp.F90 \
-	ldftra_oce.F90 \
-	oce.F90 \
-	trdmod.F90 \
-	trdmod_oce.F90 \
-	zdf_oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(ldfdyn_oce.o) \
-	$(MODEL_LIB)(ldfslp.o) \
-	$(MODEL_LIB)(ldftra_oce.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	domzgr_substitute.h90 \
-	ldfdyn_substitute.h90 \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	dynldf_iso.F90
-$(MODEL_LIB)(dynldf_lap.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
 	lbclnk.F90 \
 	ldfdyn_oce.F90 \
 	ldftra_oce.F90 \
-	lib_print.f90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
 	trabbl.F90 \
 	trdicp.F90 \
@@ -1930,13 +2180,120 @@
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
 	$(MODEL_LIB)(ldfdyn_oce.o) \
-	$(MODEL_LIB)(ldftra_oce.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)(ldfslp.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	ldfdyn_oce.F90 \
+	ldfslp.F90 \
+	oce.F90 \
+	prtctl.f90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
+	zdf_oce.F90 \
+	domzgr_substitute.h90 \
+	ldfdyn_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	dynldf_lap.F90
+$(MODEL_LIB)(dynnxt.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)(obc_oce.o) \
+	$(MODEL_LIB)(obccli.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	obc_oce.F90 \
+	obccli.F90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(obcdyn.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	obcdyn.F90 \
+	oce.F90 \
+	prtctl.f90 \
+	dynnxt.F90
+$(MODEL_LIB)(dynnxt1d.o) :	\
+	$(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) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(oce.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	oce.F90 \
+	dynnxt1d.F90
+$(MODEL_LIB)(dynspg_fsc.o) :	\
+	$(MODEL_LIB)(blk_oce.o) \
+	$(MODEL_LIB)(cpl_oce.o) \
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dtasal.o) \
+	$(MODEL_LIB)(dtasst.o) \
+	$(MODEL_LIB)(dtatem.o) \
+	$(MODEL_LIB)(flx_oce.o) \
+	$(MODEL_LIB)(flxmod.o) \
+	$(MODEL_LIB)(flxrnf.o) \
+	$(MODEL_LIB)(ice_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_oce.o) \
+	$(MODEL_LIB)(obc_par.o) \
+	$(MODEL_LIB)(obccli.o) \
+	$(MODEL_LIB)(obcdyn.o) \
+	$(MODEL_LIB)(obcvol.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(ocesbc.o) \
+	$(MODEL_LIB)(ocfzpt.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(sol_oce.o) \
+	$(MODEL_LIB)(solfet.o) \
+	$(MODEL_LIB)(solpcg.o) \
+	$(MODEL_LIB)(solsor.o) \
+	$(MODEL_LIB)(taumod.o) \
 	$(MODEL_LIB)(trabbl.o) \
+	$(MODEL_LIB)(tradmp.o) \
 	$(MODEL_LIB)(trdicp.o) \
 	$(MODEL_LIB)(trdicp_oce.o) \
@@ -1946,61 +2303,5 @@
 	$(MODEL_LIB)(trdvor.o) \
 	$(MODEL_LIB)(trdvor_oce.o) \
-	$(MODEL_LIB)(zdfmxl.o) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	ldfdyn_oce.F90 \
-	ldfslp.F90 \
-	oce.F90 \
-	trdmod.F90 \
-	trdmod_oce.F90 \
-	zdf_oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(ldfdyn_oce.o) \
-	$(MODEL_LIB)(ldfslp.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
-	domzgr_substitute.h90 \
-	ldfdyn_substitute.h90 \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	dynldf_lap.F90
-$(MODEL_LIB)(dynnxt.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	obccli.F90 \
-	obc_oce.F90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.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)(obccli.o) \
-	$(MODEL_LIB)(obc_oce.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	obcdyn.F90 \
-	oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(obcdyn.o) \
-	$(MODEL_LIB)(oce.o) \
-	dynnxt.F90
-$(MODEL_LIB)(dynspg_fsc.o) :	\
 	blk_oce.F90 \
 	cpl_oce.F90 \
@@ -2010,7 +2311,7 @@
 	dtasst.F90 \
 	dtatem.F90 \
+	flx_oce.F90 \
 	flxmod.F90 \
 	flxrnf.F90 \
-	flx_oce.F90 \
 	ice_oce.F90 \
 	in_out_manager.F90 \
@@ -2018,19 +2319,20 @@
 	lib_mpp.F90 \
 	lib_print.f90 \
+	obc_oce.F90 \
+	obc_par.F90 \
 	obccli.F90 \
 	obcdyn.F90 \
 	obcvol.F90 \
-	obc_oce.F90 \
-	obc_par.F90 \
+	oce.F90 \
 	ocesbc.F90 \
-	oce.F90 \
 	ocfzpt.F90 \
 	par_kind.F90 \
 	par_oce.F90 \
 	phycst.F90 \
+	prtctl.f90 \
+	sol_oce.F90 \
 	solfet.F90 \
 	solpcg.F90 \
 	solsor.F90 \
-	sol_oce.F90 \
 	taumod.F90 \
 	trabbl.F90 \
@@ -2044,4 +2346,49 @@
 	trdvor_oce.F90 \
 	zdf_oce.F90 \
+	$(MODEL_LIB)(cla_dynspg.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(flxrnf.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(obc_oce.o) \
+	$(MODEL_LIB)(obcdyn.o) \
+	$(MODEL_LIB)(obcvol.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(ocesbc.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(sol_oce.o) \
+	$(MODEL_LIB)(solfet.o) \
+	$(MODEL_LIB)(solpcg.o) \
+	$(MODEL_LIB)(solsor.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	cla_dynspg.F90 \
+	dom_oce.F90 \
+	flxrnf.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	obc_oce.F90 \
+	obcdyn.F90 \
+	obcvol.F90 \
+	oce.F90 \
+	ocesbc.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	sol_oce.F90 \
+	solfet.F90 \
+	solpcg.F90 \
+	solsor.F90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
+	zdf_oce.F90 \
+	domzgr_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	dynspg_fsc.F90
+$(MODEL_LIB)(dynspg_fsc_atsk.o) :	\
 	$(MODEL_LIB)(blk_oce.o) \
 	$(MODEL_LIB)(cpl_oce.o) \
@@ -2051,7 +2398,7 @@
 	$(MODEL_LIB)(dtasst.o) \
 	$(MODEL_LIB)(dtatem.o) \
+	$(MODEL_LIB)(flx_oce.o) \
 	$(MODEL_LIB)(flxmod.o) \
 	$(MODEL_LIB)(flxrnf.o) \
-	$(MODEL_LIB)(flx_oce.o) \
 	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
@@ -2059,19 +2406,20 @@
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(obc_oce.o) \
+	$(MODEL_LIB)(obc_par.o) \
 	$(MODEL_LIB)(obccli.o) \
 	$(MODEL_LIB)(obcdyn.o) \
 	$(MODEL_LIB)(obcvol.o) \
-	$(MODEL_LIB)(obc_oce.o) \
-	$(MODEL_LIB)(obc_par.o) \
+	$(MODEL_LIB)(oce.o) \
 	$(MODEL_LIB)(ocesbc.o) \
-	$(MODEL_LIB)(oce.o) \
 	$(MODEL_LIB)(ocfzpt.o) \
 	$(MODEL_LIB)(par_kind.o) \
 	$(MODEL_LIB)(par_oce.o) \
 	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(sol_oce.o) \
 	$(MODEL_LIB)(solfet.o) \
 	$(MODEL_LIB)(solpcg.o) \
 	$(MODEL_LIB)(solsor.o) \
-	$(MODEL_LIB)(sol_oce.o) \
 	$(MODEL_LIB)(taumod.o) \
 	$(MODEL_LIB)(trabbl.o) \
@@ -2085,77 +2433,35 @@
 	$(MODEL_LIB)(trdvor_oce.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
-	cla_dynspg.F90 \
-	dom_oce.F90 \
+	blk_oce.F90 \
+	cpl_oce.F90 \
+	daymod.F90 \
+	dom_oce.F90 \
+	dtasal.F90 \
+	dtasst.F90 \
+	dtatem.F90 \
+	flx_oce.F90 \
+	flxmod.F90 \
 	flxrnf.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
+	ice_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	obc_oce.F90 \
+	obc_par.F90 \
+	obccli.F90 \
 	obcdyn.F90 \
 	obcvol.F90 \
-	obc_oce.F90 \
+	oce.F90 \
 	ocesbc.F90 \
-	oce.F90 \
-	phycst.F90 \
+	ocfzpt.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	sol_oce.F90 \
 	solfet.F90 \
 	solpcg.F90 \
 	solsor.F90 \
-	sol_oce.F90 \
-	trdmod.F90 \
-	trdmod_oce.F90 \
-	zdf_oce.F90 \
-	$(MODEL_LIB)(cla_dynspg.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(flxrnf.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(obcdyn.o) \
-	$(MODEL_LIB)(obcvol.o) \
-	$(MODEL_LIB)(obc_oce.o) \
-	$(MODEL_LIB)(ocesbc.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(solfet.o) \
-	$(MODEL_LIB)(solpcg.o) \
-	$(MODEL_LIB)(solsor.o) \
-	$(MODEL_LIB)(sol_oce.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	domzgr_substitute.h90 \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	dynspg_fsc.F90
-$(MODEL_LIB)(dynspg_fsc_atsk.o) :	\
-	blk_oce.F90 \
-	cpl_oce.F90 \
-	daymod.F90 \
-	dom_oce.F90 \
-	dtasal.F90 \
-	dtasst.F90 \
-	dtatem.F90 \
-	flxmod.F90 \
-	flxrnf.F90 \
-	flx_oce.F90 \
-	ice_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	obccli.F90 \
-	obcdyn.F90 \
-	obcvol.F90 \
-	obc_oce.F90 \
-	obc_par.F90 \
-	ocesbc.F90 \
-	oce.F90 \
-	ocfzpt.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.F90 \
-	solfet.F90 \
-	solpcg.F90 \
-	solsor.F90 \
-	sol_oce.F90 \
 	taumod.F90 \
 	trabbl.F90 \
@@ -2169,37 +2475,63 @@
 	trdvor_oce.F90 \
 	zdf_oce.F90 \
-	$(MODEL_LIB)(blk_oce.o) \
-	$(MODEL_LIB)(cpl_oce.o) \
-	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dtasal.o) \
-	$(MODEL_LIB)(dtasst.o) \
-	$(MODEL_LIB)(dtatem.o) \
-	$(MODEL_LIB)(flxmod.o) \
+	$(MODEL_LIB)(cla_dynspg.o) \
+	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(flxrnf.o) \
-	$(MODEL_LIB)(flx_oce.o) \
-	$(MODEL_LIB)(ice_oce.o) \
-	$(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)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(obc_oce.o) \
 	$(MODEL_LIB)(obcdyn.o) \
 	$(MODEL_LIB)(obcvol.o) \
-	$(MODEL_LIB)(obc_oce.o) \
-	$(MODEL_LIB)(obc_par.o) \
+	$(MODEL_LIB)(oce.o) \
 	$(MODEL_LIB)(ocesbc.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(ocfzpt.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(sol_oce.o) \
 	$(MODEL_LIB)(solfet.o) \
 	$(MODEL_LIB)(solpcg.o) \
 	$(MODEL_LIB)(solsor.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	cla_dynspg.F90 \
+	dom_oce.F90 \
+	flxrnf.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	obc_oce.F90 \
+	obcdyn.F90 \
+	obcvol.F90 \
+	oce.F90 \
+	ocesbc.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	sol_oce.F90 \
+	solfet.F90 \
+	solpcg.F90 \
+	solsor.F90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
+	zdf_oce.F90 \
+	domzgr_substitute.h90 \
+	KEY_CPP \
+	dynspg_fsc_atsk.F90
+$(MODEL_LIB)(dynspg_rl.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)(obc_oce.o) \
+	$(MODEL_LIB)(obc_par.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
 	$(MODEL_LIB)(sol_oce.o) \
-	$(MODEL_LIB)(taumod.o) \
+	$(MODEL_LIB)(solfet.o) \
+	$(MODEL_LIB)(solpcg.o) \
+	$(MODEL_LIB)(solsor.o) \
 	$(MODEL_LIB)(trabbl.o) \
-	$(MODEL_LIB)(tradmp.o) \
 	$(MODEL_LIB)(trdicp.o) \
 	$(MODEL_LIB)(trdicp_oce.o) \
@@ -2210,60 +2542,18 @@
 	$(MODEL_LIB)(trdvor_oce.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
-	cla_dynspg.F90 \
-	dom_oce.F90 \
-	flxrnf.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	obcdyn.F90 \
-	obcvol.F90 \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
 	obc_oce.F90 \
-	ocesbc.F90 \
-	oce.F90 \
-	phycst.F90 \
+	obc_par.F90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	sol_oce.F90 \
 	solfet.F90 \
 	solpcg.F90 \
 	solsor.F90 \
-	sol_oce.F90 \
-	trdmod.F90 \
-	trdmod_oce.F90 \
-	zdf_oce.F90 \
-	$(MODEL_LIB)(cla_dynspg.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(flxrnf.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(obcdyn.o) \
-	$(MODEL_LIB)(obcvol.o) \
-	$(MODEL_LIB)(obc_oce.o) \
-	$(MODEL_LIB)(ocesbc.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(solfet.o) \
-	$(MODEL_LIB)(solpcg.o) \
-	$(MODEL_LIB)(solsor.o) \
-	$(MODEL_LIB)(sol_oce.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	domzgr_substitute.h90 \
-	KEY_CPP \
-	dynspg_fsc_atsk.F90
-$(MODEL_LIB)(dynspg_rl.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	obc_oce.F90 \
-	obc_par.F90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	solfet.F90 \
-	solpcg.F90 \
-	solsor.F90 \
-	sol_oce.F90 \
 	trabbl.F90 \
 	trdicp.F90 \
@@ -2278,15 +2568,48 @@
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(ldfdyn_oce.o) \
+	$(MODEL_LIB)(ldftra_oce.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)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(sol_oce.o) \
 	$(MODEL_LIB)(solfet.o) \
+	$(MODEL_LIB)(solisl.o) \
 	$(MODEL_LIB)(solpcg.o) \
 	$(MODEL_LIB)(solsor.o) \
-	$(MODEL_LIB)(sol_oce.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	ldfdyn_oce.F90 \
+	ldftra_oce.F90 \
+	lib_mpp.F90 \
+	obc_oce.F90 \
+	oce.F90 \
+	phycst.F90 \
+	sol_oce.F90 \
+	solfet.F90 \
+	solisl.F90 \
+	solpcg.F90 \
+	solsor.F90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
+	zdf_oce.F90 \
+	domzgr_substitute.h90 \
+	obc_vectopt_loop_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	dynspg_rl.F90
+$(MODEL_LIB)(dynvor.o) :	\
+	$(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) \
 	$(MODEL_LIB)(trabbl.o) \
 	$(MODEL_LIB)(trdicp.o) \
@@ -2297,45 +2620,4 @@
 	$(MODEL_LIB)(trdvor.o) \
 	$(MODEL_LIB)(trdvor_oce.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	ldfdyn_oce.F90 \
-	ldftra_oce.F90 \
-	lib_mpp.F90 \
-	obc_oce.F90 \
-	oce.F90 \
-	phycst.F90 \
-	solfet.F90 \
-	solisl.F90 \
-	solpcg.F90 \
-	solsor.F90 \
-	sol_oce.F90 \
-	trdmod.F90 \
-	trdmod_oce.F90 \
-	zdf_oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.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)(solfet.o) \
-	$(MODEL_LIB)(solisl.o) \
-	$(MODEL_LIB)(solpcg.o) \
-	$(MODEL_LIB)(solsor.o) \
-	$(MODEL_LIB)(sol_oce.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	domzgr_substitute.h90 \
-	obc_vectopt_loop_substitute.h90 \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	dynspg_rl.F90
-$(MODEL_LIB)(dynvor.o) :	\
 	dom_oce.F90 \
 	in_out_manager.F90 \
@@ -2355,9 +2637,30 @@
 	$(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) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	oce.F90 \
+	prtctl.f90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
+	domzgr_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	dynvor.F90
+$(MODEL_LIB)(dynzad.o) :	\
+	$(MODEL_LIB)(daymod.o) \
+	$(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) \
+	$(MODEL_LIB)(phycst.o) \
 	$(MODEL_LIB)(trabbl.o) \
 	$(MODEL_LIB)(trdicp.o) \
@@ -2368,24 +2671,8 @@
 	$(MODEL_LIB)(trdvor.o) \
 	$(MODEL_LIB)(trdvor_oce.o) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	oce.F90 \
-	trdmod.F90 \
-	trdmod_oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	domzgr_substitute.h90 \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	dynvor.F90
-$(MODEL_LIB)(dynzad.o) :	\
 	daymod.F90 \
 	dom_oce.F90 \
 	in_out_manager.F90 \
+	lib_mpp.F90 \
 	lib_print.f90 \
 	oce.F90 \
@@ -2401,7 +2688,28 @@
 	trdvor.F90 \
 	trdvor_oce.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(flxrnf.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	dom_oce.F90 \
+	flxrnf.F90 \
+	in_out_manager.F90 \
+	oce.F90 \
+	prtctl.f90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
+	domzgr_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	dynzad.F90
+$(MODEL_LIB)(dynzdf_exp.o) :	\
 	$(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)(lib_print.o) \
 	$(MODEL_LIB)(oce.o) \
@@ -2417,25 +2725,9 @@
 	$(MODEL_LIB)(trdvor.o) \
 	$(MODEL_LIB)(trdvor_oce.o) \
-	dom_oce.F90 \
-	flxrnf.F90 \
-	in_out_manager.F90 \
-	oce.F90 \
-	trdmod.F90 \
-	trdmod_oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(flxrnf.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	domzgr_substitute.h90 \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	dynzad.F90
-$(MODEL_LIB)(dynzdf_exp.o) :	\
 	daymod.F90 \
 	dom_oce.F90 \
 	in_out_manager.F90 \
 	lbclnk.F90 \
+	lib_mpp.F90 \
 	lib_print.f90 \
 	oce.F90 \
@@ -2451,8 +2743,32 @@
 	trdvor.F90 \
 	trdvor_oce.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(taumod.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	taumod.F90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
+	zdf_oce.F90 \
+	domzgr_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	dynzdf_exp.F90
+$(MODEL_LIB)(dynzdf_imp.o) :	\
 	$(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)(lib_print.o) \
 	$(MODEL_LIB)(oce.o) \
@@ -2468,29 +2784,9 @@
 	$(MODEL_LIB)(trdvor.o) \
 	$(MODEL_LIB)(trdvor_oce.o) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	oce.F90 \
-	phycst.F90 \
-	taumod.F90 \
-	trdmod.F90 \
-	trdmod_oce.F90 \
-	zdf_oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(taumod.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	domzgr_substitute.h90 \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	dynzdf_exp.F90
-$(MODEL_LIB)(dynzdf_imp.o) :	\
 	daymod.F90 \
 	dom_oce.F90 \
 	in_out_manager.F90 \
 	lbclnk.F90 \
+	lib_mpp.F90 \
 	lib_print.f90 \
 	oce.F90 \
@@ -2506,8 +2802,32 @@
 	trdvor.F90 \
 	trdvor_oce.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(taumod.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	taumod.F90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
+	zdf_oce.F90 \
+	domzgr_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	dynzdf_imp.F90
+$(MODEL_LIB)(dynzdf_imp_atsk.o) :	\
 	$(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)(lib_print.o) \
 	$(MODEL_LIB)(oce.o) \
@@ -2523,29 +2843,9 @@
 	$(MODEL_LIB)(trdvor.o) \
 	$(MODEL_LIB)(trdvor_oce.o) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	oce.F90 \
-	phycst.F90 \
-	taumod.F90 \
-	trdmod.F90 \
-	trdmod_oce.F90 \
-	zdf_oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(taumod.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	domzgr_substitute.h90 \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	dynzdf_imp.F90
-$(MODEL_LIB)(dynzdf_imp_atsk.o) :	\
 	daymod.F90 \
 	dom_oce.F90 \
 	in_out_manager.F90 \
 	lbclnk.F90 \
+	lib_mpp.F90 \
 	lib_print.f90 \
 	oce.F90 \
@@ -2561,13 +2861,40 @@
 	trdvor.F90 \
 	trdvor_oce.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(taumod.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	taumod.F90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
+	zdf_oce.F90 \
+	domzgr_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	dynzdf_imp_atsk.F90
+$(MODEL_LIB)(dynzdf_iso.o) :	\
 	$(MODEL_LIB)(daymod.o) \
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(lbclnk.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)(ldfdyn_oce.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)(prtctl.o) \
 	$(MODEL_LIB)(trabbl.o) \
 	$(MODEL_LIB)(trdicp.o) \
@@ -2578,25 +2905,5 @@
 	$(MODEL_LIB)(trdvor.o) \
 	$(MODEL_LIB)(trdvor_oce.o) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	oce.F90 \
-	phycst.F90 \
-	taumod.F90 \
-	trdmod.F90 \
-	trdmod_oce.F90 \
-	zdf_oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(taumod.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	domzgr_substitute.h90 \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	dynzdf_imp_atsk.F90
-$(MODEL_LIB)(dynzdf_iso.o) :	\
+	$(MODEL_LIB)(zdfmxl.o) \
 	daymod.F90 \
 	dom_oce.F90 \
@@ -2605,9 +2912,11 @@
 	ldfdyn_oce.F90 \
 	ldftra_oce.F90 \
-	lib_print.f90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
 	trabbl.F90 \
 	trdicp.F90 \
@@ -2619,24 +2928,15 @@
 	trdvor_oce.F90 \
 	zdfmxl.F90 \
-	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(ldfdyn_oce.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(ldfslp.o) \
 	$(MODEL_LIB)(ldftra_oce.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)(trabbl.o) \
-	$(MODEL_LIB)(trdicp.o) \
-	$(MODEL_LIB)(trdicp_oce.o) \
-	$(MODEL_LIB)(trdmld.o) \
-	$(MODEL_LIB)(trdmld_oce.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(taumod.o) \
+	$(MODEL_LIB)(trdmod.o) \
 	$(MODEL_LIB)(trdmod_oce.o) \
-	$(MODEL_LIB)(trdvor.o) \
-	$(MODEL_LIB)(trdvor_oce.o) \
-	$(MODEL_LIB)(zdfmxl.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
 	dom_oce.F90 \
 	in_out_manager.F90 \
@@ -2645,18 +2945,9 @@
 	oce.F90 \
 	phycst.F90 \
+	prtctl.f90 \
 	taumod.F90 \
 	trdmod.F90 \
 	trdmod_oce.F90 \
 	zdf_oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(ldfslp.o) \
-	$(MODEL_LIB)(ldftra_oce.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(taumod.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
 	domzgr_substitute.h90 \
 	vectopt_loop_substitute.h90 \
@@ -2665,28 +2956,34 @@
 	dynzdf_iso.F90
 $(MODEL_LIB)(eosbn2.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_print.f90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.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)(prtctl.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	prtctl.f90 \
 	zdf_oce.F90 \
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	phycst.F90 \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(zdfddm.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	phycst.F90 \
+	prtctl.f90 \
 	zdfddm.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(zdfddm.o) \
 	domzgr_substitute.h90 \
 	vectopt_loop_substitute.h90 \
@@ -2694,20 +2991,34 @@
 	eosbn2.F90
 $(MODEL_LIB)(flo4rk.o) :	\
-	lib_print.f90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	lib_print.f90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(flo_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(oce.o) \
 	dom_oce.F90 \
 	flo_oce.F90 \
 	in_out_manager.F90 \
 	oce.F90 \
+	flo4rk.F90
+$(MODEL_LIB)(flo_oce.o) :	\
+	$(MODEL_LIB)(par_kind.o) \
+	par_kind.F90 \
+	$(MODEL_LIB)(par_oce.o) \
+	par_oce.F90 \
+	flo_oce.F90
+$(MODEL_LIB)(floats.o) :	\
+	$(MODEL_LIB)(daymod.o) \
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(flo_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(oce.o) \
-	flo4rk.F90
-$(MODEL_LIB)(floats.o) :	\
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
 	daymod.F90 \
 	dom_oce.F90 \
@@ -2718,37 +3029,35 @@
 	par_oce.F90 \
 	phycst.F90 \
-	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(flo4rk.o) \
 	$(MODEL_LIB)(flo_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(floblk.o) \
+	$(MODEL_LIB)(flodom.o) \
+	$(MODEL_LIB)(flowri.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
 	flo4rk.F90 \
+	flo_oce.F90 \
 	floblk.F90 \
 	flodom.F90 \
 	flowri.F90 \
-	flo_oce.F90 \
-	lib_mpp.F90 \
-	$(MODEL_LIB)(flo4rk.o) \
-	$(MODEL_LIB)(floblk.o) \
-	$(MODEL_LIB)(flodom.o) \
-	$(MODEL_LIB)(flowri.o) \
-	$(MODEL_LIB)(flo_oce.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
+	lib_mpp.F90 \
 	../../../lib/libioipsl.a \
 	floats.F90
 $(MODEL_LIB)(floblk.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_print.f90 \
-	par_kind.F90 \
-	par_oce.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) \
+	$(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) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_print.f90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(flo_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
 	dom_oce.F90 \
 	flo_oce.F90 \
@@ -2757,22 +3066,21 @@
 	oce.F90 \
 	phycst.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(flo_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
 	floblk.F90
 $(MODEL_LIB)(flodom.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_print.f90 \
-	par_kind.F90 \
-	par_oce.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) \
+	$(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) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_print.f90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(flo_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(oce.o) \
 	dom_oce.F90 \
 	flo_oce.F90 \
@@ -2780,25 +3088,28 @@
 	lib_mpp.F90 \
 	oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(flo_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(oce.o) \
 	domzgr_substitute.h90 \
 	KEY_CPP \
 	flodom.F90
 $(MODEL_LIB)(flowri.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_print.f90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.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) \
-	$(MODEL_LIB)(phycst.o) \
+	$(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) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_print.f90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(flo_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(oce.o) \
 	daymod.F90 \
 	dom_oce.F90 \
@@ -2807,20 +3118,30 @@
 	lib_mpp.F90 \
 	oce.F90 \
+	domzgr_substitute.h90 \
+	KEY_CPP \
+	flowri.F90
+$(MODEL_LIB)(flx_oce.o) :	\
+	$(MODEL_LIB)(par_kind.o) \
+	par_kind.F90 \
+	$(MODEL_LIB)(par_oce.o) \
+	par_oce.F90 \
+	flx_oce.F90
+$(MODEL_LIB)(flxblk.o) :	\
+	$(MODEL_LIB)(blk_oce.o) \
+	$(MODEL_LIB)(cpl_oce.o) \
 	$(MODEL_LIB)(daymod.o) \
 	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(flo_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(oce.o) \
-	domzgr_substitute.h90 \
-	KEY_CPP \
-	flowri.F90
-$(MODEL_LIB)(flo_oce.o) :	\
-	par_kind.F90 \
-	$(MODEL_LIB)(par_kind.o) \
-	par_oce.F90 \
-	$(MODEL_LIB)(par_oce.o) \
-	flo_oce.F90
-$(MODEL_LIB)(flxblk.o) :	\
+	$(MODEL_LIB)(flx_oce.o) \
+	$(MODEL_LIB)(ice.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)(ocfzpt.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
 	blk_oce.F90 \
 	cpl_oce.F90 \
@@ -2838,4 +3159,6 @@
 	par_oce.F90 \
 	phycst.F90 \
+	prtctl.f90 \
+	$(MODEL_LIB)(albedo.o) \
 	$(MODEL_LIB)(blk_oce.o) \
 	$(MODEL_LIB)(cpl_oce.o) \
@@ -2843,14 +3166,10 @@
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(flx_oce.o) \
-	$(MODEL_LIB)(ice.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
 	$(MODEL_LIB)(oce.o) \
 	$(MODEL_LIB)(ocfzpt.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
 	albedo.F90 \
 	blk_oce.F90 \
@@ -2864,4 +3183,7 @@
 	ocfzpt.F90 \
 	phycst.F90 \
+	prtctl.f90 \
+	flxblk.F90
+$(MODEL_LIB)(flxfwb.o) :	\
 	$(MODEL_LIB)(albedo.o) \
 	$(MODEL_LIB)(blk_oce.o) \
@@ -2869,12 +3191,23 @@
 	$(MODEL_LIB)(daymod.o) \
 	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dtasal.o) \
+	$(MODEL_LIB)(dtasst.o) \
+	$(MODEL_LIB)(dtatem.o) \
 	$(MODEL_LIB)(flx_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(flxmod.o) \
+	$(MODEL_LIB)(flxrnf.o) \
+	$(MODEL_LIB)(ice_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)(ocfzpt.o) \
-	$(MODEL_LIB)(phycst.o) \
-	flxblk.F90
-$(MODEL_LIB)(flxfwb.o) :	\
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(taumod.o) \
+	$(MODEL_LIB)(tradmp.o) \
 	albedo.F90 \
 	blk_oce.F90 \
@@ -2885,7 +3218,7 @@
 	dtasst.F90 \
 	dtatem.F90 \
+	flx_oce.F90 \
 	flxmod.F90 \
 	flxrnf.F90 \
-	flx_oce.F90 \
 	ice_oce.F90 \
 	in_out_manager.F90 \
@@ -2898,29 +3231,18 @@
 	par_oce.F90 \
 	phycst.F90 \
+	prtctl.f90 \
 	taumod.F90 \
 	tradmp.F90 \
-	$(MODEL_LIB)(albedo.o) \
 	$(MODEL_LIB)(blk_oce.o) \
 	$(MODEL_LIB)(cpl_oce.o) \
 	$(MODEL_LIB)(daymod.o) \
 	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dtasal.o) \
-	$(MODEL_LIB)(dtasst.o) \
-	$(MODEL_LIB)(dtatem.o) \
-	$(MODEL_LIB)(flxmod.o) \
+	$(MODEL_LIB)(flxblk.o) \
 	$(MODEL_LIB)(flxrnf.o) \
-	$(MODEL_LIB)(flx_oce.o) \
-	$(MODEL_LIB)(ice_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)(ocfzpt.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(taumod.o) \
-	$(MODEL_LIB)(tradmp.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(ocesbc.o) \
+	$(MODEL_LIB)(phycst.o) \
 	blk_oce.F90 \
 	cpl_oce.F90 \
@@ -2931,18 +3253,7 @@
 	in_out_manager.F90 \
 	lib_mpp.F90 \
+	oce.F90 \
 	ocesbc.F90 \
-	oce.F90 \
-	phycst.F90 \
-	$(MODEL_LIB)(blk_oce.o) \
-	$(MODEL_LIB)(cpl_oce.o) \
-	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(flxblk.o) \
-	$(MODEL_LIB)(flxrnf.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(ocesbc.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
+	phycst.F90 \
 	domzgr_substitute.h90 \
 	vectopt_loop_substitute.h90 \
@@ -2950,4 +3261,14 @@
 	flxfwb.F90
 $(MODEL_LIB)(flxmod.o) :	\
+	$(MODEL_LIB)(daymod.o) \
+	$(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) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
 	daymod.F90 \
 	dom_oce.F90 \
@@ -2959,12 +3280,13 @@
 	par_oce.F90 \
 	phycst.F90 \
+	prtctl.f90 \
 	$(MODEL_LIB)(daymod.o) \
 	$(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) \
+	$(MODEL_LIB)(flxrnf.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(ocfzpt.o) \
 	$(MODEL_LIB)(phycst.o) \
 	daymod.F90 \
@@ -2977,25 +3299,16 @@
 	ocfzpt.F90 \
 	phycst.F90 \
-	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(blk_oce.o) \
+	$(MODEL_LIB)(bulk.o) \
+	$(MODEL_LIB)(cpl_oce.o) \
+	$(MODEL_LIB)(flx_oce.o) \
 	$(MODEL_LIB)(flxrnf.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(ocfzpt.o) \
-	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(ice_oce.o) \
 	blk_oce.F90 \
 	bulk.F90 \
 	cpl_oce.F90 \
+	flx_oce.F90 \
 	flxrnf.F90 \
-	flx_oce.F90 \
 	ice_oce.F90 \
-	$(MODEL_LIB)(blk_oce.o) \
-	$(MODEL_LIB)(bulk.o) \
-	$(MODEL_LIB)(cpl_oce.o) \
-	$(MODEL_LIB)(flxrnf.o) \
-	$(MODEL_LIB)(flx_oce.o) \
-	$(MODEL_LIB)(ice_oce.o) \
 	domzgr_substitute.h90 \
 	flx_bulk_daily.h90 \
@@ -3007,15 +3320,21 @@
 	flxmod.F90
 $(MODEL_LIB)(flxrnf.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_print.f90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.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) \
+	$(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) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_print.f90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(phycst.o) \
 	daymod.F90 \
@@ -3031,45 +3350,66 @@
 	in_out_manager.F90 \
 	phycst.F90 \
-	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(phycst.o) \
 	flxrnf_ORCA_R05.h90 \
 	../../../lib/libioipsl.a \
 	KEY_CPP \
 	flxrnf.F90
-$(MODEL_LIB)(flx_oce.o) :	\
-	par_kind.F90 \
-	$(MODEL_LIB)(par_kind.o) \
-	par_oce.F90 \
-	$(MODEL_LIB)(par_oce.o) \
-	flx_oce.F90
 $(MODEL_LIB)(geo2ocean.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.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) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	phycst.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(phycst.o) \
+	$(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) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(phycst.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	phycst.F90 \
 	vectopt_loop_substitute.h90 \
 	KEY_CPP \
 	geo2ocean.F90
+$(MODEL_LIB)(ice.o) :	\
+	$(MODEL_LIB)(par_oce.o) \
+	par_oce.F90 \
+	$(MODEL_LIB)(par_ice.o) \
+	par_ice.F90 \
+	ice.F90
+$(MODEL_LIB)(ice_oce.o) :	\
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	par_kind.F90 \
+	par_oce.F90 \
+	$(MODEL_LIB)(blk_oce.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	blk_oce.F90 \
+	par_oce.F90 \
+	ice_oce.F90
 $(MODEL_LIB)(iceini.o) :	\
+	$(MODEL_LIB)(blk_oce.o) \
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(dom_ice.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(ice.o) \
+	$(MODEL_LIB)(ice_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(ocfzpt.o) \
+	$(MODEL_LIB)(par_ice.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
 	blk_oce.F90 \
 	daymod.F90 \
@@ -3087,18 +3427,14 @@
 	par_oce.F90 \
 	phycst.F90 \
-	$(MODEL_LIB)(blk_oce.o) \
-	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(dom_ice.o) \
-	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(flx_oce.o) \
 	$(MODEL_LIB)(ice.o) \
 	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(ini1d.o) \
+	$(MODEL_LIB)(limistate.o) \
+	$(MODEL_LIB)(limmsh.o) \
+	$(MODEL_LIB)(limrst.o) \
 	$(MODEL_LIB)(ocfzpt.o) \
-	$(MODEL_LIB)(par_ice.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
 	$(MODEL_LIB)(phycst.o) \
 	dom_oce.F90 \
@@ -3107,4 +3443,5 @@
 	ice_oce.F90 \
 	in_out_manager.F90 \
+	ini1d.F90 \
 	limistate.F90 \
 	limmsh.F90 \
@@ -3112,16 +3449,47 @@
 	ocfzpt.F90 \
 	phycst.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
+	iceini.F90
+$(MODEL_LIB)(icestp.o) :	\
+	$(MODEL_LIB)(albedo.o) \
+	$(MODEL_LIB)(blk_oce.o) \
+	$(MODEL_LIB)(cpl_oce.o) \
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(dianam.o) \
+	$(MODEL_LIB)(dom_ice.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dtasal.o) \
+	$(MODEL_LIB)(dtasst.o) \
+	$(MODEL_LIB)(dtatem.o) \
 	$(MODEL_LIB)(flx_oce.o) \
+	$(MODEL_LIB)(flxblk.o) \
+	$(MODEL_LIB)(flxmod.o) \
+	$(MODEL_LIB)(flxrnf.o) \
 	$(MODEL_LIB)(ice.o) \
 	$(MODEL_LIB)(ice_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iceini.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(ini1d.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(limadv.o) \
+	$(MODEL_LIB)(limhdf.o) \
 	$(MODEL_LIB)(limistate.o) \
 	$(MODEL_LIB)(limmsh.o) \
+	$(MODEL_LIB)(limrhg.o) \
 	$(MODEL_LIB)(limrst.o) \
+	$(MODEL_LIB)(limtab.o) \
+	$(MODEL_LIB)(limthd_lac.o) \
+	$(MODEL_LIB)(limthd_zdf.o) \
+	$(MODEL_LIB)(oce.o) \
 	$(MODEL_LIB)(ocfzpt.o) \
-	$(MODEL_LIB)(phycst.o) \
-	iceini.F90
-$(MODEL_LIB)(icestp.o) :	\
+	$(MODEL_LIB)(par_ice.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(taumod.o) \
+	$(MODEL_LIB)(thd_ice.o) \
+	$(MODEL_LIB)(tradmp.o) \
 	albedo.F90 \
 	blk_oce.F90 \
@@ -3134,12 +3502,13 @@
 	dtasst.F90 \
 	dtatem.F90 \
+	flx_oce.F90 \
 	flxblk.F90 \
 	flxmod.F90 \
 	flxrnf.F90 \
-	flx_oce.F90 \
-	iceini.F90 \
 	ice.F90 \
 	ice_oce.F90 \
-	in_out_manager.F90 \
+	iceini.F90 \
+	in_out_manager.F90 \
+	ini1d.F90 \
 	lbclnk.F90 \
 	lib_mpp.F90 \
@@ -3160,7 +3529,57 @@
 	par_oce.F90 \
 	phycst.F90 \
+	prtctl.f90 \
 	taumod.F90 \
 	thd_ice.F90 \
 	tradmp.F90 \
+	$(MODEL_LIB)(cpl_oce.o) \
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(dom_ice.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(flx_oce.o) \
+	$(MODEL_LIB)(ice.o) \
+	$(MODEL_LIB)(ice_oce.o) \
+	$(MODEL_LIB)(iceini.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(limdia.o) \
+	$(MODEL_LIB)(limdyn.o) \
+	$(MODEL_LIB)(limflx.o) \
+	$(MODEL_LIB)(limrst.o) \
+	$(MODEL_LIB)(limthd.o) \
+	$(MODEL_LIB)(limtrp.o) \
+	$(MODEL_LIB)(limwri.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(ocesbc.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(taumod.o) \
+	cpl_oce.F90 \
+	daymod.F90 \
+	dom_ice.F90 \
+	dom_oce.F90 \
+	flx_oce.F90 \
+	ice.F90 \
+	ice_oce.F90 \
+	iceini.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	limdia.F90 \
+	limdyn.F90 \
+	limflx.F90 \
+	limrst.F90 \
+	limthd.F90 \
+	limtrp.F90 \
+	limwri.F90 \
+	oce.F90 \
+	ocesbc.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	taumod.F90 \
+	domzgr_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	icestp.F90
+$(MODEL_LIB)(icestp1d.o) :	\
 	$(MODEL_LIB)(albedo.o) \
 	$(MODEL_LIB)(blk_oce.o) \
@@ -3173,12 +3592,13 @@
 	$(MODEL_LIB)(dtasst.o) \
 	$(MODEL_LIB)(dtatem.o) \
+	$(MODEL_LIB)(flx_oce.o) \
 	$(MODEL_LIB)(flxblk.o) \
 	$(MODEL_LIB)(flxmod.o) \
 	$(MODEL_LIB)(flxrnf.o) \
-	$(MODEL_LIB)(flx_oce.o) \
-	$(MODEL_LIB)(iceini.o) \
 	$(MODEL_LIB)(ice.o) \
 	$(MODEL_LIB)(ice_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(iceini.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(ini1d.o) \
 	$(MODEL_LIB)(lbclnk.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
@@ -3199,15 +3619,98 @@
 	$(MODEL_LIB)(par_oce.o) \
 	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(taumod.o) \
 	$(MODEL_LIB)(thd_ice.o) \
 	$(MODEL_LIB)(tradmp.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfmxl.o) \
+	albedo.F90 \
+	blk_oce.F90 \
+	cpl_oce.F90 \
+	daymod.F90 \
+	dianam.F90 \
+	dom_ice.F90 \
+	dom_oce.F90 \
+	dtasal.F90 \
+	dtasst.F90 \
+	dtatem.F90 \
+	flx_oce.F90 \
+	flxblk.F90 \
+	flxmod.F90 \
+	flxrnf.F90 \
+	ice.F90 \
+	ice_oce.F90 \
+	iceini.F90 \
+	in_out_manager.F90 \
+	ini1d.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	limadv.F90 \
+	limhdf.F90 \
+	limistate.F90 \
+	limmsh.F90 \
+	limrhg.F90 \
+	limrst.F90 \
+	limtab.F90 \
+	limthd_lac.F90 \
+	limthd_zdf.F90 \
+	oce.F90 \
+	ocfzpt.F90 \
+	par_ice.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	taumod.F90 \
+	thd_ice.F90 \
+	tradmp.F90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
+	zdf_oce.F90 \
+	zdfmxl.F90 \
+	$(MODEL_LIB)(blk_oce.o) \
+	$(MODEL_LIB)(cpl_oce.o) \
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(dom_ice.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dtasal.o) \
+	$(MODEL_LIB)(dtatem.o) \
+	$(MODEL_LIB)(flx_oce.o) \
+	$(MODEL_LIB)(flxmod.o) \
+	$(MODEL_LIB)(flxrnf.o) \
+	$(MODEL_LIB)(ice.o) \
+	$(MODEL_LIB)(ice_oce.o) \
+	$(MODEL_LIB)(iceini.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(limdia.o) \
+	$(MODEL_LIB)(limdyn.o) \
+	$(MODEL_LIB)(limflx.o) \
+	$(MODEL_LIB)(limrst.o) \
+	$(MODEL_LIB)(limthd.o) \
+	$(MODEL_LIB)(limtrp.o) \
+	$(MODEL_LIB)(limwri.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(ocesbc.o) \
+	$(MODEL_LIB)(ocfzpt.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(taumod.o) \
+	$(MODEL_LIB)(tradmp.o) \
+	blk_oce.F90 \
 	cpl_oce.F90 \
 	daymod.F90 \
 	dom_ice.F90 \
 	dom_oce.F90 \
+	dtasal.F90 \
+	dtatem.F90 \
 	flx_oce.F90 \
-	iceini.F90 \
+	flxmod.F90 \
+	flxrnf.F90 \
 	ice.F90 \
 	ice_oce.F90 \
+	iceini.F90 \
 	in_out_manager.F90 \
 	lbclnk.F90 \
@@ -3219,60 +3722,76 @@
 	limtrp.F90 \
 	limwri.F90 \
+	oce.F90 \
 	ocesbc.F90 \
-	oce.F90 \
+	ocfzpt.F90 \
 	phycst.F90 \
 	taumod.F90 \
+	tradmp.F90 \
+	domzgr_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	icestp1d.F90
+$(MODEL_LIB)(in_out_manager.o) :	\
+	$(MODEL_LIB)(par_kind.o) \
+	par_kind.F90 \
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	lib_print.f90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	in_out_manager.F90
+$(MODEL_LIB)(ini1d.o) :	\
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	in_out_manager.F90 \
+	lib_print.f90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(phycst.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	phycst.F90 \
+	ini1d.F90
+$(MODEL_LIB)(istate.o) :	\
+	$(MODEL_LIB)(blk_oce.o) \
+	$(MODEL_LIB)(cla_dynspg.o) \
 	$(MODEL_LIB)(cpl_oce.o) \
 	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(dom_ice.o) \
-	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dynspg_fsc.o) \
+	$(MODEL_LIB)(dynspg_fsc_atsk.o) \
 	$(MODEL_LIB)(flx_oce.o) \
-	$(MODEL_LIB)(iceini.o) \
-	$(MODEL_LIB)(ice.o) \
+	$(MODEL_LIB)(flxrnf.o) \
 	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(limdia.o) \
-	$(MODEL_LIB)(limdyn.o) \
-	$(MODEL_LIB)(limflx.o) \
-	$(MODEL_LIB)(limrst.o) \
-	$(MODEL_LIB)(limthd.o) \
-	$(MODEL_LIB)(limtrp.o) \
-	$(MODEL_LIB)(limwri.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)(obcdyn.o) \
+	$(MODEL_LIB)(obcvol.o) \
+	$(MODEL_LIB)(oce.o) \
 	$(MODEL_LIB)(ocesbc.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(taumod.o) \
-	domzgr_substitute.h90 \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	icestp.F90
-$(MODEL_LIB)(ice.o) :	\
-	par_oce.F90 \
-	$(MODEL_LIB)(par_oce.o) \
-	par_ice.F90 \
-	$(MODEL_LIB)(par_ice.o) \
-	ice.F90
-$(MODEL_LIB)(ice_oce.o) :	\
-	par_kind.F90 \
-	par_oce.F90 \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	blk_oce.F90 \
-	par_oce.F90 \
-	$(MODEL_LIB)(blk_oce.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	ice_oce.F90
-$(MODEL_LIB)(in_out_manager.o) :	\
-	par_kind.F90 \
-	$(MODEL_LIB)(par_kind.o) \
-	lib_print.f90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	in_out_manager.F90
-$(MODEL_LIB)(istate.o) :	\
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(sol_oce.o) \
+	$(MODEL_LIB)(solfet.o) \
+	$(MODEL_LIB)(solisl.o) \
+	$(MODEL_LIB)(solpcg.o) \
+	$(MODEL_LIB)(solsor.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
+	$(MODEL_LIB)(zdftke.o) \
 	blk_oce.F90 \
 	cla_dynspg.F90 \
@@ -3282,6 +3801,6 @@
 	dynspg_fsc.F90 \
 	dynspg_fsc_atsk.F90 \
+	flx_oce.F90 \
 	flxrnf.F90 \
-	flx_oce.F90 \
 	ice_oce.F90 \
 	in_out_manager.F90 \
@@ -3291,55 +3810,40 @@
 	lib_mpp.F90 \
 	lib_print.f90 \
+	obc_oce.F90 \
 	obcdyn.F90 \
 	obcvol.F90 \
-	obc_oce.F90 \
+	oce.F90 \
 	ocesbc.F90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	sol_oce.F90 \
 	solfet.F90 \
 	solisl.F90 \
 	solpcg.F90 \
 	solsor.F90 \
-	sol_oce.F90 \
 	trdmod.F90 \
 	trdmod_oce.F90 \
+	zdf_oce.F90 \
 	zdfddm.F90 \
 	zdftke.F90 \
-	zdf_oce.F90 \
-	$(MODEL_LIB)(blk_oce.o) \
-	$(MODEL_LIB)(cla_dynspg.o) \
-	$(MODEL_LIB)(cpl_oce.o) \
 	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(divcur.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dtasal.o) \
+	$(MODEL_LIB)(dtatem.o) \
 	$(MODEL_LIB)(dynspg_fsc.o) \
 	$(MODEL_LIB)(dynspg_fsc_atsk.o) \
-	$(MODEL_LIB)(flxrnf.o) \
-	$(MODEL_LIB)(flx_oce.o) \
-	$(MODEL_LIB)(ice_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(ldfdyn_oce.o) \
+	$(MODEL_LIB)(dynspg_rl.o) \
+	$(MODEL_LIB)(eosbn2.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)(obcdyn.o) \
-	$(MODEL_LIB)(obcvol.o) \
-	$(MODEL_LIB)(obc_oce.o) \
-	$(MODEL_LIB)(ocesbc.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)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(restart.o) \
 	$(MODEL_LIB)(solisl.o) \
-	$(MODEL_LIB)(solpcg.o) \
-	$(MODEL_LIB)(solsor.o) \
-	$(MODEL_LIB)(sol_oce.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	$(MODEL_LIB)(zdfddm.o) \
-	$(MODEL_LIB)(zdftke.o) \
+	$(MODEL_LIB)(wzvmod.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
 	daymod.F90 \
@@ -3361,22 +3865,4 @@
 	wzvmod.F90 \
 	zdf_oce.F90 \
-	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(divcur.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dtasal.o) \
-	$(MODEL_LIB)(dtatem.o) \
-	$(MODEL_LIB)(dynspg_fsc.o) \
-	$(MODEL_LIB)(dynspg_fsc_atsk.o) \
-	$(MODEL_LIB)(dynspg_rl.o) \
-	$(MODEL_LIB)(eosbn2.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(ldftra_oce.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(restart.o) \
-	$(MODEL_LIB)(solisl.o) \
-	$(MODEL_LIB)(wzvmod.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
 	domzgr_substitute.h90 \
 	vectopt_loop_substitute.h90 \
@@ -3385,24 +3871,37 @@
 	istate.F90
 $(MODEL_LIB)(lbclnk.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_print.f90 \
-	par_kind.F90 \
-	par_oce.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) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_mpp.F90 \
-	oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(oce.o) \
+	$(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) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_print.f90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(oce.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_mpp.F90 \
+	oce.F90 \
 	lbclnk.F90
 $(MODEL_LIB)(ldfdyn.o) :	\
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.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)(oce.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(zdfmxl.o) \
 	dom_oce.F90 \
 	in_out_manager.F90 \
@@ -3416,4 +3915,5 @@
 	par_oce.F90 \
 	phycst.F90 \
+	prtctl.f90 \
 	zdfmxl.F90 \
 	$(MODEL_LIB)(dom_oce.o) \
@@ -3421,12 +3921,8 @@
 	$(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)(oce.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(zdfmxl.o) \
+	$(MODEL_LIB)(ldfslp.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
 	dom_oce.F90 \
 	in_out_manager.F90 \
@@ -3437,14 +3933,6 @@
 	oce.F90 \
 	phycst.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(ldfdyn_oce.o) \
-	$(MODEL_LIB)(ldfslp.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(ldftra_oce.o) \
 	ldftra_oce.F90 \
-	$(MODEL_LIB)(ldftra_oce.o) \
 	domzgr_substitute.h90 \
 	ldfdyn_antarctic.h90 \
@@ -3457,10 +3945,24 @@
 	ldfdyn.F90
 $(MODEL_LIB)(ldfdyn_oce.o) :	\
-	par_kind.F90 \
-	$(MODEL_LIB)(par_kind.o) \
-	par_oce.F90 \
-	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	par_kind.F90 \
+	$(MODEL_LIB)(par_oce.o) \
+	par_oce.F90 \
 	ldfdyn_oce.F90
 $(MODEL_LIB)(ldfeiv.o) :	\
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.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)(oce.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(zdfmxl.o) \
 	daymod.F90 \
 	dom_oce.F90 \
@@ -3475,6 +3977,47 @@
 	par_oce.F90 \
 	phycst.F90 \
+	prtctl.f90 \
 	zdfmxl.F90 \
-	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(flxrnf.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(ldfslp.o) \
+	$(MODEL_LIB)(ldftra_oce.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	dom_oce.F90 \
+	flxrnf.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	ldfslp.F90 \
+	ldftra_oce.F90 \
+	oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	domzgr_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	ldfeiv.F90
+$(MODEL_LIB)(ldfslp.o) :	\
+	$(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) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	prtctl.f90 \
+	zdf_oce.F90 \
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
@@ -3482,109 +4025,64 @@
 	$(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)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(zdfmxl.o) \
 	dom_oce.F90 \
-	flxrnf.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	ldfdyn_oce.F90 \
+	ldftra_oce.F90 \
+	oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	zdfmxl.F90 \
+	domzgr_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	ldfslp.F90
+$(MODEL_LIB)(ldftra.o) :	\
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.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)(oce.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(zdfmxl.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	ldfdyn_oce.F90 \
+	ldftra_oce.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	zdfmxl.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(ldfslp.o) \
+	$(MODEL_LIB)(ldftra_oce.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	dom_oce.F90 \
 	in_out_manager.F90 \
 	lbclnk.F90 \
 	ldfslp.F90 \
 	ldftra_oce.F90 \
-	oce.F90 \
-	phycst.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(flxrnf.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(ldfslp.o) \
-	$(MODEL_LIB)(ldftra_oce.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	domzgr_substitute.h90 \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	ldfeiv.F90
-$(MODEL_LIB)(ldfslp.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	zdf_oce.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) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	ldfdyn_oce.F90 \
-	ldftra_oce.F90 \
-	oce.F90 \
-	phycst.F90 \
-	zdfmxl.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(ldfdyn_oce.o) \
-	$(MODEL_LIB)(ldftra_oce.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(zdfmxl.o) \
-	domzgr_substitute.h90 \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	ldfslp.F90
-$(MODEL_LIB)(ldftra.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	ldfdyn_oce.F90 \
-	ldftra_oce.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.F90 \
-	zdfmxl.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.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)(oce.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(zdfmxl.o) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	ldfslp.F90 \
-	ldftra_oce.F90 \
-	lib_mpp.F90 \
-	oce.F90 \
-	phycst.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(ldfslp.o) \
-	$(MODEL_LIB)(ldftra_oce.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
+	lib_mpp.F90 \
+	oce.F90 \
+	phycst.F90 \
 	domzgr_substitute.h90 \
 	ldftra_c1d.h90 \
@@ -3596,34 +4094,43 @@
 	ldftra.F90
 $(MODEL_LIB)(ldftra_oce.o) :	\
-	par_kind.F90 \
-	$(MODEL_LIB)(par_kind.o) \
-	par_oce.F90 \
-	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	par_kind.F90 \
+	$(MODEL_LIB)(par_oce.o) \
+	par_oce.F90 \
 	ldftra_oce.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) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	$(MODEL_LIB)(lib_mpp.o) \
+	lib_mpp.F90 \
 	lib_feti.F90
 $(MODEL_LIB)(lib_mpp.o) :	\
-	lib_print.f90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	dom_oce.F90 \
-	in_out_manager.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) \
+	lib_print.f90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
 	lib_mpp.F90
 $(MODEL_LIB)(lib_print.o) :	\
-	par_kind.F90 \
-	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	par_kind.F90 \
 	lib_print.f90
 $(MODEL_LIB)(limadv.o) :	\
+	$(MODEL_LIB)(blk_oce.o) \
+	$(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_ice.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
 	blk_oce.F90 \
 	dom_oce.F90 \
@@ -3635,13 +4142,10 @@
 	par_kind.F90 \
 	par_oce.F90 \
-	$(MODEL_LIB)(blk_oce.o) \
-	$(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_ice.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(dom_ice.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) \
 	dom_ice.F90 \
 	dom_oce.F90 \
@@ -3649,11 +4153,27 @@
 	in_out_manager.F90 \
 	lbclnk.F90 \
-	$(MODEL_LIB)(dom_ice.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(ice_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
+	prtctl.f90 \
 	limadv.F90
 $(MODEL_LIB)(limdia.o) :	\
+	$(MODEL_LIB)(blk_oce.o) \
+	$(MODEL_LIB)(dom_ice.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(flx_oce.o) \
+	$(MODEL_LIB)(ice.o) \
+	$(MODEL_LIB)(ice_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(ini1d.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(limistate.o) \
+	$(MODEL_LIB)(limmsh.o) \
+	$(MODEL_LIB)(limrst.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(ocfzpt.o) \
+	$(MODEL_LIB)(par_ice.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
 	blk_oce.F90 \
 	dom_ice.F90 \
@@ -3663,4 +4183,5 @@
 	ice_oce.F90 \
 	in_out_manager.F90 \
+	ini1d.F90 \
 	lbclnk.F90 \
 	lib_print.f90 \
@@ -3674,4 +4195,27 @@
 	par_oce.F90 \
 	phycst.F90 \
+	prtctl.f90 \
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(dom_ice.o) \
+	$(MODEL_LIB)(ice.o) \
+	$(MODEL_LIB)(ice_oce.o) \
+	$(MODEL_LIB)(iceini.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(limistate.o) \
+	$(MODEL_LIB)(par_ice.o) \
+	$(MODEL_LIB)(phycst.o) \
+	daymod.F90 \
+	dom_ice.F90 \
+	ice.F90 \
+	ice_oce.F90 \
+	iceini.F90 \
+	in_out_manager.F90 \
+	limistate.F90 \
+	par_ice.F90 \
+	phycst.F90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	limdia.F90
+$(MODEL_LIB)(limdyn.o) :	\
 	$(MODEL_LIB)(blk_oce.o) \
 	$(MODEL_LIB)(dom_ice.o) \
@@ -3681,5 +4225,7 @@
 	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(ini1d.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
 	$(MODEL_LIB)(limistate.o) \
@@ -3692,26 +4238,5 @@
 	$(MODEL_LIB)(par_oce.o) \
 	$(MODEL_LIB)(phycst.o) \
-	daymod.F90 \
-	dom_ice.F90 \
-	iceini.F90 \
-	ice.F90 \
-	ice_oce.F90 \
-	in_out_manager.F90 \
-	limistate.F90 \
-	par_ice.F90 \
-	phycst.F90 \
-	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(dom_ice.o) \
-	$(MODEL_LIB)(iceini.o) \
-	$(MODEL_LIB)(ice.o) \
-	$(MODEL_LIB)(ice_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(limistate.o) \
-	$(MODEL_LIB)(par_ice.o) \
-	$(MODEL_LIB)(phycst.o) \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	limdia.F90
-$(MODEL_LIB)(limdyn.o) :	\
+	$(MODEL_LIB)(prtctl.o) \
 	blk_oce.F90 \
 	dom_ice.F90 \
@@ -3721,4 +4246,5 @@
 	ice_oce.F90 \
 	in_out_manager.F90 \
+	ini1d.F90 \
 	lbclnk.F90 \
 	lib_mpp.F90 \
@@ -3733,17 +4259,42 @@
 	par_oce.F90 \
 	phycst.F90 \
+	prtctl.f90 \
+	$(MODEL_LIB)(dom_ice.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(ice.o) \
+	$(MODEL_LIB)(ice_oce.o) \
+	$(MODEL_LIB)(iceini.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(limistate.o) \
+	$(MODEL_LIB)(limrhg.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	dom_ice.F90 \
+	dom_oce.F90 \
+	ice.F90 \
+	ice_oce.F90 \
+	iceini.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	limistate.F90 \
+	limrhg.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	limdyn.F90
+$(MODEL_LIB)(limflx.o) :	\
+	$(MODEL_LIB)(albedo.o) \
 	$(MODEL_LIB)(blk_oce.o) \
-	$(MODEL_LIB)(dom_ice.o) \
+	$(MODEL_LIB)(cpl_oce.o) \
+	$(MODEL_LIB)(daymod.o) \
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(flx_oce.o) \
 	$(MODEL_LIB)(ice.o) \
-	$(MODEL_LIB)(ice_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(limistate.o) \
-	$(MODEL_LIB)(limmsh.o) \
-	$(MODEL_LIB)(limrst.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)(ocfzpt.o) \
@@ -3752,28 +4303,5 @@
 	$(MODEL_LIB)(par_oce.o) \
 	$(MODEL_LIB)(phycst.o) \
-	dom_ice.F90 \
-	dom_oce.F90 \
-	iceini.F90 \
-	ice.F90 \
-	ice_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	limistate.F90 \
-	limrhg.F90 \
-	phycst.F90 \
-	$(MODEL_LIB)(dom_ice.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(iceini.o) \
-	$(MODEL_LIB)(ice.o) \
-	$(MODEL_LIB)(ice_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(limistate.o) \
-	$(MODEL_LIB)(limrhg.o) \
-	$(MODEL_LIB)(phycst.o) \
-	limdyn.F90
-$(MODEL_LIB)(limflx.o) :	\
+	$(MODEL_LIB)(prtctl.o) \
 	albedo.F90 \
 	blk_oce.F90 \
@@ -3793,15 +4321,225 @@
 	par_oce.F90 \
 	phycst.F90 \
+	prtctl.f90 \
 	$(MODEL_LIB)(albedo.o) \
+	$(MODEL_LIB)(flx_oce.o) \
+	$(MODEL_LIB)(flxblk.o) \
+	$(MODEL_LIB)(ice.o) \
+	$(MODEL_LIB)(ice_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(ocfzpt.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	albedo.F90 \
+	flx_oce.F90 \
+	flxblk.F90 \
+	ice.F90 \
+	ice_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	ocfzpt.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	limflx.F90
+$(MODEL_LIB)(limhdf.o) :	\
 	$(MODEL_LIB)(blk_oce.o) \
-	$(MODEL_LIB)(cpl_oce.o) \
+	$(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_ice.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	blk_oce.F90 \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	oce.F90 \
+	par_ice.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(ice.o) \
+	$(MODEL_LIB)(ice_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	dom_oce.F90 \
+	ice.F90 \
+	ice_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	prtctl.f90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	limhdf.F90
+$(MODEL_LIB)(limistate.o) :	\
+	$(MODEL_LIB)(blk_oce.o) \
+	$(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_ice.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	blk_oce.F90 \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	oce.F90 \
+	par_ice.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	$(MODEL_LIB)(dom_ice.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(ice.o) \
+	$(MODEL_LIB)(ice_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(ocfzpt.o) \
+	$(MODEL_LIB)(par_ice.o) \
+	$(MODEL_LIB)(phycst.o) \
+	dom_ice.F90 \
+	dom_oce.F90 \
+	ice.F90 \
+	ice_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	oce.F90 \
+	ocfzpt.F90 \
+	par_ice.F90 \
+	phycst.F90 \
+	limistate.F90
+$(MODEL_LIB)(limmsh.o) :	\
+	$(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_ice.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	oce.F90 \
+	par_ice.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	$(MODEL_LIB)(dom_ice.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(phycst.o) \
+	dom_ice.F90 \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	phycst.F90 \
+	limmsh.F90
+$(MODEL_LIB)(limrhg.o) :	\
+	$(MODEL_LIB)(blk_oce.o) \
+	$(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_ice.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	blk_oce.F90 \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	oce.F90 \
+	par_ice.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	$(MODEL_LIB)(dom_ice.o) \
+	$(MODEL_LIB)(ice.o) \
+	$(MODEL_LIB)(ice_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	dom_ice.F90 \
+	ice.F90 \
+	ice_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	limrhg.F90
+$(MODEL_LIB)(limrst.o) :	\
+	$(MODEL_LIB)(blk_oce.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(par_ice.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	blk_oce.F90 \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_print.f90 \
+	par_ice.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
 	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(ice.o) \
+	$(MODEL_LIB)(ice_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	daymod.F90 \
+	dom_oce.F90 \
+	ice.F90 \
+	ice_oce.F90 \
+	in_out_manager.F90 \
+	$(MODEL_LIB)(par_ice.o) \
+	par_ice.F90 \
+	limrst_dimg.h90 \
+	../../../lib/libioipsl.a \
+	KEY_CPP \
+	limrst.F90
+$(MODEL_LIB)(limtab.o) :	\
+	$(MODEL_LIB)(par_kind.o) \
+	par_kind.F90 \
+	limtab.F90
+$(MODEL_LIB)(limthd.o) :	\
+	$(MODEL_LIB)(blk_oce.o) \
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(flx_oce.o) \
 	$(MODEL_LIB)(ice.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(ice_oce.o) \
+	$(MODEL_LIB)(iceini.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(ini1d.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(limistate.o) \
+	$(MODEL_LIB)(limmsh.o) \
+	$(MODEL_LIB)(limrst.o) \
 	$(MODEL_LIB)(oce.o) \
 	$(MODEL_LIB)(ocfzpt.o) \
@@ -3810,212 +4548,85 @@
 	$(MODEL_LIB)(par_oce.o) \
 	$(MODEL_LIB)(phycst.o) \
-	albedo.F90 \
-	flxblk.F90 \
+	$(MODEL_LIB)(thd_ice.o) \
+	blk_oce.F90 \
+	dom_oce.F90 \
 	flx_oce.F90 \
 	ice.F90 \
 	ice_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
+	iceini.F90 \
+	in_out_manager.F90 \
+	ini1d.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	limistate.F90 \
+	limmsh.F90 \
+	limrst.F90 \
+	oce.F90 \
 	ocfzpt.F90 \
-	par_oce.F90 \
-	phycst.F90 \
-	$(MODEL_LIB)(albedo.o) \
-	$(MODEL_LIB)(flxblk.o) \
+	par_ice.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	thd_ice.F90 \
+	$(MODEL_LIB)(dom_ice.o) \
+	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(flx_oce.o) \
 	$(MODEL_LIB)(ice.o) \
 	$(MODEL_LIB)(ice_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(ocfzpt.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	limflx.F90
-$(MODEL_LIB)(limhdf.o) :	\
-	blk_oce.F90 \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	oce.F90 \
-	par_ice.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	$(MODEL_LIB)(blk_oce.o) \
-	$(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_ice.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	dom_oce.F90 \
+	$(MODEL_LIB)(iceini.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(limtab.o) \
+	$(MODEL_LIB)(limthd_lac.o) \
+	$(MODEL_LIB)(limthd_zdf.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(thd_ice.o) \
+	dom_ice.F90 \
+	dom_oce.F90 \
+	flx_oce.F90 \
 	ice.F90 \
 	ice_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
+	iceini.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	limtab.F90 \
+	limthd_lac.F90 \
+	limthd_zdf.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	thd_ice.F90 \
+	domzgr_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	limthd.F90
+$(MODEL_LIB)(limthd_lac.o) :	\
+	$(MODEL_LIB)(blk_oce.o) \
+	$(MODEL_LIB)(dom_ice.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(flx_oce.o) \
 	$(MODEL_LIB)(ice.o) \
 	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	limhdf.F90
-$(MODEL_LIB)(limistate.o) :	\
+	$(MODEL_LIB)(ini1d.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(limistate.o) \
+	$(MODEL_LIB)(limmsh.o) \
+	$(MODEL_LIB)(limrst.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(ocfzpt.o) \
+	$(MODEL_LIB)(par_ice.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
 	blk_oce.F90 \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	oce.F90 \
-	par_ice.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	$(MODEL_LIB)(blk_oce.o) \
-	$(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_ice.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
 	dom_ice.F90 \
 	dom_oce.F90 \
+	flx_oce.F90 \
 	ice.F90 \
 	ice_oce.F90 \
 	in_out_manager.F90 \
-	lbclnk.F90 \
-	oce.F90 \
-	ocfzpt.F90 \
-	par_ice.F90 \
-	phycst.F90 \
-	$(MODEL_LIB)(dom_ice.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(ice.o) \
-	$(MODEL_LIB)(ice_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(ocfzpt.o) \
-	$(MODEL_LIB)(par_ice.o) \
-	$(MODEL_LIB)(phycst.o) \
-	limistate.F90
-$(MODEL_LIB)(limmsh.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	oce.F90 \
-	par_ice.F90 \
-	par_kind.F90 \
-	par_oce.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_ice.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	dom_ice.F90 \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	phycst.F90 \
-	$(MODEL_LIB)(dom_ice.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(phycst.o) \
-	limmsh.F90
-$(MODEL_LIB)(limrhg.o) :	\
-	blk_oce.F90 \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	oce.F90 \
-	par_ice.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	$(MODEL_LIB)(blk_oce.o) \
-	$(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_ice.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	dom_ice.F90 \
-	ice.F90 \
-	ice_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	par_oce.F90 \
-	phycst.F90 \
-	$(MODEL_LIB)(dom_ice.o) \
-	$(MODEL_LIB)(ice.o) \
-	$(MODEL_LIB)(ice_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	limrhg.F90
-$(MODEL_LIB)(limrst.o) :	\
-	blk_oce.F90 \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_print.f90 \
-	par_ice.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.F90 \
-	$(MODEL_LIB)(blk_oce.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(par_ice.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	daymod.F90 \
-	dom_oce.F90 \
-	ice.F90 \
-	ice_oce.F90 \
-	in_out_manager.F90 \
-	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(ice.o) \
-	$(MODEL_LIB)(ice_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	par_ice.F90 \
-	$(MODEL_LIB)(par_ice.o) \
-	limrst_dimg.h90 \
-	../../../lib/libioipsl.a \
-	KEY_CPP \
-	limrst.F90
-$(MODEL_LIB)(limtab.o) :	\
-	par_kind.F90 \
-	$(MODEL_LIB)(par_kind.o) \
-	limtab.F90
-$(MODEL_LIB)(limthd.o) :	\
-	blk_oce.F90 \
-	dom_oce.F90 \
-	flx_oce.F90 \
-	iceini.F90 \
-	ice.F90 \
-	ice_oce.F90 \
-	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
+	ini1d.F90 \
+	lbclnk.F90 \
 	limistate.F90 \
 	limmsh.F90 \
@@ -4027,13 +4638,27 @@
 	par_oce.F90 \
 	phycst.F90 \
+	$(MODEL_LIB)(ice_oce.o) \
+	$(MODEL_LIB)(iceini.o) \
+	$(MODEL_LIB)(limistate.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(thd_ice.o) \
+	ice_oce.F90 \
+	iceini.F90 \
+	limistate.F90 \
+	par_oce.F90 \
+	phycst.F90 \
 	thd_ice.F90 \
+	limthd_lac.F90
+$(MODEL_LIB)(limthd_zdf.o) :	\
 	$(MODEL_LIB)(blk_oce.o) \
+	$(MODEL_LIB)(dom_ice.o) \
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(flx_oce.o) \
-	$(MODEL_LIB)(iceini.o) \
 	$(MODEL_LIB)(ice.o) \
 	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(ini1d.o) \
+	$(MODEL_LIB)(lbclnk.o) \
 	$(MODEL_LIB)(lib_print.o) \
 	$(MODEL_LIB)(limistate.o) \
@@ -4046,36 +4671,4 @@
 	$(MODEL_LIB)(par_oce.o) \
 	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(thd_ice.o) \
-	dom_ice.F90 \
-	dom_oce.F90 \
-	flx_oce.F90 \
-	iceini.F90 \
-	ice.F90 \
-	ice_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	limtab.F90 \
-	limthd_lac.F90 \
-	limthd_zdf.F90 \
-	phycst.F90 \
-	thd_ice.F90 \
-	$(MODEL_LIB)(dom_ice.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(flx_oce.o) \
-	$(MODEL_LIB)(iceini.o) \
-	$(MODEL_LIB)(ice.o) \
-	$(MODEL_LIB)(ice_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(limtab.o) \
-	$(MODEL_LIB)(limthd_lac.o) \
-	$(MODEL_LIB)(limthd_zdf.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(thd_ice.o) \
-	domzgr_substitute.h90 \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	limthd.F90
-$(MODEL_LIB)(limthd_lac.o) :	\
 	blk_oce.F90 \
 	dom_ice.F90 \
@@ -4085,5 +4678,7 @@
 	ice_oce.F90 \
 	in_out_manager.F90 \
-	lbclnk.F90 \
+	ini1d.F90 \
+	lbclnk.F90 \
+	lib_print.f90 \
 	limistate.F90 \
 	limmsh.F90 \
@@ -4095,4 +4690,20 @@
 	par_oce.F90 \
 	phycst.F90 \
+	$(MODEL_LIB)(ice_oce.o) \
+	$(MODEL_LIB)(iceini.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(limistate.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(thd_ice.o) \
+	ice_oce.F90 \
+	iceini.F90 \
+	in_out_manager.F90 \
+	limistate.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	thd_ice.F90 \
+	limthd_zdf.F90
+$(MODEL_LIB)(limtrp.o) :	\
 	$(MODEL_LIB)(blk_oce.o) \
 	$(MODEL_LIB)(dom_ice.o) \
@@ -4102,5 +4713,8 @@
 	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(ini1d.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(lib_print.o) \
 	$(MODEL_LIB)(limistate.o) \
 	$(MODEL_LIB)(limmsh.o) \
@@ -4112,18 +4726,5 @@
 	$(MODEL_LIB)(par_oce.o) \
 	$(MODEL_LIB)(phycst.o) \
-	iceini.F90 \
-	ice_oce.F90 \
-	limistate.F90 \
-	par_oce.F90 \
-	phycst.F90 \
-	thd_ice.F90 \
-	$(MODEL_LIB)(iceini.o) \
-	$(MODEL_LIB)(ice_oce.o) \
-	$(MODEL_LIB)(limistate.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(thd_ice.o) \
-	limthd_lac.F90
-$(MODEL_LIB)(limthd_zdf.o) :	\
+	$(MODEL_LIB)(prtctl.o) \
 	blk_oce.F90 \
 	dom_ice.F90 \
@@ -4133,5 +4734,7 @@
 	ice_oce.F90 \
 	in_out_manager.F90 \
-	lbclnk.F90 \
+	ini1d.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
 	lib_print.f90 \
 	limistate.F90 \
@@ -4144,6 +4747,37 @@
 	par_oce.F90 \
 	phycst.F90 \
+	prtctl.f90 \
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(dom_ice.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(ice.o) \
+	$(MODEL_LIB)(ice_oce.o) \
+	$(MODEL_LIB)(iceini.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(limadv.o) \
+	$(MODEL_LIB)(limhdf.o) \
+	$(MODEL_LIB)(limistate.o) \
+	$(MODEL_LIB)(phycst.o) \
+	daymod.F90 \
+	dom_ice.F90 \
+	dom_oce.F90 \
+	ice.F90 \
+	ice_oce.F90 \
+	iceini.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	limadv.F90 \
+	limhdf.F90 \
+	limistate.F90 \
+	phycst.F90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	limtrp.F90
+$(MODEL_LIB)(limwri.o) :	\
 	$(MODEL_LIB)(blk_oce.o) \
-	$(MODEL_LIB)(dom_ice.o) \
+	$(MODEL_LIB)(daymod.o) \
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(flx_oce.o) \
@@ -4151,5 +4785,6 @@
 	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(ini1d.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
 	$(MODEL_LIB)(limistate.o) \
@@ -4162,22 +4797,7 @@
 	$(MODEL_LIB)(par_oce.o) \
 	$(MODEL_LIB)(phycst.o) \
-	iceini.F90 \
-	ice_oce.F90 \
-	in_out_manager.F90 \
-	limistate.F90 \
-	par_oce.F90 \
-	phycst.F90 \
-	thd_ice.F90 \
-	$(MODEL_LIB)(iceini.o) \
-	$(MODEL_LIB)(ice_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(limistate.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(thd_ice.o) \
-	limthd_zdf.F90
-$(MODEL_LIB)(limtrp.o) :	\
+	$(MODEL_LIB)(prtctl.o) \
 	blk_oce.F90 \
-	dom_ice.F90 \
+	daymod.F90 \
 	dom_oce.F90 \
 	flx_oce.F90 \
@@ -4185,5 +4805,5 @@
 	ice_oce.F90 \
 	in_out_manager.F90 \
-	lbclnk.F90 \
+	ini1d.F90 \
 	lib_mpp.F90 \
 	lib_print.f90 \
@@ -4197,5 +4817,7 @@
 	par_oce.F90 \
 	phycst.F90 \
-	$(MODEL_LIB)(blk_oce.o) \
+	prtctl.f90 \
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(dianam.o) \
 	$(MODEL_LIB)(dom_ice.o) \
 	$(MODEL_LIB)(dom_oce.o) \
@@ -4203,107 +4825,21 @@
 	$(MODEL_LIB)(ice.o) \
 	$(MODEL_LIB)(ice_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(limistate.o) \
-	$(MODEL_LIB)(limmsh.o) \
-	$(MODEL_LIB)(limrst.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(ocfzpt.o) \
-	$(MODEL_LIB)(par_ice.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(iceini.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
 	$(MODEL_LIB)(phycst.o) \
 	daymod.F90 \
+	dianam.F90 \
 	dom_ice.F90 \
-	dom_oce.F90 \
-	iceini.F90 \
-	ice.F90 \
-	ice_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	limadv.F90 \
-	limhdf.F90 \
-	limistate.F90 \
-	phycst.F90 \
-	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(dom_ice.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(iceini.o) \
-	$(MODEL_LIB)(ice.o) \
-	$(MODEL_LIB)(ice_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(limadv.o) \
-	$(MODEL_LIB)(limhdf.o) \
-	$(MODEL_LIB)(limistate.o) \
-	$(MODEL_LIB)(phycst.o) \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	limtrp.F90
-$(MODEL_LIB)(limwri.o) :	\
-	blk_oce.F90 \
-	daymod.F90 \
 	dom_oce.F90 \
 	flx_oce.F90 \
 	ice.F90 \
 	ice_oce.F90 \
-	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	limistate.F90 \
-	limmsh.F90 \
-	limrst.F90 \
-	oce.F90 \
-	ocfzpt.F90 \
-	par_ice.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.F90 \
-	$(MODEL_LIB)(blk_oce.o) \
-	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(flx_oce.o) \
-	$(MODEL_LIB)(ice.o) \
-	$(MODEL_LIB)(ice_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(limistate.o) \
-	$(MODEL_LIB)(limmsh.o) \
-	$(MODEL_LIB)(limrst.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(ocfzpt.o) \
-	$(MODEL_LIB)(par_ice.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	daymod.F90 \
-	dianam.F90 \
-	dom_ice.F90 \
-	dom_oce.F90 \
-	flx_oce.F90 \
 	iceini.F90 \
-	ice.F90 \
-	ice_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	phycst.F90 \
-	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(dianam.o) \
-	$(MODEL_LIB)(dom_ice.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(flx_oce.o) \
-	$(MODEL_LIB)(iceini.o) \
-	$(MODEL_LIB)(ice.o) \
-	$(MODEL_LIB)(ice_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(phycst.o) \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	phycst.F90 \
+	$(MODEL_LIB)(diawri.o) \
 	diawri.F90 \
-	$(MODEL_LIB)(diawri.o) \
 	limwri_dimg.h90 \
 	../../../lib/libioipsl.a \
@@ -4311,18 +4847,57 @@
 	limwri.F90
 $(MODEL_LIB)(model.o) :	\
+	$(MODEL_LIB)(cpl.o) \
+	$(MODEL_LIB)(cpl_oce.o) \
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(diaptr.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(domain.o) \
+	$(MODEL_LIB)(domcfg.o) \
+	$(MODEL_LIB)(dtasal.o) \
+	$(MODEL_LIB)(dtasst.o) \
+	$(MODEL_LIB)(dtatem.o) \
+	$(MODEL_LIB)(dyncor1d.o) \
+	$(MODEL_LIB)(eosbn2.o) \
+	$(MODEL_LIB)(flxfwb.o) \
+	$(MODEL_LIB)(iceini.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(ini1d.o) \
+	$(MODEL_LIB)(istate.o) \
+	$(MODEL_LIB)(ldfdyn.o) \
+	$(MODEL_LIB)(ldftra.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(mppini.o) \
+	$(MODEL_LIB)(obc_par.o) \
+	$(MODEL_LIB)(obcini.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(ocfzpt.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(solver.o) \
+	$(MODEL_LIB)(step.o) \
+	$(MODEL_LIB)(step1d.o) \
+	$(MODEL_LIB)(traqsr.o) \
+	$(MODEL_LIB)(trdicp.o) \
+	$(MODEL_LIB)(trdmld.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	$(MODEL_LIB)(trdvor.o) \
+	$(MODEL_LIB)(zdfini.o) \
+	$(MODEL_LIB)(zpshde.o) \
 	cpl.F90 \
 	cpl_oce.F90 \
 	daymod.F90 \
 	diaptr.F90 \
+	dom_oce.F90 \
 	domain.F90 \
 	domcfg.F90 \
-	dom_oce.F90 \
 	dtasal.F90 \
 	dtasst.F90 \
 	dtatem.F90 \
+	dyncor1d.F90 \
 	eosbn2.F90 \
 	flxfwb.F90 \
 	iceini.F90 \
 	in_out_manager.F90 \
+	ini1d.F90 \
 	istate.F90 \
 	ldfdyn.F90 \
@@ -4330,11 +4905,13 @@
 	lib_mpp.F90 \
 	mppini.F90 \
+	obc_par.F90 \
 	obcini.F90 \
-	obc_par.F90 \
 	oce.F90 \
 	ocfzpt.F90 \
 	phycst.F90 \
+	prtctl.f90 \
 	solver.F90 \
 	step.F90 \
+	step1d.F90 \
 	traqsr.F90 \
 	trdicp.F90 \
@@ -4344,59 +4921,26 @@
 	zdfini.F90 \
 	zpshde.F90 \
-	$(MODEL_LIB)(cpl.o) \
-	$(MODEL_LIB)(cpl_oce.o) \
-	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(diaptr.o) \
-	$(MODEL_LIB)(domain.o) \
-	$(MODEL_LIB)(domcfg.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dtasal.o) \
-	$(MODEL_LIB)(dtasst.o) \
-	$(MODEL_LIB)(dtatem.o) \
-	$(MODEL_LIB)(eosbn2.o) \
-	$(MODEL_LIB)(flxfwb.o) \
-	$(MODEL_LIB)(iceini.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(istate.o) \
-	$(MODEL_LIB)(ldfdyn.o) \
-	$(MODEL_LIB)(ldftra.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(mppini.o) \
-	$(MODEL_LIB)(obcini.o) \
-	$(MODEL_LIB)(obc_par.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(ocfzpt.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(solver.o) \
-	$(MODEL_LIB)(step.o) \
-	$(MODEL_LIB)(traqsr.o) \
-	$(MODEL_LIB)(trdicp.o) \
-	$(MODEL_LIB)(trdmld.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	$(MODEL_LIB)(trdvor.o) \
-	$(MODEL_LIB)(zdfini.o) \
-	$(MODEL_LIB)(zpshde.o) \
+	$(MODEL_LIB)(opa.o) \
 	opa.F90 \
-	$(MODEL_LIB)(opa.o) \
 	model.f90
 $(MODEL_LIB)(mppini.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_print.f90 \
-	par_kind.F90 \
-	par_oce.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) \
+	$(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) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_print.f90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(sol_oce.o) \
 	dom_oce.F90 \
 	in_out_manager.F90 \
 	lib_mpp.F90 \
 	sol_oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(sol_oce.o) \
 	domzgr_substitute.h90 \
 	mppini_2.h90 \
@@ -4404,23 +4948,47 @@
 	KEY_CPP \
 	mppini.F90
+$(MODEL_LIB)(obc_oce.o) :	\
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	par_kind.F90 \
+	par_oce.F90 \
+	$(MODEL_LIB)(obc_par.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	obc_par.F90 \
+	par_oce.F90 \
+	obc_oce.F90
+$(MODEL_LIB)(obc_par.o) :	\
+	$(MODEL_LIB)(par_kind.o) \
+	par_kind.F90 \
+	$(MODEL_LIB)(par_oce.o) \
+	par_oce.F90 \
+	obc_par_EEL_R5.h90 \
+	KEY_CPP \
+	obc_par.F90
 $(MODEL_LIB)(obccli.o) :	\
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(obc_par.o) \
+	$(MODEL_LIB)(par_oce.o) \
 	in_out_manager.F90 \
 	obc_par.F90 \
 	par_oce.F90 \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(obc_par.o) \
-	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(obc_oce.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
 	dom_oce.F90 \
 	obc_oce.F90 \
 	oce.F90 \
 	phycst.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(obc_oce.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
 	domzgr_substitute.h90 \
 	KEY_CPP \
 	obccli.F90
 $(MODEL_LIB)(obcdom.o) :	\
+	$(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) \
 	dom_oce.F90 \
 	in_out_manager.F90 \
@@ -4431,8 +4999,8 @@
 	$(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) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(obc_oce.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
 	dom_oce.F90 \
 	in_out_manager.F90 \
@@ -4441,12 +5009,28 @@
 	oce.F90 \
 	phycst.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) \
 	obcdom.F90
 $(MODEL_LIB)(obcdta.o) :	\
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.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)(obc_par.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)(sol_oce.o) \
+	$(MODEL_LIB)(solfet.o) \
+	$(MODEL_LIB)(solisl.o) \
+	$(MODEL_LIB)(solpcg.o) \
+	$(MODEL_LIB)(solsor.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
 	dom_oce.F90 \
 	in_out_manager.F90 \
@@ -4462,17 +5046,39 @@
 	par_oce.F90 \
 	phycst.F90 \
+	prtctl.f90 \
+	sol_oce.F90 \
 	solfet.F90 \
 	solisl.F90 \
 	solpcg.F90 \
 	solsor.F90 \
-	sol_oce.F90 \
 	trdmod.F90 \
 	trdmod_oce.F90 \
 	zdf_oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(ldfdyn_oce.o) \
-	$(MODEL_LIB)(ldftra_oce.o) \
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dynspg_rl.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(obc_oce.o) \
+	$(MODEL_LIB)(obccli.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	daymod.F90 \
+	dom_oce.F90 \
+	dynspg_rl.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	obc_oce.F90 \
+	obccli.F90 \
+	oce.F90 \
+	phycst.F90 \
+	obc_vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	obcdta.F90
+$(MODEL_LIB)(obcdyn.o) :	\
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
@@ -4483,258 +5089,351 @@
 	$(MODEL_LIB)(par_oce.o) \
 	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(solfet.o) \
-	$(MODEL_LIB)(solisl.o) \
-	$(MODEL_LIB)(solpcg.o) \
-	$(MODEL_LIB)(solsor.o) \
-	$(MODEL_LIB)(sol_oce.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	obc_oce.F90 \
+	obc_par.F90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.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)(obccli.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	obc_oce.F90 \
+	obccli.F90 \
+	oce.F90 \
+	phycst.F90 \
+	obcdyn.F90
+$(MODEL_LIB)(obcini.o) :	\
+	$(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)(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) \
+	daymod.F90 \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	obc_oce.F90 \
+	obc_par.F90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.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)(obcdom.o) \
+	$(MODEL_LIB)(obcrst.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	obc_oce.F90 \
+	obcdom.F90 \
+	obcrst.F90 \
+	oce.F90 \
+	phycst.F90 \
+	obc_vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	obcini.F90
+$(MODEL_LIB)(obcrad.o) :	\
+	$(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) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	obc_par.F90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.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) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	obc_oce.F90 \
+	oce.F90 \
+	phycst.F90 \
+	obc_vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	obcrad.F90
+$(MODEL_LIB)(obcrst.o) :	\
+	$(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) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	obc_par.F90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.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)(obc_oce.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	daymod.F90 \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	obc_oce.F90 \
+	oce.F90 \
+	phycst.F90 \
+	obcrst.F90
+$(MODEL_LIB)(obcspg.o) :	\
+	$(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) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	obc_par.F90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.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) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	obc_oce.F90 \
+	oce.F90 \
+	phycst.F90 \
+	obc_vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	obcspg.F90
+$(MODEL_LIB)(obctra.o) :	\
+	$(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) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	obc_par.F90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.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) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	obc_oce.F90 \
+	oce.F90 \
+	phycst.F90 \
+	obc_vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	obctra.F90
+$(MODEL_LIB)(obcvol.o) :	\
+	$(MODEL_LIB)(blk_oce.o) \
+	$(MODEL_LIB)(cpl_oce.o) \
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dtasal.o) \
+	$(MODEL_LIB)(dtasst.o) \
+	$(MODEL_LIB)(dtatem.o) \
+	$(MODEL_LIB)(flx_oce.o) \
+	$(MODEL_LIB)(flxmod.o) \
+	$(MODEL_LIB)(flxrnf.o) \
+	$(MODEL_LIB)(ice_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)(ocfzpt.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(taumod.o) \
+	$(MODEL_LIB)(tradmp.o) \
+	blk_oce.F90 \
+	cpl_oce.F90 \
+	daymod.F90 \
+	dom_oce.F90 \
+	dtasal.F90 \
+	dtasst.F90 \
+	dtatem.F90 \
+	flx_oce.F90 \
+	flxmod.F90 \
+	flxrnf.F90 \
+	ice_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	obc_par.F90 \
+	oce.F90 \
+	ocfzpt.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	taumod.F90 \
+	tradmp.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)(ocesbc.o) \
+	$(MODEL_LIB)(phycst.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_mpp.F90 \
+	obc_oce.F90 \
+	oce.F90 \
+	ocesbc.F90 \
+	phycst.F90 \
+	domzgr_substitute.h90 \
+	obc_vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	obcvol.F90
+$(MODEL_LIB)(oce.o) :	\
+	$(MODEL_LIB)(par_kind.o) \
+	par_kind.F90 \
+	$(MODEL_LIB)(par_oce.o) \
+	par_oce.F90 \
+	oce.F90
+$(MODEL_LIB)(ocesbc.o) :	\
+	$(MODEL_LIB)(blk_oce.o) \
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dtasal.o) \
+	$(MODEL_LIB)(dtatem.o) \
+	$(MODEL_LIB)(flxrnf.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)(ocfzpt.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(trdmod.o) \
 	$(MODEL_LIB)(trdmod_oce.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfmxl.o) \
+	blk_oce.F90 \
 	daymod.F90 \
 	dom_oce.F90 \
-	dynspg_rl.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	obccli.F90 \
-	obc_oce.F90 \
-	oce.F90 \
-	phycst.F90 \
+	dtasal.F90 \
+	dtatem.F90 \
+	flxrnf.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	oce.F90 \
+	ocfzpt.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
+	zdf_oce.F90 \
+	zdfmxl.F90 \
+	$(MODEL_LIB)(blk_oce.o) \
+	$(MODEL_LIB)(cpl_oce.o) \
 	$(MODEL_LIB)(daymod.o) \
 	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dynspg_rl.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) \
-	obc_vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	obcdta.F90
-$(MODEL_LIB)(obcdyn.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	obc_oce.F90 \
-	obc_par.F90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.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_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) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	obccli.F90 \
-	obc_oce.F90 \
-	oce.F90 \
-	phycst.F90 \
-	$(MODEL_LIB)(dom_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) \
-	obcdyn.F90
-$(MODEL_LIB)(obcini.o) :	\
-	daymod.F90 \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	obc_oce.F90 \
-	obc_par.F90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.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)(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) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	obcdom.F90 \
-	obcrst.F90 \
-	obc_oce.F90 \
-	oce.F90 \
-	phycst.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(obcdom.o) \
-	$(MODEL_LIB)(obcrst.o) \
-	$(MODEL_LIB)(obc_oce.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	obc_vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	obcini.F90
-$(MODEL_LIB)(obcrad.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	obc_par.F90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.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) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	obc_oce.F90 \
-	oce.F90 \
-	phycst.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_vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	obcrad.F90
-$(MODEL_LIB)(obcrst.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	obc_par.F90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.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) \
-	$(MODEL_LIB)(phycst.o) \
-	daymod.F90 \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	obc_oce.F90 \
-	oce.F90 \
-	phycst.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)(obc_oce.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	obcrst.F90
-$(MODEL_LIB)(obcspg.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	obc_par.F90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.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) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	obc_oce.F90 \
-	oce.F90 \
-	phycst.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_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 \
-	obc_par.F90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.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) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	obc_oce.F90 \
-	oce.F90 \
-	phycst.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_vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	obctra.F90
-$(MODEL_LIB)(obcvol.o) :	\
+	$(MODEL_LIB)(dtasal.o) \
+	$(MODEL_LIB)(dtasst.o) \
+	$(MODEL_LIB)(dtatem.o) \
+	$(MODEL_LIB)(flx_oce.o) \
+	$(MODEL_LIB)(flxmod.o) \
+	$(MODEL_LIB)(flxrnf.o) \
+	$(MODEL_LIB)(ice_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(ocfzpt.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(taumod.o) \
+	$(MODEL_LIB)(tradmp.o) \
 	blk_oce.F90 \
 	cpl_oce.F90 \
@@ -4744,175 +5443,161 @@
 	dtasst.F90 \
 	dtatem.F90 \
+	flx_oce.F90 \
 	flxmod.F90 \
 	flxrnf.F90 \
-	flx_oce.F90 \
 	ice_oce.F90 \
 	in_out_manager.F90 \
 	lbclnk.F90 \
 	lib_mpp.F90 \
-	lib_print.f90 \
-	obc_par.F90 \
 	oce.F90 \
 	ocfzpt.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.F90 \
+	phycst.F90 \
+	prtctl.f90 \
 	taumod.F90 \
 	tradmp.F90 \
+	domzgr_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	ocesbc.F90
+$(MODEL_LIB)(ocfzpt.o) :	\
+	$(MODEL_LIB)(par_oce.o) \
+	par_oce.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(oce.o) \
+	dom_oce.F90 \
+	oce.F90 \
+	ocfzpt.F90
+$(MODEL_LIB)(opa.o) :	\
 	$(MODEL_LIB)(blk_oce.o) \
+	$(MODEL_LIB)(cla.o) \
+	$(MODEL_LIB)(cla_div.o) \
+	$(MODEL_LIB)(closea.o) \
+	$(MODEL_LIB)(cpl.o) \
 	$(MODEL_LIB)(cpl_oce.o) \
 	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(diadimg.o) \
+	$(MODEL_LIB)(diafwb.o) \
+	$(MODEL_LIB)(diagap.o) \
+	$(MODEL_LIB)(diahdy.o) \
+	$(MODEL_LIB)(diahth.o) \
+	$(MODEL_LIB)(dianam.o) \
+	$(MODEL_LIB)(diaptr.o) \
+	$(MODEL_LIB)(diaspr.o) \
+	$(MODEL_LIB)(diawri.o) \
+	$(MODEL_LIB)(diawri1d.o) \
+	$(MODEL_LIB)(divcur.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(domhgr.o) \
+	$(MODEL_LIB)(dommsk.o) \
+	$(MODEL_LIB)(domstp.o) \
+	$(MODEL_LIB)(domwri.o) \
+	$(MODEL_LIB)(domzgr.o) \
 	$(MODEL_LIB)(dtasal.o) \
 	$(MODEL_LIB)(dtasst.o) \
 	$(MODEL_LIB)(dtatem.o) \
+	$(MODEL_LIB)(dyncor1d.o) \
+	$(MODEL_LIB)(dynhpg.o) \
+	$(MODEL_LIB)(dynhpg_atsk.o) \
+	$(MODEL_LIB)(dynkeg.o) \
+	$(MODEL_LIB)(dynldf_bilap.o) \
+	$(MODEL_LIB)(dynldf_bilapg.o) \
+	$(MODEL_LIB)(dynldf_iso.o) \
+	$(MODEL_LIB)(dynldf_lap.o) \
+	$(MODEL_LIB)(dynnxt.o) \
+	$(MODEL_LIB)(dynnxt1d.o) \
+	$(MODEL_LIB)(dynspg_fsc.o) \
+	$(MODEL_LIB)(dynspg_fsc_atsk.o) \
+	$(MODEL_LIB)(dynspg_rl.o) \
+	$(MODEL_LIB)(dynvor.o) \
+	$(MODEL_LIB)(dynzad.o) \
+	$(MODEL_LIB)(dynzdf_exp.o) \
+	$(MODEL_LIB)(dynzdf_imp.o) \
+	$(MODEL_LIB)(dynzdf_imp_atsk.o) \
+	$(MODEL_LIB)(dynzdf_iso.o) \
+	$(MODEL_LIB)(eosbn2.o) \
+	$(MODEL_LIB)(flo_oce.o) \
+	$(MODEL_LIB)(floats.o) \
+	$(MODEL_LIB)(flx_oce.o) \
+	$(MODEL_LIB)(flxblk.o) \
+	$(MODEL_LIB)(flxfwb.o) \
 	$(MODEL_LIB)(flxmod.o) \
 	$(MODEL_LIB)(flxrnf.o) \
-	$(MODEL_LIB)(flx_oce.o) \
+	$(MODEL_LIB)(ice.o) \
 	$(MODEL_LIB)(ice_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(icestp.o) \
+	$(MODEL_LIB)(icestp1d.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(ini1d.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(ldfdyn_oce.o) \
+	$(MODEL_LIB)(ldfeiv.o) \
+	$(MODEL_LIB)(ldfslp.o) \
+	$(MODEL_LIB)(ldftra_oce.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(limistate.o) \
+	$(MODEL_LIB)(limmsh.o) \
+	$(MODEL_LIB)(limrst.o) \
+	$(MODEL_LIB)(obc_oce.o) \
 	$(MODEL_LIB)(obc_par.o) \
-	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(obcdom.o) \
+	$(MODEL_LIB)(obcdta.o) \
+	$(MODEL_LIB)(obcrad.o) \
+	$(MODEL_LIB)(obcrst.o) \
+	$(MODEL_LIB)(obcspg.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(ocesbc.o) \
 	$(MODEL_LIB)(ocfzpt.o) \
 	$(MODEL_LIB)(par_kind.o) \
 	$(MODEL_LIB)(par_oce.o) \
 	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(restart.o) \
+	$(MODEL_LIB)(sol_oce.o) \
+	$(MODEL_LIB)(solisl.o) \
+	$(MODEL_LIB)(solmat.o) \
+	$(MODEL_LIB)(stpctl.o) \
 	$(MODEL_LIB)(taumod.o) \
+	$(MODEL_LIB)(traadv_cen2.o) \
+	$(MODEL_LIB)(traadv_ctl.o) \
+	$(MODEL_LIB)(traadv_muscl.o) \
+	$(MODEL_LIB)(traadv_muscl2.o) \
+	$(MODEL_LIB)(traadv_tvd.o) \
+	$(MODEL_LIB)(trabbc.o) \
+	$(MODEL_LIB)(trabbl.o) \
 	$(MODEL_LIB)(tradmp.o) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_mpp.F90 \
-	obc_oce.F90 \
-	ocesbc.F90 \
-	oce.F90 \
-	phycst.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(obc_oce.o) \
-	$(MODEL_LIB)(ocesbc.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	domzgr_substitute.h90 \
-	obc_vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	obcvol.F90
-$(MODEL_LIB)(obc_oce.o) :	\
-	par_kind.F90 \
-	par_oce.F90 \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	obc_par.F90 \
-	par_oce.F90 \
-	$(MODEL_LIB)(obc_par.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	obc_oce.F90
-$(MODEL_LIB)(obc_par.o) :	\
-	par_kind.F90 \
-	$(MODEL_LIB)(par_kind.o) \
-	par_oce.F90 \
-	$(MODEL_LIB)(par_oce.o) \
-	obc_par_EEL_R5.h90 \
-	KEY_CPP \
-	obc_par.F90
-$(MODEL_LIB)(ocesbc.o) :	\
-	blk_oce.F90 \
-	daymod.F90 \
-	dom_oce.F90 \
-	dtasal.F90 \
-	dtatem.F90 \
-	flxrnf.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	oce.F90 \
-	ocfzpt.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.F90 \
-	trdmod.F90 \
-	trdmod_oce.F90 \
-	zdfmxl.F90 \
-	zdf_oce.F90 \
-	$(MODEL_LIB)(blk_oce.o) \
-	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dtasal.o) \
-	$(MODEL_LIB)(dtatem.o) \
-	$(MODEL_LIB)(flxrnf.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)(ocfzpt.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(traldf_bilap.o) \
+	$(MODEL_LIB)(traldf_bilapg.o) \
+	$(MODEL_LIB)(traldf_iso.o) \
+	$(MODEL_LIB)(traldf_iso_zps.o) \
+	$(MODEL_LIB)(traldf_lap.o) \
+	$(MODEL_LIB)(tranpc.o) \
+	$(MODEL_LIB)(tranxt.o) \
+	$(MODEL_LIB)(traqsr.o) \
+	$(MODEL_LIB)(trasbc.o) \
+	$(MODEL_LIB)(trazdf_exp.o) \
+	$(MODEL_LIB)(trazdf_imp.o) \
+	$(MODEL_LIB)(trazdf_iso.o) \
+	$(MODEL_LIB)(trazdf_iso_vopt.o) \
+	$(MODEL_LIB)(trc_oce.o) \
+	$(MODEL_LIB)(trcstp.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)(wzvmod.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfbfr.o) \
+	$(MODEL_LIB)(zdfddm.o) \
+	$(MODEL_LIB)(zdfevd.o) \
+	$(MODEL_LIB)(zdfkpp.o) \
 	$(MODEL_LIB)(zdfmxl.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	blk_oce.F90 \
-	cpl_oce.F90 \
-	daymod.F90 \
-	dom_oce.F90 \
-	dtasal.F90 \
-	dtasst.F90 \
-	dtatem.F90 \
-	flxmod.F90 \
-	flxrnf.F90 \
-	flx_oce.F90 \
-	ice_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	oce.F90 \
-	ocfzpt.F90 \
-	phycst.F90 \
-	taumod.F90 \
-	tradmp.F90 \
-	$(MODEL_LIB)(blk_oce.o) \
-	$(MODEL_LIB)(cpl_oce.o) \
-	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dtasal.o) \
-	$(MODEL_LIB)(dtasst.o) \
-	$(MODEL_LIB)(dtatem.o) \
-	$(MODEL_LIB)(flxmod.o) \
-	$(MODEL_LIB)(flxrnf.o) \
-	$(MODEL_LIB)(flx_oce.o) \
-	$(MODEL_LIB)(ice_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(ocfzpt.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(taumod.o) \
-	$(MODEL_LIB)(tradmp.o) \
-	domzgr_substitute.h90 \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	ocesbc.F90
-$(MODEL_LIB)(oce.o) :	\
-	par_kind.F90 \
-	$(MODEL_LIB)(par_kind.o) \
-	par_oce.F90 \
-	$(MODEL_LIB)(par_oce.o) \
-	oce.F90
-$(MODEL_LIB)(ocfzpt.o) :	\
-	par_oce.F90 \
-	$(MODEL_LIB)(par_oce.o) \
-	dom_oce.F90 \
-	oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(oce.o) \
-	ocfzpt.F90
-$(MODEL_LIB)(opa.o) :	\
+	$(MODEL_LIB)(zdfric.o) \
+	$(MODEL_LIB)(zdftke.o) \
+	$(MODEL_LIB)(zpshde.o) \
 	blk_oce.F90 \
 	cla.F90 \
@@ -4931,5 +5616,7 @@
 	diaspr.F90 \
 	diawri.F90 \
+	diawri1d.F90 \
 	divcur.F90 \
+	dom_oce.F90 \
 	domhgr.F90 \
 	dommsk.F90 \
@@ -4937,16 +5624,17 @@
 	domwri.F90 \
 	domzgr.F90 \
-	dom_oce.F90 \
 	dtasal.F90 \
 	dtasst.F90 \
 	dtatem.F90 \
+	dyncor1d.F90 \
 	dynhpg.F90 \
 	dynhpg_atsk.F90 \
 	dynkeg.F90 \
+	dynldf_bilap.F90 \
 	dynldf_bilapg.F90 \
-	dynldf_bilap.F90 \
 	dynldf_iso.F90 \
 	dynldf_lap.F90 \
 	dynnxt.F90 \
+	dynnxt1d.F90 \
 	dynspg_fsc.F90 \
 	dynspg_fsc_atsk.F90 \
@@ -4959,15 +5647,17 @@
 	dynzdf_iso.F90 \
 	eosbn2.F90 \
+	flo_oce.F90 \
 	floats.F90 \
-	flo_oce.F90 \
+	flx_oce.F90 \
 	flxblk.F90 \
 	flxfwb.F90 \
 	flxmod.F90 \
 	flxrnf.F90 \
-	flx_oce.F90 \
-	icestp.F90 \
 	ice.F90 \
 	ice_oce.F90 \
-	in_out_manager.F90 \
+	icestp.F90 \
+	icestp1d.F90 \
+	in_out_manager.F90 \
+	ini1d.F90 \
 	lbclnk.F90 \
 	ldfdyn_oce.F90 \
@@ -4980,4 +5670,6 @@
 	limmsh.F90 \
 	limrst.F90 \
+	obc_oce.F90 \
+	obc_par.F90 \
 	obcdom.F90 \
 	obcdta.F90 \
@@ -4985,28 +5677,27 @@
 	obcrst.F90 \
 	obcspg.F90 \
-	obc_oce.F90 \
-	obc_par.F90 \
+	oce.F90 \
 	ocesbc.F90 \
-	oce.F90 \
 	ocfzpt.F90 \
 	par_kind.F90 \
 	par_oce.F90 \
 	phycst.F90 \
+	prtctl.f90 \
 	restart.F90 \
+	sol_oce.F90 \
 	solisl.F90 \
 	solmat.F90 \
-	sol_oce.F90 \
 	stpctl.F90 \
 	taumod.F90 \
 	traadv_cen2.F90 \
 	traadv_ctl.F90 \
+	traadv_muscl.F90 \
 	traadv_muscl2.F90 \
-	traadv_muscl.F90 \
 	traadv_tvd.F90 \
 	trabbc.F90 \
 	trabbl.F90 \
 	tradmp.F90 \
+	traldf_bilap.F90 \
 	traldf_bilapg.F90 \
-	traldf_bilap.F90 \
 	traldf_iso.F90 \
 	traldf_iso_zps.F90 \
@@ -5020,6 +5711,6 @@
 	trazdf_iso.F90 \
 	trazdf_iso_vopt.F90 \
+	trc_oce.F90 \
 	trcstp.F90 \
-	trc_oce.F90 \
 	trdicp.F90 \
 	trdicp_oce.F90 \
@@ -5031,13 +5722,674 @@
 	trdvor_oce.F90 \
 	wzvmod.F90 \
+	zdf_oce.F90 \
 	zdfbfr.F90 \
 	zdfddm.F90 \
 	zdfevd.F90 \
+	zdfkpp.F90 \
 	zdfmxl.F90 \
 	zdfric.F90 \
 	zdftke.F90 \
+	zpshde.F90 \
+	$(MODEL_LIB)(cpl.o) \
+	$(MODEL_LIB)(cpl_oce.o) \
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(diaptr.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(domain.o) \
+	$(MODEL_LIB)(domcfg.o) \
+	$(MODEL_LIB)(dtasal.o) \
+	$(MODEL_LIB)(dtasst.o) \
+	$(MODEL_LIB)(dtatem.o) \
+	$(MODEL_LIB)(dyncor1d.o) \
+	$(MODEL_LIB)(eosbn2.o) \
+	$(MODEL_LIB)(flxfwb.o) \
+	$(MODEL_LIB)(iceini.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(ini1d.o) \
+	$(MODEL_LIB)(istate.o) \
+	$(MODEL_LIB)(ldfdyn.o) \
+	$(MODEL_LIB)(ldftra.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(mppini.o) \
+	$(MODEL_LIB)(obc_par.o) \
+	$(MODEL_LIB)(obcini.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(ocfzpt.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(solver.o) \
+	$(MODEL_LIB)(step.o) \
+	$(MODEL_LIB)(step1d.o) \
+	$(MODEL_LIB)(traqsr.o) \
+	$(MODEL_LIB)(trdicp.o) \
+	$(MODEL_LIB)(trdmld.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	$(MODEL_LIB)(trdvor.o) \
+	$(MODEL_LIB)(zdfini.o) \
+	$(MODEL_LIB)(zpshde.o) \
+	cpl.F90 \
+	cpl_oce.F90 \
+	daymod.F90 \
+	diaptr.F90 \
+	dom_oce.F90 \
+	domain.F90 \
+	domcfg.F90 \
+	dtasal.F90 \
+	dtasst.F90 \
+	dtatem.F90 \
+	dyncor1d.F90 \
+	eosbn2.F90 \
+	flxfwb.F90 \
+	iceini.F90 \
+	in_out_manager.F90 \
+	ini1d.F90 \
+	istate.F90 \
+	ldfdyn.F90 \
+	ldftra.F90 \
+	lib_mpp.F90 \
+	mppini.F90 \
+	obc_par.F90 \
+	obcini.F90 \
+	oce.F90 \
+	ocfzpt.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	solver.F90 \
+	step.F90 \
+	step1d.F90 \
+	traqsr.F90 \
+	trdicp.F90 \
+	trdmld.F90 \
+	trdmod_oce.F90 \
+	trdvor.F90 \
+	zdfini.F90 \
+	zpshde.F90 \
+	opa.F90
+$(MODEL_LIB)(par_ice.o) :	\
+	$(MODEL_LIB)(par_kind.o) \
+	par_kind.F90 \
+	$(MODEL_LIB)(par_oce.o) \
+	par_oce.F90 \
+	par_ice.F90
+$(MODEL_LIB)(par_oce.o) :	\
+	$(MODEL_LIB)(par_kind.o) \
+	par_kind.F90 \
+	par_EEL_R2.h90 \
+	par_EEL_R5.h90 \
+	par_EEL_R6.h90 \
+	par_GYRE.h90 \
+	par_ORCA_R025.h90 \
+	par_ORCA_R05.h90 \
+	par_ORCA_R2.h90 \
+	par_ORCA_R4.h90 \
+	KEY_CPP \
+	par_oce.F90
+$(MODEL_LIB)(phycst.o) :	\
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	lib_print.f90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	in_out_manager.F90 \
+	par_oce.F90 \
+	phycst.F90
+$(MODEL_LIB)(prtctl.o) :	\
+	$(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) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_print.f90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_mpp.F90 \
+	prtctl.f90
+$(MODEL_LIB)(restart.o) :	\
+	$(MODEL_LIB)(blk_oce.o) \
+	$(MODEL_LIB)(cla_dynspg.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dynzdf_exp.o) \
+	$(MODEL_LIB)(flxrnf.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(obc_oce.o) \
+	$(MODEL_LIB)(obcdyn.o) \
+	$(MODEL_LIB)(obcvol.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(ocesbc.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(sol_oce.o) \
+	$(MODEL_LIB)(solfet.o) \
+	$(MODEL_LIB)(solpcg.o) \
+	$(MODEL_LIB)(solsor.o) \
+	$(MODEL_LIB)(taumod.o) \
+	$(MODEL_LIB)(trazdf_exp.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	blk_oce.F90 \
+	cla_dynspg.F90 \
+	dom_oce.F90 \
+	dynzdf_exp.F90 \
+	flxrnf.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	obc_oce.F90 \
+	obcdyn.F90 \
+	obcvol.F90 \
+	oce.F90 \
+	ocesbc.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	sol_oce.F90 \
+	solfet.F90 \
+	solpcg.F90 \
+	solsor.F90 \
+	taumod.F90 \
+	trazdf_exp.F90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
 	zdf_oce.F90 \
-	zpshde.F90 \
 	$(MODEL_LIB)(blk_oce.o) \
+	$(MODEL_LIB)(cpl_oce.o) \
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dynspg_fsc.o) \
+	$(MODEL_LIB)(dynspg_fsc_atsk.o) \
+	$(MODEL_LIB)(flx_oce.o) \
+	$(MODEL_LIB)(ice_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(sol_oce.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdftke.o) \
+	blk_oce.F90 \
+	cpl_oce.F90 \
+	daymod.F90 \
+	dom_oce.F90 \
+	dynspg_fsc.F90 \
+	dynspg_fsc_atsk.F90 \
+	flx_oce.F90 \
+	ice_oce.F90 \
+	in_out_manager.F90 \
+	oce.F90 \
+	phycst.F90 \
+	sol_oce.F90 \
+	zdf_oce.F90 \
+	zdftke.F90 \
+	$(MODEL_LIB)(lib_mpp.o) \
+	lib_mpp.F90 \
+	restart_dimg.h90 \
+	../../../lib/libioipsl.a \
+	KEY_CPP \
+	restart.F90
+$(MODEL_LIB)(sol_oce.o) :	\
+	$(MODEL_LIB)(par_kind.o) \
+	par_kind.F90 \
+	$(MODEL_LIB)(par_oce.o) \
+	par_oce.F90 \
+	sol_oce.F90
+$(MODEL_LIB)(solfet.o) :	\
+	$(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) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_mpp.F90 \
+	oce.F90 \
+	par_oce.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(sol_oce.o) \
+	dom_oce.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	oce.F90 \
+	sol_oce.F90 \
+	solfet.F90
+$(MODEL_LIB)(solisl.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)(obc_par.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) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	obc_par.F90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	sol_oce.F90 \
+	zdf_oce.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)(sol_oce.o) \
+	$(MODEL_LIB)(solfet.o) \
+	$(MODEL_LIB)(solpcg.o) \
+	$(MODEL_LIB)(solsor.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_mpp.F90 \
+	obc_oce.F90 \
+	oce.F90 \
+	sol_oce.F90 \
+	solfet.F90 \
+	solpcg.F90 \
+	solsor.F90 \
+	../../../lib/libioipsl.a \
+	solisl.F90
+$(MODEL_LIB)(solmat.o) :	\
+	$(MODEL_LIB)(cla_dynspg.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(flxrnf.o) \
+	$(MODEL_LIB)(in_out_manager.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)(obc_par.o) \
+	$(MODEL_LIB)(obcdyn.o) \
+	$(MODEL_LIB)(obcvol.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(ocesbc.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(sol_oce.o) \
+	$(MODEL_LIB)(solfet.o) \
+	$(MODEL_LIB)(solisl.o) \
+	$(MODEL_LIB)(solpcg.o) \
+	$(MODEL_LIB)(solsor.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	cla_dynspg.F90 \
+	dom_oce.F90 \
+	flxrnf.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	ldfdyn_oce.F90 \
+	ldftra_oce.F90 \
+	lib_mpp.F90 \
+	obc_oce.F90 \
+	obc_par.F90 \
+	obcdyn.F90 \
+	obcvol.F90 \
+	oce.F90 \
+	ocesbc.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	sol_oce.F90 \
+	solfet.F90 \
+	solisl.F90 \
+	solpcg.F90 \
+	solsor.F90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
+	zdf_oce.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dynspg_fsc.o) \
+	$(MODEL_LIB)(dynspg_rl.o) \
+	$(MODEL_LIB)(lib_feti.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(obc_oce.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(sol_oce.o) \
+	dom_oce.F90 \
+	dynspg_fsc.F90 \
+	dynspg_rl.F90 \
+	lib_feti.F90 \
+	lib_mpp.F90 \
+	obc_oce.F90 \
+	oce.F90 \
+	phycst.F90 \
+	sol_oce.F90 \
+	solmat.F90
+$(MODEL_LIB)(solpcg.o) :	\
+	$(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) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_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)(sol_oce.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	oce.F90 \
+	sol_oce.F90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	solpcg.F90
+$(MODEL_LIB)(solsor.o) :	\
+	$(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) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_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)(sol_oce.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	oce.F90 \
+	sol_oce.F90 \
+	zdf_oce.F90 \
+	solsor.F90
+$(MODEL_LIB)(solver.o) :	\
+	$(MODEL_LIB)(cla_dynspg.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dynspg_fsc.o) \
+	$(MODEL_LIB)(dynspg_rl.o) \
+	$(MODEL_LIB)(flxrnf.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(ldfdyn_oce.o) \
+	$(MODEL_LIB)(ldftra_oce.o) \
+	$(MODEL_LIB)(lib_feti.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(obc_oce.o) \
+	$(MODEL_LIB)(obc_par.o) \
+	$(MODEL_LIB)(obcdyn.o) \
+	$(MODEL_LIB)(obcvol.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(ocesbc.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(sol_oce.o) \
+	$(MODEL_LIB)(solfet.o) \
+	$(MODEL_LIB)(solisl.o) \
+	$(MODEL_LIB)(solpcg.o) \
+	$(MODEL_LIB)(solsor.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	cla_dynspg.F90 \
+	dom_oce.F90 \
+	dynspg_fsc.F90 \
+	dynspg_rl.F90 \
+	flxrnf.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	ldfdyn_oce.F90 \
+	ldftra_oce.F90 \
+	lib_feti.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	obc_oce.F90 \
+	obc_par.F90 \
+	obcdyn.F90 \
+	obcvol.F90 \
+	oce.F90 \
+	ocesbc.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	sol_oce.F90 \
+	solfet.F90 \
+	solisl.F90 \
+	solpcg.F90 \
+	solsor.F90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
+	zdf_oce.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dynspg_fsc.o) \
+	$(MODEL_LIB)(dynspg_fsc_atsk.o) \
+	$(MODEL_LIB)(dynspg_rl.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)(sol_oce.o) \
+	$(MODEL_LIB)(solisl.o) \
+	$(MODEL_LIB)(solmat.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	dom_oce.F90 \
+	dynspg_fsc.F90 \
+	dynspg_fsc_atsk.F90 \
+	dynspg_rl.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	obc_oce.F90 \
+	oce.F90 \
+	sol_oce.F90 \
+	solisl.F90 \
+	solmat.F90 \
+	zdf_oce.F90 \
+	solver.F90
+$(MODEL_LIB)(step.o) :	\
+	$(MODEL_LIB)(blk_oce.o) \
+	$(MODEL_LIB)(cla_dynspg.o) \
+	$(MODEL_LIB)(cpl_oce.o) \
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(diadimg.o) \
+	$(MODEL_LIB)(diahth.o) \
+	$(MODEL_LIB)(dianam.o) \
+	$(MODEL_LIB)(diaptr.o) \
+	$(MODEL_LIB)(diaspr.o) \
+	$(MODEL_LIB)(diawri.o) \
+	$(MODEL_LIB)(dom_ice.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dtasal.o) \
+	$(MODEL_LIB)(dtasst.o) \
+	$(MODEL_LIB)(dtatem.o) \
+	$(MODEL_LIB)(dynspg_fsc.o) \
+	$(MODEL_LIB)(dynspg_fsc_atsk.o) \
+	$(MODEL_LIB)(dynspg_rl.o) \
+	$(MODEL_LIB)(dynzdf_exp.o) \
+	$(MODEL_LIB)(eosbn2.o) \
+	$(MODEL_LIB)(flo4rk.o) \
+	$(MODEL_LIB)(flo_oce.o) \
+	$(MODEL_LIB)(floblk.o) \
+	$(MODEL_LIB)(flodom.o) \
+	$(MODEL_LIB)(flowri.o) \
+	$(MODEL_LIB)(flx_oce.o) \
+	$(MODEL_LIB)(flxblk.o) \
+	$(MODEL_LIB)(flxmod.o) \
+	$(MODEL_LIB)(flxrnf.o) \
+	$(MODEL_LIB)(ice.o) \
+	$(MODEL_LIB)(ice_oce.o) \
+	$(MODEL_LIB)(iceini.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(ldfdyn_oce.o) \
+	$(MODEL_LIB)(ldfslp.o) \
+	$(MODEL_LIB)(ldftra_oce.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(limdia.o) \
+	$(MODEL_LIB)(limdyn.o) \
+	$(MODEL_LIB)(limflx.o) \
+	$(MODEL_LIB)(limrst.o) \
+	$(MODEL_LIB)(limthd.o) \
+	$(MODEL_LIB)(limtrp.o) \
+	$(MODEL_LIB)(limwri.o) \
+	$(MODEL_LIB)(obc_oce.o) \
+	$(MODEL_LIB)(obccli.o) \
+	$(MODEL_LIB)(obcdyn.o) \
+	$(MODEL_LIB)(obctra.o) \
+	$(MODEL_LIB)(obcvol.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(ocesbc.o) \
+	$(MODEL_LIB)(ocfzpt.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(sol_oce.o) \
+	$(MODEL_LIB)(solfet.o) \
+	$(MODEL_LIB)(solisl.o) \
+	$(MODEL_LIB)(solpcg.o) \
+	$(MODEL_LIB)(solsor.o) \
+	$(MODEL_LIB)(taumod.o) \
+	$(MODEL_LIB)(traadv_muscl.o) \
+	$(MODEL_LIB)(traadv_muscl2.o) \
+	$(MODEL_LIB)(traadv_tvd.o) \
+	$(MODEL_LIB)(trabbl.o) \
+	$(MODEL_LIB)(tradmp.o) \
+	$(MODEL_LIB)(traqsr.o) \
+	$(MODEL_LIB)(trazdf_exp.o) \
+	$(MODEL_LIB)(trc_oce.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
+	$(MODEL_LIB)(zdfkpp.o) \
+	$(MODEL_LIB)(zdfmxl.o) \
+	$(MODEL_LIB)(zdftke.o) \
+	blk_oce.F90 \
+	cla_dynspg.F90 \
+	cpl_oce.F90 \
+	daymod.F90 \
+	diadimg.F90 \
+	diahth.F90 \
+	dianam.F90 \
+	diaptr.F90 \
+	diaspr.F90 \
+	diawri.F90 \
+	dom_ice.F90 \
+	dom_oce.F90 \
+	dtasal.F90 \
+	dtasst.F90 \
+	dtatem.F90 \
+	dynspg_fsc.F90 \
+	dynspg_fsc_atsk.F90 \
+	dynspg_rl.F90 \
+	dynzdf_exp.F90 \
+	eosbn2.F90 \
+	flo4rk.F90 \
+	flo_oce.F90 \
+	floblk.F90 \
+	flodom.F90 \
+	flowri.F90 \
+	flx_oce.F90 \
+	flxblk.F90 \
+	flxmod.F90 \
+	flxrnf.F90 \
+	ice.F90 \
+	ice_oce.F90 \
+	iceini.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	ldfdyn_oce.F90 \
+	ldfslp.F90 \
+	ldftra_oce.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	limdia.F90 \
+	limdyn.F90 \
+	limflx.F90 \
+	limrst.F90 \
+	limthd.F90 \
+	limtrp.F90 \
+	limwri.F90 \
+	obc_oce.F90 \
+	obccli.F90 \
+	obcdyn.F90 \
+	obctra.F90 \
+	obcvol.F90 \
+	oce.F90 \
+	ocesbc.F90 \
+	ocfzpt.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	sol_oce.F90 \
+	solfet.F90 \
+	solisl.F90 \
+	solpcg.F90 \
+	solsor.F90 \
+	taumod.F90 \
+	traadv_muscl.F90 \
+	traadv_muscl2.F90 \
+	traadv_tvd.F90 \
+	trabbl.F90 \
+	tradmp.F90 \
+	traqsr.F90 \
+	trazdf_exp.F90 \
+	trc_oce.F90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
+	zdf_oce.F90 \
+	zdfddm.F90 \
+	zdfkpp.F90 \
+	zdfmxl.F90 \
+	zdftke.F90 \
 	$(MODEL_LIB)(cla.o) \
 	$(MODEL_LIB)(cla_div.o) \
@@ -5046,19 +6398,12 @@
 	$(MODEL_LIB)(cpl_oce.o) \
 	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(diadimg.o) \
 	$(MODEL_LIB)(diafwb.o) \
 	$(MODEL_LIB)(diagap.o) \
 	$(MODEL_LIB)(diahdy.o) \
 	$(MODEL_LIB)(diahth.o) \
-	$(MODEL_LIB)(dianam.o) \
 	$(MODEL_LIB)(diaptr.o) \
 	$(MODEL_LIB)(diaspr.o) \
 	$(MODEL_LIB)(diawri.o) \
 	$(MODEL_LIB)(divcur.o) \
-	$(MODEL_LIB)(domhgr.o) \
-	$(MODEL_LIB)(dommsk.o) \
-	$(MODEL_LIB)(domstp.o) \
-	$(MODEL_LIB)(domwri.o) \
-	$(MODEL_LIB)(domzgr.o) \
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(dtasal.o) \
@@ -5068,6 +6413,6 @@
 	$(MODEL_LIB)(dynhpg_atsk.o) \
 	$(MODEL_LIB)(dynkeg.o) \
+	$(MODEL_LIB)(dynldf_bilap.o) \
 	$(MODEL_LIB)(dynldf_bilapg.o) \
-	$(MODEL_LIB)(dynldf_bilap.o) \
 	$(MODEL_LIB)(dynldf_iso.o) \
 	$(MODEL_LIB)(dynldf_lap.o) \
@@ -5083,14 +6428,11 @@
 	$(MODEL_LIB)(dynzdf_iso.o) \
 	$(MODEL_LIB)(eosbn2.o) \
+	$(MODEL_LIB)(flo_oce.o) \
 	$(MODEL_LIB)(floats.o) \
-	$(MODEL_LIB)(flo_oce.o) \
-	$(MODEL_LIB)(flxblk.o) \
 	$(MODEL_LIB)(flxfwb.o) \
 	$(MODEL_LIB)(flxmod.o) \
 	$(MODEL_LIB)(flxrnf.o) \
-	$(MODEL_LIB)(flx_oce.o) \
+	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(icestp.o) \
-	$(MODEL_LIB)(ice.o) \
-	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(lbclnk.o) \
@@ -5099,38 +6441,26 @@
 	$(MODEL_LIB)(ldfslp.o) \
 	$(MODEL_LIB)(ldftra_oce.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(limistate.o) \
-	$(MODEL_LIB)(limmsh.o) \
-	$(MODEL_LIB)(limrst.o) \
-	$(MODEL_LIB)(obcdom.o) \
+	$(MODEL_LIB)(obc_par.o) \
 	$(MODEL_LIB)(obcdta.o) \
 	$(MODEL_LIB)(obcrad.o) \
 	$(MODEL_LIB)(obcrst.o) \
 	$(MODEL_LIB)(obcspg.o) \
-	$(MODEL_LIB)(obc_oce.o) \
-	$(MODEL_LIB)(obc_par.o) \
+	$(MODEL_LIB)(oce.o) \
 	$(MODEL_LIB)(ocesbc.o) \
-	$(MODEL_LIB)(oce.o) \
 	$(MODEL_LIB)(ocfzpt.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(restart.o) \
-	$(MODEL_LIB)(solisl.o) \
-	$(MODEL_LIB)(solmat.o) \
-	$(MODEL_LIB)(sol_oce.o) \
 	$(MODEL_LIB)(stpctl.o) \
 	$(MODEL_LIB)(taumod.o) \
 	$(MODEL_LIB)(traadv_cen2.o) \
 	$(MODEL_LIB)(traadv_ctl.o) \
+	$(MODEL_LIB)(traadv_muscl.o) \
 	$(MODEL_LIB)(traadv_muscl2.o) \
-	$(MODEL_LIB)(traadv_muscl.o) \
 	$(MODEL_LIB)(traadv_tvd.o) \
 	$(MODEL_LIB)(trabbc.o) \
 	$(MODEL_LIB)(trabbl.o) \
 	$(MODEL_LIB)(tradmp.o) \
+	$(MODEL_LIB)(traldf_bilap.o) \
 	$(MODEL_LIB)(traldf_bilapg.o) \
-	$(MODEL_LIB)(traldf_bilap.o) \
 	$(MODEL_LIB)(traldf_iso.o) \
 	$(MODEL_LIB)(traldf_iso_zps.o) \
@@ -5145,647 +6475,17 @@
 	$(MODEL_LIB)(trazdf_iso_vopt.o) \
 	$(MODEL_LIB)(trcstp.o) \
-	$(MODEL_LIB)(trc_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)(wzvmod.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
 	$(MODEL_LIB)(zdfbfr.o) \
 	$(MODEL_LIB)(zdfddm.o) \
 	$(MODEL_LIB)(zdfevd.o) \
+	$(MODEL_LIB)(zdfkpp.o) \
 	$(MODEL_LIB)(zdfmxl.o) \
 	$(MODEL_LIB)(zdfric.o) \
 	$(MODEL_LIB)(zdftke.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
 	$(MODEL_LIB)(zpshde.o) \
-	cpl.F90 \
-	cpl_oce.F90 \
-	daymod.F90 \
-	diaptr.F90 \
-	domain.F90 \
-	domcfg.F90 \
-	dom_oce.F90 \
-	dtasal.F90 \
-	dtasst.F90 \
-	dtatem.F90 \
-	eosbn2.F90 \
-	flxfwb.F90 \
-	iceini.F90 \
-	in_out_manager.F90 \
-	istate.F90 \
-	ldfdyn.F90 \
-	ldftra.F90 \
-	lib_mpp.F90 \
-	mppini.F90 \
-	obcini.F90 \
-	obc_par.F90 \
-	oce.F90 \
-	ocfzpt.F90 \
-	phycst.F90 \
-	solver.F90 \
-	step.F90 \
-	traqsr.F90 \
-	trdicp.F90 \
-	trdmld.F90 \
-	trdmod_oce.F90 \
-	trdvor.F90 \
-	zdfini.F90 \
-	zpshde.F90 \
-	$(MODEL_LIB)(cpl.o) \
-	$(MODEL_LIB)(cpl_oce.o) \
-	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(diaptr.o) \
-	$(MODEL_LIB)(domain.o) \
-	$(MODEL_LIB)(domcfg.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dtasal.o) \
-	$(MODEL_LIB)(dtasst.o) \
-	$(MODEL_LIB)(dtatem.o) \
-	$(MODEL_LIB)(eosbn2.o) \
-	$(MODEL_LIB)(flxfwb.o) \
-	$(MODEL_LIB)(iceini.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(istate.o) \
-	$(MODEL_LIB)(ldfdyn.o) \
-	$(MODEL_LIB)(ldftra.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(mppini.o) \
-	$(MODEL_LIB)(obcini.o) \
-	$(MODEL_LIB)(obc_par.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(ocfzpt.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(solver.o) \
-	$(MODEL_LIB)(step.o) \
-	$(MODEL_LIB)(traqsr.o) \
-	$(MODEL_LIB)(trdicp.o) \
-	$(MODEL_LIB)(trdmld.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	$(MODEL_LIB)(trdvor.o) \
-	$(MODEL_LIB)(zdfini.o) \
-	$(MODEL_LIB)(zpshde.o) \
-	opa.F90
-$(MODEL_LIB)(par_ice.o) :	\
-	par_kind.F90 \
-	$(MODEL_LIB)(par_kind.o) \
-	par_oce.F90 \
-	$(MODEL_LIB)(par_oce.o) \
-	par_ice.F90
-$(MODEL_LIB)(par_oce.o) :	\
-	par_kind.F90 \
-	$(MODEL_LIB)(par_kind.o) \
-	par_EEL_R2.h90 \
-	par_EEL_R5.h90 \
-	par_EEL_R6.h90 \
-	par_GYRE.h90 \
-	par_ORCA_R025.h90 \
-	par_ORCA_R05.h90 \
-	par_ORCA_R2.h90 \
-	par_ORCA_R4.h90 \
-	KEY_CPP \
-	par_oce.F90
-$(MODEL_LIB)(phycst.o) :	\
-	lib_print.f90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	in_out_manager.F90 \
-	par_oce.F90 \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	phycst.F90
-$(MODEL_LIB)(restart.o) :	\
-	blk_oce.F90 \
-	cla_dynspg.F90 \
-	dom_oce.F90 \
-	dynzdf_exp.F90 \
-	flxrnf.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	obcdyn.F90 \
-	obcvol.F90 \
-	obc_oce.F90 \
-	ocesbc.F90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.F90 \
-	solfet.F90 \
-	solpcg.F90 \
-	solsor.F90 \
-	sol_oce.F90 \
-	taumod.F90 \
-	trazdf_exp.F90 \
-	trdmod.F90 \
-	trdmod_oce.F90 \
-	zdf_oce.F90 \
-	$(MODEL_LIB)(blk_oce.o) \
-	$(MODEL_LIB)(cla_dynspg.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dynzdf_exp.o) \
-	$(MODEL_LIB)(flxrnf.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(obcdyn.o) \
-	$(MODEL_LIB)(obcvol.o) \
-	$(MODEL_LIB)(obc_oce.o) \
-	$(MODEL_LIB)(ocesbc.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)(solpcg.o) \
-	$(MODEL_LIB)(solsor.o) \
-	$(MODEL_LIB)(sol_oce.o) \
-	$(MODEL_LIB)(taumod.o) \
-	$(MODEL_LIB)(trazdf_exp.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	blk_oce.F90 \
-	cpl_oce.F90 \
-	daymod.F90 \
-	dom_oce.F90 \
-	dynspg_fsc.F90 \
-	dynspg_fsc_atsk.F90 \
-	flx_oce.F90 \
-	ice_oce.F90 \
-	in_out_manager.F90 \
-	oce.F90 \
-	phycst.F90 \
-	sol_oce.F90 \
-	zdftke.F90 \
-	zdf_oce.F90 \
-	$(MODEL_LIB)(blk_oce.o) \
-	$(MODEL_LIB)(cpl_oce.o) \
-	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dynspg_fsc.o) \
-	$(MODEL_LIB)(dynspg_fsc_atsk.o) \
-	$(MODEL_LIB)(flx_oce.o) \
-	$(MODEL_LIB)(ice_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(sol_oce.o) \
-	$(MODEL_LIB)(zdftke.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	lib_mpp.F90 \
-	$(MODEL_LIB)(lib_mpp.o) \
-	restart_dimg.h90 \
-	../../../lib/libioipsl.a \
-	KEY_CPP \
-	restart.F90
-$(MODEL_LIB)(solfet.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_mpp.F90 \
-	oce.F90 \
-	par_oce.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) \
-	dom_oce.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	oce.F90 \
-	sol_oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(sol_oce.o) \
-	solfet.F90
-$(MODEL_LIB)(solisl.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	obc_par.F90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	sol_oce.F90 \
-	zdf_oce.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)(obc_par.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) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_mpp.F90 \
-	obc_oce.F90 \
-	oce.F90 \
-	solfet.F90 \
-	solpcg.F90 \
-	solsor.F90 \
-	sol_oce.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)(solfet.o) \
-	$(MODEL_LIB)(solpcg.o) \
-	$(MODEL_LIB)(solsor.o) \
-	$(MODEL_LIB)(sol_oce.o) \
-	../../../lib/libioipsl.a \
-	solisl.F90
-$(MODEL_LIB)(solmat.o) :	\
-	cla_dynspg.F90 \
-	dom_oce.F90 \
-	flxrnf.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	ldfdyn_oce.F90 \
-	ldftra_oce.F90 \
-	lib_mpp.F90 \
-	obcdyn.F90 \
-	obcvol.F90 \
-	obc_oce.F90 \
-	obc_par.F90 \
-	ocesbc.F90 \
-	oce.F90 \
-	par_oce.F90 \
-	phycst.F90 \
-	solfet.F90 \
-	solisl.F90 \
-	solpcg.F90 \
-	solsor.F90 \
-	sol_oce.F90 \
-	trdmod.F90 \
-	trdmod_oce.F90 \
-	zdf_oce.F90 \
-	$(MODEL_LIB)(cla_dynspg.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(flxrnf.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(ldfdyn_oce.o) \
-	$(MODEL_LIB)(ldftra_oce.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(obcdyn.o) \
-	$(MODEL_LIB)(obcvol.o) \
-	$(MODEL_LIB)(obc_oce.o) \
-	$(MODEL_LIB)(obc_par.o) \
-	$(MODEL_LIB)(ocesbc.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(solfet.o) \
-	$(MODEL_LIB)(solisl.o) \
-	$(MODEL_LIB)(solpcg.o) \
-	$(MODEL_LIB)(solsor.o) \
-	$(MODEL_LIB)(sol_oce.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	dom_oce.F90 \
-	dynspg_fsc.F90 \
-	dynspg_rl.F90 \
-	lib_feti.F90 \
-	lib_mpp.F90 \
-	obc_oce.F90 \
-	oce.F90 \
-	phycst.F90 \
-	sol_oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dynspg_fsc.o) \
-	$(MODEL_LIB)(dynspg_rl.o) \
-	$(MODEL_LIB)(lib_feti.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(obc_oce.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(sol_oce.o) \
-	solmat.F90
-$(MODEL_LIB)(solpcg.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.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) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	oce.F90 \
-	sol_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)(sol_oce.o) \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	solpcg.F90
-$(MODEL_LIB)(solsor.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.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) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	oce.F90 \
-	sol_oce.F90 \
-	zdf_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)(sol_oce.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	solsor.F90
-$(MODEL_LIB)(solver.o) :	\
-	cla_dynspg.F90 \
-	dom_oce.F90 \
-	dynspg_fsc.F90 \
-	dynspg_rl.F90 \
-	flxrnf.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	ldfdyn_oce.F90 \
-	ldftra_oce.F90 \
-	lib_feti.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	obcdyn.F90 \
-	obcvol.F90 \
-	obc_oce.F90 \
-	obc_par.F90 \
-	ocesbc.F90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.F90 \
-	solfet.F90 \
-	solisl.F90 \
-	solpcg.F90 \
-	solsor.F90 \
-	sol_oce.F90 \
-	trdmod.F90 \
-	trdmod_oce.F90 \
-	zdf_oce.F90 \
-	$(MODEL_LIB)(cla_dynspg.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dynspg_fsc.o) \
-	$(MODEL_LIB)(dynspg_rl.o) \
-	$(MODEL_LIB)(flxrnf.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(ldfdyn_oce.o) \
-	$(MODEL_LIB)(ldftra_oce.o) \
-	$(MODEL_LIB)(lib_feti.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(obcdyn.o) \
-	$(MODEL_LIB)(obcvol.o) \
-	$(MODEL_LIB)(obc_oce.o) \
-	$(MODEL_LIB)(obc_par.o) \
-	$(MODEL_LIB)(ocesbc.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)(solpcg.o) \
-	$(MODEL_LIB)(solsor.o) \
-	$(MODEL_LIB)(sol_oce.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	dom_oce.F90 \
-	dynspg_fsc.F90 \
-	dynspg_fsc_atsk.F90 \
-	dynspg_rl.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	obc_oce.F90 \
-	oce.F90 \
-	solisl.F90 \
-	solmat.F90 \
-	sol_oce.F90 \
-	zdf_oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dynspg_fsc.o) \
-	$(MODEL_LIB)(dynspg_fsc_atsk.o) \
-	$(MODEL_LIB)(dynspg_rl.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) \
-	$(MODEL_LIB)(solmat.o) \
-	$(MODEL_LIB)(sol_oce.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	solver.F90
-$(MODEL_LIB)(sol_oce.o) :	\
-	par_kind.F90 \
-	$(MODEL_LIB)(par_kind.o) \
-	par_oce.F90 \
-	$(MODEL_LIB)(par_oce.o) \
-	sol_oce.F90
-$(MODEL_LIB)(step.o) :	\
-	blk_oce.F90 \
-	cla_dynspg.F90 \
-	cpl_oce.F90 \
-	daymod.F90 \
-	diadimg.F90 \
-	diahth.F90 \
-	dianam.F90 \
-	diaptr.F90 \
-	diaspr.F90 \
-	diawri.F90 \
-	dom_ice.F90 \
-	dom_oce.F90 \
-	dtasal.F90 \
-	dtasst.F90 \
-	dtatem.F90 \
-	dynspg_fsc.F90 \
-	dynspg_fsc_atsk.F90 \
-	dynspg_rl.F90 \
-	dynzdf_exp.F90 \
-	eosbn2.F90 \
-	flo4rk.F90 \
-	floblk.F90 \
-	flodom.F90 \
-	flowri.F90 \
-	flo_oce.F90 \
-	flxblk.F90 \
-	flxmod.F90 \
-	flxrnf.F90 \
-	flx_oce.F90 \
-	iceini.F90 \
-	ice.F90 \
-	ice_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	ldfdyn_oce.F90 \
-	ldfslp.F90 \
-	ldftra_oce.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	limdia.F90 \
-	limdyn.F90 \
-	limflx.F90 \
-	limrst.F90 \
-	limthd.F90 \
-	limtrp.F90 \
-	limwri.F90 \
-	obccli.F90 \
-	obcdyn.F90 \
-	obctra.F90 \
-	obcvol.F90 \
-	obc_oce.F90 \
-	ocesbc.F90 \
-	oce.F90 \
-	ocfzpt.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.F90 \
-	solfet.F90 \
-	solisl.F90 \
-	solpcg.F90 \
-	solsor.F90 \
-	sol_oce.F90 \
-	taumod.F90 \
-	traadv_muscl2.F90 \
-	traadv_muscl.F90 \
-	traadv_tvd.F90 \
-	trabbl.F90 \
-	tradmp.F90 \
-	traqsr.F90 \
-	trazdf_exp.F90 \
-	trc_oce.F90 \
-	trdmod.F90 \
-	trdmod_oce.F90 \
-	zdfddm.F90 \
-	zdfmxl.F90 \
-	zdftke.F90 \
-	zdf_oce.F90 \
-	$(MODEL_LIB)(blk_oce.o) \
-	$(MODEL_LIB)(cla_dynspg.o) \
-	$(MODEL_LIB)(cpl_oce.o) \
-	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(diadimg.o) \
-	$(MODEL_LIB)(diahth.o) \
-	$(MODEL_LIB)(dianam.o) \
-	$(MODEL_LIB)(diaptr.o) \
-	$(MODEL_LIB)(diaspr.o) \
-	$(MODEL_LIB)(diawri.o) \
-	$(MODEL_LIB)(dom_ice.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dtasal.o) \
-	$(MODEL_LIB)(dtasst.o) \
-	$(MODEL_LIB)(dtatem.o) \
-	$(MODEL_LIB)(dynspg_fsc.o) \
-	$(MODEL_LIB)(dynspg_fsc_atsk.o) \
-	$(MODEL_LIB)(dynspg_rl.o) \
-	$(MODEL_LIB)(dynzdf_exp.o) \
-	$(MODEL_LIB)(eosbn2.o) \
-	$(MODEL_LIB)(flo4rk.o) \
-	$(MODEL_LIB)(floblk.o) \
-	$(MODEL_LIB)(flodom.o) \
-	$(MODEL_LIB)(flowri.o) \
-	$(MODEL_LIB)(flo_oce.o) \
-	$(MODEL_LIB)(flxblk.o) \
-	$(MODEL_LIB)(flxmod.o) \
-	$(MODEL_LIB)(flxrnf.o) \
-	$(MODEL_LIB)(flx_oce.o) \
-	$(MODEL_LIB)(iceini.o) \
-	$(MODEL_LIB)(ice.o) \
-	$(MODEL_LIB)(ice_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(ldfdyn_oce.o) \
-	$(MODEL_LIB)(ldfslp.o) \
-	$(MODEL_LIB)(ldftra_oce.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(limdia.o) \
-	$(MODEL_LIB)(limdyn.o) \
-	$(MODEL_LIB)(limflx.o) \
-	$(MODEL_LIB)(limrst.o) \
-	$(MODEL_LIB)(limthd.o) \
-	$(MODEL_LIB)(limtrp.o) \
-	$(MODEL_LIB)(limwri.o) \
-	$(MODEL_LIB)(obccli.o) \
-	$(MODEL_LIB)(obcdyn.o) \
-	$(MODEL_LIB)(obctra.o) \
-	$(MODEL_LIB)(obcvol.o) \
-	$(MODEL_LIB)(obc_oce.o) \
-	$(MODEL_LIB)(ocesbc.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(ocfzpt.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)(solpcg.o) \
-	$(MODEL_LIB)(solsor.o) \
-	$(MODEL_LIB)(sol_oce.o) \
-	$(MODEL_LIB)(taumod.o) \
-	$(MODEL_LIB)(traadv_muscl2.o) \
-	$(MODEL_LIB)(traadv_muscl.o) \
-	$(MODEL_LIB)(traadv_tvd.o) \
-	$(MODEL_LIB)(trabbl.o) \
-	$(MODEL_LIB)(tradmp.o) \
-	$(MODEL_LIB)(traqsr.o) \
-	$(MODEL_LIB)(trazdf_exp.o) \
-	$(MODEL_LIB)(trc_oce.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	$(MODEL_LIB)(zdfddm.o) \
-	$(MODEL_LIB)(zdfmxl.o) \
-	$(MODEL_LIB)(zdftke.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
 	cla.F90 \
 	cla_div.F90 \
@@ -5809,6 +6509,6 @@
 	dynhpg_atsk.F90 \
 	dynkeg.F90 \
+	dynldf_bilap.F90 \
 	dynldf_bilapg.F90 \
-	dynldf_bilap.F90 \
 	dynldf_iso.F90 \
 	dynldf_lap.F90 \
@@ -5824,11 +6524,11 @@
 	dynzdf_iso.F90 \
 	eosbn2.F90 \
+	flo_oce.F90 \
 	floats.F90 \
-	flo_oce.F90 \
 	flxfwb.F90 \
 	flxmod.F90 \
 	flxrnf.F90 \
+	ice_oce.F90 \
 	icestp.F90 \
-	ice_oce.F90 \
 	in_out_manager.F90 \
 	lbclnk.F90 \
@@ -5837,12 +6537,13 @@
 	ldfslp.F90 \
 	ldftra_oce.F90 \
+	obc_par.F90 \
 	obcdta.F90 \
 	obcrad.F90 \
 	obcrst.F90 \
 	obcspg.F90 \
-	obc_par.F90 \
+	oce.F90 \
 	ocesbc.F90 \
-	oce.F90 \
 	ocfzpt.F90 \
+	prtctl.f90 \
 	restart.F90 \
 	stpctl.F90 \
@@ -5850,12 +6551,12 @@
 	traadv_cen2.F90 \
 	traadv_ctl.F90 \
+	traadv_muscl.F90 \
 	traadv_muscl2.F90 \
-	traadv_muscl.F90 \
 	traadv_tvd.F90 \
 	trabbc.F90 \
 	trabbl.F90 \
 	tradmp.F90 \
+	traldf_bilap.F90 \
 	traldf_bilapg.F90 \
-	traldf_bilap.F90 \
 	traldf_iso.F90 \
 	traldf_iso_zps.F90 \
@@ -5874,43 +6575,147 @@
 	trdvor.F90 \
 	wzvmod.F90 \
+	zdf_oce.F90 \
 	zdfbfr.F90 \
 	zdfddm.F90 \
 	zdfevd.F90 \
+	zdfkpp.F90 \
 	zdfmxl.F90 \
 	zdfric.F90 \
 	zdftke.F90 \
-	zdf_oce.F90 \
 	zpshde.F90 \
-	$(MODEL_LIB)(cla.o) \
-	$(MODEL_LIB)(cla_div.o) \
-	$(MODEL_LIB)(closea.o) \
-	$(MODEL_LIB)(cpl.o) \
+	domzgr_substitute.h90 \
+	zdfddm_substitute.h90 \
+	KEY_CPP \
+	step.F90
+$(MODEL_LIB)(step1d.o) :	\
+	$(MODEL_LIB)(blk_oce.o) \
 	$(MODEL_LIB)(cpl_oce.o) \
 	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(diafwb.o) \
-	$(MODEL_LIB)(diagap.o) \
-	$(MODEL_LIB)(diahdy.o) \
+	$(MODEL_LIB)(diadimg.o) \
 	$(MODEL_LIB)(diahth.o) \
-	$(MODEL_LIB)(diaptr.o) \
+	$(MODEL_LIB)(dianam.o) \
 	$(MODEL_LIB)(diaspr.o) \
 	$(MODEL_LIB)(diawri.o) \
-	$(MODEL_LIB)(divcur.o) \
+	$(MODEL_LIB)(dom_ice.o) \
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(dtasal.o) \
 	$(MODEL_LIB)(dtasst.o) \
 	$(MODEL_LIB)(dtatem.o) \
-	$(MODEL_LIB)(dynhpg.o) \
-	$(MODEL_LIB)(dynhpg_atsk.o) \
-	$(MODEL_LIB)(dynkeg.o) \
-	$(MODEL_LIB)(dynldf_bilapg.o) \
-	$(MODEL_LIB)(dynldf_bilap.o) \
-	$(MODEL_LIB)(dynldf_iso.o) \
-	$(MODEL_LIB)(dynldf_lap.o) \
-	$(MODEL_LIB)(dynnxt.o) \
 	$(MODEL_LIB)(dynspg_fsc.o) \
 	$(MODEL_LIB)(dynspg_fsc_atsk.o) \
-	$(MODEL_LIB)(dynspg_rl.o) \
-	$(MODEL_LIB)(dynvor.o) \
-	$(MODEL_LIB)(dynzad.o) \
+	$(MODEL_LIB)(dynzdf_exp.o) \
+	$(MODEL_LIB)(eosbn2.o) \
+	$(MODEL_LIB)(flx_oce.o) \
+	$(MODEL_LIB)(flxblk.o) \
+	$(MODEL_LIB)(flxmod.o) \
+	$(MODEL_LIB)(flxrnf.o) \
+	$(MODEL_LIB)(ice.o) \
+	$(MODEL_LIB)(ice_oce.o) \
+	$(MODEL_LIB)(iceini.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(ldfdyn_oce.o) \
+	$(MODEL_LIB)(ldfslp.o) \
+	$(MODEL_LIB)(ldftra_oce.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(limdia.o) \
+	$(MODEL_LIB)(limdyn.o) \
+	$(MODEL_LIB)(limflx.o) \
+	$(MODEL_LIB)(limrst.o) \
+	$(MODEL_LIB)(limthd.o) \
+	$(MODEL_LIB)(limtrp.o) \
+	$(MODEL_LIB)(limwri.o) \
+	$(MODEL_LIB)(obctra.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(ocesbc.o) \
+	$(MODEL_LIB)(ocfzpt.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(sol_oce.o) \
+	$(MODEL_LIB)(solisl.o) \
+	$(MODEL_LIB)(taumod.o) \
+	$(MODEL_LIB)(tradmp.o) \
+	$(MODEL_LIB)(traqsr.o) \
+	$(MODEL_LIB)(trazdf_exp.o) \
+	$(MODEL_LIB)(trc_oce.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
+	$(MODEL_LIB)(zdfkpp.o) \
+	$(MODEL_LIB)(zdfmxl.o) \
+	$(MODEL_LIB)(zdftke.o) \
+	blk_oce.F90 \
+	cpl_oce.F90 \
+	daymod.F90 \
+	diadimg.F90 \
+	diahth.F90 \
+	dianam.F90 \
+	diaspr.F90 \
+	diawri.F90 \
+	dom_ice.F90 \
+	dom_oce.F90 \
+	dtasal.F90 \
+	dtasst.F90 \
+	dtatem.F90 \
+	dynspg_fsc.F90 \
+	dynspg_fsc_atsk.F90 \
+	dynzdf_exp.F90 \
+	eosbn2.F90 \
+	flx_oce.F90 \
+	flxblk.F90 \
+	flxmod.F90 \
+	flxrnf.F90 \
+	ice.F90 \
+	ice_oce.F90 \
+	iceini.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	ldfdyn_oce.F90 \
+	ldfslp.F90 \
+	ldftra_oce.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	limdia.F90 \
+	limdyn.F90 \
+	limflx.F90 \
+	limrst.F90 \
+	limthd.F90 \
+	limtrp.F90 \
+	limwri.F90 \
+	obctra.F90 \
+	oce.F90 \
+	ocesbc.F90 \
+	ocfzpt.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	sol_oce.F90 \
+	solisl.F90 \
+	taumod.F90 \
+	tradmp.F90 \
+	traqsr.F90 \
+	trazdf_exp.F90 \
+	trc_oce.F90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
+	zdf_oce.F90 \
+	zdfddm.F90 \
+	zdfkpp.F90 \
+	zdfmxl.F90 \
+	zdftke.F90 \
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(diawri.o) \
+	$(MODEL_LIB)(diawri1d.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dtasal.o) \
+	$(MODEL_LIB)(dtasst.o) \
+	$(MODEL_LIB)(dtatem.o) \
+	$(MODEL_LIB)(dyncor1d.o) \
+	$(MODEL_LIB)(dynnxt1d.o) \
 	$(MODEL_LIB)(dynzdf_exp.o) \
 	$(MODEL_LIB)(dynzdf_imp.o) \
@@ -5918,42 +6723,19 @@
 	$(MODEL_LIB)(dynzdf_iso.o) \
 	$(MODEL_LIB)(eosbn2.o) \
-	$(MODEL_LIB)(floats.o) \
-	$(MODEL_LIB)(flo_oce.o) \
 	$(MODEL_LIB)(flxfwb.o) \
 	$(MODEL_LIB)(flxmod.o) \
 	$(MODEL_LIB)(flxrnf.o) \
-	$(MODEL_LIB)(icestp.o) \
 	$(MODEL_LIB)(ice_oce.o) \
+	$(MODEL_LIB)(icestp1d.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(lbclnk.o) \
 	$(MODEL_LIB)(ldfdyn_oce.o) \
-	$(MODEL_LIB)(ldfeiv.o) \
-	$(MODEL_LIB)(ldfslp.o) \
 	$(MODEL_LIB)(ldftra_oce.o) \
-	$(MODEL_LIB)(obcdta.o) \
-	$(MODEL_LIB)(obcrad.o) \
-	$(MODEL_LIB)(obcrst.o) \
-	$(MODEL_LIB)(obcspg.o) \
-	$(MODEL_LIB)(obc_par.o) \
+	$(MODEL_LIB)(oce.o) \
 	$(MODEL_LIB)(ocesbc.o) \
-	$(MODEL_LIB)(oce.o) \
 	$(MODEL_LIB)(ocfzpt.o) \
 	$(MODEL_LIB)(restart.o) \
 	$(MODEL_LIB)(stpctl.o) \
 	$(MODEL_LIB)(taumod.o) \
-	$(MODEL_LIB)(traadv_cen2.o) \
-	$(MODEL_LIB)(traadv_ctl.o) \
-	$(MODEL_LIB)(traadv_muscl2.o) \
-	$(MODEL_LIB)(traadv_muscl.o) \
-	$(MODEL_LIB)(traadv_tvd.o) \
-	$(MODEL_LIB)(trabbc.o) \
-	$(MODEL_LIB)(trabbl.o) \
-	$(MODEL_LIB)(tradmp.o) \
-	$(MODEL_LIB)(traldf_bilapg.o) \
-	$(MODEL_LIB)(traldf_bilap.o) \
-	$(MODEL_LIB)(traldf_iso.o) \
-	$(MODEL_LIB)(traldf_iso_zps.o) \
-	$(MODEL_LIB)(traldf_lap.o) \
-	$(MODEL_LIB)(tranpc.o) \
 	$(MODEL_LIB)(tranxt.o) \
 	$(MODEL_LIB)(traqsr.o) \
@@ -5963,22 +6745,91 @@
 	$(MODEL_LIB)(trazdf_iso.o) \
 	$(MODEL_LIB)(trazdf_iso_vopt.o) \
-	$(MODEL_LIB)(trcstp.o) \
-	$(MODEL_LIB)(trdicp.o) \
-	$(MODEL_LIB)(trdmld.o) \
-	$(MODEL_LIB)(trdvor.o) \
-	$(MODEL_LIB)(wzvmod.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
 	$(MODEL_LIB)(zdfbfr.o) \
 	$(MODEL_LIB)(zdfddm.o) \
 	$(MODEL_LIB)(zdfevd.o) \
+	$(MODEL_LIB)(zdfkpp.o) \
 	$(MODEL_LIB)(zdfmxl.o) \
 	$(MODEL_LIB)(zdfric.o) \
 	$(MODEL_LIB)(zdftke.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	$(MODEL_LIB)(zpshde.o) \
+	daymod.F90 \
+	diawri.F90 \
+	diawri1d.F90 \
+	dom_oce.F90 \
+	dtasal.F90 \
+	dtasst.F90 \
+	dtatem.F90 \
+	dyncor1d.F90 \
+	dynnxt1d.F90 \
+	dynzdf_exp.F90 \
+	dynzdf_imp.F90 \
+	dynzdf_imp_atsk.F90 \
+	dynzdf_iso.F90 \
+	eosbn2.F90 \
+	flxfwb.F90 \
+	flxmod.F90 \
+	flxrnf.F90 \
+	ice_oce.F90 \
+	icestp1d.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	ldfdyn_oce.F90 \
+	ldftra_oce.F90 \
+	oce.F90 \
+	ocesbc.F90 \
+	ocfzpt.F90 \
+	restart.F90 \
+	stpctl.F90 \
+	taumod.F90 \
+	tranxt.F90 \
+	traqsr.F90 \
+	trasbc.F90 \
+	trazdf_exp.F90 \
+	trazdf_imp.F90 \
+	trazdf_iso.F90 \
+	trazdf_iso_vopt.F90 \
+	zdf_oce.F90 \
+	zdfbfr.F90 \
+	zdfddm.F90 \
+	zdfevd.F90 \
+	zdfkpp.F90 \
+	zdfmxl.F90 \
+	zdfric.F90 \
+	zdftke.F90 \
 	domzgr_substitute.h90 \
 	zdfddm_substitute.h90 \
 	KEY_CPP \
-	step.F90
+	step1d.F90
 $(MODEL_LIB)(stpctl.o) :	\
+	$(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)(flx_oce.o) \
+	$(MODEL_LIB)(flxrnf.o) \
+	$(MODEL_LIB)(ice_oce.o) \
+	$(MODEL_LIB)(in_out_manager.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)(ocesbc.o) \
+	$(MODEL_LIB)(ocfzpt.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(sol_oce.o) \
+	$(MODEL_LIB)(solfet.o) \
+	$(MODEL_LIB)(solpcg.o) \
+	$(MODEL_LIB)(solsor.o) \
+	$(MODEL_LIB)(taumod.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
+	$(MODEL_LIB)(zdfmxl.o) \
 	daymod.F90 \
 	diadimg.F90 \
@@ -5987,6 +6838,6 @@
 	diaspr.F90 \
 	dom_oce.F90 \
+	flx_oce.F90 \
 	flxrnf.F90 \
-	flx_oce.F90 \
 	ice_oce.F90 \
 	in_out_manager.F90 \
@@ -5997,48 +6848,26 @@
 	lib_print.f90 \
 	obc_oce.F90 \
+	oce.F90 \
 	ocesbc.F90 \
-	oce.F90 \
 	ocfzpt.F90 \
 	par_kind.F90 \
 	par_oce.F90 \
 	phycst.F90 \
+	sol_oce.F90 \
 	solfet.F90 \
 	solpcg.F90 \
 	solsor.F90 \
-	sol_oce.F90 \
 	taumod.F90 \
+	zdf_oce.F90 \
 	zdfddm.F90 \
 	zdfmxl.F90 \
-	zdf_oce.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)(flxrnf.o) \
-	$(MODEL_LIB)(flx_oce.o) \
-	$(MODEL_LIB)(ice_oce.o) \
-	$(MODEL_LIB)(in_out_manager.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)(ocesbc.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(ocfzpt.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(solfet.o) \
-	$(MODEL_LIB)(solpcg.o) \
-	$(MODEL_LIB)(solsor.o) \
+	$(MODEL_LIB)(diawri.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) \
 	$(MODEL_LIB)(sol_oce.o) \
-	$(MODEL_LIB)(taumod.o) \
-	$(MODEL_LIB)(zdfddm.o) \
-	$(MODEL_LIB)(zdfmxl.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(solisl.o) \
 	diawri.F90 \
 	dom_oce.F90 \
@@ -6047,31 +6876,30 @@
 	lib_mpp.F90 \
 	oce.F90 \
+	sol_oce.F90 \
 	solisl.F90 \
-	sol_oce.F90 \
-	$(MODEL_LIB)(diawri.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) \
-	$(MODEL_LIB)(solisl.o) \
-	$(MODEL_LIB)(sol_oce.o) \
 	stpctl.F90
 $(MODEL_LIB)(taumod.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.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) \
+	$(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) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
 	$(MODEL_LIB)(phycst.o) \
 	daymod.F90 \
@@ -6080,13 +6908,8 @@
 	lbclnk.F90 \
 	phycst.F90 \
-	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(cpl_oce.o) \
+	$(MODEL_LIB)(geo2ocean.o) \
 	cpl_oce.F90 \
 	geo2ocean.F90 \
-	$(MODEL_LIB)(cpl_oce.o) \
-	$(MODEL_LIB)(geo2ocean.o) \
 	tau_coupled.h90 \
 	tau_coupled_ice.h90 \
@@ -6096,10 +6919,43 @@
 	taumod.F90
 $(MODEL_LIB)(thd_ice.o) :	\
-	par_oce.F90 \
-	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	par_oce.F90 \
+	$(MODEL_LIB)(par_ice.o) \
 	par_ice.F90 \
-	$(MODEL_LIB)(par_ice.o) \
 	thd_ice.F90
 $(MODEL_LIB)(traadv_cen2.o) :	\
+	$(MODEL_LIB)(cla_dynspg.o) \
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(dianam.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(flxrnf.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)(obc_oce.o) \
+	$(MODEL_LIB)(obcdyn.o) \
+	$(MODEL_LIB)(obcvol.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(ocesbc.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(sol_oce.o) \
+	$(MODEL_LIB)(solfet.o) \
+	$(MODEL_LIB)(solpcg.o) \
+	$(MODEL_LIB)(solsor.o) \
+	$(MODEL_LIB)(trabbl.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) \
 	cla_dynspg.F90 \
 	daymod.F90 \
@@ -6112,16 +6968,17 @@
 	lib_mpp.F90 \
 	lib_print.f90 \
+	obc_oce.F90 \
 	obcdyn.F90 \
 	obcvol.F90 \
-	obc_oce.F90 \
+	oce.F90 \
 	ocesbc.F90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	sol_oce.F90 \
 	solfet.F90 \
 	solpcg.F90 \
 	solsor.F90 \
-	sol_oce.F90 \
 	trabbl.F90 \
 	trdicp.F90 \
@@ -6134,4 +6991,87 @@
 	trdvor_oce.F90 \
 	zdf_oce.F90 \
+	$(MODEL_LIB)(diaptr.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dynspg_fsc.o) \
+	$(MODEL_LIB)(dynspg_fsc_atsk.o) \
+	$(MODEL_LIB)(flxrnf.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(ocfzpt.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(trabbl.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	diaptr.F90 \
+	dom_oce.F90 \
+	dynspg_fsc.F90 \
+	dynspg_fsc_atsk.F90 \
+	flxrnf.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	oce.F90 \
+	ocfzpt.F90 \
+	prtctl.f90 \
+	trabbl.F90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
+	$(MODEL_LIB)(oce.o) \
+	oce.F90 \
+	domzgr_substitute.h90 \
+	traadv_cen2_atsk.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	traadv_cen2.F90
+$(MODEL_LIB)(traadv_ctl.o) :	\
+	$(MODEL_LIB)(diaptr.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dynspg_fsc.o) \
+	$(MODEL_LIB)(dynspg_fsc_atsk.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)(prtctl.o) \
+	$(MODEL_LIB)(trabbl.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	diaptr.F90 \
+	dom_oce.F90 \
+	dynspg_fsc.F90 \
+	dynspg_fsc_atsk.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	prtctl.f90 \
+	trabbl.F90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(traadv_muscl.o) \
+	$(MODEL_LIB)(traadv_muscl2.o) \
+	$(MODEL_LIB)(traadv_tvd.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	oce.F90 \
+	traadv_muscl.F90 \
+	traadv_muscl2.F90 \
+	traadv_tvd.F90 \
+	domzgr_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	traadv_ctl.F90
+$(MODEL_LIB)(traadv_muscl.o) :	\
 	$(MODEL_LIB)(cla_dynspg.o) \
 	$(MODEL_LIB)(daymod.o) \
@@ -6144,16 +7084,17 @@
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(obc_oce.o) \
 	$(MODEL_LIB)(obcdyn.o) \
 	$(MODEL_LIB)(obcvol.o) \
-	$(MODEL_LIB)(obc_oce.o) \
+	$(MODEL_LIB)(oce.o) \
 	$(MODEL_LIB)(ocesbc.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(sol_oce.o) \
 	$(MODEL_LIB)(solfet.o) \
 	$(MODEL_LIB)(solpcg.o) \
 	$(MODEL_LIB)(solsor.o) \
-	$(MODEL_LIB)(sol_oce.o) \
 	$(MODEL_LIB)(trabbl.o) \
 	$(MODEL_LIB)(trdicp.o) \
@@ -6166,83 +7107,4 @@
 	$(MODEL_LIB)(trdvor_oce.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
-	diaptr.F90 \
-	dom_oce.F90 \
-	dynspg_fsc.F90 \
-	dynspg_fsc_atsk.F90 \
-	flxrnf.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	oce.F90 \
-	ocfzpt.F90 \
-	trabbl.F90 \
-	trdmod.F90 \
-	trdmod_oce.F90 \
-	$(MODEL_LIB)(diaptr.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dynspg_fsc.o) \
-	$(MODEL_LIB)(dynspg_fsc_atsk.o) \
-	$(MODEL_LIB)(flxrnf.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(ocfzpt.o) \
-	$(MODEL_LIB)(trabbl.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	oce.F90 \
-	$(MODEL_LIB)(oce.o) \
-	domzgr_substitute.h90 \
-	traadv_cen2_atsk.h90 \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	traadv_cen2.F90
-$(MODEL_LIB)(traadv_ctl.o) :	\
-	diaptr.F90 \
-	dom_oce.F90 \
-	dynspg_fsc.F90 \
-	dynspg_fsc_atsk.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	trabbl.F90 \
-	trdmod.F90 \
-	trdmod_oce.F90 \
-	$(MODEL_LIB)(diaptr.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dynspg_fsc.o) \
-	$(MODEL_LIB)(dynspg_fsc_atsk.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)(trabbl.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	oce.F90 \
-	traadv_muscl2.F90 \
-	traadv_muscl.F90 \
-	traadv_tvd.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(traadv_muscl2.o) \
-	$(MODEL_LIB)(traadv_muscl.o) \
-	$(MODEL_LIB)(traadv_tvd.o) \
-	domzgr_substitute.h90 \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	traadv_ctl.F90
-$(MODEL_LIB)(traadv_muscl2.o) :	\
 	cla_dynspg.F90 \
 	daymod.F90 \
@@ -6255,16 +7117,17 @@
 	lib_mpp.F90 \
 	lib_print.f90 \
+	obc_oce.F90 \
 	obcdyn.F90 \
 	obcvol.F90 \
-	obc_oce.F90 \
+	oce.F90 \
 	ocesbc.F90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	sol_oce.F90 \
 	solfet.F90 \
 	solpcg.F90 \
 	solsor.F90 \
-	sol_oce.F90 \
 	trabbl.F90 \
 	trdicp.F90 \
@@ -6277,4 +7140,33 @@
 	trdvor_oce.F90 \
 	zdf_oce.F90 \
+	$(MODEL_LIB)(diaptr.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dynspg_fsc.o) \
+	$(MODEL_LIB)(dynspg_fsc_atsk.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)(trabbl.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	diaptr.F90 \
+	dom_oce.F90 \
+	dynspg_fsc.F90 \
+	dynspg_fsc_atsk.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	oce.F90 \
+	prtctl.f90 \
+	trabbl.F90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
+	domzgr_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	traadv_muscl.F90
+$(MODEL_LIB)(traadv_muscl2.o) :	\
 	$(MODEL_LIB)(cla_dynspg.o) \
 	$(MODEL_LIB)(daymod.o) \
@@ -6287,16 +7179,17 @@
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(obc_oce.o) \
 	$(MODEL_LIB)(obcdyn.o) \
 	$(MODEL_LIB)(obcvol.o) \
-	$(MODEL_LIB)(obc_oce.o) \
+	$(MODEL_LIB)(oce.o) \
 	$(MODEL_LIB)(ocesbc.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(sol_oce.o) \
 	$(MODEL_LIB)(solfet.o) \
 	$(MODEL_LIB)(solpcg.o) \
 	$(MODEL_LIB)(solsor.o) \
-	$(MODEL_LIB)(sol_oce.o) \
 	$(MODEL_LIB)(trabbl.o) \
 	$(MODEL_LIB)(trdicp.o) \
@@ -6309,31 +7202,4 @@
 	$(MODEL_LIB)(trdvor_oce.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
-	diaptr.F90 \
-	dom_oce.F90 \
-	dynspg_fsc.F90 \
-	dynspg_fsc_atsk.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	oce.F90 \
-	trabbl.F90 \
-	trdmod.F90 \
-	trdmod_oce.F90 \
-	$(MODEL_LIB)(diaptr.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dynspg_fsc.o) \
-	$(MODEL_LIB)(dynspg_fsc_atsk.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(trabbl.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	domzgr_substitute.h90 \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	traadv_muscl2.F90
-$(MODEL_LIB)(traadv_muscl.o) :	\
 	cla_dynspg.F90 \
 	daymod.F90 \
@@ -6346,16 +7212,17 @@
 	lib_mpp.F90 \
 	lib_print.f90 \
+	obc_oce.F90 \
 	obcdyn.F90 \
 	obcvol.F90 \
-	obc_oce.F90 \
+	oce.F90 \
 	ocesbc.F90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	sol_oce.F90 \
 	solfet.F90 \
 	solpcg.F90 \
 	solsor.F90 \
-	sol_oce.F90 \
 	trabbl.F90 \
 	trdicp.F90 \
@@ -6368,4 +7235,33 @@
 	trdvor_oce.F90 \
 	zdf_oce.F90 \
+	$(MODEL_LIB)(diaptr.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dynspg_fsc.o) \
+	$(MODEL_LIB)(dynspg_fsc_atsk.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)(trabbl.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	diaptr.F90 \
+	dom_oce.F90 \
+	dynspg_fsc.F90 \
+	dynspg_fsc_atsk.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	oce.F90 \
+	prtctl.f90 \
+	trabbl.F90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
+	domzgr_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	traadv_muscl2.F90
+$(MODEL_LIB)(traadv_tvd.o) :	\
 	$(MODEL_LIB)(cla_dynspg.o) \
 	$(MODEL_LIB)(daymod.o) \
@@ -6378,16 +7274,17 @@
 	$(MODEL_LIB)(lib_mpp.o) \
 	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(obc_oce.o) \
 	$(MODEL_LIB)(obcdyn.o) \
 	$(MODEL_LIB)(obcvol.o) \
-	$(MODEL_LIB)(obc_oce.o) \
+	$(MODEL_LIB)(oce.o) \
 	$(MODEL_LIB)(ocesbc.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(sol_oce.o) \
 	$(MODEL_LIB)(solfet.o) \
 	$(MODEL_LIB)(solpcg.o) \
 	$(MODEL_LIB)(solsor.o) \
-	$(MODEL_LIB)(sol_oce.o) \
 	$(MODEL_LIB)(trabbl.o) \
 	$(MODEL_LIB)(trdicp.o) \
@@ -6400,31 +7297,4 @@
 	$(MODEL_LIB)(trdvor_oce.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
-	diaptr.F90 \
-	dom_oce.F90 \
-	dynspg_fsc.F90 \
-	dynspg_fsc_atsk.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	oce.F90 \
-	trabbl.F90 \
-	trdmod.F90 \
-	trdmod_oce.F90 \
-	$(MODEL_LIB)(diaptr.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dynspg_fsc.o) \
-	$(MODEL_LIB)(dynspg_fsc_atsk.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(trabbl.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	domzgr_substitute.h90 \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	traadv_muscl.F90
-$(MODEL_LIB)(traadv_tvd.o) :	\
 	cla_dynspg.F90 \
 	daymod.F90 \
@@ -6437,16 +7307,17 @@
 	lib_mpp.F90 \
 	lib_print.f90 \
+	obc_oce.F90 \
 	obcdyn.F90 \
 	obcvol.F90 \
-	obc_oce.F90 \
+	oce.F90 \
 	ocesbc.F90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	sol_oce.F90 \
 	solfet.F90 \
 	solpcg.F90 \
 	solsor.F90 \
-	sol_oce.F90 \
 	trabbl.F90 \
 	trdicp.F90 \
@@ -6459,26 +7330,113 @@
 	trdvor_oce.F90 \
 	zdf_oce.F90 \
-	$(MODEL_LIB)(cla_dynspg.o) \
+	$(MODEL_LIB)(diaptr.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dynspg_fsc.o) \
+	$(MODEL_LIB)(dynspg_fsc_atsk.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)(trabbl.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	diaptr.F90 \
+	dom_oce.F90 \
+	dynspg_fsc.F90 \
+	dynspg_fsc_atsk.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	oce.F90 \
+	prtctl.f90 \
+	trabbl.F90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
+	domzgr_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	traadv_tvd.F90
+$(MODEL_LIB)(trabbc.o) :	\
+	$(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) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	domzgr_substitute.h90 \
+	../../../lib/libioipsl.a \
+	KEY_CPP \
+	trabbc.F90
+$(MODEL_LIB)(trabbl.o) :	\
+	$(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) \
+	$(MODEL_LIB)(trdicp_oce.o) \
+	$(MODEL_LIB)(trdmld_oce.o) \
+	$(MODEL_LIB)(trdvor_oce.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	trdicp_oce.F90 \
+	trdmld_oce.F90 \
+	trdvor_oce.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	oce.F90 \
+	prtctl.f90 \
+	trdmod_oce.F90 \
+	$(MODEL_LIB)(eosbn2.o) \
+	$(MODEL_LIB)(flxrnf.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(ocfzpt.o) \
+	eosbn2.F90 \
+	flxrnf.F90 \
+	lbclnk.F90 \
+	oce.F90 \
+	ocfzpt.F90 \
+	domzgr_substitute.h90 \
+	trabbl_adv.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	trabbl.F90
+$(MODEL_LIB)(tradmp.o) :	\
 	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(dianam.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(flxrnf.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)(obcdyn.o) \
-	$(MODEL_LIB)(obcvol.o) \
-	$(MODEL_LIB)(obc_oce.o) \
-	$(MODEL_LIB)(ocesbc.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)(solpcg.o) \
-	$(MODEL_LIB)(solsor.o) \
-	$(MODEL_LIB)(sol_oce.o) \
+	$(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) \
+	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(trabbl.o) \
 	$(MODEL_LIB)(trdicp.o) \
@@ -6486,100 +7444,17 @@
 	$(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) \
-	diaptr.F90 \
-	dom_oce.F90 \
-	dynspg_fsc.F90 \
-	dynspg_fsc_atsk.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	oce.F90 \
-	trabbl.F90 \
-	trdmod.F90 \
-	trdmod_oce.F90 \
-	$(MODEL_LIB)(diaptr.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dynspg_fsc.o) \
-	$(MODEL_LIB)(dynspg_fsc_atsk.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(trabbl.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	domzgr_substitute.h90 \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	traadv_tvd.F90
-$(MODEL_LIB)(trabbc.o) :	\
-	in_out_manager.F90 \
-	lib_print.f90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	oce.F90 \
-	phycst.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	domzgr_substitute.h90 \
-	../../../lib/libioipsl.a \
-	KEY_CPP \
-	trabbc.F90
-$(MODEL_LIB)(trabbl.o) :	\
-	lib_print.f90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	trdicp_oce.F90 \
-	trdmld_oce.F90 \
-	trdvor_oce.F90 \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(trdicp_oce.o) \
-	$(MODEL_LIB)(trdmld_oce.o) \
-	$(MODEL_LIB)(trdvor_oce.o) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	oce.F90 \
-	trdmod_oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	eosbn2.F90 \
-	flxrnf.F90 \
-	lbclnk.F90 \
-	oce.F90 \
-	ocfzpt.F90 \
-	$(MODEL_LIB)(eosbn2.o) \
-	$(MODEL_LIB)(flxrnf.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(ocfzpt.o) \
-	domzgr_substitute.h90 \
-	trabbl_adv.h90 \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	trabbl.F90
-$(MODEL_LIB)(tradmp.o) :	\
 	daymod.F90 \
 	dom_oce.F90 \
 	in_out_manager.F90 \
-	lib_print.f90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	prtctl.f90 \
 	trabbl.F90 \
 	trdicp.F90 \
@@ -6591,11 +7466,48 @@
 	trdvor_oce.F90 \
 	zdf_oce.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dtasal.o) \
+	$(MODEL_LIB)(dtatem.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lib_mpp.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) \
+	$(MODEL_LIB)(zdfmxl.o) \
+	dom_oce.F90 \
+	dtasal.F90 \
+	dtatem.F90 \
+	in_out_manager.F90 \
+	lib_mpp.F90 \
+	oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
+	zdf_oce.F90 \
+	zdfmxl.F90 \
+	domzgr_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	../../../lib/libioipsl.a \
+	KEY_CPP \
+	tradmp.F90
+$(MODEL_LIB)(traldf_bilap.o) :	\
 	$(MODEL_LIB)(daymod.o) \
-	$(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) \
+	$(MODEL_LIB)(dianam.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.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)(oce.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(trabbl.o) \
 	$(MODEL_LIB)(trdicp.o) \
@@ -6606,33 +7518,5 @@
 	$(MODEL_LIB)(trdvor.o) \
 	$(MODEL_LIB)(trdvor_oce.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	dom_oce.F90 \
-	dtasal.F90 \
-	dtatem.F90 \
-	in_out_manager.F90 \
-	lib_mpp.F90 \
-	oce.F90 \
-	phycst.F90 \
-	trdmod.F90 \
-	trdmod_oce.F90 \
-	zdfmxl.F90 \
-	zdf_oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dtasal.o) \
-	$(MODEL_LIB)(dtatem.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
 	$(MODEL_LIB)(zdfmxl.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	domzgr_substitute.h90 \
-	vectopt_loop_substitute.h90 \
-	../../../lib/libioipsl.a \
-	KEY_CPP \
-	tradmp.F90
-$(MODEL_LIB)(traldf_bilapg.o) :	\
 	daymod.F90 \
 	dianam.F90 \
@@ -6648,4 +7532,5 @@
 	par_oce.F90 \
 	phycst.F90 \
+	prtctl.f90 \
 	trabbl.F90 \
 	trdicp.F90 \
@@ -6657,4 +7542,31 @@
 	trdvor_oce.F90 \
 	zdfmxl.F90 \
+	$(MODEL_LIB)(diaptr.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(ldfslp.o) \
+	$(MODEL_LIB)(ldftra_oce.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	diaptr.F90 \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	ldfslp.F90 \
+	ldftra_oce.F90 \
+	oce.F90 \
+	prtctl.f90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
+	domzgr_substitute.h90 \
+	ldfeiv_substitute.h90 \
+	ldftra_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	traldf_bilap.F90
+$(MODEL_LIB)(traldf_bilapg.o) :	\
 	$(MODEL_LIB)(daymod.o) \
 	$(MODEL_LIB)(dianam.o) \
@@ -6670,4 +7582,5 @@
 	$(MODEL_LIB)(par_oce.o) \
 	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(trabbl.o) \
 	$(MODEL_LIB)(trdicp.o) \
@@ -6679,28 +7592,4 @@
 	$(MODEL_LIB)(trdvor_oce.o) \
 	$(MODEL_LIB)(zdfmxl.o) \
-	diaptr.F90 \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	ldfslp.F90 \
-	ldftra_oce.F90 \
-	oce.F90 \
-	trdmod.F90 \
-	trdmod_oce.F90 \
-	$(MODEL_LIB)(diaptr.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(ldfslp.o) \
-	$(MODEL_LIB)(ldftra_oce.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	domzgr_substitute.h90 \
-	ldfeiv_substitute.h90 \
-	ldftra_substitute.h90 \
-	KEY_CPP \
-	traldf_bilapg.F90
-$(MODEL_LIB)(traldf_bilap.o) :	\
 	daymod.F90 \
 	dianam.F90 \
@@ -6716,4 +7605,5 @@
 	par_oce.F90 \
 	phycst.F90 \
+	prtctl.f90 \
 	trabbl.F90 \
 	trdicp.F90 \
@@ -6725,4 +7615,30 @@
 	trdvor_oce.F90 \
 	zdfmxl.F90 \
+	$(MODEL_LIB)(diaptr.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(ldfslp.o) \
+	$(MODEL_LIB)(ldftra_oce.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	diaptr.F90 \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	ldfslp.F90 \
+	ldftra_oce.F90 \
+	oce.F90 \
+	prtctl.f90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
+	domzgr_substitute.h90 \
+	ldfeiv_substitute.h90 \
+	ldftra_substitute.h90 \
+	KEY_CPP \
+	traldf_bilapg.F90
+$(MODEL_LIB)(traldf_iso.o) :	\
 	$(MODEL_LIB)(daymod.o) \
 	$(MODEL_LIB)(dianam.o) \
@@ -6738,4 +7654,5 @@
 	$(MODEL_LIB)(par_oce.o) \
 	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(trabbl.o) \
 	$(MODEL_LIB)(trdicp.o) \
@@ -6747,29 +7664,4 @@
 	$(MODEL_LIB)(trdvor_oce.o) \
 	$(MODEL_LIB)(zdfmxl.o) \
-	diaptr.F90 \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	ldfslp.F90 \
-	ldftra_oce.F90 \
-	oce.F90 \
-	trdmod.F90 \
-	trdmod_oce.F90 \
-	$(MODEL_LIB)(diaptr.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(ldfslp.o) \
-	$(MODEL_LIB)(ldftra_oce.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	domzgr_substitute.h90 \
-	ldfeiv_substitute.h90 \
-	ldftra_substitute.h90 \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	traldf_bilap.F90
-$(MODEL_LIB)(traldf_iso.o) :	\
 	daymod.F90 \
 	dianam.F90 \
@@ -6785,4 +7677,5 @@
 	par_oce.F90 \
 	phycst.F90 \
+	prtctl.f90 \
 	trabbl.F90 \
 	trdicp.F90 \
@@ -6794,4 +7687,29 @@
 	trdvor_oce.F90 \
 	zdfmxl.F90 \
+	$(MODEL_LIB)(diaptr.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(ldfslp.o) \
+	$(MODEL_LIB)(ldftra_oce.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	diaptr.F90 \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	ldfslp.F90 \
+	ldftra_oce.F90 \
+	oce.F90 \
+	prtctl.f90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
+	domzgr_substitute.h90 \
+	ldfeiv_substitute.h90 \
+	ldftra_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	traldf_iso.F90
+$(MODEL_LIB)(traldf_iso_zps.o) :	\
 	$(MODEL_LIB)(daymod.o) \
 	$(MODEL_LIB)(dianam.o) \
@@ -6807,4 +7725,5 @@
 	$(MODEL_LIB)(par_oce.o) \
 	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(trabbl.o) \
 	$(MODEL_LIB)(trdicp.o) \
@@ -6816,27 +7735,4 @@
 	$(MODEL_LIB)(trdvor_oce.o) \
 	$(MODEL_LIB)(zdfmxl.o) \
-	diaptr.F90 \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	ldfslp.F90 \
-	ldftra_oce.F90 \
-	oce.F90 \
-	trdmod.F90 \
-	trdmod_oce.F90 \
-	$(MODEL_LIB)(diaptr.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(ldfslp.o) \
-	$(MODEL_LIB)(ldftra_oce.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	domzgr_substitute.h90 \
-	ldfeiv_substitute.h90 \
-	ldftra_substitute.h90 \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	traldf_iso.F90
-$(MODEL_LIB)(traldf_iso_zps.o) :	\
 	daymod.F90 \
 	dianam.F90 \
@@ -6852,4 +7748,5 @@
 	par_oce.F90 \
 	phycst.F90 \
+	prtctl.f90 \
 	trabbl.F90 \
 	trdicp.F90 \
@@ -6861,10 +7758,35 @@
 	trdvor_oce.F90 \
 	zdfmxl.F90 \
+	$(MODEL_LIB)(diaptr.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(ldfslp.o) \
+	$(MODEL_LIB)(ldftra_oce.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	diaptr.F90 \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	ldfslp.F90 \
+	ldftra_oce.F90 \
+	oce.F90 \
+	prtctl.f90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
+	zdf_oce.F90 \
+	domzgr_substitute.h90 \
+	ldfeiv_substitute.h90 \
+	ldftra_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	traldf_iso_zps.F90
+$(MODEL_LIB)(traldf_lap.o) :	\
 	$(MODEL_LIB)(daymod.o) \
 	$(MODEL_LIB)(dianam.o) \
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(ldfdyn_oce.o) \
 	$(MODEL_LIB)(ldftra_oce.o) \
 	$(MODEL_LIB)(lib_mpp.o) \
@@ -6882,30 +7804,4 @@
 	$(MODEL_LIB)(trdvor.o) \
 	$(MODEL_LIB)(trdvor_oce.o) \
-	$(MODEL_LIB)(zdfmxl.o) \
-	diaptr.F90 \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	ldfslp.F90 \
-	ldftra_oce.F90 \
-	oce.F90 \
-	trdmod.F90 \
-	trdmod_oce.F90 \
-	zdf_oce.F90 \
-	$(MODEL_LIB)(diaptr.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(ldfslp.o) \
-	$(MODEL_LIB)(ldftra_oce.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	domzgr_substitute.h90 \
-	ldfeiv_substitute.h90 \
-	ldftra_substitute.h90 \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	traldf_iso_zps.F90
-$(MODEL_LIB)(traldf_lap.o) :	\
 	daymod.F90 \
 	dianam.F90 \
@@ -6927,15 +7823,35 @@
 	trdvor.F90 \
 	trdvor_oce.F90 \
-	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(dianam.o) \
+	$(MODEL_LIB)(diaptr.o) \
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(in_out_manager.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)(oce.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	diaptr.F90 \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	ldftra_oce.F90 \
+	oce.F90 \
+	prtctl.f90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
+	domzgr_substitute.h90 \
+	ldftra_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	traldf_lap.F90
+$(MODEL_LIB)(tranpc.o) :	\
+	$(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) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(trabbl.o) \
 	$(MODEL_LIB)(trdicp.o) \
@@ -6946,32 +7862,14 @@
 	$(MODEL_LIB)(trdvor.o) \
 	$(MODEL_LIB)(trdvor_oce.o) \
-	diaptr.F90 \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	ldftra_oce.F90 \
-	oce.F90 \
-	trdmod.F90 \
-	trdmod_oce.F90 \
-	$(MODEL_LIB)(diaptr.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(ldftra_oce.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	domzgr_substitute.h90 \
-	ldftra_substitute.h90 \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	traldf_lap.F90
-$(MODEL_LIB)(tranpc.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.F90 \
+	$(MODEL_LIB)(zdfddm.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
 	trabbl.F90 \
 	trdicp.F90 \
@@ -6984,12 +7882,82 @@
 	zdfddm.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) \
-	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(eosbn2.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	dom_oce.F90 \
+	eosbn2.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	oce.F90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
+	domzgr_substitute.h90 \
+	KEY_CPP \
+	tranpc.F90
+$(MODEL_LIB)(tranxt.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)(obc_oce.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	obc_oce.F90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(obctra.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	obctra.F90 \
+	oce.F90 \
+	prtctl.f90 \
+	zdf_oce.F90 \
+	tranxt.F90
+$(MODEL_LIB)(traqsr.o) :	\
+	$(MODEL_LIB)(blk_oce.o) \
+	$(MODEL_LIB)(cpl_oce.o) \
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dtasal.o) \
+	$(MODEL_LIB)(dtasst.o) \
+	$(MODEL_LIB)(dtatem.o) \
+	$(MODEL_LIB)(flx_oce.o) \
+	$(MODEL_LIB)(flxmod.o) \
+	$(MODEL_LIB)(flxrnf.o) \
+	$(MODEL_LIB)(ice_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)(ocfzpt.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(sms.o) \
+	$(MODEL_LIB)(taumod.o) \
 	$(MODEL_LIB)(trabbl.o) \
+	$(MODEL_LIB)(tradmp.o) \
 	$(MODEL_LIB)(trdicp.o) \
 	$(MODEL_LIB)(trdicp_oce.o) \
@@ -6999,57 +7967,4 @@
 	$(MODEL_LIB)(trdvor.o) \
 	$(MODEL_LIB)(trdvor_oce.o) \
-	$(MODEL_LIB)(zdfddm.o) \
-	dom_oce.F90 \
-	eosbn2.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	oce.F90 \
-	trdmod.F90 \
-	trdmod_oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(eosbn2.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	domzgr_substitute.h90 \
-	KEY_CPP \
-	tranpc.F90
-$(MODEL_LIB)(tranxt.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	obc_oce.F90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.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)(obc_oce.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	obctra.F90 \
-	oce.F90 \
-	zdf_oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(obctra.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	tranxt.F90
-$(MODEL_LIB)(traqsr.o) :	\
 	blk_oce.F90 \
 	cpl_oce.F90 \
@@ -7059,7 +7974,7 @@
 	dtasst.F90 \
 	dtatem.F90 \
+	flx_oce.F90 \
 	flxmod.F90 \
 	flxrnf.F90 \
-	flx_oce.F90 \
 	ice_oce.F90 \
 	in_out_manager.F90 \
@@ -7072,4 +7987,5 @@
 	par_oce.F90 \
 	phycst.F90 \
+	prtctl.f90 \
 	sms.F90 \
 	taumod.F90 \
@@ -7083,4 +7999,27 @@
 	trdvor.F90 \
 	trdvor_oce.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(ocesbc.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(trc_oce.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	oce.F90 \
+	ocesbc.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	trc_oce.F90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
+	domzgr_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	traqsr.F90
+$(MODEL_LIB)(trasbc.o) :	\
 	$(MODEL_LIB)(blk_oce.o) \
 	$(MODEL_LIB)(cpl_oce.o) \
@@ -7090,7 +8029,7 @@
 	$(MODEL_LIB)(dtasst.o) \
 	$(MODEL_LIB)(dtatem.o) \
+	$(MODEL_LIB)(flx_oce.o) \
 	$(MODEL_LIB)(flxmod.o) \
 	$(MODEL_LIB)(flxrnf.o) \
-	$(MODEL_LIB)(flx_oce.o) \
 	$(MODEL_LIB)(ice_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
@@ -7099,40 +8038,22 @@
 	$(MODEL_LIB)(lib_print.o) \
 	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(ocesbc.o) \
 	$(MODEL_LIB)(ocfzpt.o) \
 	$(MODEL_LIB)(par_kind.o) \
 	$(MODEL_LIB)(par_oce.o) \
 	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(sms.o) \
+	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(taumod.o) \
 	$(MODEL_LIB)(trabbl.o) \
 	$(MODEL_LIB)(tradmp.o) \
+	$(MODEL_LIB)(trc_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) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	ocesbc.F90 \
-	oce.F90 \
-	phycst.F90 \
-	trc_oce.F90 \
-	trdmod.F90 \
-	trdmod_oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(ocesbc.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(trc_oce.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	domzgr_substitute.h90 \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	traqsr.F90
-$(MODEL_LIB)(trasbc.o) :	\
 	blk_oce.F90 \
 	cpl_oce.F90 \
@@ -7142,7 +8063,7 @@
 	dtasst.F90 \
 	dtatem.F90 \
+	flx_oce.F90 \
 	flxmod.F90 \
 	flxrnf.F90 \
-	flx_oce.F90 \
 	ice_oce.F90 \
 	in_out_manager.F90 \
@@ -7150,10 +8071,11 @@
 	lib_mpp.F90 \
 	lib_print.f90 \
+	oce.F90 \
 	ocesbc.F90 \
-	oce.F90 \
 	ocfzpt.F90 \
 	par_kind.F90 \
 	par_oce.F90 \
 	phycst.F90 \
+	prtctl.f90 \
 	taumod.F90 \
 	trabbl.F90 \
@@ -7168,65 +8090,54 @@
 	trdvor.F90 \
 	trdvor_oce.F90 \
-	$(MODEL_LIB)(blk_oce.o) \
-	$(MODEL_LIB)(cpl_oce.o) \
-	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dtasal.o) \
-	$(MODEL_LIB)(dtasst.o) \
-	$(MODEL_LIB)(dtatem.o) \
-	$(MODEL_LIB)(flxmod.o) \
-	$(MODEL_LIB)(flxrnf.o) \
-	$(MODEL_LIB)(flx_oce.o) \
-	$(MODEL_LIB)(ice_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(oce.o) \
 	$(MODEL_LIB)(ocesbc.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(ocfzpt.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(taumod.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(traqsr.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	oce.F90 \
+	ocesbc.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	traqsr.F90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
+	domzgr_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	trasbc.F90
+$(MODEL_LIB)(trazdf_exp.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) \
+	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(trabbl.o) \
-	$(MODEL_LIB)(tradmp.o) \
-	$(MODEL_LIB)(trc_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) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	ocesbc.F90 \
-	oce.F90 \
-	phycst.F90 \
-	traqsr.F90 \
-	trdmod.F90 \
-	trdmod_oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(ocesbc.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(traqsr.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	domzgr_substitute.h90 \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	trasbc.F90
-$(MODEL_LIB)(trazdf_exp.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_print.f90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
+	$(MODEL_LIB)(zdf_oce.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	prtctl.f90 \
 	trabbl.F90 \
 	trdicp.F90 \
@@ -7240,9 +8151,36 @@
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	oce.F90 \
+	prtctl.f90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
+	zdf_oce.F90 \
+	zdfddm.F90 \
+	domzgr_substitute.h90 \
+	zdfddm_substitute.h90 \
+	KEY_CPP \
+	trazdf_exp.F90
+$(MODEL_LIB)(trazdf_imp.o) :	\
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(eosbn2.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)(ocesbc.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(taumod.o) \
 	$(MODEL_LIB)(trabbl.o) \
 	$(MODEL_LIB)(trdicp.o) \
@@ -7254,30 +8192,18 @@
 	$(MODEL_LIB)(trdvor_oce.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	oce.F90 \
-	trdmod.F90 \
-	trdmod_oce.F90 \
-	zdfddm.F90 \
-	zdf_oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
 	$(MODEL_LIB)(zdfddm.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	domzgr_substitute.h90 \
-	zdfddm_substitute.h90 \
-	KEY_CPP \
-	trazdf_exp.F90
-$(MODEL_LIB)(trazdf_imp.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_print.f90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
+	dom_oce.F90 \
+	eosbn2.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	oce.F90 \
+	ocesbc.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	taumod.F90 \
 	trabbl.F90 \
 	trdicp.F90 \
@@ -7289,11 +8215,46 @@
 	trdvor_oce.F90 \
 	zdf_oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
+	zdfddm.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(ldftra_oce.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
+	$(MODEL_LIB)(zdfkpp.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	ldftra_oce.F90 \
+	oce.F90 \
+	prtctl.f90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
+	zdf_oce.F90 \
+	zdfddm.F90 \
+	zdfkpp.F90 \
+	domzgr_substitute.h90 \
+	zdf.matrixsolver.h90 \
+	zdfddm_substitute.h90 \
+	KEY_CPP \
+	trazdf_imp.F90
+$(MODEL_LIB)(trazdf_iso.o) :	\
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(eosbn2.o) \
+	$(MODEL_LIB)(in_out_manager.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)(oce.o) \
+	$(MODEL_LIB)(ocesbc.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(taumod.o) \
 	$(MODEL_LIB)(trabbl.o) \
 	$(MODEL_LIB)(trdicp.o) \
@@ -7305,27 +8266,8 @@
 	$(MODEL_LIB)(trdvor_oce.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	ldftra_oce.F90 \
-	oce.F90 \
-	trdmod.F90 \
-	trdmod_oce.F90 \
-	zdfddm.F90 \
-	zdf_oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(ldftra_oce.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
 	$(MODEL_LIB)(zdfddm.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	domzgr_substitute.h90 \
-	zdfddm_substitute.h90 \
-	zdf.matrixsolver.h90 \
-	KEY_CPP \
-	trazdf_imp.F90
-$(MODEL_LIB)(trazdf_iso.o) :	\
-	dom_oce.F90 \
+	$(MODEL_LIB)(zdfmxl.o) \
+	dom_oce.F90 \
+	eosbn2.F90 \
 	in_out_manager.F90 \
 	lbclnk.F90 \
@@ -7335,7 +8277,10 @@
 	lib_print.f90 \
 	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.F90 \
+	ocesbc.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	taumod.F90 \
 	trabbl.F90 \
 	trdicp.F90 \
@@ -7346,7 +8291,41 @@
 	trdvor.F90 \
 	trdvor_oce.F90 \
+	zdf_oce.F90 \
+	zdfddm.F90 \
 	zdfmxl.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(ldfslp.o) \
+	$(MODEL_LIB)(ldftra_oce.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
+	$(MODEL_LIB)(zdfkpp.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	ldfslp.F90 \
+	ldftra_oce.F90 \
+	oce.F90 \
+	prtctl.f90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
 	zdf_oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
+	zdfddm.F90 \
+	zdfkpp.F90 \
+	domzgr_substitute.h90 \
+	ldfeiv_substitute.h90 \
+	ldftra_substitute.h90 \
+	zdf.matrixsolver.h90 \
+	zdfddm_substitute.h90 \
+	KEY_CPP \
+	trazdf_iso.F90
+$(MODEL_LIB)(trazdf_iso_vopt.o) :	\
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(eosbn2.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(lbclnk.o) \
@@ -7356,7 +8335,10 @@
 	$(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)(ocesbc.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(taumod.o) \
 	$(MODEL_LIB)(trabbl.o) \
 	$(MODEL_LIB)(trdicp.o) \
@@ -7367,35 +8349,9 @@
 	$(MODEL_LIB)(trdvor.o) \
 	$(MODEL_LIB)(trdvor_oce.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
 	$(MODEL_LIB)(zdfmxl.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	ldfslp.F90 \
-	ldftra_oce.F90 \
-	oce.F90 \
-	trdmod.F90 \
-	trdmod_oce.F90 \
-	zdfddm.F90 \
-	zdf_oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(ldfslp.o) \
-	$(MODEL_LIB)(ldftra_oce.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	$(MODEL_LIB)(zdfddm.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	domzgr_substitute.h90 \
-	ldfeiv_substitute.h90 \
-	ldftra_substitute.h90 \
-	zdfddm_substitute.h90 \
-	zdf.matrixsolver.h90 \
-	KEY_CPP \
-	trazdf_iso.F90
-$(MODEL_LIB)(trazdf_iso_vopt.o) :	\
-	dom_oce.F90 \
+	dom_oce.F90 \
+	eosbn2.F90 \
 	in_out_manager.F90 \
 	lbclnk.F90 \
@@ -7405,7 +8361,10 @@
 	lib_print.f90 \
 	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.F90 \
+	ocesbc.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	taumod.F90 \
 	trabbl.F90 \
 	trdicp.F90 \
@@ -7416,27 +8375,19 @@
 	trdvor.F90 \
 	trdvor_oce.F90 \
+	zdf_oce.F90 \
+	zdfddm.F90 \
 	zdfmxl.F90 \
-	zdf_oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(ldfdyn_oce.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(ldfslp.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)(trabbl.o) \
-	$(MODEL_LIB)(trdicp.o) \
-	$(MODEL_LIB)(trdicp_oce.o) \
-	$(MODEL_LIB)(trdmld.o) \
-	$(MODEL_LIB)(trdmld_oce.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(trdmod.o) \
 	$(MODEL_LIB)(trdmod_oce.o) \
-	$(MODEL_LIB)(trdvor.o) \
-	$(MODEL_LIB)(trdvor_oce.o) \
-	$(MODEL_LIB)(zdfmxl.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
+	$(MODEL_LIB)(zdfkpp.o) \
 	dom_oce.F90 \
 	in_out_manager.F90 \
@@ -7445,18 +8396,10 @@
 	ldftra_oce.F90 \
 	oce.F90 \
+	prtctl.f90 \
 	trdmod.F90 \
 	trdmod_oce.F90 \
+	zdf_oce.F90 \
 	zdfddm.F90 \
-	zdf_oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(ldfslp.o) \
-	$(MODEL_LIB)(ldftra_oce.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	$(MODEL_LIB)(zdfddm.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
+	zdfkpp.F90 \
 	domzgr_substitute.h90 \
 	ldfeiv_substitute.h90 \
@@ -7467,18 +8410,30 @@
 	trazdf_iso_vopt.F90
 $(MODEL_LIB)(trc_oce.o) :	\
-	par_kind.F90 \
-	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	par_kind.F90 \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(sms.o) \
 	par_oce.F90 \
 	sms.F90 \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(sms.o) \
 	trc_oce.F90
 $(MODEL_LIB)(trdicp.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_print.f90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.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) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(trdicp_oce.o) \
+	$(MODEL_LIB)(trdmld_oce.o) \
+	$(MODEL_LIB)(trdvor_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_print.f90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
 	trdicp_oce.F90 \
 	trdmld_oce.F90 \
@@ -7486,78 +8441,84 @@
 	zdfddm.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) \
-	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(eosbn2.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(ldfdyn_oce.o) \
+	$(MODEL_LIB)(ldftra_oce.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	dom_oce.F90 \
+	eosbn2.F90 \
+	in_out_manager.F90 \
+	ldfdyn_oce.F90 \
+	ldftra_oce.F90 \
+	lib_mpp.F90 \
+	oce.F90 \
+	phycst.F90 \
+	trdmod_oce.F90 \
+	zdf_oce.F90 \
+	domzgr_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	trdicp.F90
+$(MODEL_LIB)(trdicp_oce.o) :	\
+	$(MODEL_LIB)(par_kind.o) \
+	par_kind.F90 \
+	$(MODEL_LIB)(par_oce.o) \
+	par_oce.F90 \
+	trdicp_oce.F90
+$(MODEL_LIB)(trdmld.o) :	\
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.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)(oce.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(trdicp_oce.o) \
 	$(MODEL_LIB)(trdmld_oce.o) \
 	$(MODEL_LIB)(trdvor_oce.o) \
-	$(MODEL_LIB)(zdfddm.o) \
-	dom_oce.F90 \
-	eosbn2.F90 \
-	in_out_manager.F90 \
+	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfmxl.o) \
+	daymod.F90 \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
 	ldfdyn_oce.F90 \
 	ldftra_oce.F90 \
 	lib_mpp.F90 \
-	oce.F90 \
-	phycst.F90 \
-	trdmod_oce.F90 \
-	zdf_oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(eosbn2.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(ldfdyn_oce.o) \
-	$(MODEL_LIB)(ldftra_oce.o) \
-	$(MODEL_LIB)(lib_mpp.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	domzgr_substitute.h90 \
-	vectopt_loop_substitute.h90 \
-	KEY_CPP \
-	trdicp.F90
-$(MODEL_LIB)(trdicp_oce.o) :	\
-	par_kind.F90 \
-	$(MODEL_LIB)(par_kind.o) \
-	par_oce.F90 \
-	$(MODEL_LIB)(par_oce.o) \
-	trdicp_oce.F90
-$(MODEL_LIB)(trdmld.o) :	\
-	daymod.F90 \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	ldfdyn_oce.F90 \
-	ldftra_oce.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.F90 \
+	lib_print.f90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
 	trdicp_oce.F90 \
 	trdmld_oce.F90 \
 	trdvor_oce.F90 \
+	zdf_oce.F90 \
 	zdfmxl.F90 \
-	zdf_oce.F90 \
 	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(ldfdyn_oce.o) \
+	$(MODEL_LIB)(diadimg.o) \
+	$(MODEL_LIB)(dianam.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(ldfslp.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)(trdicp_oce.o) \
-	$(MODEL_LIB)(trdmld_oce.o) \
-	$(MODEL_LIB)(trdvor_oce.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
 	$(MODEL_LIB)(zdfmxl.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
 	daymod.F90 \
 	diadimg.F90 \
@@ -7571,21 +8532,7 @@
 	phycst.F90 \
 	trdmod_oce.F90 \
+	zdf_oce.F90 \
 	zdfddm.F90 \
 	zdfmxl.F90 \
-	zdf_oce.F90 \
-	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(diadimg.o) \
-	$(MODEL_LIB)(dianam.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(ldfslp.o) \
-	$(MODEL_LIB)(ldftra_oce.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	$(MODEL_LIB)(zdfddm.o) \
-	$(MODEL_LIB)(zdfmxl.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
 	domzgr_substitute.h90 \
 	ldftra_substitute.h90 \
@@ -7595,10 +8542,34 @@
 	trdmld.F90
 $(MODEL_LIB)(trdmld_oce.o) :	\
-	par_kind.F90 \
-	$(MODEL_LIB)(par_kind.o) \
-	par_oce.F90 \
-	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	par_kind.F90 \
+	$(MODEL_LIB)(par_oce.o) \
+	par_oce.F90 \
 	trdmld_oce.F90
 $(MODEL_LIB)(trdmod.o) :	\
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(diadimg.o) \
+	$(MODEL_LIB)(dianam.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(eosbn2.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(ldfdyn_oce.o) \
+	$(MODEL_LIB)(ldfslp.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)(prtctl.o) \
+	$(MODEL_LIB)(trdicp_oce.o) \
+	$(MODEL_LIB)(trdmld_oce.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	$(MODEL_LIB)(trdvor_oce.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
+	$(MODEL_LIB)(zdfmxl.o) \
 	daymod.F90 \
 	diadimg.F90 \
@@ -7617,34 +8588,20 @@
 	par_oce.F90 \
 	phycst.F90 \
+	prtctl.f90 \
 	trdicp_oce.F90 \
 	trdmld_oce.F90 \
 	trdmod_oce.F90 \
 	trdvor_oce.F90 \
+	zdf_oce.F90 \
 	zdfddm.F90 \
 	zdfmxl.F90 \
-	zdf_oce.F90 \
-	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(diadimg.o) \
-	$(MODEL_LIB)(dianam.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(eosbn2.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(ldfdyn_oce.o) \
-	$(MODEL_LIB)(ldfslp.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)(trdicp_oce.o) \
-	$(MODEL_LIB)(trdmld_oce.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(trabbl.o) \
+	$(MODEL_LIB)(trdicp.o) \
+	$(MODEL_LIB)(trdmld.o) \
 	$(MODEL_LIB)(trdmod_oce.o) \
-	$(MODEL_LIB)(trdvor_oce.o) \
-	$(MODEL_LIB)(zdfddm.o) \
-	$(MODEL_LIB)(zdfmxl.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(trdvor.o) \
 	dom_oce.F90 \
 	in_out_manager.F90 \
@@ -7655,12 +8612,4 @@
 	trdmod_oce.F90 \
 	trdvor.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(trabbl.o) \
-	$(MODEL_LIB)(trdicp.o) \
-	$(MODEL_LIB)(trdmld.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	$(MODEL_LIB)(trdvor.o) \
 	domzgr_substitute.h90 \
 	vectopt_loop_substitute.h90 \
@@ -7668,14 +8617,32 @@
 	trdmod.F90
 $(MODEL_LIB)(trdmod_oce.o) :	\
-	par_oce.F90 \
-	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	par_oce.F90 \
+	$(MODEL_LIB)(trdicp_oce.o) \
+	$(MODEL_LIB)(trdmld_oce.o) \
+	$(MODEL_LIB)(trdvor_oce.o) \
 	trdicp_oce.F90 \
 	trdmld_oce.F90 \
 	trdvor_oce.F90 \
+	trdmod_oce.F90
+$(MODEL_LIB)(trdvor.o) :	\
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.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)(oce.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(trdicp_oce.o) \
 	$(MODEL_LIB)(trdmld_oce.o) \
 	$(MODEL_LIB)(trdvor_oce.o) \
-	trdmod_oce.F90
-$(MODEL_LIB)(trdvor.o) :	\
+	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfmxl.o) \
 	daymod.F90 \
 	dom_oce.F90 \
@@ -7690,26 +8657,22 @@
 	par_oce.F90 \
 	phycst.F90 \
+	prtctl.f90 \
 	trdicp_oce.F90 \
 	trdmld_oce.F90 \
 	trdvor_oce.F90 \
+	zdf_oce.F90 \
 	zdfmxl.F90 \
-	zdf_oce.F90 \
 	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(dianam.o) \
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(in_out_manager.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)(oce.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(trdicp_oce.o) \
-	$(MODEL_LIB)(trdmld_oce.o) \
-	$(MODEL_LIB)(trdvor_oce.o) \
+	$(MODEL_LIB)(ldfslp.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
 	$(MODEL_LIB)(zdfmxl.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
 	daymod.F90 \
 	dianam.F90 \
@@ -7722,18 +8685,6 @@
 	phycst.F90 \
 	trdmod_oce.F90 \
+	zdf_oce.F90 \
 	zdfmxl.F90 \
-	zdf_oce.F90 \
-	$(MODEL_LIB)(daymod.o) \
-	$(MODEL_LIB)(dianam.o) \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(ldfdyn_oce.o) \
-	$(MODEL_LIB)(ldfslp.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	$(MODEL_LIB)(zdfmxl.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
 	domzgr_substitute.h90 \
 	ldfdyn_substitute.h90 \
@@ -7743,101 +8694,130 @@
 	trdvor.F90
 $(MODEL_LIB)(trdvor_oce.o) :	\
-	par_kind.F90 \
-	$(MODEL_LIB)(par_kind.o) \
-	par_oce.F90 \
-	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	par_kind.F90 \
+	$(MODEL_LIB)(par_oce.o) \
+	par_oce.F90 \
 	trdvor_oce.F90
 $(MODEL_LIB)(wzvmod.o) :	\
-	lib_print.f90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(oce.o) \
+	$(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) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	oce.F90 \
+	prtctl.f90 \
 	domzgr_substitute.h90 \
 	KEY_CPP \
 	wzvmod.F90
+$(MODEL_LIB)(zdf_oce.o) :	\
+	$(MODEL_LIB)(par_kind.o) \
+	par_kind.F90 \
+	$(MODEL_LIB)(par_oce.o) \
+	par_oce.F90 \
+	zdf_oce.F90
 $(MODEL_LIB)(zdfbfr.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.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) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	oce.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) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	oce.F90 \
+	prtctl.f90 \
 	zdf_oce.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) \
 	domzgr_substitute.h90 \
 	KEY_CPP \
 	zdfbfr.F90
 $(MODEL_LIB)(zdfddm.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.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) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	oce.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) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	oce.F90 \
+	prtctl.f90 \
 	zdf_oce.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) \
 	vectopt_loop_substitute.h90 \
 	KEY_CPP \
 	zdfddm.F90
 $(MODEL_LIB)(zdfevd.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.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) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	oce.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(eosbn2.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)(ocesbc.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(taumod.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
+	dom_oce.F90 \
+	eosbn2.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	oce.F90 \
+	ocesbc.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	taumod.F90 \
 	zdf_oce.F90 \
+	zdfddm.F90 \
 	$(MODEL_LIB)(dom_oce.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
@@ -7845,6 +8825,37 @@
 	$(MODEL_LIB)(oce.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfkpp.o) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	oce.F90 \
+	zdf_oce.F90 \
+	zdfkpp.F90 \
+	domzgr_substitute.h90 \
+	KEY_CPP \
 	zdfevd.F90
 $(MODEL_LIB)(zdfini.o) :	\
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dynzdf_exp.o) \
+	$(MODEL_LIB)(eosbn2.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(ldfdyn_oce.o) \
+	$(MODEL_LIB)(ldftra_oce.o) \
+	$(MODEL_LIB)(lib_print.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(ocesbc.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(taumod.o) \
+	$(MODEL_LIB)(trazdf_exp.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
+	$(MODEL_LIB)(zdfkpp.o) \
+	$(MODEL_LIB)(zdfmxl.o) \
 	dom_oce.F90 \
 	dynzdf_exp.F90 \
@@ -7856,87 +8867,167 @@
 	lib_print.f90 \
 	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.F90 \
+	ocesbc.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
 	taumod.F90 \
 	trazdf_exp.F90 \
 	trdmod.F90 \
 	trdmod_oce.F90 \
+	zdf_oce.F90 \
+	zdfddm.F90 \
+	zdfkpp.F90 \
 	zdfmxl.F90 \
-	zdf_oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dynzdf_exp.o) \
-	$(MODEL_LIB)(eosbn2.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(ldfdyn_oce.o) \
+	$(MODEL_LIB)(ldfslp.o) \
 	$(MODEL_LIB)(ldftra_oce.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)(taumod.o) \
-	$(MODEL_LIB)(trazdf_exp.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	$(MODEL_LIB)(zdfmxl.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(tranpc.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
+	$(MODEL_LIB)(zdfevd.o) \
+	$(MODEL_LIB)(zdfkpp.o) \
+	$(MODEL_LIB)(zdfric.o) \
+	$(MODEL_LIB)(zdftke.o) \
 	in_out_manager.F90 \
 	ldfdyn_oce.F90 \
 	ldfslp.F90 \
 	ldftra_oce.F90 \
+	lib_mpp.F90 \
 	par_oce.F90 \
 	tranpc.F90 \
+	zdf_oce.F90 \
 	zdfddm.F90 \
 	zdfevd.F90 \
+	zdfkpp.F90 \
 	zdfric.F90 \
 	zdftke.F90 \
+	zdfini.F90
+$(MODEL_LIB)(zdfkpp.o) :	\
+	$(MODEL_LIB)(blk_oce.o) \
+	$(MODEL_LIB)(cpl_oce.o) \
+	$(MODEL_LIB)(daymod.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dtasal.o) \
+	$(MODEL_LIB)(dtasst.o) \
+	$(MODEL_LIB)(dtatem.o) \
+	$(MODEL_LIB)(flx_oce.o) \
+	$(MODEL_LIB)(flxmod.o) \
+	$(MODEL_LIB)(flxrnf.o) \
+	$(MODEL_LIB)(ice_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)(ocfzpt.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(taumod.o) \
+	$(MODEL_LIB)(tradmp.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
+	blk_oce.F90 \
+	cpl_oce.F90 \
+	daymod.F90 \
+	dom_oce.F90 \
+	dtasal.F90 \
+	dtasst.F90 \
+	dtatem.F90 \
+	flx_oce.F90 \
+	flxmod.F90 \
+	flxrnf.F90 \
+	ice_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	oce.F90 \
+	ocfzpt.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	taumod.F90 \
+	tradmp.F90 \
 	zdf_oce.F90 \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(ldfdyn_oce.o) \
-	$(MODEL_LIB)(ldfslp.o) \
-	$(MODEL_LIB)(ldftra_oce.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(tranpc.o) \
+	zdfddm.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(eosbn2.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(ocesbc.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(taumod.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
 	$(MODEL_LIB)(zdfddm.o) \
-	$(MODEL_LIB)(zdfevd.o) \
-	$(MODEL_LIB)(zdfric.o) \
-	$(MODEL_LIB)(zdftke.o) \
+	dom_oce.F90 \
+	eosbn2.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	oce.F90 \
+	ocesbc.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	taumod.F90 \
+	zdf_oce.F90 \
+	zdfddm.F90 \
+	domzgr_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	zdfkpp.F90
+$(MODEL_LIB)(zdfmxl.o) :	\
+	$(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) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	par_kind.F90 \
+	par_oce.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) \
-	zdfini.F90
-$(MODEL_LIB)(zdfmxl.o) :	\
-	lib_print.f90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	$(MODEL_LIB)(lib_print.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	oce.F90 \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	oce.F90 \
+	prtctl.f90 \
 	zdf_oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
 	domzgr_substitute.h90 \
 	KEY_CPP \
 	zdfmxl.F90
 $(MODEL_LIB)(zdfric.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.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) \
+	$(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) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.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) \
 	dom_oce.F90 \
 	in_out_manager.F90 \
@@ -7944,13 +9035,24 @@
 	oce.F90 \
 	zdf_oce.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) \
 	domzgr_substitute.h90 \
 	KEY_CPP \
 	zdfric.F90
 $(MODEL_LIB)(zdftke.o) :	\
+	$(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)(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)(taumod.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	$(MODEL_LIB)(zdfddm.o) \
 	daymod.F90 \
 	dom_oce.F90 \
@@ -7963,23 +9065,19 @@
 	par_oce.F90 \
 	phycst.F90 \
+	prtctl.f90 \
 	taumod.F90 \
 	trdmod.F90 \
 	trdmod_oce.F90 \
+	zdf_oce.F90 \
 	zdfddm.F90 \
-	zdf_oce.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)(lib_print.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dynzdf_exp.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(taumod.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	$(MODEL_LIB)(zdfddm.o) \
+	$(MODEL_LIB)(trazdf_exp.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
 	dom_oce.F90 \
@@ -7989,18 +9087,10 @@
 	oce.F90 \
 	phycst.F90 \
+	prtctl.f90 \
 	taumod.F90 \
 	trazdf_exp.F90 \
 	zdf_oce.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dynzdf_exp.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(taumod.o) \
-	$(MODEL_LIB)(trazdf_exp.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	oce.F90 \
-	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(oce.o) \
+	oce.F90 \
 	domzgr_substitute.h90 \
 	vectopt_loop_substitute.h90 \
@@ -8008,29 +9098,32 @@
 	KEY_CPP \
 	zdftke.F90
-$(MODEL_LIB)(zdf_oce.o) :	\
-	par_kind.F90 \
-	$(MODEL_LIB)(par_kind.o) \
-	par_oce.F90 \
-	$(MODEL_LIB)(par_oce.o) \
-	zdf_oce.F90
 $(MODEL_LIB)(zpshde.o) :	\
-	dom_oce.F90 \
-	in_out_manager.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.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) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(zdfddm.o) \
+	dom_oce.F90 \
+	in_out_manager.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)(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) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(zdfddm.o) \
+	$(MODEL_LIB)(eosbn2.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(phycst.o) \
 	dom_oce.F90 \
 	eosbn2.F90 \
@@ -8040,11 +9133,4 @@
 	par_kind.F90 \
 	phycst.F90 \
-	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(eosbn2.o) \
-	$(MODEL_LIB)(in_out_manager.o) \
-	$(MODEL_LIB)(lbclnk.o) \
-	$(MODEL_LIB)(oce.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(phycst.o) \
 	domzgr_substitute.h90 \
 	vectopt_loop_substitute.h90 \
@@ -8100,4 +9186,9 @@
       ln -sf ../LIM_SRC/*.[Ffh]90          . ; \
   fi 
+	@check=`grep C1D_SRC .config`              ; \
+	if [ -n "$$check" ] ; then                   \
+	echo "   use C1D_SRC files"                ; \
+      ln -sf ../C1D_SRC/*.[Ffh]90          . ; \
+  fi 
 	@check=`grep TOP_SRC .config`              ; \
 	check2=`grep SRC_OFFLINE_TRC .config`      ; \
