Index: /issm/trunk-jpl/src/c/classes/Params/DoubleParam.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Params/DoubleParam.h	(revision 22642)
+++ /issm/trunk-jpl/src/c/classes/Params/DoubleParam.h	(revision 22643)
@@ -44,6 +44,6 @@
 		void  GetParameterValue(int** pintarray,int* pM);
 		void  GetParameterValue(int** pintarray,int* pM,int* pN);
-		void  GetParameterValue(IssmDouble* pIssmDouble){*pIssmDouble=value;}
-		void  GetParameterValue(IssmDouble* pdouble,IssmDouble time){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a IssmDouble for a given time");}
+		void  GetParameterValue(IssmDouble* pIssmDouble){*pIssmDouble=value;};
+		void  GetParameterValue(IssmDouble* pdouble,IssmDouble time){*pdouble=value;};
 		void  GetParameterValue(char** pstring){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a string");}
 		void  GetParameterValue(char*** pstringarray,int* pM){_error_("Param "<< EnumToStringx(enum_type) << " cannot return a string array");}
Index: /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 22642)
+++ /issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp	(revision 22643)
@@ -178,9 +178,33 @@
 			iomodel->FindConstant(&interp,"md.timestepping.interp_forcings");
 			iomodel->FetchData(&transparam,&N,&M,"md.basalforcings.deepwater_melting_rate"); 
-			parameters->AddObject(new TransientParam(BasalforcingsDeepwaterMeltingRateEnum,&transparam[0],&transparam[M],interp,M)); _assert_(N==2 || N==1);
+			if(N==1){
+				_assert_(M==1);
+				parameters->AddObject(new DoubleParam(BasalforcingsDeepwaterMeltingRateEnum,transparam[0]));
+			}
+			else{
+				_assert_(N==2);
+				parameters->AddObject(new TransientParam(BasalforcingsDeepwaterMeltingRateEnum,&transparam[0],&transparam[M],interp,M));
+			}
+			xDelete<IssmDouble>(transparam);
 			iomodel->FetchData(&transparam,&N,&M,"md.basalforcings.deepwater_elevation"); 
-			parameters->AddObject(new TransientParam(BasalforcingsDeepwaterElevationEnum,&transparam[0],&transparam[M],interp,M)); _assert_(N==2 || N==1);
+			if(N==1){
+				_assert_(M==1);
+				parameters->AddObject(new DoubleParam(BasalforcingsDeepwaterElevationEnum,transparam[0]));
+			}
+			else{
+				_assert_(N==2);
+				parameters->AddObject(new TransientParam(BasalforcingsDeepwaterElevationEnum,&transparam[0],&transparam[M],interp,M)); 
+			}
+			xDelete<IssmDouble>(transparam);
 			iomodel->FetchData(&transparam,&N,&M,"md.basalforcings.upperwater_elevation"); 
-			parameters->AddObject(new TransientParam(BasalforcingsUpperwaterElevationEnum,&transparam[0],&transparam[M],interp,M)); _assert_(N==2 || N==1);
+			if(N==1){
+				_assert_(M==1);
+				parameters->AddObject(new DoubleParam(BasalforcingsUpperwaterElevationEnum,transparam[0]));
+			}
+			else{
+				_assert_(N==2);
+				parameters->AddObject(new TransientParam(BasalforcingsUpperwaterElevationEnum,&transparam[0],&transparam[M],interp,M));
+			}
+			xDelete<IssmDouble>(transparam);
 			break;
 		case MismipFloatingMeltRateEnum:
@@ -210,7 +234,9 @@
 				parameters->AddObject(iomodel->CopyConstantObject("md.basalforcings.gamma_T",BasalforcingsPicoGammaTEnum));
 				iomodel->FetchData(&transparam,&M,&N,"md.basalforcings.farocean_temperature");
+				_assert_(M==2 && N>1); 
 				parameters->AddObject(new TransientArrayParam(BasalforcingsPicoFarOceantemperatureEnum,transparam,&transparam[N*(M-1)],interp,M,N));
 				xDelete<IssmDouble>(transparam);
 				iomodel->FetchData(&transparam,&M,&N,"md.basalforcings.farocean_salinity");
+				_assert_(M==2 && N>1); 
 				parameters->AddObject(new TransientArrayParam(BasalforcingsPicoFarOceansalinityEnum,transparam,&transparam[N*(M-1)],interp,M,N));
 				xDelete<IssmDouble>(transparam);
