Index: /issm/trunk-jpl/src/m/classes/model/planet.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/model/planet.m	(revision 12979)
+++ /issm/trunk-jpl/src/m/classes/model/planet.m	(revision 12980)
@@ -14,35 +14,57 @@
 	 end
 	 methods
-		function md=planetmesh(md,varargin) % {{{
-		%PLANETMESH: build 2d shell mesh
-		%
-		% Usage: md=planetmesh(md,'method','mixed','radius',6378000,'angleresol',1);
-		%        md=planetmesh(md,'method','tria','shape','iso','radius',6378000,'refinement',5);
-		%
+		 function md = planet(varargin) % {{{
 
-		%recover options
-		options=pairoptions(varargin{:});
+			 switch nargin
+				 case 0
+					 md=setdefaultparameters(md);
+				 otherwise
+					 error('planet constructor error message: 0 of 1 argument only in input.');
+				 end
+		 end
+		 %}}}
+		 function md = setdefaultparameters(md) % {{{
 
-		method=getfieldvalue(options,'method','mixed');
-		
-		if strcmpi(method,'mixed'),
-			%recover radius and angleresol: 
-			radius=getfieldvalue(options,'radius',6378000); %earth radius as default
-			angleresol=getfieldvalue(options,'angleresol',10); %10 degree resolution
-			
-			%call mixed mesh 
-			md=planetmixedmesh(md,radius,angleresol);
-		else
-			%recover radius, shape and level of refinmenet
-			radius=getfieldvalue(options,'radius',6378000); %earth radius as default
-			refinement=getfieldvalue(options,'refinement',5); %refine 5 times
-			shape=getfieldvalue(options,'shape','ico'); 
-			
-			%call triangular mesh
-			md=planettrimesh(md,shape,radius,refinement);
-		end
-
-		end
-		% }}}
+			 %initialize subclasses
+			 md.mesh             = planetmesh();
+			 md.mask             = mask();
+			 md.constants        = constants();
+			 md.geometry         = geometry();
+			 md.initialization   = initialization();
+			 md.surfaceforcings  = surfaceforcings();
+			 md.basalforcings    = basalforcings();
+			 md.friction         = friction();
+			 md.rifts            = rifts();
+			 md.timestepping     = timestepping();
+			 md.groundingline    = groundingline();
+			 md.materials        = materials();
+			 md.flowequation     = flowequation();
+			 md.debug            = debug();
+			 md.verbose          = verbose('solution',true,'qmu',true,'control',true);
+			 md.settings         = settings();
+			 md.solver           = solver();
+			 if ismumps,
+				 md.solver           = addoptions(md.solver,DiagnosticVertAnalysisEnum,mumpsoptions);
+			 else
+				 md.solver           = addoptions(md.solver,DiagnosticVertAnalysisEnum,iluasmoptions);
+			 end
+			 md.cluster          = generic();
+			 md.balancethickness = balancethickness();
+			 md.diagnostic       = diagnostic();
+			 md.hydrology        = hydrology();
+			 md.prognostic       = prognostic();
+			 md.thermal          = thermal();
+			 md.steadystate      = steadystate();
+			 md.transient        = transient();
+			 md.autodiff         = autodiff();
+			 md.flaim            = flaim();
+			 md.inversion        = inversion();
+			 md.qmu              = qmu();
+			 md.radaroverlay     = radaroverlay();
+			 md.results          = struct();
+			 md.miscellaneous    = miscellaneous();
+			 md.private          = private();
+		 end
+		 %}}}
 	 end
  end
Index: /issm/trunk-jpl/src/m/classes/planetmesh.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/planetmesh.m	(revision 12979)
+++ /issm/trunk-jpl/src/m/classes/planetmesh.m	(revision 12980)
@@ -6,4 +6,7 @@
 classdef planetmesh
 	properties (SetAccess=public) 
+		x                           = NaN;
+		y                           = NaN;
+		z                           = NaN;
 		r                           = NaN;
 		theta                       = NaN;
@@ -42,4 +45,7 @@
 		function md = checkconsistency(obj,md,solution,analyses) % {{{
 
+			md = checkfield(md,'planetmesh.x','NaN',1,'size',[md.planetmesh.numberofvertices 1]);
+			md = checkfield(md,'planetmesh.y','NaN',1,'size',[md.planetmesh.numberofvertices 1]);
+			md = checkfield(md,'planetmesh.z','NaN',1,'size',[md.planetmesh.numberofvertices 1]);
 			md = checkfield(md,'planetmesh.r','NaN',1,'size',[md.planetmesh.numberofvertices 1]);
 			md = checkfield(md,'planetmesh.theta','NaN',1,'size',[md.planetmesh.numberofvertices 1]);
@@ -87,4 +93,7 @@
 			fielddisplay(obj,'numberofvertices','number of vertices');
 			fielddisplay(obj,'elements','index into (x,y,z), coordinates of the vertices');
+			fielddisplay(obj,'x','vertices x coordinate');
+			fielddisplay(obj,'y','vertices y coordinate');
+			fielddisplay(obj,'z','vertices z coordinate');
 			fielddisplay(obj,'r','vertices r coordinate');
 			fielddisplay(obj,'theta','vertices theta coordinate');
@@ -101,4 +110,7 @@
 		end % }}}
 		function marshall(obj,fid) % {{{
+			WriteData(fid,'object',obj,'fieldname','x','format','DoubleMat','mattype',1);
+			WriteData(fid,'object',obj,'fieldname','y','format','DoubleMat','mattype',1);
+			WriteData(fid,'object',obj,'fieldname','z','format','DoubleMat','mattype',1);
 			WriteData(fid,'object',obj,'fieldname','r','format','DoubleMat','mattype',1);
 			WriteData(fid,'object',obj,'fieldname','theta','format','DoubleMat','mattype',1);
