Index: /issm/trunk-jpl/src/c/analyses/ad_core.cpp
===================================================================
--- /issm/trunk-jpl/src/c/analyses/ad_core.cpp	(revision 16117)
+++ /issm/trunk-jpl/src/c/analyses/ad_core.cpp	(revision 16118)
@@ -187,10 +187,9 @@
 				/*retrieve direction index: */
 				femmodel->parameters->FindParam(&aDepIndex,AutodiffFosReverseIndexEnum);
-
-				if (aDepIndex<0 || aDepIndex>=num_dependents) _error_("index value for AutodiffFosReverseIndexEnum should be in [0,num_dependents-1]");
-
 				aWeightVector=xNewZeroInit<double>(num_dependents);
-				aWeightVector[aDepIndex]=1.0;
-
+				if (my_rank==0) {
+					if (aDepIndex<0 || aDepIndex>=num_dependents) _error_("index value for AutodiffFosReverseIndexEnum should be in [0,num_dependents-1]");
+					aWeightVector[aDepIndex]=1.0;
+				}
 				weightVectorTimesJac=xNew<double>(num_independents);
 
Index: /issm/trunk-jpl/src/c/classes/FemModel.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 16117)
+++ /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 16118)
@@ -817,4 +817,5 @@
 	IssmPDouble *dependents;
 	DataSet*    dependent_objects=NULL;
+	int my_rank=IssmComm::GetRank();
 
 	/*AD mode on?: */
@@ -826,11 +827,13 @@
 		parameters->FindParam(&dependent_objects,AutodiffDependentObjectsEnum);
 		if(num_dependents){
-			dependents=xNew<IssmPDouble>(num_dependents);
-
-			/*Go through our dependent variables, and compute the response:*/
-			for(int i=0;i<dependent_objects->Size();i++){
-				DependentObject* dep=(DependentObject*)dependent_objects->GetObjectByOffset(i);
-				dep->Responsex(&output_value,this);
-				output_value>>=dependents[i];
+			if (my_rank==0) {
+				dependents=xNew<IssmPDouble>(num_dependents);
+
+				/*Go through our dependent variables, and compute the response:*/
+				for(int i=0;i<dependent_objects->Size();i++){
+					DependentObject* dep=(DependentObject*)dependent_objects->GetObjectByOffset(i);
+					dep->Responsex(&output_value,this);
+					output_value>>=dependents[i];
+				}
 			}
 		}
