Index: /issm/branches/trunk-larour-SLPS2022/src/c/classes/BarystaticContributions.cpp
===================================================================
--- /issm/branches/trunk-larour-SLPS2022/src/c/classes/BarystaticContributions.cpp	(revision 27107)
+++ /issm/branches/trunk-larour-SLPS2022/src/c/classes/BarystaticContributions.cpp	(revision 27108)
@@ -150,5 +150,4 @@
 	parameters->FindParam(&time,TimeEnum);
 	parameters->FindParam(&rho_water,MaterialsRhoSeawaterEnum);
-
 	ice->Sum(&sumice); hydro->Sum(&sumhydro); ocean->Sum(&sumocean);
 	results->AddResult(new GenericExternalResult<IssmDouble>(results->Size()+1,BslcEnum,this->Total()/oceanarea/rho_water,step,time));
@@ -164,14 +163,23 @@
 
 	if(nice){
-		cumice_serial=this->cumice->ToMPISerial0(); for (int i=0;i<nice;i++)cumice_serial[i]=cumice_serial[i]/oceanarea/rho_water;
-		results->AddResult(new GenericExternalResult<IssmDouble*>(results->Size()+1,CumBslcIcePartitionEnum,cumice_serial,nice,1,step,time));
+		cumice_serial=this->cumice->ToMPISerial0(); 
+		if(IssmComm::GetRank()==0){
+			for (int i=0;i<nice;i++)cumice_serial[i]=cumice_serial[i]/oceanarea/rho_water;
+			results->AddResult(new GenericExternalResult<IssmDouble*>(results->Size()+1,CumBslcIcePartitionEnum,cumice_serial,nice,1,step,time));
+		}
 	}
 	if(nhydro){
-		cumhydro_serial=this->cumhydro->ToMPISerial0(); for (int i=0;i<nhydro;i++)cumhydro_serial[i]=cumhydro_serial[i]/oceanarea/rho_water;
-		results->AddResult(new GenericExternalResult<IssmDouble*>(results->Size()+1,CumBslcHydroPartitionEnum,cumhydro_serial,nhydro,1,step,time));
+		cumhydro_serial=this->cumhydro->ToMPISerial0(); 
+		if(IssmComm::GetRank()==0){
+			for (int i=0;i<nhydro;i++)cumhydro_serial[i]=cumhydro_serial[i]/oceanarea/rho_water;
+			results->AddResult(new GenericExternalResult<IssmDouble*>(results->Size()+1,CumBslcHydroPartitionEnum,cumhydro_serial,nhydro,1,step,time));
+		}
 	}
 	if(nocean){
-		cumocean_serial=this->cumocean->ToMPISerial0(); for (int i=0;i<nocean;i++)cumocean_serial[i]=cumocean_serial[i]/oceanarea/rho_water;
-		results->AddResult(new GenericExternalResult<IssmDouble*>(results->Size()+1,CumBslcOceanPartitionEnum,cumocean_serial,nocean,1,step,time));
+		cumocean_serial=this->cumocean->ToMPISerial0(); 
+		if(IssmComm::GetRank()==0){
+			for (int i=0;i<nocean;i++)cumocean_serial[i]=cumocean_serial[i]/oceanarea/rho_water;
+			results->AddResult(new GenericExternalResult<IssmDouble*>(results->Size()+1,CumBslcOceanPartitionEnum,cumocean_serial,nocean,1,step,time));
+		}
 	}
 
