189 origin_A, L_A, num_primitives_A, coeffs_A, alpha_A, &
190 origin_B, L_B, num_primitives_B, coeffs_B, alpha_B, &
191 rpp_origin, rpp_ang_momentum, rpp_num_primitives, rpp_powers, rpp_coeffs, rpp_alpha, &
192 point_3d, grad_sox_x, grad_sox_y, grad_sox_z, &
193 grad_soy_x, grad_soy_y, grad_soy_z, &
194 grad_soz_x, grad_soz_y, grad_soz_z &
197 REAL(8),
DIMENSION(*),
INTENT(in) :: origin_A
198 INTEGER(4),
INTENT(in) :: L_A, num_primitives_A
199 REAL(8),
INTENT(in) :: coeffs_A(*), alpha_A(*)
200 REAL(8),
DIMENSION(*),
INTENT(in) :: origin_B
201 INTEGER(4),
INTENT(in) :: L_B, num_primitives_B
202 REAL(8),
INTENT(in) :: coeffs_B(*), alpha_B(*)
203 REAL(8),
DIMENSION(*),
INTENT(in) :: rpp_origin
204 INTEGER(4),
INTENT(in) :: rpp_ang_momentum
205 INTEGER(4),
DIMENSION(*),
INTENT(in) :: rpp_num_primitives, rpp_powers
206 REAL(8),
DIMENSION(*),
INTENT(in) :: rpp_coeffs, rpp_alpha, point_3d
207 REAL(8),
DIMENSION(*),
INTENT(out) :: grad_sox_x, grad_sox_y, grad_sox_z, &
208 grad_soy_x, grad_soy_y, grad_soy_z, &
209 grad_soz_x, grad_soz_y, grad_soz_z
253 origin_A, L_A, num_primitives_A, coeffs_A, alpha_A, &
254 origin_B, L_B, num_primitives_B, coeffs_B, alpha_B, &
255 rpp_origin, num_oc_shells, &
256 oc_shells_L, oc_shells_J, rpp_num_primitives, rpp_powers, rpp_coeffs, rpp_alpha, &
257 oc_shells_num_primitives, oc_shells_coeffs, oc_shells_alpha, &
258 arep_matrix, so_x_matrix, so_y_matrix, so_z_matrix &
262 REAL(8),
INTENT(in) :: origin_A(*)
263 INTEGER(4),
INTENT(in) :: L_A, num_primitives_A
264 REAL(8),
INTENT(in) :: coeffs_A(*), alpha_A(*), origin_B(*)
265 INTEGER(4),
INTENT(in) :: L_B, num_primitives_B
266 REAL(8),
INTENT(in) :: coeffs_B(*), alpha_B(*), rpp_origin(*)
267 INTEGER(4) :: num_oc_shells
268 INTEGER(4),
INTENT(in) :: oc_shells_L(:), oc_shells_J(:), &
269 rpp_num_primitives(:), rpp_powers(:, :)
270 REAL(8),
INTENT(in) :: rpp_coeffs(:, :), rpp_alpha(:, :)
271 INTEGER(4) :: oc_shells_num_primitives(:)
272 REAL(8) :: oc_shells_coeffs(:, :), &
273 oc_shells_alpha(:, :)
274 REAL(8),
INTENT(out) :: arep_matrix(*), so_x_matrix(*), &
275 so_y_matrix(*), so_z_matrix(*)
277 INTEGER :: i, j, ncart1, ncart2
280 origin_A, L_A, num_primitives_A, coeffs_A, alpha_A, &
281 origin_B, L_B, num_primitives_B, coeffs_B, alpha_B, &
282 pot_origin, pot_L, pot_J, pot_num_primitives, pot_powers, pot_coeffs, pot_alpha, &
283 oc_shell_num_primitives, oc_shell_coeffs, oc_shell_alpha, &
284 arep_matrix, so_x_matrix, so_y_matrix, so_z_matrix) &
285 BIND(C, name="libgrpp_outercore_potential_integrals_part_1_")
286 IMPORT :: c_int32_t, c_double
287 REAL(kind=c_double),
DIMENSION(*) :: origin_a
288 INTEGER(kind=C_INT32_T) :: L_A
289 INTEGER(kind=C_INT32_T) :: num_primitives_A
290 REAL(kind=c_double),
DIMENSION(*) :: coeffs_a
291 REAL(kind=c_double),
DIMENSION(*) :: alpha_a
292 REAL(kind=c_double),
DIMENSION(*) :: origin_b
293 INTEGER(kind=C_INT32_T) :: L_B
294 INTEGER(kind=C_INT32_T) :: num_primitives_B
295 REAL(kind=c_double),
DIMENSION(*) :: coeffs_b
296 REAL(kind=c_double),
DIMENSION(*) :: alpha_b
297 REAL(kind=c_double),
DIMENSION(*) :: pot_origin
298 INTEGER(kind=C_INT32_T) :: pot_L
299 INTEGER(kind=C_INT32_T) :: pot_J
300 INTEGER(kind=C_INT32_T) :: pot_num_primitives
301 INTEGER(kind=C_INT32_T),
DIMENSION(*) :: pot_powers
302 REAL(kind=c_double),
DIMENSION(*) :: pot_coeffs
303 REAL(kind=c_double),
DIMENSION(*) :: pot_alpha
304 INTEGER(kind=C_INT32_T) :: oc_shell_num_primitives
305 REAL(kind=c_double),
DIMENSION(*) :: oc_shell_coeffs
306 REAL(kind=c_double),
DIMENSION(*) :: oc_shell_alpha
307 REAL(kind=c_double),
DIMENSION(*) :: arep_matrix
308 REAL(kind=c_double),
DIMENSION(*) :: so_x_matrix
309 REAL(kind=c_double),
DIMENSION(*) :: so_y_matrix
310 REAL(kind=c_double),
DIMENSION(*) :: so_z_matrix
315 origin_A, L_A, num_primitives_A, coeffs_A, alpha_A, &
316 origin_B, L_B, num_primitives_B, coeffs_B, alpha_B, &
317 pot_origin, oc_shell_1_L, oc_shell_1_J, &
318 pot1_num_primitives, pot1_powers, pot1_coeffs, pot1_alpha, &
319 oc_shell_1_num_primitives, oc_shell_1_coeffs, oc_shell_1_alpha, &
320 oc_shell_2_L, oc_shell_2_J, pot2_num_primitives, pot2_powers, pot2_coeffs, &
321 pot2_alpha, oc_shell_2_num_primitives, oc_shell_2_coeffs, oc_shell_2_alpha, &
322 arep_matrix, so_x_matrix, so_y_matrix, so_z_matrix) &
323 BIND(C, name="libgrpp_outercore_potential_integrals_part_2_")
324 IMPORT :: c_int32_t, c_double
325 REAL(kind=c_double),
DIMENSION(*) :: origin_a
326 INTEGER(kind=C_INT32_T) :: L_A
327 INTEGER(kind=C_INT32_T) :: num_primitives_A
328 REAL(kind=c_double),
DIMENSION(*) :: coeffs_a
329 REAL(kind=c_double),
DIMENSION(*) :: alpha_a
330 REAL(kind=c_double),
DIMENSION(*) :: origin_b
331 INTEGER(kind=C_INT32_T) :: L_B
332 INTEGER(kind=C_INT32_T) :: num_primitives_B
333 REAL(kind=c_double),
DIMENSION(*) :: coeffs_b
334 REAL(kind=c_double),
DIMENSION(*) :: alpha_b
335 REAL(kind=c_double),
DIMENSION(*) :: pot_origin
336 INTEGER(kind=C_INT32_T) :: oc_shell_1_L
337 INTEGER(kind=C_INT32_T) :: oc_shell_1_J
338 INTEGER(kind=C_INT32_T) :: pot1_num_primitives
339 INTEGER(kind=C_INT32_T),
DIMENSION(*) :: pot1_powers
340 REAL(kind=c_double),
DIMENSION(*) :: pot1_coeffs
341 REAL(kind=c_double),
DIMENSION(*) :: pot1_alpha
342 INTEGER(kind=C_INT32_T) :: oc_shell_1_num_primitives
343 REAL(kind=c_double),
DIMENSION(*) :: oc_shell_1_coeffs
344 REAL(kind=c_double),
DIMENSION(*) :: oc_shell_1_alpha
345 INTEGER(kind=C_INT32_T) :: oc_shell_2_L
346 INTEGER(kind=C_INT32_T) :: oc_shell_2_J
347 INTEGER(kind=C_INT32_T) :: pot2_num_primitives
348 INTEGER(kind=C_INT32_T),
DIMENSION(*) :: pot2_powers
349 REAL(kind=c_double),
DIMENSION(*) :: pot2_coeffs
350 REAL(kind=c_double),
DIMENSION(*) :: pot2_alpha
351 INTEGER(kind=C_INT32_T) :: oc_shell_2_num_primitives
352 REAL(kind=c_double),
DIMENSION(*) :: oc_shell_2_coeffs
353 REAL(kind=c_double),
DIMENSION(*) :: oc_shell_2_alpha
354 REAL(kind=c_double),
DIMENSION(*) :: arep_matrix
355 REAL(kind=c_double),
DIMENSION(*) :: so_x_matrix
356 REAL(kind=c_double),
DIMENSION(*) :: so_y_matrix
357 REAL(kind=c_double),
DIMENSION(*) :: so_z_matrix
367 ncart1 = (l_a + 1)*(l_a + 2)/2
368 ncart2 = (l_b + 1)*(l_b + 2)/2
370 arep_matrix(1:ncart1*ncart2) = 0.0d0
371 so_x_matrix(1:ncart1*ncart2) = 0.0d0
372 so_y_matrix(1:ncart1*ncart2) = 0.0d0
373 so_z_matrix(1:ncart1*ncart2) = 0.0d0
377 DO i = 1, num_oc_shells
379 origin_a, l_a, num_primitives_a, coeffs_a, alpha_a, &
380 origin_b, l_b, num_primitives_b, coeffs_b, alpha_b, &
381 rpp_origin, oc_shells_l(i), oc_shells_j(i), &
382 rpp_num_primitives(i), rpp_powers(i, :), rpp_coeffs(i, :), rpp_alpha(i, :), &
383 oc_shells_num_primitives(i), oc_shells_coeffs(i, :), oc_shells_alpha(i, :), &
384 arep_matrix, so_x_matrix, so_y_matrix, so_z_matrix &
390 DO i = 1, num_oc_shells
391 DO j = 1, num_oc_shells
394 origin_a, l_a, num_primitives_a, coeffs_a, alpha_a, &
395 origin_b, l_b, num_primitives_b, coeffs_b, alpha_b, &
397 oc_shells_l(i), oc_shells_j(i), &
398 rpp_num_primitives(i), rpp_powers(i, :), rpp_coeffs(i, :), rpp_alpha(i, :), &
399 oc_shells_num_primitives(i), oc_shells_coeffs(i, :), oc_shells_alpha(i, :), &
400 oc_shells_l(j), oc_shells_j(j), &
401 rpp_num_primitives(j), rpp_powers(j, :), rpp_coeffs(j, :), rpp_alpha(j, :), &
402 oc_shells_num_primitives(j), oc_shells_coeffs(j, :), oc_shells_alpha(j, :), &
403 arep_matrix, so_x_matrix, so_y_matrix, so_z_matrix &