Index: /issm/trunk-jpl/src/c/solutionsequences/solutionsequence_schurcg.cpp
===================================================================
--- /issm/trunk-jpl/src/c/solutionsequences/solutionsequence_schurcg.cpp	(revision 27903)
+++ /issm/trunk-jpl/src/c/solutionsequences/solutionsequence_schurcg.cpp	(revision 27904)
@@ -58,5 +58,5 @@
 	PetscOptionsGetInt(PETSC_NULL,"-schur_pc",&precond,NULL);
 	PetscOptionsGetInt(PETSC_NULL,"-max_iter",&maxiter,NULL);
-	#else
+	#elif PETSC_VERSION_LT(3,19,0)
 	PetscOptionsGetString(NULL,PETSC_NULL,"-ksp_type",ksp_type,49,&flg);
 	PetscOptionsGetString(NULL,PETSC_NULL,"-pc_type",pc_type,49,&flg);
@@ -65,4 +65,11 @@
 	PetscOptionsGetInt(NULL,PETSC_NULL,"-schur_pc",&precond,NULL);
 	PetscOptionsGetInt(NULL,PETSC_NULL,"-max_iter",&maxiter,NULL);
+	#else
+	PetscOptionsGetString(NULL,PETSC_NULLPTR,"-ksp_type",ksp_type,49,&flg);
+	PetscOptionsGetString(NULL,PETSC_NULLPTR,"-pc_type",pc_type,49,&flg);
+	PetscOptionsGetReal(NULL,PETSC_NULLPTR,"-tol",&TOL,NULL);
+	PetscOptionsGetReal(NULL,PETSC_NULLPTR,"-elltol",&ELLTOL,NULL);
+	PetscOptionsGetInt(NULL,PETSC_NULLPTR,"-schur_pc",&precond,NULL);
+	PetscOptionsGetInt(NULL,PETSC_NULLPTR,"-max_iter",&maxiter,NULL);
 	#endif
 
@@ -689,6 +696,8 @@
 		#if PETSC_VERSION_LT(3,7,0)
 		PetscOptionsGetInt(PETSC_NULL,"-schur_pc",&precond,NULL);
+		#elif PETSC_VERSION_LT(3,19,0)
+		PetscOptionsGetInt(NULL,PETSC_NULL,"-schur_pc",&precond,NULL);
 		#else
-		PetscOptionsGetInt(NULL,PETSC_NULL,"-schur_pc",&precond,NULL);
+		PetscOptionsGetInt(NULL,PETSC_NULLPTR,"-schur_pc",&precond,NULL);
 		#endif
 
Index: /issm/trunk-jpl/src/c/toolkits/petsc/objects/PetscSolver.cpp
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/petsc/objects/PetscSolver.cpp	(revision 27903)
+++ /issm/trunk-jpl/src/c/toolkits/petsc/objects/PetscSolver.cpp	(revision 27904)
@@ -80,6 +80,8 @@
 	#if PETSC_VERSION_LT(3,7,0)
 	PetscOptionsGetString(PETSC_NULL,"-ksp_type",ksp_type,49,&flg);
-	#else
+	#elif PETSC_VERSION_LT(3,19,0)
 	PetscOptionsGetString(NULL,PETSC_NULL,"-ksp_type",ksp_type,49,&flg);
+	#else
+	PetscOptionsGetString(NULL,PETSC_NULLPTR,"-ksp_type",ksp_type,49,&flg);
 	#endif
 	if(flg!=PETSC_TRUE) _error_("could not find option -ksp_type, maybe you are not using the right toolkit?");
@@ -132,11 +134,16 @@
 		/*Set field splits: */
 		KSPGetPC(ksp,&pc);
-		#if (PETSC_VERSION_MAJOR == 3) && (PETSC_VERSION_MINOR == 1)
+
+		#if PETSC_VERSION_LT(3,1,0)
 		PCFieldSplitSetIS(pc,isv);
 		PCFieldSplitSetIS(pc,isp);
-		#else
+		#elif PETSC_VERSION_LT(3,19,0)
 		PCFieldSplitSetIS(pc,PETSC_NULL,isv);
 		PCFieldSplitSetIS(pc,PETSC_NULL,isp);
-		#endif
+		#else
+		PCFieldSplitSetIS(pc,PETSC_NULLPTR,isv);
+		PCFieldSplitSetIS(pc,PETSC_NULLPTR,isp);
+		#endif
+
 
 	}
Index: /issm/trunk-jpl/src/c/toolkits/petsc/patches/PetscOptionsDetermineSolverType.cpp
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/petsc/patches/PetscOptionsDetermineSolverType.cpp	(revision 27903)
+++ /issm/trunk-jpl/src/c/toolkits/petsc/patches/PetscOptionsDetermineSolverType.cpp	(revision 27904)
@@ -29,8 +29,10 @@
 
 	/*retrieve mat_type option: */
-	#if PETSC_VERSION_GE(3,7,0)
+	#if PETSC_VERSION_LT(3,7,0)
 	PetscOptionsGetString(NULL,PETSC_NULL,"-mat_type",&option[0],100,&flag);
+	#elif PETSC_VERSION_LT(3,19,0)
+	PetscOptionsGetString(PETSC_NULL,"-mat_type",&option[0],100,&flag);
 	#else
-	PetscOptionsGetString(PETSC_NULL,"-mat_type",&option[0],100,&flag);
+	PetscOptionsGetString(NULL,PETSC_NULLPTR,"-mat_type",&option[0],100,&flag);
 	#endif
 
@@ -54,23 +56,22 @@
 	}
 
-	#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);
-		#endif
-	if (strcmp(option,"mumps")==0){
-		solver_type=MUMPSPACKAGE_LU;
-	}
-	#endif
+	#if PETSC_VERSION_LT(3,7,0)
+	PetscOptionsGetString(PETSC_NULL,"-pc_factor_mat_solver_package",&option[0],100,&flag);
+   #elif PETSC_VERSION_LT(3,19,0)
+	PetscOptionsGetString(NULL,PETSC_NULL,"-pc_factor_mat_solver_package",&option[0],100,&flag);
+   #else
+	PetscOptionsGetString(NULL,PETSC_NULLPTR,"-pc_factor_mat_solver_package",&option[0],100,&flag);
+   #endif
 
-	#if PETSC_VERSION_GE(3,7,0)
+	#if PETSC_VERSION_LT(3,7,0)
+	PetscOptionsGetString(PETSC_NULL,"-issm_option_solver",&option[0],100,&flag);
+   #elif PETSC_VERSION_LT(3,19,0)
 	PetscOptionsGetString(NULL,PETSC_NULL,"-issm_option_solver",&option[0],100,&flag);
-	#else
-	PetscOptionsGetString(PETSC_NULL,"-issm_option_solver",&option[0],100,&flag);
-	#endif
-	if(strcmp(option,"FS")==0 || strcmp(option,"stokes")==0){
-		solver_type=FSSolverEnum;
-	}
+   #else
+	PetscOptionsGetString(NULL,PETSC_NULLPTR,"-issm_option_solver",&option[0],100,&flag);
+   #endif
+
+	if(strcmp(option,"mumps")==0) solver_type=MUMPSPACKAGE_LU;
+	if(strcmp(option,"FS")==0 || strcmp(option,"stokes")==0) solver_type=FSSolverEnum;
 
 	*psolver_type=solver_type;
