Index: trunk/CONFIG/GYRE/EXP00/namelist
===================================================================
--- trunk/CONFIG/GYRE/EXP00/namelist	(revision 362)
+++ trunk/CONFIG/GYRE/EXP00/namelist	(revision 364)
@@ -210,4 +210,5 @@
 !  rdtmax     maximum time step on tracers
 !  rdth       depth variation of tracer time step
+!  rdtbt      barotropic time step for the dynamics 
 !  nfice      frequency of ice model call
 !  nfbulk     frequency of bulk formulea call (not used if ice used)
@@ -226,4 +227,5 @@
    rdtmax    =  7200.
    rdth      =   800.
+   rdtbt     =   120.
    nfice     =     5  
    nfbulk    =     5  
Index: trunk/CONFIG/GYRE/scripts/BB_make
===================================================================
--- trunk/CONFIG/GYRE/scripts/BB_make	(revision 362)
+++ trunk/CONFIG/GYRE/scripts/BB_make	(revision 364)
@@ -16,5 +16,6 @@
 #-Q- hpux  # F_O = $(FTRACE) -pi nest=5 line=10000 expin=Fmpplib.F -Wf,-A idbl4 -C hopt -Wf"-P nh" -Wf,-pvctl noassume loopcnt=10000 -L transform -I $(MODDIR) -I $(MODDIR)/oce
 #-Q- hpux  # regular options!
-#-Q- hpux  F_O = $(FTRACE) -Wf,-A idbl4 -C vopt -Wf"-P nh" -Wf,-pvctl noassume loopcnt=10000 -L transform -I $(MODDIR) -I $(MODDIR)/oce
+#-Q- hpux  F_O = $(FTRACE) -P stack -Wf,-A idbl4 -C vopt -Wf"-P nh" -Wf,-pvctl noassume loopcnt=10000 -L transform -I $(MODDIR) -I $(MODDIR)/oce
+#-Q- hpux  L_X = $(L_O)
 #-Q- linux  # Compiler options for the ORCA model (pgf version)
 #-Q- linux  F_O = -Mlist -O3 -byteswapio -r8  -I $(MODDIR) -I$(MODDIR)/oce
@@ -32,5 +33,5 @@
 #-Q- osxxlf    # Compiler options for the ORCA model (osxxlf version)
 #-Q- osxxlf    F_O = -O3 -qsave -qrealsize=8 -qsuffix=f=f90 -qsuffix=cpp=F90 -qsource -qmaxmem=-1 -I $(MODDIR) -I $(MODDIR)/oce
-#-Q- osxxlf    L_O = -qrealsize=8 -O3
+#-Q- osxxlf    L_X = -qrealsize=8 -O3
 PREF=
 #-Q- sxnec	PREF=i.
@@ -58,6 +59,9 @@
      key_dynldf_c2d \
      key_dynldf_c3d \
+     key_dynspg_exp \
+     key_dynspg_flt \
      key_dynspg_fsc \
      key_dynspg_rl \
+     key_dynspg_ts \
      key_eel_r2 \
      key_eel_r5 \
@@ -162,7 +166,10 @@
 		$(MODEL_LIB)(dynnxt1d.o)\
 		$(MODEL_LIB)(dynnxt.o)\
-		$(MODEL_LIB)(dynspg_fsc.o)\
-		$(MODEL_LIB)(dynspg_fsc_atsk.o)\
+		$(MODEL_LIB)(dynspg.o)\
+		$(MODEL_LIB)(dynspg_exp.o)\
+		$(MODEL_LIB)(dynspg_flt.o)\
+		$(MODEL_LIB)(dynspg_flt_jki.o)\
 		$(MODEL_LIB)(dynspg_rl.o)\
+		$(MODEL_LIB)(dynspg_ts.o)\
 		$(MODEL_LIB)(dynvor.o)\
 		$(MODEL_LIB)(dynzad.o)\
@@ -421,5 +428,5 @@
 #-Q- linux	@mv $(PREF)$*.lst $(PREF)$*.L
 #-Q- osxxlf		@mv $(PREF)$*.lst $(PREF)$*.L
-		@if [ -f $(PREF)$*.L ] ; then mv $(PREF)$*.L $(TMP) ; fi
+		@if [ -f $(PREF)$*.L ] ; then mv $*.L $(TMP) ; fi
 #
 $(MODEL_LIB)(albedo.o) :	\
@@ -1421,6 +1428,5 @@
 	daymod.F90 \
 	dom_oce.F90 \
-	dynspg_fsc.F90 \
-	dynspg_fsc_atsk.F90 \
+	dynspg.F90 \
 	flxrnf.F90 \
 	ini1d.F90 \
@@ -1441,6 +1447,5 @@
 	$(MODEL_LIB)(daymod.o) \
 	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dynspg_fsc.o) \
-	$(MODEL_LIB)(dynspg_fsc_atsk.o) \
+	$(MODEL_LIB)(dynspg.o) \
 	$(MODEL_LIB)(flxrnf.o) \
 	$(MODEL_LIB)(ini1d.o) \
@@ -1545,57 +1550,48 @@
 	domhgr.F90
 $(MODEL_LIB)(dommsk.o) :	\
-	cla_dynspg.F90 \
-	dom_oce.F90 \
-	flxrnf.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	obcdyn.F90 \
-	obcvol.F90 \
+	dom_oce.F90 \
+	dynspg_exp.F90 \
+	dynspg_flt.F90 \
+	dynspg_flt_jki.F90 \
+	dynspg_rl.F90 \
+	dynspg_ts.F90 \
+	in_out_manager.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
 	obc_oce.F90 \
 	obc_par.F90 \
-	ocesbc.F90 \
-	oce.F90 \
-	par_kind.F90 \
-	par_oce.F90 \
-	phycst.F90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
 	prtctl.f90 \
 	solfet.F90 \
 	solpcg.F90 \
 	solsor.F90 \
-	solsor_e.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)(lib_print.o) \
-	$(MODEL_LIB)(obcdyn.o) \
-	$(MODEL_LIB)(obcvol.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dynspg_exp.o) \
+	$(MODEL_LIB)(dynspg_flt.o) \
+	$(MODEL_LIB)(dynspg_flt_jki.o) \
+	$(MODEL_LIB)(dynspg_rl.o) \
+	$(MODEL_LIB)(dynspg_ts.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)(ocesbc.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)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
 	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(solfet.o) \
 	$(MODEL_LIB)(solpcg.o) \
 	$(MODEL_LIB)(solsor.o) \
-	$(MODEL_LIB)(solsor_e.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 \
+	dom_oce.F90 \
+	dynspg.F90 \
 	in_out_manager.F90 \
 	lbclnk.F90 \
@@ -1605,6 +1601,5 @@
 	solisl.F90 \
 	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dynspg_fsc.o) \
-	$(MODEL_LIB)(dynspg_fsc_atsk.o) \
+	$(MODEL_LIB)(dynspg.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(lbclnk.o) \
@@ -2287,95 +2282,15 @@
 	$(MODEL_LIB)(prtctl.o) \
 	dynnxt.F90
-$(MODEL_LIB)(dynspg_fsc.o) :	\
-	blk_oce.F90 \
-	cpl_oce.F90 \
-	daymod.F90 \
-	dom_oce.F90 \
-	dtasal.F90 \
-	dtasst.F90 \
-	dtatem.F90 \
-	flxmod.F90 \
+$(MODEL_LIB)(dynspg.o) :	\
+	cla_dynspg.F90 \
+	dom_oce.F90 \
+	dynvor.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 \
-	prtctl.f90 \
-	solfet.F90 \
-	solpcg.F90 \
-	solsor.F90 \
-	sol_oce.F90 \
-	taumod.F90 \
-	trabbl.F90 \
-	tradmp.F90 \
-	trdicp.F90 \
-	trdicp_oce.F90 \
-	trdmld.F90 \
-	trdmld_oce.F90 \
-	trdmod_oce.F90 \
-	trdvor.F90 \
-	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)(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)(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)(ocfzpt.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(prtctl.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) \
-	$(MODEL_LIB)(tradmp.o) \
-	$(MODEL_LIB)(trdicp.o) \
-	$(MODEL_LIB)(trdicp_oce.o) \
-	$(MODEL_LIB)(trdmld.o) \
-	$(MODEL_LIB)(trdmld_oce.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	$(MODEL_LIB)(trdvor.o) \
-	$(MODEL_LIB)(trdvor_oce.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	cla_dynspg.F90 \
-	dom_oce.F90 \
-	flxrnf.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	ldfdyn_oce.F90 \
+	ldftra_oce.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
 	obcdyn.F90 \
 	obcvol.F90 \
@@ -2383,183 +2298,13 @@
 	ocesbc.F90 \
 	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
 	phycst.F90 \
 	prtctl.f90 \
 	solfet.F90 \
+	solisl.F90 \
 	solpcg.F90 \
 	solsor.F90 \
 	solsor_e.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)(prtctl.o) \
-	$(MODEL_LIB)(solfet.o) \
-	$(MODEL_LIB)(solpcg.o) \
-	$(MODEL_LIB)(solsor.o) \
-	$(MODEL_LIB)(solsor_e.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 \
-	prtctl.f90 \
-	solfet.F90 \
-	solpcg.F90 \
-	solsor.F90 \
-	sol_oce.F90 \
-	taumod.F90 \
-	trabbl.F90 \
-	tradmp.F90 \
-	trdicp.F90 \
-	trdicp_oce.F90 \
-	trdmld.F90 \
-	trdmld_oce.F90 \
-	trdmod_oce.F90 \
-	trdvor.F90 \
-	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)(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)(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)(ocfzpt.o) \
-	$(MODEL_LIB)(par_kind.o) \
-	$(MODEL_LIB)(par_oce.o) \
-	$(MODEL_LIB)(phycst.o) \
-	$(MODEL_LIB)(prtctl.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) \
-	$(MODEL_LIB)(tradmp.o) \
-	$(MODEL_LIB)(trdicp.o) \
-	$(MODEL_LIB)(trdicp_oce.o) \
-	$(MODEL_LIB)(trdmld.o) \
-	$(MODEL_LIB)(trdmld_oce.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
-	$(MODEL_LIB)(trdvor.o) \
-	$(MODEL_LIB)(trdvor_oce.o) \
-	$(MODEL_LIB)(zdf_oce.o) \
-	cla_dynspg.F90 \
-	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 \
-	prtctl.f90 \
-	solfet.F90 \
-	solpcg.F90 \
-	solsor.F90 \
-	solsor_e.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)(prtctl.o) \
-	$(MODEL_LIB)(solfet.o) \
-	$(MODEL_LIB)(solpcg.o) \
-	$(MODEL_LIB)(solsor.o) \
-	$(MODEL_LIB)(solsor_e.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 \
@@ -2572,17 +2317,28 @@
 	trdvor_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)(cla_dynspg.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dynvor.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)(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)(par_kind.o) \
-	$(MODEL_LIB)(par_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)(prtctl.o) \
 	$(MODEL_LIB)(solfet.o) \
+	$(MODEL_LIB)(solisl.o) \
 	$(MODEL_LIB)(solpcg.o) \
 	$(MODEL_LIB)(solsor.o) \
+	$(MODEL_LIB)(solsor_e.o) \
 	$(MODEL_LIB)(sol_oce.o) \
 	$(MODEL_LIB)(trabbl.o) \
@@ -2596,4 +2352,353 @@
 	$(MODEL_LIB)(zdf_oce.o) \
 	dom_oce.F90 \
+	dynspg_exp.F90 \
+	dynspg_flt.F90 \
+	dynspg_flt_jki.F90 \
+	dynspg_rl.F90 \
+	dynspg_ts.F90 \
+	in_out_manager.F90 \
+	oce.F90 \
+	prtctl.f90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dynspg_exp.o) \
+	$(MODEL_LIB)(dynspg_flt.o) \
+	$(MODEL_LIB)(dynspg_flt_jki.o) \
+	$(MODEL_LIB)(dynspg_rl.o) \
+	$(MODEL_LIB)(dynspg_ts.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	domzgr_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	dynspg.F90
+$(MODEL_LIB)(dynspg_exp.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 \
+	obc_par.F90 \
+	oce.F90 \
+	ocfzpt.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.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)(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) \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	obc_oce.F90 \
+	ocesbc.F90 \
+	oce.F90 \
+	phycst.F90 \
+	prtctl.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)(ocesbc.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	domzgr_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	dynspg_exp.F90
+$(MODEL_LIB)(dynspg_flt.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 \
+	prtctl.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)(obccli.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)(ocfzpt.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.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) \
+	cla_dynspg.F90 \
+	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 \
+	prtctl.f90 \
+	solfet.F90 \
+	solpcg.F90 \
+	solsor.F90 \
+	solsor_e.F90 \
+	sol_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)(prtctl.o) \
+	$(MODEL_LIB)(solfet.o) \
+	$(MODEL_LIB)(solpcg.o) \
+	$(MODEL_LIB)(solsor.o) \
+	$(MODEL_LIB)(solsor_e.o) \
+	$(MODEL_LIB)(sol_oce.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	domzgr_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	dynspg_flt.F90
+$(MODEL_LIB)(dynspg_flt_jki.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 \
+	prtctl.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)(obccli.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)(ocfzpt.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.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) \
+	cla_dynspg.F90 \
+	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 \
+	prtctl.f90 \
+	solfet.F90 \
+	solpcg.F90 \
+	solsor.F90 \
+	solsor_e.F90 \
+	sol_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)(prtctl.o) \
+	$(MODEL_LIB)(solfet.o) \
+	$(MODEL_LIB)(solpcg.o) \
+	$(MODEL_LIB)(solsor.o) \
+	$(MODEL_LIB)(solsor_e.o) \
+	$(MODEL_LIB)(sol_oce.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	domzgr_substitute.h90 \
+	KEY_CPP \
+	dynspg_flt_jki.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 \
+	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_oce.o) \
+	$(MODEL_LIB)(obc_par.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(solfet.o) \
+	$(MODEL_LIB)(solpcg.o) \
+	$(MODEL_LIB)(solsor.o) \
+	$(MODEL_LIB)(sol_oce.o) \
+	$(MODEL_LIB)(zdf_oce.o) \
+	dom_oce.F90 \
 	in_out_manager.F90 \
 	lbclnk.F90 \
@@ -2610,6 +2715,4 @@
 	solsor_e.F90 \
 	sol_oce.F90 \
-	trdmod.F90 \
-	trdmod_oce.F90 \
 	zdf_oce.F90 \
 	$(MODEL_LIB)(dom_oce.o) \
@@ -2628,6 +2731,4 @@
 	$(MODEL_LIB)(solsor_e.o) \
 	$(MODEL_LIB)(sol_oce.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
 	domzgr_substitute.h90 \
@@ -2636,4 +2737,81 @@
 	KEY_CPP \
 	dynspg_rl.F90
+$(MODEL_LIB)(dynspg_ts.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 \
+	obc_par.F90 \
+	oce.F90 \
+	ocfzpt.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	taumod.F90 \
+	tradmp.F90 \
+	trdmod.F90 \
+	trdmod_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)(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) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
+	dom_oce.F90 \
+	dynvor.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	obc_oce.F90 \
+	ocesbc.F90 \
+	oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dynvor.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(obc_oce.o) \
+	$(MODEL_LIB)(ocesbc.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
+	domzgr_substitute.h90 \
+	vectopt_loop_substitute.h90 \
+	KEY_CPP \
+	dynspg_ts.F90
 $(MODEL_LIB)(dynvor.o) :	\
 	dom_oce.F90 \
@@ -3794,23 +3972,20 @@
 $(MODEL_LIB)(istate.o) :	\
 	blk_oce.F90 \
-	cla_dynspg.F90 \
 	cpl_oce.F90 \
 	daymod.F90 \
 	dom_oce.F90 \
-	dynspg_fsc.F90 \
-	dynspg_fsc_atsk.F90 \
-	flxrnf.F90 \
+	dynspg.F90 \
+	dynspg_exp.F90 \
+	dynspg_flt.F90 \
+	dynspg_flt_jki.F90 \
+	dynspg_rl.F90 \
+	dynspg_ts.F90 \
 	flx_oce.F90 \
 	ice_oce.F90 \
 	in_out_manager.F90 \
 	lbclnk.F90 \
-	ldfdyn_oce.F90 \
-	ldftra_oce.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	obcdyn.F90 \
-	obcvol.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
 	obc_oce.F90 \
-	ocesbc.F90 \
 	oce.F90 \
 	par_kind.F90 \
@@ -3819,8 +3994,6 @@
 	prtctl.f90 \
 	solfet.F90 \
-	solisl.F90 \
 	solpcg.F90 \
 	solsor.F90 \
-	solsor_e.F90 \
 	sol_oce.F90 \
 	trdmod.F90 \
@@ -3830,23 +4003,20 @@
 	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)(dynspg_fsc.o) \
-	$(MODEL_LIB)(dynspg_fsc_atsk.o) \
-	$(MODEL_LIB)(flxrnf.o) \
+	$(MODEL_LIB)(dynspg.o) \
+	$(MODEL_LIB)(dynspg_exp.o) \
+	$(MODEL_LIB)(dynspg_flt.o) \
+	$(MODEL_LIB)(dynspg_flt_jki.o) \
+	$(MODEL_LIB)(dynspg_rl.o) \
+	$(MODEL_LIB)(dynspg_ts.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)(obcdyn.o) \
-	$(MODEL_LIB)(obcvol.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) \
@@ -3855,8 +4025,6 @@
 	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(solfet.o) \
-	$(MODEL_LIB)(solisl.o) \
 	$(MODEL_LIB)(solpcg.o) \
 	$(MODEL_LIB)(solsor.o) \
-	$(MODEL_LIB)(solsor_e.o) \
 	$(MODEL_LIB)(sol_oce.o) \
 	$(MODEL_LIB)(trdmod.o) \
@@ -3870,7 +4038,5 @@
 	dtasal.F90 \
 	dtatem.F90 \
-	dynspg_fsc.F90 \
-	dynspg_fsc_atsk.F90 \
-	dynspg_rl.F90 \
+	dynspg.F90 \
 	eosbn2.F90 \
 	in_out_manager.F90 \
@@ -3888,7 +4054,5 @@
 	$(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)(dynspg.o) \
 	$(MODEL_LIB)(eosbn2.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
@@ -4894,4 +5058,5 @@
 	dtatem.F90 \
 	dyncor1d.F90 \
+	dynspg.F90 \
 	eosbn2.F90 \
 	flxfwb.F90 \
@@ -4932,4 +5097,5 @@
 	$(MODEL_LIB)(dtatem.o) \
 	$(MODEL_LIB)(dyncor1d.o) \
+	$(MODEL_LIB)(dynspg.o) \
 	$(MODEL_LIB)(eosbn2.o) \
 	$(MODEL_LIB)(flxfwb.o) \
@@ -5051,6 +5217,4 @@
 	solsor_e.F90 \
 	sol_oce.F90 \
-	trdmod.F90 \
-	trdmod_oce.F90 \
 	zdf_oce.F90 \
 	$(MODEL_LIB)(dom_oce.o) \
@@ -5074,6 +5238,4 @@
 	$(MODEL_LIB)(solsor_e.o) \
 	$(MODEL_LIB)(sol_oce.o) \
-	$(MODEL_LIB)(trdmod.o) \
-	$(MODEL_LIB)(trdmod_oce.o) \
 	$(MODEL_LIB)(zdf_oce.o) \
 	daymod.F90 \
@@ -5098,4 +5260,5 @@
 	$(MODEL_LIB)(phycst.o) \
 	obc_vectopt_loop_substitute.h90 \
+	../../../lib/libioipsl.a \
 	KEY_CPP \
 	obcdta.F90
@@ -5546,7 +5709,10 @@
 	dynnxt1d.F90 \
 	dynnxt.F90 \
-	dynspg_fsc.F90 \
-	dynspg_fsc_atsk.F90 \
+	dynspg.F90 \
+	dynspg_exp.F90 \
+	dynspg_flt.F90 \
+	dynspg_flt_jki.F90 \
 	dynspg_rl.F90 \
+	dynspg_ts.F90 \
 	dynvor.F90 \
 	dynzad.F90 \
@@ -5677,7 +5843,10 @@
 	$(MODEL_LIB)(dynnxt1d.o) \
 	$(MODEL_LIB)(dynnxt.o) \
-	$(MODEL_LIB)(dynspg_fsc.o) \
-	$(MODEL_LIB)(dynspg_fsc_atsk.o) \
+	$(MODEL_LIB)(dynspg.o) \
+	$(MODEL_LIB)(dynspg_exp.o) \
+	$(MODEL_LIB)(dynspg_flt.o) \
+	$(MODEL_LIB)(dynspg_flt_jki.o) \
 	$(MODEL_LIB)(dynspg_rl.o) \
+	$(MODEL_LIB)(dynspg_ts.o) \
 	$(MODEL_LIB)(dynvor.o) \
 	$(MODEL_LIB)(dynzad.o) \
@@ -5782,4 +5951,5 @@
 	dtatem.F90 \
 	dyncor1d.F90 \
+	dynspg.F90 \
 	eosbn2.F90 \
 	flxfwb.F90 \
@@ -5820,4 +5990,5 @@
 	$(MODEL_LIB)(dtatem.o) \
 	$(MODEL_LIB)(dyncor1d.o) \
+	$(MODEL_LIB)(dynspg.o) \
 	$(MODEL_LIB)(eosbn2.o) \
 	$(MODEL_LIB)(flxfwb.o) \
@@ -5899,14 +6070,16 @@
 $(MODEL_LIB)(restart.o) :	\
 	blk_oce.F90 \
-	cla_dynspg.F90 \
-	dom_oce.F90 \
+	dom_oce.F90 \
+	dynspg_exp.F90 \
+	dynspg_flt.F90 \
+	dynspg_flt_jki.F90 \
+	dynspg_rl.F90 \
+	dynspg_ts.F90 \
+	dynvor.F90 \
 	dynzdf_exp.F90 \
-	flxrnf.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	lib_mpp.F90 \
-	lib_print.f90 \
-	obcdyn.F90 \
-	obcvol.F90 \
+	in_out_manager.F90 \
+	lbclnk.F90 \
+	lib_mpp.F90 \
+	lib_print.f90 \
 	obc_oce.F90 \
 	ocesbc.F90 \
@@ -5916,9 +6089,4 @@
 	phycst.F90 \
 	prtctl.f90 \
-	solfet.F90 \
-	solpcg.F90 \
-	solsor.F90 \
-	solsor_e.F90 \
-	sol_oce.F90 \
 	taumod.F90 \
 	trazdf_exp.F90 \
@@ -5927,14 +6095,16 @@
 	zdf_oce.F90 \
 	$(MODEL_LIB)(blk_oce.o) \
-	$(MODEL_LIB)(cla_dynspg.o) \
-	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dynspg_exp.o) \
+	$(MODEL_LIB)(dynspg_flt.o) \
+	$(MODEL_LIB)(dynspg_flt_jki.o) \
+	$(MODEL_LIB)(dynspg_rl.o) \
+	$(MODEL_LIB)(dynspg_ts.o) \
+	$(MODEL_LIB)(dynvor.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)(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) \
@@ -5944,9 +6114,4 @@
 	$(MODEL_LIB)(phycst.o) \
 	$(MODEL_LIB)(prtctl.o) \
-	$(MODEL_LIB)(solfet.o) \
-	$(MODEL_LIB)(solpcg.o) \
-	$(MODEL_LIB)(solsor.o) \
-	$(MODEL_LIB)(solsor_e.o) \
-	$(MODEL_LIB)(sol_oce.o) \
 	$(MODEL_LIB)(taumod.o) \
 	$(MODEL_LIB)(trazdf_exp.o) \
@@ -5958,6 +6123,6 @@
 	daymod.F90 \
 	dom_oce.F90 \
-	dynspg_fsc.F90 \
-	dynspg_fsc_atsk.F90 \
+	dynspg.F90 \
+	dynspg_ts.F90 \
 	flx_oce.F90 \
 	ice_oce.F90 \
@@ -5972,6 +6137,6 @@
 	$(MODEL_LIB)(daymod.o) \
 	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dynspg_fsc.o) \
-	$(MODEL_LIB)(dynspg_fsc_atsk.o) \
+	$(MODEL_LIB)(dynspg.o) \
+	$(MODEL_LIB)(dynspg_ts.o) \
 	$(MODEL_LIB)(flx_oce.o) \
 	$(MODEL_LIB)(ice_oce.o) \
@@ -6054,69 +6219,25 @@
 	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 \
+	dom_oce.F90 \
+	in_out_manager.F90 \
+	lib_mpp.F90 \
+	obc_par.F90 \
+	oce.F90 \
+	par_oce.F90 \
+	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lib_mpp.o) \
+	$(MODEL_LIB)(obc_par.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	dom_oce.F90 \
+	lbclnk.F90 \
+	lib_feti.F90 \
+	lib_mpp.F90 \
 	obc_oce.F90 \
-	obc_par.F90 \
-	ocesbc.F90 \
-	oce.F90 \
-	par_oce.F90 \
-	phycst.F90 \
-	prtctl.f90 \
-	solfet.F90 \
-	solisl.F90 \
-	solpcg.F90 \
-	solsor.F90 \
-	solsor_e.F90 \
+	oce.F90 \
+	phycst.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)(prtctl.o) \
-	$(MODEL_LIB)(solfet.o) \
-	$(MODEL_LIB)(solisl.o) \
-	$(MODEL_LIB)(solpcg.o) \
-	$(MODEL_LIB)(solsor.o) \
-	$(MODEL_LIB)(solsor_e.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 \
-	lbclnk.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)(dom_oce.o) \
 	$(MODEL_LIB)(lbclnk.o) \
 	$(MODEL_LIB)(lib_feti.o) \
@@ -6218,21 +6339,17 @@
 	solsor_e.F90
 $(MODEL_LIB)(solver.o) :	\
-	cla_dynspg.F90 \
-	dom_oce.F90 \
-	dynspg_fsc.F90 \
+	dom_oce.F90 \
+	dynspg_exp.F90 \
+	dynspg_flt.F90 \
+	dynspg_flt_jki.F90 \
 	dynspg_rl.F90 \
-	flxrnf.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
-	ldfdyn_oce.F90 \
-	ldftra_oce.F90 \
+	dynspg_ts.F90 \
+	in_out_manager.F90 \
+	lbclnk.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 \
@@ -6241,29 +6358,22 @@
 	prtctl.f90 \
 	solfet.F90 \
-	solisl.F90 \
 	solpcg.F90 \
 	solsor.F90 \
-	solsor_e.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)(dom_oce.o) \
+	$(MODEL_LIB)(dynspg_exp.o) \
+	$(MODEL_LIB)(dynspg_flt.o) \
+	$(MODEL_LIB)(dynspg_flt_jki.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)(dynspg_ts.o) \
+	$(MODEL_LIB)(in_out_manager.o) \
+	$(MODEL_LIB)(lbclnk.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) \
@@ -6272,16 +6382,11 @@
 	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(solfet.o) \
-	$(MODEL_LIB)(solisl.o) \
 	$(MODEL_LIB)(solpcg.o) \
 	$(MODEL_LIB)(solsor.o) \
-	$(MODEL_LIB)(solsor_e.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 \
+	dom_oce.F90 \
+	dynspg.F90 \
 	in_out_manager.F90 \
 	lbclnk.F90 \
@@ -6294,7 +6399,5 @@
 	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)(dynspg.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(lbclnk.o) \
@@ -6327,6 +6430,6 @@
 	dtasst.F90 \
 	dtatem.F90 \
-	dynspg_fsc.F90 \
-	dynspg_fsc_atsk.F90 \
+	dynspg.F90 \
+	dynspg_ts.F90 \
 	dynzdf_exp.F90 \
 	eosbn2.F90 \
@@ -6387,6 +6490,6 @@
 	$(MODEL_LIB)(dtasst.o) \
 	$(MODEL_LIB)(dtatem.o) \
-	$(MODEL_LIB)(dynspg_fsc.o) \
-	$(MODEL_LIB)(dynspg_fsc_atsk.o) \
+	$(MODEL_LIB)(dynspg.o) \
+	$(MODEL_LIB)(dynspg_ts.o) \
 	$(MODEL_LIB)(dynzdf_exp.o) \
 	$(MODEL_LIB)(eosbn2.o) \
@@ -6530,5 +6633,4 @@
 $(MODEL_LIB)(step.o) :	\
 	blk_oce.F90 \
-	cla_dynspg.F90 \
 	cpl_oce.F90 \
 	daymod.F90 \
@@ -6544,7 +6646,10 @@
 	dtasst.F90 \
 	dtatem.F90 \
-	dynspg_fsc.F90 \
-	dynspg_fsc_atsk.F90 \
+	dynspg.F90 \
+	dynspg_exp.F90 \
+	dynspg_flt.F90 \
+	dynspg_flt_jki.F90 \
 	dynspg_rl.F90 \
+	dynspg_ts.F90 \
 	dynzdf_exp.F90 \
 	eosbn2.F90 \
@@ -6578,5 +6683,4 @@
 	obcdyn.F90 \
 	obctra.F90 \
-	obcvol.F90 \
 	obc_oce.F90 \
 	ocesbc.F90 \
@@ -6591,10 +6695,6 @@
 	solpcg.F90 \
 	solsor.F90 \
-	solsor_e.F90 \
 	sol_oce.F90 \
 	taumod.F90 \
-	traadv_muscl2.F90 \
-	traadv_muscl.F90 \
-	traadv_tvd.F90 \
 	trabbl.F90 \
 	tradmp.F90 \
@@ -6610,5 +6710,4 @@
 	zdf_oce.F90 \
 	$(MODEL_LIB)(blk_oce.o) \
-	$(MODEL_LIB)(cla_dynspg.o) \
 	$(MODEL_LIB)(cpl_oce.o) \
 	$(MODEL_LIB)(daymod.o) \
@@ -6624,7 +6723,10 @@
 	$(MODEL_LIB)(dtasst.o) \
 	$(MODEL_LIB)(dtatem.o) \
-	$(MODEL_LIB)(dynspg_fsc.o) \
-	$(MODEL_LIB)(dynspg_fsc_atsk.o) \
+	$(MODEL_LIB)(dynspg.o) \
+	$(MODEL_LIB)(dynspg_exp.o) \
+	$(MODEL_LIB)(dynspg_flt.o) \
+	$(MODEL_LIB)(dynspg_flt_jki.o) \
 	$(MODEL_LIB)(dynspg_rl.o) \
+	$(MODEL_LIB)(dynspg_ts.o) \
 	$(MODEL_LIB)(dynzdf_exp.o) \
 	$(MODEL_LIB)(eosbn2.o) \
@@ -6658,5 +6760,4 @@
 	$(MODEL_LIB)(obcdyn.o) \
 	$(MODEL_LIB)(obctra.o) \
-	$(MODEL_LIB)(obcvol.o) \
 	$(MODEL_LIB)(obc_oce.o) \
 	$(MODEL_LIB)(ocesbc.o) \
@@ -6671,10 +6772,6 @@
 	$(MODEL_LIB)(solpcg.o) \
 	$(MODEL_LIB)(solsor.o) \
-	$(MODEL_LIB)(solsor_e.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) \
@@ -6715,7 +6812,5 @@
 	dynldf_lap.F90 \
 	dynnxt.F90 \
-	dynspg_fsc.F90 \
-	dynspg_fsc_atsk.F90 \
-	dynspg_rl.F90 \
+	dynspg.F90 \
 	dynvor.F90 \
 	dynzad.F90 \
@@ -6811,7 +6906,5 @@
 	$(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)(dynspg.o) \
 	$(MODEL_LIB)(dynvor.o) \
 	$(MODEL_LIB)(dynzad.o) \
@@ -6892,4 +6985,9 @@
 	diaspr.F90 \
 	dom_oce.F90 \
+	dynspg_exp.F90 \
+	dynspg_flt.F90 \
+	dynspg_flt_jki.F90 \
+	dynspg_rl.F90 \
+	dynspg_ts.F90 \
 	flxrnf.F90 \
 	flx_oce.F90 \
@@ -6908,4 +7006,5 @@
 	par_oce.F90 \
 	phycst.F90 \
+	prtctl.f90 \
 	solfet.F90 \
 	solpcg.F90 \
@@ -6913,4 +7012,6 @@
 	sol_oce.F90 \
 	taumod.F90 \
+	trdmod.F90 \
+	trdmod_oce.F90 \
 	zdfddm.F90 \
 	zdfmxl.F90 \
@@ -6922,4 +7023,9 @@
 	$(MODEL_LIB)(diaspr.o) \
 	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dynspg_exp.o) \
+	$(MODEL_LIB)(dynspg_flt.o) \
+	$(MODEL_LIB)(dynspg_flt_jki.o) \
+	$(MODEL_LIB)(dynspg_rl.o) \
+	$(MODEL_LIB)(dynspg_ts.o) \
 	$(MODEL_LIB)(flxrnf.o) \
 	$(MODEL_LIB)(flx_oce.o) \
@@ -6938,4 +7044,5 @@
 	$(MODEL_LIB)(par_oce.o) \
 	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(solfet.o) \
 	$(MODEL_LIB)(solpcg.o) \
@@ -6943,4 +7050,6 @@
 	$(MODEL_LIB)(sol_oce.o) \
 	$(MODEL_LIB)(taumod.o) \
+	$(MODEL_LIB)(trdmod.o) \
+	$(MODEL_LIB)(trdmod_oce.o) \
 	$(MODEL_LIB)(zdfddm.o) \
 	$(MODEL_LIB)(zdfmxl.o) \
@@ -6948,4 +7057,5 @@
 	diawri.F90 \
 	dom_oce.F90 \
+	dynspg.F90 \
 	in_out_manager.F90 \
 	lbclnk.F90 \
@@ -6956,4 +7066,5 @@
 	$(MODEL_LIB)(diawri.o) \
 	$(MODEL_LIB)(dom_oce.o) \
+	$(MODEL_LIB)(dynspg.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(lbclnk.o) \
@@ -7009,28 +7120,21 @@
 	thd_ice.F90
 $(MODEL_LIB)(traadv_cen2.o) :	\
-	cla_dynspg.F90 \
 	daymod.F90 \
 	dianam.F90 \
 	dom_oce.F90 \
-	flxrnf.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
+	dynspg_exp.F90 \
+	dynspg_flt.F90 \
+	dynspg_flt_jki.F90 \
+	dynspg_rl.F90 \
+	dynspg_ts.F90 \
+	in_out_manager.F90 \
 	ldftra_oce.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 \
-	prtctl.f90 \
-	solfet.F90 \
-	solpcg.F90 \
-	solsor.F90 \
-	solsor_e.F90 \
-	sol_oce.F90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
 	trabbl.F90 \
 	trdicp.F90 \
@@ -7042,29 +7146,21 @@
 	trdvor.F90 \
 	trdvor_oce.F90 \
-	zdf_oce.F90 \
-	$(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)(dynspg_exp.o) \
+	$(MODEL_LIB)(dynspg_flt.o) \
+	$(MODEL_LIB)(dynspg_flt_jki.o) \
+	$(MODEL_LIB)(dynspg_rl.o) \
+	$(MODEL_LIB)(dynspg_ts.o) \
+	$(MODEL_LIB)(in_out_manager.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)(prtctl.o) \
-	$(MODEL_LIB)(solfet.o) \
-	$(MODEL_LIB)(solpcg.o) \
-	$(MODEL_LIB)(solsor.o) \
-	$(MODEL_LIB)(solsor_e.o) \
-	$(MODEL_LIB)(sol_oce.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(trabbl.o) \
 	$(MODEL_LIB)(trdicp.o) \
@@ -7076,9 +7172,7 @@
 	$(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 \
+	dynspg.F90 \
 	flxrnf.F90 \
 	in_out_manager.F90 \
@@ -7093,6 +7187,5 @@
 	$(MODEL_LIB)(diaptr.o) \
 	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dynspg_fsc.o) \
-	$(MODEL_LIB)(dynspg_fsc_atsk.o) \
+	$(MODEL_LIB)(dynspg.o) \
 	$(MODEL_LIB)(flxrnf.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
@@ -7113,75 +7206,33 @@
 	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 \
-	prtctl.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)(prtctl.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 \
+	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) \
 	traadv_ctl.F90
 $(MODEL_LIB)(traadv_muscl2.o) :	\
-	cla_dynspg.F90 \
 	daymod.F90 \
 	dianam.F90 \
 	dom_oce.F90 \
-	flxrnf.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
+	dynspg_exp.F90 \
+	dynspg_flt.F90 \
+	dynspg_flt_jki.F90 \
+	dynspg_rl.F90 \
+	dynspg_ts.F90 \
+	in_out_manager.F90 \
 	ldftra_oce.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 \
-	prtctl.f90 \
-	solfet.F90 \
-	solpcg.F90 \
-	solsor.F90 \
-	solsor_e.F90 \
-	sol_oce.F90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
 	trabbl.F90 \
 	trdicp.F90 \
@@ -7193,29 +7244,21 @@
 	trdvor.F90 \
 	trdvor_oce.F90 \
-	zdf_oce.F90 \
-	$(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)(dynspg_exp.o) \
+	$(MODEL_LIB)(dynspg_flt.o) \
+	$(MODEL_LIB)(dynspg_flt_jki.o) \
+	$(MODEL_LIB)(dynspg_rl.o) \
+	$(MODEL_LIB)(dynspg_ts.o) \
+	$(MODEL_LIB)(in_out_manager.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)(prtctl.o) \
-	$(MODEL_LIB)(solfet.o) \
-	$(MODEL_LIB)(solpcg.o) \
-	$(MODEL_LIB)(solsor.o) \
-	$(MODEL_LIB)(solsor_e.o) \
-	$(MODEL_LIB)(sol_oce.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(trabbl.o) \
 	$(MODEL_LIB)(trdicp.o) \
@@ -7227,9 +7270,7 @@
 	$(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 \
+	dynspg.F90 \
 	in_out_manager.F90 \
 	lbclnk.F90 \
@@ -7242,6 +7283,5 @@
 	$(MODEL_LIB)(diaptr.o) \
 	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dynspg_fsc.o) \
-	$(MODEL_LIB)(dynspg_fsc_atsk.o) \
+	$(MODEL_LIB)(dynspg.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(lbclnk.o) \
@@ -7257,28 +7297,21 @@
 	traadv_muscl2.F90
 $(MODEL_LIB)(traadv_muscl.o) :	\
-	cla_dynspg.F90 \
 	daymod.F90 \
 	dianam.F90 \
 	dom_oce.F90 \
-	flxrnf.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
+	dynspg_exp.F90 \
+	dynspg_flt.F90 \
+	dynspg_flt_jki.F90 \
+	dynspg_rl.F90 \
+	dynspg_ts.F90 \
+	in_out_manager.F90 \
 	ldftra_oce.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 \
-	prtctl.f90 \
-	solfet.F90 \
-	solpcg.F90 \
-	solsor.F90 \
-	solsor_e.F90 \
-	sol_oce.F90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
 	trabbl.F90 \
 	trdicp.F90 \
@@ -7290,29 +7323,21 @@
 	trdvor.F90 \
 	trdvor_oce.F90 \
-	zdf_oce.F90 \
-	$(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)(dynspg_exp.o) \
+	$(MODEL_LIB)(dynspg_flt.o) \
+	$(MODEL_LIB)(dynspg_flt_jki.o) \
+	$(MODEL_LIB)(dynspg_rl.o) \
+	$(MODEL_LIB)(dynspg_ts.o) \
+	$(MODEL_LIB)(in_out_manager.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)(prtctl.o) \
-	$(MODEL_LIB)(solfet.o) \
-	$(MODEL_LIB)(solpcg.o) \
-	$(MODEL_LIB)(solsor.o) \
-	$(MODEL_LIB)(solsor_e.o) \
-	$(MODEL_LIB)(sol_oce.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(trabbl.o) \
 	$(MODEL_LIB)(trdicp.o) \
@@ -7324,9 +7349,7 @@
 	$(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 \
+	dynspg.F90 \
 	in_out_manager.F90 \
 	lbclnk.F90 \
@@ -7339,6 +7362,5 @@
 	$(MODEL_LIB)(diaptr.o) \
 	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dynspg_fsc.o) \
-	$(MODEL_LIB)(dynspg_fsc_atsk.o) \
+	$(MODEL_LIB)(dynspg.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(lbclnk.o) \
@@ -7354,28 +7376,21 @@
 	traadv_muscl.F90
 $(MODEL_LIB)(traadv_tvd.o) :	\
-	cla_dynspg.F90 \
 	daymod.F90 \
 	dianam.F90 \
 	dom_oce.F90 \
-	flxrnf.F90 \
-	in_out_manager.F90 \
-	lbclnk.F90 \
+	dynspg_exp.F90 \
+	dynspg_flt.F90 \
+	dynspg_flt_jki.F90 \
+	dynspg_rl.F90 \
+	dynspg_ts.F90 \
+	in_out_manager.F90 \
 	ldftra_oce.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 \
-	prtctl.f90 \
-	solfet.F90 \
-	solpcg.F90 \
-	solsor.F90 \
-	solsor_e.F90 \
-	sol_oce.F90 \
+	oce.F90 \
+	par_kind.F90 \
+	par_oce.F90 \
+	phycst.F90 \
+	prtctl.f90 \
 	trabbl.F90 \
 	trdicp.F90 \
@@ -7387,29 +7402,21 @@
 	trdvor.F90 \
 	trdvor_oce.F90 \
-	zdf_oce.F90 \
-	$(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)(dynspg_exp.o) \
+	$(MODEL_LIB)(dynspg_flt.o) \
+	$(MODEL_LIB)(dynspg_flt_jki.o) \
+	$(MODEL_LIB)(dynspg_rl.o) \
+	$(MODEL_LIB)(dynspg_ts.o) \
+	$(MODEL_LIB)(in_out_manager.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)(prtctl.o) \
-	$(MODEL_LIB)(solfet.o) \
-	$(MODEL_LIB)(solpcg.o) \
-	$(MODEL_LIB)(solsor.o) \
-	$(MODEL_LIB)(solsor_e.o) \
-	$(MODEL_LIB)(sol_oce.o) \
+	$(MODEL_LIB)(oce.o) \
+	$(MODEL_LIB)(par_kind.o) \
+	$(MODEL_LIB)(par_oce.o) \
+	$(MODEL_LIB)(phycst.o) \
+	$(MODEL_LIB)(prtctl.o) \
 	$(MODEL_LIB)(trabbl.o) \
 	$(MODEL_LIB)(trdicp.o) \
@@ -7421,9 +7428,7 @@
 	$(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 \
+	dynspg.F90 \
 	in_out_manager.F90 \
 	lbclnk.F90 \
@@ -7436,6 +7441,5 @@
 	$(MODEL_LIB)(diaptr.o) \
 	$(MODEL_LIB)(dom_oce.o) \
-	$(MODEL_LIB)(dynspg_fsc.o) \
-	$(MODEL_LIB)(dynspg_fsc_atsk.o) \
+	$(MODEL_LIB)(dynspg.o) \
 	$(MODEL_LIB)(in_out_manager.o) \
 	$(MODEL_LIB)(lbclnk.o) \
Index: trunk/CONFIG/GYRE/scripts/BB_make.ldef
===================================================================
--- trunk/CONFIG/GYRE/scripts/BB_make.ldef	(revision 362)
+++ trunk/CONFIG/GYRE/scripts/BB_make.ldef	(revision 364)
@@ -24,19 +24,19 @@
 #-
 #- Key options for GYRE ocean configuration: Analytical forcing 
-#-Q- sxnec   P_P = -Wp,-Dkey_gyre -Wp,-Dkey_dynspg_fsc -Wp,-Dkey_ldfslp -Wp,-Dkey_zdftke -Wp,-Dkey_vectopt_loop -Wp,-Dkey_vectopt_memory   
+#-Q- sxnec   P_P = -Wp,-Dkey_gyre -Wp,-Dkey_dynspg_flt -Wp,-Dkey_ldfslp -Wp,-Dkey_zdftke -Wp,-Dkey_vectopt_loop -Wp,-Dkey_vectopt_memory   
 #-
-#-Q- sx6nec  P_P = '-Wp,-Dkey_gyre -Wp,-Dkey_dynspg_fsc -Wp,-Dkey_ldfslp -Wp,-Dkey_zdftke -Wp,-Dkey_vectopt_loop -Wp,-Dkey_vectopt_memory'
+#-Q- sx6nec  P_P = '-Wp,-Dkey_gyre -Wp,-Dkey_dynspg_flt -Wp,-Dkey_ldfslp -Wp,-Dkey_zdftke -Wp,-Dkey_vectopt_loop -Wp,-Dkey_vectopt_memory'
 #-
-#-Q- hpux  P_P = '-Wp,-Dkey_gyre -Wp,-Dkey_dynspg_fsc -Wp,-Dkey_ldfslp -Wp,-Dkey_zdftke -Wp,-Dkey_vectopt_loop -Wp,-Dkey_vectopt_memory'
+#-Q- hpux  P_P = '-Wp,-Dkey_gyre -Wp,-Dkey_dynspg_flt -Wp,-Dkey_ldfslp -Wp,-Dkey_zdftke -Wp,-Dkey_vectopt_loop -Wp,-Dkey_vectopt_memory'
 #-
-#-Q- sxdkrz  P_P = '-Wp,-Dkey_gyre -Wp,-Dkey_dynspg_fsc -Wp,-Dkey_ldfslp -Wp,-Dkey_zdftke -Wp,-Dkey_vectopt_loop -Wp,-Dkey_vectopt_memory'
+#-Q- sxdkrz  P_P = '-Wp,-Dkey_gyre -Wp,-Dkey_dynspg_flt -Wp,-Dkey_ldfslp -Wp,-Dkey_zdftke -Wp,-Dkey_vectopt_loop -Wp,-Dkey_vectopt_memory'
 #-
-#-Q- linux  P_P = -Dkey_gyre -Dkey_dynspg_fsc -Dkey_ldfslp -Dkey_zdftke -Dkey_vectopt_loop -Dkey_vectopt_memory
+#-Q- linux  P_P = -Dkey_gyre -Dkey_dynspg_flt -Dkey_ldfslp -Dkey_zdftke -Dkey_vectopt_loop -Dkey_vectopt_memory
 #-
-#-Q- lxiv8  P_P = -Dkey_gyre -Dkey_dynspg_fsc -Dkey_ldfslp -Dkey_zdftke -Dkey_vectopt_loop -Dkey_vectopt_memory
+#-Q- lxiv8  P_P = -Dkey_gyre -Dkey_dynspg_flt -Dkey_ldfslp -Dkey_zdftke -Dkey_vectopt_loop -Dkey_vectopt_memory
 #-
-#-Q- g95  P_P = -Dkey_gyre -Dkey_dynspg_fsc -Dkey_ldfslp -Dkey_zdftke -Dkey_vectopt_loop -Dkey_vectopt_memory
+#-Q- g95  P_P = -Dkey_gyre -Dkey_dynspg_flt -Dkey_ldfslp -Dkey_zdftke -Dkey_vectopt_loop -Dkey_vectopt_memory
 #-
-#-Q- aix     P_P = -WF,-Dkey_gyre -WF,-Dkey_dynspg_fsc -WF,-Dkey_ldfslp -WF,-Dkey_zdftke -WF,-Dkey_vectopt_memory
+#-Q- aix     P_P = -WF,-Dkey_gyre -WF,-Dkey_dynspg_flt -WF,-Dkey_ldfslp -WF,-Dkey_zdftke -WF,-Dkey_vectopt_memory
 #-
-#-Q- osxxlf     P_P = -WF,-Dkey_gyre -WF,-Dkey_dynspg_fsc -WF,-Dkey_ldfslp -WF,-Dkey_zdftke -WF,-Dkey_vectopt_memory
+#-Q- osxxlf     P_P = -WF,-Dkey_gyre -WF,-Dkey_dynspg_flt -WF,-Dkey_ldfslp -WF,-Dkey_zdftke -WF,-Dkey_vectopt_memory
