Index: ../trunk-jpl/m4/issm_options.m4 =================================================================== --- ../trunk-jpl/m4/issm_options.m4 (revision 25709) +++ ../trunk-jpl/m4/issm_options.m4 (revision 25710) @@ -209,7 +209,7 @@ AC_MSG_CHECKING([if system copy of libc has fmemopen]) 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 fi @@ -377,9 +377,9 @@ ;; *) 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 echo "#include " > conftest.cpp @@ -386,9 +386,9 @@ echo "void mexFunction(int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[]){}" >> conftest.cpp ${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 fi @@ -507,7 +507,7 @@ BOOSTINCL="-I${BOOST_ROOT}/include" #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` AC_MSG_RESULT([${BOOST_VERSION_MAJOR}.${BOOST_VERSION_MINOR}]) @@ -547,13 +547,13 @@ dnl 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!]); fi @@ -1207,21 +1207,19 @@ 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]) AC_MSG_RESULT([yes]) @@ -2211,7 +2209,7 @@ AC_SUBST([GRAPHICSLIB]) 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 AC_MSG_ERROR([Xlib (graphics library) provided (${GRAPHICS_LIB}) does not exist!]); @@ -2350,7 +2348,7 @@ AC_DEFINE([_HAVE_GMSH_], [1], [with Gmsh in ISSM src]) 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]) fi Index: ../trunk-jpl/src/c/solutionsequences/solutionsequence_schurcg.cpp =================================================================== --- ../trunk-jpl/src/c/solutionsequences/solutionsequence_schurcg.cpp (revision 25709) +++ ../trunk-jpl/src/c/solutionsequences/solutionsequence_schurcg.cpp (revision 25710) @@ -12,8 +12,8 @@ #include #ifdef _HAVE_PETSC_ +#include - void SchurCGSolver(Vector** puf,Mat Kff, Vec pf, Vec uf0,IS isv,IS isp,Parameters* parameters){/*{{{*/ Mat A, B, BT; /* Saddle point block matrices */ @@ -43,7 +43,7 @@ int precond = 0; - #if _PETSC_MAJOR_ < 3 || (_PETSC_MAJOR_ == 3 && _PETSC_MINOR_ < 2) + #if PETSC_VERSION_LT(3,2,0) PetscTruth flag,flg; #else PetscBool flag,flg; @@ -54,7 +54,7 @@ char pc_type[50]; 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); PetscOptionsGetReal(PETSC_NULL,"-tol",&TOL,NULL); @@ -87,7 +87,7 @@ * where A is the elliptic submatrix, B^T represents the incompressibility, * 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); MatCreateSubMatrix(Kff,isp,isv,MAT_INITIAL_MATRIX,&BT); @@ -98,7 +98,7 @@ #endif /* 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 MatGetSubMatrix(Kff,isp,isp,MAT_INITIAL_MATRIX,&IP); @@ -145,7 +145,7 @@ /* 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 KSPSetOperators(kspu,A,A,DIFFERENT_NONZERO_PATTERN); @@ -263,7 +263,7 @@ /* 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 KSPSetOperators(kspip,IP,IP,DIFFERENT_NONZERO_PATTERN); @@ -538,7 +538,7 @@ * To calculate the residual, only the necessary blocks need to be extracted */ /*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); MatCreateSubMatrix(Kff->pmatrix->matrix,isp,isv,MAT_INITIAL_MATRIX,&BT); @@ -741,7 +741,7 @@ Reduceloadx(pf, Kfs, ys); delete Kfs; /*Create pressure matrix of choice*/ - #if _PETSC_MINOR_<7 + #if PETSC_VERSION_LT(3,7,0) PetscOptionsGetInt(PETSC_NULL,"-schur_pc",&precond,NULL); #else PetscOptionsGetInt(NULL,PETSC_NULL,"-schur_pc",&precond,NULL); @@ -774,7 +774,7 @@ /*Obtain index sets for velocity and pressure components */ IS isv = NULL; IS isp = NULL; - #if _PETSC_MAJOR_==3 + #if PETSC_VERSION_MAJOR==3 /*Make indices out of doftypes: */ if(!(df->pvector->vector))_error_("need doftypes for FS solver!\n"); Index: ../trunk-jpl/src/c/toolkits/petsc/objects/PetscSolver.cpp =================================================================== --- ../trunk-jpl/src/c/toolkits/petsc/objects/PetscSolver.cpp (revision 25709) +++ ../trunk-jpl/src/c/toolkits/petsc/objects/PetscSolver.cpp (revision 25710) @@ -8,6 +8,8 @@ #error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!" #endif +#include + #include "./PetscSolver.h" #include "../../../shared/Numerics/Verbosity.h" #include "../../../shared/MemOps/MemOps.h" @@ -46,7 +48,7 @@ int iteration_number; 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 PetscBool flag,flg; @@ -58,10 +60,10 @@ char ksp_type[50]; /*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 if(VerboseSolver())PetscOptionsView(NULL,PETSC_VIEWER_STDOUT_WORLD); @@ -77,7 +79,7 @@ /*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 PetscOptionsGetString(NULL,PETSC_NULL,"-ksp_type",ksp_type,49,&flg); @@ -106,7 +108,7 @@ /*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 KSPSetOperators(ksp,Kff,Kff,DIFFERENT_NONZERO_PATTERN); @@ -116,7 +118,7 @@ /*Specific solver?: */ 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 PCFactorSetMatSolverPackage(pc,MATSOLVERMUMPS); @@ -131,7 +133,7 @@ /*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); #else @@ -216,7 +218,7 @@ VecRestoreArray(df,&df_local); /*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); #else Index: ../trunk-jpl/src/c/toolkits/petsc/patches/KSPFree.cpp =================================================================== --- ../trunk-jpl/src/c/toolkits/petsc/patches/KSPFree.cpp (revision 25709) +++ ../trunk-jpl/src/c/toolkits/petsc/patches/KSPFree.cpp (revision 25710) @@ -9,6 +9,7 @@ #endif /*Petsc includes: */ +#include #include #include #include @@ -15,7 +16,7 @@ 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; #else Index: ../trunk-jpl/src/c/toolkits/petsc/patches/VecFree.cpp =================================================================== --- ../trunk-jpl/src/c/toolkits/petsc/patches/VecFree.cpp (revision 25709) +++ ../trunk-jpl/src/c/toolkits/petsc/patches/VecFree.cpp (revision 25710) @@ -9,6 +9,7 @@ #endif /*Petsc includes: */ +#include #include #include #include @@ -15,7 +16,7 @@ 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 if(*pvec)VecDestroy(pvec); Index: ../trunk-jpl/src/c/toolkits/petsc/patches/MatFree.cpp =================================================================== --- ../trunk-jpl/src/c/toolkits/petsc/patches/MatFree.cpp (revision 25709) +++ ../trunk-jpl/src/c/toolkits/petsc/patches/MatFree.cpp (revision 25710) @@ -9,13 +9,14 @@ #endif /*Petsc includes: */ +#include #include -#include +#include #include 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; #else Index: ../trunk-jpl/src/c/toolkits/petsc/patches/MatMultPatch.cpp =================================================================== --- ../trunk-jpl/src/c/toolkits/petsc/patches/MatMultPatch.cpp (revision 25709) +++ ../trunk-jpl/src/c/toolkits/petsc/patches/MatMultPatch.cpp (revision 25710) @@ -9,6 +9,7 @@ #endif /*Petsc includes: */ +#include #include #include #include @@ -34,7 +35,7 @@ MatGetLocalSize(A,&m,&n);; 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 VecDestroy(&X_rel); Index: ../trunk-jpl/src/c/toolkits/petsc/patches/PetscOptionsDetermineSolverType.cpp =================================================================== --- ../trunk-jpl/src/c/toolkits/petsc/patches/PetscOptionsDetermineSolverType.cpp (revision 25709) +++ ../trunk-jpl/src/c/toolkits/petsc/patches/PetscOptionsDetermineSolverType.cpp (revision 25710) @@ -9,9 +9,10 @@ #endif /*Petsc includes: */ -#include "petscmat.h" -#include "petscvec.h" -#include "petscksp.h" +#include +#include +#include +#include #include "./petscpatches.h" @@ -20,7 +21,7 @@ void PetscOptionsDetermineSolverType(int* psolver_type){ char option[100]; - #if _PETSC_MAJOR_ < 3 || (_PETSC_MAJOR_ == 3 && _PETSC_MINOR_ < 2) + #if PETSC_VERSION_LT(3,2,0) PetscTruth flag; #else PetscBool flag; @@ -30,7 +31,7 @@ int solver_type=PETSCPACKAGE; /*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 PetscOptionsGetString(PETSC_NULL,"-mat_type",&option[0],100,&flag); @@ -55,8 +56,8 @@ solver_type=SUPERLUDISTPACKAGE; } - #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 PetscOptionsGetString(PETSC_NULL,"-pc_factor_mat_solver_package",&option[0],100,&flag); @@ -66,7 +67,7 @@ } #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 PetscOptionsGetString(PETSC_NULL,"-issm_option_solver",&option[0],100,&flag); Index: ../trunk-jpl/src/c/toolkits/petsc/patches/NewMat.cpp =================================================================== --- ../trunk-jpl/src/c/toolkits/petsc/patches/NewMat.cpp (revision 25709) +++ ../trunk-jpl/src/c/toolkits/petsc/patches/NewMat.cpp (revision 25710) @@ -9,6 +9,7 @@ #endif /*Petsc includes: */ +#include #include #include #include @@ -36,7 +37,7 @@ d_nz=(int)((double)nnz/(double)M/2.0); //number of non zeros per row/2 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 MatCreateMPIAIJ(comm,m,n,M,N,d_nz,NULL,o_nz,NULL,&outmatrix); @@ -64,7 +65,7 @@ d_nz=(int)((double)nnz/(double)M/2.0); //number of non zeros per row/2 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); } @@ -88,8 +89,8 @@ int m,n; 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 const MatType type; Index: ../trunk-jpl/src/c/cores/controltao_core.cpp =================================================================== --- ../trunk-jpl/src/c/cores/controltao_core.cpp (revision 25709) +++ ../trunk-jpl/src/c/cores/controltao_core.cpp (revision 25710) @@ -10,14 +10,17 @@ #include "../solutionsequences/solutionsequences.h" #if defined (_HAVE_TAO_) -#if defined (_HAVE_PETSC_) && (_PETSC_MAJOR_ == 3 && _PETSC_MINOR_ < 5) +#if defined _HAVE_PETSC_ +#include +#if PETSC_VERSION_LT(3,5,0) #include #else #include #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*); #else @@ -37,7 +40,7 @@ int maxsteps,maxiter; 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 Tao tao = 0; @@ -50,7 +53,7 @@ Vector *XU = NULL; /*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); ierr = TaoInitialize(&argc,&args,(char*)0,""); @@ -82,7 +85,7 @@ TaoSetMonitor(tao,IssmMonitor,&user,NULL); 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 TaoSetTolerances(tao,gatol,grtol,gttol); @@ -127,7 +130,7 @@ xDelete(user.J); delete X; TaoDestroy(&tao); - #if defined (_HAVE_PETSC_) && (_PETSC_MAJOR_ == 3 && _PETSC_MINOR_ < 5) + #if PETSC_VERSION_LT(3,5,0) TaoFinalize(); #endif G->pvector->vector = NULL; @@ -134,7 +137,7 @@ delete G; } -#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 int FormFunctionGradient(Tao tao, Vec Xpetsc, IssmDouble *fcn,Vec G,void *uservoid){ @@ -177,7 +180,7 @@ /*Clean-up and return*/ 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 int IssmMonitor(Tao tao, void *userCtx){ Index: ../trunk-jpl/src/wrappers/IssmConfig/IssmConfig.h =================================================================== --- ../trunk-jpl/src/wrappers/IssmConfig/IssmConfig.h (revision 25709) +++ ../trunk-jpl/src/wrappers/IssmConfig/IssmConfig.h (revision 25710) @@ -47,7 +47,7 @@ /* serial output macros: */ #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 /* serial arg counts: */ Index: ../trunk-jpl/externalpackages/petsc/install-3.14-mac.sh =================================================================== --- ../trunk-jpl/externalpackages/petsc/install-3.14-mac.sh (revision 25709) +++ ../trunk-jpl/externalpackages/petsc/install-3.14-mac.sh (revision 25710) @@ -38,7 +38,11 @@ --download-zlib=1 \ --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