Index: /issm/trunk-jpl/src/c/analyses/ad_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/ad_core.cpp	(revision 16113)
+++ /issm/trunk-jpl/src/c/analyses/ad_core.cpp	(revision 16114)
@@ -33,4 +33,6 @@
 	IssmDouble *axp = NULL;
 	double     *xp  = NULL;
+	int my_rank=IssmComm::GetRank();
+
 
 	/*AD mode on?: */
@@ -96,5 +98,5 @@
 
 				/*call driver: */
-				fos_forward(1,num_dependents,num_independents, 0, xp, tangentDir, theOutput, jacTimesTangentDir );
+				fos_forward(my_rank,num_dependents,num_independents, 0, xp, tangentDir, theOutput, jacTimesTangentDir );
 
 				/*add to results*/
@@ -162,5 +164,5 @@
 
 				/*call driver: */
-				fov_forward(1,num_dependents,num_independents, tangentDirNum, xp, seed, theOutput, jacTimesSeed );
+				fov_forward(my_rank,num_dependents,num_independents, tangentDirNum, xp, seed, theOutput, jacTimesSeed );
 				/*Free resources: */
 				xDelete(theOutput);
@@ -199,5 +201,5 @@
 
 				/*call driver: */
-				fos_reverse(1,num_dependents,num_independents, aWeightVector, weightVectorTimesJac );
+				fos_reverse(my_rank,num_dependents,num_independents, aWeightVector, weightVectorTimesJac );
 
 				/*add to results*/
@@ -259,5 +261,5 @@
 
 				/*call driver: */
-				fov_reverse(1,num_dependents,num_independents, weightNum, weights, weightsTimesJac );
+				fov_reverse(my_rank,num_dependents,num_independents, weightNum, weights, weightsTimesJac );
 
 				/*add to results: */
Index: /issm/trunk-jpl/src/c/classes/IoModel.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/IoModel.cpp	(revision 16113)
+++ /issm/trunk-jpl/src/c/classes/IoModel.cpp	(revision 16114)
@@ -234,4 +234,6 @@
 	bool keep=false;
 
+	int my_rank=IssmComm::GetRank();
+
 	/*Initialize array detecting whether data[i] is an independent AD mode variable: */
 	this->independents=xNew<bool>(MaximumNumberOfDefinitionsEnum);
@@ -244,6 +246,6 @@
 		/*Start trace*/
 		this->FetchData(&keep,AutodiffKeepEnum);
-		if(keep)trace_on(1,1);
-		else    trace_on(1);
+		if(keep)trace_on(my_rank,1);
+		else    trace_on(my_rank);
 
 		/*build dataset made of independent objects:*/
