1 SUBROUTINE DIAT2(NA,ESA,EPA,R12,NB,ESB,EPB,S)
2 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
4 C***********************************************************************
6 C OVERLP CALCULATES OVERLAPS BETWEEN ATOMIC ORBITALS FOR PAIRS OF ATOMS
7 C IT CAN HANDLE THE ORBITALS 1S, 2S, 3S, 2P, AND 3P.
9 C***********************************************************************
10 COMMON /SETC/ A(7),B(7),SA,SB,FACTOR,ISP,IPS
11 DIMENSION INMB(17),III(78)
13 DATA INMB/1,0,2,2,3,4,5,6,7,0,8,8,8,9,10,11,12/
14 C NUMBERING CORRESPONDS TO BOND TYPE MATRIX GIVEN ABOVE
17 C III=1 FIRST - FIRST ROW ELEMENTS
23 DATA III/1,2,4, 2,4,4, 2,4,4,4, 2,4,4,4,4,
24 1 2,4,4,4,4,4, 2,4,4,4,4,4,4, 3,5,5,5,5,5,5,6,
25 2 3,5,5,5,5,5,5,6,6, 3,5,5,5,5,5,5,6,6,6, 3,5,5,5,5,5,5,6,6,6,6
26 3, 3,5,5,5,5,5,5,6,6,6,6,6/
30 JMAX=MAX0(INMB(NA),INMB(NB))
31 JMIN=MIN0(INMB(NA),INMB(NB))
32 II=III((JMAX*(JMAX-1))/2+JMIN)
38 GOTO (20,30,40,50,60,70), II
40 C ------------------------------------------------------------------
41 C *** THE ORDERING OF THE ELEMENTS WITHIN S IS
42 C *** S(1,1,1)=(S(B)/S(A))
43 C *** S(1,2,1)=(P-SIGMA(B)/S(A))
44 C *** S(2,1,1)=(S(B)/P-SIGMA(A))
45 C *** S(2,2,1)=(P-SIGMA(B)/P-SIGMA(A))
46 C *** S(2,2,2)=(P-PI(B)/P-PI(A))
47 C ------------------------------------------------------------------
48 C *** FIRST ROW - FIRST ROW OVERLAPS
50 20 CALL SET (ESA,ESB,NA,NB,RAB,II)
51 S(1,1,1)=.25D00*SQRT((SA*SB*RAB*RAB)**3)*(A(3)*B(1)-B(3)*A(1))
54 C *** FIRST ROW - SECOND ROW OVERLAPS
56 30 CALL SET (ESA,ESB,NA,NB,RAB,II)
57 W=SQRT((SA**3)*(SB**5))*(RAB**4)*0.125D00
58 S(1,1,1) = SQRT(1.D00/3.D00)
59 S(1,1,1)=W*S(1,1,1)*(A(4)*B(1)-B(4)*A(1)+A(3)*B(2)-B(3)*A(2))
60 IF (NA.GT.1) CALL SET (EPA,ESB,NA,NB,RAB,II)
61 IF (NB.GT.1) CALL SET (ESA,EPB,NA,NB,RAB,II)
62 W=SQRT((SA**3)*(SB**5))*(RAB**4)*0.125D00
63 S(ISP,IPS,1)=W*(A(3)*B(1)-B(3)*A(1)+A(4)*B(2)-B(4)*A(2))
66 C *** FIRST ROW - THIRD ROW OVERLAPS
68 40 CALL SET (ESA,ESB,NA,NB,RAB,II)
69 W=SQRT((SA**3)*(SB**7)/7.5D00)*(RAB**5)*0.0625D00
71 S(1,1,1)=W*(A(5)*B(1)-B(5)*A(1)+
72 12.D00*(A(4)*B(2)-B(4)*A(2)))/SROOT3
73 IF (NA.GT.1) CALL SET (EPA,ESB,NA,NB,RAB,II)
74 IF (NB.GT.1) CALL SET (ESA,EPB,NA,NB,RAB,II)
75 W=SQRT((SA**3)*(SB**7)/7.5D00)*(RAB**5)*0.0625D00
76 S(ISP,IPS,1)=W*(A(4)*(B(1)+B(3))-B(4)*(A(1)+A(3))+
77 1B(2)*(A(3)+A(5))-A(2)*(B(3)+B(5)))
80 C *** SECOND ROW - SECOND ROW OVERLAPS
82 50 CALL SET (ESA,ESB,NA,NB,RAB,II)
83 W=SQRT((SA*SB)**5)*(RAB**5)*0.0625D00
85 S(1,1,1)=W*(A(5)*B(1)+B(5)*A(1)-2.0D00*A(3)*B(3))/3.0D00
86 CALL SET (ESA,EPB,NA,NB,RAB,II)
87 IF (NA.GT.NB) CALL SET (EPA,ESB,NA,NB,RAB,II)
88 W=SQRT((SA*SB)**5)*(RAB**5)*0.0625D00
89 D=A(4)*(B(1)-B(3))-A(2)*(B(3)-B(5))
90 E=B(4)*(A(1)-A(3))-B(2)*(A(3)-A(5))
91 S(ISP,IPS,1)=W*RT3*(D+E)
92 CALL SET (EPA,ESB,NA,NB,RAB,II)
93 IF (NA.GT.NB) CALL SET (ESA,EPB,NA,NB,RAB,II)
94 W=SQRT((SA*SB)**5)*(RAB**5)*0.0625D00
95 D=A(4)*(B(1)-B(3))-A(2)*(B(3)-B(5))
96 E=B(4)*(A(1)-A(3))-B(2)*(A(3)-A(5))
97 S(IPS,ISP,1)=-W*RT3*(E-D)
98 CALL SET (EPA,EPB,NA,NB,RAB,II)
99 W=SQRT((SA*SB)**5)*(RAB**5)*0.0625D00
100 S(2,2,1)=-W*(B(3)*(A(5)+A(1))-A(3)*(B(5)+B(1)))
102 S(2,2,2)=HD*W*(A(5)*(B(1)-B(3))-B(5)*(A(1)-A(3))
103 1-A(3)*B(1)+B(3)*A(1))
106 C *** SECOND ROW - THIRD ROW OVERLAPS
108 60 CALL SET (ESA,ESB,NA,NB,RAB,II)
109 W=SQRT((SA**5)*(SB**7)/7.5D00)*(RAB**6)*0.03125D00
110 RT3 = 1.D00 / SQRT(3.D00)
112 S(1,1,1)=W*(A(6)*B(1)+A(5)*B(2)-TD*(A(4)*B(3)+
113 1A(3)*B(4))+A(2)*B(5)+A(
115 CALL SET (ESA,EPB,NA,NB,RAB,II)
116 IF (NA.GT.NB) CALL SET (EPA,ESB,NA,NB,RAB,II)
117 W=SQRT((SA**5)*(SB**7)/7.5D00)*(RAB**6)*0.03125D00
119 S(ISP,IPS,1)=W*RT3*(A(6)*B(2)+A(5)*B(1)-TD*(A(4)*B(4)+A(3)*B(3))
120 1+A(2)*B(6)+A(1)*B(5))
121 CALL SET (EPA,ESB,NA,NB,RAB,II)
122 IF (NA.GT.NB) CALL SET (ESA,EPB,NA,NB,RAB,II)
123 W=SQRT((SA**5)*SB**7/7.5D00)*(RAB**6)*0.03125D00
125 S(IPS,ISP,1)=-W*RT3*(A(5)*(TD*B(3)-B(1))-B(5)*(TD*A(3)-A(1))-A(2
126 1)*(B(6)-TD*B(4))+B(2)*(A(6)-TD*A(4)))
127 CALL SET (EPA,EPB,NA,NB,RAB,II)
128 W=SQRT((SA**5)*SB**7/7.5D00)*(RAB**6)*0.03125D00
129 S(2,2,1)=-W*(B(4)*(A(1)+A(5))-A(4)*(B(1)+B(5))
130 1+B(3)*(A(2)+A(6))-A(3)*(B(2)+B(6)))
132 S(2,2,2)=HD*W*(A(6)*(B(1)-B(3))-B(6)*(A(1)-
133 1A(3))+A(5)*(B(2)-B(4))-B(5
134 2)*(A(2)-A(4))-A(4)*B(1)+B(4)*A(1)-A(3)*B(2)+B(3)*A(2))
137 C *** THIRD ROW - THIRD ROW OVERLAPS
139 70 CALL SET (ESA,ESB,NA,NB,RAB,II)
140 W=SQRT((SA*SB*RAB*RAB)**7)/480.D00
141 RT3 = 1.D00 / SQRT(3.D00)
142 S(1,1,1)=W*(A(7)*B(1)-3.D00*(A(5)*B(3)-A(3)*B(5))-A(1)*B(7))/3.D00
143 CALL SET (ESA,EPB,NA,NB,RAB,II)
144 IF (NA.GT.NB) CALL SET (EPA,ESB,NA,NB,RAB,II)
145 W=SQRT((SA*SB*RAB*RAB)**7)/480.D00
146 D=A(6)*(B(1)-B(3))-2.D00*A(4)*(B(3)-B(5))+A(2)*(B(5)-B(7))
147 E=B(6)*(A(1)-A(3))-2.D00*B(4)*(A(3)-A(5))+B(2)*(A(5)-A(7))
148 S(ISP,IPS,1)=W*RT3*(D-E)
149 CALL SET (EPA,ESB,NA,NB,RAB,II)
150 IF (NA.GT.NB) CALL SET (ESA,EPB,NA,NB,RAB,II)
151 W=SQRT((SA*SB*RAB*RAB)**7)/480.D00
152 D=A(6)*(B(1)-B(3))-2.D00*A(4)*(B(3)-B(5))+A(2)*(B(5)-B(7))
153 E=B(6)*(A(1)-A(3))-2.D00*B(4)*(A(3)-A(5))+B(2)*(A(5)-A(7))
154 S(IPS,ISP,1)=-W*RT3*(-D-E)
155 CALL SET (EPA,EPB,NA,NB,RAB,II)
156 W=SQRT((SA*SB*RAB*RAB)**7)/480.D00
158 S(2,2,1)=-W*(A(3)*(B(7)+TD*B(3))-A(5)*(B(1)+
159 1TD*B(5))-B(5)*A(1)+A(7)*B(3))
161 S(2,2,2)=HD*W*(A(7)*(B(1)-B(3))+B(7)*(A(1)-
162 1A(3))+A(5)*(B(5)-B(3)-B(1)
163 2)+B(5)*(A(5)-A(3)-A(1))+2.D00*A(3)*B(3))
167 SUBROUTINE SET (S1,S2,NA,NB,RAB,II)
168 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
169 COMMON /SETC/ A(7),B(7),SA,SB,FACTOR,ISP,IPS
170 C***********************************************************************
172 C SET IS PART OF THE OVERLAP CALCULATION, CALLED BY OVERLP.
173 C IT CALLS AINTGS AND BINTGS
175 C***********************************************************************
176 IF (NA.GT.NB) GO TO 10
188 ALPHA=0.5D00*RAB*(SA+SB)
189 BETA=0.5D00*RAB*(SB-SA)
191 CALL AINTGS (ALPHA,JCALL)
192 CALL BINTGS (BETA,JCALL)
196 SUBROUTINE AINTGS (X,K)
197 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
198 COMMON /SETC/ A(7),B(7),SDUM(3),IDUM(2)
199 C***********************************************************************
201 C AINTGS FORMS THE "A" INTEGRALS FOR THE OVERLAP CALCULATION.
203 C***********************************************************************
212 SUBROUTINE BINTGS (X,K)
213 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
214 COMMON /SETC/ A(7),B(7),SDUM(3),IDUM(2)
216 C**********************************************************************
218 C BINTGS FORMS THE "B" INTEGRALS FOR THE OVERLAP CALCULATION.
220 C**********************************************************************
222 DATA FACT/1.D0,2.D0,6.D0,24.D0,120.D0,720.D0,5040.D0,40320.D0,
223 1362880.D0,3628800.D0,39916800.D0,479001600.D0,6227020800.D0,
224 28.71782912D10,1.307674368D12,2.092278989D13,3.556874281D14/
227 IF (ABSX.GT.3.D00) GO TO 40
228 IF (ABSX.LE.2.D00) GO TO 10
229 IF (K.LE.10) GO TO 40
232 10 IF (ABSX.LE.1.D00) GO TO 20
236 20 IF (ABSX.LE.0.5D00) GO TO 30
240 30 IF (ABSX.LE.1.D-6) GOTO 90
247 50 B(I+1)=(I*B(I)+(-1.D00)**I*EXPX-EXPMX)/X
253 IF(M.NE.0) XF=FACT(M)
254 70 Y=Y+(-X)**M*(2*MOD(M+I+1,2))/(XF*(M+I+1))
258 100 B(I+1)=(2*MOD(I+1,2))/(I+1.D0)