From 656378664b9696e748438fccfb5d1c83e673b431 Mon Sep 17 00:00:00 2001
From: nadolski <nadolski@9a6e40ed-f3a0-4838-9b4a-bf418f78e88d>
Date: Tue, 28 Sep 2010 16:39:08 +0000
Subject: [PATCH] Add parameters for parameter file

---
 tracy/tools/soltracy.cc        |  49 +++++++--
 tracy/tracy/inc/read_script.h  |  25 ++++-
 tracy/tracy/inc/soleillib.h    |   4 +-
 tracy/tracy/src/read_script.cc | 195 ++++++++++++++++++++++-----------
 tracy/tracy/src/soleillib.cc   |  22 ++--
 tracy/tracy/src/t2lat.cc       |   2 +-
 6 files changed, 201 insertions(+), 96 deletions(-)

diff --git a/tracy/tools/soltracy.cc b/tracy/tools/soltracy.cc
index 22e7101..e7443e1 100644
--- a/tracy/tools/soltracy.cc
+++ b/tracy/tools/soltracy.cc
@@ -42,7 +42,13 @@ extern bool  freq_map;
   /************************************************************************
       start read in files and flags
   *************************************************************************/
-  read_script(argv[1], true);
+  if (argc > 1){
+  read_script(argv[1], true);}
+  else{
+	  fprintf(stdout, "Not enough parameters\nSyntax is program parameterfile\n");
+	  return 1;
+  }
+
 
 
  /************************************************************************
@@ -63,7 +69,7 @@ extern bool  freq_map;
      DefineChNoU20();  // using vacuum chamber setting but without undulator U20
   else if (ReadChamberFlag == true)
      ReadCh(chamber_file); /* read vacuum chamber from a file "Apertures.dat" , soleil version*/
-  PrintCh();
+  PrintCh(); // print chamber into chamber.out
  
  
   // compute tunes by tracking (should be the same as by DA)
@@ -120,15 +126,13 @@ extern bool  freq_map;
   if (MultipoleFlag == true ){
     if (ThinsextFlag ==true){
       fprintf(stdout, "\n Setting Multipoles for lattice with thin sextupoles \n");
-      Multipole_thinsext();  /* for thin sextupoles */
-      
+      Multipole_thinsext(fic_hcorr,fic_vcorr,fic_skew);  /* for thin sextupoles */
       Ring_GetTwiss(chroma=true, 0.0);  /* Compute and get Twiss parameters */
       printglob(); 
      }
     else{
       fprintf(stdout, "\n Setting Multipoles for lattice with thick sextupoles \n");
-      Multipole_thicksext();  /* for thick sextupoles */
-      
+      Multipole_thicksext(fic_hcorr,fic_vcorr,fic_skew);  /* for thick sextupoles */
       Ring_GetTwiss(chroma=true, 0.0);  /* Compute and get Twiss parameters */
       printglob(); 
     }
@@ -137,7 +141,10 @@ extern bool  freq_map;
   if (FmapFlag == true){
     if (ChamberFlag == true ){
       if (ExperimentFMAFlag == true)
-         fmap(40,12,258,-20e-3,5e-3,0.0,true); // for experimental
+          fmap( _FmapFlag_nxpoint, _FmapFlag_nypoint,
+          		_FmapFlag_nturn, _FmapFlag_xmax, _FmapFlag_ymax,
+          		_FmapFlag_delta, _FmapFlag_diffusion);
+    	  //fmap(40,12,258,-20e-3,5e-3,0.0,true); // for experimental
       if (DetailedFMAFlag == true)
         fmap(100,50,1026,20e-3,5e-3,0.0,true);
       }
@@ -153,18 +160,36 @@ extern bool  freq_map;
           fmap(200,100,1026,-32e-3,7e-3,0.0,true);
   }
 
+  // MOMENTUM ACCEPTANCE
   if (MomentumAccFlag == true){
-    MomentumAcceptance(1L, 108L, 0.01, 0.05, 100L, -0.01, -0.05, 100L);
+	  MomentumAcceptance(
+	  _MomentumAccFlag_istart, _MomentumAccFlag_istop,
+	  _MomentumAccFlag_deltaminp, _MomentumAccFlag_deltamaxp, _MomentumAccFlag_nstepp,
+	  _MomentumAccFlag_deltaminn, _MomentumAccFlag_deltamaxn, _MomentumAccFlag_nstepn);
+	 // MomentumAcceptance(1L, 108L, 0.01, 0.05, 100L, -0.01, -0.05, 100L);
   }
 
-  // computes Tuneshift with amplitudes
-  if (TuneShiftFlag == true){
+  // computes TuneShift with amplitudes
+  if (AmplitudeTuneShiftFlag == true){
     if (ChamberFlag == true ){
-      NuDx(31L,21L,516L,0.025,0.005,dP);
-      NuDp(31L,1026L,0.06);
+    	NuDx(_AmplitudeTuneShift_nxpoint,
+	         _AmplitudeTuneShift_nypoint, _AmplitudeTuneShift_nturn,
+	         _AmplitudeTuneShift_xmax, _AmplitudeTuneShift_ymax,
+	         _AmplitudeTuneShift_delta);
+      //NuDx(31L,21L,516L,0.025,0.005,dP);
       }
       else{
         NuDx(50L,30L,516L,0.035,0.02,dP);
+      }
+
+  }
+  if (EnergyTuneShiftFlag == true){
+    if (ChamberFlag == true ){
+    	NuDp(_EnergyTuneShift_npoint,
+    	     _EnergyTuneShift_nturn, _EnergyTuneShift_deltamax);
+      //NuDp(31L,1026L,0.06);
+      }
+      else{
         NuDp(31L,1026L,0.06);
       }
 
diff --git a/tracy/tracy/inc/read_script.h b/tracy/tracy/inc/read_script.h
index 8640d90..e61574c 100644
--- a/tracy/tracy/inc/read_script.h
+++ b/tracy/tracy/inc/read_script.h
@@ -1,10 +1,31 @@
 /* global flag, used in script_read() and main() for read the input from script*/
 extern bool TuneTracFlag;
 extern bool ChromTracFlag ;
+
 extern bool FmapFlag , ExperimentFMAFlag, DetailedFMAFlag;
-extern bool TuneShiftFlag ;
-extern bool ErrorCouplingFlag ; extern bool CouplingFlag ;
+extern long _FmapFlag_nxpoint, _FmapFlag_nypoint, _FmapFlag_nturn;
+extern double _FmapFlag_xmax, _FmapFlag_ymax, _FmapFlag_delta;
+extern bool _FmapFlag_diffusion;
+
+extern bool AmplitudeTuneShiftFlag;
+extern long _AmplitudeTuneShift_nxpoint, _AmplitudeTuneShift_nypoint;
+extern long _AmplitudeTuneShift_nturn;
+extern double _AmplitudeTuneShift_xmax, _AmplitudeTuneShift_ymax, _AmplitudeTuneShift_delta;
+
+extern bool EnergyTuneShiftFlag;
+extern long _EnergyTuneShift_npoint, _EnergyTuneShift_nturn;
+extern double _EnergyTuneShift_deltamax;
+
+
 extern bool MomentumAccFlag ;
+extern long _MomentumAccFlag_istart, _MomentumAccFlag_istop,
+            _MomentumAccFlag_nstepn, _MomentumAccFlag_nstepp;
+extern double _MomentumAccFlag_deltaminn, _MomentumAccFlag_deltamaxn;
+extern double _MomentumAccFlag_deltaminp, _MomentumAccFlag_deltamaxp;
+
+extern bool ErrorCouplingFlag ; extern bool CouplingFlag ;
+
+extern char fic_hcorr[max_str],fic_vcorr[max_str], fic_skew[max_str];
 extern bool MultipoleFlag , ThinsextFlag ;
 extern bool FitTuneFlag  ; extern double targetnux , targetnuz ;
 extern bool FitChromFlag ; extern double targetksix, targetksiz ;
diff --git a/tracy/tracy/inc/soleillib.h b/tracy/tracy/inc/soleillib.h
index 18b5073..99adb4f 100644
--- a/tracy/tracy/inc/soleillib.h
+++ b/tracy/tracy/inc/soleillib.h
@@ -30,8 +30,8 @@ void PhasePortrait(double x0,double px0,double z0, double pz0, double delta0, do
                           double end, long Nb, long Nbtour, int num);
 void PhasePortrait2(long pos,double x0,double px0,double z0, double pz0, double delta0, double ctau,
                           double end, long Nb, long Nbtour, int num);
-void Multipole_thicksext(void);
-void Multipole_thinsext(void);
+void Multipole_thicksext(char const *fic_hcorr, char const *fic_vcorr, char const *fic_skew);
+void Multipole_thinsext(char const *fic_hcorr, char const *fic_vcorr, char const *fic_skew);
 void MomentumAcceptance(long deb, long fin, double ep_min, double ep_max, long nstepp,
                         double em_min, double em_max, long nstepm);
 void ReadCh(const char *AperFile);
diff --git a/tracy/tracy/src/read_script.cc b/tracy/tracy/src/read_script.cc
index 9bc3ad5..8b184df 100644
--- a/tracy/tracy/src/read_script.cc
+++ b/tracy/tracy/src/read_script.cc
@@ -26,15 +26,36 @@
        Jianfeng Zhang 07/10 soleil
 
 ****************************************************************************/
-
 /* global flag, used in script_read() and main() for read the input from script*/
 bool TuneTracFlag = false;
 bool ChromTracFlag = false;
+
 bool FmapFlag = false, ExperimentFMAFlag = false, DetailedFMAFlag = false;
-bool TuneShiftFlag = false;
+long _FmapFlag_nxpoint=31L, _FmapFlag_nypoint=21L, _FmapFlag_nturn=516L;
+double _FmapFlag_xmax=0.025, _FmapFlag_ymax=0.005, _FmapFlag_delta=0.0;
+bool _FmapFlag_diffusion = true;
+
+bool AmplitudeTuneShiftFlag = false;
+long _AmplitudeTuneShift_nxpoint=31L; long _AmplitudeTuneShift_nypoint=21L;
+long _AmplitudeTuneShift_nturn=516L; double _AmplitudeTuneShift_xmax=0.025;
+double _AmplitudeTuneShift_ymax=0.005, _AmplitudeTuneShift_delta=0.0;
+
+bool EnergyTuneShiftFlag = false;
+long _EnergyTuneShift_npoint=31L; long _EnergyTuneShift_nturn=516L;
+double _EnergyTuneShift_deltamax=0.06;
+
 bool ErrorCouplingFlag = false;  bool CouplingFlag = false;
+
 bool MomentumAccFlag = false;
+long _MomentumAccFlag_istart=1L, _MomentumAccFlag_istop=108L,
+     _MomentumAccFlag_nstepn=100L, _MomentumAccFlag_nstepp=100L;
+double _MomentumAccFlag_deltaminn=0.01, _MomentumAccFlag_deltamaxn=0.05;
+double _MomentumAccFlag_deltaminp=0.01, _MomentumAccFlag_deltamaxp=0.05;
+
 bool MultipoleFlag = false, ThinsextFlag = false;
+
+char fic_hcorr[max_str],fic_vcorr[max_str], fic_skew[max_str];
+
 bool FitTuneFlag  = false; double targetnux = 0, targetnuz = 0;
 bool FitChromFlag = false; double targetksix = 0, targetksiz = 0;
 bool ChamberFlag = false, ChamberNoU20Flag = false, ReadChamberFlag = false;
@@ -49,22 +70,24 @@ bool TouschekFlag = false, IBSFlag = false, TousTrackFlag = false;
 
 char chamber_file[max_str];
 
+#define OLD_LATTICE
+
 /*  Read script   */
 void read_script(const char *param_file_name, bool rd_lat)
  {
-  char    str[max_str];
-  char    line[max_str], name[max_str];
-  char    lat_file[max_str];
+  char    str[max_str]="voidstring", dummy[max_str]="voidstring";
+  char    line[max_str]="voidline", name[max_str]="voidname";
+  char    lat_file[max_str]="voidlattice";
  
   FILE    *inf;
-  const bool  prt = true; // for debugging printout each line of input file
-  long int    LineNum=0;
+  const bool  prt = false; // for debugging printout each line of input file
+  long int    LineNum=0L;
   char full_param_file_name[max_str];
   char lat_FileName[max_str];
  //bool TuneTracFlag;
   char *pch;
-  char dummy[max_str];
 
+  // Manipulation of the parameter file
   strcpy(dummy, param_file_name);
   pch = strstr (dummy,".prm"); // search for extension .prm
   /* remove additional .prm if exist */
@@ -73,13 +96,11 @@ void read_script(const char *param_file_name, bool rd_lat)
   sprintf(full_param_file_name,"%s.prm",dummy);
   if (prt) printf("\n reading in script file: %s\n",full_param_file_name);
 
+  //
   inf = file_read(full_param_file_name);
 
-  // read param file
-  strcpy(lat_file, "");
-  strcpy(chamber_file, ""); 
-  
-  while (fgets(line, max_str, inf) != NULL) {
+  // read line by line parameter file
+   while (fgets(line, max_str, inf) != NULL) {
     if(prt)
       printf("cfg: %s",line);
       
@@ -97,20 +118,18 @@ void read_script(const char *param_file_name, bool rd_lat)
         sscanf(line, "%*s %s", lat_file);
         sprintf(lat_FileName, "%s%s", in_dir, lat_file); 
         if(rd_lat) {
-       //  #ifdef OLD_LATTICE
+         #ifdef OLD_LATTICE
             fprintf(stderr, "Reading lattice");
             Read_Lattice(lat_FileName);
-       //  #else
-       //     fprintf(stderr, "Reading lattice with new parser\n");
-        //    sprintf(lat_FileName, "%s%s.lat", in_dir, lat_file); 
-        //    parse_lattice_flat(lat_FileName, "new.flat");
-        //    fprintf(stderr, "Parse the lattice into new.flat\n");
-         //   rdmfile("new.flat");
-         //   sprintf(lat_FileName, "%s%s", in_dir, lat_file);
-       //  #endif
-
-       //  #ifdef DEBUG
-       //  #endif
+         #else
+ /*           fprintf(stderr, "Reading lattice with new parser\n");
+            sprintf(lat_FileName, "%s%s.lat", in_dir, lat_file);
+            parse_lattice_flat(lat_FileName, "new.flat");
+            fprintf(stderr, "Parse the lattice into new.flat\n");
+            rdmfile("new.flat");
+            sprintf(lat_FileName, "%s%s", in_dir, lat_file);
+*/
+         #endif
         }  
       } 
       
@@ -122,6 +141,39 @@ void read_script(const char *param_file_name, bool rd_lat)
       } 
       
       /* read in bool flags */
+      else if (strcmp("ChamberFlag", name) == 0){
+       sscanf(line, "%*s %s", str);
+       if(strcmp(str, "true") == 0)
+         ChamberFlag = true;
+       else if(strcmp(str, "false") == 0)
+         ChamberFlag = false;
+       else {
+         printf("set boolean flag true or false for ChamberFlag \n" );
+         exit_(1);
+       }
+     }
+      else if (strcmp("ChamberNoU20Flag", name) == 0){
+       sscanf(line, "%*s %s", str);
+       if(strcmp(str, "true") == 0)
+         ChamberNoU20Flag = true;
+       else if(strcmp(str, "false") == 0)
+         ChamberNoU20Flag = false;
+       else {
+         printf("set boolean flag true or false for ChamberNoU20Flag \n");
+         exit_(1);
+       }
+     }
+     else if (strcmp("ReadChamberFlag", name) == 0){
+       sscanf(line, "%*s %s", str);
+       if(strcmp(str, "true") == 0)
+         ReadChamberFlag = true;
+       else if(strcmp(str, "false") == 0)
+         ReadChamberFlag = false;
+       else {
+         printf("set boolean flag true or false for ReadChamberFlag \n");
+         exit_(1);
+       }
+     }
       else if (strcmp("globval.quad_fringe", name) == 0){
         sscanf(line, "%*s %s", str);
         if(strcmp(str, "true") == 0)
@@ -155,6 +207,7 @@ void read_script(const char *param_file_name, bool rd_lat)
           exit_(1);
         } 
       }
+      // FMA
       else if (strcmp("FmapFlag", name) == 0){
         sscanf(line, "%*s %s", str);
         if(strcmp(str, "true") == 0)
@@ -167,7 +220,11 @@ void read_script(const char *param_file_name, bool rd_lat)
         } 
       }
       else if (strcmp("ExperimentFMAFlag", name) == 0){
-        sscanf(line, "%*s %s", str);
+    	  strcpy(dummy, "");
+          sscanf(line, "%*s %s %ld %ld %ld %lf %lf %lf %s", str,
+          		&_FmapFlag_nxpoint, &_FmapFlag_nypoint,
+          		&_FmapFlag_nturn, &_FmapFlag_xmax, &_FmapFlag_ymax,
+          		&_FmapFlag_delta, dummy);
         if(strcmp(str, "true") == 0)
            ExperimentFMAFlag = true;
         else if(strcmp(str, "false") == 0)
@@ -176,6 +233,14 @@ void read_script(const char *param_file_name, bool rd_lat)
           printf("set boolean flag true or false for ExperimentFMAFlag \n");
           exit_(1);
         } 
+        if(strcmp(dummy, "true") == 0)
+          _FmapFlag_diffusion = true;
+        else if(strcmp(dummy, "false") == 0)
+        	_FmapFlag_diffusion = false;
+        else {
+          printf("set boolean flag true or false for Diffusion (value is %s) \n", dummy);
+          exit_(1);
+        }
       }
       else if (strcmp("DetailedFMAFlag", name) == 0){
         sscanf(line, "%*s %s", str);
@@ -188,14 +253,29 @@ void read_script(const char *param_file_name, bool rd_lat)
           exit_(1);
         } 
       }
-      else if (strcmp("TuneShiftFlag", name) == 0){
-        sscanf(line, "%*s %s", str);
+      else if (strcmp("AmplitudeTuneShiftFlag", name) == 0){
+        sscanf(line, "%*s %s %ld %ld %ld %lf %lf %lf", str, &_AmplitudeTuneShift_nxpoint,
+        		&_AmplitudeTuneShift_nypoint, &_AmplitudeTuneShift_nturn,
+        		&_AmplitudeTuneShift_xmax, &_AmplitudeTuneShift_ymax,
+        		&_AmplitudeTuneShift_delta);
+        if(strcmp(str, "true") == 0)
+        	AmplitudeTuneShiftFlag = true;
+        else if(strcmp(str, "false") == 0)
+        	AmplitudeTuneShiftFlag = false;
+        else {
+          printf("set boolean flag true or false for AmplitudeTuneShiftFlag \n");
+          exit_(1);
+        }
+      }
+      else if (strcmp("EnergyTuneShiftFlag", name) == 0){
+        sscanf(line, "%*s %s %ld %ld %lf", str, &_EnergyTuneShift_npoint,
+        		&_EnergyTuneShift_nturn, &_EnergyTuneShift_deltamax);
         if(strcmp(str, "true") == 0)
-          TuneShiftFlag = true;
+        	EnergyTuneShiftFlag = true;
         else if(strcmp(str, "false") == 0)
-          TuneShiftFlag = false;
+        	EnergyTuneShiftFlag = false;
         else {
-          printf("set boolean flag true or false for TuneShiftFlag \n");
+          printf("set boolean flag true or false for EnergyTuneShiftFlag \n");
           exit_(1);
         } 
       }
@@ -222,7 +302,11 @@ void read_script(const char *param_file_name, bool rd_lat)
         } 
       }
        else if (strcmp("MomentumAccFlag", name) == 0){
-        sscanf(line, "%*s %s", str);
+        sscanf(line, "%*s %s %ld %ld %lf %lf %ld %lf %lf %ld", str,
+        		&_MomentumAccFlag_istart, &_MomentumAccFlag_istop,
+        		&_MomentumAccFlag_deltaminp, &_MomentumAccFlag_deltamaxp, &_MomentumAccFlag_nstepp,
+        		&_MomentumAccFlag_deltaminn, &_MomentumAccFlag_deltamaxn, &_MomentumAccFlag_nstepn
+        		);
         if(strcmp(str, "true") == 0)
           MomentumAccFlag = true;
         else if(strcmp(str, "false") == 0)
@@ -253,6 +337,18 @@ void read_script(const char *param_file_name, bool rd_lat)
           printf("set boolean flag true or false for ThinsextFlag \n");
           exit_(1);
         } 
+      }
+      else if (strcmp("fic_hcorr", name) == 0){// read of h-correctors for multipoles
+        sscanf(line, "%*s %s", str);
+        sprintf(fic_hcorr,"%s", str);
+      }
+      else if (strcmp("fic_vcorr", name) == 0){// read of v-correctors for multipoles
+        sscanf(line, "%*s %s", str);
+        sprintf(fic_vcorr,"%s", str);
+      }
+      else if (strcmp("fic_skew", name) == 0){// read of skew quads for multipoles
+        sscanf(line, "%*s %s", str);
+        sprintf(fic_skew,"%s", str);
       }
        else if (strcmp("FitTuneFlag", name) == 0){
         sscanf(line, "%*s %s %lf %lf", str,&targetnux,&targetnuz);
@@ -276,40 +372,7 @@ void read_script(const char *param_file_name, bool rd_lat)
           exit_(1);
         } 
       }
-       else if (strcmp("ChamberFlag", name) == 0){
-        sscanf(line, "%*s %s", str);
-        if(strcmp(str, "true") == 0)
-          ChamberFlag = true;
-        else if(strcmp(str, "false") == 0)
-          ChamberFlag = false;
-        else {
-          printf("set boolean flag true or false for ChamberFlag \n" );
-          exit_(1);
-        } 
-      }
-       else if (strcmp("ChamberNoU20Flag", name) == 0){
-        sscanf(line, "%*s %s", str);
-        if(strcmp(str, "true") == 0)
-          ChamberNoU20Flag = true;
-        else if(strcmp(str, "false") == 0)
-          ChamberNoU20Flag = false;
-        else {
-          printf("set boolean flag true or false for ChamberNoU20Flag \n");
-          exit_(1);
-        } 
-      }
-      else if (strcmp("ReadChamberFlag", name) == 0){
-        sscanf(line, "%*s %s", str);
-        if(strcmp(str, "true") == 0)
-          ReadChamberFlag = true;
-        else if(strcmp(str, "false") == 0)
-          ReadChamberFlag = false;
-        else {
-          printf("set boolean flag true or false for ReadChamberFlag \n");
-          exit_(1);
-        } 
-      }
-       else if (strcmp("GirderErrorFlag", name) == 0){
+      else if (strcmp("GirderErrorFlag", name) == 0){
         sscanf(line, "%*s %s", str);
         if(strcmp(str, "true") == 0)
           GirderErrorFlag = true;
diff --git a/tracy/tracy/src/soleillib.cc b/tracy/tracy/src/soleillib.cc
index 76f60aa..d4b598b 100644
--- a/tracy/tracy/src/soleillib.cc
+++ b/tracy/tracy/src/soleillib.cc
@@ -600,10 +600,10 @@ void ReadCh(const char *AperFile)
  char    line[max_str], Name1[max_str], Name2[max_str];
   int     Fnum1=0, Fnum2=0, Kidnum1=0, Kidnum2=0, k1=0, k2=0; 
   int     i=0, LineNum=0;
-  double  dxmin, dxmax, dymin, dymax;  // min and max x and apertures
+  double  dxmin=0.0, dxmax=0.0, dymin=0.0, dymax=0.0;  // min and max x and apertures
   FILE    *fp;
 
-  bool  prt = true;
+  bool  prt = false;
 
   fp = file_read(AperFile);
 
@@ -629,7 +629,7 @@ void ReadCh(const char *AperFile)
         
       else {
         /* read the vacuum chamber between section */
-	Fnum1 = ElemIndex(Name1);
+    	  Fnum1 = ElemIndex(Name1);
 	Fnum2 = ElemIndex(Name2);
 	if(Fnum1>0 && Fnum2>0) {
 	  /* if element Name1 is defined before elment Name2, give error message*/
@@ -1302,7 +1302,7 @@ void NuDp(long Nb, long Nbtour, double emax)
 
   fprintf(outf,"# TRACY III -- %s -- %s \n", fic, asctime2(newtime));
   fprintf(outf,"#    dP/P           fx            fz          xcod         pxcod          zcod         pzcod\n");
-  fprintf(stdout,"#    dP/P           fx            fz          xcod         pxcod          zcod         pzcod\n");
+  if (trace) fprintf(stdout,"#    dP/P           fx            fz          xcod         pxcod          zcod         pzcod\n");
 
   if (Nb <= 1L)
     fprintf(stdout,"NuDp: Error Nb=%ld\n",Nb);
@@ -1331,10 +1331,12 @@ void NuDp(long Nb, long Nbtour, double emax)
     //~ getcod(dp, lastpos); // get cod for printout
     findcod(dp);
 
+
     fprintf(outf,"%14.6e %14.6e %14.6e %14.6e %14.6e %14.6e %14.6e\n",
             dp, nux1,nuz1, globval.CODvect[0], globval.CODvect[1],
             globval.CODvect[2], globval.CODvect[3]);
-    fprintf(stdout,"%14.6e %14.6e %14.6e %14.6e %14.6e %14.6e %14.6e\n",
+
+    if (trace) fprintf(stdout,"%14.6e %14.6e %14.6e %14.6e %14.6e %14.6e %14.6e\n",
             dp, nux1,nuz1, globval.CODvect[0], globval.CODvect[1],
             globval.CODvect[2], globval.CODvect[3]);
   }
@@ -1774,7 +1776,7 @@ void Enveloppe(double x, double px, double y, double py, double dp, double nturn
        Copy from Tracy II.
 ****************************************************************************/
 
-void Multipole_thicksext(void)
+void Multipole_thicksext(char const *fic_hcorr, char const *fic_vcorr, char const *fic_skew)
 {
   int i = 0;
   int ndip  = 0,  /* Number of dipoles */
@@ -1814,9 +1816,6 @@ void Multipole_thicksext(void)
   double theta = 0.0, brho = 0.0, conv = 0.0 ;
 
   FILE *fi;
-  char const *fic_hcorr="//home/nadolski/codes/tracy/maille/soleil/corh.txt";
-  char const *fic_vcorr="/home/nadolski/codes/tracy/maille/soleil/corv.txt";
-  char const *fic_skew ="/home/nadolski/codes/tracy/maille/soleil/corqt.txt";
 /*********************************************************/
 
 
@@ -2643,7 +2642,7 @@ d file */
 
 ****************************************************************************/
 
-void Multipole_thinsext(void)
+void Multipole_thinsext(char const *fic_hcorr, char const *fic_vcorr, char const *fic_skew)
 {
   int i = 0;
   int ndip  = 0,  /* Number of dipoles */
@@ -2680,9 +2679,6 @@ void Multipole_thinsext(void)
   
 
   FILE *fi;
-  const char fic_hcorr[] = "hcor.dat";
-  const char fic_vcorr[] = "vcor.dat";
-  const char fic_skew[]  = "vcor.dat";
 /*********************************************************/
 
   printf("Enter multipole ... \n");
diff --git a/tracy/tracy/src/t2lat.cc b/tracy/tracy/src/t2lat.cc
index f290913..190b69f 100644
--- a/tracy/tracy/src/t2lat.cc
+++ b/tracy/tracy/src/t2lat.cc
@@ -4291,7 +4291,7 @@ void PrintResult(struct LOC_Lattice_Read *LINK)
        none
 
    Comments:
-       modify strcmp t strncmp, now can read parts of the element name to get the element index.
+       modify strcmp to strncmp, now can read parts of the element name to get the element index.
 ****************************************************************************/
 
 long ElemIndex(const char *name)
-- 
GitLab