From: Adam Liwo Date: Fri, 23 Jan 2015 20:29:12 +0000 (+0100) Subject: Corrected refsys.f in src_MD-M X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?p=unres.git;a=commitdiff_plain;h=b7c78cdc5ca02a926f9771a0e2541c8152d59d61 Corrected refsys.f in src_MD-M Conflicts: bin/unres/MD/unres-mult-symetr_ifort_MPICH_E0LL2Y.exe source/unres/src_MD-M/cinfo.f --- diff --git a/source/unres/src_MD-M/readpdb.F b/source/unres/src_MD-M/readpdb.F index 8b6f331..c7f0ddd 100644 --- a/source/unres/src_MD-M/readpdb.F +++ b/source/unres/src_MD-M/readpdb.F @@ -169,7 +169,7 @@ C 2/15/2013 by Adam: corrected insertion of the last dummy residue c(j,nres+1)=c(j,1) c(j,2*nres)=c(j,nres) enddo - if (itype(1).eq.21) then + if (itype(1).eq.21) then nsup=nsup-1 nstart_sup=2 if (unres_pdb) then diff --git a/source/unres/src_MD-M/readrtns_CSA.F b/source/unres/src_MD-M/readrtns_CSA.F index c2d0887..0b08ab7 100644 --- a/source/unres/src_MD-M/readrtns_CSA.F +++ b/source/unres/src_MD-M/readrtns_CSA.F @@ -722,9 +722,11 @@ C 12/1/95 Added weight for the multi-body term WCORR 33 write (iout,'(a)') 'Error opening PDB file.' stop 34 continue -c print *,'Begin reading pdb data' +c write (iout,*) 'Begin reading pdb data' +c call flush(iout) call readpdb -c print *,'Finished reading pdb data' +c write (iout,*) 'Finished reading pdb data' +c call flush(iout) if(me.eq.king.or..not.out1file) & write (iout,'(a,i3,a,i3)')'nsup=',nsup, & ' nstart_sup=',nstart_sup diff --git a/source/unres/src_MD-M/refsys.f b/source/unres/src_MD-M/refsys.f index 86b0524..b57c201 100644 --- a/source/unres/src_MD-M/refsys.f +++ b/source/unres/src_MD-M/refsys.f @@ -1,22 +1,22 @@ - subroutine refsys(fail) -c This subroutine calculates unit vectors of a local reference system -c defined by atoms (i2), (i3), and (i4). The x axis is the axis from + subroutine refsys(i2,i3,i4,e1,e2,e3,fail) + implicit real*8 (a-h,o-z) + include 'DIMENSIONS' +c this subroutine calculates unity vectors of a local reference system +c defined by atoms (i2), (i3), and (i4). the x axis is the axis from c atom (i3) to atom (i2), and the xy plane is the plane defined by atoms c (i2), (i3), and (i4). z axis is directed according to the sign of the -c vector product (i3)-(i2) and (i3)-(i4). Sets fail to .true. if atoms +c vector product (i3)-(i2) and (i3)-(i4). sets fail to .true. if atoms c (i2) and (i3) or (i3) and (i4) coincide or atoms (i2), (i3), and (i4) -c form a linear fragment. Returns vectors e1, e2, and e3. - implicit real*8 (a-h,o-z) - include 'DIMENSIONS' +c form a linear fragment. returns vectors e1, e2, and e3. logical fail double precision e1(3),e2(3),e3(3) double precision u(3),z(3) include 'COMMON.IOUNITS' - include 'COMMON.CHAIN' - double precision coinc/1.0D-13/,align /1.0D-13/ + include "COMMON.CHAIN" + data coinc /1.0d-13/,align /1.0d-13/ fail=.false. - s1=0.0 - s2=0.0 + s1=0.0d0 + s2=0.0d0 do 1 i=1,3 zi=c(i,i2)-c(i,i3) ui=c(i,i4)-c(i,i3) @@ -29,28 +29,22 @@ c form a linear fragment. Returns vectors e1, e2, and e3. if (s1.gt.coinc) goto 2 write (iout,1000) i2,i3,i1 fail=.true. -c do 3 i=1,3 -c 3 c(i,i1)=0.0D0 return 2 if (s2.gt.coinc) goto 4 write(iout,1000) i3,i4,i1 fail=.true. - do 5 i=1,3 - 5 c(i,i1)=0.0D0 return 4 s1=1.0/s1 s2=1.0/s2 v1=z(2)*u(3)-z(3)*u(2) v2=z(3)*u(1)-z(1)*u(3) v3=z(1)*u(2)-z(2)*u(1) - anorm=dsqrt(v1*v1+v2*v2+v3*v3) + anorm=sqrt(v1*v1+v2*v2+v3*v3) if (anorm.gt.align) goto 6 write (iout,1010) i2,i3,i4,i1 fail=.true. -c do 7 i=1,3 -c 7 c(i,i1)=0.0D0 return - 6 anorm=1.0D0/anorm + 6 anorm=1.0/anorm e3(1)=v1*anorm e3(2)=v2*anorm e3(3)=v3*anorm @@ -60,9 +54,7 @@ c 7 c(i,i1)=0.0D0 e2(1)=e1(3)*e3(2)-e1(2)*e3(3) e2(2)=e1(1)*e3(3)-e1(3)*e3(1) e2(3)=e1(2)*e3(1)-e1(1)*e3(2) - 1000 format (/1x,' * * * Error - atoms',i4,' and',i4,' coincide.', - 1 'coordinates of atom',i4,' are set to zero.') - 1010 format (/1x,' * * * Error - atoms',2(i4,2h, ),i4,' form a linear', - 1 ' fragment. coordinates of atom',i4,' are set to zero.') + 1000 format (/1x,' * * * error - atoms',i4,' and',i4,' coincide.') + 1010 format (/1x,' * * * error - atoms',2(i4,2h, ),i4,' form a linear') return end diff --git a/source/unres/src_MD-M/ssMD.F b/source/unres/src_MD-M/ssMD.F index eab3c70..15800ae 100644 --- a/source/unres/src_MD-M/ssMD.F +++ b/source/unres/src_MD-M/ssMD.F @@ -532,7 +532,7 @@ c Local variables & allihpb(maxdim),alljhpb(maxdim), & newnss,newihpb(maxdim),newjhpb(maxdim) logical found - integer i_newnss(max_fg_procs),displ(max_fg_procs) + integer i_newnss(max_fg_procs),displ(0:max_fg_procs) integer g_newihpb(maxdim),g_newjhpb(maxdim),g_newnss allnss=0 diff --git a/source/unres/src_MD-M/unres.F b/source/unres/src_MD-M/unres.F index b1ddb28..b3fe055 100644 --- a/source/unres/src_MD-M/unres.F +++ b/source/unres/src_MD-M/unres.F @@ -56,7 +56,6 @@ c call memmon_print_usage() if (me.eq.king) call cinfo C Read force field parameters and job setup data call readrtns - call flush(iout) C if (me.eq.king .or. .not. out1file) then write (iout,'(2a/)') @@ -137,9 +136,15 @@ c-------------------------------------------------------------------------- include 'COMMON.SETUP' include 'COMMON.CONTROL' include 'COMMON.IOUNITS' - if (me.eq.king .or. .not. out1file) - & write (iout,*) "Calling chainbuild" +c if (me.eq.king .or. .not. out1file) then +c write (iout,*) "Calling chainbuild" +c call flush(iout) +c endif call chainbuild +c if (me.eq.king .or. .not. out1file) then +c write (iout,*) "Calling MD" +c call flush(iout) +c endif call MD return end