X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?a=blobdiff_plain;f=source%2Funres%2Fsrc_MD%2Fminimize_p.F;h=dbf9629bb2bad80666afac675cea8bda9242089a;hb=c7a96454a5265471d175bbe066071ac41c8b55c3;hp=c7922c70eaf31b34433407b39968af66c272e4ac;hpb=5e13bfdf2c98103be8166d5d2bbf9269c40e63a4;p=unres.git diff --git a/source/unres/src_MD/minimize_p.F b/source/unres/src_MD/minimize_p.F index c7922c7..dbf9629 100644 --- a/source/unres/src_MD/minimize_p.F +++ b/source/unres/src_MD/minimize_p.F @@ -134,6 +134,7 @@ c---------------------------------------------------------------------------- double precision z(maxres6),d_a_tmp(maxres6) double precision edum(0:n_ene),time_order(0:10) double precision Gcopy(maxres2,maxres2) + double precision e_tmp common /przechowalnia/ Gcopy integer icall /0/ C Workers wait for variables and NF, and NFL from the boss @@ -229,12 +230,26 @@ c call MATOUT2(my_ng_count,dimen3,maxres2,maxers2,ginv_block) call fricmat_mult(z,d_a_tmp) else if (iorder.eq.10) then call setup_fricmat + else if (iorder.eq.11) then +c broadcast new value of iset + call MPI_Bcast(iset,1,MPI_INTEGER,king,FG_COMM,IERROR) + else if (iorder.eq.12) then +c broadcast new value of iset and +c calculate restraint homology energy and +c sum it over FG_COMM + call MPI_Bcast(iset,1,MPI_INTEGER,king,FG_COMM,IERROR) + call e_modeller(e_tmp) + call MPI_Barrier(FG_COMM,IERR) + call MPI_Reduce(e_tmp,ehomology_constr,1, + & MPI_DOUBLE_PRECISION,MPI_SUM,king,FG_COMM,IERR) + else if (iorder.eq.13) then + call chainbuild endif enddo write (*,*) 'Processor',fg_rank,' CG group',kolor, & ' absolute rank',myrank,' leves ERGASTULUM.' write(*,*)'Processor',fg_rank,' wait times for respective orders', - & (' order[',i,']',time_order(i),i=0,10) + & (' order[',i,']',time_order(i),i=0,12) return end #endif @@ -268,7 +283,7 @@ cd write (iout,*) 'ETOTAL called from FUNC' f=energia(0) c if (jjj.gt.0) then c write (iout,'(10f8.3)') (rad2deg*x(i),i=1,n) -c write (iout,*) 'f=',etot +c write (iout,*) 'f=',f c jjj=0 c endif return @@ -483,6 +498,7 @@ c v(25)=4.0D0 endif enddo + call flush(iout) call sumsl(k,d,x,func_dc,grad_dc,iv,liv,lv,v,idum,rdum,fdum) k=0