*******> bugfix.24 Correction Author: James W. Caldwell Correction Date: Nov-13-1991 Program: MINMD Severity: severe Problem: The 1-4 pairlist picker for polarization runs has the addressing fouled up. Could result in addressing a "negative" atom number. Affects: Polarization runs in systems which include dihedral angles. Cause: Storing information as negative numbers in parameter lists. Temprorary workarounds: NONE Code affected: ~/amber4/src/lib/rdparm.f Fix: *** OLD rdparm.f --- NEW rdparm.f *************** *** 313,354 read(nf) (x(l25+i-1),i=1,natom) endif 520 CONTINUE ! if(ipol.gt.0) then ! ip14 = 0 ! do 511 i = 1,nphih ! i1 = IX(I+I40-1)/3+1 ! i2 = IX(I+I42-1)/3+1 ! i3 = IX(I+I44-1)/3+1 ! i4 = IX(I+I46-1)/3+1 ! if(pn(ix(i+i48-1)).gt. 0) then ! if(i3.ge.0.and.i4.ge.0) then ! write(6,'(''phi '',2i4)')i1,i4 ! ih(i1+m12-1) = ih(i1+m12-1) + 1 ! call istuff(ih(i1+m12-1),i1,ih(m14),i4) ! ip14 = ip14+1 ! endif ! endif ! 511 continue ! do 512 i = 1,nphia ! i1 = IX(I+I50-1)/3+1 ! i2 = IX(I+I52-1)/3+1 ! i3 = IX(I+I54-1)/3+1 ! i4 = IX(I+I56-1)/3+1 ! if(pn(ix(i+i58-1)).gt. 0) then ! if(i3.ge.0.and.i4.ge.0) then ! write(6,'(''phi '',2i4)')i1,i4 ! ih(i1+m12-1) = ih(i1+m12-1) + 1 ! if(ih(i1+m12-1).gt.15) then ! print *,'too many dihedrals ' ! call mexit(6, 1) ! endif ! call istuff(ih(i1+m12-1),i1,ih(m14),i4) ! ip14 = ip14+1 ! endif ! endif ! 512 continue ! write(6,3377)ip14 ! 3377 format(t2,'%MINMD/POL-I-14Pairs, ',i4,' pairs for pol 1-4.'/) endif C C ----- CALCULATE THE INVERSE OF THE MASS ----- --- 313,353 ----- read(nf) (x(l25+i-1),i=1,natom) endif 520 CONTINUE ! if(ipol.ne.0) then ! ip14 = 0 ! do 511 i = 1,nphih ! i1 = IX(I+I40-1)/3+1 ! i2 = IX(I+I42-1)/3+1 ! i3 = IX(I+I44-1)/3+1 ! i4 = IX(I+I46-1)/3+1 ! if(pn(ix(i+i48-1)).gt. 0.0) then ! if(ix(i+i44-1).ge.0.and.ix(i+i46-1).ge.0)then ! ih(i1+m12-1) = ih(i1+m12-1) + 1 ! call istuff(ih(i1+m12-1),i1,ih(m14),i4) ! ip14 = ip14+1 ! endif ! endif ! 511 continue ! do 512 i = 1,nphia ! i1 = IX(I+I50-1)/3+1 ! i2 = IX(I+I52-1)/3+1 ! i3 = abs(IX(I+I54-1))/3+1 ! i4 = abs(IX(I+I56-1))/3+1 ! if (pn(ix(i+i58-1)).gt. 0.0) then ! if(ix(i+i54-1).ge.0.and.ix(i+i56-1).ge.0) then ! ih(i1+m12-1) = ih(i1+m12-1) + 1 ! if(ih(i1+m12-1).gt.15) then ! print *,'too many dihedrals ' ! call mexit(6,1) ! endif ! call istuff(ih(i1+m12-1),i1,ih(m14),i4) ! ip14 = ip14+1 ! endif ! endif ! 512 continue ! ! write(6,3377)ip14 ! 3377 format(t2,'%MINMD/POL-I-14Pairs, ',i4,' pairs for pol 1-4.'/) endif C C ----- CALCULATE THE INVERSE OF THE MASS -----