Index: /issm/trunk/src/m/solutions/cielo/control.m
===================================================================
--- /issm/trunk/src/m/solutions/cielo/control.m	(revision 247)
+++ /issm/trunk/src/m/solutions/cielo/control.m	(revision 248)
@@ -27,6 +27,6 @@
 
 		%initialize inputs, ie m.nparameters on which we invert.
-		eval(['inputs.' m.parameters.control_type '=p_g;']);
-		inputs.fit=m.parameters.fit(n);
+		inputs=add(inputs,m.parameters.control_type,p_g,'doublevec',2,m_dh.parameters.numberofnodes);
+		inputs=add(inputs,'fit',m.parameters.fit(n),,'scalar');
 
 		%Update inputs in datasets
Index: /issm/trunk/src/m/solutions/cielo/controlfinalsol.m
===================================================================
--- /issm/trunk/src/m/solutions/cielo/controlfinalsol.m	(revision 247)
+++ /issm/trunk/src/m/solutions/cielo/controlfinalsol.m	(revision 248)
@@ -2,5 +2,5 @@
 
 %From parameters, build inputs for icediagnostic_core, using the final parameters
-eval(['inputs.' m.parameters.control_type '=p_g;']);
+inputs=add(inputs,m.parameters.control_type,p_g,'doublevec',2,m.parameters.numberofnodes);
 u_g=diagnostic_core_nonlinear(m,inputs);
 
Index: /issm/trunk/src/m/solutions/cielo/diagnostic.m
===================================================================
--- /issm/trunk/src/m/solutions/cielo/diagnostic.m	(revision 247)
+++ /issm/trunk/src/m/solutions/cielo/diagnostic.m	(revision 248)
@@ -34,5 +34,9 @@
 
 		disp(sprintf('\n%s',['computing vertical velocities...']));
-		u_g_vert=diagnostic_core_linear(m_dv,struct('velocity',u_g));
+	
+		inputs=parameterinputs;
+		inputs=add(inputs,'velocity',u_g,'doublevec',m_dh.parameters.numberofdofspernode,m_dh.parameters.numberofnodes);
+
+		u_g_vert=diagnostic_core_linear(m_dv,inputs);
 
 		%load results onto model: 
Index: /issm/trunk/src/m/solutions/cielo/objectivefunctionC.m
===================================================================
--- /issm/trunk/src/m/solutions/cielo/objectivefunctionC.m	(revision 247)
+++ /issm/trunk/src/m/solutions/cielo/objectivefunctionC.m	(revision 248)
@@ -10,5 +10,5 @@
 
 %Plug parameter into inputs
-eval(['inputs.' control_type '=parameter;']);
+inputs=add(inputs,m.parameters.control_type,parameter,'doublevec',2,m.parameters.numberofnodes);
 
 %Run diagnostic with updated parameters.
@@ -16,4 +16,4 @@
 
 %Compute misfit for this velocity field. 
-inputs.fit=fit;
+inputs=add(inputs,'fit',m.parameters.fit(n),,'scalar');
 J=Misfit(m.elements,m.nodes,m.loads,m.materials,m.parameters, u_g, u_g_obs,inputs);
