diff --git a/tracy/tools/soltracy.cc b/tracy/tools/soltracy.cc
index 892de98e9885af7ae0bbb808b50b292a133f900e..9dd1ba6fc6e68a292bc5c6e307aee1c9be1bd2d6 100644
--- a/tracy/tools/soltracy.cc
+++ b/tracy/tools/soltracy.cc
@@ -80,8 +80,15 @@ int main(int argc, char *argv[]) {
    //assign user defined command
     strcpy(CommandStr,UserCommand[i]); 
     
+    //print the twiss paramters in a file defined by the name
+    if(strcmp(CommandStr,"PrintTwissFlag") == 0) {
+      cout << "\n";
+      cout << "print the twiss parameters to file: "<< twiss_file << "\n";
+      printlatt(twiss_file);  
+   }
+    
     //turn on flag for quadrupole fringe field
-    if(strcmp(CommandStr,"QuadFringeOnFlag") == 0) {
+   else if(strcmp(CommandStr,"QuadFringeOnFlag") == 0) {
       globval.quad_fringe = true;
       cout << "\n";
       cout << "globval.quad_fringe is " << globval.quad_fringe << "\n";
@@ -222,7 +229,7 @@ int main(int argc, char *argv[]) {
  // if (CouplingFlag == true) {
   else if(strcmp(CommandStr,"CouplingFlag") == 0) {
     Ring_GetTwiss(chroma = true, 0.0); /* Compute and get Twiss parameters */
-    printlatt(); /* dump linear lattice functions into "linlat.dat" */
+    printlatt("linlat_coupling.out"); /* dump linear lattice functions into "linlat.dat" */
    // GetEmittance(ElemIndex("cav"), true);  //only for test
     Coupling_Edwards_Teng();
     Ring_GetTwiss(chroma = true, 0.0); /* Compute and get Twiss parameters */
@@ -236,7 +243,7 @@ int main(int argc, char *argv[]) {
     SetErr(err_seed, err_rms);
     prtmfile("flat_file_errcoupling_full.dat"); //print the elements with rotation errors
     Ring_GetTwiss(chroma = true, 0.0); /* Compute and get Twiss parameters */
-    printlatt(); /* dump linear lattice functions into "linlat.dat" */
+    printlatt("linlat_errcoupling.out"); /* dump linear lattice functions into "linlat.dat" */
     Coupling_Edwards_Teng();
    // GetEmittance(ElemIndex("cav"), true); //only for test
     Ring_GetTwiss(chroma = true, 0.0); /* Compute and get Twiss parameters */
@@ -251,7 +258,7 @@ int main(int argc, char *argv[]) {
     SetErr2(err_seed, err_rms);
     prtmfile("flat_file_errcoupling_half.dat"); //print the elements with rotation errors
     Ring_GetTwiss(chroma = true, 0.0); /* Compute and get Twiss parameters */
-    printlatt(); /* dump linear lattice functions into "linlat.dat" */
+    printlatt("linlat_errcoupling2.out"); /* dump linear lattice functions into "linlat.dat" */
     Coupling_Edwards_Teng();
    // GetEmittance(ElemIndex("cav"), true);
    Ring_GetTwiss(chroma = true, 0.0); /* Compute and get Twiss parameters */
@@ -376,7 +383,7 @@ int main(int argc, char *argv[]) {
     for (int ii = 0; ii <= 40; ii++) {
       dP = -0.02 + 0.001 * ii;
       Ring_GetTwiss(chroma = false, dP); /* Compute and get Twiss parameters */
-      printlatt(); /* dump linear lattice functions into "linlat.dat" */
+      printlatt("linlat_eta.out"); /* dump linear lattice functions into "linlat.dat" */
       getcod(dP, lastpos);
       //     printcod();
       prt_cod("cod.out", globval.bpm, true);
diff --git a/tracy/tracy/src/soleilcommon.cc b/tracy/tracy/src/soleilcommon.cc
index 781f2408b60ba88ac2d2298711a0c894bb27b8ef..1701f0fdacbe40b1755b5324ab5800d948494266 100644
--- a/tracy/tracy/src/soleilcommon.cc
+++ b/tracy/tracy/src/soleilcommon.cc
@@ -217,7 +217,7 @@ void Read_Lattice(char *fic)
     }
   } 
   /* SOLEIL print out lattice functions, with all the optical information for the lattice with design values */
-  printlatt();  
+  printlatt("linlat.out");  
   printglob();
 }