1043 do_stress, charges, dipoles, quadrupoles, force_ab, efield0, efield1, efield2, &
1044 rab2, rab, integral_value, ptens11, ptens12, ptens13, ptens21, ptens22, ptens23, &
1045 ptens31, ptens32, ptens33)
1046 INTEGER,
INTENT(IN) :: atom_a, atom_b
1047 LOGICAL,
DIMENSION(3) :: my_task
1048 LOGICAL,
INTENT(IN) :: do_forces, do_efield, do_stress
1049 REAL(kind=
dp),
DIMENSION(:),
POINTER :: charges
1050 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: dipoles
1051 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: quadrupoles
1052 REAL(kind=
dp),
DIMENSION(3),
INTENT(OUT) :: force_ab
1053 REAL(kind=
dp),
DIMENSION(:),
POINTER :: efield0
1054 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: efield1, efield2
1055 REAL(kind=
dp),
INTENT(IN) :: rab2
1056 REAL(kind=
dp),
DIMENSION(3),
INTENT(IN) :: rab
1057 REAL(kind=
dp),
INTENT(OUT),
OPTIONAL :: integral_value
1058 REAL(kind=
dp),
INTENT(INOUT) :: ptens11, ptens12, ptens13, ptens21, &
1059 ptens22, ptens23, ptens31, ptens32, &
1062 INTEGER :: a, b, c, d, e, i, j, k
1063 LOGICAL :: do_efield0, do_efield1, do_efield2, &
1065 LOGICAL,
DIMENSION(3) :: do_task
1066 LOGICAL,
DIMENSION(3, 3) :: task
1067 REAL(kind=
dp) :: ch_i, ch_j, ef0_i, ef0_j, eloc, energy,
fac, fac_ij, ir, irab2, r, tij, &
1068 tmp, tmp1, tmp11, tmp12, tmp13, tmp2, tmp21, tmp22, tmp23, tmp31, tmp32, tmp33, tmp_ij, &
1070 REAL(kind=
dp),
DIMENSION(0:5) :: f
1071 REAL(kind=
dp),
DIMENSION(3) :: dp_i, dp_j, ef1_i, ef1_j, fr, tij_a
1072 REAL(kind=
dp),
DIMENSION(3, 3) :: ef2_i, ef2_j, qp_i, qp_j, tij_ab
1073 REAL(kind=
dp),
DIMENSION(3, 3, 3) :: tij_abc
1074 REAL(kind=
dp),
DIMENSION(3, 3, 3, 3) :: tij_abcd
1075 REAL(kind=
dp),
DIMENSION(3, 3, 3, 3, 3) :: tij_abcde
1080 IF (do_task(i))
THEN
1083 do_task(1) = (charges(atom_a) /= 0.0_dp) .OR. (charges(atom_b) /= 0.0_dp)
1085 do_task(2) = (any(dipoles(:, atom_a) /= 0.0_dp)) .OR. (any(dipoles(:, atom_b) /= 0.0_dp))
1087 do_task(3) = (any(quadrupoles(:, :, atom_a) /= 0.0_dp)) .OR. (any(quadrupoles(:, :, atom_b) /= 0.0_dp))
1093 task(j, i) = do_task(i) .AND. do_task(j)
1094 task(i, j) = task(j, i)
1097 do_efield0 = do_efield .AND.
ASSOCIATED(efield0)
1098 do_efield1 = do_efield .AND.
ASSOCIATED(efield1)
1099 do_efield2 = do_efield .AND.
ASSOCIATED(efield2)
1102 IF (atom_a == atom_b) fac_ij = 0.5_dp
1107 tij_a = huge(0.0_dp)
1108 tij_ab = huge(0.0_dp)
1109 tij_abc = huge(0.0_dp)
1110 tij_abcd = huge(0.0_dp)
1111 tij_abcde = huge(0.0_dp)
1120 f(i) = irab2*f(i - 1)
1125 force_eval = do_stress
1126 IF (task(1, 1))
THEN
1128 force_eval = do_forces .OR. do_efield1
1130 IF (task(2, 2)) force_eval = force_eval .OR. do_efield0
1131 IF (task(1, 2) .OR. force_eval)
THEN
1132 force_eval = do_stress
1133 tij_a = -rab*f(1)*fac_ij
1134 IF (task(1, 2)) force_eval = force_eval .OR. do_forces
1136 IF (task(1, 1)) force_eval = force_eval .OR. do_efield2
1137 IF (task(3, 3)) force_eval = force_eval .OR. do_efield0
1138 IF (task(2, 2) .OR. task(3, 1) .OR. force_eval)
THEN
1139 force_eval = do_stress
1142 tmp = rab(a)*rab(b)*fac_ij
1143 tij_ab(a, b) = 3.0_dp*tmp*f(2)
1144 IF (a == b) tij_ab(a, b) = tij_ab(a, b) - f(1)*fac_ij
1147 IF (task(2, 2) .OR. task(3, 1)) force_eval = force_eval .OR. do_forces
1149 IF (task(2, 2)) force_eval = force_eval .OR. do_efield2
1150 IF (task(3, 3)) force_eval = force_eval .OR. do_efield1
1151 IF (task(3, 2) .OR. force_eval)
THEN
1152 force_eval = do_stress
1156 tmp = rab(a)*rab(b)*rab(c)*fac_ij
1157 tij_abc(a, b, c) = -15.0_dp*tmp*f(3)
1158 tmp = 3.0_dp*f(2)*fac_ij
1159 IF (a == b) tij_abc(a, b, c) = tij_abc(a, b, c) + tmp*rab(c)
1160 IF (a == c) tij_abc(a, b, c) = tij_abc(a, b, c) + tmp*rab(b)
1161 IF (b == c) tij_abc(a, b, c) = tij_abc(a, b, c) + tmp*rab(a)
1165 IF (task(3, 2)) force_eval = force_eval .OR. do_forces
1167 IF (task(3, 3) .OR. force_eval)
THEN
1168 force_eval = do_stress
1173 tmp = rab(a)*rab(b)*rab(c)*rab(d)*fac_ij
1174 tij_abcd(a, b, c, d) = 105.0_dp*tmp*f(4)
1175 tmp1 = 15.0_dp*f(3)*fac_ij
1176 tmp2 = 3.0_dp*f(2)*fac_ij
1178 tij_abcd(a, b, c, d) = tij_abcd(a, b, c, d) - tmp1*rab(c)*rab(d)
1179 IF (c == d) tij_abcd(a, b, c, d) = tij_abcd(a, b, c, d) + tmp2
1182 tij_abcd(a, b, c, d) = tij_abcd(a, b, c, d) - tmp1*rab(b)*rab(d)
1183 IF (b == d) tij_abcd(a, b, c, d) = tij_abcd(a, b, c, d) + tmp2
1185 IF (a == d) tij_abcd(a, b, c, d) = tij_abcd(a, b, c, d) - tmp1*rab(b)*rab(c)
1187 tij_abcd(a, b, c, d) = tij_abcd(a, b, c, d) - tmp1*rab(a)*rab(d)
1188 IF (a == d) tij_abcd(a, b, c, d) = tij_abcd(a, b, c, d) + tmp2
1190 IF (b == d) tij_abcd(a, b, c, d) = tij_abcd(a, b, c, d) - tmp1*rab(a)*rab(c)
1191 IF (c == d) tij_abcd(a, b, c, d) = tij_abcd(a, b, c, d) - tmp1*rab(a)*rab(b)
1196 IF (task(3, 3)) force_eval = force_eval .OR. do_forces
1198 IF (force_eval)
THEN
1199 force_eval = do_stress
1205 tmp = rab(a)*rab(b)*rab(c)*rab(d)*rab(e)*fac_ij
1206 tij_abcde(a, b, c, d, e) = -945.0_dp*tmp*f(5)
1207 tmp1 = 105.0_dp*f(4)*fac_ij
1208 tmp2 = 15.0_dp*f(3)*fac_ij
1210 tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) + tmp1*rab(c)*rab(d)*rab(e)
1211 IF (c == d) tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) - tmp2*rab(e)
1212 IF (c == e) tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) - tmp2*rab(d)
1213 IF (d == e) tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) - tmp2*rab(c)
1216 tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) + tmp1*rab(b)*rab(d)*rab(e)
1217 IF (b == d) tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) - tmp2*rab(e)
1218 IF (b == e) tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) - tmp2*rab(d)
1219 IF (d == e) tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) - tmp2*rab(b)
1222 tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) + tmp1*rab(b)*rab(c)*rab(e)
1223 IF (b == c) tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) - tmp2*rab(e)
1224 IF (b == e) tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) - tmp2*rab(c)
1225 IF (c == e) tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) - tmp2*rab(b)
1228 tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) + tmp1*rab(b)*rab(c)*rab(d)
1229 IF (b == c) tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) - tmp2*rab(d)
1230 IF (b == d) tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) - tmp2*rab(c)
1231 IF (c == d) tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) - tmp2*rab(b)
1234 tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) + tmp1*rab(a)*rab(d)*rab(e)
1235 IF (d == e) tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) - tmp2*rab(a)
1238 tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) + tmp1*rab(a)*rab(c)*rab(e)
1239 IF (c == e) tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) - tmp2*rab(a)
1242 tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) + tmp1*rab(a)*rab(c)*rab(d)
1243 IF (c == d) tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) - tmp2*rab(a)
1245 IF (c == d) tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) + tmp1*rab(a)*rab(b)*rab(e)
1246 IF (c == e) tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) + tmp1*rab(a)*rab(b)*rab(d)
1247 IF (d == e) tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) + tmp1*rab(a)*rab(b)*rab(c)
1265 IF (debug_this_module)
THEN
1273 IF (any(task(1, :)))
THEN
1274 ch_j = charges(atom_a)
1275 ch_i = charges(atom_b)
1277 IF (any(task(2, :)))
THEN
1278 dp_j = dipoles(:, atom_a)
1279 dp_i = dipoles(:, atom_b)
1281 IF (any(task(3, :)))
THEN
1282 qp_j = quadrupoles(:, :, atom_a)
1283 qp_i = quadrupoles(:, :, atom_b)
1285 IF (task(1, 1))
THEN
1287 eloc = eloc + ch_i*tij*ch_j
1289 IF (do_forces .OR. do_stress)
THEN
1290 fr(1) = fr(1) - ch_j*tij_a(1)*ch_i
1291 fr(2) = fr(2) - ch_j*tij_a(2)*ch_i
1292 fr(3) = fr(3) - ch_j*tij_a(3)*ch_i
1297 IF (do_efield0)
THEN
1298 ef0_i = ef0_i + tij*ch_j
1300 ef0_j = ef0_j + tij*ch_i
1303 IF (do_efield1)
THEN
1304 ef1_i(1) = ef1_i(1) - tij_a(1)*ch_j
1305 ef1_i(2) = ef1_i(2) - tij_a(2)*ch_j
1306 ef1_i(3) = ef1_i(3) - tij_a(3)*ch_j
1308 ef1_j(1) = ef1_j(1) + tij_a(1)*ch_i
1309 ef1_j(2) = ef1_j(2) + tij_a(2)*ch_i
1310 ef1_j(3) = ef1_j(3) + tij_a(3)*ch_i
1315 IF (do_efield2)
THEN
1316 ef2_i(1, 1) = ef2_i(1, 1) - tij_ab(1, 1)*ch_j
1317 ef2_i(2, 1) = ef2_i(2, 1) - tij_ab(2, 1)*ch_j
1318 ef2_i(3, 1) = ef2_i(3, 1) - tij_ab(3, 1)*ch_j
1319 ef2_i(1, 2) = ef2_i(1, 2) - tij_ab(1, 2)*ch_j
1320 ef2_i(2, 2) = ef2_i(2, 2) - tij_ab(2, 2)*ch_j
1321 ef2_i(3, 2) = ef2_i(3, 2) - tij_ab(3, 2)*ch_j
1322 ef2_i(1, 3) = ef2_i(1, 3) - tij_ab(1, 3)*ch_j
1323 ef2_i(2, 3) = ef2_i(2, 3) - tij_ab(2, 3)*ch_j
1324 ef2_i(3, 3) = ef2_i(3, 3) - tij_ab(3, 3)*ch_j
1326 ef2_j(1, 1) = ef2_j(1, 1) - tij_ab(1, 1)*ch_i
1327 ef2_j(2, 1) = ef2_j(2, 1) - tij_ab(2, 1)*ch_i
1328 ef2_j(3, 1) = ef2_j(3, 1) - tij_ab(3, 1)*ch_i
1329 ef2_j(1, 2) = ef2_j(1, 2) - tij_ab(1, 2)*ch_i
1330 ef2_j(2, 2) = ef2_j(2, 2) - tij_ab(2, 2)*ch_i
1331 ef2_j(3, 2) = ef2_j(3, 2) - tij_ab(3, 2)*ch_i
1332 ef2_j(1, 3) = ef2_j(1, 3) - tij_ab(1, 3)*ch_i
1333 ef2_j(2, 3) = ef2_j(2, 3) - tij_ab(2, 3)*ch_i
1334 ef2_j(3, 3) = ef2_j(3, 3) - tij_ab(3, 3)*ch_i
1338 IF (task(2, 2))
THEN
1340 tmp = -(dp_i(1)*(tij_ab(1, 1)*dp_j(1) + &
1341 tij_ab(2, 1)*dp_j(2) + &
1342 tij_ab(3, 1)*dp_j(3)) + &
1343 dp_i(2)*(tij_ab(1, 2)*dp_j(1) + &
1344 tij_ab(2, 2)*dp_j(2) + &
1345 tij_ab(3, 2)*dp_j(3)) + &
1346 dp_i(3)*(tij_ab(1, 3)*dp_j(1) + &
1347 tij_ab(2, 3)*dp_j(2) + &
1348 tij_ab(3, 3)*dp_j(3)))
1351 IF (do_forces .OR. do_stress)
THEN
1353 fr(k) = fr(k) + dp_i(1)*(tij_abc(1, 1, k)*dp_j(1) + &
1354 tij_abc(2, 1, k)*dp_j(2) + &
1355 tij_abc(3, 1, k)*dp_j(3)) &
1356 + dp_i(2)*(tij_abc(1, 2, k)*dp_j(1) + &
1357 tij_abc(2, 2, k)*dp_j(2) + &
1358 tij_abc(3, 2, k)*dp_j(3)) &
1359 + dp_i(3)*(tij_abc(1, 3, k)*dp_j(1) + &
1360 tij_abc(2, 3, k)*dp_j(2) + &
1361 tij_abc(3, 3, k)*dp_j(3))
1367 IF (do_efield0)
THEN
1368 ef0_i = ef0_i - (tij_a(1)*dp_j(1) + &
1369 tij_a(2)*dp_j(2) + &
1372 ef0_j = ef0_j + (tij_a(1)*dp_i(1) + &
1373 tij_a(2)*dp_i(2) + &
1377 IF (do_efield1)
THEN
1378 ef1_i(1) = ef1_i(1) + (tij_ab(1, 1)*dp_j(1) + &
1379 tij_ab(2, 1)*dp_j(2) + &
1380 tij_ab(3, 1)*dp_j(3))
1381 ef1_i(2) = ef1_i(2) + (tij_ab(1, 2)*dp_j(1) + &
1382 tij_ab(2, 2)*dp_j(2) + &
1383 tij_ab(3, 2)*dp_j(3))
1384 ef1_i(3) = ef1_i(3) + (tij_ab(1, 3)*dp_j(1) + &
1385 tij_ab(2, 3)*dp_j(2) + &
1386 tij_ab(3, 3)*dp_j(3))
1388 ef1_j(1) = ef1_j(1) + (tij_ab(1, 1)*dp_i(1) + &
1389 tij_ab(2, 1)*dp_i(2) + &
1390 tij_ab(3, 1)*dp_i(3))
1391 ef1_j(2) = ef1_j(2) + (tij_ab(1, 2)*dp_i(1) + &
1392 tij_ab(2, 2)*dp_i(2) + &
1393 tij_ab(3, 2)*dp_i(3))
1394 ef1_j(3) = ef1_j(3) + (tij_ab(1, 3)*dp_i(1) + &
1395 tij_ab(2, 3)*dp_i(2) + &
1396 tij_ab(3, 3)*dp_i(3))
1399 IF (do_efield2)
THEN
1400 ef2_i(1, 1) = ef2_i(1, 1) + (tij_abc(1, 1, 1)*dp_j(1) + &
1401 tij_abc(2, 1, 1)*dp_j(2) + &
1402 tij_abc(3, 1, 1)*dp_j(3))
1403 ef2_i(1, 2) = ef2_i(1, 2) + (tij_abc(1, 1, 2)*dp_j(1) + &
1404 tij_abc(2, 1, 2)*dp_j(2) + &
1405 tij_abc(3, 1, 2)*dp_j(3))
1406 ef2_i(1, 3) = ef2_i(1, 3) + (tij_abc(1, 1, 3)*dp_j(1) + &
1407 tij_abc(2, 1, 3)*dp_j(2) + &
1408 tij_abc(3, 1, 3)*dp_j(3))
1409 ef2_i(2, 1) = ef2_i(2, 1) + (tij_abc(1, 2, 1)*dp_j(1) + &
1410 tij_abc(2, 2, 1)*dp_j(2) + &
1411 tij_abc(3, 2, 1)*dp_j(3))
1412 ef2_i(2, 2) = ef2_i(2, 2) + (tij_abc(1, 2, 2)*dp_j(1) + &
1413 tij_abc(2, 2, 2)*dp_j(2) + &
1414 tij_abc(3, 2, 2)*dp_j(3))
1415 ef2_i(2, 3) = ef2_i(2, 3) + (tij_abc(1, 2, 3)*dp_j(1) + &
1416 tij_abc(2, 2, 3)*dp_j(2) + &
1417 tij_abc(3, 2, 3)*dp_j(3))
1418 ef2_i(3, 1) = ef2_i(3, 1) + (tij_abc(1, 3, 1)*dp_j(1) + &
1419 tij_abc(2, 3, 1)*dp_j(2) + &
1420 tij_abc(3, 3, 1)*dp_j(3))
1421 ef2_i(3, 2) = ef2_i(3, 2) + (tij_abc(1, 3, 2)*dp_j(1) + &
1422 tij_abc(2, 3, 2)*dp_j(2) + &
1423 tij_abc(3, 3, 2)*dp_j(3))
1424 ef2_i(3, 3) = ef2_i(3, 3) + (tij_abc(1, 3, 3)*dp_j(1) + &
1425 tij_abc(2, 3, 3)*dp_j(2) + &
1426 tij_abc(3, 3, 3)*dp_j(3))
1428 ef2_j(1, 1) = ef2_j(1, 1) - (tij_abc(1, 1, 1)*dp_i(1) + &
1429 tij_abc(2, 1, 1)*dp_i(2) + &
1430 tij_abc(3, 1, 1)*dp_i(3))
1431 ef2_j(1, 2) = ef2_j(1, 2) - (tij_abc(1, 1, 2)*dp_i(1) + &
1432 tij_abc(2, 1, 2)*dp_i(2) + &
1433 tij_abc(3, 1, 2)*dp_i(3))
1434 ef2_j(1, 3) = ef2_j(1, 3) - (tij_abc(1, 1, 3)*dp_i(1) + &
1435 tij_abc(2, 1, 3)*dp_i(2) + &
1436 tij_abc(3, 1, 3)*dp_i(3))
1437 ef2_j(2, 1) = ef2_j(2, 1) - (tij_abc(1, 2, 1)*dp_i(1) + &
1438 tij_abc(2, 2, 1)*dp_i(2) + &
1439 tij_abc(3, 2, 1)*dp_i(3))
1440 ef2_j(2, 2) = ef2_j(2, 2) - (tij_abc(1, 2, 2)*dp_i(1) + &
1441 tij_abc(2, 2, 2)*dp_i(2) + &
1442 tij_abc(3, 2, 2)*dp_i(3))
1443 ef2_j(2, 3) = ef2_j(2, 3) - (tij_abc(1, 2, 3)*dp_i(1) + &
1444 tij_abc(2, 2, 3)*dp_i(2) + &
1445 tij_abc(3, 2, 3)*dp_i(3))
1446 ef2_j(3, 1) = ef2_j(3, 1) - (tij_abc(1, 3, 1)*dp_i(1) + &
1447 tij_abc(2, 3, 1)*dp_i(2) + &
1448 tij_abc(3, 3, 1)*dp_i(3))
1449 ef2_j(3, 2) = ef2_j(3, 2) - (tij_abc(1, 3, 2)*dp_i(1) + &
1450 tij_abc(2, 3, 2)*dp_i(2) + &
1451 tij_abc(3, 3, 2)*dp_i(3))
1452 ef2_j(3, 3) = ef2_j(3, 3) - (tij_abc(1, 3, 3)*dp_i(1) + &
1453 tij_abc(2, 3, 3)*dp_i(2) + &
1454 tij_abc(3, 3, 3)*dp_i(3))
1458 IF (task(2, 1))
THEN
1460 tmp = ch_j*(tij_a(1)*dp_i(1) + &
1461 tij_a(2)*dp_i(2) + &
1463 - ch_i*(tij_a(1)*dp_j(1) + &
1464 tij_a(2)*dp_j(2) + &
1468 IF (do_forces .OR. do_stress)
THEN
1470 fr(k) = fr(k) - ch_j*(tij_ab(1, k)*dp_i(1) + &
1471 tij_ab(2, k)*dp_i(2) + &
1472 tij_ab(3, k)*dp_i(3)) &
1473 + ch_i*(tij_ab(1, k)*dp_j(1) + &
1474 tij_ab(2, k)*dp_j(2) + &
1475 tij_ab(3, k)*dp_j(3))
1479 IF (task(3, 3))
THEN
1482 tmp11 = qp_i(1, 1)*(tij_abcd(1, 1, 1, 1)*qp_j(1, 1) + &
1483 tij_abcd(2, 1, 1, 1)*qp_j(2, 1) + &
1484 tij_abcd(3, 1, 1, 1)*qp_j(3, 1) + &
1485 tij_abcd(1, 2, 1, 1)*qp_j(1, 2) + &
1486 tij_abcd(2, 2, 1, 1)*qp_j(2, 2) + &
1487 tij_abcd(3, 2, 1, 1)*qp_j(3, 2) + &
1488 tij_abcd(1, 3, 1, 1)*qp_j(1, 3) + &
1489 tij_abcd(2, 3, 1, 1)*qp_j(2, 3) + &
1490 tij_abcd(3, 3, 1, 1)*qp_j(3, 3))
1491 tmp21 = qp_i(2, 1)*(tij_abcd(1, 1, 1, 2)*qp_j(1, 1) + &
1492 tij_abcd(2, 1, 1, 2)*qp_j(2, 1) + &
1493 tij_abcd(3, 1, 1, 2)*qp_j(3, 1) + &
1494 tij_abcd(1, 2, 1, 2)*qp_j(1, 2) + &
1495 tij_abcd(2, 2, 1, 2)*qp_j(2, 2) + &
1496 tij_abcd(3, 2, 1, 2)*qp_j(3, 2) + &
1497 tij_abcd(1, 3, 1, 2)*qp_j(1, 3) + &
1498 tij_abcd(2, 3, 1, 2)*qp_j(2, 3) + &
1499 tij_abcd(3, 3, 1, 2)*qp_j(3, 3))
1500 tmp31 = qp_i(3, 1)*(tij_abcd(1, 1, 1, 3)*qp_j(1, 1) + &
1501 tij_abcd(2, 1, 1, 3)*qp_j(2, 1) + &
1502 tij_abcd(3, 1, 1, 3)*qp_j(3, 1) + &
1503 tij_abcd(1, 2, 1, 3)*qp_j(1, 2) + &
1504 tij_abcd(2, 2, 1, 3)*qp_j(2, 2) + &
1505 tij_abcd(3, 2, 1, 3)*qp_j(3, 2) + &
1506 tij_abcd(1, 3, 1, 3)*qp_j(1, 3) + &
1507 tij_abcd(2, 3, 1, 3)*qp_j(2, 3) + &
1508 tij_abcd(3, 3, 1, 3)*qp_j(3, 3))
1509 tmp22 = qp_i(2, 2)*(tij_abcd(1, 1, 2, 2)*qp_j(1, 1) + &
1510 tij_abcd(2, 1, 2, 2)*qp_j(2, 1) + &
1511 tij_abcd(3, 1, 2, 2)*qp_j(3, 1) + &
1512 tij_abcd(1, 2, 2, 2)*qp_j(1, 2) + &
1513 tij_abcd(2, 2, 2, 2)*qp_j(2, 2) + &
1514 tij_abcd(3, 2, 2, 2)*qp_j(3, 2) + &
1515 tij_abcd(1, 3, 2, 2)*qp_j(1, 3) + &
1516 tij_abcd(2, 3, 2, 2)*qp_j(2, 3) + &
1517 tij_abcd(3, 3, 2, 2)*qp_j(3, 3))
1518 tmp32 = qp_i(3, 2)*(tij_abcd(1, 1, 2, 3)*qp_j(1, 1) + &
1519 tij_abcd(2, 1, 2, 3)*qp_j(2, 1) + &
1520 tij_abcd(3, 1, 2, 3)*qp_j(3, 1) + &
1521 tij_abcd(1, 2, 2, 3)*qp_j(1, 2) + &
1522 tij_abcd(2, 2, 2, 3)*qp_j(2, 2) + &
1523 tij_abcd(3, 2, 2, 3)*qp_j(3, 2) + &
1524 tij_abcd(1, 3, 2, 3)*qp_j(1, 3) + &
1525 tij_abcd(2, 3, 2, 3)*qp_j(2, 3) + &
1526 tij_abcd(3, 3, 2, 3)*qp_j(3, 3))
1527 tmp33 = qp_i(3, 3)*(tij_abcd(1, 1, 3, 3)*qp_j(1, 1) + &
1528 tij_abcd(2, 1, 3, 3)*qp_j(2, 1) + &
1529 tij_abcd(3, 1, 3, 3)*qp_j(3, 1) + &
1530 tij_abcd(1, 2, 3, 3)*qp_j(1, 2) + &
1531 tij_abcd(2, 2, 3, 3)*qp_j(2, 2) + &
1532 tij_abcd(3, 2, 3, 3)*qp_j(3, 2) + &
1533 tij_abcd(1, 3, 3, 3)*qp_j(1, 3) + &
1534 tij_abcd(2, 3, 3, 3)*qp_j(2, 3) + &
1535 tij_abcd(3, 3, 3, 3)*qp_j(3, 3))
1539 tmp = tmp11 + tmp12 + tmp13 + &
1540 tmp21 + tmp22 + tmp23 + &
1541 tmp31 + tmp32 + tmp33
1543 eloc = eloc +
fac*tmp
1545 IF (do_forces .OR. do_stress)
THEN
1547 tmp11 = qp_i(1, 1)*(tij_abcde(1, 1, 1, 1, k)*qp_j(1, 1) + &
1548 tij_abcde(2, 1, 1, 1, k)*qp_j(2, 1) + &
1549 tij_abcde(3, 1, 1, 1, k)*qp_j(3, 1) + &
1550 tij_abcde(1, 2, 1, 1, k)*qp_j(1, 2) + &
1551 tij_abcde(2, 2, 1, 1, k)*qp_j(2, 2) + &
1552 tij_abcde(3, 2, 1, 1, k)*qp_j(3, 2) + &
1553 tij_abcde(1, 3, 1, 1, k)*qp_j(1, 3) + &
1554 tij_abcde(2, 3, 1, 1, k)*qp_j(2, 3) + &
1555 tij_abcde(3, 3, 1, 1, k)*qp_j(3, 3))
1556 tmp21 = qp_i(2, 1)*(tij_abcde(1, 1, 2, 1, k)*qp_j(1, 1) + &
1557 tij_abcde(2, 1, 2, 1, k)*qp_j(2, 1) + &
1558 tij_abcde(3, 1, 2, 1, k)*qp_j(3, 1) + &
1559 tij_abcde(1, 2, 2, 1, k)*qp_j(1, 2) + &
1560 tij_abcde(2, 2, 2, 1, k)*qp_j(2, 2) + &
1561 tij_abcde(3, 2, 2, 1, k)*qp_j(3, 2) + &
1562 tij_abcde(1, 3, 2, 1, k)*qp_j(1, 3) + &
1563 tij_abcde(2, 3, 2, 1, k)*qp_j(2, 3) + &
1564 tij_abcde(3, 3, 2, 1, k)*qp_j(3, 3))
1565 tmp31 = qp_i(3, 1)*(tij_abcde(1, 1, 3, 1, k)*qp_j(1, 1) + &
1566 tij_abcde(2, 1, 3, 1, k)*qp_j(2, 1) + &
1567 tij_abcde(3, 1, 3, 1, k)*qp_j(3, 1) + &
1568 tij_abcde(1, 2, 3, 1, k)*qp_j(1, 2) + &
1569 tij_abcde(2, 2, 3, 1, k)*qp_j(2, 2) + &
1570 tij_abcde(3, 2, 3, 1, k)*qp_j(3, 2) + &
1571 tij_abcde(1, 3, 3, 1, k)*qp_j(1, 3) + &
1572 tij_abcde(2, 3, 3, 1, k)*qp_j(2, 3) + &
1573 tij_abcde(3, 3, 3, 1, k)*qp_j(3, 3))
1574 tmp22 = qp_i(2, 2)*(tij_abcde(1, 1, 2, 2, k)*qp_j(1, 1) + &
1575 tij_abcde(2, 1, 2, 2, k)*qp_j(2, 1) + &
1576 tij_abcde(3, 1, 2, 2, k)*qp_j(3, 1) + &
1577 tij_abcde(1, 2, 2, 2, k)*qp_j(1, 2) + &
1578 tij_abcde(2, 2, 2, 2, k)*qp_j(2, 2) + &
1579 tij_abcde(3, 2, 2, 2, k)*qp_j(3, 2) + &
1580 tij_abcde(1, 3, 2, 2, k)*qp_j(1, 3) + &
1581 tij_abcde(2, 3, 2, 2, k)*qp_j(2, 3) + &
1582 tij_abcde(3, 3, 2, 2, k)*qp_j(3, 3))
1583 tmp32 = qp_i(3, 2)*(tij_abcde(1, 1, 3, 2, k)*qp_j(1, 1) + &
1584 tij_abcde(2, 1, 3, 2, k)*qp_j(2, 1) + &
1585 tij_abcde(3, 1, 3, 2, k)*qp_j(3, 1) + &
1586 tij_abcde(1, 2, 3, 2, k)*qp_j(1, 2) + &
1587 tij_abcde(2, 2, 3, 2, k)*qp_j(2, 2) + &
1588 tij_abcde(3, 2, 3, 2, k)*qp_j(3, 2) + &
1589 tij_abcde(1, 3, 3, 2, k)*qp_j(1, 3) + &
1590 tij_abcde(2, 3, 3, 2, k)*qp_j(2, 3) + &
1591 tij_abcde(3, 3, 3, 2, k)*qp_j(3, 3))
1592 tmp33 = qp_i(3, 3)*(tij_abcde(1, 1, 3, 3, k)*qp_j(1, 1) + &
1593 tij_abcde(2, 1, 3, 3, k)*qp_j(2, 1) + &
1594 tij_abcde(3, 1, 3, 3, k)*qp_j(3, 1) + &
1595 tij_abcde(1, 2, 3, 3, k)*qp_j(1, 2) + &
1596 tij_abcde(2, 2, 3, 3, k)*qp_j(2, 2) + &
1597 tij_abcde(3, 2, 3, 3, k)*qp_j(3, 2) + &
1598 tij_abcde(1, 3, 3, 3, k)*qp_j(1, 3) + &
1599 tij_abcde(2, 3, 3, 3, k)*qp_j(2, 3) + &
1600 tij_abcde(3, 3, 3, 3, k)*qp_j(3, 3))
1604 fr(k) = fr(k) -
fac*(tmp11 + tmp12 + tmp13 + &
1605 tmp21 + tmp22 + tmp23 + &
1606 tmp31 + tmp32 + tmp33)
1613 IF (do_efield0)
THEN
1614 ef0_i = ef0_i +
fac*(tij_ab(1, 1)*qp_j(1, 1) + &
1615 tij_ab(2, 1)*qp_j(2, 1) + &
1616 tij_ab(3, 1)*qp_j(3, 1) + &
1617 tij_ab(1, 2)*qp_j(1, 2) + &
1618 tij_ab(2, 2)*qp_j(2, 2) + &
1619 tij_ab(3, 2)*qp_j(3, 2) + &
1620 tij_ab(1, 3)*qp_j(1, 3) + &
1621 tij_ab(2, 3)*qp_j(2, 3) + &
1622 tij_ab(3, 3)*qp_j(3, 3))
1624 ef0_j = ef0_j +
fac*(tij_ab(1, 1)*qp_i(1, 1) + &
1625 tij_ab(2, 1)*qp_i(2, 1) + &
1626 tij_ab(3, 1)*qp_i(3, 1) + &
1627 tij_ab(1, 2)*qp_i(1, 2) + &
1628 tij_ab(2, 2)*qp_i(2, 2) + &
1629 tij_ab(3, 2)*qp_i(3, 2) + &
1630 tij_ab(1, 3)*qp_i(1, 3) + &
1631 tij_ab(2, 3)*qp_i(2, 3) + &
1632 tij_ab(3, 3)*qp_i(3, 3))
1635 IF (do_efield1)
THEN
1636 ef1_i(1) = ef1_i(1) -
fac*(tij_abc(1, 1, 1)*qp_j(1, 1) + &
1637 tij_abc(2, 1, 1)*qp_j(2, 1) + &
1638 tij_abc(3, 1, 1)*qp_j(3, 1) + &
1639 tij_abc(1, 2, 1)*qp_j(1, 2) + &
1640 tij_abc(2, 2, 1)*qp_j(2, 2) + &
1641 tij_abc(3, 2, 1)*qp_j(3, 2) + &
1642 tij_abc(1, 3, 1)*qp_j(1, 3) + &
1643 tij_abc(2, 3, 1)*qp_j(2, 3) + &
1644 tij_abc(3, 3, 1)*qp_j(3, 3))
1645 ef1_i(2) = ef1_i(2) -
fac*(tij_abc(1, 1, 2)*qp_j(1, 1) + &
1646 tij_abc(2, 1, 2)*qp_j(2, 1) + &
1647 tij_abc(3, 1, 2)*qp_j(3, 1) + &
1648 tij_abc(1, 2, 2)*qp_j(1, 2) + &
1649 tij_abc(2, 2, 2)*qp_j(2, 2) + &
1650 tij_abc(3, 2, 2)*qp_j(3, 2) + &
1651 tij_abc(1, 3, 2)*qp_j(1, 3) + &
1652 tij_abc(2, 3, 2)*qp_j(2, 3) + &
1653 tij_abc(3, 3, 2)*qp_j(3, 3))
1654 ef1_i(3) = ef1_i(3) -
fac*(tij_abc(1, 1, 3)*qp_j(1, 1) + &
1655 tij_abc(2, 1, 3)*qp_j(2, 1) + &
1656 tij_abc(3, 1, 3)*qp_j(3, 1) + &
1657 tij_abc(1, 2, 3)*qp_j(1, 2) + &
1658 tij_abc(2, 2, 3)*qp_j(2, 2) + &
1659 tij_abc(3, 2, 3)*qp_j(3, 2) + &
1660 tij_abc(1, 3, 3)*qp_j(1, 3) + &
1661 tij_abc(2, 3, 3)*qp_j(2, 3) + &
1662 tij_abc(3, 3, 3)*qp_j(3, 3))
1664 ef1_j(1) = ef1_j(1) +
fac*(tij_abc(1, 1, 1)*qp_i(1, 1) + &
1665 tij_abc(2, 1, 1)*qp_i(2, 1) + &
1666 tij_abc(3, 1, 1)*qp_i(3, 1) + &
1667 tij_abc(1, 2, 1)*qp_i(1, 2) + &
1668 tij_abc(2, 2, 1)*qp_i(2, 2) + &
1669 tij_abc(3, 2, 1)*qp_i(3, 2) + &
1670 tij_abc(1, 3, 1)*qp_i(1, 3) + &
1671 tij_abc(2, 3, 1)*qp_i(2, 3) + &
1672 tij_abc(3, 3, 1)*qp_i(3, 3))
1673 ef1_j(2) = ef1_j(2) +
fac*(tij_abc(1, 1, 2)*qp_i(1, 1) + &
1674 tij_abc(2, 1, 2)*qp_i(2, 1) + &
1675 tij_abc(3, 1, 2)*qp_i(3, 1) + &
1676 tij_abc(1, 2, 2)*qp_i(1, 2) + &
1677 tij_abc(2, 2, 2)*qp_i(2, 2) + &
1678 tij_abc(3, 2, 2)*qp_i(3, 2) + &
1679 tij_abc(1, 3, 2)*qp_i(1, 3) + &
1680 tij_abc(2, 3, 2)*qp_i(2, 3) + &
1681 tij_abc(3, 3, 2)*qp_i(3, 3))
1682 ef1_j(3) = ef1_j(3) +
fac*(tij_abc(1, 1, 3)*qp_i(1, 1) + &
1683 tij_abc(2, 1, 3)*qp_i(2, 1) + &
1684 tij_abc(3, 1, 3)*qp_i(3, 1) + &
1685 tij_abc(1, 2, 3)*qp_i(1, 2) + &
1686 tij_abc(2, 2, 3)*qp_i(2, 2) + &
1687 tij_abc(3, 2, 3)*qp_i(3, 2) + &
1688 tij_abc(1, 3, 3)*qp_i(1, 3) + &
1689 tij_abc(2, 3, 3)*qp_i(2, 3) + &
1690 tij_abc(3, 3, 3)*qp_i(3, 3))
1693 IF (do_efield2)
THEN
1694 tmp11 =
fac*(tij_abcd(1, 1, 1, 1)*qp_j(1, 1) + &
1695 tij_abcd(2, 1, 1, 1)*qp_j(2, 1) + &
1696 tij_abcd(3, 1, 1, 1)*qp_j(3, 1) + &
1697 tij_abcd(1, 2, 1, 1)*qp_j(1, 2) + &
1698 tij_abcd(2, 2, 1, 1)*qp_j(2, 2) + &
1699 tij_abcd(3, 2, 1, 1)*qp_j(3, 2) + &
1700 tij_abcd(1, 3, 1, 1)*qp_j(1, 3) + &
1701 tij_abcd(2, 3, 1, 1)*qp_j(2, 3) + &
1702 tij_abcd(3, 3, 1, 1)*qp_j(3, 3))
1703 tmp12 =
fac*(tij_abcd(1, 1, 1, 2)*qp_j(1, 1) + &
1704 tij_abcd(2, 1, 1, 2)*qp_j(2, 1) + &
1705 tij_abcd(3, 1, 1, 2)*qp_j(3, 1) + &
1706 tij_abcd(1, 2, 1, 2)*qp_j(1, 2) + &
1707 tij_abcd(2, 2, 1, 2)*qp_j(2, 2) + &
1708 tij_abcd(3, 2, 1, 2)*qp_j(3, 2) + &
1709 tij_abcd(1, 3, 1, 2)*qp_j(1, 3) + &
1710 tij_abcd(2, 3, 1, 2)*qp_j(2, 3) + &
1711 tij_abcd(3, 3, 1, 2)*qp_j(3, 3))
1712 tmp13 =
fac*(tij_abcd(1, 1, 1, 3)*qp_j(1, 1) + &
1713 tij_abcd(2, 1, 1, 3)*qp_j(2, 1) + &
1714 tij_abcd(3, 1, 1, 3)*qp_j(3, 1) + &
1715 tij_abcd(1, 2, 1, 3)*qp_j(1, 2) + &
1716 tij_abcd(2, 2, 1, 3)*qp_j(2, 2) + &
1717 tij_abcd(3, 2, 1, 3)*qp_j(3, 2) + &
1718 tij_abcd(1, 3, 1, 3)*qp_j(1, 3) + &
1719 tij_abcd(2, 3, 1, 3)*qp_j(2, 3) + &
1720 tij_abcd(3, 3, 1, 3)*qp_j(3, 3))
1721 tmp22 =
fac*(tij_abcd(1, 1, 2, 2)*qp_j(1, 1) + &
1722 tij_abcd(2, 1, 2, 2)*qp_j(2, 1) + &
1723 tij_abcd(3, 1, 2, 2)*qp_j(3, 1) + &
1724 tij_abcd(1, 2, 2, 2)*qp_j(1, 2) + &
1725 tij_abcd(2, 2, 2, 2)*qp_j(2, 2) + &
1726 tij_abcd(3, 2, 2, 2)*qp_j(3, 2) + &
1727 tij_abcd(1, 3, 2, 2)*qp_j(1, 3) + &
1728 tij_abcd(2, 3, 2, 2)*qp_j(2, 3) + &
1729 tij_abcd(3, 3, 2, 2)*qp_j(3, 3))
1730 tmp23 =
fac*(tij_abcd(1, 1, 2, 3)*qp_j(1, 1) + &
1731 tij_abcd(2, 1, 2, 3)*qp_j(2, 1) + &
1732 tij_abcd(3, 1, 2, 3)*qp_j(3, 1) + &
1733 tij_abcd(1, 2, 2, 3)*qp_j(1, 2) + &
1734 tij_abcd(2, 2, 2, 3)*qp_j(2, 2) + &
1735 tij_abcd(3, 2, 2, 3)*qp_j(3, 2) + &
1736 tij_abcd(1, 3, 2, 3)*qp_j(1, 3) + &
1737 tij_abcd(2, 3, 2, 3)*qp_j(2, 3) + &
1738 tij_abcd(3, 3, 2, 3)*qp_j(3, 3))
1739 tmp33 =
fac*(tij_abcd(1, 1, 3, 3)*qp_j(1, 1) + &
1740 tij_abcd(2, 1, 3, 3)*qp_j(2, 1) + &
1741 tij_abcd(3, 1, 3, 3)*qp_j(3, 1) + &
1742 tij_abcd(1, 2, 3, 3)*qp_j(1, 2) + &
1743 tij_abcd(2, 2, 3, 3)*qp_j(2, 2) + &
1744 tij_abcd(3, 2, 3, 3)*qp_j(3, 2) + &
1745 tij_abcd(1, 3, 3, 3)*qp_j(1, 3) + &
1746 tij_abcd(2, 3, 3, 3)*qp_j(2, 3) + &
1747 tij_abcd(3, 3, 3, 3)*qp_j(3, 3))
1749 ef2_i(1, 1) = ef2_i(1, 1) - tmp11
1750 ef2_i(1, 2) = ef2_i(1, 2) - tmp12
1751 ef2_i(1, 3) = ef2_i(1, 3) - tmp13
1752 ef2_i(2, 1) = ef2_i(2, 1) - tmp12
1753 ef2_i(2, 2) = ef2_i(2, 2) - tmp22
1754 ef2_i(2, 3) = ef2_i(2, 3) - tmp23
1755 ef2_i(3, 1) = ef2_i(3, 1) - tmp13
1756 ef2_i(3, 2) = ef2_i(3, 2) - tmp23
1757 ef2_i(3, 3) = ef2_i(3, 3) - tmp33
1759 tmp11 =
fac*(tij_abcd(1, 1, 1, 1)*qp_i(1, 1) + &
1760 tij_abcd(2, 1, 1, 1)*qp_i(2, 1) + &
1761 tij_abcd(3, 1, 1, 1)*qp_i(3, 1) + &
1762 tij_abcd(1, 2, 1, 1)*qp_i(1, 2) + &
1763 tij_abcd(2, 2, 1, 1)*qp_i(2, 2) + &
1764 tij_abcd(3, 2, 1, 1)*qp_i(3, 2) + &
1765 tij_abcd(1, 3, 1, 1)*qp_i(1, 3) + &
1766 tij_abcd(2, 3, 1, 1)*qp_i(2, 3) + &
1767 tij_abcd(3, 3, 1, 1)*qp_i(3, 3))
1768 tmp12 =
fac*(tij_abcd(1, 1, 1, 2)*qp_i(1, 1) + &
1769 tij_abcd(2, 1, 1, 2)*qp_i(2, 1) + &
1770 tij_abcd(3, 1, 1, 2)*qp_i(3, 1) + &
1771 tij_abcd(1, 2, 1, 2)*qp_i(1, 2) + &
1772 tij_abcd(2, 2, 1, 2)*qp_i(2, 2) + &
1773 tij_abcd(3, 2, 1, 2)*qp_i(3, 2) + &
1774 tij_abcd(1, 3, 1, 2)*qp_i(1, 3) + &
1775 tij_abcd(2, 3, 1, 2)*qp_i(2, 3) + &
1776 tij_abcd(3, 3, 1, 2)*qp_i(3, 3))
1777 tmp13 =
fac*(tij_abcd(1, 1, 1, 3)*qp_i(1, 1) + &
1778 tij_abcd(2, 1, 1, 3)*qp_i(2, 1) + &
1779 tij_abcd(3, 1, 1, 3)*qp_i(3, 1) + &
1780 tij_abcd(1, 2, 1, 3)*qp_i(1, 2) + &
1781 tij_abcd(2, 2, 1, 3)*qp_i(2, 2) + &
1782 tij_abcd(3, 2, 1, 3)*qp_i(3, 2) + &
1783 tij_abcd(1, 3, 1, 3)*qp_i(1, 3) + &
1784 tij_abcd(2, 3, 1, 3)*qp_i(2, 3) + &
1785 tij_abcd(3, 3, 1, 3)*qp_i(3, 3))
1786 tmp22 =
fac*(tij_abcd(1, 1, 2, 2)*qp_i(1, 1) + &
1787 tij_abcd(2, 1, 2, 2)*qp_i(2, 1) + &
1788 tij_abcd(3, 1, 2, 2)*qp_i(3, 1) + &
1789 tij_abcd(1, 2, 2, 2)*qp_i(1, 2) + &
1790 tij_abcd(2, 2, 2, 2)*qp_i(2, 2) + &
1791 tij_abcd(3, 2, 2, 2)*qp_i(3, 2) + &
1792 tij_abcd(1, 3, 2, 2)*qp_i(1, 3) + &
1793 tij_abcd(2, 3, 2, 2)*qp_i(2, 3) + &
1794 tij_abcd(3, 3, 2, 2)*qp_i(3, 3))
1795 tmp23 =
fac*(tij_abcd(1, 1, 2, 3)*qp_i(1, 1) + &
1796 tij_abcd(2, 1, 2, 3)*qp_i(2, 1) + &
1797 tij_abcd(3, 1, 2, 3)*qp_i(3, 1) + &
1798 tij_abcd(1, 2, 2, 3)*qp_i(1, 2) + &
1799 tij_abcd(2, 2, 2, 3)*qp_i(2, 2) + &
1800 tij_abcd(3, 2, 2, 3)*qp_i(3, 2) + &
1801 tij_abcd(1, 3, 2, 3)*qp_i(1, 3) + &
1802 tij_abcd(2, 3, 2, 3)*qp_i(2, 3) + &
1803 tij_abcd(3, 3, 2, 3)*qp_i(3, 3))
1804 tmp33 =
fac*(tij_abcd(1, 1, 3, 3)*qp_i(1, 1) + &
1805 tij_abcd(2, 1, 3, 3)*qp_i(2, 1) + &
1806 tij_abcd(3, 1, 3, 3)*qp_i(3, 1) + &
1807 tij_abcd(1, 2, 3, 3)*qp_i(1, 2) + &
1808 tij_abcd(2, 2, 3, 3)*qp_i(2, 2) + &
1809 tij_abcd(3, 2, 3, 3)*qp_i(3, 2) + &
1810 tij_abcd(1, 3, 3, 3)*qp_i(1, 3) + &
1811 tij_abcd(2, 3, 3, 3)*qp_i(2, 3) + &
1812 tij_abcd(3, 3, 3, 3)*qp_i(3, 3))
1814 ef2_j(1, 1) = ef2_j(1, 1) - tmp11
1815 ef2_j(1, 2) = ef2_j(1, 2) - tmp12
1816 ef2_j(1, 3) = ef2_j(1, 3) - tmp13
1817 ef2_j(2, 1) = ef2_j(2, 1) - tmp12
1818 ef2_j(2, 2) = ef2_j(2, 2) - tmp22
1819 ef2_j(2, 3) = ef2_j(2, 3) - tmp23
1820 ef2_j(3, 1) = ef2_j(3, 1) - tmp13
1821 ef2_j(3, 2) = ef2_j(3, 2) - tmp23
1822 ef2_j(3, 3) = ef2_j(3, 3) - tmp33
1826 IF (task(3, 2))
THEN
1830 tmp_ij = dp_i(1)*(tij_abc(1, 1, 1)*qp_j(1, 1) + &
1831 tij_abc(2, 1, 1)*qp_j(2, 1) + &
1832 tij_abc(3, 1, 1)*qp_j(3, 1) + &
1833 tij_abc(1, 2, 1)*qp_j(1, 2) + &
1834 tij_abc(2, 2, 1)*qp_j(2, 2) + &
1835 tij_abc(3, 2, 1)*qp_j(3, 2) + &
1836 tij_abc(1, 3, 1)*qp_j(1, 3) + &
1837 tij_abc(2, 3, 1)*qp_j(2, 3) + &
1838 tij_abc(3, 3, 1)*qp_j(3, 3)) + &
1839 dp_i(2)*(tij_abc(1, 1, 2)*qp_j(1, 1) + &
1840 tij_abc(2, 1, 2)*qp_j(2, 1) + &
1841 tij_abc(3, 1, 2)*qp_j(3, 1) + &
1842 tij_abc(1, 2, 2)*qp_j(1, 2) + &
1843 tij_abc(2, 2, 2)*qp_j(2, 2) + &
1844 tij_abc(3, 2, 2)*qp_j(3, 2) + &
1845 tij_abc(1, 3, 2)*qp_j(1, 3) + &
1846 tij_abc(2, 3, 2)*qp_j(2, 3) + &
1847 tij_abc(3, 3, 2)*qp_j(3, 3)) + &
1848 dp_i(3)*(tij_abc(1, 1, 3)*qp_j(1, 1) + &
1849 tij_abc(2, 1, 3)*qp_j(2, 1) + &
1850 tij_abc(3, 1, 3)*qp_j(3, 1) + &
1851 tij_abc(1, 2, 3)*qp_j(1, 2) + &
1852 tij_abc(2, 2, 3)*qp_j(2, 2) + &
1853 tij_abc(3, 2, 3)*qp_j(3, 2) + &
1854 tij_abc(1, 3, 3)*qp_j(1, 3) + &
1855 tij_abc(2, 3, 3)*qp_j(2, 3) + &
1856 tij_abc(3, 3, 3)*qp_j(3, 3))
1859 tmp_ji = dp_j(1)*(tij_abc(1, 1, 1)*qp_i(1, 1) + &
1860 tij_abc(2, 1, 1)*qp_i(2, 1) + &
1861 tij_abc(3, 1, 1)*qp_i(3, 1) + &
1862 tij_abc(1, 2, 1)*qp_i(1, 2) + &
1863 tij_abc(2, 2, 1)*qp_i(2, 2) + &
1864 tij_abc(3, 2, 1)*qp_i(3, 2) + &
1865 tij_abc(1, 3, 1)*qp_i(1, 3) + &
1866 tij_abc(2, 3, 1)*qp_i(2, 3) + &
1867 tij_abc(3, 3, 1)*qp_i(3, 3)) + &
1868 dp_j(2)*(tij_abc(1, 1, 2)*qp_i(1, 1) + &
1869 tij_abc(2, 1, 2)*qp_i(2, 1) + &
1870 tij_abc(3, 1, 2)*qp_i(3, 1) + &
1871 tij_abc(1, 2, 2)*qp_i(1, 2) + &
1872 tij_abc(2, 2, 2)*qp_i(2, 2) + &
1873 tij_abc(3, 2, 2)*qp_i(3, 2) + &
1874 tij_abc(1, 3, 2)*qp_i(1, 3) + &
1875 tij_abc(2, 3, 2)*qp_i(2, 3) + &
1876 tij_abc(3, 3, 2)*qp_i(3, 3)) + &
1877 dp_j(3)*(tij_abc(1, 1, 3)*qp_i(1, 1) + &
1878 tij_abc(2, 1, 3)*qp_i(2, 1) + &
1879 tij_abc(3, 1, 3)*qp_i(3, 1) + &
1880 tij_abc(1, 2, 3)*qp_i(1, 2) + &
1881 tij_abc(2, 2, 3)*qp_i(2, 2) + &
1882 tij_abc(3, 2, 3)*qp_i(3, 2) + &
1883 tij_abc(1, 3, 3)*qp_i(1, 3) + &
1884 tij_abc(2, 3, 3)*qp_i(2, 3) + &
1885 tij_abc(3, 3, 3)*qp_i(3, 3))
1887 tmp =
fac*(tmp_ij - tmp_ji)
1889 IF (do_forces .OR. do_stress)
THEN
1892 tmp_ij = dp_i(1)*(tij_abcd(1, 1, 1, k)*qp_j(1, 1) + &
1893 tij_abcd(2, 1, 1, k)*qp_j(2, 1) + &
1894 tij_abcd(3, 1, 1, k)*qp_j(3, 1) + &
1895 tij_abcd(1, 2, 1, k)*qp_j(1, 2) + &
1896 tij_abcd(2, 2, 1, k)*qp_j(2, 2) + &
1897 tij_abcd(3, 2, 1, k)*qp_j(3, 2) + &
1898 tij_abcd(1, 3, 1, k)*qp_j(1, 3) + &
1899 tij_abcd(2, 3, 1, k)*qp_j(2, 3) + &
1900 tij_abcd(3, 3, 1, k)*qp_j(3, 3)) + &
1901 dp_i(2)*(tij_abcd(1, 1, 2, k)*qp_j(1, 1) + &
1902 tij_abcd(2, 1, 2, k)*qp_j(2, 1) + &
1903 tij_abcd(3, 1, 2, k)*qp_j(3, 1) + &
1904 tij_abcd(1, 2, 2, k)*qp_j(1, 2) + &
1905 tij_abcd(2, 2, 2, k)*qp_j(2, 2) + &
1906 tij_abcd(3, 2, 2, k)*qp_j(3, 2) + &
1907 tij_abcd(1, 3, 2, k)*qp_j(1, 3) + &
1908 tij_abcd(2, 3, 2, k)*qp_j(2, 3) + &
1909 tij_abcd(3, 3, 2, k)*qp_j(3, 3)) + &
1910 dp_i(3)*(tij_abcd(1, 1, 3, k)*qp_j(1, 1) + &
1911 tij_abcd(2, 1, 3, k)*qp_j(2, 1) + &
1912 tij_abcd(3, 1, 3, k)*qp_j(3, 1) + &
1913 tij_abcd(1, 2, 3, k)*qp_j(1, 2) + &
1914 tij_abcd(2, 2, 3, k)*qp_j(2, 2) + &
1915 tij_abcd(3, 2, 3, k)*qp_j(3, 2) + &
1916 tij_abcd(1, 3, 3, k)*qp_j(1, 3) + &
1917 tij_abcd(2, 3, 3, k)*qp_j(2, 3) + &
1918 tij_abcd(3, 3, 3, k)*qp_j(3, 3))
1921 tmp_ji = dp_j(1)*(tij_abcd(1, 1, 1, k)*qp_i(1, 1) + &
1922 tij_abcd(2, 1, 1, k)*qp_i(2, 1) + &
1923 tij_abcd(3, 1, 1, k)*qp_i(3, 1) + &
1924 tij_abcd(1, 2, 1, k)*qp_i(1, 2) + &
1925 tij_abcd(2, 2, 1, k)*qp_i(2, 2) + &
1926 tij_abcd(3, 2, 1, k)*qp_i(3, 2) + &
1927 tij_abcd(1, 3, 1, k)*qp_i(1, 3) + &
1928 tij_abcd(2, 3, 1, k)*qp_i(2, 3) + &
1929 tij_abcd(3, 3, 1, k)*qp_i(3, 3)) + &
1930 dp_j(2)*(tij_abcd(1, 1, 2, k)*qp_i(1, 1) + &
1931 tij_abcd(2, 1, 2, k)*qp_i(2, 1) + &
1932 tij_abcd(3, 1, 2, k)*qp_i(3, 1) + &
1933 tij_abcd(1, 2, 2, k)*qp_i(1, 2) + &
1934 tij_abcd(2, 2, 2, k)*qp_i(2, 2) + &
1935 tij_abcd(3, 2, 2, k)*qp_i(3, 2) + &
1936 tij_abcd(1, 3, 2, k)*qp_i(1, 3) + &
1937 tij_abcd(2, 3, 2, k)*qp_i(2, 3) + &
1938 tij_abcd(3, 3, 2, k)*qp_i(3, 3)) + &
1939 dp_j(3)*(tij_abcd(1, 1, 3, k)*qp_i(1, 1) + &
1940 tij_abcd(2, 1, 3, k)*qp_i(2, 1) + &
1941 tij_abcd(3, 1, 3, k)*qp_i(3, 1) + &
1942 tij_abcd(1, 2, 3, k)*qp_i(1, 2) + &
1943 tij_abcd(2, 2, 3, k)*qp_i(2, 2) + &
1944 tij_abcd(3, 2, 3, k)*qp_i(3, 2) + &
1945 tij_abcd(1, 3, 3, k)*qp_i(1, 3) + &
1946 tij_abcd(2, 3, 3, k)*qp_i(2, 3) + &
1947 tij_abcd(3, 3, 3, k)*qp_i(3, 3))
1949 fr(k) = fr(k) -
fac*(tmp_ij - tmp_ji)
1953 IF (task(3, 1))
THEN
1958 tmp_ij = ch_i*(tij_ab(1, 1)*qp_j(1, 1) + &
1959 tij_ab(2, 1)*qp_j(2, 1) + &
1960 tij_ab(3, 1)*qp_j(3, 1) + &
1961 tij_ab(1, 2)*qp_j(1, 2) + &
1962 tij_ab(2, 2)*qp_j(2, 2) + &
1963 tij_ab(3, 2)*qp_j(3, 2) + &
1964 tij_ab(1, 3)*qp_j(1, 3) + &
1965 tij_ab(2, 3)*qp_j(2, 3) + &
1966 tij_ab(3, 3)*qp_j(3, 3))
1969 tmp_ji = ch_j*(tij_ab(1, 1)*qp_i(1, 1) + &
1970 tij_ab(2, 1)*qp_i(2, 1) + &
1971 tij_ab(3, 1)*qp_i(3, 1) + &
1972 tij_ab(1, 2)*qp_i(1, 2) + &
1973 tij_ab(2, 2)*qp_i(2, 2) + &
1974 tij_ab(3, 2)*qp_i(3, 2) + &
1975 tij_ab(1, 3)*qp_i(1, 3) + &
1976 tij_ab(2, 3)*qp_i(2, 3) + &
1977 tij_ab(3, 3)*qp_i(3, 3))
1979 eloc = eloc +
fac*(tmp_ij + tmp_ji)
1980 IF (do_forces .OR. do_stress)
THEN
1983 tmp_ij = ch_i*(tij_abc(1, 1, k)*qp_j(1, 1) + &
1984 tij_abc(2, 1, k)*qp_j(2, 1) + &
1985 tij_abc(3, 1, k)*qp_j(3, 1) + &
1986 tij_abc(1, 2, k)*qp_j(1, 2) + &
1987 tij_abc(2, 2, k)*qp_j(2, 2) + &
1988 tij_abc(3, 2, k)*qp_j(3, 2) + &
1989 tij_abc(1, 3, k)*qp_j(1, 3) + &
1990 tij_abc(2, 3, k)*qp_j(2, 3) + &
1991 tij_abc(3, 3, k)*qp_j(3, 3))
1994 tmp_ji = ch_j*(tij_abc(1, 1, k)*qp_i(1, 1) + &
1995 tij_abc(2, 1, k)*qp_i(2, 1) + &
1996 tij_abc(3, 1, k)*qp_i(3, 1) + &
1997 tij_abc(1, 2, k)*qp_i(1, 2) + &
1998 tij_abc(2, 2, k)*qp_i(2, 2) + &
1999 tij_abc(3, 2, k)*qp_i(3, 2) + &
2000 tij_abc(1, 3, k)*qp_i(1, 3) + &
2001 tij_abc(2, 3, k)*qp_i(2, 3) + &
2002 tij_abc(3, 3, k)*qp_i(3, 3))
2004 fr(k) = fr(k) -
fac*(tmp_ij + tmp_ji)
2011 IF (do_efield0)
THEN
2012 efield0(atom_a) = efield0(atom_a) + ef0_j
2014 efield0(atom_b) = efield0(atom_b) + ef0_i
2017 IF (do_efield1)
THEN
2018 efield1(1, atom_a) = efield1(1, atom_a) + ef1_j(1)
2019 efield1(2, atom_a) = efield1(2, atom_a) + ef1_j(2)
2020 efield1(3, atom_a) = efield1(3, atom_a) + ef1_j(3)
2022 efield1(1, atom_b) = efield1(1, atom_b) + ef1_i(1)
2023 efield1(2, atom_b) = efield1(2, atom_b) + ef1_i(2)
2024 efield1(3, atom_b) = efield1(3, atom_b) + ef1_i(3)
2027 IF (do_efield2)
THEN
2028 efield2(1, atom_a) = efield2(1, atom_a) + ef2_j(1, 1)
2029 efield2(2, atom_a) = efield2(2, atom_a) + ef2_j(1, 2)
2030 efield2(3, atom_a) = efield2(3, atom_a) + ef2_j(1, 3)
2031 efield2(4, atom_a) = efield2(4, atom_a) + ef2_j(2, 1)
2032 efield2(5, atom_a) = efield2(5, atom_a) + ef2_j(2, 2)
2033 efield2(6, atom_a) = efield2(6, atom_a) + ef2_j(2, 3)
2034 efield2(7, atom_a) = efield2(7, atom_a) + ef2_j(3, 1)
2035 efield2(8, atom_a) = efield2(8, atom_a) + ef2_j(3, 2)
2036 efield2(9, atom_a) = efield2(9, atom_a) + ef2_j(3, 3)
2038 efield2(1, atom_b) = efield2(1, atom_b) + ef2_i(1, 1)
2039 efield2(2, atom_b) = efield2(2, atom_b) + ef2_i(1, 2)
2040 efield2(3, atom_b) = efield2(3, atom_b) + ef2_i(1, 3)
2041 efield2(4, atom_b) = efield2(4, atom_b) + ef2_i(2, 1)
2042 efield2(5, atom_b) = efield2(5, atom_b) + ef2_i(2, 2)
2043 efield2(6, atom_b) = efield2(6, atom_b) + ef2_i(2, 3)
2044 efield2(7, atom_b) = efield2(7, atom_b) + ef2_i(3, 1)
2045 efield2(8, atom_b) = efield2(8, atom_b) + ef2_i(3, 2)
2046 efield2(9, atom_b) = efield2(9, atom_b) + ef2_i(3, 3)
2050 ptens11 = ptens11 + rab(1)*fr(1)
2051 ptens21 = ptens21 + rab(2)*fr(1)
2052 ptens31 = ptens31 + rab(3)*fr(1)
2053 ptens12 = ptens12 + rab(1)*fr(2)
2054 ptens22 = ptens22 + rab(2)*fr(2)
2055 ptens32 = ptens32 + rab(3)*fr(2)
2056 ptens13 = ptens13 + rab(1)*fr(3)
2057 ptens23 = ptens23 + rab(2)*fr(3)
2058 ptens33 = ptens33 + rab(3)*fr(3)
2062 IF (
PRESENT(integral_value))
THEN
2063 integral_value = eloc