Index: /issm/trunk-jpl/src/m/classes/mesh2d.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/mesh2d.m	(revision 24777)
+++ /issm/trunk-jpl/src/m/classes/mesh2d.m	(revision 24778)
@@ -16,4 +16,5 @@
 		long                        = NaN;
 		epsg                        = 0;
+		proj                        = 0;
 		scale_factor                = NaN;
 
@@ -44,6 +45,8 @@
 					if strcmpi(oldself.hemisphere,'n'),
 						self.epsg=3413;
+						self.proj=epsg2proj(3413);
 					else
 						self.epsg=3031;
+						self.proj=epsg2proj(3031);
 					end
 				end
@@ -131,4 +134,5 @@
 			fielddisplay(self,'long','vertices longitude [degrees]');
 			fielddisplay(self,'epsg','EPSG code (ex: 3413 for UPS Greenland, 3031 for UPS Antarctica)');
+			fielddisplay(self,'proj','PROJ.4 compatible projection string');
 			fielddisplay(self,'scale_factor','Projection correction for volume, area, etc. computation)');
 		end % }}}
@@ -172,4 +176,5 @@
 			writejs1Darray(fid,[modelname '.mesh.long'],self.long);
 			writejsdouble(fid,[modelname '.mesh.epsg'],self.epsg);
+			writejsdouble(fid,[modelname '.mesh.proj'],self.proj);
 			writejsdouble(fid,[modelname '.mesh.scale_factor'],self.scale_factor);
 			writejs1Darray(fid,[modelname '.mesh.vertexonboundary'],self.vertexonboundary);
Index: /issm/trunk-jpl/src/m/classes/mesh2dvertical.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/mesh2dvertical.m	(revision 24777)
+++ /issm/trunk-jpl/src/m/classes/mesh2dvertical.m	(revision 24778)
@@ -16,4 +16,5 @@
 		long                        = NaN;
 		epsg                        = NaN;
+		proj                        = '';
 		scale_factor                = NaN;
 
@@ -43,6 +44,8 @@
 					if strcmpi(oldself.hemisphere,'n'),
 						self.epsg=3413;
+						self.proj=epsg2proj(3413);
 					else
 						self.epsg=3031;
+						self.proj=epsg2proj(3031);
 					end
 				end
@@ -129,4 +132,5 @@
 			fielddisplay(self,'long','vertices longitude [degrees]');
 			fielddisplay(self,'epsg','EPSG code (ex: 3413 for UPS Greenland, 3031 for UPS Antarctica)');
+			fielddisplay(self,'proj','PROJ.4 compatible projection string');
 			fielddisplay(self,'scale_factor','Projection correction for volume, area, etc. computation)');
 		end % }}}
Index: /issm/trunk-jpl/src/m/classes/mesh3dprisms.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/mesh3dprisms.m	(revision 24777)
+++ /issm/trunk-jpl/src/m/classes/mesh3dprisms.m	(revision 24778)
@@ -17,4 +17,5 @@
 		long                        = NaN;
 		epsg                        = 0;
+		proj                        = '';
 		scale_factor                = NaN;
 
@@ -54,6 +55,8 @@
 					if strcmpi(oldself.hemisphere,'n'),
 						self.epsg=3413;
+						self.proj=epsg2proj(3413);
 					else
 						self.epsg=3031;
+						self.proj=epsg2proj(3031);
 					end
 				end
@@ -166,4 +169,5 @@
 			fielddisplay(self,'long','vertices longitude [degrees]');
 			fielddisplay(self,'epsg','EPSG code (ex: 3413 for UPS Greenland, 3031 for UPS Antarctica)');
+			fielddisplay(self,'proj','PROJ.4 compatible projection string');
 			fielddisplay(self,'scale_factor','Projection correction for volume, area, etc. computation)');
 		end % }}}
@@ -216,4 +220,5 @@
 			writejs1Darray(fid,[modelname '.mesh.long'],self.long);
 			writejs1Darray(fid,[modelname '.mesh.epsg'],self.epsg);
+			writejs1Darray(fid,[modelname '.mesh.proj'],self.proj);
 			writejs1Darray(fid,[modelname '.mesh.vertexonbase'],self.vertexonbase);
 			writejs1Darray(fid,[modelname '.mesh.vertexonsurface'],self.vertexonsurface);
Index: /issm/trunk-jpl/src/m/classes/mesh3dsurface.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/mesh3dsurface.m	(revision 24777)
+++ /issm/trunk-jpl/src/m/classes/mesh3dsurface.m	(revision 24778)
@@ -40,12 +40,12 @@
 				%Assign property values from struct
 				self=structtoobj(mesh3dsurface(),oldself);
-				if isfield(oldself,'hemisphere'),
-					disp('md.mesh.hemisphere has been automatically converted to EPSG code');
-					if strcmpi(oldself.hemisphere,'n'),
-						self.epsg=3413;
-					else
-						self.epsg=3031;
-					end
-				end
+				%if isfield(oldself,'hemisphere'), %NOTE: not ever needed, epsg is not a field anymore.
+				%	disp('md.mesh.hemisphere has been automatically converted to EPSG code');
+				%	if strcmpi(oldself.hemisphere,'n'),
+				%		self.epsg=3413;
+				%	else
+				%		self.epsg=3031;
+				%	end
+				%end
 			end
 
Index: /issm/trunk-jpl/src/m/classes/mesh3dtetras.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/mesh3dtetras.m	(revision 24777)
+++ /issm/trunk-jpl/src/m/classes/mesh3dtetras.m	(revision 24778)
@@ -17,4 +17,5 @@
 		long                        = NaN;
 		epsg                        = 0;
+		proj                        = '';
 		scale_factor                = NaN;
 
@@ -54,6 +55,8 @@
 					if strcmpi(oldself.hemisphere,'n'),
 						self.epsg=3413;
+						self.proj=epsg2proj(3413);
 					else
 						self.epsg=3031;
+						self.proj=epsg2proj(3031);
 					end
 				end
@@ -155,4 +158,5 @@
 			fielddisplay(self,'long','vertices longitude [degrees]');
 			fielddisplay(self,'epsg','EPSG code (ex: 3413 for UPS Greenland, 3031 for UPS Antarctica)');
+			fielddisplay(self,'proj','PROJ.4 compatible projection string');
 			fielddisplay(self,'scale_factor','Projection correction for volume, area, etc. computation)');
 		end % }}}
