Index: /altifloat/scripts/floater_d_test.i
===================================================================
--- /altifloat/scripts/floater_d_test.i	(revision 97)
+++ /altifloat/scripts/floater_d_test.i	(revision 98)
@@ -16,19 +16,4 @@
 
 set_modeltime 0
-
-#uniquement activer les trajectoires de type M model
-activ M only 
-
-forward
-
-savestate r_float 0 i 0 A 3 ../obs_float/r_float_forward.dat
-
-activ D only
-
-#testdf 1 29 21 4 r 0.0001 0.0001
-
-
-
-
 print_cost ON
 
@@ -43,4 +28,34 @@
 setm_ddf1 1.0
 
+
+run_inc
+goto fin
+
+#uniquement activer les trajectoires de type M model
+activ M only 
+
+forward
+
+savestate r_float 0 i 0 A 3 ../obs_float/r_float_forward.dat
+
+activ D only
+
+#testdf 1 29 21 4 r 0.0001 0.0001
+
+
+
+
+print_cost ON
+
+setm_impres 3
+setm_io 6
+setm_mode 0
+#set_nbiter 100
+set_nbiter 20
+setm_nsim 200
+setm_dxmin 1.0e-12
+setm_epsg 1.0e-12
+setm_ddf1 1.0
+
 RUNM
 savestate r_cout_d 0 i 0 A 3 ../obs_float/r_cout_d_optim_1.dat
@@ -208,2 +223,3 @@
 #testing the gradients of each module 
 
+fin
Index: /altifloat/src/Yworkdir/Y2floater_delta.h
===================================================================
--- /altifloat/src/Yworkdir/Y2floater_delta.h	(revision 97)
+++ /altifloat/src/Yworkdir/Y2floater_delta.h	(revision 98)
@@ -3399,4 +3399,6 @@
 	 if (strcmp(argv[0], "update_uv") == 0)
 		 update_uv();
+	 else if (strcmp(argv[0], "run_inc") == 0)
+		 run_inc(argc, argv);
 	 else codret=0;
 	 return(codret);
Index: /altifloat/src/floater.h
===================================================================
--- /altifloat/src/floater.h	(revision 97)
+++ /altifloat/src/floater.h	(revision 98)
@@ -7,4 +7,12 @@
 YREAL vr_dy=0;
 
+
+
+//Options du run incrmental
+int nb_extiter=6;
+short inc_save=1;
+char dirsave[50]="../obs_float/";
+char savename[50]="optim";
+extern float Y3ddf1;
 //Declaration 
 
@@ -15,5 +23,5 @@
 void after_it(int nit){
 	
-	printf("u_d(9,16)=%f %f %f %f\n",YS1_u_d(9,16),YS1_u_d(10,16),YS1_u_d(10,17),YS1_u_d(9,17));
+	//printf("u_d(9,16)=%f %f %f %f\n",YS1_u_d(9,16),YS1_u_d(10,16),YS1_u_d(10,17),YS1_u_d(9,17));
 	}
 void forward_before(int ctrp){
@@ -50,2 +58,95 @@
 	
 //	}
+
+void run_inc(int argv, char *argc[]) {
+//Run the incremental optimisation
+//1 forward of the complete model
+//2 initialize du et dv to zero
+//3 minimize the incremental cost function
+//4 update u and v
+
+/*
+Options
+nb_extiter : number of extern loop (default=6)
+inc_save : save option
+	0  : no save
+	1 (default): save after each extern loop r_float,u and v
+dirsave : directory in case inc_save>0 (default="../obs_float/")
+savename : basename of save fils (default "optim")
+*/
+char filesave[100];
+int i;
+
+char sactiv[20]="activ";
+char sMD[20]="M";
+char sonly[20]="only";
+char *liste[3];
+liste[0]=sactiv;
+liste[1]=sMD;
+liste[2]=sonly;
+/*Check M1QN3 config*/
+ if (YNbItRun<=0)
+		{	 printf("runm(2): number of run iteration not seted; use set_nbiter please\n");
+			 //return(0);
+		}
+	if (Y3ddf1<=0)
+		{	printf("runm(2): expected positive fcost decrease missed; use setm_ddf1\n");
+			 //return(0);
+		}
+	if (YioInsertObsCtr<0)
+		   printf("runm(2): warning : oh oh, run with no obs !!! \n");
+		
+	YTypeAdjust = ADJUST_M1QN3; //d'office avec M1QN3
+	
+//Savestate config
+ YioModulot = OFF; //On sauvegarde tous les pas de temps
+    YioWrite = ON;
+   // Yio_savestate(cdes[1], cdes[3], 0, cdes[7]);
+    YioState=0 ;//Save all states
+    YioBin=OFF; //ascii output
+    YioAscii=ON; //ascii output
+    YioAxes=ON; //save axe numbers
+
+for (i=0;i<nb_extiter;i++) {
+     strcpy(liste[1],"M");
+	 Yactraj(3, liste);
+	 Yset_modeltime(0);
+	 before_it(1);
+	 Yforward(-1, 0);
+	 
+	 if (inc_save==1 && i>0) {
+	  //save rfloat
+  	  YioTime=ON;
+   	  sprintf(filesave,"%sr_float_%s_%2d.dat",dirsave,savename,i+1);
+	  Yio_savestate("r_float","i",0,filesave);
+	 }
+	     strcpy(liste[1],"D");
+	 Yactraj(3,liste);
+	 Yset_modeltime(0);
+	 
+	
+	Y3run ('0');
+    update_uv();
+    if (inc_save==1) {
+   
+    
+    //save u
+    YioTime=OFF;
+    sprintf(filesave,"%su%s%2d.dat",dirsave,savename,i+1);
+    Yio_savestate("u","ij",0,filesave);
+    
+    //save v
+    sprintf(filesave,"%sv%s%2d.dat",dirsave,savename,i+1);
+    Yio_savestate("v","ij",0,filesave);
+    
+    }
+    }
+    /*End of the optimization, we run another time the model to compute the final value of r_float
+    */
+     strcpy(liste[1],"M");
+    Yactraj(3, liste);
+	 Yset_modeltime(0);
+	 before_it(1);
+	 Yforward(-1, 0);
+    
+}
Index: /altifloat/src/floater_delta.d
===================================================================
--- /altifloat/src/floater_delta.d	(revision 97)
+++ /altifloat/src/floater_delta.d	(revision 98)
@@ -113,4 +113,4 @@
 //insert_fct arg load_aviso
 insert_fct update_uv
+insert_fct arg run_inc
 
-
Index: /altifloat/src/locate.h
===================================================================
--- /altifloat/src/locate.h	(revision 97)
+++ /altifloat/src/locate.h	(revision 98)
@@ -5,7 +5,7 @@
 	int j_ll=(int)x;
 	int k_ll=(int)y;
-	if (j_ll==Yj & k_ll==Yk)
+	if (j_ll==Yj && k_ll==Yk)
 	{
-		printf("j_ll=%d ; k_ll=%d\n",j_ll,k_ll);
+		//printf("j_ll=%d ; k_ll=%d\n",j_ll,k_ll);
 		YS1_uinter(Yi,YTemps)=YS1_u(Yj,Yk);//la 1ere sortie du module uinter pour le floater i est la valeur du module u en Yj Yk
 		YS2_uinter(Yi,YTemps)=YS1_u(Yj+1,Yk);
@@ -32,5 +32,5 @@
 	int j_ll=(int)x;
 	int k_ll=(int)y;
-	if (j_ll==Yj & k_ll==Yk)
+	if (j_ll==Yj && k_ll==Yk)
 	{
 		YG1_u(Yj,Yk)+=YG1_uinter(Yi,YTemps);
Index: /altifloat/src/locate_d.h
===================================================================
--- /altifloat/src/locate_d.h	(revision 97)
+++ /altifloat/src/locate_d.h	(revision 98)
@@ -5,5 +5,5 @@
 	int j_ll=YS1_xinter(Yi,YTemps);
 	int k_ll=YS5_xinter(Yi,YTemps);
-	if (j_ll==Yj & k_ll==Yk)
+	if (j_ll==Yj && k_ll==Yk)
 	{
 		//printf("j_ll=%d ; k_ll=%d\n",j_ll,k_ll);
@@ -25,5 +25,5 @@
 	int j_ll=YS1_xinter(Yi,YTemps);
 	int k_ll=YS5_xinter(Yi,YTemps);
-	if (j_ll==Yj & k_ll==Yk)
+	if (j_ll==Yj && k_ll==Yk)
 	{
 		YG1_u_d(Yj,Yk)+=YG1_uinter_d(Yi,YTemps);
Index: /altifloat/src/r_cout_d.h
===================================================================
--- /altifloat/src/r_cout_d.h	(revision 97)
+++ /altifloat/src/r_cout_d.h	(revision 98)
@@ -2,5 +2,5 @@
 {
 	YS1=xd+YS1_r_float(Yi,YTemps);
-	printf("xd=%f x=%f\n",xd,YS1_r_float(Yi,YTemps));
+	//printf("xd=%f x=%f\n",xd,YS1_r_float(Yi,YTemps));
 	YS2=yd+YS2_r_float(Yi,YTemps);
 
Index: /altifloat/src/ur.h
===================================================================
--- /altifloat/src/ur.h	(revision 97)
+++ /altifloat/src/ur.h	(revision 98)
@@ -7,5 +7,5 @@
 	vr_dx=(v2-v1)+(v1-v2-v3+v4)*(y-y1);
 	vr_dy=(v3-v1)+(v1-v2-v3+v4)*(x-x1);
-	printf("u1=%f ; u2=%f\n",u1,u2);
+	//printf("u1=%f ; u2=%f\n",u1,u2);
 }
 
