Index: /issm/trunk/src/c/parallel/prognostic.cpp
===================================================================
--- /issm/trunk/src/c/parallel/prognostic.cpp	(revision 1826)
+++ /issm/trunk/src/c/parallel/prognostic.cpp	(revision 1827)
@@ -26,5 +26,5 @@
 	int   waitonlock=0;
 
-	FemModel fem;
+	Model* model=NULL;
 
 	Vec     h_g=NULL;
@@ -65,15 +65,18 @@
 	fid=pfopen(inputfilename,"rb");
 
+	/*Initialize model structure: */
+	model=new Model();
+
 	_printf_("read and create finite element model:\n");
-	CreateFemModel(&fem,fid,PrognosticAnalysisEnum(),NoneAnalysisEnum());
+	CreateFemModel(model->Prognostic(),fid,PrognosticAnalysisEnum(),NoneAnalysisEnum());
 
 	//retrieve parameters used to fill inputs
-	fem.parameters->FindParam((void*)&u_g_serial,"u_g");
-	fem.parameters->FindParam((void*)&h_g_initial,"h_g");
-	fem.parameters->FindParam((void*)&melting_g,"m_g");
-	fem.parameters->FindParam((void*)&accumulation_g,"a_g");
-	fem.parameters->FindParam((void*)&dt,"dt");
-	fem.parameters->FindParam((void*)&yts,"yts");
-	fem.parameters->FindParam((void*)&numberofnodes,"numberofnodes");
+	model->Prognostic()->parameters->FindParam((void*)&u_g_serial,"u_g");
+	model->Prognostic()->parameters->FindParam((void*)&h_g_initial,"h_g");
+	model->Prognostic()->parameters->FindParam((void*)&melting_g,"m_g");
+	model->Prognostic()->parameters->FindParam((void*)&accumulation_g,"a_g");
+	model->Prognostic()->parameters->FindParam((void*)&dt,"dt");
+	model->Prognostic()->parameters->FindParam((void*)&yts,"yts");
+	model->Prognostic()->parameters->FindParam((void*)&numberofnodes,"numberofnodes");
 
 	_printf_("initialize inputs:\n");
@@ -89,10 +92,10 @@
 
 	/*are we running the solutoin sequence, or a qmu wrapper around it? : */
-	fem.parameters->FindParam((void*)&qmu_analysis,"qmu_analysis");
+	model->Prognostic()->parameters->FindParam((void*)&qmu_analysis,"qmu_analysis");
 	if(!qmu_analysis){
 
 		/*run prognostic analysis: */
 		_printf_("call computational core:\n");
-		prognostic_core(results,&fem,inputs);
+		prognostic_core(results,model,inputs);
 
 	}
@@ -103,5 +106,5 @@
 	
 		#ifdef _HAVE_DAKOTA_ 
-		Qmux(&fem,inputs,PrognosticAnalysisEnum(),NoneAnalysisEnum());
+		Qmux(model,inputs,PrognosticAnalysisEnum(),NoneAnalysisEnum());
 	 	#else
 		throw ErrorException(__FUNCT__," Dakota not present, cannot do qmu!");
@@ -114,5 +117,5 @@
 	
 	_printf_("process results:\n");
-	ProcessResults(&results,&fem,PrognosticAnalysisEnum());
+	ProcessResults(&results,model,PrognosticAnalysisEnum());
 	
 	_printf_("write results to disk:\n");
@@ -120,5 +123,5 @@
 
 	_printf_("write lock file:\n");
-	fem.parameters->FindParam((void*)&waitonlock,"waitonlock");
+	model->Prognostic()->parameters->FindParam((void*)&waitonlock,"waitonlock");
 	if (waitonlock){
 		WriteLockFile(lockname);
