Index: /issm/trunk/src/c/modules/Responsex/Responsex.cpp
===================================================================
--- /issm/trunk/src/c/modules/Responsex/Responsex.cpp	(revision 5472)
+++ /issm/trunk/src/c/modules/Responsex/Responsex.cpp	(revision 5473)
@@ -16,62 +16,28 @@
 #include "../modules.h"
 
-void Responsex(double* presponse,Elements* elements,Nodes* nodes, Vertices* vertices,Loads* loads,Materials* materials, Parameters* parameters,const char* response_descriptor,bool process_units){
+void Responsex(double* responses,Elements* elements,Nodes* nodes, Vertices* vertices,Loads* loads,Materials* materials, Parameters* parameters,char* response_descriptor,bool process_units){
 
-	if(strcmp(response_descriptor,"MinVel")==0){
-		MinVelx( presponse, elements,nodes, vertices, loads, materials, parameters,process_units);
+	switch (StringToEnum(response_descriptor)){
+		
+		case MinVelEnum: MinVelx( responses, elements,nodes, vertices, loads, materials, parameters,process_units); break;
+		case MaxVelEnum: MaxVelx( responses, elements,nodes, vertices, loads, materials, parameters,process_units); break;
+		case MinVxEnum:  MinVxx( responses, elements,nodes, vertices, loads, materials, parameters,process_units);  break;
+		case MaxVxEnum:  MaxVxx( responses, elements,nodes, vertices, loads, materials, parameters,process_units);  break;
+		case MaxAbsVxEnum: MaxAbsVxx( responses, elements,nodes, vertices, loads, materials, parameters,process_units); break;
+		case MinVyEnum:  MinVyx( responses, elements,nodes, vertices, loads, materials, parameters,process_units);  break;
+		case MaxVyEnum:  MaxVyx( responses, elements,nodes, vertices, loads, materials, parameters,process_units);  break;
+		case MaxAbsVyEnum: MaxAbsVyx( responses, elements,nodes, vertices, loads, materials, parameters,process_units); break;
+		case MinVzEnum: MinVzx( responses, elements,nodes, vertices, loads, materials, parameters,process_units);   break;
+		case MaxVzEnum: MaxVzx( responses, elements,nodes, vertices, loads, materials, parameters,process_units);   break;
+		case MaxAbsVzEnum: MaxAbsVzx( responses, elements,nodes, vertices, loads, materials, parameters,process_units); break;
+		case MassFluxEnum: MassFluxx( responses, elements,nodes, vertices, loads, materials, parameters,process_units); break;
+		case SurfaceAbsVelMisfitEnum: SurfaceAbsVelMisfitx( responses, elements,nodes, vertices, loads, materials, parameters,process_units); break;
+		case SurfaceRelVelMisfitEnum: SurfaceRelVelMisfitx( responses, elements,nodes, vertices, loads, materials, parameters,process_units); break;
+		case SurfaceLogVelMisfitEnum: SurfaceLogVelMisfitx( responses, elements,nodes, vertices, loads, materials, parameters,process_units); break;
+		case SurfaceLogVxVyMisfitEnum: SurfaceLogVxVyMisfitx( responses, elements,nodes, vertices, loads, materials, parameters,process_units); break;
+		case SurfaceAverageVelMisfitEnum: SurfaceAverageVelMisfitx( responses, elements,nodes, vertices, loads, materials, parameters,process_units); break;
+		case ThicknessAbsMisfitEnum: ThicknessAbsMisfitx( responses, elements,nodes, vertices, loads, materials, parameters,process_units); break;
+		default: ISSMERROR(" response descriptor \"%s\" not supported yet!",response_descriptor); break;
 	}
-	else if(strcmp(response_descriptor,"MaxVel")==0){
-		MaxVelx( presponse, elements,nodes, vertices, loads, materials, parameters,process_units);
-	}
-	else if(strcmp(response_descriptor,"MinVx")==0){
-		MinVxx( presponse, elements,nodes, vertices, loads, materials, parameters,process_units);
-	}
-	else if(strcmp(response_descriptor,"MaxVx")==0){
-		MaxVxx( presponse, elements,nodes, vertices, loads, materials, parameters,process_units);
-	}
-	else if(strcmp(response_descriptor,"MaxAbsVx")==0){
-		MaxAbsVxx( presponse, elements,nodes, vertices, loads, materials, parameters,process_units);
-	}
-	else if(strcmp(response_descriptor,"MinVy")==0){
-		MinVyx( presponse, elements,nodes, vertices, loads, materials, parameters,process_units);
-	}
-	else if(strcmp(response_descriptor,"MaxVy")==0){
-		MaxVyx( presponse, elements,nodes, vertices, loads, materials, parameters,process_units);
-	}
-	else if(strcmp(response_descriptor,"MaxAbsVy")==0){
-		MaxAbsVyx( presponse, elements,nodes, vertices, loads, materials, parameters,process_units);
-	}
-	else if(strcmp(response_descriptor,"MinVz")==0){
-		MinVzx( presponse, elements,nodes, vertices, loads, materials, parameters,process_units);
-	}
-	else if(strcmp(response_descriptor,"MaxVz")==0){
-		MaxVzx( presponse, elements,nodes, vertices, loads, materials, parameters,process_units);
-	}
-	else if(strcmp(response_descriptor,"MaxAbsVz")==0){
-		MaxAbsVzx( presponse, elements,nodes, vertices, loads, materials, parameters,process_units);
-	}
-	else if(strncmp(response_descriptor,"MassFlux",8)==0){
-		MassFluxx(presponse,elements,nodes,vertices,loads,materials,parameters,response_descriptor,process_units);
-	}
-	else if(strcmp(response_descriptor,"SurfaceAbsVelMisfit")==0){
-		SurfaceAbsVelMisfitx( presponse, elements,nodes, vertices, loads, materials, parameters,process_units);
-	}
-	else if(strcmp(response_descriptor,"SurfaceRelVelMisfit")==0){
-		SurfaceRelVelMisfitx( presponse, elements,nodes, vertices, loads, materials, parameters,process_units);
-	}
-	else if(strcmp(response_descriptor,"SurfaceLogVelMisfit")==0){
-		SurfaceLogVelMisfitx( presponse, elements,nodes, vertices, loads, materials, parameters,process_units);
-	}
-	else if(strcmp(response_descriptor,"SurfaceLogVxVyMisfit")==0){
-		SurfaceLogVxVyMisfitx( presponse, elements,nodes, vertices, loads, materials, parameters,process_units);
-	}
-	else if(strcmp(response_descriptor,"SurfaceAverageVelMisfit")==0){
-		SurfaceAverageVelMisfitx( presponse, elements,nodes, vertices, loads, materials, parameters,process_units);
-	}
-	else if(strcmp(response_descriptor,"ThicknessAbsMisfit")==0){
-		ThicknessAbsMisfitx( presponse, elements,nodes, vertices, loads, materials, parameters,process_units);
-	}
-	else{
-		ISSMERROR(" response descriptor \"%s\" not supported yet!",response_descriptor);
-	}
+
 }
Index: /issm/trunk/src/c/modules/Responsex/Responsex.h
===================================================================
--- /issm/trunk/src/c/modules/Responsex/Responsex.h	(revision 5472)
+++ /issm/trunk/src/c/modules/Responsex/Responsex.h	(revision 5473)
@@ -9,5 +9,5 @@
 #include "../../Container/Container.h"
 
-void Responsex(double* presponse,Elements* elements,Nodes* nodes, Vertices* vertices,Loads* loads,Materials* materials, Parameters* parameters,const char* response_descriptor,bool process_units);
+void Responsex(double* presponse,Elements* elements,Nodes* nodes, Vertices* vertices,Loads* loads,Materials* materials, Parameters* parameters,char* response_descriptor,bool process_units);
 
 #endif  /* _RESPONSESXX_H */
