18 #include <libint2/libint2_params.h>
19 #include <libint2/config.h>
24 USE iso_c_binding,
ONLY: c_f_pointer, &
31 libint2_build, libint2_build_eri, libint2_build_eri1, libint2_cleanup_eri, &
32 libint2_cleanup_eri1, libint2_init_eri, libint2_init_eri1, libint2_static_cleanup, &
33 libint2_static_init, libint_t, libint2_max_am_eri, libint2_init_3eri, libint2_cleanup_3eri, &
34 libint2_init_2eri, libint2_cleanup_2eri, &
35 libint2_build_2eri, libint2_build_3eri, libint2_build_3eri1, libint2_cleanup_3eri1, libint2_init_3eri1, &
36 libint2_build_2eri1, libint2_cleanup_2eri1, libint2_init_2eri1
39 #include "./base/base_uses.f90"
54 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'libint_wrapper'
57 INTEGER,
PARAMETER :: libint_max_am = libint2_max_am_eri
59 INTEGER,
PARAMETER :: libint_max_am = 0
64 INTEGER,
PARAMETER :: libint_vrr_classes_size = 2*(libint_max_am) + 1
72 TYPE(libint_t),
DIMENSION(1) :: prv
74 INTEGER :: unused = -1
80 SUBROUTINE cp_libint_set_params_eri_screen(libint, A, B, C, D, P, Q, W, ZetaInv, EtaInv, ZetapEtaInv, Rho, m_max, F)
81 TYPE(cp_libint_t) :: libint
82 REAL(kind=
dp),
INTENT(IN),
DIMENSION(3) :: a, b, c, d, p, q, w
83 REAL(kind=
dp),
INTENT(IN) :: zetainv, etainv, zetapetainv, rho
84 INTEGER,
INTENT(IN) :: m_max
85 REAL(kind=
dp),
DIMENSION(:) :: f
88 libint%prv(1)%AB_x(1) = a(1) - b(1)
89 libint%prv(1)%AB_y(1) = a(2) - b(2)
90 libint%prv(1)%AB_z(1) = a(3) - b(3)
92 libint%prv(1)%CD_x(1) = c(1) - d(1)
93 libint%prv(1)%CD_y(1) = c(2) - d(2)
94 libint%prv(1)%CD_z(1) = c(3) - d(3)
96 libint%prv(1)%PA_x(1) = p(1) - a(1)
97 libint%prv(1)%PA_y(1) = p(2) - a(2)
98 libint%prv(1)%PA_z(1) = p(3) - a(3)
100 libint%prv(1)%QC_x(1) = q(1) - c(1)
101 libint%prv(1)%QC_y(1) = q(2) - c(2)
102 libint%prv(1)%QC_z(1) = q(3) - c(3)
104 libint%prv(1)%WP_x(1) = w(1) - p(1)
105 libint%prv(1)%WP_y(1) = w(2) - p(2)
106 libint%prv(1)%WP_z(1) = w(3) - p(3)
108 libint%prv(1)%WQ_x(1) = w(1) - q(1)
109 libint%prv(1)%WQ_y(1) = w(2) - q(2)
110 libint%prv(1)%WQ_z(1) = w(3) - q(3)
112 libint%prv(1)%oo2z(1) = 0.5_dp*zetainv
113 libint%prv(1)%oo2e(1) = 0.5_dp*etainv
114 libint%prv(1)%oo2ze(1) = 0.5_dp*zetapetainv
115 libint%prv(1)%roz(1) = rho*zetainv
116 libint%prv(1)%roe(1) = rho*etainv
118 #if 4*LIBINT2_MAX_AM_eri > 0 - 1
120 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_0 (1) &
124 #if 4*LIBINT2_MAX_AM_eri > 1 - 1
126 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_1 (1) &
130 #if 4*LIBINT2_MAX_AM_eri > 2 - 1
132 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_2 (1) &
136 #if 4*LIBINT2_MAX_AM_eri > 3 - 1
138 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_3 (1) &
142 #if 4*LIBINT2_MAX_AM_eri > 4 - 1
144 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_4 (1) &
148 #if 4*LIBINT2_MAX_AM_eri > 5 - 1
150 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_5 (1) &
154 #if 4*LIBINT2_MAX_AM_eri > 6 - 1
156 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_6 (1) &
160 #if 4*LIBINT2_MAX_AM_eri > 7 - 1
162 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_7 (1) &
166 #if 4*LIBINT2_MAX_AM_eri > 8 - 1
168 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_8 (1) &
172 #if 4*LIBINT2_MAX_AM_eri > 9 - 1
174 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_9 (1) &
178 #if 4*LIBINT2_MAX_AM_eri > 10 - 1
180 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_10 (1) &
184 #if 4*LIBINT2_MAX_AM_eri > 11 - 1
186 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_11 (1) &
190 #if 4*LIBINT2_MAX_AM_eri > 12 - 1
192 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_12 (1) &
196 #if 4*LIBINT2_MAX_AM_eri > 13 - 1
198 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_13 (1) &
202 #if 4*LIBINT2_MAX_AM_eri > 14 - 1
204 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_14 (1) &
208 #if 4*LIBINT2_MAX_AM_eri > 15 - 1
210 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_15 (1) &
214 #if 4*LIBINT2_MAX_AM_eri > 16 - 1
216 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_16 (1) &
220 #if 4*LIBINT2_MAX_AM_eri > 17 - 1
222 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_17 (1) &
226 #if 4*LIBINT2_MAX_AM_eri > 18 - 1
228 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_18 (1) &
232 #if 4*LIBINT2_MAX_AM_eri > 19 - 1
234 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_19 (1) &
238 #if 4*LIBINT2_MAX_AM_eri > 20 - 1
240 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_20 (1) &
244 #if 4*LIBINT2_MAX_AM_eri > 21 - 1
246 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_21 (1) &
250 #if 4*LIBINT2_MAX_AM_eri > 22 - 1
252 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_22 (1) &
256 #if 4*LIBINT2_MAX_AM_eri > 23 - 1
258 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_23 (1) &
262 #if 4*LIBINT2_MAX_AM_eri > 24 - 1
264 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_24 (1) &
268 #if 4*LIBINT2_MAX_AM_eri > 25 - 1
270 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_25 (1) &
274 #if 4*LIBINT2_MAX_AM_eri > 26 - 1
276 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_26 (1) &
280 #if 4*LIBINT2_MAX_AM_eri > 27 - 1
282 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_27 (1) &
286 #if 4*LIBINT2_MAX_AM_eri > 28 - 1
288 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_28 (1) &
292 #if 4*LIBINT2_MAX_AM_eri > 29 - 1
294 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_29 (1) &
298 #if 4*LIBINT2_MAX_AM_eri > 30 - 1
300 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_30 (1) &
304 #if 4*LIBINT2_MAX_AM_eri > 31 - 1
306 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_31 (1) &
322 mark_used(zetapetainv)
327 cpabort(
"This CP2K executable has not been linked against the required library libint.")
332 SUBROUTINE cp_libint_set_params_eri_deriv(libint, A, B, C, D, P, Q, W, zeta_A, zeta_B, zeta_C, zeta_D, &
333 ZetaInv, EtaInv, ZetapEtaInv, Rho, m_max, F)
334 TYPE(cp_libint_t) :: libint
335 REAL(kind=
dp),
INTENT(IN),
DIMENSION(3) :: a, b, c, d, p, q, w
336 REAL(kind=
dp),
INTENT(IN) :: zeta_a, zeta_b, zeta_c, zeta_d, zetainv, etainv, zetapetainv, rho
338 INTEGER,
INTENT(IN) :: m_max
339 REAL(kind=
dp),
DIMENSION(:) :: f
342 REAL(kind=
dp) :: gammap, gammaq, gammapq, rhop, rhoq
343 libint%prv(1)%AB_x(1) = a(1) - b(1)
344 libint%prv(1)%AB_y(1) = a(2) - b(2)
345 libint%prv(1)%AB_z(1) = a(3) - b(3)
347 libint%prv(1)%CD_x(1) = c(1) - d(1)
348 libint%prv(1)%CD_y(1) = c(2) - d(2)
349 libint%prv(1)%CD_z(1) = c(3) - d(3)
351 libint%prv(1)%PA_x(1) = p(1) - a(1)
352 libint%prv(1)%PA_y(1) = p(2) - a(2)
353 libint%prv(1)%PA_z(1) = p(3) - a(3)
355 libint%prv(1)%PB_x(1) = p(1) - b(1)
356 libint%prv(1)%PB_y(1) = p(2) - b(2)
357 libint%prv(1)%PB_z(1) = p(3) - b(3)
359 libint%prv(1)%QC_x(1) = q(1) - c(1)
360 libint%prv(1)%QC_y(1) = q(2) - c(2)
361 libint%prv(1)%QC_z(1) = q(3) - c(3)
363 libint%prv(1)%WP_x(1) = w(1) - p(1)
364 libint%prv(1)%WP_y(1) = w(2) - p(2)
365 libint%prv(1)%WP_z(1) = w(3) - p(3)
367 libint%prv(1)%WQ_x(1) = w(1) - q(1)
368 libint%prv(1)%WQ_y(1) = w(2) - q(2)
369 libint%prv(1)%WQ_z(1) = w(3) - q(3)
371 libint%prv(1)%two_alpha0_bra(1) = 2.0_dp*zeta_a
372 libint%prv(1)%two_alpha0_ket(1) = 2.0_dp*zeta_b
373 libint%prv(1)%two_alpha1_ket(1) = 2.0_dp*zeta_d
375 gammap = zeta_a + zeta_b
376 gammaq = zeta_c + zeta_d
377 gammapq = gammap*gammaq/(gammap + gammaq)
378 libint%prv(1)%alpha1_rho_over_zeta2(1) = zeta_a*gammapq/(gammap*gammap)
379 libint%prv(1)%alpha2_rho_over_zeta2(1) = zeta_b*gammapq/(gammap*gammap)
380 libint%prv(1)%alpha4_rho_over_eta2(1) = zeta_d*gammapq/(gammaq*gammaq)
381 libint%prv(1)%alpha1_over_zetapluseta(1) = zeta_a/(gammap + gammaq)
382 libint%prv(1)%alpha2_over_zetapluseta(1) = zeta_b/(gammap + gammaq)
383 libint%prv(1)%alpha4_over_zetapluseta(1) = zeta_d/(gammap + gammaq)
385 rhop = zeta_a*zeta_b/gammap
386 rhoq = zeta_c*zeta_d/gammaq
387 libint%prv(1)%rho12_over_alpha1(1) = rhop/zeta_a
389 libint%prv(1)%rho34_over_alpha3(1) = rhoq/zeta_c
391 libint%prv(1)%oo2z(1) = 0.5_dp*zetainv
392 libint%prv(1)%oo2e(1) = 0.5_dp*etainv
393 libint%prv(1)%oo2ze(1) = 0.5_dp*zetapetainv
394 libint%prv(1)%roz(1) = rho*zetainv
395 libint%prv(1)%roe(1) = rho*etainv
397 #if 4*LIBINT2_MAX_AM_eri > 0 - 1
399 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_0 (1) &
402 #if 4*LIBINT2_MAX_AM_eri > 1 - 1
404 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_1 (1) &
407 #if 4*LIBINT2_MAX_AM_eri > 2 - 1
409 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_2 (1) &
412 #if 4*LIBINT2_MAX_AM_eri > 3 - 1
414 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_3 (1) &
417 #if 4*LIBINT2_MAX_AM_eri > 4 - 1
419 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_4 (1) &
422 #if 4*LIBINT2_MAX_AM_eri > 5 - 1
424 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_5 (1) &
427 #if 4*LIBINT2_MAX_AM_eri > 6 - 1
429 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_6 (1) &
432 #if 4*LIBINT2_MAX_AM_eri > 7 - 1
434 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_7 (1) &
437 #if 4*LIBINT2_MAX_AM_eri > 8 - 1
439 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_8 (1) &
442 #if 4*LIBINT2_MAX_AM_eri > 9 - 1
444 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_9 (1) &
447 #if 4*LIBINT2_MAX_AM_eri > 10 - 1
449 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_10 (1) &
452 #if 4*LIBINT2_MAX_AM_eri > 11 - 1
454 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_11 (1) &
457 #if 4*LIBINT2_MAX_AM_eri > 12 - 1
459 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_12 (1) &
462 #if 4*LIBINT2_MAX_AM_eri > 13 - 1
464 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_13 (1) &
467 #if 4*LIBINT2_MAX_AM_eri > 14 - 1
469 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_14 (1) &
472 #if 4*LIBINT2_MAX_AM_eri > 15 - 1
474 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_15 (1) &
477 #if 4*LIBINT2_MAX_AM_eri > 16 - 1
479 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_16 (1) &
482 #if 4*LIBINT2_MAX_AM_eri > 17 - 1
484 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_17 (1) &
487 #if 4*LIBINT2_MAX_AM_eri > 18 - 1
489 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_18 (1) &
492 #if 4*LIBINT2_MAX_AM_eri > 19 - 1
494 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_19 (1) &
497 #if 4*LIBINT2_MAX_AM_eri > 20 - 1
499 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_20 (1) &
502 #if 4*LIBINT2_MAX_AM_eri > 21 - 1
504 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_21 (1) &
507 #if 4*LIBINT2_MAX_AM_eri > 22 - 1
509 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_22 (1) &
512 #if 4*LIBINT2_MAX_AM_eri > 23 - 1
514 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_23 (1) &
517 #if 4*LIBINT2_MAX_AM_eri > 24 - 1
519 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_24 (1) &
522 #if 4*LIBINT2_MAX_AM_eri > 25 - 1
524 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_25 (1) &
527 #if 4*LIBINT2_MAX_AM_eri > 26 - 1
529 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_26 (1) &
532 #if 4*LIBINT2_MAX_AM_eri > 27 - 1
534 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_27 (1) &
537 #if 4*LIBINT2_MAX_AM_eri > 28 - 1
539 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_28 (1) &
542 #if 4*LIBINT2_MAX_AM_eri > 29 - 1
544 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_29 (1) &
547 #if 4*LIBINT2_MAX_AM_eri > 30 - 1
549 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_30 (1) &
552 #if 4*LIBINT2_MAX_AM_eri > 31 - 1
554 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_31 (1) &
573 mark_used(zetapetainv)
577 cpabort(
"This CP2K executable has not been linked against the required library libint.")
582 SUBROUTINE cp_libint_set_params_eri(libint, A, B, C, D, ZetaInv, EtaInv, ZetapEtaInv, Rho, P, Q, W, m_max, F)
583 TYPE(cp_libint_t) :: libint
584 REAL(kind=
dp),
INTENT(IN),
DIMENSION(3) :: a, b, c, d, p, q, w
585 REAL(kind=
dp),
INTENT(IN) :: zetainv, etainv, zetapetainv, rho
586 REAL(kind=
dp),
DIMENSION(:) :: f
588 INTEGER,
INTENT(IN) :: m_max
591 libint%prv(1)%AB_x(1) = a(1) - b(1)
592 libint%prv(1)%AB_y(1) = a(2) - b(2)
593 libint%prv(1)%AB_z(1) = a(3) - b(3)
595 libint%prv(1)%CD_x(1) = c(1) - d(1)
596 libint%prv(1)%CD_y(1) = c(2) - d(2)
597 libint%prv(1)%CD_z(1) = c(3) - d(3)
599 libint%prv(1)%PA_x(1) = p(1) - a(1)
600 libint%prv(1)%PA_y(1) = p(2) - a(2)
601 libint%prv(1)%PA_z(1) = p(3) - a(3)
603 libint%prv(1)%QC_x(1) = q(1) - c(1)
604 libint%prv(1)%QC_y(1) = q(2) - c(2)
605 libint%prv(1)%QC_z(1) = q(3) - c(3)
607 libint%prv(1)%WP_x(1) = w(1) - p(1)
608 libint%prv(1)%WP_y(1) = w(2) - p(2)
609 libint%prv(1)%WP_z(1) = w(3) - p(3)
611 libint%prv(1)%WQ_x(1) = w(1) - q(1)
612 libint%prv(1)%WQ_y(1) = w(2) - q(2)
613 libint%prv(1)%WQ_z(1) = w(3) - q(3)
615 libint%prv(1)%oo2z(1) = 0.5_dp*zetainv
616 libint%prv(1)%oo2e(1) = 0.5_dp*etainv
617 libint%prv(1)%oo2ze(1) = 0.5_dp*zetapetainv
618 libint%prv(1)%roz(1) = rho*zetainv
619 libint%prv(1)%roe(1) = rho*etainv
621 #if 4*LIBINT2_MAX_AM_eri > 0 - 1
624 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_0 (1) &
627 #if 4*LIBINT2_MAX_AM_eri > 1 - 1
630 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_1 (1) &
633 #if 4*LIBINT2_MAX_AM_eri > 2 - 1
636 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_2 (1) &
639 #if 4*LIBINT2_MAX_AM_eri > 3 - 1
642 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_3 (1) &
645 #if 4*LIBINT2_MAX_AM_eri > 4 - 1
648 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_4 (1) &
651 #if 4*LIBINT2_MAX_AM_eri > 5 - 1
654 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_5 (1) &
657 #if 4*LIBINT2_MAX_AM_eri > 6 - 1
660 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_6 (1) &
663 #if 4*LIBINT2_MAX_AM_eri > 7 - 1
666 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_7 (1) &
669 #if 4*LIBINT2_MAX_AM_eri > 8 - 1
672 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_8 (1) &
675 #if 4*LIBINT2_MAX_AM_eri > 9 - 1
678 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_9 (1) &
681 #if 4*LIBINT2_MAX_AM_eri > 10 - 1
684 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_10 (1) &
687 #if 4*LIBINT2_MAX_AM_eri > 11 - 1
690 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_11 (1) &
693 #if 4*LIBINT2_MAX_AM_eri > 12 - 1
696 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_12 (1) &
699 #if 4*LIBINT2_MAX_AM_eri > 13 - 1
702 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_13 (1) &
705 #if 4*LIBINT2_MAX_AM_eri > 14 - 1
708 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_14 (1) &
711 #if 4*LIBINT2_MAX_AM_eri > 15 - 1
714 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_15 (1) &
717 #if 4*LIBINT2_MAX_AM_eri > 16 - 1
720 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_16 (1) &
723 #if 4*LIBINT2_MAX_AM_eri > 17 - 1
726 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_17 (1) &
729 #if 4*LIBINT2_MAX_AM_eri > 18 - 1
732 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_18 (1) &
735 #if 4*LIBINT2_MAX_AM_eri > 19 - 1
738 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_19 (1) &
741 #if 4*LIBINT2_MAX_AM_eri > 20 - 1
744 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_20 (1) &
747 #if 4*LIBINT2_MAX_AM_eri > 21 - 1
750 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_21 (1) &
753 #if 4*LIBINT2_MAX_AM_eri > 22 - 1
756 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_22 (1) &
759 #if 4*LIBINT2_MAX_AM_eri > 23 - 1
762 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_23 (1) &
765 #if 4*LIBINT2_MAX_AM_eri > 24 - 1
768 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_24 (1) &
771 #if 4*LIBINT2_MAX_AM_eri > 25 - 1
774 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_25 (1) &
777 #if 4*LIBINT2_MAX_AM_eri > 26 - 1
780 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_26 (1) &
783 #if 4*LIBINT2_MAX_AM_eri > 27 - 1
786 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_27 (1) &
789 #if 4*LIBINT2_MAX_AM_eri > 28 - 1
792 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_28 (1) &
795 #if 4*LIBINT2_MAX_AM_eri > 29 - 1
798 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_29 (1) &
801 #if 4*LIBINT2_MAX_AM_eri > 30 - 1
804 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_30 (1) &
807 #if 4*LIBINT2_MAX_AM_eri > 31 - 1
810 libint%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_31 (1) &
825 mark_used(zetapetainv)
829 cpabort(
"This CP2K executable has not been linked against the required library libint.")
844 INTEGER,
INTENT(IN) :: n_d, n_c, n_b, n_a
845 TYPE(cp_libint_t) :: lib
846 REAL(
dp),
DIMENSION(:),
POINTER :: p_work
847 INTEGER :: a_mysize(1)
850 PROCEDURE(libint2_build),
POINTER :: pbuild
852 CALL c_f_procpointer(libint2_build_eri(n_d, n_c, n_b, n_a), pbuild)
855 CALL c_f_pointer(lib%prv(1)%targets(1), p_work, shape=a_mysize)
864 cpabort(
"This CP2K executable has not been linked against the required library libint.")
879 INTEGER,
INTENT(IN) :: n_c, n_b, n_a
880 TYPE(cp_libint_t) :: lib
881 REAL(
dp),
DIMENSION(:),
POINTER :: p_work
882 INTEGER :: a_mysize(1)
885 PROCEDURE(libint2_build),
POINTER :: pbuild
887 CALL c_f_procpointer(libint2_build_3eri(n_c, n_b, n_a), pbuild)
890 CALL c_f_pointer(lib%prv(1)%targets(1), p_work, shape=a_mysize)
898 cpabort(
"This CP2K executable has not been linked against the required library libint.")
913 INTEGER,
INTENT(IN) :: n_c, n_b, n_a
914 TYPE(cp_libint_t) :: lib
915 INTEGER :: a_mysize(1)
916 REAL(
dp),
DIMENSION(:, :),
POINTER :: p_work
919 REAL(
dp),
DIMENSION(:),
POINTER :: p_work_tmp
920 PROCEDURE(libint2_build),
POINTER :: pbuild
923 CALL c_f_procpointer(libint2_build_3eri1(n_c, n_b, n_a), pbuild)
926 ALLOCATE (p_work(a_mysize(1), 9))
931 CALL c_f_pointer(lib%prv(1)%targets(i), p_work_tmp, shape=a_mysize)
932 p_work(:, i) = p_work_tmp
941 cpabort(
"This CP2K executable has not been linked against the required library libint.")
956 INTEGER,
INTENT(IN) :: n_b, n_a
957 TYPE(cp_libint_t) :: lib
958 INTEGER :: a_mysize(1)
959 REAL(
dp),
DIMENSION(:, :),
POINTER :: p_work
962 REAL(
dp),
DIMENSION(:),
POINTER :: p_work_tmp
963 PROCEDURE(libint2_build),
POINTER :: pbuild
966 CALL c_f_procpointer(libint2_build_2eri1(n_b, n_a), pbuild)
969 ALLOCATE (p_work(a_mysize(1), 6))
974 CALL c_f_pointer(lib%prv(1)%targets(i), p_work_tmp, shape=a_mysize)
975 p_work(:, i) = p_work_tmp
983 cpabort(
"This CP2K executable has not been linked against the required library libint.")
998 INTEGER,
INTENT(IN) :: n_b, n_a
999 TYPE(cp_libint_t) :: lib
1000 REAL(
dp),
DIMENSION(:),
POINTER :: p_work
1001 INTEGER :: a_mysize(1)
1004 PROCEDURE(libint2_build),
POINTER :: pbuild
1006 CALL c_f_procpointer(libint2_build_2eri(n_b, n_a), pbuild)
1007 CALL pbuild(lib%prv)
1009 CALL c_f_pointer(lib%prv(1)%targets(1), p_work, shape=a_mysize)
1016 cpabort(
"This CP2K executable has not been linked against the required library libint.")
1032 INTEGER,
INTENT(IN) :: n_d, n_c, n_b, n_a
1033 TYPE(cp_libint_t) :: lib
1034 REAL(
dp),
DIMENSION(nco(n_a)*nco(n_b)*nco(n_c)*nco &
(n_d), 12) :: work_forces
1035 INTEGER :: a_mysize(1)
1038 REAL(
dp),
DIMENSION(:),
POINTER :: p_work
1040 PROCEDURE(libint2_build),
POINTER :: pbuild
1045 CALL c_f_procpointer(libint2_build_eri1(n_d, n_c, n_b, n_a), pbuild)
1046 CALL pbuild(lib%prv)
1049 IF (k == 4 .OR. k == 5 .OR. k == 6) cycle
1050 CALL c_f_pointer(lib%prv(1)%targets(k), p_work, shape=a_mysize)
1051 DO i = 1, a_mysize(1)
1052 work_forces(i, k) = p_work(i)
1061 mark_used(work_forces)
1063 cpabort(
"This CP2K executable has not been linked against the required library libint.")
1069 TYPE(cp_libint_t) :: lib
1075 get_ssss_f_val = lib%prv(1)%f_aB_s___0__s___1___TwoPRep_s___0__s___1___Ab__up_0(1)
1079 cpabort(
"This CP2K executable has not been linked against the required library libint.")
1085 TYPE(cp_libint_t) :: lib
1088 CALL libint2_init_eri(lib%prv, max_am, c_null_ptr)
1092 cpabort(
"This CP2K executable has not been linked against the required library libint.")
1097 TYPE(cp_libint_t) :: lib
1098 INTEGER :: contrdepth
1100 #if LIBINT_CONTRACTED_INTS
1101 lib%prv(1)%contrdepth = contrdepth
1104 mark_used(contrdepth)
1108 mark_used(contrdepth)
1109 cpabort(
"This CP2K executable has not been linked against the required library libint.")
1115 TYPE(cp_libint_t) :: lib
1118 CALL libint2_init_eri1(lib%prv, max_am, c_null_ptr)
1122 cpabort(
"This CP2K executable has not been linked against the required library libint.")
1127 TYPE(cp_libint_t) :: lib
1130 CALL libint2_init_3eri(lib%prv, max_am, c_null_ptr)
1134 cpabort(
"This CP2K executable has not been linked against the required library libint.")
1139 TYPE(cp_libint_t) :: lib
1142 CALL libint2_init_3eri1(lib%prv, max_am, c_null_ptr)
1146 cpabort(
"This CP2K executable has not been linked against the required library libint.")
1151 TYPE(cp_libint_t) :: lib
1154 CALL libint2_init_2eri1(lib%prv, max_am, c_null_ptr)
1158 cpabort(
"This CP2K executable has not been linked against the required library libint.")
1163 TYPE(cp_libint_t) :: lib
1166 CALL libint2_init_2eri(lib%prv, max_am, c_null_ptr)
1170 cpabort(
"This CP2K executable has not been linked against the required library libint.")
1175 TYPE(cp_libint_t) :: lib
1177 CALL libint2_cleanup_eri(lib%prv)
1180 cpabort(
"This CP2K executable has not been linked against the required library libint.")
1185 TYPE(cp_libint_t) :: lib
1187 CALL libint2_cleanup_eri1(lib%prv)
1190 cpabort(
"This CP2K executable has not been linked against the required library libint.")
1195 TYPE(cp_libint_t) :: lib
1197 CALL libint2_cleanup_3eri(lib%prv)
1200 cpabort(
"This CP2K executable has not been linked against the required library libint.")
1205 TYPE(cp_libint_t) :: lib
1207 CALL libint2_cleanup_3eri1(lib%prv)
1210 cpabort(
"This CP2K executable has not been linked against the required library libint.")
1215 TYPE(cp_libint_t) :: lib
1217 CALL libint2_cleanup_2eri1(lib%prv)
1220 cpabort(
"This CP2K executable has not been linked against the required library libint.")
1225 TYPE(cp_libint_t) :: lib
1227 CALL libint2_cleanup_2eri(lib%prv)
1230 cpabort(
"This CP2K executable has not been linked against the required library libint.")
1236 CALL libint2_static_init()
1238 cpabort(
"This CP2K executable has not been linked against the required library libint.")
1244 CALL libint2_static_cleanup()
1246 cpabort(
"This CP2K executable has not been linked against the required library libint.")
1251 Defines the basic variable types.
integer, parameter, public dp
Interface to the Libint-Library or a c++ wrapper.
subroutine, public cp_libint_set_params_eri_deriv(libint, A, B, C, D, P, Q, W, zeta_A, zeta_B, zeta_C, zeta_D, ZetaInv, EtaInv, ZetapEtaInv, Rho, m_max, F)
subroutine, public cp_libint_init_eri1(lib, max_am)
subroutine, public cp_libint_get_eris(n_d, n_c, n_b, n_a, lib, p_work, a_mysize)
...
real(kind=dp) function, public get_ssss_f_val(lib)
subroutine, public cp_libint_get_2eri_derivs(n_b, n_a, lib, p_work, a_mysize)
...
integer, parameter, public build_eri_size
subroutine, public cp_libint_get_3eris(n_c, n_b, n_a, lib, p_work, a_mysize)
...
subroutine, public cp_libint_cleanup_3eri1(lib)
subroutine, public cp_libint_get_2eris(n_b, n_a, lib, p_work, a_mysize)
...
integer, parameter, public prim_data_f_size
subroutine, public cp_libint_init_3eri1(lib, max_am)
subroutine, public cp_libint_cleanup_2eri1(lib)
subroutine, public cp_libint_set_params_eri_screen(libint, A, B, C, D, P, Q, W, ZetaInv, EtaInv, ZetapEtaInv, Rho, m_max, F)
subroutine, public cp_libint_init_2eri1(lib, max_am)
subroutine, public cp_libint_get_derivs(n_d, n_c, n_b, n_a, lib, work_forces, a_mysize)
...
integer, parameter, public libint_max_am
subroutine, public cp_libint_cleanup_eri1(lib)
subroutine, public cp_libint_init_2eri(lib, max_am)
subroutine, public cp_libint_get_3eri_derivs(n_c, n_b, n_a, lib, p_work, a_mysize)
...
subroutine, public cp_libint_static_cleanup()
subroutine, public cp_libint_init_3eri(lib, max_am)
integer, parameter, public build_deriv1_eri_size
subroutine, public cp_libint_init_eri(lib, max_am)
subroutine, public cp_libint_cleanup_3eri(lib)
subroutine, public cp_libint_static_init()
subroutine, public cp_libint_cleanup_eri(lib)
subroutine, public cp_libint_set_contrdepth(lib, contrdepth)
integer, parameter, public libderiv_max_am1
subroutine, public cp_libint_cleanup_2eri(lib)
subroutine, public cp_libint_set_params_eri(libint, A, B, C, D, ZetaInv, EtaInv, ZetapEtaInv, Rho, P, Q, W, m_max, F)
Provides Cartesian and spherical orbital pointers and indices.
integer, dimension(:), allocatable, public nco