From chemistry-request@ccl.net Sun Oct 13 00:51:23 1991 Date: Sun, 13 Oct 91 00:43:57 EDT From: System Admin (Mike Peterson) To: chemistry@ccl.net Subject: MOPAC bug fixes Status: R I am consolidating some problems found with MOPAC in one message that has been sent to both the chemistry mailing list and USENET sci.chem to try to reach the widest possible audience. As noted in QCPE Bulletin Volume 11, No. 3, pp. 52-54 (1991) and on the chemistry mailing list recently, the following bugs have been found in MOPAC 6 (the 'esp.rof' problem also exists in MOPAC 5). I present the changes in UNIX 'patch' format, where lines modified are indicated with '!', lines added with '+', and 3 lines of context are also given. In all cases the "old" file is listed first and the "new" file second. *** fock2.f.orig Thu Mar 7 15:39:15 1991 --- fock2.f Thu Oct 10 16:53:23 1991 *************** *** 484,489 **** --- 484,491 ---- C FOR VECTOR MACHINES, REMOVE THE ARRAY SUM, UNCOMMENT THE LINES C MARKED CVECTOR, AND COMMENT OUT THE SECOND WHOLE PART OF THE C SUBROUTINE + C *** IF...ELSE...ENDIF ADDED TO THE FOLLOWING LOOP AS NOTED + C IN QCPE BULLETIN VOL. 11, NO. 3, PP. 52-54 (1991). C CVECTOR L=0 CVECTOR M=0 *************** *** 491,497 **** CVECTOR J=(J1*(J1-1))/2 CVECTOR DO 130 J2=JA,JA+3 CVECTOR M=M+1 ! CVECTOR J3=J+J2 CVECTOR SUM=0 CVECTOR DO 120 I=1,16 CVECTOR L=L+1 --- 493,503 ---- CVECTOR J=(J1*(J1-1))/2 CVECTOR DO 130 J2=JA,JA+3 CVECTOR M=M+1 ! CVECTOR IF (IA .GT. JA) THEN ! CVECTOR J3=J+J2 ! CVECTOR ELSE ! CVECTOR J3=J1+(J2*(J2-1))/2 ! CVECTOR ENDIF CVECTOR SUM=0 CVECTOR DO 120 I=1,16 CVECTOR L=L+1 *** hcore.f.orig Thu Mar 7 15:49:19 1991 --- hcore.f Thu Oct 10 16:55:42 1991 *************** *** 38,43 **** --- 38,48 ---- IF(ID.NE.0)CUTOFF=60.D0 IF(ID.NE.0)IONE=0 DEBUG=(INDEX(KEYWRD,'HCORE') .NE. 0) + C *** FOLLOWING 3 LINES ADDED AS NOTED + C IN QCPE BULLETIN VOL. 11, NO. 3, PP. 52-54 (1991). + EFIELD(1)=0.D0 + EFIELD(2)=0.D0 + EFIELD(3)=0.D0 ENDIF FLDON = .FALSE. IF ((EFIELD(1).NE.0.0D00).OR.(EFIELD(2).NE.0.0D00).OR. *** wrtkey.f.orig Sun Mar 10 20:45:45 1991 --- wrtkey.f Thu Oct 10 16:58:29 1991 *************** *** 44,49 **** --- 44,52 ---- IF (MYWORD(ALLKEY,'TIMES') )WRITE(6,280) IF (MYWORD(ALLKEY,'PARASOK') ) WRITE(6,290) IF (MYWORD(ALLKEY,'NODIIS') ) WRITE(6,300) + C *** FOLLOWING LINE ADDED AS NOTED + C IN QCPE BULLETIN VOL. 11, NO. 3, PP. 52-54 (1991). + IF (MYWORD(ALLKEY,'NOTHIE') ) WRITE(6,305) IF (MYWORD(ALLKEY,'BONDS') ) WRITE(6,310) IF (MYWORD(ALLKEY,'GEO-OK') ) WRITE(6,320) IF (MYWORD(ALLKEY,'FOCK') ) WRITE(6,330) *************** *** 442,447 **** --- 445,453 ---- 290 FORMAT(' * PARASOK - USE SOME MNDO PARAMETERS IN AN AM1 CALCULA' 1,'TION') 300 FORMAT(' * NODIIS - DO NOT USE GDIIS GEOMETRY OPTIMIZER') + C *** FOLLOWING LINE ADDED AS NOTED + C IN QCPE BULLETIN VOL. 11, NO. 3, PP. 52-54 (1991). + 305 FORMAT(' * NOTHIEL - DO NOT USE THIEL''S FSTMIN OPTION') 310 FORMAT(' * BONDS - FINAL BOND-ORDER MATRIX TO BE PRINTED') 320 FORMAT(' * GEO-OK - OVERRIDE INTERATOMIC DISTANCE CHECK') 330 FORMAT(' * FOCK - LAST FOCK MATRIX TO BE PRINTED') *** esp.rof.orig Thu Mar 7 15:35:48 1991 --- esp.rof Thu Oct 10 17:02:10 1991 *************** *** 949,955 **** WRITE(21,'(I5)') NESP DO 410 I=1,NESP 410 WRITE(21,420) ESP(I),POTPT(1,I)/BOHR,POTPT(2,I)/BOHR, ! 1POTPT(3,I) ENDIF 420 FORMAT(1X,4E16.7) RETURN --- 949,955 ---- WRITE(21,'(I5)') NESP DO 410 I=1,NESP 410 WRITE(21,420) ESP(I),POTPT(1,I)/BOHR,POTPT(2,I)/BOHR, ! 1POTPT(3,I)/BOHR ENDIF 420 FORMAT(1X,4E16.7) RETURN Note that for the QCPE SGI version of MOPAC 6, an addition change is required in routine 'densit.f' at line 120: change P(L)=SUM2+SUM1 to P(L)=-(SUM2+SUM1) The standard version of MOPAC does not contain code that looks like this in this routine. -- Mike Peterson, System Administrator, U/Toronto Department of Chemistry E-mail: system@alchemy.chem.utoronto.ca Tel: (416) 978-7094 Fax: (416) 978-8775