diff --git a/org/qmckl_jastrow_champ.org b/org/qmckl_jastrow_champ.org index a44fbb2..f894908 100644 --- a/org/qmckl_jastrow_champ.org +++ b/org/qmckl_jastrow_champ.org @@ -4033,17 +4033,19 @@ qmckl_exit_code qmckl_provide_jastrow_champ_asymp_jasa(qmckl_context context) | ~asymp_jasa~ | ~double[type_nucl_num]~ | out | Asymptotic value | #+begin_src f90 :comments org :tangle (eval f) :noweb yes -integer function qmckl_compute_jastrow_champ_asymp_jasa_f(context, aord_num, type_nucl_num, a_vector, & +function qmckl_compute_jastrow_champ_asymp_jasa(context, aord_num, type_nucl_num, a_vector, & rescale_factor_en, asymp_jasa) & - result(info) + result(info) bind(C) + use, intrinsic :: iso_c_binding use qmckl implicit none - integer(qmckl_context), intent(in) :: context - integer*8 , intent(in) :: aord_num - integer*8 , intent(in) :: type_nucl_num - double precision , intent(in) :: a_vector(aord_num + 1, type_nucl_num) - double precision , intent(in) :: rescale_factor_en(type_nucl_num) - double precision , intent(out) :: asymp_jasa(type_nucl_num) + integer(qmckl_context), intent(in) :: context + integer (c_int64_t) , intent(in) , value :: aord_num + integer (c_int64_t) , intent(in) , value :: type_nucl_num + real (c_double ) , intent(in) :: a_vector(aord_num+1,type_nucl_num) + real (c_double ) , intent(in) :: rescale_factor_en(type_nucl_num) + real (c_double ) , intent(out) :: asymp_jasa(type_nucl_num) + integer(qmckl_exit_code) :: info integer*8 :: i, j, p double precision :: kappa_inv, x, asym_one @@ -4074,34 +4076,9 @@ integer function qmckl_compute_jastrow_champ_asymp_jasa_f(context, aord_num, typ end do -end function qmckl_compute_jastrow_champ_asymp_jasa_f +end function qmckl_compute_jastrow_champ_asymp_jasa #+end_src - #+CALL: generate_c_interface(table=qmckl_asymp_jasa_args,rettyp=get_value("CRetType"),fname=get_value("Name")) - - #+RESULTS: - #+begin_src f90 :tangle (eval f) :comments org :exports none - integer(c_int32_t) function qmckl_compute_jastrow_champ_asymp_jasa & - (context, aord_num, type_nucl_num, a_vector, rescale_factor_en, asymp_jasa) & - bind(C) result(info) - - use, intrinsic :: iso_c_binding - implicit none - - integer (c_int64_t) , intent(in) , value :: context - integer (c_int64_t) , intent(in) , value :: aord_num - integer (c_int64_t) , intent(in) , value :: type_nucl_num - real (c_double ) , intent(in) :: a_vector(aord_num+1,type_nucl_num) - real (c_double ) , intent(in) :: rescale_factor_en(type_nucl_num) - real (c_double ) , intent(out) :: asymp_jasa(type_nucl_num) - - integer(c_int32_t), external :: qmckl_compute_jastrow_champ_asymp_jasa_f - info = qmckl_compute_jastrow_champ_asymp_jasa_f & - (context, aord_num, type_nucl_num, a_vector, rescale_factor_en, asymp_jasa) - - end function qmckl_compute_jastrow_champ_asymp_jasa - #+end_src - #+CALL: generate_c_header(table=qmckl_asymp_jasa_args,rettyp=get_value("CRetType"),fname=get_value("Name")) #+RESULTS: @@ -4764,7 +4741,7 @@ function qmckl_compute_jastrow_champ_factor_en_gl_doc( & real (c_double ) , intent(in) :: en_distance_rescaled(elec_num,nucl_num,walk_num) real (c_double ) , intent(in) :: en_distance_rescaled_gl(4, elec_num,nucl_num,walk_num) real (c_double ) , intent(out) :: factor_en_gl(elec_num,4,walk_num) - integer(qmckl_exit_code) :: info + integer(qmckl_exit_code) :: info integer*8 :: i, a, k, nw, ii double precision :: x, x1, kf @@ -5278,7 +5255,7 @@ function qmckl_compute_en_distance_rescaled_doc(context, & real (c_double ) , intent(in) :: elec_coord(elec_num,walk_num,3) real (c_double ) , intent(in) :: nucl_coord(nucl_num,3) real (c_double ) , intent(out) :: en_distance_rescaled(elec_num,nucl_num,walk_num) - integer(qmckl_exit_code) :: info + integer(qmckl_exit_code) :: info integer*8 :: i, k double precision :: coord(3) @@ -5626,23 +5603,25 @@ qmckl_exit_code qmckl_provide_en_distance_rescaled_gl(qmckl_context context) | ~en_distance_rescaled_gl~ | ~double[walk_num][nucl_num][elec_num][4]~ | out | Electron-nucleus distance derivatives | #+begin_src f90 :comments org :tangle (eval f) :noweb yes -integer function qmckl_compute_en_distance_rescaled_gl_doc_f(context, elec_num, nucl_num, & +function qmckl_compute_en_distance_rescaled_gl_doc(context, elec_num, nucl_num, & type_nucl_num, type_nucl_vector, rescale_factor_en, walk_num, elec_coord, & nucl_coord, en_distance_rescaled_gl) & - result(info) + result(info) bind(C) + use, intrinsic :: iso_c_binding use qmckl implicit none integer(qmckl_context), intent(in) :: context - integer*8 , intent(in) :: elec_num - integer*8 , intent(in) :: nucl_num - integer*8 , intent(in) :: type_nucl_num - integer*8 , intent(in) :: type_nucl_vector(nucl_num) - double precision , intent(in) :: rescale_factor_en(nucl_num) - integer*8 , intent(in) :: walk_num - double precision , intent(in) :: elec_coord(elec_num,walk_num,3) - double precision , intent(in) :: nucl_coord(nucl_num,3) - double precision , intent(out) :: en_distance_rescaled_gl(4,elec_num,nucl_num,walk_num) + integer (c_int64_t) , intent(in) , value :: elec_num + integer (c_int64_t) , intent(in) , value :: nucl_num + integer (c_int64_t) , intent(in) , value :: type_nucl_num + integer (c_int64_t) , intent(in) :: type_nucl_vector(nucl_num) + real (c_double ) , intent(in) :: rescale_factor_en(nucl_num) + integer (c_int64_t) , intent(in) , value :: walk_num + real (c_double ) , intent(in) :: elec_coord(elec_num,walk_num,3) + real (c_double ) , intent(in) :: nucl_coord(elec_num,3) + real (c_double ) , intent(out) :: en_distance_rescaled_gl(4,elec_num,nucl_num,walk_num) + integer(qmckl_exit_code) :: info integer*8 :: i, k double precision :: coord(3) @@ -5680,7 +5659,7 @@ integer function qmckl_compute_en_distance_rescaled_gl_doc_f(context, elec_num, end do end do -end function qmckl_compute_en_distance_rescaled_gl_doc_f +end function qmckl_compute_en_distance_rescaled_gl_doc #+end_src #+begin_src c :tangle (eval h_private_func) :comments org :exports none @@ -5792,52 +5771,6 @@ qmckl_exit_code qmckl_compute_en_distance_rescaled_gl ( walk_num, elec_coord, nucl_coord, en_distance_rescaled_gl ); } #+end_src - #+CALL: generate_c_interface(table=qmckl_en_distance_rescaled_gl_args,rettyp=get_value("CRetType"),fname="qmckl_compute_en_distance_rescaled_gl_doc") - - #+RESULTS: - #+begin_src f90 :tangle (eval f) :comments org :exports none - integer(c_int32_t) function qmckl_compute_en_distance_rescaled_gl_doc & - (context, & - elec_num, & - nucl_num, & - type_nucl_num, & - type_nucl_vector, & - rescale_factor_en, & - walk_num, & - elec_coord, & - nucl_coord, & - en_distance_rescaled_gl) & - bind(C) result(info) - - use, intrinsic :: iso_c_binding - implicit none - - integer (c_int64_t) , intent(in) , value :: context - integer (c_int64_t) , intent(in) , value :: elec_num - integer (c_int64_t) , intent(in) , value :: nucl_num - integer (c_int64_t) , intent(in) , value :: type_nucl_num - integer (c_int64_t) , intent(in) :: type_nucl_vector(nucl_num) - real (c_double ) , intent(in) :: rescale_factor_en(nucl_num) - integer (c_int64_t) , intent(in) , value :: walk_num - real (c_double ) , intent(in) :: elec_coord(elec_num,walk_num,3) - real (c_double ) , intent(in) :: nucl_coord(elec_num,3) - real (c_double ) , intent(out) :: en_distance_rescaled_gl(4,elec_num,nucl_num,walk_num) - - integer(c_int32_t), external :: qmckl_compute_en_distance_rescaled_gl_doc_f - info = qmckl_compute_en_distance_rescaled_gl_doc_f & - (context, & - elec_num, & - nucl_num, & - type_nucl_num, & - type_nucl_vector, & - rescale_factor_en, & - walk_num, & - elec_coord, & - nucl_coord, & - en_distance_rescaled_gl) - - end function qmckl_compute_en_distance_rescaled_gl_doc - #+end_src **** Test @@ -6025,19 +5958,22 @@ qmckl_exit_code qmckl_provide_een_rescaled_e(qmckl_context context) | ~een_rescaled_e~ | ~double[walk_num][0:cord_num][elec_num][elec_num]~ | out | Electron-electron rescaled distances for each walker | #+begin_src f90 :comments org :tangle (eval f) :noweb yes -integer function qmckl_compute_een_rescaled_e_doc_f( & +function qmckl_compute_een_rescaled_e_doc( & context, walk_num, elec_num, cord_num, rescale_factor_ee, & ee_distance, een_rescaled_e) & - result(info) + result(info) bind(C) + use, intrinsic :: iso_c_binding use qmckl implicit none integer(qmckl_context), intent(in) :: context - integer*8 , intent(in) :: walk_num - integer*8 , intent(in) :: elec_num - integer*8 , intent(in) :: cord_num - double precision , intent(in) :: rescale_factor_ee - double precision , intent(in) :: ee_distance(elec_num,elec_num,walk_num) - double precision , intent(out) :: een_rescaled_e(elec_num,elec_num,0:cord_num,walk_num) + integer (c_int64_t) , intent(in) , value :: walk_num + integer (c_int64_t) , intent(in) , value :: elec_num + integer (c_int64_t) , intent(in) , value :: cord_num + real (c_double ) , intent(in) , value :: rescale_factor_ee + real (c_double ) , intent(in) :: ee_distance(elec_num,elec_num,walk_num) + real (c_double ) , intent(out) :: een_rescaled_e(elec_num,elec_num,0:cord_num,walk_num) + integer(qmckl_exit_code) :: info + double precision,dimension(:,:),allocatable :: een_rescaled_e_ij double precision :: x integer*8 :: i, j, k, l, nw @@ -6109,7 +6045,7 @@ integer function qmckl_compute_een_rescaled_e_doc_f( & end do -end function qmckl_compute_een_rescaled_e_doc_f +end function qmckl_compute_een_rescaled_e_doc #+end_src # #+CALL: generate_c_header(table=qmckl_factor_een_rescaled_e_args,rettyp=get_value("CRetType"),fname=get_value("Name")) @@ -6125,33 +6061,6 @@ end function qmckl_compute_een_rescaled_e_doc_f double* const een_rescaled_e ); #+end_src - #+CALL: generate_c_interface(table=qmckl_factor_een_rescaled_e_args,rettyp=get_value("CRetType"),fname="qmckl_compute_een_rescaled_e_doc") - - #+RESULTS: - #+begin_src f90 :tangle (eval f) :comments org :exports none - integer(c_int32_t) function qmckl_compute_een_rescaled_e_doc & - (context, walk_num, elec_num, cord_num, rescale_factor_ee, & - ee_distance, een_rescaled_e) & - bind(C) result(info) - - use, intrinsic :: iso_c_binding - implicit none - - integer (c_int64_t) , intent(in) , value :: context - integer (c_int64_t) , intent(in) , value :: walk_num - integer (c_int64_t) , intent(in) , value :: elec_num - integer (c_int64_t) , intent(in) , value :: cord_num - real (c_double ) , intent(in) , value :: rescale_factor_ee - real (c_double ) , intent(in) :: ee_distance(elec_num,elec_num,walk_num) - real (c_double ) , intent(out) :: een_rescaled_e(elec_num,elec_num,0:cord_num,walk_num) - - integer(c_int32_t), external :: qmckl_compute_een_rescaled_e_doc_f - info = qmckl_compute_een_rescaled_e_doc_f & - (context, walk_num, elec_num, cord_num, rescale_factor_ee, ee_distance, een_rescaled_e) - - end function qmckl_compute_een_rescaled_e_doc - #+end_src - #+begin_src c :comments org :tangle (eval c) :noweb yes qmckl_exit_code qmckl_compute_een_rescaled_e_hpc ( const qmckl_context context, @@ -6560,7 +6469,7 @@ qmckl_exit_code qmckl_provide_een_rescaled_e_gl(qmckl_context context) | ~een_rescaled_e_gl~ | ~double[walk_num][0:cord_num][elec_num][4][elec_num]~ | out | Electron-electron rescaled distances | #+begin_src f90 :comments org :tangle (eval f) :noweb yes -integer(qmckl_exit_code) function qmckl_compute_jastrow_champ_factor_een_rescaled_e_gl_doc( & +function qmckl_compute_jastrow_champ_factor_een_rescaled_e_gl_doc( & context, walk_num, elec_num, cord_num, rescale_factor_ee, & coord_ee, ee_distance, een_rescaled_e, een_rescaled_e_gl) & result(info) bind(C) @@ -6576,6 +6485,7 @@ integer(qmckl_exit_code) function qmckl_compute_jastrow_champ_factor_een_rescale real(c_double) , intent(in) :: ee_distance(elec_num,elec_num,walk_num) real(c_double) , intent(in) :: een_rescaled_e(elec_num,elec_num,0:cord_num,walk_num) real(c_double) , intent(out) :: een_rescaled_e_gl(elec_num,4,elec_num,0:cord_num,walk_num) + integer(qmckl_exit_code) :: info double precision, allocatable :: elec_dist_gl(:,:,:) double precision :: x, rij_inv, kappa_l @@ -7067,23 +6977,26 @@ qmckl_exit_code qmckl_provide_een_rescaled_n(qmckl_context context) | ~een_rescaled_n~ | ~double[walk_num][0:cord_num][nucl_num][elec_num]~ | out | Electron-nucleus rescaled distances | #+begin_src f90 :comments org :tangle (eval f) :noweb yes -integer function qmckl_compute_een_rescaled_n_f( & +function qmckl_compute_een_rescaled_n( & context, walk_num, elec_num, nucl_num, & type_nucl_num, type_nucl_vector, cord_num, rescale_factor_en, & en_distance, een_rescaled_n) & - result(info) + result(info) bind(C) + use, intrinsic :: iso_c_binding use qmckl implicit none integer(qmckl_context), intent(in) :: context - integer*8 , intent(in) :: walk_num - integer*8 , intent(in) :: elec_num - integer*8 , intent(in) :: nucl_num - integer*8 , intent(in) :: type_nucl_num - integer*8 , intent(in) :: type_nucl_vector(nucl_num) - integer*8 , intent(in) :: cord_num - double precision , intent(in) :: rescale_factor_en(type_nucl_num) - double precision , intent(in) :: en_distance(nucl_num,elec_num,walk_num) - double precision , intent(out) :: een_rescaled_n(elec_num,nucl_num,0:cord_num,walk_num) + integer (c_int64_t) , intent(in) , value :: walk_num + integer (c_int64_t) , intent(in) , value :: elec_num + integer (c_int64_t) , intent(in) , value :: nucl_num + integer (c_int64_t) , intent(in) , value :: type_nucl_num + integer (c_int64_t) , intent(in) :: type_nucl_vector(nucl_num) + integer (c_int64_t) , intent(in) , value :: cord_num + real (c_double ) , intent(in) :: rescale_factor_en(nucl_num) + real (c_double ) , intent(in) :: en_distance(nucl_num,elec_num,walk_num) + real (c_double ) , intent(out) :: een_rescaled_n(elec_num,nucl_num,0:cord_num,walk_num) + integer(qmckl_exit_code) :: info + double precision :: x integer*8 :: i, a, k, l, nw @@ -7135,12 +7048,12 @@ integer function qmckl_compute_een_rescaled_n_f( & end do -end function qmckl_compute_een_rescaled_n_f +end function qmckl_compute_een_rescaled_n #+end_src #+begin_src c :comments org :tangle (eval c) :noweb yes /* -qmckl_exit_code qmckl_compute_een_rescaled_n ( +qmckl_exit_code qmckl_compute_een_rescaled_n_hpc ( const qmckl_context context, const int64_t walk_num, const int64_t elec_num, @@ -7204,53 +7117,6 @@ qmckl_exit_code qmckl_compute_een_rescaled_n ( */ #+end_src - #+CALL: generate_c_interface(table=qmckl_factor_een_rescaled_n_args,rettyp=get_value("CRetType"),fname=get_value("Name")) - - #+RESULTS: - #+begin_src f90 :tangle (eval f) :comments org :exports none - integer(c_int32_t) function qmckl_compute_een_rescaled_n & - (context, & - walk_num, & - elec_num, & - nucl_num, & - type_nucl_num, & - type_nucl_vector, & - cord_num, & - rescale_factor_en, & - en_distance, & - een_rescaled_n) & - bind(C) result(info) - - use, intrinsic :: iso_c_binding - implicit none - - integer (c_int64_t) , intent(in) , value :: context - integer (c_int64_t) , intent(in) , value :: walk_num - integer (c_int64_t) , intent(in) , value :: elec_num - integer (c_int64_t) , intent(in) , value :: nucl_num - integer (c_int64_t) , intent(in) , value :: type_nucl_num - integer (c_int64_t) , intent(in) :: type_nucl_vector(nucl_num) - integer (c_int64_t) , intent(in) , value :: cord_num - real (c_double ) , intent(in) :: rescale_factor_en(nucl_num) - real (c_double ) , intent(in) :: en_distance(nucl_num,elec_num,walk_num) - real (c_double ) , intent(out) :: een_rescaled_n(elec_num,nucl_num,0:cord_num,walk_num) - - integer(c_int32_t), external :: qmckl_compute_een_rescaled_n_f - info = qmckl_compute_een_rescaled_n_f & - (context, & - walk_num, & - elec_num, & - nucl_num, & - type_nucl_num, & - type_nucl_vector, & - cord_num, & - rescale_factor_en, & - en_distance, & - een_rescaled_n) - - end function qmckl_compute_een_rescaled_n - #+end_src - # #+CALL: generate_c_header(table=qmckl_factor_een_rescaled_n_args,rettyp=get_value("CRetType"),fname=get_value("Name")) #+begin_src c :comments org :tangle (eval h_private_func) :noweb yes :exports none @@ -7489,27 +7355,30 @@ qmckl_exit_code qmckl_provide_een_rescaled_n_gl(qmckl_context context) | ~een_rescaled_n_gl~ | ~double[walk_num][0:cord_num][nucl_num][4][elec_num]~ | out | Electron-nucleus rescaled distances | #+begin_src f90 :comments org :tangle (eval f) :noweb yes -integer function qmckl_compute_jastrow_champ_factor_een_rescaled_n_gl_f( & +function qmckl_compute_jastrow_champ_factor_een_rescaled_n_gl( & context, walk_num, elec_num, nucl_num, type_nucl_num, type_nucl_vector, & cord_num, rescale_factor_en, & coord_ee, coord_n, en_distance, een_rescaled_n, een_rescaled_n_gl) & - result(info) + result(info) bind(C) + use, intrinsic :: iso_c_binding use qmckl implicit none integer(qmckl_context), intent(in) :: context - integer*8 , intent(in) :: walk_num - integer*8 , intent(in) :: elec_num - integer*8 , intent(in) :: nucl_num - integer*8 , intent(in) :: type_nucl_num - integer*8 , intent(in) :: type_nucl_vector(nucl_num) - integer*8 , intent(in) :: cord_num - double precision , intent(in) :: rescale_factor_en(type_nucl_num) - double precision , intent(in) :: coord_ee(elec_num,3,walk_num) - double precision , intent(in) :: coord_n(nucl_num,3) - double precision , intent(in) :: en_distance(nucl_num,elec_num,walk_num) - double precision , intent(in) :: een_rescaled_n(elec_num,nucl_num,0:cord_num,walk_num) - double precision , intent(out) :: een_rescaled_n_gl(elec_num,4,nucl_num,0:cord_num,walk_num) - double precision,dimension(:,:,:),allocatable :: elnuc_dist_gl + integer (c_int64_t) , intent(in) , value :: walk_num + integer (c_int64_t) , intent(in) , value :: elec_num + integer (c_int64_t) , intent(in) , value :: nucl_num + integer (c_int64_t) , intent(in) , value :: type_nucl_num + integer (c_int64_t) , intent(in) :: type_nucl_vector(nucl_num) + integer (c_int64_t) , intent(in) , value :: cord_num + real (c_double ) , intent(in) :: rescale_factor_en(nucl_num) + real (c_double ) , intent(in) :: coord_ee(elec_num,3,walk_num) + real (c_double ) , intent(in) :: coord_n(nucl_num,3) + real (c_double ) , intent(in) :: en_distance(nucl_num,elec_num,walk_num) + real (c_double ) , intent(in) :: een_rescaled_n(elec_num,nucl_num,0:cord_num,walk_num) + real (c_double ) , intent(out) :: een_rescaled_n_gl(elec_num,4,nucl_num,0:cord_num,walk_num) + integer(qmckl_exit_code) :: info + + double precision,allocatable :: elnuc_dist_gl(:,:,:) double precision :: x, ria_inv, kappa_l integer*8 :: i, a, k, l, nw, ii @@ -7582,7 +7451,7 @@ integer function qmckl_compute_jastrow_champ_factor_een_rescaled_n_gl_f( & end do end do -end function qmckl_compute_jastrow_champ_factor_een_rescaled_n_gl_f +end function qmckl_compute_jastrow_champ_factor_een_rescaled_n_gl #+end_src # #+CALL: generate_c_header(table=qmckl_compute_jastrow_champ_factor_een_rescaled_n_gl_args,rettyp=get_value("CRetType"),fname=get_value("Name")) @@ -7604,62 +7473,6 @@ end function qmckl_compute_jastrow_champ_factor_een_rescaled_n_gl_f double* const een_rescaled_n_gl ); #+end_src - #+CALL: generate_c_interface(table=qmckl_compute_jastrow_champ_factor_een_rescaled_n_gl_args,rettyp=get_value("CRetType"),fname=get_value("Name")) - - #+RESULTS: - #+begin_src f90 :tangle (eval f) :comments org :exports none - integer(c_int32_t) function qmckl_compute_jastrow_champ_factor_een_rescaled_n_gl & - (context, & - walk_num, & - elec_num, & - nucl_num, & - type_nucl_num, & - type_nucl_vector, & - cord_num, & - rescale_factor_en, & - coord_ee, & - coord_n, & - en_distance, & - een_rescaled_n, & - een_rescaled_n_gl) & - bind(C) result(info) - - use, intrinsic :: iso_c_binding - implicit none - - integer (c_int64_t) , intent(in) , value :: context - integer (c_int64_t) , intent(in) , value :: walk_num - integer (c_int64_t) , intent(in) , value :: elec_num - integer (c_int64_t) , intent(in) , value :: nucl_num - integer (c_int64_t) , intent(in) , value :: type_nucl_num - integer (c_int64_t) , intent(in) :: type_nucl_vector(nucl_num) - integer (c_int64_t) , intent(in) , value :: cord_num - real (c_double ) , intent(in) :: rescale_factor_en(nucl_num) - real (c_double ) , intent(in) :: coord_ee(elec_num,3,walk_num) - real (c_double ) , intent(in) :: coord_n(nucl_num,3) - real (c_double ) , intent(in) :: en_distance(nucl_num,elec_num,walk_num) - real (c_double ) , intent(in) :: een_rescaled_n(elec_num,nucl_num,0:cord_num,walk_num) - real (c_double ) , intent(out) :: een_rescaled_n_gl(elec_num,4,nucl_num,0:cord_num,walk_num) - - integer(c_int32_t), external :: qmckl_compute_jastrow_champ_factor_een_rescaled_n_gl_f - info = qmckl_compute_jastrow_champ_factor_een_rescaled_n_gl_f & - (context, & - walk_num, & - elec_num, & - nucl_num, & - type_nucl_num, & - type_nucl_vector, & - cord_num, & - rescale_factor_en, & - coord_ee, & - coord_n, & - en_distance, & - een_rescaled_n, & - een_rescaled_n_gl) - - end function qmckl_compute_jastrow_champ_factor_een_rescaled_n_gl - #+end_src - **** Test #+begin_src python :results output :exports none :noweb yes @@ -7799,14 +7612,17 @@ return [ ("$N_{ord}$", "Number of parameters"), ("","") ] + \ | ~dim_c_vector~ | ~int64_t~ | out | Number of parameters per atom type | #+begin_src f90 :comments org :tangle (eval f) :noweb yes -integer function qmckl_compute_dim_c_vector_f( & +function qmckl_compute_dim_c_vector_doc( & context, cord_num, dim_c_vector) & - result(info) + result(info) bind(C) + use, intrinsic :: iso_c_binding use qmckl implicit none - integer(qmckl_context), intent(in) :: context - integer*8 , intent(in) :: cord_num - integer*8 , intent(out) :: dim_c_vector + integer(qmckl_context), intent(in) :: context + integer (c_int64_t) , intent(in) , value :: cord_num + integer (c_int64_t) , intent(out) :: dim_c_vector + integer(qmckl_exit_code) :: info + double precision :: x integer*8 :: i, a, k, l, p, lmax @@ -7838,11 +7654,11 @@ integer function qmckl_compute_dim_c_vector_f( & end do end do -end function qmckl_compute_dim_c_vector_f +end function qmckl_compute_dim_c_vector_doc #+end_src #+begin_src c :comments org :tangle (eval c) :noweb yes :exports none -qmckl_exit_code qmckl_compute_dim_c_vector ( +qmckl_exit_code qmckl_compute_dim_c_vector_hpc ( const qmckl_context context, const int64_t cord_num, int64_t* const dim_c_vector){ @@ -7878,10 +7694,36 @@ qmckl_exit_code qmckl_compute_dim_c_vector ( } #+end_src + #+begin_src c :comments org :tangle (eval c) :noweb yes :exports none +qmckl_exit_code qmckl_compute_dim_c_vector ( + const qmckl_context context, + const int64_t cord_num, + int64_t* const dim_c_vector) +{ +#ifdef QMCKL_HPC + return qmckl_compute_dim_c_vector_hpc +#else + return qmckl_compute_dim_c_vector_doc +#endif + (context, cord_num, dim_c_vector); +} + #+end_src + + # #+CALL: generate_c_header(table=qmckl_factor_dim_c_vector_args,rettyp=get_value("CRetType"),fname=get_value("Name")) #+begin_src c :comments org :tangle (eval h_private_func) :noweb yes :exports none - qmckl_exit_code qmckl_compute_dim_c_vector ( + qmckl_exit_code qmckl_compute_dim_c_vector( + const qmckl_context context, + const int64_t cord_num, + int64_t* const dim_c_vector ); + + qmckl_exit_code qmckl_compute_dim_c_vector_doc( + const qmckl_context context, + const int64_t cord_num, + int64_t* const dim_c_vector ); + + qmckl_exit_code qmckl_compute_dim_c_vector_hpc( const qmckl_context context, const int64_t cord_num, int64_t* const dim_c_vector ); @@ -8224,19 +8066,22 @@ qmckl_exit_code qmckl_provide_dtmp_c(qmckl_context context) | ~c_vector_full~ | ~double[nucl_num][dim_c_vector]~ | out | Full list of coefficients | #+begin_src f90 :comments org :tangle (eval f) :noweb yes -integer function qmckl_compute_c_vector_full_doc_f( & +function qmckl_compute_c_vector_full_doc( & context, nucl_num, dim_c_vector, type_nucl_num, & type_nucl_vector, c_vector, c_vector_full) & - result(info) + result(info) bind(C) + use, intrinsic :: iso_c_binding use qmckl implicit none - integer(qmckl_context), intent(in) :: context - integer*8 , intent(in) :: nucl_num - integer*8 , intent(in) :: dim_c_vector - integer*8 , intent(in) :: type_nucl_num - integer*8 , intent(in) :: type_nucl_vector(nucl_num) - double precision , intent(in) :: c_vector(dim_c_vector, type_nucl_num) - double precision , intent(out) :: c_vector_full(nucl_num, dim_c_vector) + integer(qmckl_context), intent(in) :: context + integer (c_int64_t) , intent(in) , value :: nucl_num + integer (c_int64_t) , intent(in) , value :: dim_c_vector + integer (c_int64_t) , intent(in) , value :: type_nucl_num + integer (c_int64_t) , intent(in) :: type_nucl_vector(nucl_num) + real (c_double ) , intent(in) :: c_vector(type_nucl_num,dim_c_vector) + real (c_double ) , intent(out) :: c_vector_full(nucl_num,dim_c_vector) + integer(qmckl_exit_code) :: info + double precision :: x integer*8 :: i, a, k, l, nw @@ -8252,33 +8097,7 @@ integer function qmckl_compute_c_vector_full_doc_f( & c_vector_full(a,1:dim_c_vector) = c_vector(1:dim_c_vector, type_nucl_vector(a)+1) end do -end function qmckl_compute_c_vector_full_doc_f - #+end_src - - #+CALL: generate_c_interface(table=qmckl_factor_c_vector_full_args,rettyp=get_value("CRetType"),fname="qmckl_compute_c_vector_full_doc") - - #+RESULTS: - #+begin_src f90 :tangle (eval f) :comments org :exports none - integer(c_int32_t) function qmckl_compute_c_vector_full_doc & - (context, nucl_num, dim_c_vector, type_nucl_num, type_nucl_vector, c_vector, c_vector_full) & - bind(C) result(info) - - use, intrinsic :: iso_c_binding - implicit none - - integer (c_int64_t) , intent(in) , value :: context - integer (c_int64_t) , intent(in) , value :: nucl_num - integer (c_int64_t) , intent(in) , value :: dim_c_vector - integer (c_int64_t) , intent(in) , value :: type_nucl_num - integer (c_int64_t) , intent(in) :: type_nucl_vector(nucl_num) - real (c_double ) , intent(in) :: c_vector(type_nucl_num,dim_c_vector) - real (c_double ) , intent(out) :: c_vector_full(nucl_num,dim_c_vector) - - integer(c_int32_t), external :: qmckl_compute_c_vector_full_doc_f - info = qmckl_compute_c_vector_full_doc_f & - (context, nucl_num, dim_c_vector, type_nucl_num, type_nucl_vector, c_vector, c_vector_full) - - end function qmckl_compute_c_vector_full_doc +end function qmckl_compute_c_vector_full_doc #+end_src #+begin_src c :comments org :tangle (eval c) :noweb yes @@ -8380,15 +8199,18 @@ qmckl_exit_code qmckl_compute_c_vector_full ( | ~lkpm_combined_index~ | ~int64_t[4][dim_c_vector]~ | out | Full list of combined indices | #+begin_src f90 :comments org :tangle (eval f) :noweb yes -integer function qmckl_compute_lkpm_combined_index_doc_f( & +function qmckl_compute_lkpm_combined_index_doc( & context, cord_num, dim_c_vector, lkpm_combined_index) & - result(info) + result(info) bind(C) + use, intrinsic :: iso_c_binding use qmckl implicit none - integer(qmckl_context), intent(in) :: context - integer*8 , intent(in) :: cord_num - integer*8 , intent(in) :: dim_c_vector - integer*8 , intent(out) :: lkpm_combined_index(dim_c_vector, 4) + integer(qmckl_context), intent(in) :: context + integer (c_int64_t) , intent(in) , value :: cord_num + integer (c_int64_t) , intent(in) , value :: dim_c_vector + integer (c_int64_t) , intent(out) :: lkpm_combined_index(dim_c_vector,4) + integer(qmckl_exit_code) :: info + double precision :: x integer*8 :: i, a, k, l, kk, p, lmax, m @@ -8419,7 +8241,7 @@ integer function qmckl_compute_lkpm_combined_index_doc_f( & end do end do -end function qmckl_compute_lkpm_combined_index_doc_f +end function qmckl_compute_lkpm_combined_index_doc #+end_src #+begin_src c :comments org :tangle (eval c) :noweb yes @@ -8459,28 +8281,6 @@ qmckl_exit_code qmckl_compute_lkpm_combined_index_hpc ( } #+end_src - #+CALL: generate_c_interface(table=lkpm_combined_index_args,rettyp=get_value("CRetType"),fname="qmckl_compute_lkpm_combined_index_doc") - - #+RESULTS: - #+begin_src f90 :tangle (eval f) :comments org :exports none - integer(c_int32_t) function qmckl_compute_lkpm_combined_index_doc & - (context, cord_num, dim_c_vector, lkpm_combined_index) & - bind(C) result(info) - - use, intrinsic :: iso_c_binding - implicit none - - integer (c_int64_t) , intent(in) , value :: context - integer (c_int64_t) , intent(in) , value :: cord_num - integer (c_int64_t) , intent(in) , value :: dim_c_vector - integer (c_int64_t) , intent(out) :: lkpm_combined_index(dim_c_vector,4) - - integer(c_int32_t), external :: qmckl_compute_lkpm_combined_index_doc_f - info = qmckl_compute_lkpm_combined_index_doc_f & - (context, cord_num, dim_c_vector, lkpm_combined_index) - - end function qmckl_compute_lkpm_combined_index_doc - #+end_src #+begin_src c :comments org :tangle (eval c) :noweb yes qmckl_exit_code qmckl_compute_lkpm_combined_index ( @@ -8601,20 +8401,23 @@ qmckl_exit_code qmckl_compute_tmp_c (const qmckl_context context, #+end_src #+begin_src f90 :comments org :tangle (eval f) :noweb yes -integer function qmckl_compute_tmp_c_doc_f( & +function qmckl_compute_tmp_c_doc( & context, cord_num, elec_num, nucl_num, & walk_num, een_rescaled_e, een_rescaled_n, tmp_c) & - result(info) + result(info) bind(C) + use, intrinsic :: iso_c_binding use qmckl implicit none integer(qmckl_context), intent(in) :: context - integer*8 , intent(in) :: cord_num - integer*8 , intent(in) :: elec_num - integer*8 , intent(in) :: nucl_num - integer*8 , intent(in) :: walk_num - double precision , intent(in) :: een_rescaled_e(elec_num, elec_num, 0:cord_num, walk_num) - double precision , intent(in) :: een_rescaled_n(elec_num, nucl_num, 0:cord_num, walk_num) - double precision , intent(out) :: tmp_c(elec_num, nucl_num,0:cord_num, 0:cord_num-1, walk_num) + integer (c_int64_t) , intent(in) , value :: cord_num + integer (c_int64_t) , intent(in) , value :: elec_num + integer (c_int64_t) , intent(in) , value :: nucl_num + integer (c_int64_t) , intent(in) , value :: walk_num + real (c_double ) , intent(in) :: een_rescaled_e(elec_num,elec_num,0:cord_num,walk_num) + real (c_double ) , intent(in) :: een_rescaled_n(elec_num,nucl_num,0:cord_num,walk_num) + real (c_double ) , intent(out) :: tmp_c(elec_num,nucl_num,0:cord_num,0:cord_num-1,walk_num) + integer(qmckl_exit_code) :: info + double precision :: x integer*8 :: i, j, a, l, kk, p, lmax, nw character :: TransA, TransB @@ -8644,16 +8447,16 @@ integer function qmckl_compute_tmp_c_doc_f( & LDC = size(tmp_c,1) do nw=1, walk_num - do i=0, cord_num-1 - info = qmckl_dgemm(context, TransA, TransB, M, N, K, alpha, & - een_rescaled_e(1,1,i,nw),LDA*1_8, & - een_rescaled_n(1,1,0,nw),LDB*1_8, & - beta, & - tmp_c(1,1,0,i,nw),LDC) - end do + do i=0, cord_num-1 + info = qmckl_dgemm(context, TransA, TransB, M, N, K, alpha, & + een_rescaled_e(1,1,i,nw),LDA*1_8, & + een_rescaled_n(1,1,0,nw),LDB*1_8, & + beta, & + tmp_c(1,1,0,i,nw),LDC) + end do end do -end function qmckl_compute_tmp_c_doc_f +end function qmckl_compute_tmp_c_doc #+end_src #+begin_src c :tangle (eval h_private_func) :comments org @@ -8668,33 +8471,6 @@ qmckl_exit_code qmckl_compute_tmp_c_doc ( double* const tmp_c ); #+end_src - #+CALL: generate_c_interface(table=qmckl_factor_tmp_c_args,rettyp=get_value("FRetType"),fname="qmckl_compute_tmp_c_doc") - - #+RESULTS: - #+begin_src f90 :tangle (eval f) :comments org :exports none -integer(c_int32_t) function qmckl_compute_tmp_c_doc & - (context, cord_num, elec_num, nucl_num, walk_num, een_rescaled_e, een_rescaled_n, tmp_c) & - bind(C) result(info) - - use, intrinsic :: iso_c_binding - implicit none - - integer (c_int64_t) , intent(in) , value :: context - integer (c_int64_t) , intent(in) , value :: cord_num - integer (c_int64_t) , intent(in) , value :: elec_num - integer (c_int64_t) , intent(in) , value :: nucl_num - integer (c_int64_t) , intent(in) , value :: walk_num - real (c_double ) , intent(in) :: een_rescaled_e(elec_num,elec_num,0:cord_num,walk_num) - real (c_double ) , intent(in) :: een_rescaled_n(elec_num,nucl_num,0:cord_num,walk_num) - real (c_double ) , intent(out) :: tmp_c(elec_num,nucl_num,0:cord_num,0:cord_num-1,walk_num) - - integer(c_int32_t), external :: qmckl_compute_tmp_c_doc_f - info = qmckl_compute_tmp_c_doc_f & - (context, cord_num, elec_num, nucl_num, walk_num, een_rescaled_e, een_rescaled_n, tmp_c) - -end function qmckl_compute_tmp_c_doc - #+end_src - ***** CPU :noexport: #+begin_src c :comments org :tangle (eval c) :noweb yes @@ -8850,20 +8626,23 @@ qmckl_compute_dtmp_c (const qmckl_context context, #+end_src #+begin_src f90 :comments org :tangle (eval f) :noweb yes -integer function qmckl_compute_dtmp_c_doc_f( & +function qmckl_compute_dtmp_c_doc( & context, cord_num, elec_num, nucl_num, & walk_num, een_rescaled_e_gl, een_rescaled_n, dtmp_c) & - result(info) + result(info) bind(C) + use, intrinsic :: iso_c_binding use qmckl implicit none - integer(qmckl_context), intent(in) :: context - integer*8 , intent(in) :: cord_num - integer*8 , intent(in) :: elec_num - integer*8 , intent(in) :: nucl_num - integer*8 , intent(in) :: walk_num - double precision , intent(in) :: een_rescaled_e_gl(elec_num, 4, elec_num, 0:cord_num, walk_num) - double precision , intent(in) :: een_rescaled_n(elec_num, nucl_num, 0:cord_num, walk_num) - double precision , intent(out) :: dtmp_c(elec_num, 4, nucl_num,0:cord_num, 0:cord_num-1, walk_num) + integer(qmckl_context), intent(in) :: context + integer (c_int64_t) , intent(in) , value :: cord_num + integer (c_int64_t) , intent(in) , value :: elec_num + integer (c_int64_t) , intent(in) , value :: nucl_num + integer (c_int64_t) , intent(in) , value :: walk_num + real (c_double ) , intent(in) :: een_rescaled_e_gl(elec_num,4,elec_num,0:cord_num,walk_num) + real (c_double ) , intent(in) :: een_rescaled_n(elec_num,nucl_num,0:cord_num,walk_num) + real (c_double ) , intent(out) :: dtmp_c(elec_num,4,nucl_num,0:cord_num,0:cord_num-1,walk_num) + integer(qmckl_exit_code) :: info + double precision :: x integer*8 :: i, j, a, l, kk, p, lmax, nw, ii character :: TransA, TransB @@ -8901,35 +8680,8 @@ integer function qmckl_compute_dtmp_c_doc_f( & end do end do -end function qmckl_compute_dtmp_c_doc_f - #+end_src - - #+CALL: generate_c_interface(table=qmckl_factor_dtmp_c_args,rettyp=get_value("FRetType"),fname="qmckl_compute_dtmp_c_doc") - - #+RESULTS: - #+begin_src f90 :tangle (eval f) :comments org :exports none -integer(c_int32_t) function qmckl_compute_dtmp_c_doc & - (context, cord_num, elec_num, nucl_num, walk_num, een_rescaled_e_gl, een_rescaled_n, dtmp_c) & - bind(C) result(info) - - use, intrinsic :: iso_c_binding - implicit none - - integer (c_int64_t) , intent(in) , value :: context - integer (c_int64_t) , intent(in) , value :: cord_num - integer (c_int64_t) , intent(in) , value :: elec_num - integer (c_int64_t) , intent(in) , value :: nucl_num - integer (c_int64_t) , intent(in) , value :: walk_num - real (c_double ) , intent(in) :: een_rescaled_e_gl(elec_num,4,elec_num,0:cord_num,walk_num) - real (c_double ) , intent(in) :: een_rescaled_n(elec_num,nucl_num,0:cord_num,walk_num) - real (c_double ) , intent(out) :: dtmp_c(elec_num,nucl_num,0:cord_num,0:cord_num-1,walk_num) - - integer(c_int32_t), external :: qmckl_compute_dtmp_c_doc_f - info = qmckl_compute_dtmp_c_doc_f & - (context, cord_num, elec_num, nucl_num, walk_num, een_rescaled_e_gl, een_rescaled_n, dtmp_c) - end function qmckl_compute_dtmp_c_doc - #+end_src + #+end_src #+begin_src c :comments org :tangle (eval h_private_func) :noweb yes :exports none qmckl_exit_code qmckl_compute_dtmp_c_doc ( @@ -9290,20 +9042,26 @@ qmckl_exit_code qmckl_provide_jastrow_champ_factor_een(qmckl_context context) | ~factor_een~ | ~double[walk_num]~ | out | Electron-nucleus jastrow | #+begin_src f90 :comments org :tangle (eval f) :noweb yes -integer function qmckl_compute_jastrow_champ_factor_een_naive_f( & +function qmckl_compute_jastrow_champ_factor_een_naive( & context, walk_num, elec_num, nucl_num, cord_num,& dim_c_vector, c_vector_full, lkpm_combined_index, & een_rescaled_e, een_rescaled_n, factor_een) & - result(info) + result(info) bind(C) + use, intrinsic :: iso_c_binding use qmckl implicit none - integer(qmckl_context), intent(in) :: context - integer*8 , intent(in) :: walk_num, elec_num, cord_num, nucl_num, dim_c_vector - integer*8 , intent(in) :: lkpm_combined_index(dim_c_vector,4) - double precision , intent(in) :: c_vector_full(nucl_num, dim_c_vector) - double precision , intent(in) :: een_rescaled_e(elec_num, elec_num, 0:cord_num, walk_num) - double precision , intent(in) :: een_rescaled_n(elec_num, nucl_num, 0:cord_num, walk_num) - double precision , intent(out) :: factor_een(walk_num) + integer(qmckl_context), intent(in) :: context + integer (c_int64_t) , intent(in) , value :: walk_num + integer (c_int64_t) , intent(in) , value :: elec_num + integer (c_int64_t) , intent(in) , value :: nucl_num + integer (c_int64_t) , intent(in) , value :: cord_num + integer (c_int64_t) , intent(in) , value :: dim_c_vector + real (c_double ) , intent(in) :: c_vector_full(nucl_num,dim_c_vector) + integer (c_int64_t) , intent(in) :: lkpm_combined_index(dim_c_vector,4) + real (c_double ) , intent(in) :: een_rescaled_e(0:cord_num,elec_num,elec_num,walk_num) + real (c_double ) , intent(in) :: een_rescaled_n(0:cord_num,nucl_num,elec_num,walk_num) + real (c_double ) , intent(out) :: factor_een(walk_num) + integer(qmckl_exit_code) :: info integer*8 :: i, a, j, l, k, p, m, n, nw double precision :: accu, accu2, cn @@ -9370,7 +9128,8 @@ integer function qmckl_compute_jastrow_champ_factor_een_naive_f( & end do end do -end function qmckl_compute_jastrow_champ_factor_een_naive_f +end function qmckl_compute_jastrow_champ_factor_een_naive + #+end_src # #+CALL: generate_c_header(table=qmckl_factor_een_naive_args,rettyp=get_value("CRetType"),fname=get_value("Name")) @@ -9390,56 +9149,6 @@ end function qmckl_compute_jastrow_champ_factor_een_naive_f double* const factor_een ); #+end_src - #+CALL: generate_c_interface(table=qmckl_factor_een_naive_args,rettyp=get_value("CRetType"),fname=get_value("Name")) - - #+RESULTS: - #+begin_src f90 :tangle (eval f) :comments org :exports none - integer(c_int32_t) function qmckl_compute_jastrow_champ_factor_een_naive & - (context, & - walk_num, & - elec_num, & - nucl_num, & - cord_num, & - dim_c_vector, & - c_vector_full, & - lkpm_combined_index, & - een_rescaled_e, & - een_rescaled_n, & - factor_een) & - bind(C) result(info) - - use, intrinsic :: iso_c_binding - implicit none - - integer (c_int64_t) , intent(in) , value :: context - integer (c_int64_t) , intent(in) , value :: walk_num - integer (c_int64_t) , intent(in) , value :: elec_num - integer (c_int64_t) , intent(in) , value :: nucl_num - integer (c_int64_t) , intent(in) , value :: cord_num - integer (c_int64_t) , intent(in) , value :: dim_c_vector - real (c_double ) , intent(in) :: c_vector_full(nucl_num,dim_c_vector) - integer (c_int64_t) , intent(in) :: lkpm_combined_index(dim_c_vector,4) - real (c_double ) , intent(in) :: een_rescaled_e(0:cord_num,elec_num,elec_num,walk_num) - real (c_double ) , intent(in) :: een_rescaled_n(0:cord_num,nucl_num,elec_num,walk_num) - real (c_double ) , intent(out) :: factor_een(walk_num) - - integer(c_int32_t), external :: qmckl_compute_jastrow_champ_factor_een_naive_f - info = qmckl_compute_jastrow_champ_factor_een_naive_f & - (context, & - walk_num, & - elec_num, & - nucl_num, & - cord_num, & - dim_c_vector, & - c_vector_full, & - lkpm_combined_index, & - een_rescaled_e, & - een_rescaled_n, & - factor_een) - - end function qmckl_compute_jastrow_champ_factor_een_naive - #+end_src - **** Compute :PROPERTIES: :Name: qmckl_compute_jastrow_champ_factor_een_doc @@ -9463,20 +9172,26 @@ end function qmckl_compute_jastrow_champ_factor_een_naive_f | ~factor_een~ | ~double[walk_num]~ | out | Electron-nucleus jastrow | #+begin_src f90 :comments org :tangle (eval f) :noweb yes -integer function qmckl_compute_jastrow_champ_factor_een_doc_f( & +function qmckl_compute_jastrow_champ_factor_een_doc( & context, walk_num, elec_num, nucl_num, cord_num, & dim_c_vector, c_vector_full, lkpm_combined_index, & tmp_c, een_rescaled_n, factor_een) & - result(info) + result(info) bind(C) + use, intrinsic :: iso_c_binding use qmckl implicit none - integer(qmckl_context), intent(in) :: context - integer*8 , intent(in) :: walk_num, elec_num, cord_num, nucl_num, dim_c_vector - integer*8 , intent(in) :: lkpm_combined_index(dim_c_vector,4) - double precision , intent(in) :: c_vector_full(nucl_num, dim_c_vector) - double precision , intent(in) :: tmp_c(elec_num, nucl_num,0:cord_num, 0:cord_num-1, walk_num) - double precision , intent(in) :: een_rescaled_n(elec_num, nucl_num, 0:cord_num, walk_num) - double precision , intent(out) :: factor_een(walk_num) + integer(qmckl_context), intent(in) :: context + integer (c_int64_t) , intent(in) , value :: walk_num + integer (c_int64_t) , intent(in) , value :: elec_num + integer (c_int64_t) , intent(in) , value :: nucl_num + integer (c_int64_t) , intent(in) , value :: cord_num + integer (c_int64_t) , intent(in) , value :: dim_c_vector + real (c_double ) , intent(in) :: c_vector_full(nucl_num,dim_c_vector) + integer (c_int64_t) , intent(in) :: lkpm_combined_index(dim_c_vector,4) + real (c_double ) , intent(in) :: tmp_c(elec_num,nucl_num,0:cord_num,0:cord_num-1,walk_num) + real (c_double ) , intent(in) :: een_rescaled_n(elec_num,nucl_num,0:cord_num,walk_num) + real (c_double ) , intent(out) :: factor_een(walk_num) + integer(qmckl_exit_code) :: info integer*8 :: i, a, j, l, k, p, m, n, nw double precision :: accu, accu2, cn @@ -9514,7 +9229,7 @@ integer function qmckl_compute_jastrow_champ_factor_een_doc_f( & end do end do -end function qmckl_compute_jastrow_champ_factor_een_doc_f +end function qmckl_compute_jastrow_champ_factor_een_doc #+end_src # #+CALL: generate_c_header(table=qmckl_factor_een_args,rettyp=qmckl_exit_code),fname=get_value("Name")) @@ -9572,55 +9287,6 @@ qmckl_compute_jastrow_champ_factor_een (const qmckl_context context, factor_een ); } #+end_src - #+CALL: generate_c_interface(table=qmckl_factor_een_args,rettyp=get_value("CRetType"),fname="qmckl_compute_jastrow_champ_factor_een_doc")) - - #+RESULTS: - #+begin_src f90 :tangle (eval f) :comments org :exports none - integer(c_int32_t) function qmckl_compute_jastrow_champ_factor_een_doc & - (context, & - walk_num, & - elec_num, & - nucl_num, & - cord_num, & - dim_c_vector, & - c_vector_full, & - lkpm_combined_index, & - tmp_c, & - een_rescaled_n, & - factor_een) & - bind(C) result(info) - - use, intrinsic :: iso_c_binding - implicit none - - integer (c_int64_t) , intent(in) , value :: context - integer (c_int64_t) , intent(in) , value :: walk_num - integer (c_int64_t) , intent(in) , value :: elec_num - integer (c_int64_t) , intent(in) , value :: nucl_num - integer (c_int64_t) , intent(in) , value :: cord_num - integer (c_int64_t) , intent(in) , value :: dim_c_vector - real (c_double ) , intent(in) :: c_vector_full(nucl_num,dim_c_vector) - integer (c_int64_t) , intent(in) :: lkpm_combined_index(dim_c_vector,4) - real (c_double ) , intent(in) :: tmp_c(elec_num,nucl_num,0:cord_num,0:cord_num-1,walk_num) - real (c_double ) , intent(in) :: een_rescaled_n(elec_num,nucl_num,0:cord_num,walk_num) - real (c_double ) , intent(out) :: factor_een(walk_num) - - integer(c_int32_t), external :: qmckl_compute_jastrow_champ_factor_een_doc_f - info = qmckl_compute_jastrow_champ_factor_een_doc_f & - (context, & - walk_num, & - elec_num, & - nucl_num, & - cord_num, & - dim_c_vector, & - c_vector_full, & - lkpm_combined_index, & - tmp_c, & - een_rescaled_n, & - factor_een) - - end function qmckl_compute_jastrow_champ_factor_een_doc - #+end_src **** Test #+begin_src python :results output :exports none :noweb yes @@ -10032,22 +9698,28 @@ qmckl_exit_code qmckl_provide_jastrow_champ_factor_een_grad(qmckl_context contex | ~factor_een_gl~ | ~double[walk_num][4][elec_num]~ | out | Electron-nucleus jastrow | #+begin_src f90 :comments org :tangle (eval f) :noweb yes -integer function qmckl_compute_jastrow_champ_factor_een_gl_naive_f( & +function qmckl_compute_jastrow_champ_factor_een_gl_naive( & context, walk_num, elec_num, nucl_num, cord_num, dim_c_vector, & c_vector_full, lkpm_combined_index, een_rescaled_e, een_rescaled_n, & een_rescaled_e_gl, een_rescaled_n_gl, factor_een_gl)& - result(info) + result(info) bind(C) + use, intrinsic :: iso_c_binding use qmckl implicit none - integer(qmckl_context), intent(in) :: context - integer*8 , intent(in) :: walk_num, elec_num, cord_num, nucl_num, dim_c_vector - integer*8 , intent(in) :: lkpm_combined_index(dim_c_vector, 4) - double precision , intent(in) :: c_vector_full(nucl_num, dim_c_vector) - double precision , intent(in) :: een_rescaled_e(elec_num, elec_num, 0:cord_num, walk_num) - double precision , intent(in) :: een_rescaled_n(elec_num, nucl_num, 0:cord_num, walk_num) - double precision , intent(in) :: een_rescaled_e_gl(elec_num, 4, elec_num, 0:cord_num, walk_num) - double precision , intent(in) :: een_rescaled_n_gl(elec_num, 4, nucl_num, 0:cord_num, walk_num) - double precision , intent(out) :: factor_een_gl(elec_num, 4, walk_num) + integer(qmckl_context), intent(in) :: context + integer (c_int64_t) , intent(in) , value :: walk_num + integer (c_int64_t) , intent(in) , value :: elec_num + integer (c_int64_t) , intent(in) , value :: nucl_num + integer (c_int64_t) , intent(in) , value :: cord_num + integer (c_int64_t) , intent(in) , value :: dim_c_vector + real (c_double ) , intent(in) :: c_vector_full(nucl_num,dim_c_vector) + integer (c_int64_t) , intent(in) :: lkpm_combined_index(dim_c_vector,4) + real (c_double ) , intent(in) :: een_rescaled_e(0:cord_num,elec_num,elec_num,walk_num) + real (c_double ) , intent(in) :: een_rescaled_n(0:cord_num,nucl_num,elec_num,walk_num) + real (c_double ) , intent(in) :: een_rescaled_e_gl(0:cord_num,elec_num,4,elec_num,walk_num) + real (c_double ) , intent(in) :: een_rescaled_n_gl(0:cord_num,nucl_num,4,elec_num,walk_num) + real (c_double ) , intent(out) :: factor_een_gl(elec_num,4,walk_num) + integer(qmckl_exit_code) :: info integer*8 :: i, a, j, l, k, p, m, n, nw double precision :: accu, accu2, cn @@ -10105,7 +9777,7 @@ integer function qmckl_compute_jastrow_champ_factor_een_gl_naive_f( & end do end do -end function qmckl_compute_jastrow_champ_factor_een_gl_naive_f +end function qmckl_compute_jastrow_champ_factor_een_gl_naive #+end_src # #+CALL: generate_c_header(table=qmckl_factor_een_gl_naive_args,rettyp=get_value("CRetType"),fname=get_value("Name")) @@ -10127,63 +9799,6 @@ end function qmckl_compute_jastrow_champ_factor_een_gl_naive_f double* const factor_een_gl ); #+end_src - - #+CALL: generate_c_interface(table=qmckl_factor_een_gl_naive_args,rettyp=get_value("CRetType"),fname=get_value("Name")) - - #+RESULTS: - #+begin_src f90 :tangle (eval f) :comments org :exports none - integer(c_int32_t) function qmckl_compute_jastrow_champ_factor_een_gl_naive & - (context, & - walk_num, & - elec_num, & - nucl_num, & - cord_num, & - dim_c_vector, & - c_vector_full, & - lkpm_combined_index, & - een_rescaled_e, & - een_rescaled_n, & - een_rescaled_e_gl, & - een_rescaled_n_gl, & - factor_een_gl) & - bind(C) result(info) - - use, intrinsic :: iso_c_binding - implicit none - - integer (c_int64_t) , intent(in) , value :: context - integer (c_int64_t) , intent(in) , value :: walk_num - integer (c_int64_t) , intent(in) , value :: elec_num - integer (c_int64_t) , intent(in) , value :: nucl_num - integer (c_int64_t) , intent(in) , value :: cord_num - integer (c_int64_t) , intent(in) , value :: dim_c_vector - real (c_double ) , intent(in) :: c_vector_full(nucl_num,dim_c_vector) - integer (c_int64_t) , intent(in) :: lkpm_combined_index(dim_c_vector,4) - real (c_double ) , intent(in) :: een_rescaled_e(0:cord_num,elec_num,elec_num,walk_num) - real (c_double ) , intent(in) :: een_rescaled_n(0:cord_num,nucl_num,elec_num,walk_num) - real (c_double ) , intent(in) :: een_rescaled_e_gl(0:cord_num,elec_num,4,elec_num,walk_num) - real (c_double ) , intent(in) :: een_rescaled_n_gl(0:cord_num,nucl_num,4,elec_num,walk_num) - real (c_double ) , intent(out) :: factor_een_gl(elec_num,4,walk_num) - - integer(c_int32_t), external :: qmckl_compute_jastrow_champ_factor_een_gl_naive_f - info = qmckl_compute_jastrow_champ_factor_een_gl_naive_f & - (context, & - walk_num, & - elec_num, & - nucl_num, & - cord_num, & - dim_c_vector, & - c_vector_full, & - lkpm_combined_index, & - een_rescaled_e, & - een_rescaled_n, & - een_rescaled_e_gl, & - een_rescaled_n_gl, & - factor_een_gl) - - end function qmckl_compute_jastrow_champ_factor_een_gl_naive - #+end_src - **** Compute GL :PROPERTIES: :Name: qmckl_compute_jastrow_champ_factor_een_gl @@ -10210,22 +9825,28 @@ end function qmckl_compute_jastrow_champ_factor_een_gl_naive_f #+begin_src f90 :comments org :tangle (eval f) :noweb yes -integer function qmckl_compute_jastrow_champ_factor_een_gl_doc_f( & +function qmckl_compute_jastrow_champ_factor_een_gl_doc( & context, walk_num, elec_num, nucl_num, & cord_num, dim_c_vector, c_vector_full, lkpm_combined_index, & tmp_c, dtmp_c, een_rescaled_n, een_rescaled_n_gl, factor_een_gl)& - result(info) + result(info) bind(C) + use, intrinsic :: iso_c_binding use qmckl implicit none - integer(qmckl_context), intent(in) :: context - integer*8 , intent(in) :: walk_num, elec_num, cord_num, nucl_num, dim_c_vector - integer*8 , intent(in) :: lkpm_combined_index(dim_c_vector,4) - double precision , intent(in) :: c_vector_full(nucl_num, dim_c_vector) - double precision , intent(in) :: tmp_c(elec_num, nucl_num,0:cord_num, 0:cord_num-1, walk_num) - double precision , intent(in) :: dtmp_c(elec_num, 4, nucl_num,0:cord_num, 0:cord_num-1, walk_num) - double precision , intent(in) :: een_rescaled_n(elec_num, nucl_num, 0:cord_num, walk_num) - double precision , intent(in) :: een_rescaled_n_gl(elec_num, 4, nucl_num, 0:cord_num, walk_num) - double precision , intent(out) :: factor_een_gl(elec_num,4,walk_num) + integer(qmckl_context), intent(in) :: context + integer (c_int64_t) , intent(in) , value :: walk_num + integer (c_int64_t) , intent(in) , value :: elec_num + integer (c_int64_t) , intent(in) , value :: nucl_num + integer (c_int64_t) , intent(in) , value :: cord_num + integer (c_int64_t) , intent(in) , value :: dim_c_vector + real (c_double ) , intent(in) :: c_vector_full(nucl_num,dim_c_vector) + integer (c_int64_t) , intent(in) :: lkpm_combined_index(dim_c_vector,4) + real (c_double ) , intent(in) :: tmp_c(elec_num,nucl_num,0:cord_num,0:cord_num-1,walk_num) + real (c_double ) , intent(in) :: dtmp_c(elec_num,4,nucl_num,0:cord_num,0:cord_num-1,walk_num) + real (c_double ) , intent(in) :: een_rescaled_n(elec_num,nucl_num,0:cord_num,walk_num) + real (c_double ) , intent(in) :: een_rescaled_n_gl(elec_num,4,nucl_num,0:cord_num,walk_num) + real (c_double ) , intent(out) :: factor_een_gl(elec_num,4,walk_num) + integer(qmckl_exit_code) :: info integer*8 :: i, a, j, l, k, m, n, nw, ii double precision :: accu, accu2, cn @@ -10279,7 +9900,7 @@ integer function qmckl_compute_jastrow_champ_factor_een_gl_doc_f( & end do end do -end function qmckl_compute_jastrow_champ_factor_een_gl_doc_f +end function qmckl_compute_jastrow_champ_factor_een_gl_doc #+end_src #+CALL: generate_private_c_header(table=qmckl_factor_een_gl_args,rettyp=get_value("CRetType"),fname="qmckl_compute_jastrow_champ_factor_een_gl_doc" ) @@ -10302,62 +9923,6 @@ end function qmckl_compute_jastrow_champ_factor_een_gl_doc_f double* const factor_een_gl ); #+end_src - #+CALL: generate_c_interface(table=qmckl_factor_een_gl_args,rettyp=get_value("CRetType"),fname="qmckl_compute_jastrow_champ_factor_een_gl_doc")) - - #+RESULTS: - #+begin_src f90 :tangle (eval f) :comments org :exports none - integer(c_int32_t) function qmckl_compute_jastrow_champ_factor_een_gl_doc & - (context, & - walk_num, & - elec_num, & - nucl_num, & - cord_num, & - dim_c_vector, & - c_vector_full, & - lkpm_combined_index, & - tmp_c, & - dtmp_c, & - een_rescaled_n, & - een_rescaled_n_gl, & - factor_een_gl) & - bind(C) result(info) - - use, intrinsic :: iso_c_binding - implicit none - - integer (c_int64_t) , intent(in) , value :: context - integer (c_int64_t) , intent(in) , value :: walk_num - integer (c_int64_t) , intent(in) , value :: elec_num - integer (c_int64_t) , intent(in) , value :: nucl_num - integer (c_int64_t) , intent(in) , value :: cord_num - integer (c_int64_t) , intent(in) , value :: dim_c_vector - real (c_double ) , intent(in) :: c_vector_full(nucl_num,dim_c_vector) - integer (c_int64_t) , intent(in) :: lkpm_combined_index(dim_c_vector,4) - real (c_double ) , intent(in) :: tmp_c(elec_num,nucl_num,0:cord_num,0:cord_num-1,walk_num) - real (c_double ) , intent(in) :: dtmp_c(elec_num,4,nucl_num,0:cord_num,0:cord_num-1,walk_num) - real (c_double ) , intent(in) :: een_rescaled_n(elec_num,nucl_num,0:cord_num,walk_num) - real (c_double ) , intent(in) :: een_rescaled_n_gl(elec_num,4,nucl_num,0:cord_num,walk_num) - real (c_double ) , intent(out) :: factor_een_gl(elec_num,4,walk_num) - - integer(c_int32_t), external :: qmckl_compute_jastrow_champ_factor_een_gl_doc_f - info = qmckl_compute_jastrow_champ_factor_een_gl_doc_f & - (context, & - walk_num, & - elec_num, & - nucl_num, & - cord_num, & - dim_c_vector, & - c_vector_full, & - lkpm_combined_index, & - tmp_c, & - dtmp_c, & - een_rescaled_n, & - een_rescaled_n_gl, & - factor_een_gl) - - end function qmckl_compute_jastrow_champ_factor_een_gl_doc - #+end_src - #+CALL: generate_private_c_header(table=qmckl_factor_een_gl_args,rettyp=get_value("CRetType"),fname="qmckl_compute_jastrow_champ_factor_een_gl" ) #+RESULTS: