X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?p=unres.git;a=blobdiff_plain;f=source%2Funres%2Fsrc_MD-M%2Funres.F;fp=source%2Funres%2Fsrc_MD-M%2Funres.F;h=b1ddb28e309627732103a9338cf5b0764f240b71;hp=0039fcc967fec041653316549732243f4bfe8601;hb=94c9f54ff76d22351c0cd2f1b01e809515163940;hpb=2a226bfc86eabc6e4eae0c3ad1cbc3cb5417a05a diff --git a/source/unres/src_MD-M/unres.F b/source/unres/src_MD-M/unres.F index 0039fcc..b1ddb28 100644 --- a/source/unres/src_MD-M/unres.F +++ b/source/unres/src_MD-M/unres.F @@ -103,7 +103,12 @@ C Fine-grain slaves just do energy and gradient components. else if (modecalc.eq.12) then call exec_MD else if (modecalc.eq.14) then +#ifdef MPI call exec_MREMD +#else + write (iout,*) "Need a parallel version to run MREMD." + stop +#endif else write (iout,'(a)') 'This calculation type is not supported', & ModeCalc @@ -139,6 +144,7 @@ c-------------------------------------------------------------------------- return end c--------------------------------------------------------------------------- +#ifdef MPI subroutine exec_MREMD include 'DIMENSIONS' #ifdef MPI @@ -163,6 +169,7 @@ c--------------------------------------------------------------------------- endif return end +#endif c--------------------------------------------------------------------------- subroutine exec_eeval_or_minim implicit real*8 (a-h,o-z) @@ -190,7 +197,11 @@ c--------------------------------------------------------------------------- double precision energy_long(0:n_ene),energy_short(0:n_ene) double precision varia(maxvar) if (indpdb.eq.0) call chainbuild +#ifdef MPI time00=MPI_Wtime() +#else + time00=tcpu() +#endif call chainbuild_cart if (split_ene) then print *,"Processor",myrank," after chainbuild" @@ -209,7 +220,11 @@ c--------------------------------------------------------------------------- call enerprint(energy(0)) endif call etotal(energy(0)) +#ifdef MPI time_ene=MPI_Wtime()-time00 +#else + time_ene=tcpu()-time00 +#endif write (iout,*) "Time for energy evaluation",time_ene print *,"after etotal" etota = energy(0) @@ -232,7 +247,11 @@ crc overlap test if (dccart) then print *, 'Calling MINIM_DC' +#ifdef MPI time1=MPI_WTIME() +#else + time1=tcpu() +#endif call minim_dc(etot,iretcode,nfun) else if (indpdb.ne.0) then @@ -241,11 +260,19 @@ crc overlap test endif call geom_to_var(nvar,varia) print *,'Calling MINIMIZE.' +#ifdef MPI time1=MPI_WTIME() +#else + time1=tcpu() +#endif call minimize(etot,varia,iretcode,nfun) endif print *,'SUMSL return code is',iretcode,' eval ',nfun +#ifdef MPI evals=nfun/(MPI_WTIME()-time1) +#else + evals=nfun/(tcpu()-time1) +#endif print *,'# eval/s',evals print *,'refstr=',refstr call hairpin(.true.,nharp,iharp) @@ -611,7 +638,7 @@ c Broadcast the order to compute internal coordinates to the slaves. endif do while (.not. eof) if (read_cart) then - read (intin,'(e15.10,e15.5)',end=1100,err=1100) time,ene + read (intin,'(e15.10,e15.5)',end=11,err=11) time,ene call read_x(intin,*11) #ifdef MPI c Broadcast the order to compute internal coordinates to the slaves. @@ -620,7 +647,7 @@ c Broadcast the order to compute internal coordinates to the slaves. #endif call int_from_cart1(.false.) else - read (intin,'(i5)',end=1100,err=1100) iconf + read (intin,'(i5)',end=11,err=11) iconf call read_angles(intin,*11) call geom_to_var(nvar,varia) call chainbuild