ちょっとした出来心で、sourceforge 版の mopac7 を gfortran でビルドしてみた。いろいろエラーが出て面倒だったが、下のように修正した上で、-std=legacy
オプションをつけると一応コンパイルは通った。
diff -Naur fortran/esp.f fortran_copy/esp.f --- fortran/esp.f 2005-08-23 18:12:23.000000000 +0900 +++ fortran_copy/esp.f 2013-09-24 22:54:49.000000000 +0900 @@ -945,7 +945,7 @@ C POTWRT=(INDEX(KEYWRD,'POTWRT') .NE. 0) IF(POTWRT) THEN - OPEN(21,STATUS='NEW') + OPEN(21,FILE='ESP.21',STATUS='NEW') WRITE(21,'(I5)') NESP DO 410 I=1,NESP 410 WRITE(21,420) ESP(I),POTPT(1,I)/BOHR,POTPT(2,I)/BOHR, @@ -2354,7 +2354,7 @@ C POTWRT=(INDEX(KEYWRD,'POTWRT') .NE. 0) IF(POTWRT) THEN - OPEN(21,STATUS='NEW') + OPEN(21,FILE='ESP.21',STATUS='NEW') WRITE(21,'(I5)') NESP DO 410 I=1,NESP 410 WRITE(21,420) ESP(I),POTPT(1,I)/BOHR,POTPT(2,I)/BOHR, diff -Naur fortran/symtrz.f fortran_copy/symtrz.f --- fortran/symtrz.f 2003-07-11 22:39:12.000000000 +0900 +++ fortran_copy/symtrz.f 2013-09-24 23:27:30.000000000 +0900 @@ -1042,7 +1042,7 @@ COMMON/SYMRES/TRANS,RTR,SIG,NAME,NAMO(MXDIM),INDEX(MXDIM),ISTA(2) DIMENSION NTYPE(MXDIM),COEFF(NCDUM,NCDUM) DIMENSION CHAR(12),ICOUNT(12) - DATA TOLER,IFRA / 0.1, '????'/ + DATA TOLER,IFRA / 0.1,1061109567/ C NDORBS=0 DO 1 I=1,I1
正しく動作しているかどうかはまだわからない。mopac あんまり使ってないからな…