Index: /issm/trunk/src/c/ModelProcessorx/Balancedthickness/CreateParametersBalancedthickness.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Balancedthickness/CreateParametersBalancedthickness.cpp	(revision 3459)
+++ /issm/trunk/src/c/ModelProcessorx/Balancedthickness/CreateParametersBalancedthickness.cpp	(revision 3460)
@@ -1,3 +1,2 @@
-/*!\file: CreateParametersBalancedthickness.cpp
  * \brief driver for creating parameters dataset, for prognostic analysis.
  */ 
@@ -16,17 +15,5 @@
 	int      count;
 	int      i;
-	int      dim;
-
-	double* vx=NULL;
-	double* vy=NULL;
-	double* vz=NULL;
 	double* u_g=NULL;
-	double* pressure=NULL;
-	double* temperature=NULL;
-	double* thickness=NULL;
-	double* surface=NULL;
-	double* bed=NULL;
-	double* accumulation=NULL;
-	double* melting=NULL;
 
 	/*recover parameters : */
@@ -36,13 +23,13 @@
 
 	/*Get vx and vy: */
-	IoModelFetchData(&vx,NULL,NULL,iomodel_handle,"vx");
-	IoModelFetchData(&vy,NULL,NULL,iomodel_handle,"vy");
-	IoModelFetchData(&vz,NULL,NULL,iomodel_handle,"vz");
+	IoModelFetchData(&iomodel->vx,NULL,NULL,iomodel_handle,"vx");
+	IoModelFetchData(&iomodel->vy,NULL,NULL,iomodel_handle,"vy");
+	IoModelFetchData(&iomodel->vz,NULL,NULL,iomodel_handle,"vz");
 
 	u_g=(double*)xcalloc(iomodel->numberofvertices*3,sizeof(double));
 
-	if(vx) for(i=0;i<iomodel->numberofvertices;i++)u_g[3*i+0]=vx[i]/iomodel->yts;
-	if(vy) for(i=0;i<iomodel->numberofvertices;i++)u_g[3*i+1]=vy[i]/iomodel->yts;
-	if(vz) for(i=0;i<iomodel->numberofvertices;i++)u_g[3*i+2]=vz[i]/iomodel->yts;
+	if(iomodel->vx) for(i=0;i<iomodel->numberofvertices;i++)u_g[3*i+0]=iomodel->vx[i]/iomodel->yts;
+	if(iomodel->vy) for(i=0;i<iomodel->numberofvertices;i++)u_g[3*i+1]=iomodel->vy[i]/iomodel->yts;
+	if(iomodel->vz) for(i=0;i<iomodel->numberofvertices;i++)u_g[3*i+2]=iomodel->vz[i]/iomodel->yts;
 
 	count++;
@@ -52,34 +39,34 @@
 
 
-	xfree((void**)&vx);
-	xfree((void**)&vy);
-	xfree((void**)&vz);
+	xfree((void**)&iomodel->vx);
+	xfree((void**)&iomodel->vy);
+	xfree((void**)&iomodel->vz);
 	xfree((void**)&u_g);
 
 	/*Get melting: */
-	IoModelFetchData(&melting,NULL,NULL,iomodel_handle,"melting");
-	if(melting) for(i=0;i<iomodel->numberofvertices;i++)melting[i]=melting[i]/iomodel->yts;
+	IoModelFetchData(&iomodel->melting,NULL,NULL,iomodel_handle,"melting");
+	if(iomodel->melting) for(i=0;i<iomodel->numberofvertices;i++)iomodel->melting[i]=iomodel->melting[i]/iomodel->yts;
 	
 	count++;
 	param= new Param(count,"m_g",DOUBLEVEC);
-	if(melting) param->SetDoubleVec(melting,iomodel->numberofvertices,1);
+	if(iomodel->melting) param->SetDoubleVec(melting,iomodel->numberofvertices,1);
 	else param->SetDoubleVec(melting,0,1);
 	parameters->AddObject(param);
 
 	/*Free melting: */
-	xfree((void**)&melting);
+	xfree((void**)&iomodel->melting);
 
 	/*Get accumulation: */
-	IoModelFetchData(&accumulation,NULL,NULL,iomodel_handle,"accumulation");
-	if(accumulation) for(i=0;i<iomodel->numberofvertices;i++)accumulation[i]=accumulation[i]/iomodel->yts;
+	IoModelFetchData(&iomodel->accumulation,NULL,NULL,iomodel_handle,"accumulation");
+	if(iomodel->accumulation) for(i=0;i<iomodel->numberofvertices;i++)iomodel->accumulation[i]=iomodel->accumulation[i]/iomodel->yts;
 	
 	count++;
 	param= new Param(count,"a_g",DOUBLEVEC);
-	if(accumulation) param->SetDoubleVec(accumulation,iomodel->numberofvertices,1);
-	else param->SetDoubleVec(accumulation,0,0);
+	if(iomodel->accumulation) param->SetDoubleVec(iomodel->accumulation,iomodel->numberofvertices,1);
+	else param->SetDoubleVec(iomodel->accumulation,0,0);
 	parameters->AddObject(param);
 
 	/*Free accumulation: */
-	xfree((void**)&accumulation);
+	xfree((void**)&iomodel->accumulation);
 
 	/*Assign output pointer: */
Index: /issm/trunk/src/c/ModelProcessorx/Balancedvelocities/CreateParametersBalancedvelocities.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Balancedvelocities/CreateParametersBalancedvelocities.cpp	(revision 3459)
+++ /issm/trunk/src/c/ModelProcessorx/Balancedvelocities/CreateParametersBalancedvelocities.cpp	(revision 3460)
@@ -16,17 +16,5 @@
 	int      count;
 	int      i;
-	int      dim;
-
-	double* vx=NULL;
-	double* vy=NULL;
-	double* vz=NULL;
 	double* u_g=NULL;
-	double* pressure=NULL;
-	double* temperature=NULL;
-	double* thickness=NULL;
-	double* surface=NULL;
-	double* bed=NULL;
-	double* accumulation=NULL;
-	double* melting=NULL;
 
 	/*recover parameters : */
@@ -36,13 +24,13 @@
 
 	/*Get vx and vy: */
-	IoModelFetchData(&vx,NULL,NULL,iomodel_handle,"vx");
-	IoModelFetchData(&vy,NULL,NULL,iomodel_handle,"vy");
-	IoModelFetchData(&vz,NULL,NULL,iomodel_handle,"vz");
+	IoModelFetchData(&iomodel->vx,NULL,NULL,iomodel_handle,"vx");
+	IoModelFetchData(&iomodel->vy,NULL,NULL,iomodel_handle,"vy");
+	IoModelFetchData(&iomodel->vz,NULL,NULL,iomodel_handle,"vz");
 
 	u_g=(double*)xcalloc(iomodel->numberofvertices*3,sizeof(double));
 
-	if(vx) for(i=0;i<iomodel->numberofvertices;i++)u_g[3*i+0]=vx[i]/iomodel->yts;
-	if(vy) for(i=0;i<iomodel->numberofvertices;i++)u_g[3*i+1]=vy[i]/iomodel->yts;
-	if(vz) for(i=0;i<iomodel->numberofvertices;i++)u_g[3*i+2]=vz[i]/iomodel->yts;
+	if(iomodel->vx) for(i=0;i<iomodel->numberofvertices;i++)u_g[3*i+0]=iomodel->vx[i]/iomodel->yts;
+	if(iomodel->vy) for(i=0;i<iomodel->numberofvertices;i++)u_g[3*i+1]=iomodel->vy[i]/iomodel->yts;
+	if(iomodel->vz) for(i=0;i<iomodel->numberofvertices;i++)u_g[3*i+2]=iomodel->vz[i]/iomodel->yts;
 
 	count++;
@@ -51,47 +39,46 @@
 	parameters->AddObject(param);
 
-
-	xfree((void**)&vx);
-	xfree((void**)&vy);
-	xfree((void**)&vz);
+	xfree((void**)&iomodel->vx);
+	xfree((void**)&iomodel->vy);
+	xfree((void**)&iomodel->vz);
 	xfree((void**)&u_g);
 
 	/*Get thickness: */
-	IoModelFetchData(&thickness,NULL,NULL,iomodel_handle,"thickness");
+	IoModelFetchData(&iomodel->thickness,NULL,NULL,iomodel_handle,"thickness");
 	
 	count++;
 	param= new Param(count,"h_g",DOUBLEVEC);
-	if(thickness) param->SetDoubleVec(thickness,iomodel->numberofvertices,1);
-	else param->SetDoubleVec(thickness,0,0);
+	if(iomodel->thickness) param->SetDoubleVec(iomodel->thickness,iomodel->numberofvertices,1);
+	else param->SetDoubleVec(iomodel->thickness,0,0);
 	parameters->AddObject(param);
 
 	/*Free thickness: */
-	xfree((void**)&thickness);
+	xfree((void**)&iomodel->thickness);
 
 	/*Get melting: */
-	IoModelFetchData(&melting,NULL,NULL,iomodel_handle,"melting");
-	if(melting) for(i=0;i<iomodel->numberofvertices;i++)melting[i]=melting[i]/iomodel->yts;
+	IoModelFetchData(&iomodel->melting,NULL,NULL,iomodel_handle,"melting");
+	if(iomodel->melting) for(i=0;i<iomodel->numberofvertices;i++)iomodel->melting[i]=iomodel->melting[i]/iomodel->yts;
 	
 	count++;
 	param= new Param(count,"m_g",DOUBLEVEC);
-	if(melting) param->SetDoubleVec(melting,iomodel->numberofvertices,1);
-	else param->SetDoubleVec(melting,0,1);
+	if(iomodel->melting) param->SetDoubleVec(iomodel->melting,iomodel->numberofvertices,1);
+	else param->SetDoubleVec(iomodel->melting,0,1);
 	parameters->AddObject(param);
 
 	/*Free melting: */
-	xfree((void**)&melting);
+	xfree((void**)&iomodel->melting);
 
 	/*Get accumulation: */
-	IoModelFetchData(&accumulation,NULL,NULL,iomodel_handle,"accumulation");
-	if(accumulation) for(i=0;i<iomodel->numberofvertices;i++)accumulation[i]=accumulation[i]/iomodel->yts;
+	IoModelFetchData(&iomodel->accumulation,NULL,NULL,iomodel_handle,"accumulation");
+	if(iomodel->accumulation) for(i=0;i<iomodel->numberofvertices;i++)iomodel->accumulation[i]=iomodel->accumulation[i]/iomodel->yts;
 	
 	count++;
 	param= new Param(count,"a_g",DOUBLEVEC);
-	if(accumulation) param->SetDoubleVec(accumulation,iomodel->numberofvertices,1);
-	else param->SetDoubleVec(accumulation,0,0);
+	if(iomodel->accumulation) param->SetDoubleVec(iomodel->accumulation,iomodel->numberofvertices,1);
+	else param->SetDoubleVec(iomodel->accumulation,0,0);
 	parameters->AddObject(param);
 
 	/*Free accumulation: */
-	xfree((void**)&accumulation);
+	xfree((void**)&iomodel->accumulation);
 
 
Index: /issm/trunk/src/c/ModelProcessorx/Melting/CreateParametersMelting.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Melting/CreateParametersMelting.cpp	(revision 3459)
+++ /issm/trunk/src/c/ModelProcessorx/Melting/CreateParametersMelting.cpp	(revision 3460)
@@ -17,6 +17,4 @@
 	int i;
 
-	double* melting=NULL;
-
 	/*recover parameters : */
 	parameters=*pparameters;
@@ -31,20 +29,20 @@
 
 		/*Get melting: */
-		IoModelFetchData(&melting,NULL,NULL,iomodel_handle,"melting");
-		if(melting) {
-			for(i=0;i<iomodel->numberofvertices;i++)melting[i]=melting[i]/iomodel->yts;   //m/s instead of m/yr
+		IoModelFetchData(&iomodel->melting,NULL,NULL,iomodel_handle,"melting");
+		if(iomodel->melting) {
+			for(i=0;i<iomodel->numberofvertices;i++)iomodel->melting[i]=iomodel->melting[i]/iomodel->yts;   //m/s instead of m/yr
 		}
 		else{
-			for(i=0;i<iomodel->numberofvertices;i++)melting[i]=0;
+			for(i=0;i<iomodel->numberofvertices;i++)iomodel->melting[i]=0;
 		}
 
 		count++;
 		param= new Param(count,"m_g",DOUBLEVEC);
-		if(melting) param->SetDoubleVec(melting,iomodel->numberofvertices);
-		else param->SetDoubleVec(melting,0);
+		if(iomodel->melting) param->SetDoubleVec(iomodel->melting,iomodel->numberofvertices);
+		else param->SetDoubleVec(iomodel->melting,0);
 		parameters->AddObject(param);
 
 		/*Free melting: */
-		xfree((void**)&melting);
+		xfree((void**)&iomodel->melting);
 	}
 
Index: /issm/trunk/src/c/ModelProcessorx/Prognostic/CreateParametersPrognostic.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Prognostic/CreateParametersPrognostic.cpp	(revision 3459)
+++ /issm/trunk/src/c/ModelProcessorx/Prognostic/CreateParametersPrognostic.cpp	(revision 3460)
@@ -18,16 +18,5 @@
 	int      i;
 	int      dim;
-
-	double* vx=NULL;
-	double* vy=NULL;
-	double* vz=NULL;
 	double* u_g=NULL;
-	double* pressure=NULL;
-	double* temperature=NULL;
-	double* thickness=NULL;
-	double* surface=NULL;
-	double* bed=NULL;
-	double* accumulation=NULL;
-	double* melting=NULL;
 
 	/*recover parameters : */
@@ -37,13 +26,13 @@
 
 	/*Get vx and vy: */
-	IoModelFetchData(&vx,NULL,NULL,iomodel_handle,"vx");
-	IoModelFetchData(&vy,NULL,NULL,iomodel_handle,"vy");
-	IoModelFetchData(&vz,NULL,NULL,iomodel_handle,"vz");
+	IoModelFetchData(&iomodel->vx,NULL,NULL,iomodel_handle,"vx");
+	IoModelFetchData(&iomodel->vy,NULL,NULL,iomodel_handle,"vy");
+	IoModelFetchData(&iomodel->vz,NULL,NULL,iomodel_handle,"vz");
 
 	u_g=(double*)xcalloc(iomodel->numberofvertices*3,sizeof(double));
 
-	if(vx) for(i=0;i<iomodel->numberofvertices;i++)u_g[3*i+0]=vx[i]/iomodel->yts;
-	if(vy) for(i=0;i<iomodel->numberofvertices;i++)u_g[3*i+1]=vy[i]/iomodel->yts;
-	if(vz) for(i=0;i<iomodel->numberofvertices;i++)u_g[3*i+2]=vz[i]/iomodel->yts;
+	if(iomodel->vx) for(i=0;i<iomodel->numberofvertices;i++)u_g[3*i+0]=iomodel->vx[i]/iomodel->yts;
+	if(iomodel->vy) for(i=0;i<iomodel->numberofvertices;i++)u_g[3*i+1]=iomodel->vy[i]/iomodel->yts;
+	if(iomodel->vz) for(i=0;i<iomodel->numberofvertices;i++)u_g[3*i+2]=iomodel->vz[i]/iomodel->yts;
 
 	count++;
@@ -53,7 +42,7 @@
 
 
-	xfree((void**)&vx);
-	xfree((void**)&vy);
-	xfree((void**)&vz);
+	xfree((void**)&iomodel->vx);
+	xfree((void**)&iomodel->vy);
+	xfree((void**)&iomodel->vz);
 	xfree((void**)&u_g);
 
@@ -89,65 +78,64 @@
 
 	/*Get thickness: */
-	IoModelFetchData(&thickness,NULL,NULL,iomodel_handle,"thickness");
+	IoModelFetchData(&iomodel->thickness,NULL,NULL,iomodel_handle,"thickness");
 	
 	count++;
 	param= new Param(count,"h_g",DOUBLEVEC);
-	if(thickness) param->SetDoubleVec(thickness,iomodel->numberofvertices,1);
-	else param->SetDoubleVec(thickness,0,0);
+	if(iomodel->thickness) param->SetDoubleVec(iomodel->thickness,iomodel->numberofvertices,1);
+	else param->SetDoubleVec(iomodel->thickness,0,0);
 	parameters->AddObject(param);
 
 	/*Free thickness: */
-	xfree((void**)&thickness);
+	xfree((void**)&iomodel->thickness);
 
 	/*Get surface: */
-	IoModelFetchData(&surface,NULL,NULL,iomodel_handle,"surface");
+	IoModelFetchData(&iomodel->surface,NULL,NULL,iomodel_handle,"surface");
 	
 	count++;
 	param= new Param(count,"s_g",DOUBLEVEC);
-	if(surface) param->SetDoubleVec(surface,iomodel->numberofvertices,1);
-	else param->SetDoubleVec(surface,0,0);
+	if(iomodel->surface) param->SetDoubleVec(iomodel->surface,iomodel->numberofvertices,1);
+	else param->SetDoubleVec(iomodel->surface,0,0);
 	parameters->AddObject(param);
 
 	/*Free surface: */
-	xfree((void**)&surface);
+	xfree((void**)&iomodel->surface);
 
 	/*Get bed: */
-	IoModelFetchData(&bed,NULL,NULL,iomodel_handle,"bed");
+	IoModelFetchData(&iomodel->bed,NULL,NULL,iomodel_handle,"bed");
 	
 	count++;
 	param= new Param(count,"b_g",DOUBLEVEC);
-	if(bed) param->SetDoubleVec(bed,iomodel->numberofvertices,1);
-	else param->SetDoubleVec(bed,0,0);
+	if(iomodel->bed) param->SetDoubleVec(iomodel->bed,iomodel->numberofvertices,1);
+	else param->SetDoubleVec(iomodel->bed,0,0);
 	parameters->AddObject(param);
 
 	/*Free bed: */
-	xfree((void**)&bed);
+	xfree((void**)&iomodel->bed);
 
 	/*Get melting: */
-	IoModelFetchData(&melting,NULL,NULL,iomodel_handle,"melting");
-	if(melting) for(i=0;i<iomodel->numberofvertices;i++)melting[i]=melting[i]/iomodel->yts;
+	IoModelFetchData(&iiomodel->melting,NULL,NULL,iomodel_handle,"melting");
+	if(iomodel->melting) for(i=0;i<iomodel->numberofvertices;i++)iomodel->melting[i]=iomodel->melting[i]/iomodel->yts;
 	
 	count++;
 	param= new Param(count,"m_g",DOUBLEVEC);
-	if(melting) param->SetDoubleVec(melting,iomodel->numberofvertices,1);
-	else param->SetDoubleVec(melting,0,1);
+	if(iomodel->melting) param->SetDoubleVec(iomodel->melting,iomodel->numberofvertices,1);
+	else param->SetDoubleVec(iomodel->melting,0,1);
 	parameters->AddObject(param);
 
 	/*Free melting: */
-	xfree((void**)&melting);
+	xfree((void**)&iomodel->melting);
 
 	/*Get accumulation: */
-	IoModelFetchData(&accumulation,NULL,NULL,iomodel_handle,"accumulation");
-	if(accumulation) for(i=0;i<iomodel->numberofvertices;i++)accumulation[i]=accumulation[i]/iomodel->yts;
+	IoModelFetchData(&iomodel->accumulation,NULL,NULL,iomodel_handle,"accumulation");
+	if(iomodel->accumulation) for(i=0;i<iomodel->numberofvertices;i++)iomodel->accumulation[i]=iomodel->accumulation[i]/iomodel->yts;
 	
 	count++;
 	param= new Param(count,"a_g",DOUBLEVEC);
-	if(accumulation) param->SetDoubleVec(accumulation,iomodel->numberofvertices,1);
-	else param->SetDoubleVec(accumulation,0,0);
+	if(iomodel->accumulation) param->SetDoubleVec(iomodel->accumulation,iomodel->numberofvertices,1);
+	else param->SetDoubleVec(iomodel->accumulation,0,0);
 	parameters->AddObject(param);
 
 	/*Free accumulation: */
-	xfree((void**)&accumulation);
-
+	xfree((void**)&iomodel->accumulation);
 
 	/*Assign output pointer: */
Index: /issm/trunk/src/c/ModelProcessorx/Thermal/CreateParametersThermal.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/Thermal/CreateParametersThermal.cpp	(revision 3459)
+++ /issm/trunk/src/c/ModelProcessorx/Thermal/CreateParametersThermal.cpp	(revision 3460)
@@ -17,11 +17,5 @@
 	int      count;
 	int i;
-
-	double* vx=NULL;
-	double* vy=NULL;
-	double* vz=NULL;
 	double* u_g=NULL;
-	double* pressure=NULL;
-	double* temperature=NULL;
 
 	/*recover parameters : */
@@ -40,13 +34,13 @@
 
 	/*Get vx vy and vz: */
-	IoModelFetchData(&vx,NULL,NULL,iomodel_handle,"vx");
-	IoModelFetchData(&vy,NULL,NULL,iomodel_handle,"vy");
-	IoModelFetchData(&vz,NULL,NULL,iomodel_handle,"vz");
+	IoModelFetchData(&iomodel->vx,NULL,NULL,iomodel_handle,"vx");
+	IoModelFetchData(&iomodel->vy,NULL,NULL,iomodel_handle,"vy");
+	IoModelFetchData(&iomodel->vz,NULL,NULL,iomodel_handle,"vz");
 
 	u_g=(double*)xcalloc(iomodel->numberofvertices*3,sizeof(double));
 
-	if(vx) for(i=0;i<iomodel->numberofvertices;i++)u_g[3*i+0]=vx[i]/iomodel->yts;
-	if(vy) for(i=0;i<iomodel->numberofvertices;i++)u_g[3*i+1]=vy[i]/iomodel->yts;
-	if(vz) for(i=0;i<iomodel->numberofvertices;i++)u_g[3*i+2]=vz[i]/iomodel->yts;
+	if(iomodel->vx) for(i=0;i<iomodel->numberofvertices;i++)u_g[3*i+0]=iomodel->vx[i]/iomodel->yts;
+	if(iomodel->vy) for(i=0;i<iomodel->numberofvertices;i++)u_g[3*i+1]=iomodel->vy[i]/iomodel->yts;
+	if(iomodel->vz) for(i=0;i<iomodel->numberofvertices;i++)u_g[3*i+2]=iomodel->vz[i]/iomodel->yts;
 
 	count++;
@@ -55,20 +49,20 @@
 	parameters->AddObject(param);
 
-	xfree((void**)&vx);
-	xfree((void**)&vy);
-	xfree((void**)&vz);
+	xfree((void**)&iomodel->vx);
+	xfree((void**)&iomodel->vy);
+	xfree((void**)&iomodel->vz);
 	xfree((void**)&u_g);
 	
 	/*Get pressure: */
-	IoModelFetchData(&pressure,NULL,NULL,iomodel_handle,"pressure");
+	IoModelFetchData(&iomodel->pressure,NULL,NULL,iomodel_handle,"pressure");
 	
 	count++;
 	param= new Param(count,"p_g",DOUBLEVEC);
-	if(pressure) param->SetDoubleVec(pressure,iomodel->numberofvertices,1);
-	else param->SetDoubleVec(pressure,0,0);
+	if(iomodel->pressure) param->SetDoubleVec(iomodel->pressure,iomodel->numberofvertices,1);
+	else param->SetDoubleVec(iomodel->pressure,0,0);
 	parameters->AddObject(param);
 
 	/*Free pressure: */
-	xfree((void**)&pressure);
+	xfree((void**)&iomodel->pressure);
 
 	/* get initial temperature and melting if transient*/
@@ -76,14 +70,14 @@
 
 		/*Get melting and temperature: */
-		IoModelFetchData(&temperature,NULL,NULL,iomodel_handle,"temperature");
+		IoModelFetchData(&iomodel->temperature,NULL,NULL,iomodel_handle,"temperature");
 
 		count++;
 		param= new Param(count,"t_g",DOUBLEVEC);
-		if(temperature) param->SetDoubleVec(temperature,iomodel->numberofvertices,1);
+		if(iomodel->temperature) param->SetDoubleVec(iomodel->temperature,iomodel->numberofvertices,1);
 		else ISSMERROR(exprintf("Missing initial temperature"));
 		parameters->AddObject(param);
 
 		/*Free temperature: */
-		xfree((void**)&temperature);
+		xfree((void**)&iomodel->temperature);
 	}
 
