1 SUBROUTINE FORMXY(W,KR,WCA,WCB,CA,NA,CB,NB)
2 IMPLICIT DOUBLE PRECISION (A-H,O-Z)
3 DIMENSION W(100), WCA(NA), WCB(NB), CA(NA), CB(NB)
4 C***********************************************************************
6 C EACH OF THE NA ELEMENTS OF WCA WILL ADD ON THE NB ELECTROSTATIC
7 C TERMS FROM ATOM B IN CB
9 C EACH OF THE NB ELEMENTS OF WCB WILL ADD ON THE NA ELECTROSTATIC
10 C TERMS FROM ATOM A IN CA
12 C BOTH SUMS WILL INVOLVE THE NA*NB TERMS IN ARRAY W. ONCE USED,
13 C W WILL BE INCREMENTED BY NA*NB.
15 C NA=1 IF ATOM 'A' IS A HYDROGEN, NA=10 IF ATOM 'A' IS NOT A HYDROGEN
16 C NB=1 IF ATOM 'B' IS A HYDROGEN, NB=10 IF ATOM 'B' IS NOT A HYDROGEN
18 C***********************************************************************
19 COMMON /KEYWRD/ KEYWRD
20 COMMON /NUMCAL/ NUMCAL
24 IF(ICALCN.NE.NUMCAL)THEN
26 MINDO3=(INDEX(KEYWRD,'MINDO').NE.0)
31 C CALCULATE THE TOTAL NUMBER OF ELECTRONS ON ATOMS A AND B
35 IF(NA.GT.1.AND.NB.GT.1)THEN
36 PWA=(PA+CA(3)+CA(6)+CA(10))*W1
37 PWB=(PB+CB(3)+CB(6)+CB(10))*W1
52 WCB(1)=WCB(1)+(PA+CA(3)+CA(6)+CA(10))*W1
55 WCA(1)=WCA(1)+(PB+CB(3)+CB(6)+CB(10))*W1
67 IF(NA.GT.1.AND.NB.GT.1)THEN
69 C BOTH ATOMS 'A' AND 'B' ARE HEAVY ATOMS
72 C THIS COMMENTED-OUT CODE RUNS SLOWER ON A SCALAR MACHINE THAN THE
73 C EXPLICIT CODE ACTUALLY USED HERE. THE CODE COMMENTED OUT IS PROVIDED
74 C FOR USERS WHO WANT TO VECTORIZE THE CODE
91 C# IF(I.EQ.J)FACT=0.5D0
92 C# SUM1=SUM1+CB(JI)*W(IJ)*FACT
93 C# 10 SUM2=SUM2+CA(JI)*W(KL)*FACT
98 C# WCA(IJP)=WCA(IJP)+SUM1
99 C# WCB(IJP)=WCB(IJP)+SUM2
103 C START OF EXPLICIT CODE
106 10.25D0*(CB(1)*W(1) + CB(3)*W(3) + CB(6)*W(6) + CB(10)*W(10)) +
107 20.5D0*( CB(2)*W(2) + CB(4)*W(4) + CB(5)*W(5) +
108 3 CB(7)*W(7) + CB(8)*W(8) + CB(9)*W(9))
110 10.5D0*(CB(1)*W(11) + CB(3)*W(13) + CB(6)*W(16) + CB(10)*W(20)) +
111 2CB(2)*W(12) + CB(4)*W(14) + CB(5)*W(15) +
112 3CB(7)*W(17) + CB(8)*W(18) + CB(9)*W(19)
114 10.25D0*(CB(1)*W(21) + CB(3)*W(23) + CB(6)*W(26) + CB(10)*W(30)) +
115 20.5D0*(CB(2)*W(22) + CB(4)*W(24) + CB(5)*W(25) +
116 3 CB(7)*W(27) + CB(8)*W(28) + CB(9)*W(29))
118 10.5D0*(CB(1)*W(31) + CB(3)*W(33) + CB(6)*W(36) + CB(10)*W(40)) +
119 2CB(2)*W(32) + CB(4)*W(34) + CB(5)*W(35) +
120 3CB(7)*W(37) + CB(8)*W(38) + CB(9)*W(39)
122 10.5D0*(CB(1)*W(41) + CB(3)*W(43) + CB(6)*W(46) + CB(10)*W(50)) +
123 2CB(2)*W(42) + CB(4)*W(44) + CB(5)*W(45) +
124 3CB(7)*W(47) + CB(8)*W(48) + CB(9)*W(49)
126 10.25D0*(CB(1)*W(51) + CB(3)*W(53) + CB(6)*W(56) + CB(10)*W(60)) +
127 20.5D0*(CB(2)*W(52) + CB(4)*W(54) + CB(5)*W(55) +
128 3 CB(7)*W(57) + CB(8)*W(58) + CB(9)*W(59))
130 10.5D0*(CB(1)*W(61) + CB(3)*W(63) + CB(6)*W(66) + CB(10)*W(70)) +
131 2CB(2)*W(62) + CB(4)*W(64) + CB(5)*W(65) +
132 3CB(7)*W(67) + CB(8)*W(68) + CB(9)*W(69)
134 10.5D0*(CB(1)*W(71) + CB(3)*W(73) + CB(6)*W(76) + CB(10)*W(80)) +
135 2CB(2)*W(72) + CB(4)*W(74) + CB(5)*W(75) +
136 3CB(7)*W(77) + CB(8)*W(78) + CB(9)*W(79)
138 10.5D0*(CB(1)*W(81) + CB(3)*W(83) + CB(6)*W(86) + CB(10)*W(90)) +
139 2CB(2)*W(82) + CB(4)*W(84) + CB(5)*W(85) +
140 3CB(7)*W(87) + CB(8)*W(88) + CB(9)*W(89)
142 10.25D0*(CB(1)*W(91) + CB(3)*W(93) + CB(6)*W(96) + CB(10)*W(100)) +
143 20.5D0*(CB(2)*W(92) + CB(4)*W(94) + CB(5)*W(95) +
144 3 CB(7)*W(97) + CB(8)*W(98) + CB(9)*W(99))
146 10.25D0*(CA(1)*W(1) + CA(3)*W(21) + CA(6)*W(51) + CA(10)*W(91)) +
147 20.5D0*(CA(2)*W(11) + CA(4)*W(31) + CA(5)*W(41) +
148 3 CA(7)*W(61) + CA(8)*W(71) + CA(9)*W(81))
150 10.5D0*(CA(1)*W(2) + CA(3)*W(22) + CA(6)*W(52) + CA(10)*W(92)) +
151 2CA(2)*W(12) + CA(4)*W(32) + CA(5)*W(42) +
152 3CA(7)*W(62) + CA(8)*W(72) + CA(9)*W(82)
154 10.25D0*(CA(1)*W(3) + CA(3)*W(23) + CA(6)*W(53) + CA(10)*W(93)) +
155 20.5D0*(CA(2)*W(13) + CA(4)*W(33) + CA(5)*W(43) +
156 3 CA(7)*W(63) + CA(8)*W(73) + CA(9)*W(83))
158 10.5D0*(CA(1)*W(4) + CA(3)*W(24) + CA(6)*W(54) + CA(10)*W(94)) +
159 2CA(2)*W(14) + CA(4)*W(34) + CA(5)*W(44) +
160 3CA(7)*W(64) + CA(8)*W(74) + CA(9)*W(84)
162 10.5D0*(CA(1)*W(5) + CA(3)*W(25) + CA(6)*W(55) + CA(10)*W(95)) +
163 2CA(2)*W(15) + CA(4)*W(35) + CA(5)*W(45) +
164 3CA(7)*W(65) + CA(8)*W(75) + CA(9)*W(85)
166 10.25D0*(CA(1)*W(6) + CA(3)*W(26) + CA(6)*W(56) + CA(10)*W(96)) +
167 20.5D0*(CA(2)*W(16) + CA(4)*W(36) + CA(5)*W(46) +
168 3 CA(7)*W(66) + CA(8)*W(76) + CA(9)*W(86))
170 10.5D0*(CA(1)*W(7) + CA(3)*W(27) + CA(6)*W(57) + CA(10)*W(97)) +
171 2CA(2)*W(17) + CA(4)*W(37) + CA(5)*W(47) +
172 3CA(7)*W(67) + CA(8)*W(77) + CA(9)*W(87)
174 10.5D0*(CA(1)*W(8) + CA(3)*W(28) + CA(6)*W(58) + CA(10)*W(98)) +
175 2CA(2)*W(18) + CA(4)*W(38) + CA(5)*W(48) +
176 3CA(7)*W(68) + CA(8)*W(78) + CA(9)*W(88)
178 10.5D0*(CA(1)*W(9) + CA(3)*W(29) + CA(6)*W(59) + CA(10)*W(99)) +
179 2CA(2)*W(19) + CA(4)*W(39) + CA(5)*W(49) +
180 3CA(7)*W(69) + CA(8)*W(79) + CA(9)*W(89)
182 10.25D0*(CA(1)*W(10) + CA(3)*W(30) + CA(6)*W(60) + CA(10)*W(100)) +
183 20.5D0*(CA(2)*W(20) + CA(4)*W(40) + CA(5)*W(50) +
184 3 CA(7)*W(70) + CA(8)*W(80) + CA(9)*W(90))
186 C END OF EXPLICIT CODE
190 C ATOM 'A' IS NOT A HYDROGEN, ATOM 'B' IS A HYDROGEN
198 10 WCA(IJ)=WCA(IJ)+CB(1)*W(IJ)*0.5D0
200 SUM=SUM+CA(IJ)*W(IJ)*0.5D0
201 20 WCA(IJ)=WCA(IJ)+CB(1)*W(IJ)*0.25D0
202 WCB(1) =WCB(1)+SUM*0.5D0
211 30 WCB(IJ)=WCB(IJ)+CA(1)*W(IJ)*0.5D0
213 SUM=SUM+CB(IJ)*W(IJ)*0.5D0
214 40 WCB(IJ)=WCB(IJ)+CA(1)*W(IJ)*0.25D0
215 WCA(1) =WCA(1)+SUM*0.5D0
218 C ATOM 'A' IS A HYDROGEN, ATOM 'B' IS NOT A HYDROGEN
222 C BOTH ATOMS 'A' AND 'B' ARE HYDROGENS
224 WCB(1)=WCB(1)+CA(1)*W(1)*0.25D0
225 WCA(1)=WCA(1)+CB(1)*W(1)*0.25D0