Index: /issm/trunk-jpl/src/c/classes/Inputs/TransientInput.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Inputs/TransientInput.cpp	(revision 22281)
+++ /issm/trunk-jpl/src/c/classes/Inputs/TransientInput.cpp	(revision 22282)
@@ -333,7 +333,9 @@
 		switch(input->ObjectEnum()){
 		case TriaInputEnum:{
-			TriaInput* triainput = xDynamicCast<TriaInput*>(this->inputs->GetObjectByOffset(i)); _assert_(triainput);
-			numnodes= triainput->NumberofNodes(triainput->interpolation_type);
-			values=xNewZeroInit<IssmDouble>(numnodes);
+			TriaInput* triainput = (TriaInput*)this->inputs->GetObjectByOffset(i); _assert_(triainput);
+			if(i==0){
+				numnodes= triainput->NumberofNodes(triainput->interpolation_type);
+				values=xNewZeroInit<IssmDouble>(numnodes);
+			}
 			/*Sum the values weighted by their respective sub-timestep*/
 			for(int j=0;j<numnodes;j++){
@@ -343,7 +345,9 @@
 		}
 		case PentaInputEnum:{
-			PentaInput*	pentainput = xDynamicCast<PentaInput*>(this->inputs->GetObjectByOffset(i)); _assert_(pentainput);
-			numnodes= pentainput->NumberofNodes(pentainput->interpolation_type);
-			values=xNewZeroInit<IssmDouble>(numnodes);
+			PentaInput*	pentainput = (PentaInput*)this->inputs->GetObjectByOffset(i); _assert_(pentainput);
+			if(i==0){
+				numnodes= pentainput->NumberofNodes(pentainput->interpolation_type);
+				values=xNewZeroInit<IssmDouble>(numnodes);
+			}
 			/*Sum the values weighted by their respective sub-timestep*/
 			for(int j=0;j<numnodes;j++){
@@ -353,7 +357,9 @@
 		}
 		case TetraInputEnum:{
-			TetraInput*	tetrainput = xDynamicCast<TetraInput*>(this->inputs->GetObjectByOffset(i)); _assert_(tetrainput);
-			numnodes= tetrainput->NumberofNodes(tetrainput->interpolation_type);
-			values=xNewZeroInit<IssmDouble>(numnodes);
+			TetraInput*	tetrainput = (TetraInput*)this->inputs->GetObjectByOffset(i); _assert_(tetrainput);
+			if(i==0){
+				numnodes= tetrainput->NumberofNodes(tetrainput->interpolation_type);
+				values=xNewZeroInit<IssmDouble>(numnodes);
+			}
 			/*Sum the values weighted by their respective sub-timestep*/
 			for(int j=0;j<numnodes;j++){
