From df8ac3297a3b0c878c3da92c9d3640f57b76cfd0 Mon Sep 17 00:00:00 2001 From: Cezary Czaplewski Date: Fri, 6 Jul 2018 15:00:54 +0200 Subject: [PATCH] saxs fgproc>1 Adam's correction --- source/unres/src_MD-M/energy_p_new_barrier.F | 65 ++++++++++++++------------ 1 file changed, 35 insertions(+), 30 deletions(-) diff --git a/source/unres/src_MD-M/energy_p_new_barrier.F b/source/unres/src_MD-M/energy_p_new_barrier.F index 8932003..badacd2 100644 --- a/source/unres/src_MD-M/energy_p_new_barrier.F +++ b/source/unres/src_MD-M/energy_p_new_barrier.F @@ -11328,46 +11328,46 @@ c CA CA 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) @@ -11379,6 +11379,11 @@ c CA CA #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 @@ -11403,7 +11408,7 @@ c * " gradX",wsaxs*(auxX - auxX1/Cnorm) enddo enddo #ifdef MPI - endif +c endif #endif return end -- 1.7.9.5