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
1105 IF (debug_this_module)
THEN
1108 tij_a = huge(0.0_dp)
1109 tij_ab = huge(0.0_dp)
1110 tij_abc = huge(0.0_dp)
1111 tij_abcd = huge(0.0_dp)
1112 tij_abcde = huge(0.0_dp)
1122 f(i) = irab2*f(i - 1)
1127 force_eval = do_stress
1128 IF (task(1, 1))
THEN
1130 force_eval = do_forces .OR. do_efield1
1132 IF (task(2, 2)) force_eval = force_eval .OR. do_efield0
1133 IF (task(1, 2) .OR. force_eval)
THEN
1134 force_eval = do_stress
1135 tij_a = -rab*f(1)*fac_ij
1136 IF (task(1, 2)) force_eval = force_eval .OR. do_forces
1138 IF (task(1, 1)) force_eval = force_eval .OR. do_efield2
1139 IF (task(3, 3)) force_eval = force_eval .OR. do_efield0
1140 IF (task(2, 2) .OR. task(3, 1) .OR. force_eval)
THEN
1141 force_eval = do_stress
1144 tmp = rab(a)*rab(b)*fac_ij
1145 tij_ab(a, b) = 3.0_dp*tmp*f(2)
1146 IF (a == b) tij_ab(a, b) = tij_ab(a, b) - f(1)*fac_ij
1149 IF (task(2, 2) .OR. task(3, 1)) force_eval = force_eval .OR. do_forces
1151 IF (task(2, 2)) force_eval = force_eval .OR. do_efield2
1152 IF (task(3, 3)) force_eval = force_eval .OR. do_efield1
1153 IF (task(3, 2) .OR. force_eval)
THEN
1154 force_eval = do_stress
1158 tmp = rab(a)*rab(b)*rab(c)*fac_ij
1159 tij_abc(a, b, c) = -15.0_dp*tmp*f(3)
1160 tmp = 3.0_dp*f(2)*fac_ij
1161 IF (a == b) tij_abc(a, b, c) = tij_abc(a, b, c) + tmp*rab(c)
1162 IF (a == c) tij_abc(a, b, c) = tij_abc(a, b, c) + tmp*rab(b)
1163 IF (b == c) tij_abc(a, b, c) = tij_abc(a, b, c) + tmp*rab(a)
1167 IF (task(3, 2)) force_eval = force_eval .OR. do_forces
1169 IF (task(3, 3) .OR. force_eval)
THEN
1170 force_eval = do_stress
1175 tmp = rab(a)*rab(b)*rab(c)*rab(d)*fac_ij
1176 tij_abcd(a, b, c, d) = 105.0_dp*tmp*f(4)
1177 tmp1 = 15.0_dp*f(3)*fac_ij
1178 tmp2 = 3.0_dp*f(2)*fac_ij
1180 tij_abcd(a, b, c, d) = tij_abcd(a, b, c, d) - tmp1*rab(c)*rab(d)
1181 IF (c == d) tij_abcd(a, b, c, d) = tij_abcd(a, b, c, d) + tmp2
1184 tij_abcd(a, b, c, d) = tij_abcd(a, b, c, d) - tmp1*rab(b)*rab(d)
1185 IF (b == d) tij_abcd(a, b, c, d) = tij_abcd(a, b, c, d) + tmp2
1187 IF (a == d) tij_abcd(a, b, c, d) = tij_abcd(a, b, c, d) - tmp1*rab(b)*rab(c)
1189 tij_abcd(a, b, c, d) = tij_abcd(a, b, c, d) - tmp1*rab(a)*rab(d)
1190 IF (a == d) tij_abcd(a, b, c, d) = tij_abcd(a, b, c, d) + tmp2
1192 IF (b == d) tij_abcd(a, b, c, d) = tij_abcd(a, b, c, d) - tmp1*rab(a)*rab(c)
1193 IF (c == d) tij_abcd(a, b, c, d) = tij_abcd(a, b, c, d) - tmp1*rab(a)*rab(b)
1198 IF (task(3, 3)) force_eval = force_eval .OR. do_forces
1200 IF (force_eval)
THEN
1201 force_eval = do_stress
1207 tmp = rab(a)*rab(b)*rab(c)*rab(d)*rab(e)*fac_ij
1208 tij_abcde(a, b, c, d, e) = -945.0_dp*tmp*f(5)
1209 tmp1 = 105.0_dp*f(4)*fac_ij
1210 tmp2 = 15.0_dp*f(3)*fac_ij
1212 tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) + tmp1*rab(c)*rab(d)*rab(e)
1213 IF (c == d) tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) - tmp2*rab(e)
1214 IF (c == e) tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) - tmp2*rab(d)
1215 IF (d == e) tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) - tmp2*rab(c)
1218 tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) + tmp1*rab(b)*rab(d)*rab(e)
1219 IF (b == d) tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) - tmp2*rab(e)
1220 IF (b == e) tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) - tmp2*rab(d)
1221 IF (d == e) tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) - tmp2*rab(b)
1224 tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) + tmp1*rab(b)*rab(c)*rab(e)
1225 IF (b == c) tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) - tmp2*rab(e)
1226 IF (b == e) tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) - tmp2*rab(c)
1227 IF (c == e) tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) - tmp2*rab(b)
1230 tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) + tmp1*rab(b)*rab(c)*rab(d)
1231 IF (b == c) tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) - tmp2*rab(d)
1232 IF (b == d) tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) - tmp2*rab(c)
1233 IF (c == d) tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) - tmp2*rab(b)
1236 tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) + tmp1*rab(a)*rab(d)*rab(e)
1237 IF (d == e) tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) - tmp2*rab(a)
1240 tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) + tmp1*rab(a)*rab(c)*rab(e)
1241 IF (c == e) tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) - tmp2*rab(a)
1244 tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) + tmp1*rab(a)*rab(c)*rab(d)
1245 IF (c == d) tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) - tmp2*rab(a)
1247 IF (c == d) tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) + tmp1*rab(a)*rab(b)*rab(e)
1248 IF (c == e) tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) + tmp1*rab(a)*rab(b)*rab(d)
1249 IF (d == e) tij_abcde(a, b, c, d, e) = tij_abcde(a, b, c, d, e) + tmp1*rab(a)*rab(b)*rab(c)
1267 IF (debug_this_module)
THEN
1275 IF (any(task(1, :)))
THEN
1276 ch_j = charges(atom_a)
1277 ch_i = charges(atom_b)
1279 IF (any(task(2, :)))
THEN
1280 dp_j = dipoles(:, atom_a)
1281 dp_i = dipoles(:, atom_b)
1283 IF (any(task(3, :)))
THEN
1284 qp_j = quadrupoles(:, :, atom_a)
1285 qp_i = quadrupoles(:, :, atom_b)
1287 IF (task(1, 1))
THEN
1289 eloc = eloc + ch_i*tij*ch_j
1291 IF (do_forces .OR. do_stress)
THEN
1292 fr(1) = fr(1) - ch_j*tij_a(1)*ch_i
1293 fr(2) = fr(2) - ch_j*tij_a(2)*ch_i
1294 fr(3) = fr(3) - ch_j*tij_a(3)*ch_i
1299 IF (do_efield0)
THEN
1300 ef0_i = ef0_i + tij*ch_j
1302 ef0_j = ef0_j + tij*ch_i
1305 IF (do_efield1)
THEN
1306 ef1_i(1) = ef1_i(1) - tij_a(1)*ch_j
1307 ef1_i(2) = ef1_i(2) - tij_a(2)*ch_j
1308 ef1_i(3) = ef1_i(3) - tij_a(3)*ch_j
1310 ef1_j(1) = ef1_j(1) + tij_a(1)*ch_i
1311 ef1_j(2) = ef1_j(2) + tij_a(2)*ch_i
1312 ef1_j(3) = ef1_j(3) + tij_a(3)*ch_i
1317 IF (do_efield2)
THEN
1318 ef2_i(1, 1) = ef2_i(1, 1) - tij_ab(1, 1)*ch_j
1319 ef2_i(2, 1) = ef2_i(2, 1) - tij_ab(2, 1)*ch_j
1320 ef2_i(3, 1) = ef2_i(3, 1) - tij_ab(3, 1)*ch_j
1321 ef2_i(1, 2) = ef2_i(1, 2) - tij_ab(1, 2)*ch_j
1322 ef2_i(2, 2) = ef2_i(2, 2) - tij_ab(2, 2)*ch_j
1323 ef2_i(3, 2) = ef2_i(3, 2) - tij_ab(3, 2)*ch_j
1324 ef2_i(1, 3) = ef2_i(1, 3) - tij_ab(1, 3)*ch_j
1325 ef2_i(2, 3) = ef2_i(2, 3) - tij_ab(2, 3)*ch_j
1326 ef2_i(3, 3) = ef2_i(3, 3) - tij_ab(3, 3)*ch_j
1328 ef2_j(1, 1) = ef2_j(1, 1) - tij_ab(1, 1)*ch_i
1329 ef2_j(2, 1) = ef2_j(2, 1) - tij_ab(2, 1)*ch_i
1330 ef2_j(3, 1) = ef2_j(3, 1) - tij_ab(3, 1)*ch_i
1331 ef2_j(1, 2) = ef2_j(1, 2) - tij_ab(1, 2)*ch_i
1332 ef2_j(2, 2) = ef2_j(2, 2) - tij_ab(2, 2)*ch_i
1333 ef2_j(3, 2) = ef2_j(3, 2) - tij_ab(3, 2)*ch_i
1334 ef2_j(1, 3) = ef2_j(1, 3) - tij_ab(1, 3)*ch_i
1335 ef2_j(2, 3) = ef2_j(2, 3) - tij_ab(2, 3)*ch_i
1336 ef2_j(3, 3) = ef2_j(3, 3) - tij_ab(3, 3)*ch_i
1340 IF (task(2, 2))
THEN
1342 tmp = -(dp_i(1)*(tij_ab(1, 1)*dp_j(1) + &
1343 tij_ab(2, 1)*dp_j(2) + &
1344 tij_ab(3, 1)*dp_j(3)) + &
1345 dp_i(2)*(tij_ab(1, 2)*dp_j(1) + &
1346 tij_ab(2, 2)*dp_j(2) + &
1347 tij_ab(3, 2)*dp_j(3)) + &
1348 dp_i(3)*(tij_ab(1, 3)*dp_j(1) + &
1349 tij_ab(2, 3)*dp_j(2) + &
1350 tij_ab(3, 3)*dp_j(3)))
1353 IF (do_forces .OR. do_stress)
THEN
1355 fr(k) = fr(k) + dp_i(1)*(tij_abc(1, 1, k)*dp_j(1) + &
1356 tij_abc(2, 1, k)*dp_j(2) + &
1357 tij_abc(3, 1, k)*dp_j(3)) &
1358 + dp_i(2)*(tij_abc(1, 2, k)*dp_j(1) + &
1359 tij_abc(2, 2, k)*dp_j(2) + &
1360 tij_abc(3, 2, k)*dp_j(3)) &
1361 + dp_i(3)*(tij_abc(1, 3, k)*dp_j(1) + &
1362 tij_abc(2, 3, k)*dp_j(2) + &
1363 tij_abc(3, 3, k)*dp_j(3))
1369 IF (do_efield0)
THEN
1370 ef0_i = ef0_i - (tij_a(1)*dp_j(1) + &
1371 tij_a(2)*dp_j(2) + &
1374 ef0_j = ef0_j + (tij_a(1)*dp_i(1) + &
1375 tij_a(2)*dp_i(2) + &
1379 IF (do_efield1)
THEN
1380 ef1_i(1) = ef1_i(1) + (tij_ab(1, 1)*dp_j(1) + &
1381 tij_ab(2, 1)*dp_j(2) + &
1382 tij_ab(3, 1)*dp_j(3))
1383 ef1_i(2) = ef1_i(2) + (tij_ab(1, 2)*dp_j(1) + &
1384 tij_ab(2, 2)*dp_j(2) + &
1385 tij_ab(3, 2)*dp_j(3))
1386 ef1_i(3) = ef1_i(3) + (tij_ab(1, 3)*dp_j(1) + &
1387 tij_ab(2, 3)*dp_j(2) + &
1388 tij_ab(3, 3)*dp_j(3))
1390 ef1_j(1) = ef1_j(1) + (tij_ab(1, 1)*dp_i(1) + &
1391 tij_ab(2, 1)*dp_i(2) + &
1392 tij_ab(3, 1)*dp_i(3))
1393 ef1_j(2) = ef1_j(2) + (tij_ab(1, 2)*dp_i(1) + &
1394 tij_ab(2, 2)*dp_i(2) + &
1395 tij_ab(3, 2)*dp_i(3))
1396 ef1_j(3) = ef1_j(3) + (tij_ab(1, 3)*dp_i(1) + &
1397 tij_ab(2, 3)*dp_i(2) + &
1398 tij_ab(3, 3)*dp_i(3))
1401 IF (do_efield2)
THEN
1402 ef2_i(1, 1) = ef2_i(1, 1) + (tij_abc(1, 1, 1)*dp_j(1) + &
1403 tij_abc(2, 1, 1)*dp_j(2) + &
1404 tij_abc(3, 1, 1)*dp_j(3))
1405 ef2_i(1, 2) = ef2_i(1, 2) + (tij_abc(1, 1, 2)*dp_j(1) + &
1406 tij_abc(2, 1, 2)*dp_j(2) + &
1407 tij_abc(3, 1, 2)*dp_j(3))
1408 ef2_i(1, 3) = ef2_i(1, 3) + (tij_abc(1, 1, 3)*dp_j(1) + &
1409 tij_abc(2, 1, 3)*dp_j(2) + &
1410 tij_abc(3, 1, 3)*dp_j(3))
1411 ef2_i(2, 1) = ef2_i(2, 1) + (tij_abc(1, 2, 1)*dp_j(1) + &
1412 tij_abc(2, 2, 1)*dp_j(2) + &
1413 tij_abc(3, 2, 1)*dp_j(3))
1414 ef2_i(2, 2) = ef2_i(2, 2) + (tij_abc(1, 2, 2)*dp_j(1) + &
1415 tij_abc(2, 2, 2)*dp_j(2) + &
1416 tij_abc(3, 2, 2)*dp_j(3))
1417 ef2_i(2, 3) = ef2_i(2, 3) + (tij_abc(1, 2, 3)*dp_j(1) + &
1418 tij_abc(2, 2, 3)*dp_j(2) + &
1419 tij_abc(3, 2, 3)*dp_j(3))
1420 ef2_i(3, 1) = ef2_i(3, 1) + (tij_abc(1, 3, 1)*dp_j(1) + &
1421 tij_abc(2, 3, 1)*dp_j(2) + &
1422 tij_abc(3, 3, 1)*dp_j(3))
1423 ef2_i(3, 2) = ef2_i(3, 2) + (tij_abc(1, 3, 2)*dp_j(1) + &
1424 tij_abc(2, 3, 2)*dp_j(2) + &
1425 tij_abc(3, 3, 2)*dp_j(3))
1426 ef2_i(3, 3) = ef2_i(3, 3) + (tij_abc(1, 3, 3)*dp_j(1) + &
1427 tij_abc(2, 3, 3)*dp_j(2) + &
1428 tij_abc(3, 3, 3)*dp_j(3))
1430 ef2_j(1, 1) = ef2_j(1, 1) - (tij_abc(1, 1, 1)*dp_i(1) + &
1431 tij_abc(2, 1, 1)*dp_i(2) + &
1432 tij_abc(3, 1, 1)*dp_i(3))
1433 ef2_j(1, 2) = ef2_j(1, 2) - (tij_abc(1, 1, 2)*dp_i(1) + &
1434 tij_abc(2, 1, 2)*dp_i(2) + &
1435 tij_abc(3, 1, 2)*dp_i(3))
1436 ef2_j(1, 3) = ef2_j(1, 3) - (tij_abc(1, 1, 3)*dp_i(1) + &
1437 tij_abc(2, 1, 3)*dp_i(2) + &
1438 tij_abc(3, 1, 3)*dp_i(3))
1439 ef2_j(2, 1) = ef2_j(2, 1) - (tij_abc(1, 2, 1)*dp_i(1) + &
1440 tij_abc(2, 2, 1)*dp_i(2) + &
1441 tij_abc(3, 2, 1)*dp_i(3))
1442 ef2_j(2, 2) = ef2_j(2, 2) - (tij_abc(1, 2, 2)*dp_i(1) + &
1443 tij_abc(2, 2, 2)*dp_i(2) + &
1444 tij_abc(3, 2, 2)*dp_i(3))
1445 ef2_j(2, 3) = ef2_j(2, 3) - (tij_abc(1, 2, 3)*dp_i(1) + &
1446 tij_abc(2, 2, 3)*dp_i(2) + &
1447 tij_abc(3, 2, 3)*dp_i(3))
1448 ef2_j(3, 1) = ef2_j(3, 1) - (tij_abc(1, 3, 1)*dp_i(1) + &
1449 tij_abc(2, 3, 1)*dp_i(2) + &
1450 tij_abc(3, 3, 1)*dp_i(3))
1451 ef2_j(3, 2) = ef2_j(3, 2) - (tij_abc(1, 3, 2)*dp_i(1) + &
1452 tij_abc(2, 3, 2)*dp_i(2) + &
1453 tij_abc(3, 3, 2)*dp_i(3))
1454 ef2_j(3, 3) = ef2_j(3, 3) - (tij_abc(1, 3, 3)*dp_i(1) + &
1455 tij_abc(2, 3, 3)*dp_i(2) + &
1456 tij_abc(3, 3, 3)*dp_i(3))
1460 IF (task(2, 1))
THEN
1462 tmp = ch_j*(tij_a(1)*dp_i(1) + &
1463 tij_a(2)*dp_i(2) + &
1465 - ch_i*(tij_a(1)*dp_j(1) + &
1466 tij_a(2)*dp_j(2) + &
1470 IF (do_forces .OR. do_stress)
THEN
1472 fr(k) = fr(k) - ch_j*(tij_ab(1, k)*dp_i(1) + &
1473 tij_ab(2, k)*dp_i(2) + &
1474 tij_ab(3, k)*dp_i(3)) &
1475 + ch_i*(tij_ab(1, k)*dp_j(1) + &
1476 tij_ab(2, k)*dp_j(2) + &
1477 tij_ab(3, k)*dp_j(3))
1481 IF (task(3, 3))
THEN
1484 tmp11 = qp_i(1, 1)*(tij_abcd(1, 1, 1, 1)*qp_j(1, 1) + &
1485 tij_abcd(2, 1, 1, 1)*qp_j(2, 1) + &
1486 tij_abcd(3, 1, 1, 1)*qp_j(3, 1) + &
1487 tij_abcd(1, 2, 1, 1)*qp_j(1, 2) + &
1488 tij_abcd(2, 2, 1, 1)*qp_j(2, 2) + &
1489 tij_abcd(3, 2, 1, 1)*qp_j(3, 2) + &
1490 tij_abcd(1, 3, 1, 1)*qp_j(1, 3) + &
1491 tij_abcd(2, 3, 1, 1)*qp_j(2, 3) + &
1492 tij_abcd(3, 3, 1, 1)*qp_j(3, 3))
1493 tmp21 = qp_i(2, 1)*(tij_abcd(1, 1, 1, 2)*qp_j(1, 1) + &
1494 tij_abcd(2, 1, 1, 2)*qp_j(2, 1) + &
1495 tij_abcd(3, 1, 1, 2)*qp_j(3, 1) + &
1496 tij_abcd(1, 2, 1, 2)*qp_j(1, 2) + &
1497 tij_abcd(2, 2, 1, 2)*qp_j(2, 2) + &
1498 tij_abcd(3, 2, 1, 2)*qp_j(3, 2) + &
1499 tij_abcd(1, 3, 1, 2)*qp_j(1, 3) + &
1500 tij_abcd(2, 3, 1, 2)*qp_j(2, 3) + &
1501 tij_abcd(3, 3, 1, 2)*qp_j(3, 3))
1502 tmp31 = qp_i(3, 1)*(tij_abcd(1, 1, 1, 3)*qp_j(1, 1) + &
1503 tij_abcd(2, 1, 1, 3)*qp_j(2, 1) + &
1504 tij_abcd(3, 1, 1, 3)*qp_j(3, 1) + &
1505 tij_abcd(1, 2, 1, 3)*qp_j(1, 2) + &
1506 tij_abcd(2, 2, 1, 3)*qp_j(2, 2) + &
1507 tij_abcd(3, 2, 1, 3)*qp_j(3, 2) + &
1508 tij_abcd(1, 3, 1, 3)*qp_j(1, 3) + &
1509 tij_abcd(2, 3, 1, 3)*qp_j(2, 3) + &
1510 tij_abcd(3, 3, 1, 3)*qp_j(3, 3))
1511 tmp22 = qp_i(2, 2)*(tij_abcd(1, 1, 2, 2)*qp_j(1, 1) + &
1512 tij_abcd(2, 1, 2, 2)*qp_j(2, 1) + &
1513 tij_abcd(3, 1, 2, 2)*qp_j(3, 1) + &
1514 tij_abcd(1, 2, 2, 2)*qp_j(1, 2) + &
1515 tij_abcd(2, 2, 2, 2)*qp_j(2, 2) + &
1516 tij_abcd(3, 2, 2, 2)*qp_j(3, 2) + &
1517 tij_abcd(1, 3, 2, 2)*qp_j(1, 3) + &
1518 tij_abcd(2, 3, 2, 2)*qp_j(2, 3) + &
1519 tij_abcd(3, 3, 2, 2)*qp_j(3, 3))
1520 tmp32 = qp_i(3, 2)*(tij_abcd(1, 1, 2, 3)*qp_j(1, 1) + &
1521 tij_abcd(2, 1, 2, 3)*qp_j(2, 1) + &
1522 tij_abcd(3, 1, 2, 3)*qp_j(3, 1) + &
1523 tij_abcd(1, 2, 2, 3)*qp_j(1, 2) + &
1524 tij_abcd(2, 2, 2, 3)*qp_j(2, 2) + &
1525 tij_abcd(3, 2, 2, 3)*qp_j(3, 2) + &
1526 tij_abcd(1, 3, 2, 3)*qp_j(1, 3) + &
1527 tij_abcd(2, 3, 2, 3)*qp_j(2, 3) + &
1528 tij_abcd(3, 3, 2, 3)*qp_j(3, 3))
1529 tmp33 = qp_i(3, 3)*(tij_abcd(1, 1, 3, 3)*qp_j(1, 1) + &
1530 tij_abcd(2, 1, 3, 3)*qp_j(2, 1) + &
1531 tij_abcd(3, 1, 3, 3)*qp_j(3, 1) + &
1532 tij_abcd(1, 2, 3, 3)*qp_j(1, 2) + &
1533 tij_abcd(2, 2, 3, 3)*qp_j(2, 2) + &
1534 tij_abcd(3, 2, 3, 3)*qp_j(3, 2) + &
1535 tij_abcd(1, 3, 3, 3)*qp_j(1, 3) + &
1536 tij_abcd(2, 3, 3, 3)*qp_j(2, 3) + &
1537 tij_abcd(3, 3, 3, 3)*qp_j(3, 3))
1541 tmp = tmp11 + tmp12 + tmp13 + &
1542 tmp21 + tmp22 + tmp23 + &
1543 tmp31 + tmp32 + tmp33
1545 eloc = eloc +
fac*tmp
1547 IF (do_forces .OR. do_stress)
THEN
1549 tmp11 = qp_i(1, 1)*(tij_abcde(1, 1, 1, 1, k)*qp_j(1, 1) + &
1550 tij_abcde(2, 1, 1, 1, k)*qp_j(2, 1) + &
1551 tij_abcde(3, 1, 1, 1, k)*qp_j(3, 1) + &
1552 tij_abcde(1, 2, 1, 1, k)*qp_j(1, 2) + &
1553 tij_abcde(2, 2, 1, 1, k)*qp_j(2, 2) + &
1554 tij_abcde(3, 2, 1, 1, k)*qp_j(3, 2) + &
1555 tij_abcde(1, 3, 1, 1, k)*qp_j(1, 3) + &
1556 tij_abcde(2, 3, 1, 1, k)*qp_j(2, 3) + &
1557 tij_abcde(3, 3, 1, 1, k)*qp_j(3, 3))
1558 tmp21 = qp_i(2, 1)*(tij_abcde(1, 1, 2, 1, k)*qp_j(1, 1) + &
1559 tij_abcde(2, 1, 2, 1, k)*qp_j(2, 1) + &
1560 tij_abcde(3, 1, 2, 1, k)*qp_j(3, 1) + &
1561 tij_abcde(1, 2, 2, 1, k)*qp_j(1, 2) + &
1562 tij_abcde(2, 2, 2, 1, k)*qp_j(2, 2) + &
1563 tij_abcde(3, 2, 2, 1, k)*qp_j(3, 2) + &
1564 tij_abcde(1, 3, 2, 1, k)*qp_j(1, 3) + &
1565 tij_abcde(2, 3, 2, 1, k)*qp_j(2, 3) + &
1566 tij_abcde(3, 3, 2, 1, k)*qp_j(3, 3))
1567 tmp31 = qp_i(3, 1)*(tij_abcde(1, 1, 3, 1, k)*qp_j(1, 1) + &
1568 tij_abcde(2, 1, 3, 1, k)*qp_j(2, 1) + &
1569 tij_abcde(3, 1, 3, 1, k)*qp_j(3, 1) + &
1570 tij_abcde(1, 2, 3, 1, k)*qp_j(1, 2) + &
1571 tij_abcde(2, 2, 3, 1, k)*qp_j(2, 2) + &
1572 tij_abcde(3, 2, 3, 1, k)*qp_j(3, 2) + &
1573 tij_abcde(1, 3, 3, 1, k)*qp_j(1, 3) + &
1574 tij_abcde(2, 3, 3, 1, k)*qp_j(2, 3) + &
1575 tij_abcde(3, 3, 3, 1, k)*qp_j(3, 3))
1576 tmp22 = qp_i(2, 2)*(tij_abcde(1, 1, 2, 2, k)*qp_j(1, 1) + &
1577 tij_abcde(2, 1, 2, 2, k)*qp_j(2, 1) + &
1578 tij_abcde(3, 1, 2, 2, k)*qp_j(3, 1) + &
1579 tij_abcde(1, 2, 2, 2, k)*qp_j(1, 2) + &
1580 tij_abcde(2, 2, 2, 2, k)*qp_j(2, 2) + &
1581 tij_abcde(3, 2, 2, 2, k)*qp_j(3, 2) + &
1582 tij_abcde(1, 3, 2, 2, k)*qp_j(1, 3) + &
1583 tij_abcde(2, 3, 2, 2, k)*qp_j(2, 3) + &
1584 tij_abcde(3, 3, 2, 2, k)*qp_j(3, 3))
1585 tmp32 = qp_i(3, 2)*(tij_abcde(1, 1, 3, 2, k)*qp_j(1, 1) + &
1586 tij_abcde(2, 1, 3, 2, k)*qp_j(2, 1) + &
1587 tij_abcde(3, 1, 3, 2, k)*qp_j(3, 1) + &
1588 tij_abcde(1, 2, 3, 2, k)*qp_j(1, 2) + &
1589 tij_abcde(2, 2, 3, 2, k)*qp_j(2, 2) + &
1590 tij_abcde(3, 2, 3, 2, k)*qp_j(3, 2) + &
1591 tij_abcde(1, 3, 3, 2, k)*qp_j(1, 3) + &
1592 tij_abcde(2, 3, 3, 2, k)*qp_j(2, 3) + &
1593 tij_abcde(3, 3, 3, 2, k)*qp_j(3, 3))
1594 tmp33 = qp_i(3, 3)*(tij_abcde(1, 1, 3, 3, k)*qp_j(1, 1) + &
1595 tij_abcde(2, 1, 3, 3, k)*qp_j(2, 1) + &
1596 tij_abcde(3, 1, 3, 3, k)*qp_j(3, 1) + &
1597 tij_abcde(1, 2, 3, 3, k)*qp_j(1, 2) + &
1598 tij_abcde(2, 2, 3, 3, k)*qp_j(2, 2) + &
1599 tij_abcde(3, 2, 3, 3, k)*qp_j(3, 2) + &
1600 tij_abcde(1, 3, 3, 3, k)*qp_j(1, 3) + &
1601 tij_abcde(2, 3, 3, 3, k)*qp_j(2, 3) + &
1602 tij_abcde(3, 3, 3, 3, k)*qp_j(3, 3))
1606 fr(k) = fr(k) -
fac*(tmp11 + tmp12 + tmp13 + &
1607 tmp21 + tmp22 + tmp23 + &
1608 tmp31 + tmp32 + tmp33)
1615 IF (do_efield0)
THEN
1616 ef0_i = ef0_i +
fac*(tij_ab(1, 1)*qp_j(1, 1) + &
1617 tij_ab(2, 1)*qp_j(2, 1) + &
1618 tij_ab(3, 1)*qp_j(3, 1) + &
1619 tij_ab(1, 2)*qp_j(1, 2) + &
1620 tij_ab(2, 2)*qp_j(2, 2) + &
1621 tij_ab(3, 2)*qp_j(3, 2) + &
1622 tij_ab(1, 3)*qp_j(1, 3) + &
1623 tij_ab(2, 3)*qp_j(2, 3) + &
1624 tij_ab(3, 3)*qp_j(3, 3))
1626 ef0_j = ef0_j +
fac*(tij_ab(1, 1)*qp_i(1, 1) + &
1627 tij_ab(2, 1)*qp_i(2, 1) + &
1628 tij_ab(3, 1)*qp_i(3, 1) + &
1629 tij_ab(1, 2)*qp_i(1, 2) + &
1630 tij_ab(2, 2)*qp_i(2, 2) + &
1631 tij_ab(3, 2)*qp_i(3, 2) + &
1632 tij_ab(1, 3)*qp_i(1, 3) + &
1633 tij_ab(2, 3)*qp_i(2, 3) + &
1634 tij_ab(3, 3)*qp_i(3, 3))
1637 IF (do_efield1)
THEN
1638 ef1_i(1) = ef1_i(1) -
fac*(tij_abc(1, 1, 1)*qp_j(1, 1) + &
1639 tij_abc(2, 1, 1)*qp_j(2, 1) + &
1640 tij_abc(3, 1, 1)*qp_j(3, 1) + &
1641 tij_abc(1, 2, 1)*qp_j(1, 2) + &
1642 tij_abc(2, 2, 1)*qp_j(2, 2) + &
1643 tij_abc(3, 2, 1)*qp_j(3, 2) + &
1644 tij_abc(1, 3, 1)*qp_j(1, 3) + &
1645 tij_abc(2, 3, 1)*qp_j(2, 3) + &
1646 tij_abc(3, 3, 1)*qp_j(3, 3))
1647 ef1_i(2) = ef1_i(2) -
fac*(tij_abc(1, 1, 2)*qp_j(1, 1) + &
1648 tij_abc(2, 1, 2)*qp_j(2, 1) + &
1649 tij_abc(3, 1, 2)*qp_j(3, 1) + &
1650 tij_abc(1, 2, 2)*qp_j(1, 2) + &
1651 tij_abc(2, 2, 2)*qp_j(2, 2) + &
1652 tij_abc(3, 2, 2)*qp_j(3, 2) + &
1653 tij_abc(1, 3, 2)*qp_j(1, 3) + &
1654 tij_abc(2, 3, 2)*qp_j(2, 3) + &
1655 tij_abc(3, 3, 2)*qp_j(3, 3))
1656 ef1_i(3) = ef1_i(3) -
fac*(tij_abc(1, 1, 3)*qp_j(1, 1) + &
1657 tij_abc(2, 1, 3)*qp_j(2, 1) + &
1658 tij_abc(3, 1, 3)*qp_j(3, 1) + &
1659 tij_abc(1, 2, 3)*qp_j(1, 2) + &
1660 tij_abc(2, 2, 3)*qp_j(2, 2) + &
1661 tij_abc(3, 2, 3)*qp_j(3, 2) + &
1662 tij_abc(1, 3, 3)*qp_j(1, 3) + &
1663 tij_abc(2, 3, 3)*qp_j(2, 3) + &
1664 tij_abc(3, 3, 3)*qp_j(3, 3))
1666 ef1_j(1) = ef1_j(1) +
fac*(tij_abc(1, 1, 1)*qp_i(1, 1) + &
1667 tij_abc(2, 1, 1)*qp_i(2, 1) + &
1668 tij_abc(3, 1, 1)*qp_i(3, 1) + &
1669 tij_abc(1, 2, 1)*qp_i(1, 2) + &
1670 tij_abc(2, 2, 1)*qp_i(2, 2) + &
1671 tij_abc(3, 2, 1)*qp_i(3, 2) + &
1672 tij_abc(1, 3, 1)*qp_i(1, 3) + &
1673 tij_abc(2, 3, 1)*qp_i(2, 3) + &
1674 tij_abc(3, 3, 1)*qp_i(3, 3))
1675 ef1_j(2) = ef1_j(2) +
fac*(tij_abc(1, 1, 2)*qp_i(1, 1) + &
1676 tij_abc(2, 1, 2)*qp_i(2, 1) + &
1677 tij_abc(3, 1, 2)*qp_i(3, 1) + &
1678 tij_abc(1, 2, 2)*qp_i(1, 2) + &
1679 tij_abc(2, 2, 2)*qp_i(2, 2) + &
1680 tij_abc(3, 2, 2)*qp_i(3, 2) + &
1681 tij_abc(1, 3, 2)*qp_i(1, 3) + &
1682 tij_abc(2, 3, 2)*qp_i(2, 3) + &
1683 tij_abc(3, 3, 2)*qp_i(3, 3))
1684 ef1_j(3) = ef1_j(3) +
fac*(tij_abc(1, 1, 3)*qp_i(1, 1) + &
1685 tij_abc(2, 1, 3)*qp_i(2, 1) + &
1686 tij_abc(3, 1, 3)*qp_i(3, 1) + &
1687 tij_abc(1, 2, 3)*qp_i(1, 2) + &
1688 tij_abc(2, 2, 3)*qp_i(2, 2) + &
1689 tij_abc(3, 2, 3)*qp_i(3, 2) + &
1690 tij_abc(1, 3, 3)*qp_i(1, 3) + &
1691 tij_abc(2, 3, 3)*qp_i(2, 3) + &
1692 tij_abc(3, 3, 3)*qp_i(3, 3))
1695 IF (do_efield2)
THEN
1696 tmp11 =
fac*(tij_abcd(1, 1, 1, 1)*qp_j(1, 1) + &
1697 tij_abcd(2, 1, 1, 1)*qp_j(2, 1) + &
1698 tij_abcd(3, 1, 1, 1)*qp_j(3, 1) + &
1699 tij_abcd(1, 2, 1, 1)*qp_j(1, 2) + &
1700 tij_abcd(2, 2, 1, 1)*qp_j(2, 2) + &
1701 tij_abcd(3, 2, 1, 1)*qp_j(3, 2) + &
1702 tij_abcd(1, 3, 1, 1)*qp_j(1, 3) + &
1703 tij_abcd(2, 3, 1, 1)*qp_j(2, 3) + &
1704 tij_abcd(3, 3, 1, 1)*qp_j(3, 3))
1705 tmp12 =
fac*(tij_abcd(1, 1, 1, 2)*qp_j(1, 1) + &
1706 tij_abcd(2, 1, 1, 2)*qp_j(2, 1) + &
1707 tij_abcd(3, 1, 1, 2)*qp_j(3, 1) + &
1708 tij_abcd(1, 2, 1, 2)*qp_j(1, 2) + &
1709 tij_abcd(2, 2, 1, 2)*qp_j(2, 2) + &
1710 tij_abcd(3, 2, 1, 2)*qp_j(3, 2) + &
1711 tij_abcd(1, 3, 1, 2)*qp_j(1, 3) + &
1712 tij_abcd(2, 3, 1, 2)*qp_j(2, 3) + &
1713 tij_abcd(3, 3, 1, 2)*qp_j(3, 3))
1714 tmp13 =
fac*(tij_abcd(1, 1, 1, 3)*qp_j(1, 1) + &
1715 tij_abcd(2, 1, 1, 3)*qp_j(2, 1) + &
1716 tij_abcd(3, 1, 1, 3)*qp_j(3, 1) + &
1717 tij_abcd(1, 2, 1, 3)*qp_j(1, 2) + &
1718 tij_abcd(2, 2, 1, 3)*qp_j(2, 2) + &
1719 tij_abcd(3, 2, 1, 3)*qp_j(3, 2) + &
1720 tij_abcd(1, 3, 1, 3)*qp_j(1, 3) + &
1721 tij_abcd(2, 3, 1, 3)*qp_j(2, 3) + &
1722 tij_abcd(3, 3, 1, 3)*qp_j(3, 3))
1723 tmp22 =
fac*(tij_abcd(1, 1, 2, 2)*qp_j(1, 1) + &
1724 tij_abcd(2, 1, 2, 2)*qp_j(2, 1) + &
1725 tij_abcd(3, 1, 2, 2)*qp_j(3, 1) + &
1726 tij_abcd(1, 2, 2, 2)*qp_j(1, 2) + &
1727 tij_abcd(2, 2, 2, 2)*qp_j(2, 2) + &
1728 tij_abcd(3, 2, 2, 2)*qp_j(3, 2) + &
1729 tij_abcd(1, 3, 2, 2)*qp_j(1, 3) + &
1730 tij_abcd(2, 3, 2, 2)*qp_j(2, 3) + &
1731 tij_abcd(3, 3, 2, 2)*qp_j(3, 3))
1732 tmp23 =
fac*(tij_abcd(1, 1, 2, 3)*qp_j(1, 1) + &
1733 tij_abcd(2, 1, 2, 3)*qp_j(2, 1) + &
1734 tij_abcd(3, 1, 2, 3)*qp_j(3, 1) + &
1735 tij_abcd(1, 2, 2, 3)*qp_j(1, 2) + &
1736 tij_abcd(2, 2, 2, 3)*qp_j(2, 2) + &
1737 tij_abcd(3, 2, 2, 3)*qp_j(3, 2) + &
1738 tij_abcd(1, 3, 2, 3)*qp_j(1, 3) + &
1739 tij_abcd(2, 3, 2, 3)*qp_j(2, 3) + &
1740 tij_abcd(3, 3, 2, 3)*qp_j(3, 3))
1741 tmp33 =
fac*(tij_abcd(1, 1, 3, 3)*qp_j(1, 1) + &
1742 tij_abcd(2, 1, 3, 3)*qp_j(2, 1) + &
1743 tij_abcd(3, 1, 3, 3)*qp_j(3, 1) + &
1744 tij_abcd(1, 2, 3, 3)*qp_j(1, 2) + &
1745 tij_abcd(2, 2, 3, 3)*qp_j(2, 2) + &
1746 tij_abcd(3, 2, 3, 3)*qp_j(3, 2) + &
1747 tij_abcd(1, 3, 3, 3)*qp_j(1, 3) + &
1748 tij_abcd(2, 3, 3, 3)*qp_j(2, 3) + &
1749 tij_abcd(3, 3, 3, 3)*qp_j(3, 3))
1751 ef2_i(1, 1) = ef2_i(1, 1) - tmp11
1752 ef2_i(1, 2) = ef2_i(1, 2) - tmp12
1753 ef2_i(1, 3) = ef2_i(1, 3) - tmp13
1754 ef2_i(2, 1) = ef2_i(2, 1) - tmp12
1755 ef2_i(2, 2) = ef2_i(2, 2) - tmp22
1756 ef2_i(2, 3) = ef2_i(2, 3) - tmp23
1757 ef2_i(3, 1) = ef2_i(3, 1) - tmp13
1758 ef2_i(3, 2) = ef2_i(3, 2) - tmp23
1759 ef2_i(3, 3) = ef2_i(3, 3) - tmp33
1761 tmp11 =
fac*(tij_abcd(1, 1, 1, 1)*qp_i(1, 1) + &
1762 tij_abcd(2, 1, 1, 1)*qp_i(2, 1) + &
1763 tij_abcd(3, 1, 1, 1)*qp_i(3, 1) + &
1764 tij_abcd(1, 2, 1, 1)*qp_i(1, 2) + &
1765 tij_abcd(2, 2, 1, 1)*qp_i(2, 2) + &
1766 tij_abcd(3, 2, 1, 1)*qp_i(3, 2) + &
1767 tij_abcd(1, 3, 1, 1)*qp_i(1, 3) + &
1768 tij_abcd(2, 3, 1, 1)*qp_i(2, 3) + &
1769 tij_abcd(3, 3, 1, 1)*qp_i(3, 3))
1770 tmp12 =
fac*(tij_abcd(1, 1, 1, 2)*qp_i(1, 1) + &
1771 tij_abcd(2, 1, 1, 2)*qp_i(2, 1) + &
1772 tij_abcd(3, 1, 1, 2)*qp_i(3, 1) + &
1773 tij_abcd(1, 2, 1, 2)*qp_i(1, 2) + &
1774 tij_abcd(2, 2, 1, 2)*qp_i(2, 2) + &
1775 tij_abcd(3, 2, 1, 2)*qp_i(3, 2) + &
1776 tij_abcd(1, 3, 1, 2)*qp_i(1, 3) + &
1777 tij_abcd(2, 3, 1, 2)*qp_i(2, 3) + &
1778 tij_abcd(3, 3, 1, 2)*qp_i(3, 3))
1779 tmp13 =
fac*(tij_abcd(1, 1, 1, 3)*qp_i(1, 1) + &
1780 tij_abcd(2, 1, 1, 3)*qp_i(2, 1) + &
1781 tij_abcd(3, 1, 1, 3)*qp_i(3, 1) + &
1782 tij_abcd(1, 2, 1, 3)*qp_i(1, 2) + &
1783 tij_abcd(2, 2, 1, 3)*qp_i(2, 2) + &
1784 tij_abcd(3, 2, 1, 3)*qp_i(3, 2) + &
1785 tij_abcd(1, 3, 1, 3)*qp_i(1, 3) + &
1786 tij_abcd(2, 3, 1, 3)*qp_i(2, 3) + &
1787 tij_abcd(3, 3, 1, 3)*qp_i(3, 3))
1788 tmp22 =
fac*(tij_abcd(1, 1, 2, 2)*qp_i(1, 1) + &
1789 tij_abcd(2, 1, 2, 2)*qp_i(2, 1) + &
1790 tij_abcd(3, 1, 2, 2)*qp_i(3, 1) + &
1791 tij_abcd(1, 2, 2, 2)*qp_i(1, 2) + &
1792 tij_abcd(2, 2, 2, 2)*qp_i(2, 2) + &
1793 tij_abcd(3, 2, 2, 2)*qp_i(3, 2) + &
1794 tij_abcd(1, 3, 2, 2)*qp_i(1, 3) + &
1795 tij_abcd(2, 3, 2, 2)*qp_i(2, 3) + &
1796 tij_abcd(3, 3, 2, 2)*qp_i(3, 3))
1797 tmp23 =
fac*(tij_abcd(1, 1, 2, 3)*qp_i(1, 1) + &
1798 tij_abcd(2, 1, 2, 3)*qp_i(2, 1) + &
1799 tij_abcd(3, 1, 2, 3)*qp_i(3, 1) + &
1800 tij_abcd(1, 2, 2, 3)*qp_i(1, 2) + &
1801 tij_abcd(2, 2, 2, 3)*qp_i(2, 2) + &
1802 tij_abcd(3, 2, 2, 3)*qp_i(3, 2) + &
1803 tij_abcd(1, 3, 2, 3)*qp_i(1, 3) + &
1804 tij_abcd(2, 3, 2, 3)*qp_i(2, 3) + &
1805 tij_abcd(3, 3, 2, 3)*qp_i(3, 3))
1806 tmp33 =
fac*(tij_abcd(1, 1, 3, 3)*qp_i(1, 1) + &
1807 tij_abcd(2, 1, 3, 3)*qp_i(2, 1) + &
1808 tij_abcd(3, 1, 3, 3)*qp_i(3, 1) + &
1809 tij_abcd(1, 2, 3, 3)*qp_i(1, 2) + &
1810 tij_abcd(2, 2, 3, 3)*qp_i(2, 2) + &
1811 tij_abcd(3, 2, 3, 3)*qp_i(3, 2) + &
1812 tij_abcd(1, 3, 3, 3)*qp_i(1, 3) + &
1813 tij_abcd(2, 3, 3, 3)*qp_i(2, 3) + &
1814 tij_abcd(3, 3, 3, 3)*qp_i(3, 3))
1816 ef2_j(1, 1) = ef2_j(1, 1) - tmp11
1817 ef2_j(1, 2) = ef2_j(1, 2) - tmp12
1818 ef2_j(1, 3) = ef2_j(1, 3) - tmp13
1819 ef2_j(2, 1) = ef2_j(2, 1) - tmp12
1820 ef2_j(2, 2) = ef2_j(2, 2) - tmp22
1821 ef2_j(2, 3) = ef2_j(2, 3) - tmp23
1822 ef2_j(3, 1) = ef2_j(3, 1) - tmp13
1823 ef2_j(3, 2) = ef2_j(3, 2) - tmp23
1824 ef2_j(3, 3) = ef2_j(3, 3) - tmp33
1828 IF (task(3, 2))
THEN
1832 tmp_ij = dp_i(1)*(tij_abc(1, 1, 1)*qp_j(1, 1) + &
1833 tij_abc(2, 1, 1)*qp_j(2, 1) + &
1834 tij_abc(3, 1, 1)*qp_j(3, 1) + &
1835 tij_abc(1, 2, 1)*qp_j(1, 2) + &
1836 tij_abc(2, 2, 1)*qp_j(2, 2) + &
1837 tij_abc(3, 2, 1)*qp_j(3, 2) + &
1838 tij_abc(1, 3, 1)*qp_j(1, 3) + &
1839 tij_abc(2, 3, 1)*qp_j(2, 3) + &
1840 tij_abc(3, 3, 1)*qp_j(3, 3)) + &
1841 dp_i(2)*(tij_abc(1, 1, 2)*qp_j(1, 1) + &
1842 tij_abc(2, 1, 2)*qp_j(2, 1) + &
1843 tij_abc(3, 1, 2)*qp_j(3, 1) + &
1844 tij_abc(1, 2, 2)*qp_j(1, 2) + &
1845 tij_abc(2, 2, 2)*qp_j(2, 2) + &
1846 tij_abc(3, 2, 2)*qp_j(3, 2) + &
1847 tij_abc(1, 3, 2)*qp_j(1, 3) + &
1848 tij_abc(2, 3, 2)*qp_j(2, 3) + &
1849 tij_abc(3, 3, 2)*qp_j(3, 3)) + &
1850 dp_i(3)*(tij_abc(1, 1, 3)*qp_j(1, 1) + &
1851 tij_abc(2, 1, 3)*qp_j(2, 1) + &
1852 tij_abc(3, 1, 3)*qp_j(3, 1) + &
1853 tij_abc(1, 2, 3)*qp_j(1, 2) + &
1854 tij_abc(2, 2, 3)*qp_j(2, 2) + &
1855 tij_abc(3, 2, 3)*qp_j(3, 2) + &
1856 tij_abc(1, 3, 3)*qp_j(1, 3) + &
1857 tij_abc(2, 3, 3)*qp_j(2, 3) + &
1858 tij_abc(3, 3, 3)*qp_j(3, 3))
1861 tmp_ji = dp_j(1)*(tij_abc(1, 1, 1)*qp_i(1, 1) + &
1862 tij_abc(2, 1, 1)*qp_i(2, 1) + &
1863 tij_abc(3, 1, 1)*qp_i(3, 1) + &
1864 tij_abc(1, 2, 1)*qp_i(1, 2) + &
1865 tij_abc(2, 2, 1)*qp_i(2, 2) + &
1866 tij_abc(3, 2, 1)*qp_i(3, 2) + &
1867 tij_abc(1, 3, 1)*qp_i(1, 3) + &
1868 tij_abc(2, 3, 1)*qp_i(2, 3) + &
1869 tij_abc(3, 3, 1)*qp_i(3, 3)) + &
1870 dp_j(2)*(tij_abc(1, 1, 2)*qp_i(1, 1) + &
1871 tij_abc(2, 1, 2)*qp_i(2, 1) + &
1872 tij_abc(3, 1, 2)*qp_i(3, 1) + &
1873 tij_abc(1, 2, 2)*qp_i(1, 2) + &
1874 tij_abc(2, 2, 2)*qp_i(2, 2) + &
1875 tij_abc(3, 2, 2)*qp_i(3, 2) + &
1876 tij_abc(1, 3, 2)*qp_i(1, 3) + &
1877 tij_abc(2, 3, 2)*qp_i(2, 3) + &
1878 tij_abc(3, 3, 2)*qp_i(3, 3)) + &
1879 dp_j(3)*(tij_abc(1, 1, 3)*qp_i(1, 1) + &
1880 tij_abc(2, 1, 3)*qp_i(2, 1) + &
1881 tij_abc(3, 1, 3)*qp_i(3, 1) + &
1882 tij_abc(1, 2, 3)*qp_i(1, 2) + &
1883 tij_abc(2, 2, 3)*qp_i(2, 2) + &
1884 tij_abc(3, 2, 3)*qp_i(3, 2) + &
1885 tij_abc(1, 3, 3)*qp_i(1, 3) + &
1886 tij_abc(2, 3, 3)*qp_i(2, 3) + &
1887 tij_abc(3, 3, 3)*qp_i(3, 3))
1889 tmp =
fac*(tmp_ij - tmp_ji)
1891 IF (do_forces .OR. do_stress)
THEN
1894 tmp_ij = dp_i(1)*(tij_abcd(1, 1, 1, k)*qp_j(1, 1) + &
1895 tij_abcd(2, 1, 1, k)*qp_j(2, 1) + &
1896 tij_abcd(3, 1, 1, k)*qp_j(3, 1) + &
1897 tij_abcd(1, 2, 1, k)*qp_j(1, 2) + &
1898 tij_abcd(2, 2, 1, k)*qp_j(2, 2) + &
1899 tij_abcd(3, 2, 1, k)*qp_j(3, 2) + &
1900 tij_abcd(1, 3, 1, k)*qp_j(1, 3) + &
1901 tij_abcd(2, 3, 1, k)*qp_j(2, 3) + &
1902 tij_abcd(3, 3, 1, k)*qp_j(3, 3)) + &
1903 dp_i(2)*(tij_abcd(1, 1, 2, k)*qp_j(1, 1) + &
1904 tij_abcd(2, 1, 2, k)*qp_j(2, 1) + &
1905 tij_abcd(3, 1, 2, k)*qp_j(3, 1) + &
1906 tij_abcd(1, 2, 2, k)*qp_j(1, 2) + &
1907 tij_abcd(2, 2, 2, k)*qp_j(2, 2) + &
1908 tij_abcd(3, 2, 2, k)*qp_j(3, 2) + &
1909 tij_abcd(1, 3, 2, k)*qp_j(1, 3) + &
1910 tij_abcd(2, 3, 2, k)*qp_j(2, 3) + &
1911 tij_abcd(3, 3, 2, k)*qp_j(3, 3)) + &
1912 dp_i(3)*(tij_abcd(1, 1, 3, k)*qp_j(1, 1) + &
1913 tij_abcd(2, 1, 3, k)*qp_j(2, 1) + &
1914 tij_abcd(3, 1, 3, k)*qp_j(3, 1) + &
1915 tij_abcd(1, 2, 3, k)*qp_j(1, 2) + &
1916 tij_abcd(2, 2, 3, k)*qp_j(2, 2) + &
1917 tij_abcd(3, 2, 3, k)*qp_j(3, 2) + &
1918 tij_abcd(1, 3, 3, k)*qp_j(1, 3) + &
1919 tij_abcd(2, 3, 3, k)*qp_j(2, 3) + &
1920 tij_abcd(3, 3, 3, k)*qp_j(3, 3))
1923 tmp_ji = dp_j(1)*(tij_abcd(1, 1, 1, k)*qp_i(1, 1) + &
1924 tij_abcd(2, 1, 1, k)*qp_i(2, 1) + &
1925 tij_abcd(3, 1, 1, k)*qp_i(3, 1) + &
1926 tij_abcd(1, 2, 1, k)*qp_i(1, 2) + &
1927 tij_abcd(2, 2, 1, k)*qp_i(2, 2) + &
1928 tij_abcd(3, 2, 1, k)*qp_i(3, 2) + &
1929 tij_abcd(1, 3, 1, k)*qp_i(1, 3) + &
1930 tij_abcd(2, 3, 1, k)*qp_i(2, 3) + &
1931 tij_abcd(3, 3, 1, k)*qp_i(3, 3)) + &
1932 dp_j(2)*(tij_abcd(1, 1, 2, k)*qp_i(1, 1) + &
1933 tij_abcd(2, 1, 2, k)*qp_i(2, 1) + &
1934 tij_abcd(3, 1, 2, k)*qp_i(3, 1) + &
1935 tij_abcd(1, 2, 2, k)*qp_i(1, 2) + &
1936 tij_abcd(2, 2, 2, k)*qp_i(2, 2) + &
1937 tij_abcd(3, 2, 2, k)*qp_i(3, 2) + &
1938 tij_abcd(1, 3, 2, k)*qp_i(1, 3) + &
1939 tij_abcd(2, 3, 2, k)*qp_i(2, 3) + &
1940 tij_abcd(3, 3, 2, k)*qp_i(3, 3)) + &
1941 dp_j(3)*(tij_abcd(1, 1, 3, k)*qp_i(1, 1) + &
1942 tij_abcd(2, 1, 3, k)*qp_i(2, 1) + &
1943 tij_abcd(3, 1, 3, k)*qp_i(3, 1) + &
1944 tij_abcd(1, 2, 3, k)*qp_i(1, 2) + &
1945 tij_abcd(2, 2, 3, k)*qp_i(2, 2) + &
1946 tij_abcd(3, 2, 3, k)*qp_i(3, 2) + &
1947 tij_abcd(1, 3, 3, k)*qp_i(1, 3) + &
1948 tij_abcd(2, 3, 3, k)*qp_i(2, 3) + &
1949 tij_abcd(3, 3, 3, k)*qp_i(3, 3))
1951 fr(k) = fr(k) -
fac*(tmp_ij - tmp_ji)
1955 IF (task(3, 1))
THEN
1960 tmp_ij = ch_i*(tij_ab(1, 1)*qp_j(1, 1) + &
1961 tij_ab(2, 1)*qp_j(2, 1) + &
1962 tij_ab(3, 1)*qp_j(3, 1) + &
1963 tij_ab(1, 2)*qp_j(1, 2) + &
1964 tij_ab(2, 2)*qp_j(2, 2) + &
1965 tij_ab(3, 2)*qp_j(3, 2) + &
1966 tij_ab(1, 3)*qp_j(1, 3) + &
1967 tij_ab(2, 3)*qp_j(2, 3) + &
1968 tij_ab(3, 3)*qp_j(3, 3))
1971 tmp_ji = ch_j*(tij_ab(1, 1)*qp_i(1, 1) + &
1972 tij_ab(2, 1)*qp_i(2, 1) + &
1973 tij_ab(3, 1)*qp_i(3, 1) + &
1974 tij_ab(1, 2)*qp_i(1, 2) + &
1975 tij_ab(2, 2)*qp_i(2, 2) + &
1976 tij_ab(3, 2)*qp_i(3, 2) + &
1977 tij_ab(1, 3)*qp_i(1, 3) + &
1978 tij_ab(2, 3)*qp_i(2, 3) + &
1979 tij_ab(3, 3)*qp_i(3, 3))
1981 eloc = eloc +
fac*(tmp_ij + tmp_ji)
1982 IF (do_forces .OR. do_stress)
THEN
1985 tmp_ij = ch_i*(tij_abc(1, 1, k)*qp_j(1, 1) + &
1986 tij_abc(2, 1, k)*qp_j(2, 1) + &
1987 tij_abc(3, 1, k)*qp_j(3, 1) + &
1988 tij_abc(1, 2, k)*qp_j(1, 2) + &
1989 tij_abc(2, 2, k)*qp_j(2, 2) + &
1990 tij_abc(3, 2, k)*qp_j(3, 2) + &
1991 tij_abc(1, 3, k)*qp_j(1, 3) + &
1992 tij_abc(2, 3, k)*qp_j(2, 3) + &
1993 tij_abc(3, 3, k)*qp_j(3, 3))
1996 tmp_ji = ch_j*(tij_abc(1, 1, k)*qp_i(1, 1) + &
1997 tij_abc(2, 1, k)*qp_i(2, 1) + &
1998 tij_abc(3, 1, k)*qp_i(3, 1) + &
1999 tij_abc(1, 2, k)*qp_i(1, 2) + &
2000 tij_abc(2, 2, k)*qp_i(2, 2) + &
2001 tij_abc(3, 2, k)*qp_i(3, 2) + &
2002 tij_abc(1, 3, k)*qp_i(1, 3) + &
2003 tij_abc(2, 3, k)*qp_i(2, 3) + &
2004 tij_abc(3, 3, k)*qp_i(3, 3))
2006 fr(k) = fr(k) -
fac*(tmp_ij + tmp_ji)
2013 IF (do_efield0)
THEN
2014 efield0(atom_a) = efield0(atom_a) + ef0_j
2016 efield0(atom_b) = efield0(atom_b) + ef0_i
2019 IF (do_efield1)
THEN
2020 efield1(1, atom_a) = efield1(1, atom_a) + ef1_j(1)
2021 efield1(2, atom_a) = efield1(2, atom_a) + ef1_j(2)
2022 efield1(3, atom_a) = efield1(3, atom_a) + ef1_j(3)
2024 efield1(1, atom_b) = efield1(1, atom_b) + ef1_i(1)
2025 efield1(2, atom_b) = efield1(2, atom_b) + ef1_i(2)
2026 efield1(3, atom_b) = efield1(3, atom_b) + ef1_i(3)
2029 IF (do_efield2)
THEN
2030 efield2(1, atom_a) = efield2(1, atom_a) + ef2_j(1, 1)
2031 efield2(2, atom_a) = efield2(2, atom_a) + ef2_j(1, 2)
2032 efield2(3, atom_a) = efield2(3, atom_a) + ef2_j(1, 3)
2033 efield2(4, atom_a) = efield2(4, atom_a) + ef2_j(2, 1)
2034 efield2(5, atom_a) = efield2(5, atom_a) + ef2_j(2, 2)
2035 efield2(6, atom_a) = efield2(6, atom_a) + ef2_j(2, 3)
2036 efield2(7, atom_a) = efield2(7, atom_a) + ef2_j(3, 1)
2037 efield2(8, atom_a) = efield2(8, atom_a) + ef2_j(3, 2)
2038 efield2(9, atom_a) = efield2(9, atom_a) + ef2_j(3, 3)
2040 efield2(1, atom_b) = efield2(1, atom_b) + ef2_i(1, 1)
2041 efield2(2, atom_b) = efield2(2, atom_b) + ef2_i(1, 2)
2042 efield2(3, atom_b) = efield2(3, atom_b) + ef2_i(1, 3)
2043 efield2(4, atom_b) = efield2(4, atom_b) + ef2_i(2, 1)
2044 efield2(5, atom_b) = efield2(5, atom_b) + ef2_i(2, 2)
2045 efield2(6, atom_b) = efield2(6, atom_b) + ef2_i(2, 3)
2046 efield2(7, atom_b) = efield2(7, atom_b) + ef2_i(3, 1)
2047 efield2(8, atom_b) = efield2(8, atom_b) + ef2_i(3, 2)
2048 efield2(9, atom_b) = efield2(9, atom_b) + ef2_i(3, 3)
2052 ptens11 = ptens11 + rab(1)*fr(1)
2053 ptens21 = ptens21 + rab(2)*fr(1)
2054 ptens31 = ptens31 + rab(3)*fr(1)
2055 ptens12 = ptens12 + rab(1)*fr(2)
2056 ptens22 = ptens22 + rab(2)*fr(2)
2057 ptens32 = ptens32 + rab(3)*fr(2)
2058 ptens13 = ptens13 + rab(1)*fr(3)
2059 ptens23 = ptens23 + rab(2)*fr(3)
2060 ptens33 = ptens33 + rab(3)*fr(3)
2064 IF (
PRESENT(integral_value))
THEN
2065 integral_value = eloc