enddo ! i
#ifdef MPI
if (nfgtasks.gt.1) then
- call MPI_Reduce(Pcalc(1),Pcalc_(1),nsaxs,MPI_DOUBLE_PRECISION,
- & MPI_SUM,king,FG_COMM,IERR)
- if (fg_rank.eq.king) then
+ call MPI_AllReduce(Pcalc(1),Pcalc_(1),nsaxs,MPI_DOUBLE_PRECISION,
+ & MPI_SUM,FG_COMM,IERR)
+c if (fg_rank.eq.king) then
do k=1,nsaxs
Pcalc(k) = Pcalc_(k)
enddo
- endif
- call MPI_Reduce(PgradC(k,1,1),PgradC_(k,1,1),3*maxsaxs*nres,
- & MPI_DOUBLE_PRECISION,MPI_SUM,king,FG_COMM,IERR)
- if (fg_rank.eq.king) then
- do i=1,nres
- do l=1,3
- do k=1,nsaxs
- PgradC(k,l,i) = PgradC_(k,l,i)
- enddo
- enddo
- enddo
- endif
+c endif
+c call MPI_AllReduce(PgradC(k,1,1),PgradC_(k,1,1),3*maxsaxs*nres,
+c & MPI_DOUBLE_PRECISION,MPI_SUM,FG_COMM,IERR)
+c if (fg_rank.eq.king) then
+c do i=1,nres
+c do l=1,3
+c do k=1,nsaxs
+c PgradC(k,l,i) = PgradC_(k,l,i)
+c enddo
+c enddo
+c enddo
+c endif
#ifdef ALLSAXS
- call MPI_Reduce(PgradX(k,1,1),PgradX_(k,1,1),3*maxsaxs*nres,
- & MPI_DOUBLE_PRECISION,MPI_SUM,king,FG_COMM,IERR)
- if (fg_rank.eq.king) then
- do i=1,nres
- do l=1,3
- do k=1,nsaxs
- PgradX(k,l,i) = PgradX_(k,l,i)
- enddo
- enddo
- enddo
- endif
+c call MPI_AllReduce(PgradX(k,1,1),PgradX_(k,1,1),3*maxsaxs*nres,
+c & MPI_DOUBLE_PRECISION,MPI_SUM,FG_COMM,IERR)
+c if (fg_rank.eq.king) then
+c do i=1,nres
+c do l=1,3
+c do k=1,nsaxs
+c PgradX(k,l,i) = PgradX_(k,l,i)
+c enddo
+c enddo
+c enddo
+c endif
#endif
endif
#endif
-#ifdef MPI
- if (fg_rank.eq.king) then
-#endif
Cnorm = 0.0d0
do k=1,nsaxs
Cnorm = Cnorm + Pcalc(k)
enddo
+#ifdef MPI
+ if (fg_rank.eq.king) then
+#endif
Esaxs_constr = dlog(Cnorm)-wsaxs0
do k=1,nsaxs
if (Pcalc(k).gt.0.0d0)
#ifdef DEBUG
write (iout,*) "Cnorm",Cnorm," Esaxs_constr",Esaxs_constr
#endif
+#ifdef MPI
+ endif
+#endif
+ gsaxsC=0.0d0
+ gsaxsX=0.0d0
do i=nnt,nct
do l=1,3
auxC=0.0d0
enddo
enddo
#ifdef MPI
- endif
+c endif
#endif
return
end