Commits

BarryFSmith committed e1648df

replace all echo in test/tutorial makefiles with printf since echo behaves differently on different systems

  • Participants
  • Parent commits 9512dea

Comments (0)

Files changed (34)

File src/contrib/fun3d/comp/makefile

 runflow1:
 	-@${MPIEXEC} -n 1 ./flow -options_file ${DATAFILESPATH}/fun3dgrid/petsc.opt -mesh ${DATAFILESPATH}/fun3dgrid/uns3d.msh -partition ${DATAFILESPATH}/fun3dgrid/part_vec.part.1 | grep clift | tail -1 > runflow1.tmp 2>&1;   \
 	   if (${DIFF} ${DATAFILESPATH}/fun3dgrid/coef.dat runflow1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with runflow1, diffs above \n========================================="; fi; \
+	   else printf  "${PWD}\nPossible problem with with runflow1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f runflow1.tmp
 runflow4:
 	-@${MPIEXEC} -n 4 ./flow -options_file ${DATAFILESPATH}/fun3dgrid/petsc.opt -mesh ${DATAFILESPATH}/fun3dgrid/uns3d.msh -partition ${DATAFILESPATH}/fun3dgrid/part_vec.part.4 | grep clift | tail -1 > runflow4.tmp 2>&1;   \
 	   if (${DIFF} ${DATAFILESPATH}/fun3dgrid/coef.dat runflow4.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with runflow4, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with runflow4, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f runflow4.tmp
 runflow64:
 	-@${MPIEXEC} -n 64 ./flow -options_file 1Grid/petsc.opt -mesh 1Grid/uns3d.msh -partition 1Grid/Pmetis/part_vec.part.64

File src/contrib/fun3d/incomp/makefile

 runflow1:
 	-@${MPIEXEC} -n 1 ./flow -options_file ${DATAFILESPATH}/fun3dgrid/petsc.opt -mesh ${DATAFILESPATH}/fun3dgrid/uns3d.msh -partition ${DATAFILESPATH}/fun3dgrid/part_vec.part.1 | grep clift | tail -1 > runflow1.tmp 2>&1;   \
 	   if (${DIFF} ${DATAFILESPATH}/fun3dgrid/coef.dat runflow1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with runflow1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with runflow1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f runflow1.tmp
 runflow4:
 	-@${MPIEXEC} -n 4 ./flow -options_file ${DATAFILESPATH}/fun3dgrid/petsc.opt -mesh ${DATAFILESPATH}/fun3dgrid/uns3d.msh -partition ${DATAFILESPATH}/fun3dgrid/part_vec.part.4 | grep clift | tail -1 > runflow4.tmp 2>&1;   \
 	   if (${DIFF} ${DATAFILESPATH}/fun3dgrid/coef.dat runflow4.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with runflow4, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with runflow4, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f runflow4.tmp
 runflow64:
 	-@${MPIEXEC} -n 64 ./flow -options_file 1Grid/petsc.opt -mesh 1Grid/uns3d.msh -partition 1Grid/Pmetis/part_vec.part.64

File src/dm/dt/examples/tests/makefile

 #-------------------------------------------------------------------------------
 runex1:
 	-@${MPIEXEC} -n 1 ./ex1 -degrees 1,2,3,4,5 -points 0,.2.-.5,.8,.9,1 -interval -.5,1 > ex1_1.tmp 2>&1;	  \
-	   ${DIFF} output/ex1_1.out ex1_1.tmp || printf "Possible problem with with ex1_1, diffs above \n==========================================n"; \
+	   ${DIFF} output/ex1_1.out ex1_1.tmp || printf "Possible problem with with ex1_1, diffs above\n==========================================\n"; \
 	   ${RM} -f ex1_1.tmp
 
 runex2:
 	-@${MPIEXEC} -n 1 ./ex2 -degrees 1,2,3 -target_points -0.3,0,.2 -src_points -1,-.3,0,.2,1 > ex2_1.tmp 2>&1;	  \
-	   ${DIFF} output/ex2_1.out ex2_1.tmp || printf "Possible problem with with ex2_1, diffs above \n==========================================n"; \
+	   ${DIFF} output/ex2_1.out ex2_1.tmp || printf "Possible problem with with ex2_1, diffs above\n==========================================\n"; \
 	   ${RM} -f ex2_1.tmp
 
 TESTEXAMPLES_C		  = ex1.PETSc runex1 ex1.rm ex2.PETSc runex2 ex2.rm

File src/dm/examples/tests/ex4.c

   ierr = DMLocalToGlobalEnd(da,local,INSERT_VALUES,global);CHKERRQ(ierr);
 
   if (!testorder) { /* turn off printing when testing ordering mappings */
-    ierr = PetscPrintf (PETSC_COMM_WORLD,"\nGlobal Vectors:\n");CHKERRQ(ierr);
+    ierr = PetscPrintf(PETSC_COMM_WORLD,"\nGlobal Vectors:\n");CHKERRQ(ierr);
     ierr = VecView(global,PETSC_VIEWER_STDOUT_WORLD);CHKERRQ(ierr);
-    ierr = PetscPrintf (PETSC_COMM_WORLD,"\n\n");CHKERRQ(ierr);
+    ierr = PetscPrintf(PETSC_COMM_WORLD,"\n\n");CHKERRQ(ierr);
   }
 
   /* Send ghost points to local vectors */

File src/dm/examples/tests/makefile

 runex1:
 	-@${MPIEXEC} -n 2 ./ex1 -nox | grep -v -i Object > ex1_1.tmp 2>&1;	  \
 	   if (${DIFF} output/ex1_1.out ex1_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex1_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex1_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex1_1.tmp
 runex2:
 	-@${MPIEXEC} -n 2 ./ex2 -nox | grep -v "MPI processes" > ex2_1.tmp 2>&1;	  \
 	   if (${DIFF} output/ex2_1.out ex2_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex2_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex2_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex2_1.tmp
 runex2_2:
 	-@${MPIEXEC} -n 3 ./ex2 -wrap nonperiodic -local_print -nox > ex2_2.tmp 2>&1;	  \
 	   if (${DIFF} output/ex2_2.out ex2_2.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex2_2, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex2_2, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex2_2.tmp
 runex2_3:
 	-@${MPIEXEC} -n 3 ./ex2 -wrap xyzghosted -local_print -nox > ex2_3.tmp 2>&1;	  \
 	   if (${DIFF} output/ex2_3.out ex2_3.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex2_3, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex2_3, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex2_3.tmp
 runex3:
 	-@${MPIEXEC} -n 3 ./ex3 -time 50 -nox
 runex4:
 	-@${MPIEXEC} -n 4 ./ex4  -nox  | grep -v -i Object > ex4_1.tmp 2>&1;	  \
 	   if (${DIFF} output/ex4_1.out ex4_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex4_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex4_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex4_1.tmp
 runex5:
 	-@${MPIEXEC} -n 3 ./ex5 -time 50 -nox
 	-@${MPIEXEC} -n 6 ./ex6 -testorder -nox
 runex12:
 	-@echo "path([getenv('PETSC_DIR') '/bin/matlab'],path); ex12(2) ; exit" | ${MATLAB_COMMAND} -display ${DISPLAY} > ex12_1.tmp 2>&1; grep -v flops ex12_1.tmp | grep -v Completed | grep -v About | grep -v Color | grep -v "at line 27" > ex12_1.tmp2 ; if (${DIFF} output/ex12_1.out ex12_1.tmp2) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with PETSC SOCKET MATLAB INTERFACE ex12_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with PETSC SOCKET MATLAB INTERFACE ex12_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex12_1.tmp ex12_1.tmp2
 
 # ex13 uses the output of ex14
 
 runex16:
 	-@${MPIEXEC} -n 3 ./ex16 > ex16_1.tmp 2>&1; \
-	  ${DIFF} output/ex16_1.out ex16_1.tmp || echo ${PWD} "\n Possible problem with with ex16, diffs above \n========================================="; \
+	  ${DIFF} output/ex16_1.out ex16_1.tmp || printf "${PWD}\nPossible problem with with ex16, diffs above\n=========================================\n"; \
 	  ${RM} -f ex16_1.tmp
 runex16_2:
 	-@${MPIEXEC} -n 3 ./ex16 -gather_add > ex16_2.tmp 2>&1; \
-	  ${DIFF} output/ex16_2.out ex16_2.tmp || echo ${PWD} "\n Possible problem with with ex16_2, diffs above \n========================================="; \
+	  ${DIFF} output/ex16_2.out ex16_2.tmp || printf "${PWD}\nPossible problem with with ex16_2, diffs above\n=========================================\n"; \
 	  ${RM} -f ex16_2.tmp
 
 runex21:
 runex24:
 	-@${MPIEXEC} -n 1 ./ex24  | grep -v -i Process > ex24_1.tmp 2>&1;	  \
 	   if (${DIFF} output/ex24_1.out ex24_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex24_1 1 process, diffs above \n========================================="; fi; ${RM} -f ex24_1.tmp
+	   else printf "${PWD}\nPossible problem with with ex24_1 1 process, diffs above\n=========================================\n"; fi; ${RM} -f ex24_1.tmp
 	-@${MPIEXEC} -n 2 ./ex24  | grep -v -i Process > ex24_1.tmp 2>&1;	  \
 	   if (${DIFF} output/ex24_1.out ex24_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex24_1 2 processes, diffs above \n========================================="; fi; ${RM} -f ex24_1.tmp
+	   else printf "${PWD}\nPossible problem with with ex24_1 2 processes, diffs above\n=========================================\n"; fi; ${RM} -f ex24_1.tmp
 	-@${MPIEXEC} -n 3 ./ex24  | grep -v -i Process > ex24_1.tmp 2>&1;	  \
 	   if (${DIFF} output/ex24_1.out ex24_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex24_1 3 processes, diffs above \n========================================="; fi; ${RM} -f ex24_1.tmp
+	   else printf "${PWD}\nPossible problem with with ex24_1 3 processes, diffs above\n=========================================\n"; fi; ${RM} -f ex24_1.tmp
 	-@${MPIEXEC} -n 4 ./ex24  | grep -v -i Process > ex24_1.tmp 2>&1;	  \
 	   if (${DIFF} output/ex24_1.out ex24_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex24_1 4 processes, diffs above \n========================================="; fi; ${RM} -f ex24_1.tmp
+	   else printf "${PWD}\nPossible problem with with ex24_1 4 processes, diffs above\n=========================================\n"; fi; ${RM} -f ex24_1.tmp
 	-@${MPIEXEC} -n 5 ./ex24  | grep -v -i Process > ex24_1.tmp 2>&1;	  \
 	   if (${DIFF} output/ex24_1.out ex24_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex24_1 5 processes, diffs above \n========================================="; fi; ${RM} -f ex24_1.tmp
+	   else printf "${PWD}\nPossible problem with with ex24_1 5 processes, diffs above\n=========================================\n"; fi; ${RM} -f ex24_1.tmp
 	-@${MPIEXEC} -n 6 ./ex24  | grep -v -i Process > ex24_1.tmp 2>&1;	  \
 	   if (${DIFF} output/ex24_1.out ex24_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex24_1 6 processes, diffs above \n========================================="; fi; ${RM} -f ex24_1.tmp
+	   else printf "${PWD}\nPossible problem with with ex24_1 6 processes, diffs above\n=========================================\n"; fi; ${RM} -f ex24_1.tmp
 
 runex25:
 	-@${MPIEXEC} -n 1 ./ex25  | grep -v -i Process > ex25_1.tmp 2>&1;	  \
 	   if (${DIFF} output/ex25_1.out ex25_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex25_1 1 process, diffs above \n========================================="; fi; ${RM} -f ex25_1.tmp
+	   else printf "${PWD}\nPossible problem with with ex25_1 1 process, diffs above\n=========================================\n"; fi; ${RM} -f ex25_1.tmp
 	-@${MPIEXEC} -n 2 ./ex25  | grep -v -i Process > ex25_1.tmp 2>&1;	  \
 	   if (${DIFF} output/ex25_1.out ex25_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex25_1 2 processes, diffs above \n========================================="; fi; ${RM} -f ex25_1.tmp
+	   else printf "${PWD}\nPossible problem with with ex25_1 2 processes, diffs above\n=========================================\n"; fi; ${RM} -f ex25_1.tmp
 	-@${MPIEXEC} -n 3 ./ex25  | grep -v -i Process > ex25_1.tmp 2>&1;	  \
 	   if (${DIFF} output/ex25_1.out ex25_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex25_1 3 processes, diffs above \n========================================="; fi; ${RM} -f ex25_1.tmp
+	   else printf "${PWD}\nPossible problem with with ex25_1 3 processes, diffs above\n=========================================\n"; fi; ${RM} -f ex25_1.tmp
 	-@${MPIEXEC} -n 4 ./ex25  | grep -v -i Process > ex25_1.tmp 2>&1;	  \
 	   if (${DIFF} output/ex25_1.out ex25_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex25_1 4 processes, diffs above \n========================================="; fi; ${RM} -f ex25_1.tmp
+	   else printf "${PWD}\nPossible problem with with ex25_1 4 processes, diffs above\n=========================================\n"; fi; ${RM} -f ex25_1.tmp
 	-@${MPIEXEC} -n 5 ./ex25  | grep -v -i Process > ex25_1.tmp 2>&1;	  \
 	   if (${DIFF} output/ex25_1.out ex25_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex25_1 5 processes, diffs above \n========================================="; fi; ${RM} -f ex25_1.tmp
+	   else printf "${PWD}\nPossible problem with with ex25_1 5 processes, diffs above\n=========================================\n"; fi; ${RM} -f ex25_1.tmp
 	-@${MPIEXEC} -n 6 ./ex25  | grep -v -i Process > ex25_1.tmp 2>&1;	  \
 	   if (${DIFF} output/ex25_1.out ex25_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex25_1 6 processes, diffs above \n========================================="; fi; ${RM} -f ex25_1.tmp
+	   else printf "${PWD}\nPossible problem with with ex25_1 6 processes, diffs above\n=========================================\n"; fi; ${RM} -f ex25_1.tmp
 
 runex30:
 	-@${MPIEXEC} -n 2 ./ex30 -bs 2 -block 0 -sliced_mat_type baij -alpha 10 -u0 0.1 > ex30_1.tmp; \
-	   ${DIFF} output/ex30_1.out ex30_1.tmp || echo ${PWD} "\n Possible problem with with ex30_1, diffs above \n========================================="; \
+	   ${DIFF} output/ex30_1.out ex30_1.tmp || printf "${PWD}\nPossible problem with with ex30_1, diffs above\n=========================================\n"; \
 	   ${RM} -f ex30_1.tmp
 runex30_2:
 	-@${MPIEXEC} -n 2 ./ex30 -bs 2 -block 1 -sliced_mat_type aij -alpha 10 -u0 0.1 > ex30_2.tmp; \
-	   ${DIFF} output/ex30_2.out ex30_2.tmp || echo ${PWD} "\n Possible problem with with ex30_2, diffs above \n========================================="; \
+	   ${DIFF} output/ex30_2.out ex30_2.tmp || printf "${PWD}\nPossible problem with with ex30_2, diffs above\n=========================================\n"; \
 	   ${RM} -f ex30_2.tmp
 runex30_3:
 	-@${MPIEXEC} -n 2 ./ex30 -bs 2 -block 0 -sliced_mat_type aij -alpha 10 -u0 0.1 > ex30_3.tmp; \
-	   ${DIFF} output/ex30_3.out ex30_3.tmp || echo ${PWD} "\n Possible problem with with ex30_3, diffs above \n========================================="; \
+	   ${DIFF} output/ex30_3.out ex30_3.tmp || printf "${PWD}\nPossible problem with with ex30_3, diffs above\n=========================================\n"; \
 	   ${RM} -f ex30_3.tmp
 runex31:
 	-@${MPIEXEC} -n 2 ./ex31
 runex32:
 	-@${MPIEXEC} -n 2 ./ex32 > ex32_1.tmp; \
-	  ${DIFF} output/ex32_1.out ex32_1.tmp || echo ${PWD} "\n Possible problem with with ex32, diffs above \n========================================="; \
+	  ${DIFF} output/ex32_1.out ex32_1.tmp || printf "${PWD}\nPossible problem with with ex32, diffs above\n=========================================\n"; \
 	  ${RM} -f ex32_1.tmp
 runex34:
 	-@${MPIEXEC} -n 12 ./ex34 -dm_view -dim 3 -da_grid_x 11 -da_grid_y 5 -da_grid_z 7 > ex34_1.tmp; \
-	  ${DIFF} output/ex34_1.out ex34_1.tmp || echo ${PWD} "\n Possible problem with with ex34, diffs above \n========================================="; \
+	  ${DIFF} output/ex34_1.out ex34_1.tmp || printf "${PWD}\nPossible problem with with ex34, diffs above\n=========================================\n"; \
 	  ${RM} -f ex34_1.tmp
 
 runex36_1d:
 	-@${MPIEXEC} -n 1 ./ex36 -mx 10 -nl 6 -dim 1 > ex36_1d.tmp; \
-	  ${DIFF} output/ex36_1d.out ex36_1d.tmp || echo ${PWD} "\n Possible problem with with ex36_1d, diffs above \n========================================="; \
+	  ${DIFF} output/ex36_1d.out ex36_1d.tmp || printf "${PWD}\nPossible problem with with ex36_1d, diffs above\n=========================================\n"; \
 	  ${RM} -f ex36_1d.tmp
 
 runex36_2d:
 	  ${MPIEXEC} -n 1 ./ex36 -mx 10 -my 10 -nl 6 -dim 2 -cmap 1 >> ex36_2d.tmp; \
 	  ${MPIEXEC} -n 1 ./ex36 -mx 10 -my 10 -nl 6 -dim 2 -cmap 2 >> ex36_2d.tmp; \
 	  ${MPIEXEC} -n 1 ./ex36 -mx 10 -my 10 -nl 6 -dim 2 -cmap 3 >> ex36_2d.tmp; \
-	  ${DIFF} output/ex36_2d.out ex36_2d.tmp || echo ${PWD} "\n Possible problem with with ex36_2d, diffs above \n========================================="; \
+	  ${DIFF} output/ex36_2d.out ex36_2d.tmp || printf "${PWD}\nPossible problem with with ex36_2d, diffs above\n=========================================\n"; \
 	  ${RM} -f ex36_2d.tmp
 runex36_2dp1:
 	-@${MPIEXEC} -n 32 ./ex36 -mx 10 -my 10 -nl 4 -dim 2 -cmap 3 -da_refine_x 3 -da_refine_y 4 > ex36_2dp1.tmp; \
-	  ${DIFF} output/ex36_2dp1.out ex36_2dp1.tmp || echo ${PWD} "\n Possible problem with with ex36_2dp1, diffs above \n========================================="; \
+	  ${DIFF} output/ex36_2dp1.out ex36_2dp1.tmp || printf "${PWD}\nPossible problem with with ex36_2dp1, diffs above\n=========================================\n"; \
 	  ${RM} -f ex36_2dp1.tmp
 runex36_2dp2:
 	-@${MPIEXEC} -n 32 ./ex36 -mx 10 -my 10 -nl 4 -dim 2 -cmap 3 -da_refine_x 3 -da_refine_y 1 > ex36_2dp2.tmp; \
-	  ${DIFF} output/ex36_2dp2.out ex36_2dp2.tmp || echo ${PWD} "\nPossible problem with with ex36_2dp1, diffs above \n========================================="; \
+	  ${DIFF} output/ex36_2dp2.out ex36_2dp2.tmp || printf "${PWD}\nPossible problem with with ex36_2dp1, diffs above\n=========================================\n"; \
 	  ${RM} -f ex36_2dp2.tmp
 
 runex36_3d:
 	-@${MPIEXEC} -n 1 ./ex36 -mx 5 -my 5 -mz 5 -nl 4 -dim 3 -cmap 3 > ex36_3d.tmp; \
-	  ${DIFF} output/ex36_3d.out ex36_3d.tmp || echo ${PWD} "\nPossible problem with with ex36_3d, diffs above \n========================================="; \
+	  ${DIFF} output/ex36_3d.out ex36_3d.tmp || printf "${PWD}\nPossible problem with with ex36_3d, diffs above\n=========================================\n"; \
 	  ${RM} -f ex36_3d.tmp
 
 runex36_3dp1:
 	-@${MPIEXEC} -n 32 ./ex36 -mx 5 -my 5 -mz 5 -nl 3 -dim 3 -cmap 1 -da_refine_x 1 -da_refine_y 3 -da_refine_z 4 > ex36_3dp1.tmp; \
-	  ${DIFF} output/ex36_3dp1.out ex36_3dp1.tmp || echo ${PWD} "\nPossible problem with with ex36_3dp1, diffs above \n========================================="; \
+	  ${DIFF} output/ex36_3dp1.out ex36_3dp1.tmp || printf "${PWD}\nPossible problem with with ex36_3dp1, diffs above\n=========================================\n" ; \
 	  ${RM} -f ex36_3dp1.tmp
 
 runex37:

File src/dm/examples/tutorials/makefile

 runex3:
 	-@${MPIEXEC} -n 3 ./ex3 -mat_view  > ex3_1.tmp 2>&1;   \
 	   if (${DIFF} output/ex3_1.out ex3_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex3_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex3_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex3_1.tmp
 runex3_2:
 	-@${MPIEXEC} -n 3 ./ex3 -mat_view -dim 2 > ex3_2.tmp 2>&1;   \
 	   if (${DIFF} output/ex3_2.out ex3_2.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex3_2, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex3_2, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex3_2.tmp
 runex3_3:
 	-@${MPIEXEC} -n 3 ./ex3 -mat_view -dim 3 > ex3_3.tmp 2>&1;   \
 	   if (${DIFF} output/ex3_3.out ex3_3.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex3_3, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex3_3, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex3_3.tmp
 runex10:
 	-@${MPIEXEC} -n 4 ./ex10
 runex11f90:
 	-@${MPIEXEC} -n 1 ./ex11f90  > ex11f90.tmp 2>&1;   \
 	   if (${DIFF} output/ex11f90.out ex11f90.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex11f90, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex11f90, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex11f90.tmp
 
 TESTEXAMPLES_C		  = ex3.PETSc runex3 runex3_2 runex3_3 ex3.rm ex4.PETSc ex4.rm ex12.PETSc ex12.rm ex51.PETSc ex51.rm 

File src/dm/impls/moab/examples/tests/makefile

 runex1:
 	-@${MPIEXEC} -n 1 ./ex1 > ex1_1.tmp 2>&1;\
 	   if (${DIFF} output/ex1_1.out ex1_1.tmp) then true ;  \
-	   else echo ${PWD} ; echo "Possible problem with with runex1, diffs above \n========================================="; fi ;\
+	   else printf "${PWD}\nPossible problem with with runex1, diffs above\n=========================================\n"; fi ;\
 	   ${RM} -f ex1_1.tmp
 
 TESTEXAMPLES_MOAB = ex1.PETSc runex1 ex1.rm

File src/dm/impls/plex/examples/tests/makefile

 runex1:
 	-@${MPIEXEC} -n 1 ./ex1 -dim 3 -ctetgen_verbose 4 -dm_view ascii::ascii_info_detail -info -info_exclude null > ex1_0.tmp 2>&1;\
 	   if (${DIFF} output/ex1_0.out ex1_0.tmp) then true ;  \
-	   else echo ${PWD} ; echo "Possible problem with with runex1, diffs above \n========================================="; fi ;\
+	   else printf "${PWD}\nPossible problem with with runex1, diffs above\n=========================================\n"; fi ;\
 	   ${RM} -f ex1_0.tmp
 runex1_2:
 	-@${MPIEXEC} -n 1 ./ex1 -dim 3 -ctetgen_verbose 4 -refinement_limit 0.0625 -dm_view ascii::ascii_info_detail -info -info_exclude null > ex1_1.tmp 2>&1;\
 	   if (${DIFF} output/ex1_1.out ex1_1.tmp) then true ;  \
-	   else echo ${PWD} ; echo "Possible problem with with runex1_2, diffs above \n========================================="; fi ;\
+	   else printf "${PWD}\nPossible problem with with runex1_2, diffs above\n=========================================\n"; fi ;\
 	   ${RM} -f ex1_1.tmp
 
 runex1f90:
 	-@${MPIEXEC} -n 1 ./ex1f90 > ex1f90_0.tmp 2>&1;\
 	   if (${DIFF} output/ex1f90_0.out ex1f90_0.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with runex1f90, diffs above \n========================================="; fi;\
+	   else printf "${PWD}\nPossible problem with with runex1f90, diffs above\n=========================================\n"; fi;\
 	   ${RM} -f ex1f90_0.tmp
 
 runex2f90:
 	-@${MPIEXEC} -n 1 ./ex2f90 > ex2f90_0.tmp 2>&1;\
 	   if (${DIFF} output/ex2f90_0.out ex2f90_0.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with runex2f90, diffs above \n========================================="; fi;\
+	   else printf "${PWD}\nPossible problem with with runex2f90, diffs above\n=========================================\n"; fi;\
 	   ${RM} -f ex2f90_0.tmp
 
 runex3:
 	-@${MPIEXEC} -n 1 ./ex3 > ex3_0.tmp 2>&1;\
 	   if (${DIFF} output/ex3_0.out ex3_0.tmp) then true ;  \
-	   else echo ${PWD} ; echo "Possible problem with with runex3, diffs above \n========================================="; fi ;\
+	   else printf "${PWD}\nPossible problem with with runex3, diffs above\n=========================================\n"; fi ;\
 	   ${RM} -f ex3_0.tmp
 runex3_2:
 	-@${MPIEXEC} -n 1 ./ex3 > ex3_1.tmp 2>&1;\
 	   if (${DIFF} output/ex3_1.out ex3_1.tmp) then true ;  \
-	   else echo ${PWD} ; echo "Possible problem with with runex3_2, diffs above \n========================================="; fi ;\
+	   else printf "${PWD}\nPossible problem with with runex3_2, diffs above\n=========================================\n"; fi ;\
 	   ${RM} -f ex3_1.tmp
 runex3_3:
 	-@${MPIEXEC} -n 1 ./ex3 > ex3_2.tmp 2>&1;\
 	   if (${DIFF} output/ex3_2.out ex3_2.tmp) then true ;  \
-	   else echo ${PWD} ; echo "Possible problem with with runex3_3, diffs above \n========================================="; fi ;\
+	   else printf "${PWD}\nPossible problem with with runex3_3, diffs above\n=========================================\n"; fi ;\
 	   ${RM} -f ex3_2.tmp
 runex3_4:
 	-@${MPIEXEC} -n 1 ./ex3 > ex3_3.tmp 2>&1;\
 	   if (${DIFF} output/ex3_3.out ex3_3.tmp) then true ;  \
-	   else echo ${PWD} ; echo "Possible problem with with runex3_4, diffs above \n========================================="; fi ;\
+	   else printf "${PWD}\nPossible problem with with runex3_4, diffs above\n=========================================\n"; fi ;\
 	   ${RM} -f ex3_3.tmp
 runex3_5:
 	-@${MPIEXEC} -n 1 ./ex3 > ex3_4.tmp 2>&1;\
 	   if (${DIFF} output/ex3_4.out ex3_4.tmp) then true ;  \
-	   else echo ${PWD} ; echo "Possible problem with with runex3_5, diffs above \n========================================="; fi ;\
+	   else printf "${PWD}\nPossible problem with with runex3_5, diffs above\n=========================================\n"; fi ;\
 	   ${RM} -f ex3_4.tmp
 runex3_6:
 	-@${MPIEXEC} -n 1 ./ex3 > ex3_5.tmp 2>&1;\
 	   if (${DIFF} output/ex3_5.out ex3_5.tmp) then true ;  \
-	   else echo ${PWD} ; echo "Possible problem with with runex3_6, diffs above \n========================================="; fi ;\
+	   else printf "${PWD}\nPossible problem with with runex3_6, diffs above\n=========================================\n"; fi ;\
 	   ${RM} -f ex3_5.tmp
 runex3_7:
 	-@${MPIEXEC} -n 1 ./ex3 > ex3_6.tmp 2>&1;\
 	   if (${DIFF} output/ex3_6.out ex3_6.tmp) then true ;  \
-	   else echo ${PWD} ; echo "Possible problem with with runex3_7, diffs above \n========================================="; fi ;\
+	   else printf "${PWD}\nPossible problem with with runex3_7, diffs above\n=========================================\n"; fi ;\
 	   ${RM} -f ex3_6.tmp
 runex3_8:
 	-@${MPIEXEC} -n 1 ./ex3 > ex3_7.tmp 2>&1;\
 	   if (${DIFF} output/ex3_7.out ex3_7.tmp) then true ;  \
-	   else echo ${PWD} ; echo "Possible problem with with runex3_8, diffs above \n========================================="; fi ;\
+	   else printf "${PWD}\nPossible problem with with runex3_8, diffs above\n=========================================\n"; fi ;\
 	   ${RM} -f ex3_7.tmp
 runex3_9:
 	-@${MPIEXEC} -n 1 ./ex3 > ex3_8.tmp 2>&1;\
 	   if (${DIFF} output/ex3_8.out ex3_8.tmp) then true ;  \
-	   else echo ${PWD} ; echo "Possible problem with with runex3_9, diffs above \n========================================="; fi ;\
+	   else printf "${PWD}\nPossible problem with with runex3_9, diffs above\n=========================================\n"; fi ;\
 	   ${RM} -f ex3_8.tmp
 
 TESTEXAMPLES_CTETGEN = ex1.PETSc runex1 runex1_2 ex1.rm ex3.PETSc runex3 runex3_2 runex3_3 runex3_4 runex3_5 runex3_6 runex3_7 runex3_8 runex3_9 ex3.rm

File src/ksp/ksp/examples/tests/makefile

 runex1:
 	-@${MPIEXEC} -n 1 ./ex1 -pc_type jacobi -ksp_monitor_short -ksp_gmres_cgs_refinement_type refine_always > ex1_1.tmp 2>&1;	  \
 	   if (${DIFF} output/ex1_1.out ex1_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex1_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex1_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex1_1.tmp
 runex1_2:
 	-@${MPIEXEC} -n 2 ./ex1 -pc_type jacobi -ksp_monitor_short -ksp_gmres_cgs_refinement_type refine_always > ex1_2.tmp 2>&1;	 \
 	   if (${DIFF} output/ex1_2.out ex1_2.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex1_2, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex1_2, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex1_2.tmp
 runex1_3:
 	-@${MPIEXEC} -n 1 ./ex1 -pc_type sor -pc_sor_symmetric -ksp_monitor_short -ksp_gmres_cgs_refinement_type refine_always >\
 	   ex1_3.tmp 2>&1;   \
 	   if (${DIFF} output/ex1_3.out ex1_3.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex1_3, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex1_3, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex1_3.tmp
 runex1_5:
 	-@${MPIEXEC} -n 1 ./ex1 -pc_type eisenstat -ksp_monitor_short -ksp_gmres_cgs_refinement_type refine_always >\
 	   ex1_5.tmp 2>&1;   \
 	   if (${DIFF} output/ex1_5.out ex1_5.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex1_5, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex1_5, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex1_5.tmp
 runex3:
 	-@${MPIEXEC} -n 1 ./ex3 -pc_type jacobi -ksp_monitor_short -m 5 -ksp_gmres_cgs_refinement_type refine_always > ex3_1.tmp 2>&1;   \
 	   if (${DIFF} output/ex3_1.out ex3_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex3_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex3_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex3_1.tmp
 runex3_2:
 	-@${MPIEXEC} -n 2 ./ex3 -pc_type jacobi -ksp_monitor_short -m 5 -ksp_gmres_cgs_refinement_type refine_always > ex3_2.tmp 2>&1;   \
 	   if (${DIFF} output/ex3_2.out ex3_2.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex3_2, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex3_2, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex3_2.tmp
 runex4:
 	-@${MPIEXEC} -n 1 ./ex4 -ksp_monitor_short -m 5 -pc_type jacobi -ksp_gmres_cgs_refinement_type refine_always > ex4_1.tmp 2>&1;\
 	   if (${DIFF} output/ex4_1.out ex4_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex4_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex4_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex4_1.tmp
 runex4_3:
 	-@${MPIEXEC} -n 1 ./ex4 -pc_type sor -pc_sor_symmetric -ksp_monitor_short -m 5 -ksp_gmres_cgs_refinement_type refine_always >\
 	   ex4_3.tmp 2>&1;   \
 	   if (${DIFF} output/ex4_3.out ex4_3.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex4_3, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex4_3, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex4_3.tmp
 runex4_5:
 	-@${MPIEXEC} -n 1 ./ex4 -pc_type eisenstat -ksp_monitor_short -m 5	-ksp_gmres_cgs_refinement_type refine_always >\
 	   ex4_5.tmp 2>&1;   \
 	   if (${DIFF} output/ex4_5.out ex4_5.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex4_5, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex4_5, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex4_5.tmp
 runex5:
 	-@${MPIEXEC} -n 2 ./ex5 -ksp_monitor_short -nokspview -ksp_gmres_cgs_refinement_type refine_always > ex5_1.tmp 2>&1; \
 	   if (${DIFF} output/ex5_1.out ex5_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex5_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex5_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex5_1.tmp
 runex5f:
 	-@${MPIEXEC} -n 1 ./ex5f -ksp_monitor_short > ex5f_1.tmp 2>&1; \
 	   if (${DIFF} output/ex5f_1.out ex5f_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex5f_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex5f_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex5f_1.tmp
 #
 # See http://www.mcs.anl.gov/petsc/documentation/faq.html#datafiles for how to obtain the datafiles used below
 	-@${MPIEXEC} -n 1 ./ex6 -ksp_type preonly  -pc_type lu -options_left no \
 	   -f ${DATAFILESPATH}/matrices/arco1 > ex6_1.tmp 2>&1; \
 	   if (${DIFF} output/ex6_1.out ex6_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex6_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex6_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex6_1.tmp
 runex6_2:
 	-@${MPIEXEC} -n 1 ./ex6 -sub_pc_type ilu -options_left no \
 	   -pc_bjacobi_blocks 8 -sub_pc_factor_in_place -ksp_monitor_short \
 	   > ex6_2.tmp 2>&1; \
 	   if (${DIFF} output/ex6_2.out ex6_2.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex6_2, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex6_2, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex6_2.tmp
 
 runex6_7:
 	   -f ${DATAFILESPATH}/matrices/small \
 	   -matload_block_size 6  -ksp_monitor_short  > ex6_7.tmp 2>&1; \
 	   if (${DIFF} output/ex6_7.out ex6_7.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex6_7, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex6_7, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex6_7.tmp
 runex7:
 	-@${MPIEXEC} -n 2 ./ex7 -ksp_gmres_cgs_refinement_type refine_always -pc_type jacobi -ksp_monitor_short > ex7_1.tmp 2>&1; \
 	   if (${DIFF} output/ex7_1.out ex7_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex7_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex7_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex7_1.tmp
 runex8:
 	-@${MPIEXEC} -n 1 ./ex8 -ksp_gmres_cgs_refinement_type refine_always -pc_type jacobi -ksp_monitor_short > ex8_1.tmp 2>&1; \
 	   if (${DIFF} output/ex8_1.out ex8_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex8_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex8_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex8_1.tmp
 runex8_2:
 	-@${MPIEXEC} -n 2 ./ex8 -ksp_gmres_cgs_refinement_type refine_always -pc_type jacobi -ksp_monitor_short \
 	   -ksp_rtol .000001 > ex8_2.tmp 2>&1;   \
 	   if (${DIFF} output/ex8_2.out ex8_2.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex8_2, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex8_2, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex8_2.tmp
 
 runex10:
 	-@${MPIEXEC} -n 1 ./ex10 -matconvert_type seqaij -ksp_monitor_short >ex10_1.tmp 2>&1; \
 	   if (${DIFF} output/ex10_1.out ex10_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex10_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex10_1.tmp
 # See http://www.mcs.anl.gov/petsc/documentation/faq.html#datafiles for how to obtain the datafiles used below
 runex11:
 		-fc_fieldsplit_pressure_lsc_ksp_converged_reason \
 		-fc_fieldsplit_pressure_lsc_pc_type icc \
                  > ex11_1.tmp 2>&1; \
-	   ${DIFF} output/ex11_1.out ex11_1.tmp || echo ${PWD} "\nPossible problem with with ex11_1, diffs above \n=========================================";\
+	   ${DIFF} output/ex11_1.out ex11_1.tmp || printf "${PWD}\nPossible problem with with ex11_1, diffs above\n=========================================\n";\
 	   ${RM} -f ex11_1.tmp
 
 runex11_2:
                 -fc_fieldsplit_pressure_lsc_pc_type bjacobi \
                 -fc_fieldsplit_pressure_lsc_sub_pc_type icc \
                  > ex11_2.tmp 2>&1; \
-	   ${DIFF} output/ex11_2.out ex11_2.tmp || echo ${PWD} "\nPossible problem with with ex11_2, diffs above \n=========================================";\
+	   ${DIFF} output/ex11_2.out ex11_2.tmp || printf "${PWD}\nPossible problem with with ex11_2, diffs above\n=========================================\n";\
 	   ${RM} -f ex11_2.tmp
 
 # See http://www.mcs.anl.gov/petsc/documentation/faq.html#datafiles for how to obtain the datafiles used below
 runex12f:
 	-@${MPIEXEC} -n 1 ./ex12f  -f ${DATAFILESPATH}/matrices/arco1 -options_left no > ex12f_1.tmp 2>&1; \
 	   if (${DIFF} output/ex12f_1.out ex12f_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex12f_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex12f_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex12f_1.tmp
 runex13:
 	-@${MPIEXEC} -n 2  ./ex13 -ksp_gmres_cgs_refinement_type refine_always -ksp_monitor_short > ex13_1.tmp 2>&1; \
 	   if (${DIFF} output/ex13_1.out ex13_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex13_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex13_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex13_1.tmp
 # See http://www.mcs.anl.gov/petsc/documentation/faq.html#datafiles for how to obtain the datafiles used below
 runex16f:
 	-@${MPIEXEC} -n 1 ./ex16f   -f ${DATAFILESPATH}/matrices/arco1 -options_left no> ex16f_1.tmp 2>&1; \
 	   if (${DIFF} output/ex16f_1.out ex16f_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex16f_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex16f_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex16f_1.tmp
 runex17:
 	-@${MPIEXEC} -n 1 ./ex17 -ksp_gmres_cgs_refinement_type refine_always -n 6 -ksp_monitor_short -p 5 -norandom -ksp_type gmres \
 	   -pc_type jacobi -ksp_max_it 15 > ex17_1.tmp 2>&1; \
 	   if (${DIFF} output/ex17_1.out ex17_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex17_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex17_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex17_1.tmp
 # See http://www.mcs.anl.gov/petsc/documentation/faq.html#datafiles for how to obtain the datafiles used below
 runex18:
 	-@${MPIEXEC} -n 1 ./ex19 -ksp_gmres_cgs_refinement_type refine_always -pc_type jacobi -ksp_monitor_short \
 	-ksp_type gmres  > ex19_1.tmp 2>&1; \
 	   if (${DIFF} output/ex19_1.out ex19_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex19_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex19_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex19_1.tmp
 runex19_2:
 	-@${MPIEXEC} -n 3 ./ex19 -ksp_monitor_short > ex19_2.tmp 2>&1; \
 	if (${DIFF} output/ex19_2.out ex19_2.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex19_2, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex19_2, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex19_2.tmp
 runex20:
 	-@${MPIEXEC} -n 1 ./ex20 -ksp_gmres_cgs_refinement_type refine_always -pc_type jacobi -mat_view -ksp_monitor_short -ksp_atol 1.0e-13 > ex20_1.tmp 2>&1; \
 	   if (${DIFF} output/ex20_1.out ex20_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex20_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex20_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex20_1.tmp
 
 runex21:
 	-@${MPIEXEC} -n 1 ./ex21 > ex21_1.tmp 2>&1; \
 	   if (${DIFF} output/ex21_1.out ex21_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex21_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex21_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex21_1.tmp
 
 runex21_2:
 	-@${MPIEXEC} -n 2 ./ex21 > ex21_2.tmp 2>&1; \
 	   if (${DIFF} output/ex21_2.out ex21_2.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex21_2, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex21_2, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex21_2.tmp
 
 
 runex21_3:
 	-@${MPIEXEC} -n 3 ./ex21 > ex21_3.tmp 2>&1; \
 	   if (${DIFF} output/ex21_3.out ex21_3.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex21_3, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex21_3, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex21_3.tmp
 
 runex22:
 	-@${MPIEXEC} -n 1 ./ex22  > ex22_1.tmp 2>&1; \
-	   ${DIFF} output/ex22_1.out ex22_1.tmp || echo ${PWD} "\nPossible problem with with ex22, diffs above \n========================================="; \
+	   ${DIFF} output/ex22_1.out ex22_1.tmp || printf "${PWD}\nPossible problem with with ex22, diffs above\n=========================================\n"; \
 	   ${RM} -f ex22_1.tmp
 runex22_2:
 	-@${MPIEXEC} -n 2 ./ex22  > ex22_2.tmp 2>&1; \
-	   ${DIFF} output/ex22_2.out ex22_2.tmp || echo ${PWD} "\nPossible problem with with ex22_2, diffs above \n========================================="; \
+	   ${DIFF} output/ex22_2.out ex22_2.tmp || printf "${PWD}\nPossible problem with with ex22_2, diffs above\n=========================================\n"; \
 	   ${RM} -f ex22_2.tmp
 runex22_3:
 	-@${MPIEXEC} -n 2 ./ex22 -ksp_monitor_short -ksp_type bicg > ex22_3.tmp 2>&1; \
-	   ${DIFF} output/ex22_3.out ex22_3.tmp || echo ${PWD} "\nPossible problem with with ex22_3, diffs above \n========================================="; \
+	   ${DIFF} output/ex22_3.out ex22_3.tmp || printf "${PWD}\nPossible problem with with ex22_3, diffs above\n=========================================\n"; \
 	   ${RM} -f ex22_3.tmp
 
 runex24:
 	-@${MPIEXEC} -n 1 ./ex24 -pc_type icc -mat_type seqsbaij -mat_ignore_lower_triangular > ex24_1.tmp 2>&1; \
            if (${DIFF} output/ex24_1.out ex24_1.tmp) then true; \
-           else echo ${PWD} ; echo "Possible problem with with ex24_1, diffs above \n========================================="; fi; \
+           else printf "${PWD}\nPossible problem with with ex24_1, diffs above\n=========================================\n"; fi; \
            ${RM} -f ex24_1.tmp
 runex24_2:
 	-@${MPIEXEC} -n 1 ./ex24 -pc_type icc -pc_factor_levels 2  -mat_type seqsbaij -mat_ignore_lower_triangular > ex24_2.tmp 2>&1; \
            if (${DIFF} output/ex24_2.out ex24_2.tmp) then true; \
-           else echo ${PWD} ; echo "Possible problem with with ex24_2, diffs above \n========================================="; fi; \
+           else printf "${PWD}\nPossible problem with with ex24_2, diffs above\n=========================================\n"; fi; \
            ${RM} -f ex24_2.tmp
 runex24_3:
 	-@${MPIEXEC} -n 2 ./ex24 -pc_type bjacobi -sub_pc_type icc  -mat_type mpisbaij -mat_ignore_lower_triangular > ex24_3.tmp 2>&1; \
            if (${DIFF} output/ex24_3.out ex24_3.tmp) then true; \
-           else echo ${PWD} ; echo "Possible problem with with ex24_3, diffs above \n========================================="; fi; \
+           else printf "${PWD}\nPossible problem with with ex24_3, diffs above\n=========================================\n"; fi; \
            ${RM} -f ex24_3.tmp
 runex24_4:
 	-@${MPIEXEC} -n 2 ./ex24 -pc_type bjacobi -sub_pc_type icc -sub_pc_factor_levels 1 -mat_type mpisbaij -mat_ignore_lower_triangular > ex24_4.tmp 2>&1; \
            if (${DIFF} output/ex24_4.out ex24_4.tmp) then true; \
-           else echo ${PWD} ; echo "Possible problem with with ex24_4, diffs above \n========================================="; fi; \
+           else printf "${PWD}\nPossible problem with with ex24_4, diffs above\n=========================================\n"; fi; \
            ${RM} -f ex24_4.tmp
 # See http://www.mcs.anl.gov/petsc/documentation/faq.html#datafiles for how to obtain the datafiles used below
 runex25:
 	-@${MPIEXEC} -n 1 ./ex25 -fload ${DATAFILESPATH}/matrices/indefinite/afiro > ex25_1.tmp 2>&1; \
            if (${DIFF} output/ex25_1.out ex25_1.tmp) then true; \
-           else echo ${PWD} ; echo "Possible problem with with ex25_1, diffs above \n========================================="; fi; \
+           else printf "${PWD}\nPossible problem with with ex25_1, diffs above\n=========================================\n"; fi; \
            ${RM} -f ex25_1.tmp
 runex25_2:
 	-@${MPIEXEC} -n 1 ./ex25 -fload ${DATAFILESPATH}/matrices/indefinite/afiro \
 		-pc_type jacobi -pc_jacobi_rowmax > ex25_2.tmp 2>&1; \
            if (${DIFF} output/ex25_2.out ex25_2.tmp) then true; \
-           else echo ${PWD} ; echo "Possible problem with with ex25_2, diffs above \n========================================="; fi; \
+           else printf "${PWD}\nPossible problem with with ex25_2, diffs above\n=========================================\n"; fi; \
            ${RM} -f ex25_2.tmp
 runex26:
 	-@${MPIEXEC} -n 1 ./ex26 -ksp_monitor_short > ex26_1.tmp 2>&1; \
 	if (${DIFF} output/ex26_1.out ex26_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex26_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex26_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex26_1.tmp
 runex26_2:
 	-@${MPIEXEC} -n 3 ./ex26 -ksp_monitor_short > ex26_2.tmp 2>&1; \
 	if (${DIFF} output/ex26_2.out ex26_2.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex26_2, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex26_2, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex26_2.tmp
 
 runex26_ml:
 	-@${MPIEXEC} -n 1 ./ex26 -ksp_monitor_short -pc_type ml -mat_no_inode > ex26_1.tmp 2>&1; \
 	if (${DIFF} output/ex26_ml_1.out ex26_1.tmp) then true; \
-           else echo ${PWD} ; echo "Possible problem with with ex26_ml_1, diffs above \n========================================="; fi; \
+           else printf "${PWD}\nPossible problem with with ex26_ml_1, diffs above\n=========================================\n"; fi; \
            ${RM} -f ex26_1.tmp
 runex26_ml_2:
 	-@${MPIEXEC} -n 3 ./ex26 -ksp_monitor_short -pc_type ml -mat_no_inode > ex26_2.tmp 2>&1; \
 	if (${DIFF} output/ex26_ml_2.out ex26_2.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex26_ml_2, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex26_ml_2, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex26_2.tmp
 runex26_ml_3:
 	-@${MPIEXEC} -n 1 ./ex26 -ksp_monitor_short -pc_type ml -mat_no_inode -pc_mg_type ADDITIVE > ex26_2.tmp 2>&1; \
 	if (${DIFF} output/ex26_ml_3.out ex26_2.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex26_ml_3, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex26_ml_3, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex26_2.tmp
 # See http://www.mcs.anl.gov/petsc/documentation/faq.html#datafiles for how to obtain the datafiles used below
 runex27:
 	-@${MPIEXEC} -n 1 ./ex27 -f ${DATAFILESPATH}/matrices/small > ex27.tmp 2>&1; \
 	if (${DIFF} output/ex27.out ex27.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex27, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex27, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex27.tmp
 runex28:
 	-@${MPIEXEC} -n 3 ./ex28 > ex28.tmp 2>&1; \
 	if (${DIFF} output/ex28.out ex28.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex28, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex28, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex28.tmp
 runex28_2:
 	-@${MPIEXEC} -n 3 ./ex28 -procedural -pc_redundant_number 3 -redundant_ksp_type gmres -redundant_pc_type bjacobi > ex28.tmp 2>&1; \
 	if (${DIFF} output/ex28_2.out ex28.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex28_2, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex28_2, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex28.tmp
 runex28_3:
 	-@${MPIEXEC} -n 5 ./ex28 -procedural -pc_redundant_number 3 -redundant_ksp_type gmres -redundant_pc_type bjacobi > ex28.tmp 2>&1; \
 	if (${DIFF} output/ex28.out ex28.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex28_3, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex28_3, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex28.tmp
 runex29:
 	-@${MPIEXEC} -n 1 ./ex29 -ksp_monitor_short -mat_no_inode > ex29.tmp 2>&1; \
 	if (${DIFF} output/ex29.out ex29.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex29, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex29, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex29.tmp
 runex29_2:
 	-@${MPIEXEC} -n 3 ./ex29 -ksp_monitor_short > ex29_2.tmp 2>&1; \
 	if (${DIFF} output/ex29_2.out ex29_2.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex29_2, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex29_2, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex29_2.tmp
 # See http://www.mcs.anl.gov/petsc/documentation/faq.html#datafiles for how to obtain the datafiles used below
 runex30:
 	-@${MPIEXEC} -n 1 ./ex30 -f ${DATAFILESPATH}/matrices/small -ksp_type preonly -pc_type ilu -pc_factor_mat_ordering_type natural -num_numfac 2 -pc_factor_reuse_fill > ex30.tmp 2>&1; \
 	if (${DIFF} output/ex30.out ex30.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex30, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex30, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex30.tmp
 runex30_2:
 	-@${MPIEXEC} -n 1 ./ex30 -f ${DATAFILESPATH}/matrices/arco1 -mat_type baij -matload_block_size 3 -ksp_type preonly -pc_type ilu -pc_factor_mat_ordering_type natural -num_numfac 2 > ex30.tmp 2>&1; \
 	if (${DIFF} output/ex30_2.out ex30.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex30_2, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex30_2, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex30.tmp
 
 runex30_shift: # test lu with shift
 	-@${MPIEXEC} -n 1 ./ex30 -f0 ${DATAFILESPATH}/matrices/small -mat_sigma -4.0 -ksp_type preonly -pc_type lu -pc_factor_shift_type NONZERO -pc_factor_shift_amount 1.e-5 > ex30.tmp 2>&1; \
 	   if (${DIFF} output/ex30_shiftnz.out ex30.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex30_shiftnz, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex30_shiftnz, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex30.tmp
 	-@${MPIEXEC} -n 1 ./ex30 -f0 ${DATAFILESPATH}/matrices/small -mat_sigma -4.0 -ksp_type preonly -pc_type lu -pc_factor_shift_type POSITIVE_DEFINITE > ex30.tmp 2>&1; \
 	   if (${DIFF} output/ex30_shiftpd.out ex30.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex30_shiftpd, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex30_shiftpd, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex30.tmp
 
 runex30_shift_cholesky_aij: # test cholesky with shift
 	-@${MPIEXEC} -n 1 ./ex30 -f0 ${DATAFILESPATH}/matrices/small -mat_sigma -4.0 -ksp_type preonly -pc_type cholesky -pc_factor_shift_type NONZERO -pc_factor_shift_amount 1.e-5 > ex30.tmp 2>&1; \
 	   if (${DIFF} output/ex30_shiftnz.out ex30.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex30_shiftnz_cholesky_aij, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex30_shiftnz_cholesky_aij, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex30.tmp
 	-@${MPIEXEC} -n 1 ./ex30 -f0 ${DATAFILESPATH}/matrices/small -mat_sigma -4.0 -ksp_type preonly -pc_type cholesky -pc_factor_shift_type POSITIVE_DEFINITE > ex30.tmp 2>&1; \
 	   if (${DIFF} output/ex30_shiftpd_2.out ex30.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex30_shiftpd_cholesky_aij, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex30_shiftpd_cholesky_aij, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex30.tmp
 
 runex30_shift_cholesky_sbaij: # test cholesky with shift
 	-@${MPIEXEC} -n 1 ./ex30 -f0 ${DATAFILESPATH}/matrices/small -mat_sigma -4.0 -ksp_type preonly -pc_type cholesky -pc_factor_shift_type NONZERO -pc_factor_shift_amount 1.e-5 -mat_type sbaij > ex30.tmp 2>&1; \
 	   if (${DIFF} output/ex30_shiftnz.out ex30.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex30_shiftnz_cholesky_sbaij, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex30_shiftnz_cholesky_sbaij, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex30.tmp
 	-@${MPIEXEC} -n 1 ./ex30 -f0 ${DATAFILESPATH}/matrices/small -mat_sigma -4.0 -ksp_type preonly -pc_type cholesky -pc_factor_shift_type POSITIVE_DEFINITE -mat_type sbaij > ex30.tmp 2>&1; \
 	   if (${DIFF} output/ex30_shiftpd_2.out ex30.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex30_shiftpd_cholesky_sbaij, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex30_shiftpd_cholesky_sbaij, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex30.tmp
 
 runex30_shift_in_blocks_aij: # sensitive to machine, thus not submitted to the nightly tests
 	-@${MPIEXEC} -n 1 ./ex30 -f0 ${DATAFILESPATH}/matrices/small -mat_sigma -4.0 -ksp_type preonly -pc_type lu -pc_factor_shift_type INBLOCKS > ex30.tmp 2>&1; \
 	   if (${DIFF} output/ex30_shiftinblocks.out ex30.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex30_shiftinblocks_lu, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex30_shiftinblocks_lu, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex30.tmp
 	-@${MPIEXEC} -n 1 ./ex30 -f0 ${DATAFILESPATH}/matrices/small -mat_sigma -4.0 -ksp_type preonly -pc_type cholesky -pc_factor_shift_type INBLOCKS > ex30.tmp 2>&1; \
 	   if (${DIFF} output/ex30_shiftinblocks.out ex30.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex30_shiftinblocks_cholesky, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex30_shiftinblocks_cholesky, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex30.tmp
 
 runex30_shift_in_blocks_sbaij: # sensitive to machine, thus not submitted to the nightly tests
 	-@${MPIEXEC} -n 1 ./ex30 -f0 ${DATAFILESPATH}/matrices/small -mat_sigma -4.0 -ksp_type preonly -pc_type cholesky -pc_factor_shift_type INBLOCKS -mat_type sbaij > ex30.tmp 2>&1; \
 	   if (${DIFF} output/ex30_shiftinblocks.out ex30.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex30_shift_in_blocks_sbaij, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex30_shift_in_blocks_sbaij, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex30.tmp
 
 runex31:
 	-@${MPIEXEC} -n 3 ./ex31 -f ${DATAFILESPATH}/matrices/small -partition > ex31.tmp 2>&1; \
 	if (${DIFF} output/ex31.out ex31.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex31, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex31, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex31.tmp
 
 runex32_testset1:
 		    	echo "[$${count}]_end" >> ex32.tmp 2>&1;  \
 		    	sed -n '/\['$${count}']_start/,/\['$${count}']_end/p' output/ex32_1.out > ex32.tmp2 2>&1;  \
 		    	if (${DIFF} ex32.tmp ex32.tmp2) then true;  \
-		    	    else echo ${PWD} ; echo "Possible problem with with ./ex32 -ksp_monitor_short -dof $$i -pc_type ilu -pc_factor_mat_ordering_type $$ordering -mat_type aij $$simtype -pc_factor_levels $$flevels"; fi;   \
+		    	    else printf "${PWD}\nPossible problem with with ./ex32 -ksp_monitor_short -dof $$i -pc_type ilu -pc_factor_mat_ordering_type $$ordering -mat_type aij $$simtype -pc_factor_levels $$flevels"; fi;   \
 			    ${RM} -f ex32.tmp; ${RM} -f ex32.tmp2; \
 	    	    done; \
 		done; \
 		    	    echo "[$${count}]_end" >> ex32.tmp 2>&1;  \
 		    	    sed -n '/\['$${count}']_start/,/\['$${count}']_end/p' output/ex32_2.out > ex32.tmp2 2>&1;  \
 		    	if (${DIFF} ex32.tmp ex32.tmp2) then true;  \
-		    	    else echo ${PWD} ; echo "Possible problem with with ./ex32 -ksp_monitor_short -dof $$i -pc_type ilu -pc_factor_mat_ordering_type $$ordering -mat_type baij $$simtype -pc_factor_levels $$flevels"; fi;   \
+		    	    else printf "${PWD}\nPossible problem with with ./ex32 -ksp_monitor_short -dof $$i -pc_type ilu -pc_factor_mat_ordering_type $$ordering -mat_type baij $$simtype -pc_factor_levels $$flevels"; fi;   \
 			${RM} -f ex32.tmp; ${RM} -f ex32.tmp2; \
 	    	    done; \
 		done; \
 		    echo "[$${count}]_end" >> ex32.tmp 2>&1;  \
 		    sed -n '/\['$${count}']_start/,/\['$${count}']_end/p' output/ex32_3.out > ex32.tmp2 2>&1;  \
 		    if (${DIFF} ex32.tmp ex32.tmp2) then true;  \
-		    	else echo ${PWD} ; echo "Possible problem with with ./ex32 -ksp_monitor_short -dof $$i -pc_type lu -pc_factor_mat_ordering_type $$ordering -mat_type aij $$simtype "; fi;   \
+		    	else printf "${PWD}\nPossible problem with with ./ex32 -ksp_monitor_short -dof $$i -pc_type lu -pc_factor_mat_ordering_type $$ordering -mat_type aij $$simtype "; fi;   \
 		    ${RM} -f ex32.tmp; ${RM} -f ex32.tmp2; \
 		done; \
 	    done; \
 		    echo "[$${count}]_end" >> ex32.tmp 2>&1;  \
 		    sed -n '/\['$${count}']_start/,/\['$${count}']_end/p' output/ex32_4.out > ex32.tmp2 2>&1;  \
 		    if (${DIFF} ex32.tmp ex32.tmp2) then true;  \
-		    	else echo ${PWD} ; echo "Possible problem with with ./ex32 -ksp_monitor_short -dof $$i -pc_type lu -pc_factor_mat_ordering_type $$ordering -mat_type baij $$simtype "; fi;   \
+		    	else printf "${PWD}\nPossible problem with with ./ex32 -ksp_monitor_short -dof $$i -pc_type lu -pc_factor_mat_ordering_type $$ordering -mat_type baij $$simtype "; fi;   \
 		    ${RM} -f ex32.tmp; ${RM} -f ex32.tmp2; \
 		done; \
 	    done; \
 		echo "[$${count}]_end" >> ex32.tmp 2>&1;  \
 		sed -n '/\['$${count}']_start/,/\['$${count}']_end/p' output/ex32_5.out > ex32.tmp2 2>&1;  \
 		if (${DIFF} ex32.tmp ex32.tmp2) then true;  \
-		    	else echo ${PWD} ; echo "Possible problem with with ./ex32 -ksp_monitor_short -dof 1 -pc_type icc -ksp_type cg -pc_factor_mat_ordering_type $$ordering -mat_type aij -pc_factor_levels $$flevels"; fi;   \
+		    	else printf "${PWD}\nPossible problem with with ./ex32 -ksp_monitor_short -dof 1 -pc_type icc -ksp_type cg -pc_factor_mat_ordering_type $$ordering -mat_type aij -pc_factor_levels $$flevels"; fi;   \
 		${RM} -f ex32.tmp; ${RM} -f ex32.tmp2; \
 	   done; \
 	done; \
 	    echo "[$${count}]_end" >> ex32.tmp 2>&1;  \
 	    sed -n '/\['$${count}']_start/,/\['$${count}']_end/p' output/ex32_5.out > ex32.tmp2 2>&1;  \
 	    if (${DIFF} ex32.tmp ex32.tmp2) then true;  \
-	    else echo ${PWD} ; echo "Possible problem with with ./ex32 -ksp_monitor_short -dof 1 -pc_type cholesky -ksp_type cg -pc_factor_mat_ordering_type $$ordering -mat_type aij "; fi;   \
+	    else printf "${PWD}\nPossible problem with with ./ex32 -ksp_monitor_short -dof 1 -pc_type cholesky -ksp_type cg -pc_factor_mat_ordering_type $$ordering -mat_type aij "; fi;   \
 	    ${RM} -f ex32.tmp; ${RM} -f ex32.tmp2; \
 	done; \
 
 	echo "[$${count}]_end" >> ex32.tmp 2>&1;  \
 	sed -n '/\['$${count}']_start/,/\['$${count}']_end/p' output/ex32_5.out > ex32.tmp2 2>&1;  \
 	if (${DIFF} ex32.tmp ex32.tmp2) then true;  \
-	else echo ${PWD} ; echo "Possible problem with with ./ex32 -ksp_monitor_short -dof 1 -pc_type icc -test_sbaij1"; fi;   \
+	else printf "${PWD}\nPossible problem with with ./ex32 -ksp_monitor_short -dof 1 -pc_type icc -test_sbaij1"; fi;   \
 	${RM} -f ex32.tmp; ${RM} -f ex32.tmp2
 
 runex32_aij_sbaij_icc:
 	-@${MPIEXEC} -n 1 ./ex32 -ksp_monitor_short -dof 1 -test_sbaij1 -mat_ignore_lower_triangular -pc_type icc > ex32_aij_sbaij_icc.out 2>&1;
 	-@${MPIEXEC} -n 1 ./ex32 -ksp_monitor_short -dof 1 -mat_type aij -pc_type icc -pc_factor_mat_ordering_type natural > ex32.tmp 2>&1; \
 	if (${DIFF} ex32_aij_sbaij_icc.out ex32.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex32_aij_sbaij_icc, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex32_aij_sbaij_icc, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex32.tmp; ${RM} -f ex32_aij_sbaij_icc.out
 
 runex32_aij_sbaij_icc_lev1:
 	-@${MPIEXEC} -n 1 ./ex32 -ksp_monitor_short -dof 1 -test_sbaij1 -ksp_type cg -pc_type icc -pc_factor_levels 1 > ex32_aij_sbaij_icc.out 2>&1;
 	-@${MPIEXEC} -n 1 ./ex32 -ksp_monitor_short -dof 1 -mat_type aij -ksp_type cg -pc_type icc -pc_factor_mat_ordering_type natural -pc_factor_levels 1 > ex32.tmp 2>&1; \
 	if (${DIFF} ex32_aij_sbaij_icc.out ex32.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex32_aij_sbaij_icc_lev1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex32_aij_sbaij_icc_lev1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex32.tmp; ${RM} -f ex32_aij_sbaij_icc.out
 
 runex32_aij_sbaij_icc_lev10:
 	-@${MPIEXEC} -n 1 ./ex32 -ksp_monitor_short -dof 1 -test_sbaij1 -ksp_type cg -pc_type icc -pc_factor_levels 10 > ex32_aij_sbaij_icc.out 2>&1;
 	-@${MPIEXEC} -n 1 ./ex32 -ksp_monitor_short -dof 1 -mat_type aij -ksp_type cg -pc_type icc -pc_factor_mat_ordering_type natural -pc_factor_levels 10 > ex32.tmp 2>&1; \
 	if (${DIFF} ex32_aij_sbaij_icc.out ex32.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex32_aij_sbaij_icc_lev10, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex32_aij_sbaij_icc_lev10, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex32.tmp; ${RM} -f ex32_aij_sbaij_icc.out
 
 runex32_aij_sbaij_cholesky:
 	-@${MPIEXEC} -n 1 ./ex32 -ksp_monitor_short -dof 1 -test_sbaij1 -pc_type cholesky > ex32_aij_sbaij_icc.out 2>&1;
 	-@${MPIEXEC} -n 1 ./ex32 -ksp_monitor_short -dof 1 -mat_type aij -pc_type cholesky -pc_factor_mat_ordering_type natural > ex32.tmp 2>&1; \
 	if (${DIFF} ex32_aij_sbaij_icc.out ex32.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex32_aij_sbaij_icc_lev1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex32_aij_sbaij_icc_lev1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex32.tmp; ${RM} -f ex32_aij_sbaij_icc.out
 
 runex32_inode2:
 	-@${MPIEXEC} -n 1 ./ex32 -ksp_monitor_short -mat_type aij -dof 2 > ex32_inode.out 2>&1;
 	-@${MPIEXEC} -n 1 ./ex32 -ksp_monitor_short -mat_type aij -dof 2 -mat_no_inode > ex32.tmp 2>&1; \
 	if (${DIFF} ex32_inode.out ex32.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex32_inode2, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex32_inode2, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex32.tmp; ${RM} -f ex32_inode.out
 runex32_inode2_nd:
 	-@${MPIEXEC} -n 1 ./ex32 -ksp_monitor_short -mat_type aij -dof 2 -pc_factor_mat_ordering_type nd > ex32_inode.out 2>&1;
 	-@${MPIEXEC} -n 1 ./ex32 -ksp_monitor_short -mat_type aij -dof 2 -pc_factor_mat_ordering_type nd -mat_no_inode > ex32.tmp 2>&1; \
 	if (${DIFF} ex32_inode.out ex32.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex32_inode2_nd, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex32_inode2_nd, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex32.tmp; ${RM} -f ex32_inode.out
 
 runex32_inode3:
 	-@${MPIEXEC} -n 1 ./ex32 -ksp_monitor_short -mat_type aij -dof 3 > ex32_inode.out 2>&1;
 	-@${MPIEXEC} -n 1 ./ex32 -ksp_monitor_short -mat_type aij -dof 3 -mat_no_inode > ex32.tmp 2>&1; \
 	if (${DIFF} ex32_inode.out ex32.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex32_inode3, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex32_inode3, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex32.tmp; ${RM} -f ex32_inode.out
 runex32_inode3_nd:
 	-@${MPIEXEC} -n 1 ./ex32 -ksp_monitor_short -mat_type aij -dof 3 -pc_factor_mat_ordering_type nd > ex32_inode.out 2>&1;
 	-@${MPIEXEC} -n 1 ./ex32 -ksp_monitor_short -mat_type aij -dof 3 -pc_factor_mat_ordering_type nd -mat_no_inode > ex32.tmp 2>&1; \
 	if (${DIFF} ex32_inode.out ex32.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex32_inode3_nd, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex32_inode3_nd, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex32.tmp; ${RM} -f ex32_inode.out
 
 runex32_inode4:
 	-@${MPIEXEC} -n 1 ./ex32 -ksp_monitor_short -mat_type aij -dof 4 > ex32_inode.out 2>&1;
 	-@${MPIEXEC} -n 1 ./ex32 -ksp_monitor_short -mat_type aij -dof 4 -mat_no_inode > ex32.tmp 2>&1; \
 	if (${DIFF} ex32_inode.out ex32.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex32_inode4, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex32_inode4, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex32.tmp; ${RM} -f ex32_inode.out
 runex32_inode4_nd:
 	-@${MPIEXEC} -n 1 ./ex32 -ksp_monitor_short -mat_type aij -dof 4 -pc_factor_mat_ordering_type nd > ex32_inode.out 2>&1;
 	-@${MPIEXEC} -n 1 ./ex32 -ksp_monitor_short -mat_type aij -dof 4 -pc_factor_mat_ordering_type nd -mat_no_inode > ex32.tmp 2>&1; \
 	if (${DIFF} ex32_inode.out ex32.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex32_inode4_nd, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex32_inode4_nd, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex32.tmp; ${RM} -f ex32_inode.out
 
 runex32_inode5:
 	-@${MPIEXEC} -n 1 ./ex32 -ksp_monitor_short -mat_type aij -dof 5 > ex32_inode.out 2>&1;
 	-@${MPIEXEC} -n 1 ./ex32 -ksp_monitor_short -mat_type aij -dof 5 -mat_no_inode > ex32.tmp 2>&1; \
 	if (${DIFF} ex32_inode.out ex32.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex32_inode5, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex32_inode5, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex32.tmp; ${RM} -f ex32_inode.out
 runex32_inode5_nd:
 	-@${MPIEXEC} -n 1 ./ex32 -ksp_monitor_short -mat_type aij -dof 5 -pc_factor_mat_ordering_type nd > ex32_inode.out 2>&1;
 	-@${MPIEXEC} -n 1 ./ex32 -ksp_monitor_short -mat_type aij -dof 5 -pc_factor_mat_ordering_type nd -mat_no_inode > ex32.tmp 2>&1; \
 	if (${DIFF} ex32_inode.out ex32.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex32_inode5_nd, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex32_inode5_nd, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex32.tmp; ${RM} -f ex32_inode.out
 
 runex33:
 	-@${MPIEXEC} -n 1 ./ex33 -sigma 2.0 > ex33.tmp 2>&1; \
 	if (${DIFF} output/ex33.out ex33.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex33, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex33, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex33.tmp
 runex33_mumps:
 	-@${MPIEXEC} -n 1 ./ex33 -sigma 2.0 -pc_factor_mat_solver_package mumps -mat_mumps_icntl_13 1 > ex33.tmp 2>&1; \
 	if (${DIFF} output/ex33.out ex33.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex33_mumps, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex33_mumps, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex33.tmp
 runex33_mumps_2:
 	-@${MPIEXEC} -n 3 ./ex33 -sigma 2.0 -pc_factor_mat_solver_package mumps -mat_mumps_icntl_13 1 > ex33.tmp 2>&1; \
 	if (${DIFF} output/ex33.out ex33.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex33_mumps_2, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex33_mumps_2, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex33.tmp
 # See http://www.mcs.anl.gov/petsc/documentation/faq.html#datafiles for how to obtain the datafiles used below
 runex35_1:
 	-@${MPIEXEC} -n 1 ./ex35 -dof 1 -mat_view -check_final_residual> ex35.tmp 2>&1;\
 	if (${DIFF} output/ex35_1.out ex35.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex35_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex35_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex35.tmp
 
 runex35_2:
 	-@${MPIEXEC} -n 1 ./ex35 -dof 1 -mat_view -test_sbaij -pc_type icc -check_final_residual> ex35.tmp 2>&1;\
 	if (${DIFF} output/ex35_2.out ex35.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex35_2, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex35_2, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex35.tmp
 
 runex35_inode:
 	${MPIEXEC} -n 1 ./ex35 -dof 4 -check_final_residual>> ex35.tmp 2>&1;\
 	${MPIEXEC} -n 1 ./ex35 -dof 5 -check_final_residual>> ex35.tmp 2>&1;\
 	if (${DIFF} output/ex35_3.out ex35.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex35_inode, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex35_inode, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex35.tmp
 # See http://www.mcs.anl.gov/petsc/documentation/faq.html#datafiles for how to obtain the datafiles used below
 runex37:
 	-@${MPIEXEC} -n 1 ./ex37 -f ${DATAFILESPATH}/matrices/small -nsubcomm 1 > ex37.tmp 2>&1;\
 	if (${DIFF} output/ex37.out ex37.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex37, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex37, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex37.tmp
 runex37_2:
 	-@${MPIEXEC} -n 4 ./ex37 -f ${DATAFILESPATH}/matrices/small -nsubcomm 2 > ex37.tmp 2>&1;\
 	if (${DIFF} output/ex37.out ex37.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex37_2, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex37_2, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex37.tmp
 runex37_MUMPS:
 	-@${MPIEXEC} -n 4 ./ex37 -f ${DATAFILESPATH}/matrices/small -nsubcomm 2 -pc_factor_mat_solver_package mumps -pc_type lu > ex37.tmp 2>&1;\
 	if (${DIFF} output/ex37.out ex37.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex37_MUMPS, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex37_MUMPS, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex37.tmp
 runex37_3:
 	-@${MPIEXEC} -n 4 ./ex37 -f ${DATAFILESPATH}/matrices/small -nsubcomm 2 -subcomm_type 0 > ex37.tmp 2>&1;\
 	if (${DIFF} output/ex37.out ex37.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex37_4, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex37_4, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex37.tmp
 runex37_4:
 	-@${MPIEXEC} -n 4 ./ex37 -f ${DATAFILESPATH}/matrices/small -nsubcomm 2 -subcomm_type 1 > ex37.tmp 2>&1;\
 	if (${DIFF} output/ex37.out ex37.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex37_4, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex37_4, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex37.tmp
 runex37_5:
 	-@${MPIEXEC} -n 4 ./ex37 -f ${DATAFILESPATH}/matrices/small -nsubcomm 2 -subcomm_type 2 > ex37.tmp 2>&1;\
 	if (${DIFF} output/ex37.out ex37.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex37_5, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex37_5, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex37.tmp
 
 runex38:
 	-@${MPIEXEC} -n 8 ./ex38 -ksp_type fbcgs -ksp_rtol 1.e-6 -sub_ksp_type bcgs -sub_ksp_rtol 1.e-3 -pc_type bjacobi -ksp_converged_reason -n1 64 -n2 64 > ex38.tmp 2>&1;\
 	if (${DIFF} output/ex38.out ex38.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex38_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex38_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex38.tmp
 
 runex39:
 	-@${MPIEXEC} -n 8 ./ex39 -ksp_type fbcgs -ksp_rtol 1.e-6 -sub_ksp_type bcgs -sub_ksp_rtol 1.e-3 -pc_type bjacobi -ksp_converged_reason -n1 32 -n2 32 -n3 32 > ex39.tmp 2>&1;\
 	if (${DIFF} output/ex39.out ex39.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex39_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex39_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex39.tmp
 runex39_2:
 	-@${MPIEXEC} -n 8 ./ex39 -ksp_type fbcgsr -ksp_rtol 1.e-6 -sub_ksp_type bcgs -sub_ksp_rtol 1.e-3 -pc_type bjacobi -ksp_converged_reason -n1 32 -n2 32 -n3 32 > ex39.tmp 2>&1;\
 	if (${DIFF} output/ex39.out ex39.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex39_2, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex39_2, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex39.tmp
 runex39_cheby_hybrid:
 	-@${MPIEXEC} -n 3 ./ex39 -beta -0.6 -ksp_type chebyshev -ksp_monitor_short -est_ksp_monitor_short -ksp_chebyshev_hybrid -ksp_chebyshev_hybrid_eststeps 5 -ksp_chebyshev_hybrid_chebysteps 6 -ksp_chebyshev_hybrid_purification > ex39.tmp 2>&1;\
 	if (${DIFF} output/ex39_cheby_hybrid.out ex39.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex39_cheby_hybrid, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex39_cheby_hybrid, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex39.tmp
 runex39_fgmres_cheby_hybrid:
 	-@${MPIEXEC} -n 3 ./ex39 -beta -0.6 -ksp_type fgmres -pc_type ksp -ksp_ksp_type chebyshev -ksp_monitor_short -ksp_ksp_max_it 3 -ksp_ksp_chebyshev_hybrid -ksp_ksp_chebyshev_hybrid_chebysteps 2 -ksp_ksp_chebyshev_hybrid_eststeps 2 -ksp_ksp_norm_type none > ex39.tmp 2>&1;\
 	if (${DIFF} output/ex39_fgmres_cheby_hybrid.out ex39.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex39_fgmres_cheby_hybrid, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex39_fgmres_cheby_hybrid, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex39.tmp
 
 runex40:
 	-@${MPIEXEC} -n 6 ./ex40 -pc_type none  > ex40.tmp 2>&1;\
 	if (${DIFF} output/ex40.out ex40.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex40_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex40_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex40.tmp
 runex40_2:
 	-@${MPIEXEC} -n 6 ./ex40 -pc_type lu -pc_factor_mat_solver_package elemental > ex40.tmp 2>&1;\
 	if (${DIFF} output/ex40_2.out ex40.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex40_2, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex40_2, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex40.tmp
 
 runex42:
 	-@${MPIEXEC} -n 1 ./ex42 -ksp_type minres -pc_type none -ksp_converged_reason > ex42.tmp 2>&1;\
 	if (${DIFF} output/ex42.out ex42.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex42_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex42_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex42.tmp
 runex42_2:
 	-@${MPIEXEC} -n 3 ./ex42 -ksp_type minres -pc_type none -ksp_converged_reason > ex42.tmp 2>&1;\
 	if (${DIFF} output/ex42_2.out ex42.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex42_2, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex42_2, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex42.tmp
 
 runex43:
 	-@${MPIEXEC} -n 1 ./ex43 -f ${DATAFILESPATH}/matrices/cfd.2.10 -mat_type seqaijcusparse -mat_cusparse_storage_format ell -vec_type seqcusp -pc_type ilu > ex43.tmp 2>&1;\
 	if (${DIFF} output/ex43.out ex43.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex43, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex43, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex43.tmp
 
 runex43_2:
 	-@${MPIEXEC} -n 1 ./ex43 -f ${DATAFILESPATH}/matrices/shallow_water1 -mat_type seqaijcusparse -mat_cusparse_storage_format hyb -vec_type seqcusp -ksp_type cg -pc_type icc > ex43_2.tmp 2>&1;\
 	if (${DIFF} output/ex43_2.out ex43_2.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex43_2, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex43_2, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex43_2.tmp
 
 runex43_3:
 	-@${MPIEXEC} -n 1 ./ex43 -f ${DATAFILESPATH}/matrices/cfd.2.10 -mat_type seqaijcusparse -mat_cusparse_storage_format csr -vec_type seqcusp -ksp_type bicg -pc_type ilu > ex43_3.tmp 2>&1;\
 	if (${DIFF} output/ex43_3.out ex43_3.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex43_3, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex43_3, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex43_3.tmp
 
 runex43_4:
 	-@${MPIEXEC} -n 1 ./ex43 -f ${DATAFILESPATH}/matrices/cfd.2.10 -mat_type seqaijcusparse -mat_cusparse_storage_format csr -vec_type seqcusp -ksp_type bicg -pc_type ilu -pc_factor_mat_ordering_type nd > ex43_4.tmp 2>&1;\
 	if (${DIFF} output/ex43_4.out ex43_4.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex43_4, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex43_4, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex43_4.tmp
 
 runex43_5:
 	-@${MPIEXEC} -n 2 ./ex43 -f ${DATAFILESPATH}/matrices/shallow_water1 -mat_type mpiaijcusparse -mat_cusparse_mult_diag_storage_format hyb -pc_type none -vec_type mpicusp > ex43_5.tmp 2>&1;\
 	if (${DIFF} output/ex43_5.out ex43_5.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex43_5, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex43_5, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex43_5.tmp
 
 runex43_6:
 	-@${MPIEXEC} -n 1 ./ex43 -f ${DATAFILESPATH}/matrices/shallow_water1 -mat_type seqaijcusp -pc_type none -vec_type seqcusp > ex43_6.tmp 2>&1;\
 	if (${DIFF} output/ex43_6.out ex43_6.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex43_6, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex43_6, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex43_6.tmp
 
 runex43_7:
 	-@${MPIEXEC} -n 1 ./ex43 -f ${DATAFILESPATH}/matrices/shallow_water1 -mat_type seqaijcusp -mat_cusp_mult_storage_format ell -pc_type none -vec_type seqcusp > ex43_7.tmp 2>&1;\
 	if (${DIFF} output/ex43_7.out ex43_7.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex43_7, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex43_7, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex43_7.tmp
 
 runex43_8:
 	-@${MPIEXEC} -n 2 ./ex43 -f ${DATAFILESPATH}/matrices/shallow_water1 -mat_type mpiaijcusp -pc_type none -vec_type mpicusp > ex43_8.tmp 2>&1;\
 	if (${DIFF} output/ex43_8.out ex43_8.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex43_8, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex43_8, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex43_8.tmp
 
 
 	  for bs in $$bss; do \
 	    ${MPIEXEC} -n 1 ./ex44 ${EX44RICH} -mat_type $$mt -mat_block_size $$bs > ex44.tmp 2>&1;\
 	    if (${DIFF} output/ex44_aij_zero.out ex44.tmp) then true; \
-	       else echo ${PWD} ; echo "Possible problem with with ex44 -mat_type $$mt -mat_block_size $$bs, diffs above \n========================================="; fi; \
+	       else printf "${PWD}\nPossible problem with with ex44 -mat_type $$mt -mat_block_size $$bs, diffs above\n=========================================\n"; fi; \
 	    ${MPIEXEC} -n 1 ./ex44 ${EX44RICHNONZ} -mat_type $$mt -mat_block_size $$bs > ex44.tmp 2>&1;\
 	    if (${DIFF} output/ex44_aij_nonz.out ex44.tmp) then true; \
-	       else echo ${PWD} ; echo "Possible problem with with ex44 -mat_type $$mt -mat_block_size $$bs -ksp_initial_guess_nonzero, diffs above \n========================================="; fi; \
+	       else printf "${PWD}\nPossible problem with with ex44 -mat_type $$mt -mat_block_size $$bs -ksp_initial_guess_nonzero, diffs above\n=========================================\n"; fi; \
 		  ${RM} ex44.tmp; \
 	  done \
 	done

File src/ksp/ksp/examples/tutorials/makefile

 runex1:
 	-@${MPIEXEC} -n 1 ./ex1 -ksp_monitor_short -ksp_gmres_cgs_refinement_type refine_always > ex1_1.tmp 2>&1;	  \
 	   if (${DIFF} output/ex1_1.out ex1_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex1_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex1_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex1_1.tmp
 runex1_2:
 	-@${MPIEXEC} -n 1 ./ex1 -pc_type sor -pc_sor_symmetric -ksp_monitor_short -ksp_gmres_cgs_refinement_type refine_always >\
 	   ex1_2.tmp 2>&1;   \
 	   if (${DIFF} output/ex1_2.out ex1_2.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex1_2, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex1_2, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex1_2.tmp
 runex1_3:
 	-@${MPIEXEC} -n 1 ./ex1 -pc_type eisenstat -ksp_monitor_short -ksp_gmres_cgs_refinement_type refine_always >\
 	   ex1_3.tmp 2>&1;   \
 	   if (${DIFF} output/ex1_3.out ex1_3.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex1_3, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex1_3, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex1_3.tmp
 runex1f:
 	-@${MPIEXEC} -n 1 ./ex1f -ksp_monitor_short -ksp_gmres_cgs_refinement_type refine_always > ex1f_1.tmp 2>&1;	  \
 	   if (${DIFF} output/ex1f_1.out ex1f_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex1f_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex1f_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex1f_1.tmp
 runex2:
 	-@${MPIEXEC} -n 1 ./ex2 -ksp_monitor_short -m 5 -n 5 -ksp_gmres_cgs_refinement_type refine_always > ex2_1.tmp 2>&1; \
 	   if (${DIFF} output/ex2_1.out ex2_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex2_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex2_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex2_1.tmp
 runex2_2:
 	-@${MPIEXEC} -n 2 ./ex2 -ksp_monitor_short -m 5 -n 5 -ksp_gmres_cgs_refinement_type refine_always > ex2_2.tmp 2>&1; \
 	   if (${DIFF} output/ex2_2.out ex2_2.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex2_2, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex2_2, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex2_2.tmp
 runex2_3:
 	-@${MPIEXEC} -n 1 ./ex2 -pc_type sor -pc_sor_symmetric -ksp_monitor_short -ksp_gmres_cgs_refinement_type refine_always > \
 	    ex2_3.tmp 2>&1;   \
 	   if (${DIFF} output/ex2_3.out ex2_3.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex2_3, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex2_3, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex2_3.tmp
 runex2_4:
 	-@${MPIEXEC} -n 1 ./ex2 -pc_type eisenstat -ksp_monitor_short -ksp_gmres_cgs_refinement_type refine_always >\
 	    ex2_4.tmp 2>&1;   \
 	   if (${DIFF} output/ex2_4.out ex2_4.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex2_4, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex2_4, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex2_4.tmp
 runex2_5:
 	-@${MPIEXEC} -n 2 ./ex2 -ksp_monitor_short -m 5 -n 5 -mat_view draw -ksp_gmres_cgs_refinement_type refine_always -nox  > ex2_5.tmp 2>&1; \
 	   if (${DIFF} output/ex2_2.out ex2_5.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex2_5, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex2_5, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex2_5.tmp
 runex2_7:
 	-@${MPIEXEC} -n 1 ./ex2 -pc_type ilu -pc_factor_drop_tolerance 0.01,0.0,2 > ex2_7.tmp 2>&1; \
 	   if (${DIFF} output/ex2_7.out ex2_7.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex2_7, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex2_7, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex2_7.tmp
 runex2_bjacobi:
 	-@${MPIEXEC} -n 4 ./ex2 -pc_type bjacobi -pc_bjacobi_blocks 1 -ksp_monitor_short -sub_pc_type jacobi -sub_ksp_type gmres > ex2.tmp 2>&1; \
 	   if (${DIFF} output/ex2_bjacobi.out ex2.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex2_bjacobi, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex2_bjacobi, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex2.tmp
 runex2_bjacobi_2:
 	-@${MPIEXEC} -n 4 ./ex2 -pc_type bjacobi -pc_bjacobi_blocks 2 -ksp_monitor_short -sub_pc_type jacobi -sub_ksp_type gmres -ksp_view > ex2.tmp 2>&1; \
 	   if (${DIFF} output/ex2_bjacobi_2.out ex2.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex2_bjacobi_2, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex2_bjacobi_2, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex2.tmp
 runex2_bjacobi_3:
 	-@${MPIEXEC} -n 4 ./ex2 -pc_type bjacobi -pc_bjacobi_blocks 4 -ksp_monitor_short -sub_pc_type jacobi -sub_ksp_type gmres > ex2.tmp 2>&1; \
 	   if (${DIFF} output/ex2_bjacobi_3.out ex2.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex2_bjacobi_3, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex2_bjacobi_3, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex2.tmp
 runex2_specest_1:
 	-@${MPIEXEC} -n 1 ./ex2 -m 80 -n 80 -ksp_type fgmres -pc_type ksp -ksp_ksp_type specest -ksp_monitor_short > ex2.tmp 2>&1; \
-	   ${DIFF} output/ex2_specest_1.out ex2.tmp || echo ${PWD} "\nPossible problem with with ex2_specest_1, diffs above \n========================================="; \
+	   ${DIFF} output/ex2_specest_1.out ex2.tmp || printf "${PWD}\nPossible problem with with ex2_specest_1, diffs above\n=========================================\n"; \
 	   ${RM} -f ex2.tmp
 runex2_specest_2:
 	-@${MPIEXEC} -n 1 ./ex2 -m 80 -n 80 -ksp_type fgmres -pc_type ksp -ksp_ksp_type specest -ksp_monitor_short -ksp_specest_ksp_type cg > ex2.tmp 2>&1; \
-	   ${DIFF} output/ex2_specest_2.out ex2.tmp || echo ${PWD} "\nPossible problem with with ex2_specest_2, diffs above \n========================================="; \
+	   ${DIFF} output/ex2_specest_2.out ex2.tmp || printf "${PWD}\nPossible problem with with ex2_specest_2, diffs above\n=========================================\n"; \
 	   ${RM} -f ex2.tmp
 runex2_chebyest_1:
 	-@${MPIEXEC} -n 1 ./ex2 -m 80 -n 80 -ksp_pc_side right -pc_type ksp -ksp_ksp_type chebyshev -ksp_ksp_max_it 5 -ksp_ksp_chebyshev_estimate_eigenvalues 0.9,0,0,1.1 -ksp_monitor_short > ex2.tmp 2>&1; \
-           ${DIFF} output/ex2_chebyest_1.out ex2.tmp || echo ${PWD} "\nPossible problem with with ex2_chebyest_1, diffs above \n========================================="; \
+           ${DIFF} output/ex2_chebyest_1.out ex2.tmp || printf "${PWD}\nPossible problem with with ex2_chebyest_1, diffs above\n=========================================\n"; \
            ${RM} -f ex2.tmp
 runex2_chebyest_2:
 	-@${MPIEXEC} -n 1 ./ex2 -m 80 -n 80 -ksp_pc_side right -pc_type ksp -ksp_ksp_type chebyshev -ksp_ksp_max_it 5 -ksp_ksp_chebyshev_estimate_eigenvalues 0.9,0,0,1.1 -ksp_est_ksp_type cg -ksp_monitor_short > ex2.tmp 2>&1; \
-           ${DIFF} output/ex2_chebyest_2.out ex2.tmp || echo ${PWD} "\nPossible problem with with ex2_chebyest_2, diffs above \n========================================="; \
+           ${DIFF} output/ex2_chebyest_2.out ex2.tmp || printf "${PWD}\nPossible problem with with ex2_chebyest_2, diffs above\n=========================================\n"; \
            ${RM} -f ex2.tmp
 runex2_chebyest_3:
 	-@${MPIEXEC} -n 1 ./ex2 -ksp_type fgmres -pc_type ksp -ksp_ksp_type chebyshev -ksp_ksp_chebyshev_estimate_eigenvalues 0.1,1.1 -ksp_ksp_max_it 1 -ksp_ksp_norm_type none -m 100 -n 100 -ksp_ksp_chebyshev_hybrid -ksp_ksp_chebyshev_hybrid_purification 0 -ksp_ksp_chebyshev_hybrid_chebysteps 10 > ex2.tmp 2>&1; \
-           ${DIFF} output/ex2_chebyest_3.out ex2.tmp || echo ${PWD} "\nPossible problem with with ex2_chebyest_3, diffs above \n========================================="; \
+           ${DIFF} output/ex2_chebyest_3.out ex2.tmp || printf "${PWD}\nPossible problem with with ex2_chebyest_3, diffs above\n=========================================\n"; \
            ${RM} -f ex2.tmp
 runex2_chebyest_4:
 	-@${MPIEXEC} -n 1 ./ex2 -ksp_type fgmres -pc_type ksp -ksp_ksp_type chebyshev -ksp_ksp_chebyshev_estimate_eigenvalues 0.1,1.1 -ksp_ksp_max_it 1 -ksp_ksp_norm_type none -m 100 -n 100 -ksp_ksp_chebyshev_hybrid -ksp_ksp_chebyshev_hybrid_purification 1 -ksp_ksp_chebyshev_hybrid_chebysteps 10 > ex2.tmp 2>&1; \
-           ${DIFF} output/ex2_chebyest_4.out ex2.tmp || echo ${PWD} "\nPossible problem with with ex2_chebyest_3, diffs above \n========================================="; \
+           ${DIFF} output/ex2_chebyest_4.out ex2.tmp || printf "${PWD}\nPossible problem with with ex2_chebyest_3, diffs above\n=========================================\n"; \
            ${RM} -f ex2.tmp
 
 runex2_umfpack:
 	-@${MPIEXEC} -n 1 ./ex2 -ksp_type preonly -pc_type lu -pc_factor_mat_solver_package umfpack > ex2_umfpack.tmp 2>&1; \
            if (${DIFF} output/ex2_umfpack.out ex2_umfpack.tmp) then true; \
-           else echo ${PWD} ; echo "Possible problem with with ex2_umfpack, diffs above \n========================================="; fi; \
+           else printf "${PWD}\nPossible problem with with ex2_umfpack, diffs above\n=========================================\n"; fi; \
            ${RM} -f ex2_umfpack.tmp
 runex2_fbcgs:
 	-@${MPIEXEC} -n 1 ./ex2 -ksp_type fbcgs -pc_type ilu  > ex2.tmp 2>&1; \
            if (${DIFF} output/ex2_fbcgs.out ex2.tmp) then true; \
-           else echo ${PWD} ; echo "Possible problem with with ex2_fbcgs, diffs above \n========================================="; fi; \
+           else printf "${PWD}\nPossible problem with with ex2_fbcgs, diffs above\n=========================================\n"; fi; \
            ${RM} -f ex2.tmp
 runex2_fbcgs_2:
 	-@${MPIEXEC} -n 3 ./ex2 -ksp_type fbcgsr -pc_type bjacobi > ex2.tmp 2>&1; \
            if (${DIFF} output/ex2_fbcgs_2.out ex2.tmp) then true; \
-           else echo ${PWD} ; echo "Possible problem with with ex2_fbcgs_2, diffs above \n========================================="; fi; \
+           else printf "${PWD}\nPossible problem with with ex2_fbcgs_2, diffs above\n=========================================\n"; fi; \
            ${RM} -f ex2.tmp
 
 runex2f:
 	-@${MPIEXEC} -n 2 ./ex2f -pc_type jacobi -ksp_monitor_short -ksp_gmres_cgs_refinement_type refine_always > ex2f_1.tmp 2>&1; \
 	   if (${DIFF} output/ex2f_1.out ex2f_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex2f_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex2f_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex2f_1.tmp
 runex5:
 	-@${MPIEXEC} -n 1 ./ex5 -pc_type jacobi -ksp_monitor_short -ksp_gmres_cgs_refinement_type refine_always > ex5_1.tmp 2>&1; \
 	   if (${DIFF} output/ex5_1.out ex5_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex5_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex5_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex5_1.tmp
 runex5_2:
 	-@${MPIEXEC} -n 2 ./ex5 -pc_type jacobi -ksp_monitor_short -ksp_gmres_cgs_refinement_type refine_always \
 	   -ksp_rtol .000001 > ex5_2.tmp 2>&1;   \
 	   if (${DIFF} output/ex5_2.out ex5_2.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex5_2, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex5_2, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex5_2.tmp
 runex5_5:
 	-@${MPIEXEC} -n 2 ./ex5 -ksp_gmres_cgs_refinement_type refine_always > ex5_5.tmp 2>&1; \
 	   if (${DIFF} output/ex5_5.out ex5_5.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex5_5, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex5_5, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex5_5.tmp
 runex5_redundant_0:
 	-@${MPIEXEC} -n 1 ./ex5 -m 1000 -pc_type redundant -pc_redundant_number 1 -redundant_ksp_type gmres -redundant_pc_type jacobi -ksp_monitor_short -ksp_rtol 1.e-4 > ex5.tmp 2>&1;   \
 	   if (${DIFF} output/ex5_redundant_0.out ex5.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex5_redundant, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex5_redundant, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex5.tmp
 runex5_redundant_1:
 	-@${MPIEXEC} -n 5 ./ex5 -pc_type redundant -pc_redundant_number 1 -redundant_ksp_type gmres -redundant_pc_type jacobi -ksp_monitor_short -ksp_rtol 1.e-4 > ex5.tmp 2>&1;   \
 	   if (${DIFF} output/ex5_redundant.out ex5.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex5_redundant_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex5_redundant_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex5.tmp
 runex5_redundant_2:
 	-@${MPIEXEC} -n 5 ./ex5 -pc_type redundant -pc_redundant_number 3 -redundant_ksp_type gmres -redundant_pc_type jacobi -ksp_monitor_short -ksp_rtol 1.e-4 > ex5.tmp 2>&1;   \
 	   if (${DIFF} output/ex5_redundant.out ex5.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex5_redundant_2, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex5_redundant_2, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex5.tmp
 runex5_redundant_3:
 	-@${MPIEXEC} -n 5 ./ex5 -pc_type redundant -pc_redundant_number 5 -redundant_ksp_type gmres -redundant_pc_type jacobi -ksp_monitor_short -ksp_rtol 1.e-4 > ex5.tmp 2>&1;   \
 	   if (${DIFF} output/ex5_redundant.out ex5.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex5_redundant_3, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex5_redundant_3, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex5.tmp
 runex5_redundant_4:
 	-@${MPIEXEC} -n 5 ./ex5 -pc_type redundant -pc_redundant_number 3 -redundant_ksp_type gmres -redundant_pc_type jacobi -ksp_monitor_short -ksp_rtol 1.e-4 -psubcomm_type interlaced > ex5.tmp 2>&1;   \
 	   if (${DIFF} output/ex5_redundant.out ex5.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex5_redundant_4, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex5_redundant_4, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex5.tmp
 runex6f:
 	-@${MPIEXEC} -n 1 ./ex6f -pc_type jacobi -mat_view -ksp_monitor_short -ksp_gmres_cgs_refinement_type refine_always > ex6f_1.tmp 2>&1; \
 	   if (${DIFF} output/ex6f_1.out ex6f_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex6f_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex6f_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex6f_1.tmp
 runex7:
 	-@${MPIEXEC} -n 2 ./ex7 -ksp_monitor_short -nokspview -ksp_gmres_cgs_refinement_type refine_always> ex7_1.tmp 2>&1; \
 	   if (${DIFF} output/ex7_1.out ex7_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex7_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex7_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex7_1.tmp
 runex7_2:
 	-@${MPIEXEC} -n 2 ./ex7 -ksp_view > ex7_2.tmp 2>&1; \
 	   if (${DIFF} output/ex7_2.out ex7_2.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex7_2, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex7_2, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex7_2.tmp
 runex9:
 	-@${MPIEXEC} -n 1 ./ex9 -t 2 -pc_type jacobi -ksp_monitor_short -ksp_type gmres -ksp_gmres_cgs_refinement_type refine_always \
 	   -s2_ksp_type bcgs -s2_pc_type jacobi -s2_ksp_monitor_short \
            > ex9_1.tmp 2>&1; \
 	   if (${DIFF} output/ex9_1.out ex9_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex9_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex9_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex9_1.tmp
 NP = 1
 M  = 4
 runex8_1:
 	-@${MPIEXEC} -n 1 ./ex8 -print_error > ex8_1.tmp 2>&1; \
 	   if (${DIFF} output/ex8_1.out ex8_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex8_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex8_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex8_1.tmp
 
 runex8g_1:
 	-@${MPIEXEC} -n 1 ./ex8g -M 7 -N 9 -user_set_subdomains -Mdomains 1 -Ndomains 3 -overlap 1 -print_error -pc_gasm_print_subdomains > ex8g_1.tmp 2>&1; \
 	    if (${DIFF} output/ex8g_1.out ex8g_1.tmp) then true; \
-	    else echo ${PWD} ; echo "Possible problem with with ex8g_1, diffs above \n========================================="; fi; \
+	    else printf "${PWD}\nPossible problem with with ex8g_1, diffs above\n=========================================\n"; fi; \
 	    ${RM} -f ex8g_1.tmp
 
 runex8g_2:
 	-@${MPIEXEC} -n 2 ./ex8g -M 7 -N 9 -user_set_subdomains -Mdomains 1 -Ndomains 3 -overlap 1 -print_error -pc_gasm_print_subdomains > ex8g_2.tmp 2>&1; \
 	   if (${DIFF} output/ex8g_2.out ex8g_2.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex8g_2, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex8g_2, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex8g_2.tmp
 
 runex8g_3:
 	-@${MPIEXEC} -n 3 ./ex8g -M 7 -N 9 -user_set_subdomains -Mdomains 1 -Ndomains 3 -overlap 1 -print_error -pc_gasm_print_subdomains > ex8g_3.tmp 2>&1; \
 	   if (${DIFF} output/ex8g_3.out ex8g_3.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex8g_3, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex8g_3, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex8g_3.tmp
 
 
 runex10:
 	-@${MPIEXEC} -n 2 ./ex10 -f0 ${PETSC_DIR}/include/datafiles/matrices/spd-real-${PETSC_INDEX_SIZE}-${PETSC_SCALAR_SIZE} > ex10_1.tmp 2>&1; \
 	   if (${DIFF} output/ex10_1.out ex10_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex10_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex10_1.tmp
 
 # See http://www.mcs.anl.gov/petsc/documentation/faq.html#datafiles for how to obtain the datafiles used below
 	-@${MPIEXEC} -n 2 ./ex10 -ksp_type bicg \
 	   -f0 ${DATAFILESPATH}/matrices/medium > ex10_2.tmp 2>&1; \
 	   if (${DIFF} output/ex10_2.out ex10_2.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_2, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex10_2, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex10_2.tmp
 runex10_3:
 	-@${MPIEXEC} -n 2 ./ex10 -ksp_type bicg -pc_type asm \
 	   -f0 ${DATAFILESPATH}/matrices/medium > ex10_3.tmp 2>&1; \
 	   if (${DIFF} output/ex10_3.out ex10_3.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_3, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex10_3, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex10_3.tmp
 runex10_4:
 	-@${MPIEXEC} -n 1 ./ex10 -ksp_type bicg -pc_type lu \
 	   -f0 ${DATAFILESPATH}/matrices/medium > ex10_4.tmp 2>&1; \
 	   if (${DIFF} output/ex10_4.out ex10_4.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_4, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex10_4, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex10_4.tmp
 runex10_5:
 	-@${MPIEXEC} -n 1 ./ex10 -ksp_type bicg \
 	   -f0 ${DATAFILESPATH}/matrices/medium > ex10_5.tmp 2>&1; \
 	   if (${DIFF} output/ex10_5.out ex10_5.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_5, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex10_5, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex10_5.tmp
 runex10_6:
 	-@${MPIEXEC} -n 1 ./ex10 -pc_factor_levels 2 -pc_factor_fill 1.73 -ksp_gmres_cgs_refinement_type refine_always \
 	   -f0 ${DATAFILESPATH}/matrices/fem1 > ex10_6.tmp 2>&1; \
 	   if (${DIFF} output/ex10_6.out ex10_6.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_6, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex10_6, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex10_6.tmp
 # See http://www.mcs.anl.gov/petsc/documentation/faq.html#datafiles for how to obtain the datafiles used below
 BS = 2 3 4 5 6 7 8
                     -ksp_monitor_short -pc_type lu  >> ex10_7.tmp 2>&1 ; \
          done;
 	-@if (${DIFF} output/ex10_7.out ex10_7.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_7, diffs above \n========================================="; fi;
+	   else printf "${PWD}\nPossible problem with with ex10_7, diffs above\n=========================================\n"; fi;
 	-@${RM} -f ex10_7.tmp
 # See http://www.mcs.anl.gov/petsc/documentation/faq.html#datafiles for how to obtain the datafiles used below
 runex10_8:
 	-@${MPIEXEC} -n 1 ./ex10 -ksp_diagonal_scale -pc_type eisenstat -ksp_monitor_short -ksp_diagonal_scale_fix \
 	   -f0 ${DATAFILESPATH}/matrices/medium -ksp_gmres_cgs_refinement_type refine_always  -mat_no_inode > ex10_8.tmp 2>&1; \
 	   if (${DIFF} output/ex10_8.out ex10_8.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_8, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex10_8, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex10_8.tmp
 # See http://www.mcs.anl.gov/petsc/documentation/faq.html#datafiles for how to obtain the datafiles used below
 runex10_9:
                     1.0e-15 -ksp_monitor_short -trans >> ex10_9.tmp 2>&1 ; \
          done; done; done;
 	-@if (${DIFF} output/ex10_9.out ex10_9.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_9, diffs above \n========================================="; fi;
+	   else printf "${PWD}\nPossible problem with with ex10_9, diffs above\n=========================================\n"; fi;
 	-@${RM} -f ex10_9.tmp
 # See http://www.mcs.anl.gov/petsc/documentation/faq.html#datafiles for how to obtain the datafiles used below
 runex10_10:
 	-@${MPIEXEC} -n 2 ./ex10  -ksp_type fgmres -pc_type ksp \
 	   -f0 ${DATAFILESPATH}/matrices/medium -ksp_fgmres_modifypcksp -ksp_monitor_short> ex10_10.tmp 2>&1; \
 	   if (${DIFF} output/ex10_10.out ex10_10.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_10, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex10_10, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex10_10.tmp
 runex10_11:
 	-@${MPIEXEC} -n 2 ./ex10 -f0 http://ftp.mcs.anl.gov/pub/petsc/matrices/testmatrix.gz > ex10_11.tmp 2>&1;\
 	   if (${DIFF} output/ex10_11.out ex10_11.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_11, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex10_11, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex10_11.tmp
 runex10_12:
 	-@${MPIEXEC} -n 1 ./ex10 -mat_aij_matlab -pc_type lu -f0 ${DATAFILESPATH}/matrices/arco1 > ex10_12.tmp 2>&1;\
 	   if (${DIFF} output/ex10_12.out ex10_12.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_12, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex10_12, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex10_12.tmp
 runex10_13:
 	-@${MPIEXEC} -n 1 ./ex10 -mat_type lusol -pc_type lu -f0 ${DATAFILESPATH}/matrices/arco1 > ex10_13.tmp 2>&1;\
 	   if (${DIFF} output/ex10_13.out ex10_13.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_13, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex10_13, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex10_13.tmp
 runex10_14:
 	-@${MPIEXEC} -n 3 ./ex10 -pc_type spai -f0 ${DATAFILESPATH}/matrices/medium > ex10_14.tmp 2>&1; \
-	  ${DIFF} output/ex10_14.out ex10_14.tmp || echo ${PWD} "\nPossible problem with with ex10_14, diffs above \n========================================="; \
+	  ${DIFF} output/ex10_14.out ex10_14.tmp || printf "${PWD}\nPossible problem with with ex10_14, diffs above\n=========================================\n"; \
 	  ${RM} -f ex10_14.tmp
 runex10_15:
 	-@${MPIEXEC} -n 3 ./ex10 -pc_type hypre -pc_hypre_type pilut -f0 ${DATAFILESPATH}/matrices/medium > ex10_15.tmp 2>&1;\
 	   if (${DIFF} output/ex10_15.out ex10_15.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_15, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex10_15, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex10_15.tmp
 runex10_16:
 	-@${MPIEXEC} -n 3 ./ex10 -pc_type hypre -pc_hypre_type parasails -f0 ${DATAFILESPATH}/matrices/medium > ex10_16.tmp 2>&1;\
 	   if (${DIFF} output/ex10_16.out ex10_16.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_16, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex10_16, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex10_16.tmp
 runex10_17:
 	-@${MPIEXEC} -n 3 ./ex10 -pc_type hypre -pc_hypre_type boomeramg -f0 ${DATAFILESPATH}/matrices/medium > ex10_17.tmp 2>&1;\
 	   if (${DIFF} output/ex10_17.out ex10_17.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_17, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex10_17, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex10_17.tmp
 #
 #   The following leaves memory unfreed. It appears to be Euclid does something improper with its MPI_Comm
 runex10_18:
 	-@${MPIEXEC} -n 3 ./ex10 -pc_type hypre -pc_hypre_type euclid -f0 ${DATAFILESPATH}/matrices/medium > ex10_18.tmp 2>&1;\
 	   if (${DIFF} output/ex10_18.out ex10_18.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_18, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex10_18, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex10_18.tmp
 # See http://www.mcs.anl.gov/petsc/documentation/faq.html#datafiles for how to obtain the datafiles used below
 LEVELS = 0 2 4
 	 ${MPIEXEC} -n 1 ./ex10 -f0 ${DATAFILESPATH}/matrices/poisson1 -ksp_type cg -pc_type icc -pc_factor_levels $$levels -mat_type seqsbaij >> ex10_19sbaij.tmp 2>&1; \
 	done;
 	-@if (${DIFF} ex10_19aij.tmp ex10_19sbaij.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_19, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex10_19, diffs above\n=========================================\n"; fi; \
 	${RM} -f ex10_19aij.tmp ex10_19sbaij.tmp
 # See http://www.mcs.anl.gov/petsc/documentation/faq.html#datafiles for how to obtain the datafiles used below
 
 runex10_superlu_lu_1:
 	-@${MPIEXEC} -n 1 ./ex10 -f0 ${DATAFILESPATH}/matrices/small -ksp_type preonly -pc_type lu -pc_factor_mat_solver_package superlu -num_numfac 2 -num_rhs 2 > ex10_superlu_lu_1.tmp 2>&1; \
 	   if (${DIFF} output/ex10_mumps.out ex10_superlu_lu_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_superlu_lu_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex10_superlu_lu_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex10_superlu_lu_1.tmp
 
 runex10_superlu_dist_lu_1:
 	-@${MPIEXEC} -n 1 ./ex10 -f0 ${DATAFILESPATH}/matrices/small -ksp_type preonly -pc_type lu -pc_factor_mat_solver_package superlu_dist -num_numfac 2 -num_rhs 2 > ex10_superlu_lu_2.tmp 2>&1; \
 	   if (${DIFF} output/ex10_mumps.out ex10_superlu_lu_2.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_superlu_lu_2, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex10_superlu_lu_2, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex10_superlu_lu_2.tmp
 runex10_superlu_dist_lu_2:
 	-@${MPIEXEC} -n 2 ./ex10 -f0 ${DATAFILESPATH}/matrices/small -ksp_type preonly -pc_type lu -pc_factor_mat_solver_package superlu_dist -num_numfac 2 -num_rhs 2 > ex10_superlu_lu_2.tmp 2>&1; \
 	   if (${DIFF} output/ex10_mumps.out ex10_superlu_lu_2.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_superlu_lu_2, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex10_superlu_lu_2, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex10_superlu_lu_2.tmp
 runex10_umfpack:
 	-@${MPIEXEC} -n 1 ./ex10 -f0 ${DATAFILESPATH}/matrices/small -ksp_type preonly -pc_type lu -mat_type seqaij -pc_factor_mat_solver_package umfpack -num_numfac 2 -num_rhs 2 > ex10_umfpack.tmp 2>&1; \
 	   if (${DIFF} output/ex10_umfpack.out ex10_umfpack.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_umfpack, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex10_umfpack, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex10_umfpack.tmp
 runex10_mumps_lu_1:
 	-@${MPIEXEC} -n 1 ./ex10 -f0 ${DATAFILESPATH}/matrices/small -ksp_type preonly -pc_type lu -mat_type seqaij -pc_factor_mat_solver_package mumps -num_numfac 2 -num_rhs 2 > ex10_mumps_lu_1.tmp 2>&1; \
 	   if (${DIFF} output/ex10_mumps.out ex10_mumps_lu_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_mumps_lu_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex10_mumps_lu_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex10_mumps_lu_1.tmp
 runex10_mumps_lu_2:
 	-@${MPIEXEC} -n 2 ./ex10 -f0 ${DATAFILESPATH}/matrices/small -ksp_type preonly -pc_type lu -mat_type mpiaij -pc_factor_mat_solver_package mumps -num_numfac 2 -num_rhs 2 > ex10_mumps_lu_2.tmp 2>&1; \
 	   if (${DIFF} output/ex10_mumps.out ex10_mumps_lu_2.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_mumps_lu_2, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex10_mumps_lu_2, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex10_mumps_lu_2.tmp
 runex10_mumps_lu_3:
 	-@${MPIEXEC} -n 1 ./ex10 -f0 ${DATAFILESPATH}/matrices/small -ksp_type preonly -pc_type lu -mat_type seqbaij -pc_factor_mat_solver_package mumps -num_numfac 2 -num_rhs 2 -matload_block_size 2 > ex10_mumps_lu_3.tmp 2>&1; \
 	   if (${DIFF} output/ex10_mumps.out ex10_mumps_lu_3.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_mumps_lu_3, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex10_mumps_lu_3, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex10_mumps_lu_3.tmp
 runex10_mumps_lu_4:
 	-@${MPIEXEC} -n 2 ./ex10 -f0 ${DATAFILESPATH}/matrices/small -ksp_type preonly -pc_type lu -mat_type mpibaij -pc_factor_mat_solver_package mumps -num_numfac 2 -num_rhs 2 -matload_block_size 2 > ex10_mumps_lu_4.tmp 2>&1; \
 	   if (${DIFF} output/ex10_mumps.out ex10_mumps_lu_4.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_mumps_lu_4, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex10_mumps_lu_4, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex10_mumps_lu_4.tmp
 runex10_mumps_cholesky_1:
 	-@${MPIEXEC} -n 1 ./ex10 -f0 ${DATAFILESPATH}/matrices/small -ksp_type preonly -pc_type cholesky -mat_type sbaij -pc_factor_mat_solver_package mumps -num_numfac 2 -num_rhs 2 -mat_ignore_lower_triangular > ex10_mumps_cholesky_1.tmp 2>&1; \
 	   if (${DIFF} output/ex10_mumps.out ex10_mumps_cholesky_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_mumps_cholesky_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex10_mumps_cholesky_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex10_mumps_cholesky_1.tmp
 runex10_mumps_cholesky_2:
 	-@${MPIEXEC} -n 2 ./ex10 -f0 ${DATAFILESPATH}/matrices/small -ksp_type preonly -pc_type cholesky -mat_type sbaij -pc_factor_mat_solver_package mumps -num_numfac 2 -num_rhs 2 -mat_ignore_lower_triangular > ex10_mumps_cholesky_2.tmp 2>&1; \
 	   if (${DIFF} output/ex10_mumps.out ex10_mumps_cholesky_2.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_mumps_cholesky_2, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex10_mumps_cholesky_2, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex10_mumps_cholesky_2.tmp
 runex10_mumps_cholesky_3:
 	-@${MPIEXEC} -n 1 ./ex10 -f0 ${DATAFILESPATH}/matrices/small -ksp_type preonly -pc_type cholesky -mat_type aij -pc_factor_mat_solver_package mumps -num_numfac 2 -num_rhs 2 > ex10_mumps_cholesky_3.tmp 2>&1; \
 	   if (${DIFF} output/ex10_mumps.out ex10_mumps_cholesky_3.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_mumps_cholesky_3, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex10_mumps_cholesky_3, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex10_mumps_cholesky_3.tmp
 runex10_mumps_cholesky_4:
 	-@${MPIEXEC} -n 2 ./ex10 -f0 ${DATAFILESPATH}/matrices/small -ksp_type preonly -pc_type cholesky -mat_type aij -pc_factor_mat_solver_package mumps -num_numfac 2 -num_rhs 2 > ex10_mumps_cholesky_4.tmp 2>&1; \
 	   if (${DIFF} output/ex10_mumps.out ex10_mumps_cholesky_4.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_mumps_cholesky_4, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex10_mumps_cholesky_4, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex10_mumps_cholesky_4.tmp
 runex10_mumps_cholesky_spd_1:
 	-@${MPIEXEC} -n 1 ./ex10 -f0 ${DATAFILESPATH}/matrices/small -ksp_type preonly -pc_type cholesky -mat_type aij -matload_spd -pc_factor_mat_solver_package mumps -num_numfac 2 -num_rhs 2 > ex10_mumps_cholesky_spd_1.tmp 2>&1; \
 	   if (${DIFF} output/ex10_mumps.out ex10_mumps_cholesky_spd_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_mumps_cholesky_spd_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex10_mumps_cholesky_spd_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex10_mumps_cholesky_spd_1.tmp
 runex10_mumps_cholesky_spd_2:
 	-@${MPIEXEC} -n 2 ./ex10 -f0 ${DATAFILESPATH}/matrices/small -ksp_type preonly -pc_type cholesky -mat_type aij -matload_spd -pc_factor_mat_solver_package mumps -num_numfac 2 -num_rhs 2 > ex10_mumps_cholesky_spd_2.tmp 2>&1; \
 	   if (${DIFF} output/ex10_mumps.out ex10_mumps_cholesky_spd_2.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_mumps_cholesky_spd_2, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex10_mumps_cholesky_spd_2, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex10_mumps_cholesky_spd_2.tmp
 
 NSUBCOMM = 8 7 6 5 4 3 2 1
 	${MPIEXEC} -n 8 ./ex10 -f0 ${DATAFILESPATH}/matrices/medium -ksp_type preonly -pc_type redundant -pc_redundant_number $$nsubcomm -redundant_pc_factor_mat_solver_package mumps -num_numfac 2 -num_rhs 2 >> ex10_mumps_redundant.tmp 2>&1; \
 	done;
 	-@if (${DIFF} output/ex10_mumps_redundant.out ex10_mumps_redundant.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_mumps_redundant, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex10_mumps_redundant, diffs above\n=========================================\n"; fi; \
 	${RM} -f ex10_mumps_redundant.tmp;
 
 runex10_superlu_dist_redundant:
 	${MPIEXEC} -n 8 ./ex10 -f0 ${DATAFILESPATH}/matrices/medium -ksp_type preonly -pc_type redundant -pc_redundant_number $$nsubcomm -redundant_pc_factor_mat_solver_package superlu_dist -num_numfac 2 -num_rhs 2 >> ex10_superlu_dist_redundant.tmp 2>&1; \
 	done;
 	-@if (${DIFF} output/ex10_mumps_redundant.out ex10_superlu_dist_redundant.tmp) then true; \
-	  else echo ${PWD} ; echo "Possible problem with with ex10_superlu_dist_redundant, diffs above \n========================================="; fi; \
+	  else printf "${PWD}\nPossible problem with with ex10_superlu_dist_redundant, diffs above\n=========================================\n"; fi; \
 	${RM} -f ex10_superlu_dist_redundant.tmp;
 runex10_ILU: # test ilu fill greater than zero
 	-@${MPIEXEC} -n 1 ./ex10 -f0 ${DATAFILESPATH}/matrices/small -pc_factor_levels 1  > ex10_20.tmp 2>&1; \
 	   if (${DIFF} output/ex10_ILU.out ex10_20.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_ILU, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex10_ILU, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex10_20.tmp
 runex10_ILUBAIJ: # test ilu fill greater than zero
 	-@${MPIEXEC} -n 1 ./ex10 -f0 ${DATAFILESPATH}/matrices/small -pc_factor_levels 1 -mat_type baij > ex10_20.tmp 2>&1; \
 	   if (${DIFF} output/ex10_ILU.out ex10_20.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_ILU, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex10_ILU, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex10_20.tmp
 runex10_cg:
 	-@${MPIEXEC} -n 1 ./ex10 -f0 ${DATAFILESPATH}/matrices/small -mat_type mpisbaij -ksp_type cg -pc_type eisenstat -ksp_monitor_short -ksp_converged_reason > ex10_20.tmp 2>&1; \
 	   if (${DIFF} output/ex10_cg_singlereduction.out ex10_20.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_cg, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex10_cg, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex10_20.tmp
 runex10_cg_singlereduction:
 	-@${MPIEXEC} -n 1 ./ex10 -f0 ${DATAFILESPATH}/matrices/small -mat_type mpisbaij -ksp_type cg -pc_type eisenstat -ksp_monitor_short -ksp_converged_reason -ksp_cg_single_reduction > ex10_20.tmp 2>&1; \
 	   if (${DIFF} output/ex10_cg_singlereduction.out ex10_20.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_cg_singlereduction, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex10_cg_singlereduction, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex10_20.tmp
 runex10_seqaijcrl:
 	-@${MPIEXEC} -n 1 ./ex10 -f0 ${DATAFILESPATH}/matrices/small -ksp_monitor_short -ksp_view -mat_view ascii::ascii_info -mat_type seqaijcrl > ex10_seqaijcrl.tmp 2>&1; \
 	   if (${DIFF} output/ex10_seqcrl.out ex10_seqaijcrl.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_seqaijcrl, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex10_seqaijcrl, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex10_seqaijcrl.tmp
 runex10_mpiaijcrl:
 	-@${MPIEXEC} -n 2 ./ex10 -f0 ${DATAFILESPATH}/matrices/small -ksp_monitor_short -ksp_view  -mat_type mpiaijcrl > ex10_mpiaijcrl.tmp 2>&1; \
 	   if (${DIFF} output/ex10_mpiaij.out ex10_mpiaijcrl.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_mpiaijcrl, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex10_mpiaijcrl, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex10_mpiaijcrl.tmp
 runex10_seqaijperm:
 	-@${MPIEXEC} -n 1 ./ex10 -f0 ${DATAFILESPATH}/matrices/small -ksp_monitor_short -ksp_view -mat_view ascii::ascii_info -mat_type seqaijperm > ex10_seqaijperm.tmp 2>&1; \
 	   if (${DIFF} output/ex10_seqcsrperm.out ex10_seqaijperm.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_seqaijperm, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex10_seqaijperm, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex10_seqaijperm.tmp
 runex10_mpiaijperm:
 	-@${MPIEXEC} -n 2 ./ex10 -f0 ${DATAFILESPATH}/matrices/small -ksp_monitor_short -ksp_view  -mat_type mpiaijperm > ex10_mpiaijperm.tmp 2>&1; \
 	   if (${DIFF} output/ex10_mpicsrperm.out ex10_mpiaijperm.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_mpiaijperm, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex10_mpiaijperm, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex10_mpiaijperm.tmp
 runex10_aijcusparse:
 	-@${MPIEXEC} -n 1 ./ex10 -f0 ${DATAFILESPATH}/matrices/medium -ksp_monitor_short -ksp_view -mat_view ascii::ascii_info -mat_type aijcusparse > ex10_aijcusparse.tmp 2>&1; \
 	   if (${DIFF} output/ex10_aijcusparse.out ex10_aijcusparse.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex10_aijcusparse, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex10_aijcusparse, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex10_aijcusparse.tmp
 runex11:
 	-@${MPIEXEC} -n 1 ./ex11 -n 6 -norandom -pc_type none -ksp_monitor_short -ksp_gmres_cgs_refinement_type refine_always > ex11_1.tmp 2>&1; \
 	   if (${DIFF} output/ex11_1.out ex11_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex11_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex11_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex11_1.tmp
 runex11f:
 	-@${MPIEXEC} -n 1 ./ex11f -n 6 -norandom -pc_type none -ksp_monitor_short -ksp_gmres_cgs_refinement_type refine_always > ex11f_1.tmp 2>&1; \
 	   if (${DIFF} output/ex11f_1.out ex11f_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex11f_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex11f_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex11f_1.tmp
 runex12:
 	-@${MPIEXEC} -n 1 ./ex12 -ksp_gmres_cgs_refinement_type refine_always > ex12_1.tmp 2>&1; \
 	   if (${DIFF} output/ex12_1.out ex12_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex12_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex12_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex12_1.tmp
 runex13:
 	-@${MPIEXEC} -n 1 ./ex13 -m 19 -n 20 -ksp_gmres_cgs_refinement_type refine_always > ex13_1.tmp 2>&1; \
 	   if (${DIFF} output/ex13_1.out ex13_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex13_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex13_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex13_1.tmp
 runex13f90:
 	-@${MPIEXEC} -n 1 ./ex13f90 -m 19 -n 20 -ksp_gmres_cgs_refinement_type refine_always > ex13f90_1.tmp 2>&1; \
 	   if (${DIFF} output/ex13f90_1.out ex13f90_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex13f90_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex13f90_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex13f90_1.tmp
 runex14f:
 	-@${MPIEXEC} -n 1 ./ex14f -no_output -ksp_gmres_cgs_refinement_type refine_always > ex14_1.tmp 2>&1; \
 	   if (${DIFF} output/ex14_1.out ex14_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex14f_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex14f_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex14_1.tmp
 runex15:
 	-@${MPIEXEC} -n 2 ./ex15 -ksp_view -user_defined_pc -ksp_gmres_cgs_refinement_type refine_always > ex15_1.tmp 2>&1; \
 	   if (${DIFF} output/ex15_1.out ex15_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex15_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex15_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex15_1.tmp
 runex15f:
 	-@${MPIEXEC} -n 2 ./ex15f -ksp_view -user_defined_pc -ksp_gmres_cgs_refinement_type refine_always > ex15f_1.tmp 2>&1; \
 	   if (${DIFF} output/ex15f_1.out ex15f_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex15f_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex15f_1, diffs above\n=========================================\n"; fi; \
 	   ${RM} -f ex15f_1.tmp
 runex16:
 	-@${MPIEXEC} -n 2 ./ex16 -ntimes 4 -ksp_gmres_cgs_refinement_type refine_always > ex16_1.tmp 2>&1; \
 	   if (${DIFF} output/ex16_1.out ex16_1.tmp) then true; \
-	   else echo ${PWD} ; echo "Possible problem with with ex16_1, diffs above \n========================================="; fi; \
+	   else printf "${PWD}\nPossible problem with with ex16_1, diffs above\n=========================================\n"; fi; \
</