Index: /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 21067)
+++ /issm/trunk-jpl/src/c/classes/Elements/Penta.cpp	(revision 21068)
@@ -1498,5 +1498,5 @@
 		if(num_cost_functions<1) _error_("No cost functions found");
 		cost_functions_enums=xNew<int>(num_cost_functions);
-		for(int j=0;j<num_cost_functions;j++){ cost_functions_enums[j]=StringToEnumx(cost_functions[j]); }
+		for(j=0;j<num_cost_functions;j++){ cost_functions_enums[j]=StringToEnumx(cost_functions[j]); }
 
 		/*Create inputs and add to DataSetInput*/
Index: /issm/trunk-jpl/src/c/classes/Elements/Tetra.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tetra.cpp	(revision 21067)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tetra.cpp	(revision 21068)
@@ -462,5 +462,5 @@
 		if(num_cost_functions<1) _error_("No cost functions found");
 		cost_functions_enums=xNew<int>(num_cost_functions);
-		for(int j=0;j<num_cost_functions;j++){ cost_functions_enums[j]=StringToEnumx(cost_functions[j]); }
+		for(j=0;j<num_cost_functions;j++){ cost_functions_enums[j]=StringToEnumx(cost_functions[j]); }
 
 		/*Create inputs and add to DataSetInput*/
Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 21067)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.cpp	(revision 21068)
@@ -1833,5 +1833,5 @@
 		if(num_cost_functions<1) _error_("No cost functions found");
 		cost_functions_enums=xNew<int>(num_cost_functions);
-		for(int j=0;j<num_cost_functions;j++){ cost_functions_enums[j]=StringToEnumx(cost_functions[j]); }
+		for(j=0;j<num_cost_functions;j++){ cost_functions_enums[j]=StringToEnumx(cost_functions[j]); }
 
 		/*Create inputs and add to DataSetInput*/
Index: /issm/trunk-jpl/src/c/classes/ExternalResults/GenericExternalResult.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/ExternalResults/GenericExternalResult.h	(revision 21067)
+++ /issm/trunk-jpl/src/c/classes/ExternalResults/GenericExternalResult.h	(revision 21068)
@@ -80,14 +80,11 @@
 		} /*}}}*/
 		GenericExternalResult(int in_id, int in_enum_type,ResultType in_values, int in_M,int in_N,int in_step,IssmDouble in_time){/*{{{*/
-			id          = 0;
-			result_name = NULL;
-			M           = 0;
-			N           = 0;
-			step        = 0;
-			time        = 0;
-			value       = in_values;
 			_error_("template GenericExternalResult(int in_id, int in_enum_type,double* in_values, int in_M,int in_N,int in_step,IssmDouble in_time) not implemented for this ResultType\n");
 		}
 /*}}}*/
+		GenericExternalResult(int in_id,const char* name_in,ResultType in_values, int in_M,int in_N,int in_step,IssmDouble in_time){/*{{{*/
+			_error_("template GenericExternalResult(int in_id, int in_enum_type,double* in_values, int in_M,int in_N,int in_step,IssmDouble in_time) not implemented for this ResultType\n");
+		}
+		/*}}}*/
 		GenericExternalResult(int in_id, int in_enum_type,ResultType in_value,int in_step, IssmDouble in_time){ /*{{{*/
 			id        = in_id;
@@ -357,4 +354,25 @@
 }
 /*}}}*/
+template <> inline GenericExternalResult<IssmPDouble*>::GenericExternalResult(int in_id,const char* in_result_name,IssmPDouble* in_values, int in_M,int in_N,int in_step,IssmDouble in_time){/*{{{*/
+
+	id = in_id;
+	M  = in_M;
+	N  = in_N;
+
+	/*Copy name*/
+	this->result_name = xNew<char>(strlen(in_result_name)+1);
+	xMemCpy<char>(this->result_name,in_result_name,strlen(in_result_name)+1);
+
+	step = in_step;
+	time = in_time;
+
+	/*Copy result in values*/
+	if(M*N){
+		value=xNew<IssmPDouble>(M*N);
+		xMemCpy<IssmPDouble>(value,in_values,M*N);
+	}
+	else value=NULL;
+}
+/*}}}*/
 template <> inline GenericExternalResult<IssmPDouble*>::GenericExternalResult(int in_id, int in_enum_type,IssmPDouble* in_value,int in_step, IssmDouble in_time){ /*{{{*/
 	_error_("you cannot initialize a GenericExternalResult<IssmPDouble*> without providing the dimensions of the matrix! Please use a more appropriate constructor!");
Index: /issm/trunk-jpl/src/c/main/kriging.cpp
===================================================================
--- /issm/trunk-jpl/src/c/main/kriging.cpp	(revision 21067)
+++ /issm/trunk-jpl/src/c/main/kriging.cpp	(revision 21068)
@@ -55,6 +55,6 @@
 	if(IssmComm::GetRank()==0){
 		output_fid=pfopen0(outbinfilename,"wb");
-		results->AddObject(new GenericExternalResult<double*>(results->Size()+1,0,predictions,ninterp,1,1,0));
-		results->AddObject(new GenericExternalResult<double*>(results->Size()+1,1,error,ninterp,1,1,0));
+		results->AddObject(new GenericExternalResult<double*>(results->Size()+1,"predictions",predictions,ninterp,1,1,0));
+		results->AddObject(new GenericExternalResult<double*>(results->Size()+1,"error",error,ninterp,1,1,0));
 		for(int i=0;i<results->Size();i++){
 			ExternalResult* result=xDynamicCast<ExternalResult*>(results->GetObjectByOffset(i));
Index: /issm/trunk-jpl/src/m/contrib/morlighem/gslib/pkriging.m
===================================================================
--- /issm/trunk-jpl/src/m/contrib/morlighem/gslib/pkriging.m	(revision 21067)
+++ /issm/trunk-jpl/src/m/contrib/morlighem/gslib/pkriging.m	(revision 21068)
@@ -43,5 +43,5 @@
 end
 Download(cluster,name,{[name '.outbin']});
-structure=parseresultsfromdisk([name '.outbin'],0);
+structure=parseresultsfromdisk(md,[name '.outbin'],0);
 delete([name '.outlog']);
 delete([name '.errlog']);
@@ -53,6 +53,6 @@
 
 %Process results
-B=structure.(EnumToString(0));
+B=structure.predictions;
 B=reshape(B,size(x_interp,2),size(x_interp,1))';
-E=structure.(EnumToString(1));
+E=structure.error;
 E=reshape(E,size(x_interp,2),size(x_interp,1))';
