Index: /issm/trunk-jpl/src/c/shared/io/Marshalling/Marshalling.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/io/Marshalling/Marshalling.cpp	(revision 25542)
+++ /issm/trunk-jpl/src/c/shared/io/Marshalling/Marshalling.cpp	(revision 25543)
@@ -64,8 +64,8 @@
 	printf("   double_count: %i\n",double_count);
 }/*}}}*/
-void CountDoublesFunctor::call(IssmDouble value){/*{{{*/
+void CountDoublesFunctor::call(IssmDouble & value){/*{{{*/
 	this->double_count++;
 }/*}}}*/
-void CountDoublesFunctor::call(IssmDouble* value,int size){/*{{{*/
+void CountDoublesFunctor::call(IssmDouble* & value,int size){/*{{{*/
 	if(value) this->double_count+= size;
 }/*}}}*/
@@ -81,5 +81,5 @@
 	printf("   double_count: %i\n",double_count);
 }/*}}}*/
-void RegisterInputFunctor::call(IssmDouble value){/*{{{*/
+void RegisterInputFunctor::call(IssmDouble & value){/*{{{*/
 	_assert_(this->double_count<size_max);
 	this->tape_codi->registerInput(value);
@@ -87,5 +87,5 @@
 	this->double_count++;
 }/*}}}*/
-void RegisterInputFunctor::call(IssmDouble* value,int size){/*{{{*/
+void RegisterInputFunctor::call(IssmDouble* & value,int size){/*{{{*/
 	if(value){
 		for(int i=0;i<size;i++){
@@ -106,9 +106,9 @@
 	printf("   double_count: %i\n",double_count);
 }/*}}}*/
-void RegisterOutputFunctor::call(IssmDouble value){/*{{{*/
+void RegisterOutputFunctor::call(IssmDouble & value){/*{{{*/
 	this->tape_codi->registerOutput(value);
 	this->double_count++;
 }/*}}}*/
-void RegisterOutputFunctor::call(IssmDouble* value,int size){/*{{{*/
+void RegisterOutputFunctor::call(IssmDouble* & value,int size){/*{{{*/
 	if(value){
 		for(int i=0;i<size;i++){
@@ -129,10 +129,10 @@
 	printf("   double_count: %i\n",double_count);
 }/*}}}*/
-void SetAdjointFunctor::call(IssmDouble value){/*{{{*/
+void SetAdjointFunctor::call(IssmDouble & value){/*{{{*/
 	_assert_(this->double_count<size_max);
 	value.gradient() = this->adjoint[this->double_count];
 	this->double_count++;
 }/*}}}*/
-void SetAdjointFunctor::call(IssmDouble* value,int size){/*{{{*/
+void SetAdjointFunctor::call(IssmDouble* & value,int size){/*{{{*/
 	if(value){
 		for(int i=0;i<size;i++){
Index: /issm/trunk-jpl/src/c/shared/io/Marshalling/Marshalling.h
===================================================================
--- /issm/trunk-jpl/src/c/shared/io/Marshalling/Marshalling.h	(revision 25542)
+++ /issm/trunk-jpl/src/c/shared/io/Marshalling/Marshalling.h	(revision 25543)
@@ -119,6 +119,6 @@
 		template<typename T> void call(T & value){/*General case: do nothing*/}
 		template<typename T> void call(T* & value,int size){/*General case: do nothing*/}
-		void call(IssmDouble value);
-		void call(IssmDouble* value,int size);
+		void call(IssmDouble & value);
+		void call(IssmDouble* & value,int size);
 }; /*}}}*/
 class RegisterInputFunctor:   public MarshallHandle{ /*{{{*/
@@ -135,6 +135,6 @@
 		template<typename T> void call(T & value){/*General case: do nothing*/}
 		template<typename T> void call(T* & value,int size){/*General case: do nothing*/}
-		void call(IssmDouble value);
-		void call(IssmDouble* value,int size);
+		void call(IssmDouble & value);
+		void call(IssmDouble* & value,int size);
 }; /*}}}*/
 class RegisterOutputFunctor:  public MarshallHandle{ /*{{{*/
@@ -149,6 +149,6 @@
 		template<typename T> void call(T & value){/*General case: do nothing*/}
 		template<typename T> void call(T* & value,int size){/*General case: do nothing*/}
-		void call(IssmDouble value);
-		void call(IssmDouble* value,int size);
+		void call(IssmDouble & value);
+		void call(IssmDouble* & value,int size);
 }; /*}}}*/
 class SetAdjointFunctor:      public MarshallHandle{ /*{{{*/
@@ -165,6 +165,6 @@
 		template<typename T> void call(T & value){/*General case: do nothing*/}
 		template<typename T> void call(T* & value,int size){/*General case: do nothing*/}
-		void call(IssmDouble value);
-		void call(IssmDouble* value,int size);
+		void call(IssmDouble & value);
+		void call(IssmDouble* & value,int size);
 }; /*}}}*/
 #endif
