1 SUBROUTINE DELRI(DG,NI,NJ,RR,DEL1) 2 IMPLICIT DOUBLE PRECISION (A-H,O-Z) 3 DIMENSION DG(22) 4************************************************************************ 5* * 6* ON INPUT NI = ATOMIC NUMBER OF FIRST ATOM * 7* NJ = ATOMIC NUMBER OF SECOND ATOM * 8* RR = INTERATOMIC DISTANCE IN BOHRS * 9* * 10************************************************************************ 11 COMMON /MULTIP/ DD(107),QQ(107),BDD(107,3) 12 COMMON /TWOEL3/ F03(107) 13 COMMON /NATORB/ NATORB(107) 14 COMMON /ALPHA3/ ALP3(153) 15 COMMON /KEYWRD/ KEYWRD 16 COMMON /NUMCAL/ NUMCAL 17 CHARACTER*241 KEYWRD 18 DATA ICALCN/0/ 19 IF (ICALCN.NE.NUMCAL) THEN 20 ICALCN=NUMCAL 21 ENDIF 22 A0=0.529167D0 23 TERM=(27.21D0*DEL1)/(RR*A0*A0) 24 DA=DD(NI) 25 DB=DD(NJ) 26 QA=QQ(NI) 27 QB=QQ(NJ) 28C HYDROGEN-HYDROGEN 29 AEE=0.25D0*(1.0D0/BDD(NI,1)+1.0D0/BDD(NJ,1))**2 30 EE =-RR/(SQRT(RR**2+AEE))**3 31 DG(1)=TERM*EE 32 IF(NATORB(NI).LE.2.AND.NATORB(NJ).LE.2) RETURN 33 IF(NATORB(NI).LE.2) GO TO 10 34C HEAVY ATOM-HYDROGEN 35 ADE=0.25D0*(1.0D0/BDD(NI,2)+1.0D0/BDD(NJ,1))**2 36 AQE=0.25D0*(1.0D0/BDD(NI,3)+1.0D0/BDD(NJ,1))**2 37 DZE = (RR+DA)/(SQRT((RR+DA)**2+ADE))**3 38 1 -(RR-DA)/(SQRT((RR-DA)**2+ADE))**3 39 QZZE =-(RR+2.0D0*QA)/(SQRT((RR+2.0D0*QA)**2+AQE))**3 40 1 -(RR-2.0D0*QA)/(SQRT((RR-2.0D0*QA)**2+AQE))**3 41 2 +(2.0D0*RR)/(SQRT(RR**2+AQE))**3 42 QXXE =-(2.0D0*RR)/(SQRT(RR**2+4.0D0*QA**2+AQE))**3 43 1 +(2.0D0*RR)/(SQRT(RR**2+AQE))**3 44 DG(2)=-(TERM*DZE)/2.0D0 45 DG(3)=TERM*(EE+QZZE/4.0D0) 46 DG(4)=TERM*(EE+QXXE/4.0D0) 47 IF(NATORB(NJ).LE.2) RETURN 48C HYDROGEN-HEAVY ATOM 49 10 AED=0.25D0*(1.0D0/BDD(NI,1)+1.0D0/BDD(NJ,2))**2 50 AEQ=0.25D0*(1.0D0/BDD(NI,1)+1.0D0/BDD(NJ,3))**2 51 EDZ = (RR-DB)/(SQRT((RR-DB)**2+AED))**3 52 1 -(RR+DB)/(SQRT((RR+DB)**2+AED))**3 53 EQZZ =-(RR-2.0D0*QB)/(SQRT((RR-2.0D0*QB)**2+AEQ))**3 54 1 -(RR+2.0D0*QB)/(SQRT((RR+2.0D0*QB)**2+AEQ))**3 55 2 +(2.0D0*RR)/(SQRT(RR**2+AEQ))**3 56 EQXX =-(2.0D0*RR)/(SQRT(RR**2+4.0D0*QB**2+AEQ))**3 57 1 +(2.0D0*RR)/(SQRT(RR**2+AEQ))**3 58 DG(5)=-(TERM*EDZ)/2.0D0 59 DG(11)=TERM*(EE+EQZZ/4.0D0) 60 DG(12)=TERM*(EE+EQXX/4.0D0) 61 IF(NATORB(NI).LE.2) RETURN 62C HEAVY ATOM-HEAVY ATOM 63 ADD=0.25D0*(1.D0/BDD(NI,2)+1.D0/BDD(NJ,2))**2 64 ADQ=0.25D0*(1.D0/BDD(NI,2)+1.D0/BDD(NJ,3))**2 65 AQD=0.25D0*(1.D0/BDD(NI,3)+1.D0/BDD(NJ,2))**2 66 AQQ=0.25D0*(1.D0/BDD(NI,3)+1.D0/BDD(NJ,3))**2 67 DXDX =-(2.D0*RR)/(SQRT(RR**2+(DA-DB)**2+ADD))**3 68 1 +(2.D0*RR)/(SQRT(RR**2+(DA+DB)**2+ADD))**3 69 DZDZ =-(RR+DA-DB)/(SQRT((RR+DA-DB)**2+ADD))**3 70 1 -(RR-DA+DB)/(SQRT((RR-DA+DB)**2+ADD))**3 71 2 +(RR-DA-DB)/(SQRT((RR-DA-DB)**2+ADD))**3 72 3 +(RR+DA+DB)/(SQRT((RR+DA+DB)**2+ADD))**3 73 DZQXX = 2.D0*(RR+DA)/(SQRT((RR+DA)**2+4.D0*QB**2+ADQ))**3 74 1 -2.D0*(RR-DA)/(SQRT((RR-DA)**2+4.D0*QB**2+ADQ))**3 75 2 -2.D0*(RR+DA)/(SQRT((RR+DA)**2+ADQ))**3 76 3 +2.D0*(RR-DA)/(SQRT((RR-DA)**2+ADQ))**3 77 QXXDZ = 2.D0*(RR-DB)/(SQRT((RR-DB)**2+4.D0*QA**2+AQD))**3 78 1 -2.D0*(RR+DB)/(SQRT((RR+DB)**2+4.D0*QA**2+AQD))**3 79 2 -2.D0*(RR-DB)/(SQRT((RR-DB)**2+AQD))**3 80 3 +2.D0*(RR+DB)/(SQRT((RR+DB)**2+AQD))**3 81 DZQZZ = (RR+DA-2.D0*QB)/(SQRT((RR+DA-2.D0*QB)**2+ADQ))**3 82 1 -(RR-DA-2.D0*QB)/(SQRT((RR-DA-2.D0*QB)**2+ADQ))**3 83 2 +(RR+DA+2.D0*QB)/(SQRT((RR+DA+2.D0*QB)**2+ADQ))**3 84 3 -(RR-DA+2.D0*QB)/(SQRT((RR-DA+2.D0*QB)**2+ADQ))**3 85 4 +2.D0*(RR-DA)/(SQRT((RR-DA)**2+ADQ))**3 86 5 -2.D0*(RR+DA)/(SQRT((RR+DA)**2+ADQ))**3 87 QZZDZ = (RR+2.D0*QA-DB)/(SQRT((RR+2.D0*QA-DB)**2+AQD))**3 88 1 -(RR+2.D0*QA+DB)/(SQRT((RR+2.D0*QA+DB)**2+AQD))**3 89 2 +(RR-2.D0*QA-DB)/(SQRT((RR-2.D0*QA-DB)**2+AQD))**3 90 3 -(RR-2.D0*QA+DB)/(SQRT((RR-2.D0*QA+DB)**2+AQD))**3 91 4 -2.D0*(RR-DB)/(SQRT((RR-DB)**2+AQD))**3 92 5 +2.D0*(RR+DB)/(SQRT((RR+DB)**2+AQD))**3 93 QXXQXX=-(2.D0*RR)/(SQRT(RR**2+4.D0*(QA-QB)**2+AQQ))**3 94 1 -(2.D0*RR)/(SQRT(RR**2+4.D0*(QA+QB)**2+AQQ))**3 95 2 +(4.D0*RR)/(SQRT(RR**2+4.D0*QA**2+AQQ))**3 96 3 +(4.D0*RR)/(SQRT(RR**2+4.D0*QB**2+AQQ))**3 97 4 -(4.D0*RR)/(SQRT(RR**2+AQQ))**3 98 QXXQYY=-(4.D0*RR)/(SQRT(RR**2+4.D0*QA**2+4.D0*QB**2+AQQ))**3 99 1 +(4.D0*RR)/(SQRT(RR**2+4.D0*QA**2+AQQ))**3 100 2 +(4.D0*RR)/(SQRT(RR**2+4.D0*QB**2+AQQ))**3 101 3 -(4.D0*RR)/(SQRT(RR**2+AQQ))**3 102 QXXQZZ= 103 1 -2.D0*(RR-2.D0*QB)/(SQRT((RR-2.D0*QB)**2+4.D0*QA**2+AQQ))**3 104 2 -2.D0*(RR+2.D0*QB)/(SQRT((RR+2.D0*QB)**2+4.D0*QA**2+AQQ))**3 105 3 +2.D0*(RR-2.D0*QB)/(SQRT((RR-2.D0*QB)**2+AQQ))**3 106 4 +2.D0*(RR+2.D0*QB)/(SQRT((RR+2.D0*QB)**2+AQQ))**3 107 5 +(4.D0*RR)/(SQRT(RR**2+4.D0*QA**2+AQQ))**3 108 6 -(4.D0*RR)/(SQRT(RR**2+AQQ))**3 109 QZZQXX= 110 1 -2.D0*(RR+2.D0*QA)/(SQRT((RR+2.D0*QA)**2+4.D0*QB**2+AQQ))**3 111 2 -2.D0*(RR-2.D0*QA)/(SQRT((RR-2.D0*QA)**2+4.D0*QB**2+AQQ))**3 112 3 +2.D0*(RR+2.D0*QA)/(SQRT((RR+2.D0*QA)**2+AQQ))**3 113 4 +2.D0*(RR-2.D0*QA)/(SQRT((RR-2.D0*QA)**2+AQQ))**3 114 5 +(4.D0*RR)/(SQRT(RR**2+4.D0*QB**2+AQQ))**3 115 6 -(4.D0*RR)/(SQRT(RR**2+AQQ))**3 116 QZZQZZ= 117 1 -(RR+2.D0*QA-2.D0*QB)/(SQRT((RR+2.D0*QA-2.D0*QB)**2+AQQ))**3 118 2 -(RR+2.D0*QA+2.D0*QB)/(SQRT((RR+2.D0*QA+2.D0*QB)**2+AQQ))**3 119 3 -(RR-2.D0*QA-2.D0*QB)/(SQRT((RR-2.D0*QA-2.D0*QB)**2+AQQ))**3 120 4 -(RR-2.D0*QA+2.D0*QB)/(SQRT((RR-2.D0*QA+2.D0*QB)**2+AQQ))**3 121 5 +2.D0*(RR-2.D0*QA)/(SQRT((RR-2.D0*QA)**2+AQQ))**3 122 6 +2.D0*(RR+2.D0*QA)/(SQRT((RR+2.D0*QA)**2+AQQ))**3 123 7 +2.D0*(RR-2.D0*QB)/(SQRT((RR-2.D0*QB)**2+AQQ))**3 124 8 +2.D0*(RR+2.D0*QB)/(SQRT((RR+2.D0*QB)**2+AQQ))**3 125 9 -(4.D0*RR)/(SQRT(RR**2+AQQ))**3 126 DXQXZ = 2.D0*(RR-QB)/(SQRT((RR-QB)**2+(DA-QB)**2+ADQ))**3 127 1 -2.D0*(RR+QB)/(SQRT((RR+QB)**2+(DA-QB)**2+ADQ))**3 128 2 -2.D0*(RR-QB)/(SQRT((RR-QB)**2+(DA+QB)**2+ADQ))**3 129 3 +2.D0*(RR+QB)/(SQRT((RR+QB)**2+(DA+QB)**2+ADQ))**3 130 QXZDX = 2.D0*(RR+QA)/(SQRT((RR+QA)**2+(QA-DB)**2+AQD))**3 131 1 -2.D0*(RR-QA)/(SQRT((RR-QA)**2+(QA-DB)**2+AQD))**3 132 2 -2.D0*(RR+QA)/(SQRT((RR+QA)**2+(QA+DB)**2+AQD))**3 133 3 +2.D0*(RR-QA)/(SQRT((RR-QA)**2+(QA+DB)**2+AQD))**3 134 QXZQXZ=-2.D0*(RR+QA-QB)/(SQRT((RR+QA-QB)**2+(QA-QB)**2+AQQ))**3 135 1 +2.D0*(RR+QA+QB)/(SQRT((RR+QA+QB)**2+(QA-QB)**2+AQQ))**3 136 2 +2.D0*(RR-QA-QB)/(SQRT((RR-QA-QB)**2+(QA-QB)**2+AQQ))**3 137 3 -2.D0*(RR-QA+QB)/(SQRT((RR-QA+QB)**2+(QA-QB)**2+AQQ))**3 138 4 +2.D0*(RR+QA-QB)/(SQRT((RR+QA-QB)**2+(QA+QB)**2+AQQ))**3 139 5 -2.D0*(RR+QA+QB)/(SQRT((RR+QA+QB)**2+(QA+QB)**2+AQQ))**3 140 6 -2.D0*(RR-QA-QB)/(SQRT((RR-QA-QB)**2+(QA+QB)**2+AQQ))**3 141 7 +2.D0*(RR-QA+QB)/(SQRT((RR-QA+QB)**2+(QA+QB)**2+AQQ))**3 142 DG(6)=(TERM*DZDZ)/4.0D0 143 DG(7)=(TERM*DXDX)/4.0D0 144 DG(8)=-TERM*(EDZ/2.0D0+QZZDZ/8.0D0) 145 DG(9)=-TERM*(EDZ/2.0D0+QXXDZ/8.0D0) 146 DG(10)=-(TERM*QXZDX)/8.0D0 147 DG(13)=-TERM*(DZE/2.0D0+DZQZZ/8.0D0) 148 DG(14)=-TERM*(DZE/2.0D0+DZQXX/8.0D0) 149 DG(15)=-(TERM*DXQXZ)/8.0D0 150 DG(16)=TERM*(EE+EQZZ/4.0D0+QZZE/4.0D0+QZZQZZ/16.0D0) 151 DG(17)=TERM*(EE+EQZZ/4.0D0+QXXE/4.0D0+QXXQZZ/16.0D0) 152 DG(18)=TERM*(EE+EQXX/4.0D0+QZZE/4.0D0+QZZQXX/16.0D0) 153 DG(19)=TERM*(EE+EQXX/4.0D0+QXXE/4.0D0+QXXQXX/16.0D0) 154 DG(20)=(TERM*QXZQXZ)/16.0D0 155 DG(21)=TERM*(EE+EQXX/4.0D0+QXXE/4.0D0+QXXQYY/16.0D0) 156 DG(22)=TERM*(QXXQXX-QXXQYY)/32.0D0 157 RETURN 158 END 159