Index: /issm/trunk/src/c/modules/InputUpdateFromDakotax/InputUpdateFromDakotax.cpp
===================================================================
--- /issm/trunk/src/c/modules/InputUpdateFromDakotax/InputUpdateFromDakotax.cpp	(revision 5473)
+++ /issm/trunk/src/c/modules/InputUpdateFromDakotax/InputUpdateFromDakotax.cpp	(revision 5474)
@@ -25,5 +25,5 @@
 	double* parameter_serial=NULL;
 	char*   descriptor=NULL;
-	char*   root=NULL; //root name of distributed variable, ex: thickness, drag, etc ...
+	char    root[50]; //root name of variable, ex: DragCoefficent, RhoIce, etc ...
 	double* partition=NULL; //serial version of vec_partition
 
@@ -48,17 +48,11 @@
 		descriptor=variables_descriptors[i];
 
-		/*From descriptor, figure out if the variable is distributed (distributed implies there is a numeric value at the 
-		 * end of the descriptor, for ex: thickness1, thickness10, etc .... If it is distributed, the next qmu_npart (number 
-		 * of partitions in the distributed variable) variable are the values for each partition of the distributed variable: */
-		if (!isdistributed(&root,descriptor)){
+		/*From descriptor, figure out if the variable is scaled, indexed, nodal, or just a simple variable: */
+		if (strncmp(descriptor,"scaled_",7)==0){
 			
-			/*Ok, variable is not distributed, just update inputs using the variable: */
-			InputUpdateFromConstantx( elements,nodes, vertices,loads, materials,  parameters, variables[i],StringToEnum(descriptor));
-
-		}
-		else{
-
-			/*Ok, variable is distributed. Root name of variable is also known. Now, allocate distributed_values and fill the 
+			/*Variable is scaled. Determine root name of variable (ex: scaled_DragCoefficient_1 -> DragCoefficient). Allocate distributed_values and fill the 
 			 * distributed_values with the next qmu_npart variables: */
+			
+			strcpy(root,strstr(descriptor,"_")+1); *strstr(root,"_")='\0';
 
 			distributed_values=(double*)xmalloc(qmu_npart*sizeof(double));
@@ -67,5 +61,4 @@
 			}
 
-		
 			/*Now, pick up the parameter corresponding to root: */
 			if(!parameters->FindParam(&parameter_serial,NULL,StringToEnum(root))){
@@ -104,7 +97,15 @@
 			xfree((void**)&parameter_serial);
 			xfree((void**)&distributed_values);
-
 		}
-		xfree((void**)&root);
+		else if (strncmp(descriptor,"indexed_",8)==0){
+			ISSMERROR(" indexed variables not supported yet!");
+		}
+		else if (strncmp(descriptor,"nodal_",8)==0){
+			ISSMERROR(" nodal variables not supported yet!");
+		}
+		else{
+			/*Ok, standard variable, just update inputs using the variable: */
+			InputUpdateFromConstantx( elements,nodes, vertices,loads, materials,  parameters, variables[i],StringToEnum(descriptor));
+		}
 	}
 
