Index: /issm/trunk/src/c/ModelProcessorx/CreateParameters.cpp
===================================================================
--- /issm/trunk/src/c/ModelProcessorx/CreateParameters.cpp	(revision 3685)
+++ /issm/trunk/src/c/ModelProcessorx/CreateParameters.cpp	(revision 3686)
@@ -31,115 +31,56 @@
 
 	//outputfilename
-	count++;
-	param= new Param(count,"outputfilename",STRING);
-	param->SetString(iomodel->outputfilename);
-	parameters->AddObject(param);
-   
-
+	parameters->AddObject(new StringParam(OutputFileNameEnum,iomodel->outputfilename));
+ 
 	//dimension 2d or 3d:
 	if (strcmp(iomodel->meshtype,"2d")==0)dim=2;
 	else dim=3;
 
-	count++;
-	param= new Param(count,"dim",DOUBLE);
-	param->SetDouble(dim);
-	parameters->AddObject(param);
-
+	parameters->AddObject(new DoubleParam(DimEnum,dim);
+	
 	//elements types
-	count++;
-	param= new Param(count,"ishutter",DOUBLE);
-	param->SetDouble(iomodel->ishutter);
-	parameters->AddObject(param);
-
-	count++;
-	param= new Param(count,"ismacayealpattyn",DOUBLE);
-	param->SetDouble(iomodel->ismacayealpattyn);
-	parameters->AddObject(param);
-
-	count++;
-	param= new Param(count,"isstokes",DOUBLE);
-	param->SetDouble(iomodel->isstokes);
-	parameters->AddObject(param);
-
-	/*verbose: */
-	count++;
-	param= new Param(count,"verbose",DOUBLE);
-	param->SetDouble(iomodel->verbose);
-	parameters->AddObject(param);
+	parameters->AddObject(new DoubleParam(IsHutterEnum,iomodel->ishutter));
+	parameters->AddObject(new DoubleParam(IsMacAyealPattynEnum,iomodel->ismacayealpattyn));
+	parameters->AddObject(new DoubleParam(IsStokesEnum,iomodel->isstokes));
+	parameters->AddObject(new DoubleParam(VerboseEnum,iomodel->verbose));
 
 	/*eps_res: */
-	count++;
-	param= new Param(count,"eps_res",DOUBLE);
-	param->SetDouble(iomodel->eps_res);
-	parameters->AddObject(param);
+	parameters->AddObject(new DoubleParam(EpsResEnum,iomodel->eps_res));
 
 	/*eps_rel: */
-	count++;
-	param= new Param(count,"eps_rel",DOUBLE);
-	param->SetDouble(iomodel->eps_rel);
-	parameters->AddObject(param);
+	parameters->AddObject(new DoubleParam(EpsRelEnum,iomodel->eps_rel));
 
 	/*eps_abs: */
-	count++;
-	param= new Param(count,"eps_abs",DOUBLE);
-	param->SetDouble(iomodel->eps_abs);
-	parameters->AddObject(param);
+	parameters->AddObject(new DoubleParam(EpsAbsEnum,iomodel->eps_abs));
 
 	/*max_nonlinear_iterations: */
-	count++;
-	param= new Param(count,"max_nonlinear_iterations",DOUBLE);
-	param->SetDouble(iomodel->max_nonlinear_iterations);
-	parameters->AddObject(param);
+	parameters->AddObject(new DoubleParam(MaxNonlinearIterationsEnum,iomodel->max_nonlinear_iterations));
 
 	/*yts: */
-	count++;
-	param= new Param(count,"yts",DOUBLE);
-	param->SetDouble(iomodel->yts);
-	parameters->AddObject(param);
+	parameters->AddObject(new DoubleParam(YtsEnum,iomodel->yts));
 
 	/*dt: */
-	count++;
-	param= new Param(count,"dt",DOUBLE);
-	param->SetDouble(iomodel->dt);
-	parameters->AddObject(param);
-
+	parameters->AddObject(new DoubleParam(DtEnum,iomodel->dt));
 
 	/*ndt: */
-	count++;
-	param= new Param(count,"ndt",DOUBLE);
-	param->SetDouble(iomodel->ndt);
-	parameters->AddObject(param);
+	parameters->AddObject(new DoubleParam(NdtEnum,iomodel->ndt));
 
 	/*penalty_offset: */
-	count++;
-	param= new Param(count,"penalty_offset",DOUBLE);
-	param->SetDouble(iomodel->penalty_offset);
-	parameters->AddObject(param);
+	parameters->AddObject(new DoubleParam(PenaltyOffsetEnum,iomodel->penalty_offset));
 
 	/*sparsity: */
-	count++;
-	param= new Param(count,"sparsity",DOUBLE);
-	param->SetDouble(iomodel->sparsity);
-	parameters->AddObject(param);
+	parameters->AddObject(new DoubleParam(SparsityEnum,iomodel->sparsity));
 
 	/*lowmem: */
-	count++;
-	param= new Param(count,"lowmem",DOUBLE);
-	param->SetDouble(iomodel->lowmem);
-	parameters->AddObject(param);
+	parameters->AddObject(new DoubleParam(LowmemEnum,iomodel->lowmem));
 
 	/*connectivity: */
-	count++;
-	param= new Param(count,"connectivity",DOUBLE);
-	param->SetDouble(iomodel->connectivity);
-	parameters->AddObject(param);
+	parameters->AddObject(new DoubleParam(ConnectivityEnum,iomodel->connectivity));
 
 	/*beta: */
-	count++;
-	param= new Param(count,"beta",DOUBLE);
-	param->SetDouble(iomodel->beta);
-	parameters->AddObject(param);
+	parameters->AddObject(new DoubleParam(BetaEnum,iomodel->beta));
 
 	/*meltingpoint: */
+	parameters->AddObject(new DoubleParam(BetaEnum,iomodel->beta));
 	count++;
 	param= new Param(count,"meltingpoint",DOUBLE);
