C PROGRAM PREHUCKEL PARAMETER (MAXAT=500) IMPLICIT DOUBLE PRECISION (A-H,O-Z) C C PROGRAM TO CONVERT THE FILES PRODUCED BY FORTICON8 (filename.TMP) C AND (filename.EXP) TO A SET OF INPUT FILES FOR THE PSI/88 PROGRAM. C C ALL ROUTINES OF PSI/88 APPLY EXCEPT FOR PSI1. THE PSI1 PART OF C THE PROGRAM WAS RECONSTRUCTED FROM PSI/77 AND HAS BEEN PLACED IN C THE PSI/88 DIRECTORY (PSI1EHT.FOR). RUNNING PSI1 OF PSI/88 WILL C CAUSE THE PROGRAM TO BOMB SINCE IT IS NOT CONFIGURED FOR EHMO C CALCULATIONS. C JJN 9-1-90 C C HACKED OUT OF PREPLOT (FOR MOPAC) - DAN SEVERANCE, PURDUE - 9/88 C C FILES USED: C C FILE 18 - FORTICON8 USER-DEFINED PARAMETER FILE (VIA LOCAL C MODIFICATION) THE FILE IS NAMED filename.EXP C FILE 13 - FORTICON8 GRAPH FILE (VIA LOCAL MODIFICATION) C THE FILE IS NAMED filename.TMP C FILE 8 - OUTPUT PSI1EHT INPUT FILE C FILE 9 - OUTPUT PSICON INPUT FILE C FILE 10 - OUTPUT PSI2 INPUT FILE C PARAMETER (MAXVAL=1000) PARAMETER (MAXMO=1000) PARAMETER (MAXUSR=230) COMMON/OTFILE/VECS(MAXMO,MAXVAL),XYZ(MAXAT,3),NAT(MAXAT), . ATS(70),SYMWRT(MAXUSR),ATS2(70) INTEGER*2 SYMWRT,ATS,ATS2,SYMBL COMMON/INFILE/NUMAT,NORBS,NELECS,HOMO,LUMO,ICHG,HOMTWO,NUSER, . HOMO2,SYMBL(MAXUSR),VELEC(MAXUSR),NS(MAXUSR),EXPS(MAXUSR), . NP(MAXUSR),EXPP(MAXUSR),ND(MAXUSR),EXPD(MAXUSR),C1(MAXUSR), . EXPD2(MAXUSR),C2(MAXUSR) INTEGER*4 NUMAT,NORBS,NELECS,HOMO,NAT,LUMO,ICHG,VELEC,NUSER,HOMO2 CHARACTER*72 SUBTIT,TITLE DATA ATS/'K ','Ca','Sc','Ti','V ','Cr','Mn','Fe','Co','Ni', . 'Cu','Zn','Ga','Ge','As','Se','Br','Kr','Rb','Sr','Y ','Zr', . 'Nb','Mo','Tc','Ru','Rh','Pd','Ag','Cd','In','Sn','Sb','Te', . 'I ','Xe','Cs','Ba','La','Ce','Pr','Nd','Pm','Sm','Eu','Gd', . 'Tb','Dy','Ho','Er','Tm','Yb','Lu','Hf','Ta','W ','Re','Os', . 'Ir','Pt','Au','Hg','Tl','Pb','Bi','Po','At','Rn','Fr','Ra'/ DATA ATS2/' K','CA','SC','TI',' V','CR','MN','FE','CO','NI', . 'CU','ZN','GA','GE','AS','SE','BR','KR','RB','SR',' Y','ZR', . 'NB','MO','TC','RU','RH','PD','AG','CD','IN','SN','SB','TE', . ' I','XE','CS','BA','LA','CE','PR','ND','PM','SM','EU','GD', . 'TB','DY','HO','ER','TM','YB','LU','HF','TA',' W','RE','OS', . 'IR','PT','AU','HG','TL','PB','BI','PO','AT','RN','FR','RA'/ C C READ FROM DISK THE FOLLOWING DATA FOR GRAPHICS CALCULATION, IN ORDER: C C 1. TITLE C 2. NUMBER OF ATOMS, ORBITAL, ELECTRONS, CHARGE C 3. ALL ATOMIC NUMBERS AND ATOMIC COORDINATES C 4. EIGENVECTORS C 5. IF IT EXISTS, READ THE USER-DEFINED PARAMETERS FROM 18. C READ (13,201) TITLE 201 FORMAT (A80) C READ (13,100) NUMAT,NORBS,NELECS,ICHG,NUSER 100 FORMAT (I3,2I4,2I3) C DO 1001 I=1,NUMAT READ (13,101) NAT(I),(XYZ(I,J), J=1,3) 101 FORMAT (I2,3F12.6) 1001 CONTINUE C READ (13,103) ((VECS(I,J),J=1,NORBS), I=1,NORBS) 103 FORMAT (8F10.6) C C CALCULATE THE NUMBER OF THE HOMO. C TOTAL=NORBS HOMTWO=NELECS HOMTWO=(HOMTWO/2.0) HOMO=NINT(HOMTWO) HOMO2=(TOTAL-HOMO+1) C C LUMO=HOMO2-1 20 WRITE(*,*) WRITE (*,'(A,I4,A,I4)')' The HOMO is MO number ',HOMO2, * ' The LUMO is MO number ',LUMO WRITE(*,*) WRITE (*,'(A,$)') ' WHICH MO DO YOU WISH TO PLOT? ' READ (*,*) IMO IF (IMO.LT.0.OR.IMO.GT.NORBS) GO TO 20 C C WRITE PSI1EHT INPUT FILE C WRITE (8,'(A)') 'EHT AUTO 0 11' WRITE (8,108) ICHG,ICHG,ICHG,ICHG 108 FORMAT (4I2) C C READ THE USER-DEFINED PARAMETERS, IF ANY. C IF (NUSER.EQ.0) GO TO 123 DO 767 J=1,NUSER READ (18,768) SYMBL(J),VELEC(J),NS(J),EXPS(J),NP(J),EXPP(J), . ND(J),EXPD(J),C1(J),EXPD2(J),C2(J) 768 FORMAT (A2,2I3,F6.3,I3,F6.3,I3,F6.3,F6.4,F6.3,F6.4) 767 CONTINUE C C 123 DO 1002 I=1,NUMAT WRITE (8,106) NAT(I),(XYZ(I,J), J=1,3) IF (NUSER.EQ.0) GO TO 1002 IF (NAT(I).LE.18) GO TO 1002 DO 867 K=1,NUSER DO 967 L=1,70 IF (SYMBL(K).NE.ATS2(L)) GO TO 967 WRITE (8,555) SYMBL(K),VELEC(K),NS(K),EXPS(K),NP(K),EXPP(K), . ND(K),EXPD(K),C1(K),EXPD2(K),C2(K) 555 FORMAT (A2,2I3,F6.3,I3,F6.3,I3,F6.3,F6.4,F6.3,F6.4) 967 CONTINUE REWIND 18 867 CONTINUE 1002 CONTINUE 106 FORMAT (I2,8X,3F10.6) WRITE (8,'(A)') '99' WRITE (8,30) (VECS(IMO,J), J=1,NORBS) 30 FORMAT (8F10.6) WRITE (8,'(A)') '0101 1.0' WRITE (8,'(A)') '01010000' WRITE (8,'(A)') '0.005' C C WRITE PSICON/88 INPUT FILE C WRITE (9,'(A)') 'EHT' WRITE (9,'(A)') '01010001' WRITE (9,'(A)') ' 0.075000' C C WRITE PSI2/88 INPUT FILE C WRITE (10,'(A)') TITLE SUBTIT=' ' IF (IMO.EQ.(HOMO2+2)) SUBTIT = 'HOMO-2' IF (IMO.EQ.(HOMO2+1)) SUBTIT = 'HOMO-1' IF (IMO.EQ.HOMO2) SUBTIT = 'HOMO' IF (IMO.EQ.LUMO) SUBTIT = 'LUMO' IF (IMO.EQ.(LUMO-1)) SUBTIT = 'LUMO+1' IF (IMO.EQ.(LUMO-2)) SUBTIT = 'LUMO+2' WRITE (10,'(A)') SUBTIT WRITE (10,'(A/A)') '01','00' WRITE (10,'(A)') ' ' DO 1003 I=1,NUMAT WRITE (10,60) NAT(I),(XYZ(I,J),J=1,3) 60 FORMAT (I2,8X,3F10.6) 1003 CONTINUE WRITE (10,'(A)') '99' X = 10.0 SCALE = 0.7 WRITE (10,'(4F10.6)') X,X,X,SCALE DO 1011 I=1,NUMAT SYMWRT(I)='XX' 1011 CONTINUE DO 1005 I=1,NUMAT K=0 DO 1004 J=19,89 K=K+1 IF (NAT(I).EQ.J) SYMWRT(I)=ATS(K) 1004 CONTINUE 1005 CONTINUE L=1 DO 1006 I=1,NUMAT IF (SYMWRT(I).EQ.'XX') GO TO 1006 L=L+1 WRITE (10,1007) SYMWRT(I),L 1007 FORMAT (A2,I2) 1006 CONTINUE WRITE (10,'(A)') '02' STOP END C C