********bugfix.25 Author: Bill Ross Date: 12/19/91 Note: bugfix.32 completes this fix for pure water cases SYMPTOM: EDIT core dumps when "BX4" is used for a TIP4 water box. PROBLEM: In boxes.f BSOL4() edit was calling the TIP3 water routine, MCPDB() instead of MCPDB4(), and in FLOPPY() two args to MCPDB() were reversed. FILE: boxes.f FIX: Simple fix, adequate for old code: change CALL MCPDB(IN6,NWATER,NCUBE,BOXL,OXY,HYDA,HYDB,cp,IOUT) to: CALL MCPDB4(IN6,NWATER,NCUBE,BOXL,OXY,HYDA,HYDB,cp,IOUT) and: CALL MCPDB(IN6,NWATER,NCUBE,BOXL,OXY,HYDA,HYDB,IOUT) to: CALL MCPDB(NWATER,IN6,NCUBE,BOXL,OXY,HYDA,HYDB,IOUT) BEAUTIFICATION FIX: makes calls more orthogonal.. only needed if you are having porting problems related to the OPEN() or CLOSE() routines. *** OLD boxes.f --- NEW boxes.f Thu Dec 19 15:47:14 1991 *************** *** 114,120 DISO = DISO * DISO DISH = DISH * DISH C - IN6 = 35 IWAT = 0 XC(1) = 0.0 XC(2) = 0.0 --- 114,119 ----- DISO = DISO * DISO DISH = DISH * DISH C IWAT = 0 XC(1) = 0.0 XC(2) = 0.0 *************** *** 132,140 C ----- READ IN THE SOLVENT COORDINATES FROM A MONTE CARLO C SIMULATION. ----- C ! OPEN(unit=IN6,file=boxfil,status='old',form='formatted') ! CALL MCPDB(IN6,NWATER,NCUBE,BOXL,OXY,HYDA,HYDB,cp,IOUT) ! CLOSE(IN6) WRITE (IOUT,1010) NWATER C C ----- GET THE MAXIMA AND MINIMA OF THE COORDINATES ----- --- 131,142 ----- C ----- READ IN THE SOLVENT COORDINATES FROM A MONTE CARLO C SIMULATION. ----- C ! IN6 = 35 ! c ! c subroutine amopen(lun,fname,fstat,fform,facc) ! call amopen(IN6, boxfil, 'O', 'F', 'R') ! CALL MCPDB4(NWATER,IN6,NCUBE,BOXL,OXY,HYDA,HYDB,cp,IOUT) ! CALL CLOSC(IN6, 0) WRITE (IOUT,1010) NWATER C C ----- GET THE MAXIMA AND MINIMA OF THE COORDINATES ----- *************** *** 383,389 + (6X,10(1X,I4))) 1180 FORMAT(/t2,'ATOM TYPE FOR HYDROGEN = ',A4,2X,'AND FOR OXYGEN = ', + A4,/) ! 1190 format(/t2,'Number of moleclue water cubes to be generated =' + ,I2) 9108 FORMAT(A4,1X,A4,1X,I5) 9118 FORMAT(5F10.5) --- 385,391 ----- + (6X,10(1X,I4))) 1180 FORMAT(/t2,'ATOM TYPE FOR HYDROGEN = ',A4,2X,'AND FOR OXYGEN = ', + A4,/) ! 1190 format(/t2,'Number of molecule water cubes to be generated =' + ,I2) 9108 FORMAT(A4,1X,A4,1X,I5) 9118 FORMAT(5F10.5) *************** *** 518,526 C ----- READ IN THE SOLVENT COORDINATES FROM A MONTE CARLO C SIMULATION. ----- C ! OPEN(unit=IN6,file=boxfil,status='old',form='formatted') ! CALL MCPDB(IN6,NWATER,NCUBE,BOXL,OXY,HYDA,HYDB,IOUT) ! CLOSE(IN6) WRITE (IOUT,1010) NWATER BETA = 90.0E0 if (itrim.eq.1) then --- 520,529 ----- C ----- READ IN THE SOLVENT COORDINATES FROM A MONTE CARLO C SIMULATION. ----- C ! c subroutine amopen(lun,fname,fstat,fform,facc) ! call amopen(IN6, boxfil, 'O', 'F', 'R') ! CALL MCPDB(NWATER,IN6,NCUBE,BOXL,OXY,HYDA,HYDB,IOUT) ! CALL CLOSC(IN6, 0) WRITE (IOUT,1010) NWATER BETA = 90.0E0 if (itrim.eq.1) then *************** *** 715,721 1120 FORMAT (/,t2,i4,'Water molecules comprise the liquid') 1180 FORMAT(/t2,'ATOM TYPE FOR HYDROGEN = ',A4,2X,'AND FOR OXYGEN = ', + A4,/) ! 1190 format(/t2,'Number of 216 moleclue water cubes to be generated =' + ,I2) 1195 format(/t2,'box trim option = ',i3,' (0 = off, 1 = on)') 1196 format(/t2,'box sizes for trim: ',3f10.3) --- 718,724 ----- 1120 FORMAT (/,t2,i4,'Water molecules comprise the liquid') 1180 FORMAT(/t2,'ATOM TYPE FOR HYDROGEN = ',A4,2X,'AND FOR OXYGEN = ', + A4,/) ! 1190 format(/t2,'Number of 216 molecule water cubes to be generated =' + ,I2) 1195 format(/t2,'box trim option = ',i3,' (0 = off, 1 = on)') 1196 format(/t2,'box sizes for trim: ',3f10.3) *************** *** 843,851 C ----- READ IN THE SOLVENT COORDINATES FROM A MONTE CARLO C SIMULATION. ----- C ! OPEN(unit=IN6,file=boxfil,form='formatted',status='old') ! CALL MCPDB(IN6,NWATER,NCUBE,BOXL,OXY,HYDA,HYDB,6) ! CLOSE(IN6) WRITE (6,1010) NWATER C C ----- GET THE MAXIMA AND MINMA OF THE COORDINATES ----- --- 846,855 ----- C ----- READ IN THE SOLVENT COORDINATES FROM A MONTE CARLO C SIMULATION. ----- C ! c subroutine amopen(lun,fname,fstat,fform,facc) ! call amopen(IN6, boxfil, 'O', 'F', 'R') ! CALL MCPDB(NWATER,IN6,NCUBE,BOXL,OXY,HYDA,HYDB,6) ! CALL CLOSC(IN6, 0) WRITE (6,1010) NWATER C C ----- GET THE MAXIMA AND MINMA OF THE COORDINATES ----- *************** *** 988,994 1120 FORMAT (/,t2,i4,'Water molecules comprise the liquid') 1180 FORMAT(/t2,'ATOM TYPE FOR HYDROGEN = ',A4,2X,'AND FOR OXYGEN = ', + A4,/) ! 1190 format(/t2,'Number of 216 moleclue water cubes to be generated =' + ,I2) 9108 FORMAT(A4,1X,A4,1X,I5) 9118 FORMAT(5F10.5) --- 992,998 ----- 1120 FORMAT (/,t2,i4,'Water molecules comprise the liquid') 1180 FORMAT(/t2,'ATOM TYPE FOR HYDROGEN = ',A4,2X,'AND FOR OXYGEN = ', + A4,/) ! 1190 format(/t2,'Number of 216 molecule water cubes to be generated =' + ,I2) 9108 FORMAT(A4,1X,A4,1X,I5) 9118 FORMAT(5F10.5) *************** *** 1119,1127 C ----- READ IN THE SOLVENT COORDINATES FROM A MONTE CARLO C SIMULATION. ----- C ! OPEN(unit=IN6,file=boxfil,form='formatted',status='old') ! CALL MCPDB4(IN6,NWATER,NCUBE,BOXL,OXY,HYDA,HYDB,CP,IOUT) ! CLOSE(IN6) WRITE (IOUT,1010) NWATER C C ----- GET THE MAXIMA AND MINMA OF THE COORDINATES ----- --- 1123,1132 ----- C ----- READ IN THE SOLVENT COORDINATES FROM A MONTE CARLO C SIMULATION. ----- C ! c subroutine amopen(lun,fname,fstat,fform,facc) ! call amopen(IN6, boxfil, 'O', 'F', 'R') ! CALL MCPDB4(NWATER,IN6,NCUBE,BOXL,OXY,HYDA,HYDB,CP,IOUT) ! CALL CLOSC(IN6, 0) WRITE (IOUT,1010) NWATER C C ----- GET THE MAXIMA AND MINMA OF THE COORDINATES ----- *************** *** 1360,1366 1120 FORMAT (/,t2,i4,'Water molecules comprise the liquid') 1180 FORMAT(/t2,'ATOM TYPES: HYDROGEN',2x,A4,'OXYGEN',2x, + A4,'extra charge',2x,a4/) ! 1190 format(/t2,'Number of 216 moleclue water cubes to be generated =' + ,I2) 1195 format(/t2,'Box trim option = ',i3,' (0 = off, 1 = on)') 1196 format(/t2,'New box sizes: ',3f10.3) --- 1365,1371 ----- 1120 FORMAT (/,t2,i4,'Water molecules comprise the liquid') 1180 FORMAT(/t2,'ATOM TYPES: HYDROGEN',2x,A4,'OXYGEN',2x, + A4,'extra charge',2x,a4/) ! 1190 format(/t2,'Number of 216 molecule water cubes to be generated =' + ,I2) 1195 format(/t2,'Box trim option = ',i3,' (0 = off, 1 = on)') 1196 format(/t2,'New box sizes: ',3f10.3) *************** *** 1373,1379 + /T2,'THE SUBMOLECULE INDEX FOR THE SOLVENT MOLECULE =',I5) 9508 FORMAT(t2,'%EDIT-F-TOOMANY, number of residues exceeded',i7) END ! SUBROUTINE MCPDB4(NF,JWAT,NCUBE,BOXL,OXY,HYDA,HYDB,CP,IOUT) C C************************************************************************ C AMBER ** --- 1378,1386 ----- + /T2,'THE SUBMOLECULE INDEX FOR THE SOLVENT MOLECULE =',I5) 9508 FORMAT(t2,'%EDIT-F-TOOMANY, number of residues exceeded',i7) END ! c ! c------------------------------------------------------------------------ ! SUBROUTINE MCPDB4(JWAT,NF,NCUBE,BOXL,OXY,HYDA,HYDB,CP,IOUT) C C************************************************************************ C AMBER ** *************** *** 1404,1411 C ----- READ THE WATER FIRST ----- C rewind(nf) ! READ(NF,9018) KWAT,BOX ! writE(6,8018) KWAT,BOX 8018 FORMAT(t2,'water read: ',I5,F15.7) 9018 format(i5,f15.7) JWAT = KWAT*NCUBE**3 --- 1411,1418 ----- C ----- READ THE WATER FIRST ----- C rewind(nf) ! READ(NF,'(I5,F15.7)') KWAT,BOX ! write(6,8018) KWAT,BOX 8018 FORMAT(t2,'water read: ',I5,F15.7) JWAT = KWAT*NCUBE**3 BOXL = BOX*NCUBE *************** *** 1407,1413 READ(NF,9018) KWAT,BOX writE(6,8018) KWAT,BOX 8018 FORMAT(t2,'water read: ',I5,F15.7) - 9018 format(i5,f15.7) JWAT = KWAT*NCUBE**3 BOXL = BOX*NCUBE IF(JWAT.LE.14000 .AND. KWAT.LE.512) THEN --- 1414,1419 ----- READ(NF,'(I5,F15.7)') KWAT,BOX write(6,8018) KWAT,BOX 8018 FORMAT(t2,'water read: ',I5,F15.7) JWAT = KWAT*NCUBE**3 BOXL = BOX*NCUBE IF(JWAT.LE.14000 .AND. KWAT.LE.512) THEN