Index: /issm/trunk-jpl/externalpackages/petsc/install-3.14-mac.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/petsc/install-3.14-mac.sh	(revision 25709)
+++ /issm/trunk-jpl/externalpackages/petsc/install-3.14-mac.sh	(revision 25710)
@@ -39,6 +39,10 @@
 	--download-hdf5=1
 
-
 # Compile and install
-make
-make install
+if [ $# -eq 0 ]; then
+	make
+	make install
+else
+	make -j $1
+	make -j $1 install
+fi
Index: /issm/trunk-jpl/m4/issm_options.m4
===================================================================
--- /issm/trunk-jpl/m4/issm_options.m4	(revision 25709)
+++ /issm/trunk-jpl/m4/issm_options.m4	(revision 25710)
@@ -210,5 +210,5 @@
 	SYSTEM_FMEMOPEN=1
 	if test "${IS_MAC}" == "yes"; then
-		if [[ $(system_profiler SPSoftwareDataType | $(which grep) "System Version:" | sed -e "s/[[:space:]]*System Version: macOS //" | cut -d "." -f 2) -lt 13 ]]; then
+		if [[ $(system_profiler SPSoftwareDataType | /usr/bin/grep "System Version:" | sed -e "s/[[:space:]]*System Version: macOS //" | cut -d "." -f 2) -lt 13 ]]; then
 			SYSTEM_FMEMOPEN=0
 		fi
@@ -378,7 +378,7 @@
 			*)
 				MATLABINCL="-I${MATLAB_ROOT}/extern/include"
-				MEXLINK=$(${MATLAB_ROOT}/bin/mex -v 2>&1 < /dev/null | grep LDFLAGS | sed -e "s/         LDFLAGS            = //g")
-				MEXLIB=$(${MATLAB_ROOT}/bin/mex -v 2>&1 < /dev/null | grep CXXLIBS | sed -e "s/         CXXLIBS            = //g")
-				MEXEXT=$(${MATLAB_ROOT}/bin/mex -v 2>&1 < /dev/null | grep LDEXTENSION | sed -e "s/         LDEXTENSION        = //g")
+				MEXLINK=$(${MATLAB_ROOT}/bin/mex -v 2>&1 < /dev/null | /usr/bin/grep LDFLAGS | sed -e "s/         LDFLAGS            = //g")
+				MEXLIB=$(${MATLAB_ROOT}/bin/mex -v 2>&1 < /dev/null | /usr/bin/grep CXXLIBS | sed -e "s/         CXXLIBS            = //g")
+				MEXEXT=$(${MATLAB_ROOT}/bin/mex -v 2>&1 < /dev/null | /usr/bin/grep LDEXTENSION | sed -e "s/         LDEXTENSION        = //g")
 				dnl version 2014 and up
 				if test -z "${MEXEXT}"; then
@@ -387,7 +387,7 @@
 					${MATLAB_ROOT}/bin/mex -v -lmex conftest.cpp > conftest.tmp 2>&1
 					rm -f conftest.cpp
-					MEXLINK=$(cat conftest.tmp | grep LDFLAGS | sed -e "s/LDFLAGS ://g")
-					MEXLIB=$(cat conftest.tmp | grep LINKLIBS | sed -e "s/LINKLIBS ://g")
-					MEXEXT=$(cat conftest.tmp | grep LDEXT | sed -e "s/LDEXT ://g" | awk '{print $[1]}')
+					MEXLINK=$(cat conftest.tmp | /usr/bin/grep LDFLAGS | sed -e "s/LDFLAGS ://g")
+					MEXLIB=$(cat conftest.tmp | /usr/bin/grep LINKLIBS | sed -e "s/LINKLIBS ://g")
+					MEXEXT=$(cat conftest.tmp | /usr/bin/grep LDEXT | sed -e "s/LDEXT ://g" | awk '{print $[1]}')
 					if test -z "${MEXEXT}"; then
 					 cat conftest.tmp
@@ -508,5 +508,5 @@
 		#BOOSTLIB="-L$BOOST_ROOT/lib -lboost_python"
 		AC_MSG_CHECKING(for Boost version)
-		BOOST_VERSION=`cat ${BOOST_ROOT}/include/boost/version.hpp | grep "#define BOOST_VERSION " | sed 's/.*BOOST_VERSION //'`
+		BOOST_VERSION=`cat ${BOOST_ROOT}/include/boost/version.hpp | /usr/bin/grep "#define BOOST_VERSION " | sed 's/.*BOOST_VERSION //'`
 		BOOST_VERSION_MAJOR=`expr ${BOOST_VERSION} / 100000`
 		BOOST_VERSION_MINOR=`expr ${BOOST_VERSION} / 100 % 1000`
@@ -548,11 +548,11 @@
 		DAKOTA_VERSION_OUTPUT=`${DAKOTA_ROOT}/bin/dakota -v`
 		if test -n "${DAKOTA_VERSION_OUTPUT}"; then
-			DAKOTA_VERSION=`echo ${DAKOTA_VERSION_OUTPUT} grep "Dakota version" | sed 's/Dakota version //' | sed 's/ .*//'`
+			DAKOTA_VERSION=`echo ${DAKOTA_VERSION_OUTPUT} /usr/bin/grep "Dakota version" | sed 's/Dakota version //' | sed 's/ .*//'`
 		elif test -f "${DAKOTA_ROOT}/VERSION"; then
-			DAKOTA_VERSION=`cat ${DAKOTA_ROOT}/VERSION | grep 'DAKOTA Version' | sed 's/.*DAKOTA Version //' | sed 's/ .*//'`
+			DAKOTA_VERSION=`cat ${DAKOTA_ROOT}/VERSION | /usr/bin/grep 'DAKOTA Version' | sed 's/.*DAKOTA Version //' | sed 's/ .*//'`
 		elif test -f "${DAKOTA_ROOT}/../src/src/CommandLineHandler.C"; then
-			DAKOTA_VERSION=`cat ${DAKOTA_ROOT}/../src/src/CommandLineHandler.C | grep 'DAKOTA version' | grep 'release' | grep -v // | sed 's/.*DAKOTA version //' | sed 's/ .*//' `
+			DAKOTA_VERSION=`cat ${DAKOTA_ROOT}/../src/src/CommandLineHandler.C | /usr/bin/grep 'DAKOTA version' | /usr/bin/grep 'release' | /usr/bin/grep -v // | sed 's/.*DAKOTA version //' | sed 's/ .*//' `
 		elif test -f "${DAKOTA_ROOT}/../src/src/CommandLineHandler.cpp"; then
-			DAKOTA_VERSION=`cat ${DAKOTA_ROOT}/../src/src/CommandLineHandler.cpp | grep 'DAKOTA version' | grep 'release' | grep -v // | sed 's/.*DAKOTA version //' | sed 's/ .*//' `
+			DAKOTA_VERSION=`cat ${DAKOTA_ROOT}/../src/src/CommandLineHandler.cpp | /usr/bin/grep 'DAKOTA version' | /usr/bin/grep 'release' | /usr/bin/grep -v // | sed 's/.*DAKOTA version //' | sed 's/ .*//' `
 		else
 			AC_MSG_ERROR([Dakota CommandLineHandler.C or CommandLineHandler.cpp file not found to determine DAKOTA_VERSION!]);
@@ -1208,19 +1208,17 @@
 	dnl PETSc libraries and header files
 	if test "x${HAVE_PETSC}" == "xyes"; then
-		AC_MSG_CHECKING(for PETSc version)
 		if ! test -f "${PETSC_ROOT}/include/petscversion.h"; then
 			AC_MSG_ERROR([PETSc not instaled correctly: file (${PETSC_ROOT}/include/petscversion.h) does not exist!]);
 		fi
-		PETSC_MAJOR=`cat ${PETSC_ROOT}/include/petscversion.h | grep "#define PETSC_VERSION_MAJOR" | sed 's/#define PETSC_VERSION_MAJOR//' | sed 's/ //g'`
-		PETSC_MINOR=`cat ${PETSC_ROOT}/include/petscversion.h | grep "#define PETSC_VERSION_MINOR" | sed 's/#define PETSC_VERSION_MINOR//' | sed 's/ //g'`
-		AC_DEFINE_UNQUOTED(_PETSC_MAJOR_, $PETSC_MAJOR, [PETSc version major])
-		AC_DEFINE_UNQUOTED(_PETSC_MINOR_, $PETSC_MINOR, [PETSc version minor])
+
+		AC_MSG_CHECKING(for PETSc version)
+		PETSC_MAJOR=`cat ${PETSC_ROOT}/include/petscversion.h | /usr/bin/grep "#define PETSC_VERSION_MAJOR" | sed 's/#define PETSC_VERSION_MAJOR//' | sed 's/ //g'`
+		PETSC_MINOR=`cat ${PETSC_ROOT}/include/petscversion.h | /usr/bin/grep "#define PETSC_VERSION_MINOR" | sed 's/#define PETSC_VERSION_MINOR//' | sed 's/ //g'`
+		AC_DEFINE_UNQUOTED([_PETSC_MAJOR_], [$PETSC_MAJOR], [PETSc version major])
+		AC_DEFINE_UNQUOTED([_PETSC_MINOR_], [$PETSC_MINOR], [PETSc version minor])
 		AC_MSG_RESULT([${PETSC_MAJOR}.${PETSC_MINOR}])
 
-		dnl PETSC_VERSION_DATE_HG=`cat ${PETSC_ROOT}/include/petscversion.h | grep "#define PETSC_VERSION_DATE_HG" | sed 's/#define PETSC_VERSION_DATE_HG//' | sed 's/ //g' | sed -e 's/\"//g' `
-		PETSC_RELEASE=`cat ${PETSC_ROOT}/include/petscversion.h | grep "#define PETSC_VERSION_RELEASE" | sed 's/#define PETSC_VERSION_RELEASE//' | sed 's/ //g'`
-
 		AC_MSG_CHECKING(whether PETSc is the development version)
-		dnl if test "x${PETSC_VERSION_DATE_HG}" == "xunknown"; then
+		PETSC_RELEASE=`cat ${PETSC_ROOT}/include/petscversion.h | /usr/bin/grep "#define PETSC_VERSION_RELEASE" | sed 's/#define PETSC_VERSION_RELEASE//' | sed 's/ //g'`
 		if test "${PETSC_RELEASE}" == "0"; then
 			AC_DEFINE([_HAVE_PETSCDEV_], [1], [with PETSc-dev])
@@ -2212,5 +2210,5 @@
 		else
 			if test -f "${PETSC_ROOT}/conf/petscvariables"; then
-				PETSC_REC_GRAPHICS_LIB=$(cat ${PETSC_ROOT}/conf/petscvariables | grep X_LIB)
+				PETSC_REC_GRAPHICS_LIB=$(cat ${PETSC_ROOT}/conf/petscvariables | /usr/bin/grep X_LIB)
 				AC_MSG_ERROR([Xlib (graphics library) provided (${GRAPHICS_LIB}) does not exist! PETSc suggests the following library: ${PETSC_REC_GRAPHICS_LIB}]);
 			fi
@@ -2351,5 +2349,5 @@
 
 		AC_MSG_CHECKING(for Gmsh version)
-		GMSH_VERSION_MAJOR=`${GMSH_ROOT}/bin/gmsh -info | grep "Version" | sed -e "s/Version@<:@@<:@:blank:@:>@@:>@*:@<:@@<:@:blank:@:>@@:>@//" | cut -d "." -f 1`
+		GMSH_VERSION_MAJOR=`${GMSH_ROOT}/bin/gmsh -info | /usr/bin/grep "Version" | sed -e "s/Version@<:@@<:@:blank:@:>@@:>@*:@<:@@<:@:blank:@:>@@:>@//" | cut -d "." -f 1`
 		AC_MSG_RESULT([${GMSH_VERSION_MAJOR}])
 		AC_DEFINE_UNQUOTED(_GMSH_VERSION_MAJOR_, $GMSH_VERSION_MAJOR, [Gmsh major version])
Index: /issm/trunk-jpl/src/c/cores/controltao_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/cores/controltao_core.cpp	(revision 25709)
+++ /issm/trunk-jpl/src/c/cores/controltao_core.cpp	(revision 25710)
@@ -11,12 +11,15 @@
 
 #if defined (_HAVE_TAO_)
-#if defined (_HAVE_PETSC_) && (_PETSC_MAJOR_ == 3 && _PETSC_MINOR_ < 5)
+#if defined _HAVE_PETSC_
+#include <petscversion.h>
+#if PETSC_VERSION_LT(3,5,0)
 #include <tao.h>
 #else
 #include <petsctao.h>
 #endif
+#endif
 
 /*Local prototype*/
-#if defined (_HAVE_PETSC_) && (_PETSC_MAJOR_ == 3 && _PETSC_MINOR_ < 5)
+#if PETSC_VERSION_LT(3,5,0)
 int FormFunctionGradient(TaoSolver,Vec,IssmDouble*,Vec,void*);
 int IssmMonitor(TaoSolver,void*);
@@ -38,5 +41,5 @@
 	IssmDouble          gatol,grtol,gttol;
 	AppCtx              user;
-	#if defined (_HAVE_PETSC_) && (_PETSC_MAJOR_ == 3 && _PETSC_MINOR_ < 5)
+	#if PETSC_VERSION_LT(3,5,0)
 	TaoSolver           tao = 0;
 	#else
@@ -51,5 +54,5 @@
 
 	/*Initialize TAO*/
-	#if defined (_HAVE_PETSC_) && (_PETSC_MAJOR_ == 3 && _PETSC_MINOR_ < 5)
+	#if PETSC_VERSION_LT(3,5,0)
 	int argc; char **args=NULL;
 	PetscGetArgs(&argc,&args);
@@ -83,5 +86,5 @@
 	TaoSetMaximumFunctionEvaluations(tao,maxiter);
 	TaoSetMaximumIterations(tao,maxsteps);
-	#if (_PETSC_MAJOR_==3) && (_PETSC_MINOR_<7)
+	#if PETSC_VERSION_LT(3,7,0)
 	TaoSetTolerances(tao,0,0,gatol,grtol,gttol);
 	#else
@@ -128,5 +131,5 @@
 	delete X;
 	TaoDestroy(&tao);
-	#if defined (_HAVE_PETSC_) && (_PETSC_MAJOR_ == 3 && _PETSC_MINOR_ < 5)
+	#if PETSC_VERSION_LT(3,5,0)
 	TaoFinalize();
 	#endif
@@ -135,5 +138,5 @@
 }
 
-#if defined (_HAVE_PETSC_) && (_PETSC_MAJOR_ == 3 && _PETSC_MINOR_ < 5)
+#if PETSC_VERSION_LT(3,5,0)
 int FormFunctionGradient(TaoSolver tao, Vec Xpetsc, IssmDouble *fcn,Vec G,void *uservoid){
 #else
@@ -178,5 +181,5 @@
 	return 0;
 }
-#if defined (_HAVE_PETSC_) && (_PETSC_MAJOR_ == 3 && _PETSC_MINOR_ < 5)
+#if PETSC_VERSION_LT(3,5,0)
 int IssmMonitor(TaoSolver tao, void *userCtx){
 #else
Index: /issm/trunk-jpl/src/c/solutionsequences/solutionsequence_schurcg.cpp
===================================================================
--- /issm/trunk-jpl/src/c/solutionsequences/solutionsequence_schurcg.cpp	(revision 25709)
+++ /issm/trunk-jpl/src/c/solutionsequences/solutionsequence_schurcg.cpp	(revision 25710)
@@ -13,5 +13,5 @@
 
 #ifdef _HAVE_PETSC_
-
+#include <petscversion.h>
 
 void SchurCGSolver(Vector<IssmDouble>** puf,Mat Kff, Vec pf, Vec uf0,IS isv,IS isp,Parameters* parameters){/*{{{*/
@@ -44,5 +44,5 @@
 	int precond = 0;
 
-	#if _PETSC_MAJOR_ < 3 || (_PETSC_MAJOR_ == 3 && _PETSC_MINOR_ < 2)
+	#if PETSC_VERSION_LT(3,2,0)
 	PetscTruth flag,flg;
 	#else
@@ -55,5 +55,5 @@
 	int maxiter;
 
-	#if _PETSC_MINOR_<7
+	#if PETSC_VERSION_LT(3,7,0)
 	PetscOptionsGetString(PETSC_NULL,"-ksp_type",ksp_type,49,&flg);
 	PetscOptionsGetString(PETSC_NULL,"-pc_type",pc_type,49,&flg);
@@ -88,5 +88,5 @@
 	 * and I the Schur preconditioner (stored here, because the space was allocated either way) 
 	 *         */
-	#if _PETSC_MINOR_>8
+	#if PETSC_VERSION_GT(3,8,0)
 	MatCreateSubMatrix(Kff,isv,isv,MAT_INITIAL_MATRIX,&A);
 	MatCreateSubMatrix(Kff,isv,isp,MAT_INITIAL_MATRIX,&B);
@@ -99,5 +99,5 @@
 	
 	/* Extract preconditioner matrix on the pressure space*/
-	#if _PETSC_MINOR_>8
+	#if PETSC_VERSION_GT(3,8,0)
 	MatCreateSubMatrix(Kff,isp,isp,MAT_INITIAL_MATRIX,&IP);
 	#else
@@ -146,5 +146,5 @@
 	/* Create KSP context */
 	KSPCreate(IssmComm::GetComm(),&kspu);
-	#if (_PETSC_MAJOR_==3) && (_PETSC_MINOR_>=5)
+	#if PETSC_VERSION_GE(3,5,0)
 	KSPSetOperators(kspu,A,A);
 	#else
@@ -264,5 +264,5 @@
 	/* Create KSP context */
 	KSPCreate(IssmComm::GetComm(),&kspip);
-	#if (_PETSC_MAJOR_==3) && (_PETSC_MINOR_>=5)
+	#if PETSC_VERSION_GE(3,5,0)
 	KSPSetOperators(kspip,IP,IP);
 	#else
@@ -539,5 +539,5 @@
 
 	/*Extract A, B, B^T */
-	#if _PETSC_MINOR_>8
+	#if PETSC_VERSION_GT(3,8,0)
 	MatCreateSubMatrix(Kff->pmatrix->matrix,isv,isv,MAT_INITIAL_MATRIX,&A);
 	MatCreateSubMatrix(Kff->pmatrix->matrix,isv,isp,MAT_INITIAL_MATRIX,&B);
@@ -742,5 +742,5 @@
 
 		/*Create pressure matrix of choice*/
-		#if _PETSC_MINOR_<7
+		#if PETSC_VERSION_LT(3,7,0)
 		PetscOptionsGetInt(PETSC_NULL,"-schur_pc",&precond,NULL);
 		#else
@@ -775,5 +775,5 @@
 		IS isv = NULL;
 		IS isp = NULL;
-		#if _PETSC_MAJOR_==3
+		#if PETSC_VERSION_MAJOR==3
 
 		/*Make indices out of doftypes: */
Index: /issm/trunk-jpl/src/c/toolkits/petsc/objects/PetscSolver.cpp
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/petsc/objects/PetscSolver.cpp	(revision 25709)
+++ /issm/trunk-jpl/src/c/toolkits/petsc/objects/PetscSolver.cpp	(revision 25710)
@@ -8,4 +8,6 @@
 #error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
 #endif
+
+#include <petscversion.h>
 
 #include "./PetscSolver.h"
@@ -47,5 +49,5 @@
 	int        solver_type;
 	bool       fromlocalsize    = true;
-	#if _PETSC_MAJOR_ < 3 || (_PETSC_MAJOR_ == 3 && _PETSC_MINOR_ < 2)
+	#if PETSC_VERSION_LT(3,2,0)
 	PetscTruth flag,flg;
 	#else
@@ -59,8 +61,8 @@
 
 	/*Display message*/
-	#if _PETSC_MAJOR_ < 3 || (_PETSC_MAJOR_ == 3 && _PETSC_MINOR_ < 2)
+	#if PETSC_VERSION_LT(3,2,0)
 	if(VerboseSolver())PetscOptionsPrint(stdout);
 	#else
-		#if _PETSC_MINOR_<7
+		#if PETSC_VERSION_LT(3,7,0)
 		if(VerboseSolver())PetscOptionsView(PETSC_VIEWER_STDOUT_WORLD);
 		#else
@@ -78,5 +80,5 @@
 	/*Initial guess */
 	/*Now, check that we are not giving an initial guess to the solver, if we are running a direct solver: */
-	#if _PETSC_MINOR_<7
+	#if PETSC_VERSION_LT(3,7,0)
 	PetscOptionsGetString(PETSC_NULL,"-ksp_type",ksp_type,49,&flg);
 	#else
@@ -107,5 +109,5 @@
 	/*Prepare solver*/
 	KSPCreate(IssmComm::GetComm(),&ksp);
-	#if (_PETSC_MAJOR_==3) && (_PETSC_MINOR_>=5)
+	#if PETSC_VERSION_GE(3,5,0)
 		KSPSetOperators(ksp,Kff,Kff);
 	#else
@@ -117,5 +119,5 @@
 	KSPGetPC(ksp,&pc);
 	if (solver_type==MUMPSPACKAGE_LU){
-		#if (_PETSC_MAJOR_==3) && (_PETSC_MINOR_>=9)
+		#if PETSC_VERSION_GE(3,9,0)
 		PCFactorSetMatSolverType(pc,MATSOLVERMUMPS);
 		#else
@@ -132,5 +134,5 @@
 		/*Set field splits: */
 		KSPGetPC(ksp,&pc);
-		#if _PETSC_MINOR_==1
+		#if (PETSC_VERSION_MAJOR == 3) && (PETSC_VERSION_MINOR == 1)
 		PCFieldSplitSetIS(pc,isv);
 		PCFieldSplitSetIS(pc,isp);
@@ -217,5 +219,5 @@
 
 		/*Create indices sets: */
-		#if _PETSC_MAJOR_ < 3 || (_PETSC_MAJOR_ == 3 && _PETSC_MINOR_ < 2)
+		#if PETSC_VERSION_LT(3,2,0)
 		ISCreateGeneral(IssmComm::GetComm(),pressure_num,pressure_indices,&isp);
 		ISCreateGeneral(IssmComm::GetComm(),velocity_num,velocity_indices,&isv);
Index: /issm/trunk-jpl/src/c/toolkits/petsc/patches/KSPFree.cpp
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/petsc/patches/KSPFree.cpp	(revision 25709)
+++ /issm/trunk-jpl/src/c/toolkits/petsc/patches/KSPFree.cpp	(revision 25710)
@@ -10,4 +10,5 @@
 
 /*Petsc includes: */
+#include <petscversion.h>
 #include <petscmat.h>
 #include <petscvec.h>
@@ -16,5 +17,5 @@
 void KSPFree(KSP* pksp){
 
-	#if _PETSC_MAJOR_ < 3 || (_PETSC_MAJOR_ == 3 && _PETSC_MINOR_ < 2)
+	#if PETSC_VERSION_LT(3,2,0)
 	if(*pksp)KSPDestroy(*pksp);
 	*pksp=NULL;
Index: /issm/trunk-jpl/src/c/toolkits/petsc/patches/MatFree.cpp
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/petsc/patches/MatFree.cpp	(revision 25709)
+++ /issm/trunk-jpl/src/c/toolkits/petsc/patches/MatFree.cpp	(revision 25710)
@@ -10,11 +10,12 @@
 
 /*Petsc includes: */
+#include <petscversion.h>
 #include <petscmat.h>
-#include <petscmat.h>
+#include <petscvec.h>
 #include <petscksp.h>
 
 void MatFree(Mat* pmat){
 
-	#if _PETSC_MAJOR_ < 3 || (_PETSC_MAJOR_ == 3 && _PETSC_MINOR_ < 2)
+	#if PETSC_VERSION_LT(3,2,0)
 	if(*pmat)MatDestroy(*pmat);
 	*pmat=NULL;
Index: /issm/trunk-jpl/src/c/toolkits/petsc/patches/MatMultPatch.cpp
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/petsc/patches/MatMultPatch.cpp	(revision 25709)
+++ /issm/trunk-jpl/src/c/toolkits/petsc/patches/MatMultPatch.cpp	(revision 25710)
@@ -10,4 +10,5 @@
 
 /*Petsc includes: */
+#include <petscversion.h>
 #include <petscmat.h>
 #include <petscvec.h>
@@ -35,5 +36,5 @@
 		VecRelocalize(&X_rel,X,n,comm);
 		MatMult(A,X_rel,AX); ;
-		#if _PETSC_MAJOR_ < 3 || (_PETSC_MAJOR_ == 3 && _PETSC_MINOR_ < 2)
+		#if PETSC_VERSION_LT(3,2,0)
 		VecDestroy(X_rel);
 		#else
Index: /issm/trunk-jpl/src/c/toolkits/petsc/patches/NewMat.cpp
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/petsc/patches/NewMat.cpp	(revision 25709)
+++ /issm/trunk-jpl/src/c/toolkits/petsc/patches/NewMat.cpp	(revision 25710)
@@ -10,4 +10,5 @@
 
 /*Petsc includes: */
+#include <petscversion.h>
 #include <petscmat.h>
 #include <petscvec.h>
@@ -37,5 +38,5 @@
 	o_nz=(int)((double)nnz/(double)M/2.0); //number of non zeros per row/2
 
-	#if _PETSC_MAJOR_ == 3 && _PETSC_MINOR_ > 2
+	#if PETSC_VERSION_GT(3,2,0)
 	MatCreateAIJ(comm,m,n,M,N,d_nz,NULL,o_nz,NULL,&outmatrix); 
 	#else
@@ -65,5 +66,5 @@
 	o_nz=(int)((double)nnz/(double)M/2.0); //number of non zeros per row/2
 
-	#if _PETSC_MAJOR_ == 3 && _PETSC_MINOR_ > 2
+	#if PETSC_VERSION_GT(3,2,0)
 	if(sparsity==1){
 		MatCreateDense(comm,m,n,M,N,NULL,&outmatrix); 
@@ -89,6 +90,6 @@
 	int    d_nz,o_nz;
 
-	#if _PETSC_MAJOR_ >= 3 
-	#if defined(_HAVE_PETSCDEV_) || _PETSC_MINOR_ >=4
+	#if PETSC_VERSION_MAJOR >= 3 
+	#if defined(_HAVE_PETSCDEV_) || PETSC_VERSION_MINOR >=4
 	MatType type;
 	#else
Index: /issm/trunk-jpl/src/c/toolkits/petsc/patches/PetscOptionsDetermineSolverType.cpp
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/petsc/patches/PetscOptionsDetermineSolverType.cpp	(revision 25709)
+++ /issm/trunk-jpl/src/c/toolkits/petsc/patches/PetscOptionsDetermineSolverType.cpp	(revision 25710)
@@ -10,7 +10,8 @@
 
 /*Petsc includes: */
-#include "petscmat.h"
-#include "petscvec.h"
-#include "petscksp.h"
+#include <petscversion.h>
+#include <petscmat.h>
+#include <petscvec.h>
+#include <petscksp.h>
 
 #include "./petscpatches.h"
@@ -21,5 +22,5 @@
 
 	char option[100];
-   #if _PETSC_MAJOR_ < 3 || (_PETSC_MAJOR_ == 3 && _PETSC_MINOR_ < 2)
+	#if PETSC_VERSION_LT(3,2,0)
 	PetscTruth flag;
 	#else
@@ -31,5 +32,5 @@
 
 	/*retrieve mat_type option: */
-	#if (_PETSC_MAJOR_==3) && (_PETSC_MINOR_>=7)
+	#if PETSC_VERSION_GE(3,7,0)
 	PetscOptionsGetString(NULL,PETSC_NULL,"-mat_type",&option[0],100,&flag);
 	#else
@@ -56,6 +57,6 @@
 	}
 
-	#if _PETSC_MAJOR_ >= 3 
-		#if (_PETSC_MINOR_>=7)
+	#if PETSC_VERSION_MAJOR >= 3
+		#if PETSC_VERSION_MINOR >= 7
 		PetscOptionsGetString(NULL,PETSC_NULL,"-pc_factor_mat_solver_package",&option[0],100,&flag);
 		#else
@@ -67,5 +68,5 @@
 	#endif
 
-	#if (_PETSC_MAJOR_==3) && (_PETSC_MINOR_>=7)
+	#if PETSC_VERSION_GE(3,7,0)
 	PetscOptionsGetString(NULL,PETSC_NULL,"-issm_option_solver",&option[0],100,&flag);
 	#else
Index: /issm/trunk-jpl/src/c/toolkits/petsc/patches/VecFree.cpp
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/petsc/patches/VecFree.cpp	(revision 25709)
+++ /issm/trunk-jpl/src/c/toolkits/petsc/patches/VecFree.cpp	(revision 25710)
@@ -10,4 +10,5 @@
 
 /*Petsc includes: */
+#include <petscversion.h>
 #include <petscmat.h>
 #include <petscvec.h>
@@ -16,5 +17,5 @@
 void VecFree(Vec* pvec){
 
-	#if _PETSC_MAJOR_ < 3 || (_PETSC_MAJOR_ == 3 && _PETSC_MINOR_ < 2)
+	#if PETSC_VERSION_LT(3,2,0)
 	if(*pvec)VecDestroy(*pvec);
 	#else
Index: /issm/trunk-jpl/src/wrappers/IssmConfig/IssmConfig.h
===================================================================
--- /issm/trunk-jpl/src/wrappers/IssmConfig/IssmConfig.h	(revision 25709)
+++ /issm/trunk-jpl/src/wrappers/IssmConfig/IssmConfig.h	(revision 25710)
@@ -48,5 +48,5 @@
 #define VALUE pvalue
 #define SVALUE psvalue
-#define WRAPPER(modulename) extern "C" { int  IssmConfigModule(double* pvalue, char** psvalue, char* string)
+#define WRAPPER(modulename) extern "C" { int IssmConfigModule(double* pvalue, char** psvalue, char* string)
 #endif
 
