Index: /issm/trunk/src/c/io/FetchData.cpp
===================================================================
--- /issm/trunk/src/c/io/FetchData.cpp	(revision 3960)
+++ /issm/trunk/src/c/io/FetchData.cpp	(revision 3961)
@@ -13,12 +13,10 @@
 #include "../include/include.h"
 
+#ifdef _SERIAL_
 /***************** **************** **************** **************** **************** **************** **************** **************** **************** ****************
 													  Serial Fetch Data Routines, all overloaded.
 **************** **************** **************** **************** **************** **************** **************** **************** **************** *****************/
-
-#ifdef _SERIAL_
-
 #include <mex.h>
-
+/*FUNCTION FetchData(DataSet** pdataset,const mxArray* dataref){{{1*/
 void FetchData(DataSet** pdataset,const mxArray* dataref){
 
@@ -53,5 +51,6 @@
 	*pdataset=outdataset;
 }
-
+/*}}}*/
+/*FUNCTION FetchData(double** pmatrix,int* pM,int *pN,const mxArray* dataref){{{1*/
 void FetchData(double** pmatrix,int* pM,int *pN,const mxArray* dataref){
 
@@ -92,5 +91,6 @@
 
 }
-
+/*}}}*/
+/*FUNCTION FetchData(Mat* pmatrix,const mxArray* dataref){{{1*/
 void FetchData(Mat* pmatrix,const mxArray* dataref){
 	
@@ -122,5 +122,6 @@
 	*pmatrix=outmatrix;
 }
-
+/*}}}*/
+/*FUNCTION FetchData(double** pvector,int* pM,const mxArray* dataref){{{1*/
 void FetchData(double** pvector,int* pM,const mxArray* dataref){
 
@@ -148,5 +149,6 @@
 	if (pM)*pM=outvector_rows;
 }
-
+/*}}}*/
+/*FUNCTION FetchData(Vec* pvector,const mxArray* dataref){{{1*/
 void FetchData(Vec* pvector,const mxArray* dataref){
 
@@ -171,5 +173,6 @@
 	*pvector=vector;
 }
-
+/*}}}*/
+/*FUNCTION FetchData(char** pstring,const mxArray* dataref){{{1*/
 void FetchData(char** pstring,const mxArray* dataref){
 
@@ -193,5 +196,6 @@
 	*pstring=outstring;
 }
-
+/*}}}*/
+/*FUNCTION FetchData(double* pscalar,const mxArray* dataref){{{1*/
 void FetchData(double* pscalar,const mxArray* dataref){
 
@@ -209,5 +213,6 @@
 	*pscalar=scalar;
 }
-
+/*}}}*/
+/*FUNCTION FetchData(int* pinteger,const mxArray* dataref){{{1*/
 void FetchData(int* pinteger,const mxArray* dataref){
 
@@ -225,14 +230,29 @@
 	*pinteger=integer;
 }
-
-
+/*}}}*/
+/*FUNCTION FetchData(bool* pboolean,const mxArray* dataref){{{1*/
+void FetchData(bool* pboolean,const mxArray* dataref){
+
+	bool boolean;
+
+	if (!mxIsDouble(dataref)){
+		ISSMERROR("input data_type is not a scalar!");
+	}
+	else{
+		/*Recover the double: */
+		boolean=(bool)mxGetScalar(dataref);
+	}
+
+	/*Assign output pointers:*/
+	*pboolean=boolean;
+}
+/*}}}*/
 #endif
 
 #if defined(_PARALLEL_) && defined(_HAVE_PETSC_)
-
 /***************** **************** **************** **************** **************** **************** **************** **************** **************** ****************
 													  Parallel Fetch Data Routines, all overloaded.
 **************** **************** **************** **************** **************** **************** **************** **************** **************** *****************/
-
+/*FUNCTION FetchData(double** pmatrix, int* pM,int* pN,FILE* fid){{{1*/
 void FetchData(double** pmatrix, int* pM,int* pN,FILE* fid){
 
@@ -276,5 +296,6 @@
 
 }
-
+/*}}}*/
+/*FUNCTION FetchData(char** pstring,FILE* fid){{{1*/
 void FetchData(char** pstring,FILE* fid){
 
@@ -313,6 +334,6 @@
 	*pstring=string;
 }
-
-
+/*}}}*/
+/*FUNCTION FetchData(double* pscalar,FILE* fid){{{1*/
 void FetchData(double* pscalar,FILE* fid){
 
@@ -333,5 +354,6 @@
 		 
 }
-
+/*}}}*/
+/*FUNCTION FetchData(int* pinteger,FILE* fid){{{1*/
 void FetchData(int* pinteger,FILE* fid){
 
@@ -353,5 +375,4 @@
 
 }
-
-
+/*}}}*/
 #endif
Index: /issm/trunk/src/c/io/IoModelFetchData.cpp
===================================================================
--- /issm/trunk/src/c/io/IoModelFetchData.cpp	(revision 3960)
+++ /issm/trunk/src/c/io/IoModelFetchData.cpp	(revision 3961)
@@ -15,5 +15,5 @@
 													  Serial IoModelFetch Data Routines, all overloaded.
 **************** **************** **************** **************** **************** **************** **************** **************** **************** *****************/
-
+/*FUNCTION IoModelFetchData(DataSet** pdataset,ConstDataHandle model_handle,char* data_name){{{1*/
 void IoModelFetchData(DataSet** pdataset,ConstDataHandle model_handle,char* data_name){
 
@@ -21,4 +21,6 @@
 
 }
+/*}}}*/
+/*FUNCTION IoModelFetchData(double** pmatrix,int* pM,int *pN,ConstDataHandle model_handle,char* data_name){{{1*/
 void IoModelFetchData(double** pmatrix,int* pM,int *pN,ConstDataHandle model_handle,char* data_name){
 	
@@ -26,4 +28,6 @@
 
 }
+/*}}}*/
+/*FUNCTION IoModelFetchData(Mat* pmatrix,ConstDataHandle model_handle,char* data_name){{{1*/
 void IoModelFetchData(Mat* pmatrix,ConstDataHandle model_handle,char* data_name){
 	
@@ -31,4 +35,6 @@
 
 }
+/*}}}*/
+/*FUNCTION IoModelFetchData(double** pvector,int* pM,ConstDataHandle model_handle,char* data_name){{{1*/
 void IoModelFetchData(double** pvector,int* pM,ConstDataHandle model_handle,char* data_name){
 	
@@ -36,4 +42,6 @@
 
 }
+/*}}}*/
+/*FUNCTION IoModelFetchData(Vec* pvector,ConstDataHandle model_handle,char* data_name){{{1*/
 void IoModelFetchData(Vec* pvector,ConstDataHandle model_handle,char* data_name){
 	
@@ -41,4 +49,6 @@
 
 }
+/*}}}*/
+/*FUNCTION IoModelFetchData(char** pstring,ConstDataHandle model_handle,char* data_name){{{1*/
 void IoModelFetchData(char** pstring,ConstDataHandle model_handle,char* data_name){
 	
@@ -46,4 +56,6 @@
 
 }
+/*}}}*/
+/*FUNCTION IoModelFetchData(double* pscalar,ConstDataHandle model_handle,char* data_name){{{1*/
 void IoModelFetchData(double* pscalar,ConstDataHandle model_handle,char* data_name){
 	
@@ -51,16 +63,18 @@
 
 }
+/*}}}*/
+/*FUNCTION IoModelFetchData(int* pinteger,ConstDataHandle model_handle,char* data_name){{{1*/
 void IoModelFetchData(int* pinteger,ConstDataHandle model_handle,char* data_name){
 
 	FetchData(pinteger,mxGetAssignedField(model_handle,0,data_name));
 }
+/*}}}*/
 #endif
 
-
-
+#ifdef _PARALLEL_
 /***************** **************** **************** **************** **************** **************** **************** **************** **************** ****************
 													  Parallel IoModelFetch Data Routines, all overloaded.
 **************** **************** **************** **************** **************** **************** **************** **************** **************** *****************/
-#ifdef _PARALLEL_
+/*FUNCTION SetFilePointerToData(ConstDataHandle model_handle,char* data_name){{{1*/
 FILE* SetFilePointerToData(ConstDataHandle model_handle,char* data_name){
 
@@ -125,5 +139,6 @@
 	return fid;
 }
-
+/*}}}*/
+/*FUNCTION IoModelFetchData(double** pmatrix,int* pM,int* pN,ConstDataHandle model_handle,char* data_name){{{1*/
 void  IoModelFetchData(double** pmatrix,int* pM,int* pN,ConstDataHandle model_handle,char* data_name){
 	
@@ -137,4 +152,6 @@
 
 }
+/*}}}*/
+/*FUNCTION IoModelFetchData(char** pstring,ConstDataHandle model_handle,char* data_name){{{1*/
 void  IoModelFetchData(char** pstring,ConstDataHandle model_handle,char* data_name){
 
@@ -147,5 +164,6 @@
 	FetchData(pstring,fid);
 }
-
+/*}}}*/
+/*FUNCTION IoModelFetchData(double* pscalar,ConstDataHandle model_handle,char* data_name){{{1*/
 void  IoModelFetchData(double* pscalar,ConstDataHandle model_handle,char* data_name){
 
@@ -158,5 +176,6 @@
 	FetchData(pscalar,fid);
 }
-
+/*}}}*/
+/*FUNCTION IoModelFetchData(int* pinteger,ConstDataHandle model_handle,char* data_name){{{1*/
 void  IoModelFetchData(int* pinteger,ConstDataHandle model_handle,char* data_name){
 
@@ -169,3 +188,4 @@
 	FetchData(pinteger,fid);
 }
+/*}}}*/
 #endif
Index: /issm/trunk/src/c/io/WriteData.cpp
===================================================================
--- /issm/trunk/src/c/io/WriteData.cpp	(revision 3960)
+++ /issm/trunk/src/c/io/WriteData.cpp	(revision 3961)
@@ -14,10 +14,7 @@
 
 #ifdef _SERIAL_
-
 #include <mex.h>
-
 /*Several prototypes for WriteData, according to type: */
-
-/*DataSet: */
+/*FUNCTION WriteData(mxArray** pdataref,DataSet* dataset){{{1*/
 void WriteData(mxArray** pdataref,DataSet* dataset){
 
@@ -44,5 +41,6 @@
 	
 }
-
+/*}}}*/
+/*FUNCTION WriteData(mxArray** pdataref,Mat matrix){{{1*/
 void WriteData(mxArray** pdataref,Mat matrix){
 		
@@ -60,5 +58,6 @@
 	*pdataref=dataref;
 }
-
+/*}}}*/
+/*FUNCTION WriteData(mxArray** pdataref,double* matrix, int M,int N){{{1*/
 void WriteData(mxArray** pdataref,double* matrix, int M,int N){
 	
@@ -82,6 +81,6 @@
 	*pdataref=dataref;
 }
-
-
+/*}}}*/
+/*FUNCTION WriteData(mxArray** pdataref,Vec vector){{{1*/
 void WriteData(mxArray** pdataref,Vec vector){
 	
@@ -99,6 +98,6 @@
 
 }
-
-
+/*}}}*/
+/*FUNCTION WriteData(mxArray** pdataref,DofVec* dofvec){{{1*/
 void WriteData(mxArray** pdataref,DofVec* dofvec){
 	
@@ -140,5 +139,6 @@
 	*pdataref=dataref;
 }
-
+/*}}}*/
+/*FUNCTION WriteData(mxArray** pdataref,double* vector, int M){{{1*/
 void WriteData(mxArray** pdataref,double* vector, int M){
 	
@@ -159,10 +159,12 @@
 	*pdataref=dataref;
 }
-
+/*}}}*/
+/*FUNCTION WriteData(mxArray** pdataref,double scalar){{{1*/
 void WriteData(mxArray** pdataref,double scalar){
 
 	*pdataref=mxCreateDoubleScalar(scalar);
 }
-
+/*}}}*/
+/*FUNCTION WriteData(mxArray** pdataref,int integer){{{1*/
 void WriteData(mxArray** pdataref,int integer){
 
@@ -170,10 +172,12 @@
 
 }
-
+/*}}}*/
+/*FUNCTION WriteData(mxArray** pdataref,char* string){{{1*/
 void WriteData(mxArray** pdataref,char* string){
 
 		*pdataref=mxCreateString(string);
 }
-
+/*}}}*/
+/*FUNCTION WriteData(mxArray** pbamgmesh_mat,BamgMesh* bm){{{1*/
 void WriteData(mxArray** pbamgmesh_mat,BamgMesh* bm){
 
@@ -228,5 +232,6 @@
 	*pbamgmesh_mat=bamgmesh_mat;
 }
-
+/*}}}*/
+/*FUNCTION WriteData(mxArray** pbamggeom_mat, BamgGeom* bg){{{1*/
 void WriteData(mxArray** pbamggeom_mat, BamgGeom* bg){
 
@@ -272,9 +277,12 @@
 	*pbamggeom_mat=bamggeom_mat;
 }
+/*}}}*/
 
 #else
+/*FUNCTION WriteData(int* pdummy,void* data,char* data_type){{{1*/
 void WriteData(int* pdummy,void* data,char* data_type){
 	
 	/*In parallel mode, WriteData is not used, instead we access the data directly through pointers in the solution sequences. */
 }
+/*}}}*/
 #endif
Index: /issm/trunk/src/c/io/io.h
===================================================================
--- /issm/trunk/src/c/io/io.h	(revision 3960)
+++ /issm/trunk/src/c/io/io.h	(revision 3961)
@@ -40,5 +40,5 @@
 void FetchData(double* pscalar,const mxArray* dataref);
 void FetchData(int* pinteger,const mxArray* dataref);
-
+void FetchData(bool* pbool,const mxArray* dataref);
 
 void IoModelFetchData(DataSet** pdataset,ConstDataHandle model_handle,char* data_name);
