Index: /issm/trunk-jpl/src/m/solvers/bcgsasmoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/bcgsasmoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/bcgsasmoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=bcgsasmoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','bcgs');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'asm');
+end
Index: /issm/trunk-jpl/src/m/solvers/bcgsbjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/bcgsbjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/bcgsbjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=bcgsbjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','bcgs');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'bjacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/bcgsgamgoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/bcgsgamgoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/bcgsgamgoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=bcgsgamgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','bcgs');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'gamg');
+end
Index: /issm/trunk-jpl/src/m/solvers/bcgsgasmoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/bcgsgasmoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/bcgsgasmoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=bcgsgasmoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','bcgs');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'gasm');
+end
Index: /issm/trunk-jpl/src/m/solvers/bcgshypreoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/bcgshypreoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/bcgshypreoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=bcgshypreoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','bcgs');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'hypre');
+end
Index: /issm/trunk-jpl/src/m/solvers/bcgsjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/bcgsjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/bcgsjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=bcgsjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','bcgs');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'jacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/bcgslasmoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/bcgslasmoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/bcgslasmoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=bcgslasmoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','bcgsl');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'asm');
+end
Index: /issm/trunk-jpl/src/m/solvers/bcgslbjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/bcgslbjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/bcgslbjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=bcgslbjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','bcgsl');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'bjacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/bcgslgamgoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/bcgslgamgoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/bcgslgamgoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=bcgslgamgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','bcgsl');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'gamg');
+end
Index: /issm/trunk-jpl/src/m/solvers/bcgslgasmoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/bcgslgasmoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/bcgslgasmoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=bcgslgasmoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','bcgsl');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'gasm');
+end
Index: /issm/trunk-jpl/src/m/solvers/bcgslhypreoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/bcgslhypreoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/bcgslhypreoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=bcgslhypreoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','bcgsl');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'hypre');
+end
Index: /issm/trunk-jpl/src/m/solvers/bcgsljacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/bcgsljacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/bcgsljacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=bcgsljacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','bcgsl');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'jacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/bcgslmgoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/bcgslmgoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/bcgslmgoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=bcgslmgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','bcgsl');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'mg');
+end
Index: /issm/trunk-jpl/src/m/solvers/bcgslpbjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/bcgslpbjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/bcgslpbjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=bcgslpbjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','bcgsl');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'pbjacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/bcgslsoroptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/bcgslsoroptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/bcgslsoroptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=bcgslsoroptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','bcgsl');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'sor');
+end
Index: /issm/trunk-jpl/src/m/solvers/bcgsmgoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/bcgsmgoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/bcgsmgoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=bcgsmgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','bcgs');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'mg');
+end
Index: /issm/trunk-jpl/src/m/solvers/bcgspbjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/bcgspbjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/bcgspbjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=bcgspbjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','bcgs');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'pbjacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/bcgssoroptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/bcgssoroptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/bcgssoroptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=bcgssoroptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','bcgs');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'sor');
+end
Index: /issm/trunk-jpl/src/m/solvers/bicgasmoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/bicgasmoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/bicgasmoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=bicgasmoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','bicg');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'asm');
+end
Index: /issm/trunk-jpl/src/m/solvers/bicgbjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/bicgbjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/bicgbjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=bicgbjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','bicg');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'bjacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/bicggamgoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/bicggamgoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/bicggamgoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=bicggamgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','bicg');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'gamg');
+end
Index: /issm/trunk-jpl/src/m/solvers/bicggasmoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/bicggasmoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/bicggasmoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=bicggasmoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','bicg');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'gasm');
+end
Index: /issm/trunk-jpl/src/m/solvers/bicghypreoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/bicghypreoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/bicghypreoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=bicghypreoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','bicg');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'hypre');
+end
Index: /issm/trunk-jpl/src/m/solvers/bicgjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/bicgjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/bicgjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=bicgjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','bicg');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'jacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/bicgmgoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/bicgmgoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/bicgmgoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=bicgmgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','bicg');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'mg');
+end
Index: /issm/trunk-jpl/src/m/solvers/bicgpbjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/bicgpbjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/bicgpbjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=bicgpbjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','bicg');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'pbjacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/bicgsoroptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/bicgsoroptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/bicgsoroptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=bicgsoroptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','bicg');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'sor');
+end
Index: /issm/trunk-jpl/src/m/solvers/cgasmoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/cgasmoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/cgasmoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=cgasmoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','cg');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'asm');
+end
Index: /issm/trunk-jpl/src/m/solvers/cgbjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/cgbjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/cgbjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=cgbjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','cg');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'bjacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/cggamgoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/cggamgoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/cggamgoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=cggamgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','cg');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'gamg');
+end
Index: /issm/trunk-jpl/src/m/solvers/cggasmoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/cggasmoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/cggasmoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=cggasmoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','cg');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'gasm');
+end
Index: /issm/trunk-jpl/src/m/solvers/cghypreoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/cghypreoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/cghypreoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=cghypreoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','cg');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'hypre');
+end
Index: /issm/trunk-jpl/src/m/solvers/cgjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/cgjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/cgjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=cgjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','cg');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'jacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/cgmgoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/cgmgoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/cgmgoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=cgmgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','cg');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'mg');
+end
Index: /issm/trunk-jpl/src/m/solvers/cgneasmoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/cgneasmoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/cgneasmoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=cgneasmoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','cgne');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'asm');
+end
Index: /issm/trunk-jpl/src/m/solvers/cgnebjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/cgnebjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/cgnebjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=cgnebjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','cgne');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'bjacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/cgnegamgoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/cgnegamgoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/cgnegamgoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=cgnegamgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','cgne');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'gamg');
+end
Index: /issm/trunk-jpl/src/m/solvers/cgnegasmoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/cgnegasmoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/cgnegasmoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=cgnegasmoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','cgne');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'gasm');
+end
Index: /issm/trunk-jpl/src/m/solvers/cgnehypreoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/cgnehypreoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/cgnehypreoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=cgnehypreoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','cgne');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'hypre');
+end
Index: /issm/trunk-jpl/src/m/solvers/cgnejacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/cgnejacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/cgnejacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=cgnejacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','cgne');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'jacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/cgnemgoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/cgnemgoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/cgnemgoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=cgnemgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','cgne');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'mg');
+end
Index: /issm/trunk-jpl/src/m/solvers/cgnepbjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/cgnepbjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/cgnepbjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=cgnepbjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','cgne');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'pbjacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/cgnesoroptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/cgnesoroptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/cgnesoroptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=cgnesoroptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','cgne');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'sor');
+end
Index: /issm/trunk-jpl/src/m/solvers/cgpbjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/cgpbjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/cgpbjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=cgpbjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','cg');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'pbjacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/cgsasmoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/cgsasmoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/cgsasmoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=cgsasmoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','cgs');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'asm');
+end
Index: /issm/trunk-jpl/src/m/solvers/cgsbjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/cgsbjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/cgsbjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=cgsbjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','cgs');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'bjacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/cgsgamgoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/cgsgamgoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/cgsgamgoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=cgsgamgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','cgs');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'gamg');
+end
Index: /issm/trunk-jpl/src/m/solvers/cgsgasmoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/cgsgasmoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/cgsgasmoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=cgsgasmoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','cgs');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'gasm');
+end
Index: /issm/trunk-jpl/src/m/solvers/cgshypreoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/cgshypreoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/cgshypreoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=cgshypreoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','cgs');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'hypre');
+end
Index: /issm/trunk-jpl/src/m/solvers/cgsjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/cgsjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/cgsjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=cgsjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','cgs');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'jacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/cgsmgoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/cgsmgoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/cgsmgoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=cgsmgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','cgs');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'mg');
+end
Index: /issm/trunk-jpl/src/m/solvers/cgsoroptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/cgsoroptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/cgsoroptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=cgsoroptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','cg');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'sor');
+end
Index: /issm/trunk-jpl/src/m/solvers/cgspbjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/cgspbjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/cgspbjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=cgspbjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','cgs');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'pbjacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/cgssoroptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/cgssoroptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/cgssoroptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=cgssoroptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','cgs');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'sor');
+end
Index: /issm/trunk-jpl/src/m/solvers/conditionnumberoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/conditionnumberoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/conditionnumberoptions.m	(revision 16901)
@@ -0,0 +1,22 @@
+function cn=conditionnumberoptions(varargin)
+%MULTIGRIDOPTIONS - use Multigrid 
+%
+%   Usage:
+%      options=mgoptions;
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+cn=struct();
+cn..toolkit='petsc';
+
+%default  options
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+	cn.mat_type=getfieldvalue(options,'mat_type','mpiaij');
+	cn.ksp_type=getfieldvalue(options,'ksp_type','gmres');
+	cn.pc_type=getfieldvalue(options,'pc_type','none');
+	cn.ksp_monitor_singular_value=getfieldvalue(options,'ksp_monitor_singular_value','');
+	cn.ksp_gmres_restart=getfieldvalue(options,'ksp_gmres_restart',1000);
+	cn.info=getfieldvalue(options,'info','');
+	cn.log_summary=getfieldvalue(options,'log_summary','');
+end
Index: /issm/trunk-jpl/src/m/solvers/crasmoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/crasmoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/crasmoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=crasmoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','cr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'asm');
+end
Index: /issm/trunk-jpl/src/m/solvers/crbjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/crbjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/crbjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=crbjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','cr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'bjacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/crgamgoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/crgamgoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/crgamgoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=crgamgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','cr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'gamg');
+end
Index: /issm/trunk-jpl/src/m/solvers/crgasmoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/crgasmoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/crgasmoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=crgasmoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','cr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'gasm');
+end
Index: /issm/trunk-jpl/src/m/solvers/crhypreoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/crhypreoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/crhypreoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=crhypreoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','cr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'hypre');
+end
Index: /issm/trunk-jpl/src/m/solvers/crjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/crjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/crjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=crjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','cr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'jacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/crmgoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/crmgoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/crmgoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=crmgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','cr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'mg');
+end
Index: /issm/trunk-jpl/src/m/solvers/crpbjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/crpbjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/crpbjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=crpbjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','cr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'pbjacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/crsoroptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/crsoroptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/crsoroptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=crsoroptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','cr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'sor');
+end
Index: /issm/trunk-jpl/src/m/solvers/dgmresasmoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/dgmresasmoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/dgmresasmoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=dgmresasmoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','dgmres');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'asm');
+end
Index: /issm/trunk-jpl/src/m/solvers/dgmresbjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/dgmresbjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/dgmresbjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=dgmresbjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','dgmres');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'bjacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/dgmresgamgoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/dgmresgamgoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/dgmresgamgoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=dgmresgamgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','dgmres');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'gamg');
+end
Index: /issm/trunk-jpl/src/m/solvers/dgmresgasmoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/dgmresgasmoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/dgmresgasmoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=dgmresgasmoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','dgmres');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'gasm');
+end
Index: /issm/trunk-jpl/src/m/solvers/dgmreshypreoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/dgmreshypreoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/dgmreshypreoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=dgmreshypreoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','dgmres');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'hypre');
+end
Index: /issm/trunk-jpl/src/m/solvers/dgmresjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/dgmresjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/dgmresjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=dgmresjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','dgmres');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'jacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/dgmresmgoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/dgmresmgoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/dgmresmgoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=dgmresmgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','dgmres');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'mg');
+end
Index: /issm/trunk-jpl/src/m/solvers/dgmrespbjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/dgmrespbjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/dgmrespbjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=dgmrespbjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','dgmres');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'pbjacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/dgmressoroptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/dgmressoroptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/dgmressoroptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=dgmressoroptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','dgmres');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'sor');
+end
Index: /issm/trunk-jpl/src/m/solvers/fgmresasmoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/fgmresasmoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/fgmresasmoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=fgmresasmoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','fgmres');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'asm');
+end
Index: /issm/trunk-jpl/src/m/solvers/fgmresbjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/fgmresbjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/fgmresbjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=fgmresbjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','fgmres');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'bjacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/fgmresgamgoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/fgmresgamgoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/fgmresgamgoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=fgmresgamgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','fgmres');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'gamg');
+end
Index: /issm/trunk-jpl/src/m/solvers/fgmresgasmoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/fgmresgasmoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/fgmresgasmoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=fgmresgasmoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','fgmres');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'gasm');
+end
Index: /issm/trunk-jpl/src/m/solvers/fgmreshypreoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/fgmreshypreoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/fgmreshypreoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=fgmreshypreoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','fgmres');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'hypre');
+end
Index: /issm/trunk-jpl/src/m/solvers/fgmresjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/fgmresjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/fgmresjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=fgmresjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','fgmres');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'jacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/fgmresmgoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/fgmresmgoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/fgmresmgoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=fgmresmgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','fgmres');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'mg');
+end
Index: /issm/trunk-jpl/src/m/solvers/fgmrespbjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/fgmrespbjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/fgmrespbjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=fgmrespbjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','fgmres');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'pbjacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/fgmressoroptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/fgmressoroptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/fgmressoroptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=fgmressoroptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','fgmres');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'sor');
+end
Index: /issm/trunk-jpl/src/m/solvers/gcrasmoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/gcrasmoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/gcrasmoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=gcrasmoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','gcr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'asm');
+end
Index: /issm/trunk-jpl/src/m/solvers/gcrbjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/gcrbjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/gcrbjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=gcrbjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','gcr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'bjacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/gcrgamgoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/gcrgamgoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/gcrgamgoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=gcrgamgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','gcr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'gamg');
+end
Index: /issm/trunk-jpl/src/m/solvers/gcrgasmoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/gcrgasmoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/gcrgasmoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=gcrgasmoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','gcr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'gasm');
+end
Index: /issm/trunk-jpl/src/m/solvers/gcrhypreoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/gcrhypreoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/gcrhypreoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=gcrhypreoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','gcr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'hypre');
+end
Index: /issm/trunk-jpl/src/m/solvers/gcrjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/gcrjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/gcrjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=gcrjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','gcr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'jacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/gcrmgoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/gcrmgoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/gcrmgoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=gcrmgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','gcr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'mg');
+end
Index: /issm/trunk-jpl/src/m/solvers/gcrpbjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/gcrpbjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/gcrpbjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=gcrpbjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','gcr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'pbjacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/gcrsoroptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/gcrsoroptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/gcrsoroptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=gcrsoroptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','gcr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'sor');
+end
Index: /issm/trunk-jpl/src/m/solvers/gltrasmoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/gltrasmoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/gltrasmoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=gltrasmoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','gltr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'asm');
+end
Index: /issm/trunk-jpl/src/m/solvers/gltrbjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/gltrbjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/gltrbjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=gltrbjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','gltr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'bjacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/gltrgamgoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/gltrgamgoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/gltrgamgoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=gltrgamgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','gltr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'gamg');
+end
Index: /issm/trunk-jpl/src/m/solvers/gltrgasmoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/gltrgasmoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/gltrgasmoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=gltrgasmoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','gltr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'gasm');
+end
Index: /issm/trunk-jpl/src/m/solvers/gltrhypreoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/gltrhypreoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/gltrhypreoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=gltrhypreoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','gltr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'hypre');
+end
Index: /issm/trunk-jpl/src/m/solvers/gltrjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/gltrjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/gltrjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=gltrjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','gltr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'jacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/gltrmgoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/gltrmgoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/gltrmgoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=gltrmgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','gltr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'mg');
+end
Index: /issm/trunk-jpl/src/m/solvers/gltrpbjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/gltrpbjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/gltrpbjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=gltrpbjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','gltr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'pbjacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/gltrsoroptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/gltrsoroptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/gltrsoroptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=gltrsoroptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','gltr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'sor');
+end
Index: /issm/trunk-jpl/src/m/solvers/gmresasmoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/gmresasmoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/gmresasmoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=gmresasmoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','gmres');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'asm');
+end
Index: /issm/trunk-jpl/src/m/solvers/gmresbjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/gmresbjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/gmresbjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=gmresbjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','gmres');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'bjacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/gmresgamgoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/gmresgamgoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/gmresgamgoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=gmresgamgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','gmres');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'gamg');
+end
Index: /issm/trunk-jpl/src/m/solvers/gmresgasmoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/gmresgasmoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/gmresgasmoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=gmresgasmoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','gmres');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'gasm');
+end
Index: /issm/trunk-jpl/src/m/solvers/gmreshypreoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/gmreshypreoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/gmreshypreoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=gmreshypreoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','gmres');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'hypre');
+end
Index: /issm/trunk-jpl/src/m/solvers/gmresjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/gmresjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/gmresjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=gmresjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','gmres');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'jacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/gmresmgoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/gmresmgoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/gmresmgoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=gmresmgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','gmres');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'mg');
+end
Index: /issm/trunk-jpl/src/m/solvers/gmrespbjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/gmrespbjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/gmrespbjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=gmrespbjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','gmres');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'pbjacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/gmressoroptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/gmressoroptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/gmressoroptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=gmressoroptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','gmres');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'sor');
+end
Index: /issm/trunk-jpl/src/m/solvers/ibcgsasmoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/ibcgsasmoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/ibcgsasmoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=ibcgsasmoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','ibcgs');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'asm');
+end
Index: /issm/trunk-jpl/src/m/solvers/ibcgsbjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/ibcgsbjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/ibcgsbjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=ibcgsbjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','ibcgs');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'bjacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/ibcgsgamgoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/ibcgsgamgoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/ibcgsgamgoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=ibcgsgamgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','ibcgs');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'gamg');
+end
Index: /issm/trunk-jpl/src/m/solvers/ibcgsgasmoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/ibcgsgasmoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/ibcgsgasmoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=ibcgsgasmoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','ibcgs');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'gasm');
+end
Index: /issm/trunk-jpl/src/m/solvers/ibcgshypreoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/ibcgshypreoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/ibcgshypreoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=ibcgshypreoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','ibcgs');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'hypre');
+end
Index: /issm/trunk-jpl/src/m/solvers/ibcgsjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/ibcgsjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/ibcgsjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=ibcgsjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','ibcgs');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'jacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/ibcgsmgoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/ibcgsmgoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/ibcgsmgoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=ibcgsmgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','ibcgs');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'mg');
+end
Index: /issm/trunk-jpl/src/m/solvers/ibcgspbjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/ibcgspbjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/ibcgspbjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=ibcgspbjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','ibcgs');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'pbjacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/ibcgssoroptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/ibcgssoroptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/ibcgssoroptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=ibcgssoroptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','ibcgs');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'sor');
+end
Index: /issm/trunk-jpl/src/m/solvers/lcdasmoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/lcdasmoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/lcdasmoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=lcdasmoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','lcd');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'asm');
+end
Index: /issm/trunk-jpl/src/m/solvers/lcdbjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/lcdbjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/lcdbjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=lcdbjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','lcd');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'bjacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/lcdgamgoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/lcdgamgoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/lcdgamgoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=lcdgamgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','lcd');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'gamg');
+end
Index: /issm/trunk-jpl/src/m/solvers/lcdgasmoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/lcdgasmoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/lcdgasmoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=lcdgasmoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','lcd');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'gasm');
+end
Index: /issm/trunk-jpl/src/m/solvers/lcdhypreoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/lcdhypreoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/lcdhypreoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=lcdhypreoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','lcd');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'hypre');
+end
Index: /issm/trunk-jpl/src/m/solvers/lcdjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/lcdjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/lcdjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=lcdjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','lcd');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'jacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/lcdmgoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/lcdmgoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/lcdmgoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=lcdmgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','lcd');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'mg');
+end
Index: /issm/trunk-jpl/src/m/solvers/lcdpbjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/lcdpbjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/lcdpbjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=lcdpbjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','lcd');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'pbjacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/lcdsoroptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/lcdsoroptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/lcdsoroptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=lcdsoroptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','lcd');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'sor');
+end
Index: /issm/trunk-jpl/src/m/solvers/lsqrasmoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/lsqrasmoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/lsqrasmoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=lsqrasmoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','lsqr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'asm');
+end
Index: /issm/trunk-jpl/src/m/solvers/lsqrbjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/lsqrbjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/lsqrbjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=lsqrbjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','lsqr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'bjacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/lsqrgamgoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/lsqrgamgoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/lsqrgamgoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=lsqrgamgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','lsqr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'gamg');
+end
Index: /issm/trunk-jpl/src/m/solvers/lsqrgasmoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/lsqrgasmoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/lsqrgasmoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=lsqrgasmoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','lsqr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'gasm');
+end
Index: /issm/trunk-jpl/src/m/solvers/lsqrhypreoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/lsqrhypreoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/lsqrhypreoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=lsqrhypreoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','lsqr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'hypre');
+end
Index: /issm/trunk-jpl/src/m/solvers/lsqrjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/lsqrjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/lsqrjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=lsqrjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','lsqr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'jacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/lsqrmgoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/lsqrmgoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/lsqrmgoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=lsqrmgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','lsqr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'mg');
+end
Index: /issm/trunk-jpl/src/m/solvers/lsqrpbjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/lsqrpbjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/lsqrpbjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=lsqrpbjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','lsqr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'pbjacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/lsqrsoroptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/lsqrsoroptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/lsqrsoroptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=lsqrsoroptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','lsqr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'sor');
+end
Index: /issm/trunk-jpl/src/m/solvers/minresasmoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/minresasmoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/minresasmoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=minresasmoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','minres');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'asm');
+end
Index: /issm/trunk-jpl/src/m/solvers/minresbjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/minresbjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/minresbjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=minresbjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','minres');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'bjacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/minresgamgoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/minresgamgoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/minresgamgoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=minresgamgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','minres');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'gamg');
+end
Index: /issm/trunk-jpl/src/m/solvers/minresgasmoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/minresgasmoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/minresgasmoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=minresgasmoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','minres');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'gasm');
+end
Index: /issm/trunk-jpl/src/m/solvers/minreshypreoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/minreshypreoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/minreshypreoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=minreshypreoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','minres');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'hypre');
+end
Index: /issm/trunk-jpl/src/m/solvers/minresjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/minresjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/minresjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=minresjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','minres');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'jacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/minresmgoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/minresmgoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/minresmgoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=minresmgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','minres');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'mg');
+end
Index: /issm/trunk-jpl/src/m/solvers/minrespbjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/minrespbjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/minrespbjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=minrespbjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','minres');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'pbjacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/minressoroptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/minressoroptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/minressoroptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=minressoroptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','minres');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'sor');
+end
Index: /issm/trunk-jpl/src/m/solvers/richardsonasmoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/richardsonasmoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/richardsonasmoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=richardsonasmoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','richardson');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'asm');
+end
Index: /issm/trunk-jpl/src/m/solvers/richardsonbjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/richardsonbjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/richardsonbjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=richardsonbjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','richardson');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'bjacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/richardsongamgoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/richardsongamgoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/richardsongamgoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=richardsongamgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','richardson');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'gamg');
+end
Index: /issm/trunk-jpl/src/m/solvers/richardsongasmoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/richardsongasmoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/richardsongasmoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=richardsongasmoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','richardson');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'gasm');
+end
Index: /issm/trunk-jpl/src/m/solvers/richardsonhypreoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/richardsonhypreoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/richardsonhypreoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=richardsonhypreoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','richardson');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'hypre');
+end
Index: /issm/trunk-jpl/src/m/solvers/richardsonjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/richardsonjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/richardsonjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=richardsonjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','richardson');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'jacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/richardsonmgoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/richardsonmgoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/richardsonmgoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=richardsonmgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','richardson');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'mg');
+end
Index: /issm/trunk-jpl/src/m/solvers/richardsonpbjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/richardsonpbjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/richardsonpbjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=richardsonpbjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','richardson');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'pbjacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/richardsonsoroptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/richardsonsoroptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/richardsonsoroptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=richardsonsoroptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','richardson');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'sor');
+end
Index: /issm/trunk-jpl/src/m/solvers/stcgasmoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/stcgasmoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/stcgasmoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=stcgasmoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','stcg');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'asm');
+end
Index: /issm/trunk-jpl/src/m/solvers/stcgbjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/stcgbjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/stcgbjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=stcgbjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','stcg');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'bjacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/stcggamgoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/stcggamgoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/stcggamgoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=stcggamgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','stcg');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'gamg');
+end
Index: /issm/trunk-jpl/src/m/solvers/stcggasmoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/stcggasmoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/stcggasmoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=stcggasmoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','stcg');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'gasm');
+end
Index: /issm/trunk-jpl/src/m/solvers/stcghypreoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/stcghypreoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/stcghypreoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=stcghypreoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','stcg');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'hypre');
+end
Index: /issm/trunk-jpl/src/m/solvers/stcgjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/stcgjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/stcgjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=stcgjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','stcg');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'jacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/stcgmgoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/stcgmgoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/stcgmgoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=stcgmgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','stcg');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'mg');
+end
Index: /issm/trunk-jpl/src/m/solvers/stcgpbjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/stcgpbjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/stcgpbjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=stcgpbjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','stcg');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'pbjacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/stcgsoroptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/stcgsoroptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/stcgsoroptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=stcgsoroptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','stcg');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'sor');
+end
Index: /issm/trunk-jpl/src/m/solvers/symmlqasmoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/symmlqasmoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/symmlqasmoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=symmlqasmoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','symmlq');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'asm');
+end
Index: /issm/trunk-jpl/src/m/solvers/symmlqbjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/symmlqbjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/symmlqbjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=symmlqbjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','symmlq');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'bjacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/symmlqgamgoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/symmlqgamgoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/symmlqgamgoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=symmlqgamgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','symmlq');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'gamg');
+end
Index: /issm/trunk-jpl/src/m/solvers/symmlqgasmoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/symmlqgasmoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/symmlqgasmoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=symmlqgasmoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','symmlq');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'gasm');
+end
Index: /issm/trunk-jpl/src/m/solvers/symmlqhypreoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/symmlqhypreoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/symmlqhypreoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=symmlqhypreoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','symmlq');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'hypre');
+end
Index: /issm/trunk-jpl/src/m/solvers/symmlqjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/symmlqjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/symmlqjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=symmlqjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','symmlq');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'jacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/symmlqmgoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/symmlqmgoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/symmlqmgoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=symmlqmgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','symmlq');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'mg');
+end
Index: /issm/trunk-jpl/src/m/solvers/symmlqpbjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/symmlqpbjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/symmlqpbjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=symmlqpbjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','symmlq');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'pbjacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/symmlqsoroptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/symmlqsoroptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/symmlqsoroptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=symmlqsoroptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','symmlq');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'sor');
+end
Index: /issm/trunk-jpl/src/m/solvers/tfqmrasmoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/tfqmrasmoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/tfqmrasmoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=tfqmrasmoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','tfqmr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'asm');
+end
Index: /issm/trunk-jpl/src/m/solvers/tfqmrbjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/tfqmrbjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/tfqmrbjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=tfqmrbjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','tfqmr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'bjacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/tfqmrgamgoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/tfqmrgamgoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/tfqmrgamgoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=tfqmrgamgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','tfqmr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'gamg');
+end
Index: /issm/trunk-jpl/src/m/solvers/tfqmrgasmoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/tfqmrgasmoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/tfqmrgasmoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=tfqmrgasmoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','tfqmr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'gasm');
+end
Index: /issm/trunk-jpl/src/m/solvers/tfqmrhypreoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/tfqmrhypreoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/tfqmrhypreoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=tfqmrhypreoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','tfqmr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'hypre');
+end
Index: /issm/trunk-jpl/src/m/solvers/tfqmrjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/tfqmrjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/tfqmrjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=tfqmrjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','tfqmr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'jacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/tfqmrmgoptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/tfqmrmgoptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/tfqmrmgoptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=tfqmrmgoptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','tfqmr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'mg');
+end
Index: /issm/trunk-jpl/src/m/solvers/tfqmrpbjacobioptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/tfqmrpbjacobioptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/tfqmrpbjacobioptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=tfqmrpbjacobioptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','tfqmr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'pbjacobi');
+end
Index: /issm/trunk-jpl/src/m/solvers/tfqmrsoroptions.m
===================================================================
--- /issm/trunk-jpl/src/m/solvers/tfqmrsoroptions.m	(revision 16901)
+++ /issm/trunk-jpl/src/m/solvers/tfqmrsoroptions.m	(revision 16901)
@@ -0,0 +1,14 @@
+function solverOptions=tfqmrsoroptions(varargin)
+
+%retrieve options provided in varargin
+options=pairoptions(varargin{:});
+solverOptions=struct();
+solverOptions.toolkit='petsc';
+
+
+PETSC_VERSION=petscversion();
+if PETSC_VERSION==3,
+   solverOptions.mat_type=getfieldvalue(options, 'mat_type','mpiaij');
+   solverOptions.ksp_type=getfieldvalue(options, 'ksp_type','tfqmr');
+   solverOptions.pc_type=getfieldvalue(options, 'pc_type',  'sor');
+end
