diff --git a/tracy/tools/soltracy.cc b/tracy/tools/soltracy.cc
index f4d5db3b2dddecb6be31380dec7a5156cb44fcb9..3ef4445e76620d4062ecb3c9223906609451f71a 100644
--- a/tracy/tools/soltracy.cc
+++ b/tracy/tools/soltracy.cc
@@ -550,7 +550,8 @@ int main(int argc, char *argv[]) {
 		       UserCommandFlag[i]._MomentumAccFlag_deltaminn,
                        UserCommandFlag[i]._MomentumAccFlag_deltamaxn, 
 		       UserCommandFlag[i]._MomentumAccFlag_nstepn,
-		       UserCommandFlag[i]._MomentumAccFlag_nturn);
+		       UserCommandFlag[i]._MomentumAccFlag_nturn,
+		       UserCommandFlag[i]._MomentumAccFlag_zmax);
 
     /* restore the initial values*/
     globval.Cavity_on = cavityflag;
diff --git a/tracy/tracy/doc/Soltracy3_UserManual_developer.docx b/tracy/tracy/doc/Soltracy3_UserManual_developer.docx
index 50c2a775a9200eee3bb1d74e023a4ba07a78a103..5b3b9f915ad8723351286565b998f8d9a72f7944 100644
Binary files a/tracy/tracy/doc/Soltracy3_UserManual_developer.docx and b/tracy/tracy/doc/Soltracy3_UserManual_developer.docx differ
diff --git a/tracy/tracy/inc/read_script.h b/tracy/tracy/inc/read_script.h
index e0a90e8aac83f50c06a3d4819c04519fbf1591f2..06a1fe56908fb207343f57af09a6bc5266838ef1 100644
--- a/tracy/tracy/inc/read_script.h
+++ b/tracy/tracy/inc/read_script.h
@@ -74,7 +74,8 @@
          _MomentumAccFlag_nturn;
    double _MomentumAccFlag_deltaminn, _MomentumAccFlag_deltamaxn;
    double _MomentumAccFlag_deltaminp, _MomentumAccFlag_deltamaxp;
- 
+   double  _MomentumAccFlag_zmax;
+   
   // /* Phase space */
    //char *_Phase_phase_file;
    char _Phase_phase_file[max_str];
@@ -137,6 +138,7 @@ strcpy(_EnergyTuneShift_nudp_file,"nudp.out");
  _MomentumAccFlag_deltaminn=-0.01, _MomentumAccFlag_deltamaxn=-0.05;
  _MomentumAccFlag_deltaminp=0.01, _MomentumAccFlag_deltamaxp=0.05;
  _MomentumAccFlag_nturn = 1026;
+ _MomentumAccFlag_zmax = 0.0003; //[m]
 
 /* Phase space */
  strcpy(_Phase_phase_file,"phase.out");  //default phase file
diff --git a/tracy/tracy/inc/soleillib.h b/tracy/tracy/inc/soleillib.h
index 28b28aa3dfdb526bb25a852024008670b79f86c2..3ad771b679d18042ca4c233a8057526fc46a0954 100644
--- a/tracy/tracy/inc/soleillib.h
+++ b/tracy/tracy/inc/soleillib.h
@@ -35,7 +35,7 @@ void Multipole_thicksext(const char *fic_hcorr, const char *fic_vcorr, const cha
 void Multipole_thinsext(const char  *fic_hcorr, const char *fic_vcorr, const char *fic_skew);
 void MomentumAcceptance(char *MomAccFile,long deb, long fin, double ep_min,  
                         double ep_max, long nstepp, double em_min, double em_max, 
-			long nstepm, long nturn);
+			long nstepm, long nturn, double  zmax);
 
 void Trac_Tab(double x, double px, double y, double py, double dp,
             long nmax, long pos, long *lastn, long *lastpos, FILE *outf1, double Tx[][NTURN]);
diff --git a/tracy/tracy/src/read_script.cc b/tracy/tracy/src/read_script.cc
index 86b659a29463356e6db68984b50c6c0d5e8c5329..df01376dc386b1cb2f6bc33043d56c7fbc2f8dd1 100644
--- a/tracy/tracy/src/read_script.cc
+++ b/tracy/tracy/src/read_script.cc
@@ -345,7 +345,7 @@ void read_script(const char *param_file_name, bool rd_lat, long& CommNo, UserCom
          sscanf(line, "%*s %s",nextpara);
 	 
 	 if(strcmp(nextpara,"voidpara")!=0){    
-	   sscanf(line, "%*s  %s %s %ld %ld %lf %lf %ld %lf %lf %ld %ld",
+	   sscanf(line, "%*s  %s %s %ld %ld %lf %lf %ld %lf %lf %ld %ld %lf",
 		      UserCommandFlag[CommNo]._MomentumAccFlag_momacc_file,
 		      UserCommandFlag[CommNo]._MomentumAccFlag_TrackDim,
 		      &(UserCommandFlag[CommNo]._MomentumAccFlag_istart),
@@ -356,7 +356,8 @@ void read_script(const char *param_file_name, bool rd_lat, long& CommNo, UserCom
         	      &(UserCommandFlag[CommNo]._MomentumAccFlag_deltaminn),
 		      &(UserCommandFlag[CommNo]._MomentumAccFlag_deltamaxn),
 		      &(UserCommandFlag[CommNo]._MomentumAccFlag_nstepn),
-                      &(UserCommandFlag[CommNo]._MomentumAccFlag_nturn));
+                      &(UserCommandFlag[CommNo]._MomentumAccFlag_nturn),
+		      &(UserCommandFlag[CommNo]._MomentumAccFlag_zmax));
 	 } 
 	 strcpy(UserCommandFlag[CommNo].CommandStr,name);   
       }
diff --git a/tracy/tracy/src/soleillib.cc b/tracy/tracy/src/soleillib.cc
index bc39b53e800def075512dfda41eaa50086e8aa24..985973899e776cf370b9dee7f763ab058cf2f067 100644
--- a/tracy/tracy/src/soleillib.cc
+++ b/tracy/tracy/src/soleillib.cc
@@ -3009,11 +3009,13 @@ void SetSkewQuad(void)
                  fix the bug in the vertical closed orbit when calling Trac( ). 
         19/07/11  add the interface to save calculated momentum compact factor in the 
 	          user defined file.
+		  add interface for user to define the start vertical amplitude at the
+		  entrance lattice element which is used to find the 6D closed orbit.
 		                                                      		
 ****************************************************************************/
 void MomentumAcceptance(char *MomAccFile, long deb, long fin, 
                         double ep_min, double ep_max, long nstepp, double em_min, 
-			double em_max, long nstepm, long nturn)		
+			double em_max, long nstepm, long nturn, double  zmax)		
 {
   double        dP = 0.0, dp1 = 0.0, dp2 = 0.0;
   long          lastpos = 0L,lastn = 0L;
@@ -3022,8 +3024,7 @@ void MomentumAcceptance(char *MomAccFile, long deb, long fin,
   double        x = 0.0, px = 0.0, z = 0.0, pz = 0.0, ctau0 = 0.0, delta = 0.0;
   Vector        x0;
   FILE          *outf2, *outf1;
-  // Nonzero vertical amplitude
-  const double  zmax = 0.3e-3; // 0.3 mm at the ring entrance (element 1)
+  
   double        **tabz0, **tabpz0;
   struct tm     *newtime;  // for time
   Vector        codvector[Cell_nLocMax];