Index: /issm/trunk-jpl/src/c/classes/Params/DoubleMatArrayParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Params/DoubleMatArrayParam.cpp	(revision 19221)
+++ /issm/trunk-jpl/src/c/classes/Params/DoubleMatArrayParam.cpp	(revision 19222)
@@ -122,4 +122,22 @@
 }
 /*}}}*/
+void DoubleMatArrayParam::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+
+	MARSHALLING_ENUM(DoubleMatArrayParamEnum);
+
+	MARSHALLING(enum_type);
+	MARSHALLING(M);
+	MARSHALLING_DYNAMIC(mdim_array,int,M);
+	MARSHALLING_DYNAMIC(ndim_array,int,M);
+
+	if(marshall_direction==MARSHALLING_BACKWARD)if(M)array=xNew<IssmDouble*>(M);
+
+	for(int i=0;i<M;i++){
+		MARSHALLING_DYNAMIC(array[i],IssmDouble,mdim_array[i]*ndim_array[i]);
+	}
+		
+
+}
+/*}}}*/
 
 /*DoubleMatArrayParam virtual functions definitions: */
@@ -211,2 +229,3 @@
 }
 /*}}}*/
+		
Index: /issm/trunk-jpl/src/c/classes/Params/DoubleMatArrayParam.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Params/DoubleMatArrayParam.h	(revision 19221)
+++ /issm/trunk-jpl/src/c/classes/Params/DoubleMatArrayParam.h	(revision 19222)
@@ -39,5 +39,5 @@
 		int   ObjectEnum();
 		Object* copy();
-		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
 		/*}}}*/
 		/*Param vritual function definitions: {{{*/
Index: /issm/trunk-jpl/src/c/classes/Params/FileParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Params/FileParam.cpp	(revision 19221)
+++ /issm/trunk-jpl/src/c/classes/Params/FileParam.cpp	(revision 19222)
@@ -55,2 +55,11 @@
 }
 /*}}}*/
+void FileParam::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+
+	MARSHALLING_ENUM(FileParamEnum);
+	MARSHALLING(value);
+
+	if(marshall_direction==MARSHALLING_BACKWARD)value=NULL; //meaningless file pointer!
+
+}
+/*}}}*/
Index: /issm/trunk-jpl/src/c/classes/Params/FileParam.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Params/FileParam.h	(revision 19221)
+++ /issm/trunk-jpl/src/c/classes/Params/FileParam.h	(revision 19222)
@@ -36,5 +36,5 @@
 		int   ObjectEnum();
 		Object* copy();
-		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
 		/*}}}*/
 		/*Param vritual function definitions: {{{*/
Index: /issm/trunk-jpl/src/c/classes/Params/IntMatParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Params/IntMatParam.cpp	(revision 19221)
+++ /issm/trunk-jpl/src/c/classes/Params/IntMatParam.cpp	(revision 19222)
@@ -73,4 +73,15 @@
 }
 /*}}}*/
+void IntMatParam::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+
+	MARSHALLING_ENUM(IntMatParamEnum);
+
+	MARSHALLING(enum_type);
+	MARSHALLING(M);
+	MARSHALLING(N);
+	MARSHALLING_DYNAMIC(value,int,M*N);
+}
+/*}}}*/
+
 
 /*IntMatParam virtual functions definitions: */
Index: /issm/trunk-jpl/src/c/classes/Params/IntMatParam.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Params/IntMatParam.h	(revision 19221)
+++ /issm/trunk-jpl/src/c/classes/Params/IntMatParam.h	(revision 19222)
@@ -38,5 +38,5 @@
 		int   ObjectEnum();
 		Object* copy();
-		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
 		/*}}}*/
 		/*Param vritual function definitions: {{{*/
Index: /issm/trunk-jpl/src/c/classes/Params/IntVecParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Params/IntVecParam.cpp	(revision 19221)
+++ /issm/trunk-jpl/src/c/classes/Params/IntVecParam.cpp	(revision 19222)
@@ -85,4 +85,14 @@
 }
 /*}}}*/
+void IntVecParam::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+
+	MARSHALLING_ENUM(IntVecParamEnum);
+
+	MARSHALLING(enum_type);
+	MARSHALLING(M);
+	MARSHALLING_DYNAMIC(values,int,M);
+
+}
+/*}}}*/
 
 /*IntVecParam virtual functions definitions: */
Index: /issm/trunk-jpl/src/c/classes/Params/IntVecParam.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Params/IntVecParam.h	(revision 19221)
+++ /issm/trunk-jpl/src/c/classes/Params/IntVecParam.h	(revision 19222)
@@ -38,5 +38,5 @@
 		int   ObjectEnum();
 		Object* copy();
-		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
 		/*}}}*/
 		/*Param virtual functions definitions: {{{*/
Index: /issm/trunk-jpl/src/c/classes/Params/StringParam.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Params/StringParam.cpp	(revision 19221)
+++ /issm/trunk-jpl/src/c/classes/Params/StringParam.cpp	(revision 19222)
@@ -56,4 +56,18 @@
 }
 /*}}}*/
+void StringParam::Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/
+
+	int size;
+
+	if(marshall_direction==MARSHALLING_FORWARD || marshall_direction == MARSHALLING_SIZE)size=strlen(value)+1;
+	
+	MARSHALLING_ENUM(StringParamEnum);
+	MARSHALLING(enum_type);
+	MARSHALLING(size);
+	MARSHALLING_DYNAMIC(value,char,size);
+
+
+}
+/*}}}*/
 
 /*StringParam virtual functions definitions: */
Index: /issm/trunk-jpl/src/c/classes/Params/StringParam.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Params/StringParam.h	(revision 19221)
+++ /issm/trunk-jpl/src/c/classes/Params/StringParam.h	(revision 19222)
@@ -37,5 +37,5 @@
 		int   ObjectEnum();
 		Object* copy();
-		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
+		void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction);
 		/*}}}*/
 		/*Param vritual function definitions: {{{*/
