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