Skip to content

Commit 6a26ea3

Browse files
committed
Fixed fortran interfaces (value in context)
1 parent f7f97df commit 6a26ea3

File tree

2 files changed

+53
-98
lines changed

2 files changed

+53
-98
lines changed

org/qmckl_forces.org

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1445,18 +1445,18 @@ function qmckl_compute_forces_jastrow_en_l_doc( &
14451445
implicit none
14461446

14471447
integer (qmckl_context), intent(in), value :: context
1448-
integer (c_int64_t) , intent(in) , value :: walk_num
1449-
integer (c_int64_t) , intent(in) , value :: elec_num
1450-
integer (c_int64_t) , intent(in) , value :: nucl_num
1451-
integer (c_int64_t) , intent(in) , value :: type_nucl_num
1452-
integer (c_int64_t) , intent(in) :: type_nucl_vector(nucl_num)
1453-
integer (c_int64_t) , intent(in) , value :: aord_num
1454-
real (c_double ) , intent(in) :: a_vector(aord_num+1,type_nucl_num)
1455-
real (c_double ) , intent(in) :: rescale_factor_en(type_nucl_num)
1456-
real (c_double ) , intent(in) :: en_distance(nucl_num, elec_num, walk_num)
1457-
real (c_double ) , intent(in) :: en_distance_rescaled(elec_num,nucl_num,walk_num)
1458-
real (c_double ) , intent(in) :: en_distance_rescaled_gl(4, elec_num,nucl_num,walk_num)
1459-
real (c_double ) , intent(out) :: forces_jastrow_en_l(3,nucl_num,walk_num)
1448+
integer (c_int64_t) , intent(in) , value :: walk_num
1449+
integer (c_int64_t) , intent(in) , value :: elec_num
1450+
integer (c_int64_t) , intent(in) , value :: nucl_num
1451+
integer (c_int64_t) , intent(in) , value :: type_nucl_num
1452+
integer (c_int64_t) , intent(in) :: type_nucl_vector(nucl_num)
1453+
integer (c_int64_t) , intent(in) , value :: aord_num
1454+
real (c_double ) , intent(in) :: a_vector(aord_num+1,type_nucl_num)
1455+
real (c_double ) , intent(in) :: rescale_factor_en(type_nucl_num)
1456+
real (c_double ) , intent(in) :: en_distance(nucl_num, elec_num, walk_num)
1457+
real (c_double ) , intent(in) :: en_distance_rescaled(elec_num,nucl_num,walk_num)
1458+
real (c_double ) , intent(in) :: en_distance_rescaled_gl(4, elec_num,nucl_num,walk_num)
1459+
real (c_double ) , intent(out) :: forces_jastrow_en_l(3,nucl_num,walk_num)
14601460
integer(qmckl_exit_code) :: info
14611461

14621462
integer*8 :: i, a, k, nw, ii, m,l
@@ -2248,7 +2248,7 @@ integer(qmckl_exit_code) function qmckl_compute_forces_tmp_c( &
22482248
use, intrinsic :: iso_c_binding
22492249
use qmckl
22502250
implicit none
2251-
integer(qmckl_context), intent(in) :: context
2251+
integer (qmckl_context), intent(in), value :: context
22522252
integer (c_int64_t) , intent(in), value :: walk_num, elec_num, cord_num, nucl_num
22532253
real (c_double ) , intent(in) :: een_rescaled_e(elec_num, elec_num, 0:cord_num, walk_num)
22542254
real (c_double ) , intent(in) :: een_rescaled_n_gl(elec_num, 4, nucl_num, 0:cord_num, walk_num)
@@ -2582,7 +2582,7 @@ integer(qmckl_exit_code) function qmckl_compute_forces_dtmp_c_doc( &
25822582
use, intrinsic :: iso_c_binding
25832583
use qmckl
25842584
implicit none
2585-
integer(qmckl_context), intent(in) :: context
2585+
integer (qmckl_context), intent(in), value :: context
25862586
integer (c_int64_t) , intent(in), value :: walk_num, elec_num, cord_num, nucl_num
25872587
real (c_double ) , intent(in) :: een_rescaled_e_gl(elec_num, 4, elec_num, 0:cord_num, walk_num)
25882588
real (c_double ) , intent(in) :: een_rescaled_n_gl(elec_num, 4, nucl_num, 0:cord_num, walk_num)
@@ -2632,7 +2632,7 @@ integer(qmckl_exit_code) function qmckl_compute_forces_dtmp_c_hpc( &
26322632
use, intrinsic :: iso_c_binding
26332633
use qmckl
26342634
implicit none
2635-
integer(qmckl_context), intent(in) :: context
2635+
integer(qmckl_context), intent(in), value :: context
26362636
integer (c_int64_t) , intent(in), value :: walk_num, elec_num, cord_num, nucl_num
26372637
real (c_double ) , intent(in) :: een_rescaled_e_gl(elec_num, 4, elec_num, 0:cord_num, walk_num)
26382638
real (c_double ) , intent(in) :: een_rescaled_n_gl(elec_num, 4, nucl_num, 0:cord_num, walk_num)
@@ -3062,7 +3062,7 @@ integer(qmckl_exit_code) function qmckl_compute_forces_jastrow_een( &
30623062
use, intrinsic :: iso_c_binding
30633063
use qmckl
30643064
implicit none
3065-
integer(qmckl_context), intent(in) :: context
3065+
integer(qmckl_context), intent(in), value :: context
30663066
integer (c_int64_t) , intent(in), value :: walk_num, elec_num, cord_num, nucl_num, dim_c_vector
30673067
integer (c_int64_t) , intent(in) :: lkpm_combined_index(dim_c_vector,4)
30683068
real (c_double ) , intent(in) :: c_vector_full(nucl_num, dim_c_vector)
@@ -3335,8 +3335,8 @@ integer(qmckl_exit_code) function qmckl_compute_forces_een_rescaled_n_gl( &
33353335
use, intrinsic :: iso_c_binding
33363336
use qmckl
33373337
implicit none
3338-
integer(qmckl_context), intent(in) :: context
3339-
integer (c_int64_t) , intent(in),value :: walk_num, elec_num, nucl_num, type_nucl_num, cord_num
3338+
integer(qmckl_context), intent(in), value :: context
3339+
integer (c_int64_t) , intent(in), value :: walk_num, elec_num, nucl_num, type_nucl_num, cord_num
33403340
integer (c_int64_t) , intent(in) :: type_nucl_vector(nucl_num)
33413341
real (c_double ) , intent(in) :: rescale_factor_en(type_nucl_num)
33423342
real (c_double ) , intent(in) :: en_distance(nucl_num,elec_num,walk_num)
@@ -3813,8 +3813,8 @@ integer(qmckl_exit_code) function qmckl_compute_forces_jastrow_een_g( &
38133813
use, intrinsic :: iso_c_binding
38143814
use qmckl
38153815
implicit none
3816-
integer(qmckl_context), intent(in) :: context
3817-
integer (c_int64_t) , intent(in),value :: walk_num, elec_num, cord_num, nucl_num, dim_c_vector
3816+
integer(qmckl_context), intent(in), value :: context
3817+
integer (c_int64_t) , intent(in), value :: walk_num, elec_num, cord_num, nucl_num, dim_c_vector
38183818
integer (c_int64_t) , intent(in) :: lkpm_combined_index(dim_c_vector,4)
38193819
real (c_double ) , intent(in) :: c_vector_full(nucl_num, dim_c_vector)
38203820
real (c_double ) , intent(in) :: en_distance(nucl_num, elec_num)
@@ -4177,8 +4177,8 @@ integer(qmckl_exit_code) function qmckl_compute_forces_jastrow_een_l( &
41774177
use, intrinsic :: iso_c_binding
41784178
use qmckl
41794179
implicit none
4180-
integer(qmckl_context), intent(in) :: context
4181-
integer (c_int64_t) , intent(in),value :: walk_num, elec_num, cord_num, nucl_num, dim_c_vector
4180+
integer(qmckl_context), intent(in), value :: context
4181+
integer (c_int64_t) , intent(in), value :: walk_num, elec_num, cord_num, nucl_num, dim_c_vector
41824182
integer (c_int64_t) , intent(in) :: lkpm_combined_index(dim_c_vector,4)
41834183
real (c_double ) , intent(in) :: c_vector_full(nucl_num, dim_c_vector)
41844184
real (c_double ) , intent(in) :: en_distance(nucl_num, elec_num)
@@ -4512,7 +4512,7 @@ integer(qmckl_exit_code) function qmckl_compute_forces_jastrow_delta_p_doc( &
45124512
use, intrinsic :: iso_c_binding
45134513
use qmckl
45144514
implicit none
4515-
integer(qmckl_context), intent(in) :: context
4515+
integer(qmckl_context), intent(in), value :: context
45164516
integer(c_int64_t) , intent(in), value :: num_in, walk_num, elec_num, cord_num, nucl_num
45174517
real(c_double) , intent(in) :: een_rescaled_n(elec_num, nucl_num, 0:cord_num, walk_num)
45184518
real(c_double) , intent(in) :: een_rescaled_e(elec_num, elec_num, 0:cord_num, walk_num)
@@ -5821,7 +5821,7 @@ function qmckl_compute_forces_ao_value_doc(context, &
58215821
use qmckl_constants
58225822
use qmckl, only : qmckl_ao_polynomial_vgl, qmckl_get_numprec_precision
58235823
implicit none
5824-
integer (qmckl_context), intent(in) , value :: context
5824+
integer (qmckl_context), intent(in) , value :: context
58255825
integer (c_int64_t) , intent(in) , value :: ao_num
58265826
integer (c_int64_t) , intent(in) , value :: shell_num
58275827
integer (c_int64_t) , intent(in) , value :: point_num
@@ -6253,7 +6253,7 @@ integer(qmckl_exit_code) function qmckl_compute_forces_mo_value_doc(context, &
62536253
use, intrinsic :: iso_c_binding
62546254
use qmckl
62556255
implicit none
6256-
integer(qmckl_context), intent(in) :: context
6256+
integer(qmckl_context), intent(in), value :: context
62576257
integer(c_int64_t) , intent(in), value ::nucl_num, ao_num, mo_num, point_num, shell_num
62586258
real(c_double) , intent(in) :: ao_vgl(ao_num,5,point_num)
62596259
real(c_double) , intent(in) :: coefficient_t(mo_num,ao_num)

org/qmckl_jastrow_champ_single.org

Lines changed: 28 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -687,7 +687,7 @@ integer(qmckl_exit_code) function qmckl_compute_single_ee_distance(context, &
687687
use, intrinsic :: iso_c_binding
688688
use qmckl
689689
implicit none
690-
integer(qmckl_context), intent(in) :: context
690+
integer(qmckl_context), intent(in), value :: context
691691
integer (c_int64_t) , intent(in) , value :: elec_num, num_in
692692
integer (c_int64_t) , intent(in) , value :: walk_num
693693
real (c_double ) , intent(in) :: coord(elec_num,walk_num,3)
@@ -968,7 +968,7 @@ integer function qmckl_compute_single_en_distance(context, nucl_num, walk_num,
968968
use, intrinsic :: iso_c_binding
969969
use qmckl
970970
implicit none
971-
integer(qmckl_context), intent(in) :: context
971+
integer(qmckl_context), intent(in), value :: context
972972
integer (c_int64_t) , intent(in) , value :: nucl_num, walk_num
973973
real (c_double ) , intent(in) :: elec_coord(3,walk_num)
974974
real (c_double ) , intent(in) :: nucl_coord(nucl_num,3)
@@ -1293,7 +1293,7 @@ integer function qmckl_compute_een_rescaled_single_e_doc( &
12931293
use, intrinsic :: iso_c_binding
12941294
use qmckl
12951295
implicit none
1296-
integer(qmckl_context), intent(in) :: context
1296+
integer(qmckl_context), intent(in), value :: context
12971297
integer(c_int64_t) , intent(in), value :: num_in
12981298
integer(c_int64_t) , intent(in), value :: walk_num
12991299
integer(c_int64_t) , intent(in), value :: elec_num
@@ -1632,7 +1632,7 @@ integer function qmckl_compute_een_rescaled_single_n( &
16321632
use, intrinsic :: iso_c_binding
16331633
use qmckl
16341634
implicit none
1635-
integer(qmckl_context), intent(in) :: context
1635+
integer(qmckl_context), intent(in), value :: context
16361636
integer(c_int64_t) , intent(in), value :: num_in
16371637
integer(c_int64_t) , intent(in), value :: walk_num
16381638
integer(c_int64_t) , intent(in), value :: elec_num
@@ -1924,7 +1924,7 @@ integer function qmckl_compute_jastrow_champ_delta_p_doc( &
19241924
use, intrinsic :: iso_c_binding
19251925
use qmckl
19261926
implicit none
1927-
integer(qmckl_context), intent(in) :: context
1927+
integer(qmckl_context), intent(in), value :: context
19281928
integer(c_int64_t), intent(in), value :: num_in, walk_num, elec_num, cord_num, nucl_num
19291929
real(c_double) , intent(in) :: een_rescaled_n(elec_num, nucl_num, 0:cord_num, walk_num)
19301930
real(c_double) , intent(in) :: een_rescaled_e(elec_num, elec_num, 0:cord_num, walk_num)
@@ -2286,7 +2286,7 @@ integer function qmckl_compute_jastrow_champ_factor_single_een_doc( &
22862286
use, intrinsic :: iso_c_binding
22872287
use qmckl
22882288
implicit none
2289-
integer(qmckl_context), intent(in) :: context
2289+
integer(qmckl_context), intent(in), value :: context
22902290
integer(c_int64_t) , intent(in), value :: num_in, walk_num, elec_num, cord_num, nucl_num, dim_c_vector
22912291
integer(c_int64_t) , intent(in) :: lkpm_combined_index(dim_c_vector,4)
22922292
real(c_double) , intent(in) :: c_vector_full(nucl_num, dim_c_vector)
@@ -2951,7 +2951,7 @@ integer function qmckl_compute_een_rescaled_single_e_gl_doc( &
29512951
use, intrinsic :: iso_c_binding
29522952
use qmckl
29532953
implicit none
2954-
integer(qmckl_context), intent(in) :: context
2954+
integer(qmckl_context), intent(in), value :: context
29552955
integer(c_int64_t) , intent(in), value :: num_in
29562956
integer(c_int64_t) , intent(in), value :: walk_num
29572957
integer(c_int64_t) , intent(in), value :: elec_num
@@ -3338,7 +3338,7 @@ integer(qmckl_exit_code) function qmckl_compute_jastrow_champ_delta_p_gl_doc( &
33383338
use, intrinsic :: iso_c_binding
33393339
use qmckl
33403340
implicit none
3341-
integer(qmckl_context), intent(in) :: context
3341+
integer(qmckl_context), intent(in), value :: context
33423342
integer(c_int64_t) , intent(in), value :: num_in, walk_num, elec_num, cord_num, nucl_num
33433343
real(c_double) , intent(in) :: een_rescaled_n(elec_num, nucl_num, 0:cord_num, walk_num)
33443344
real(c_double) , intent(in) :: een_rescaled_e(elec_num, elec_num, 0:cord_num, walk_num)
@@ -3781,7 +3781,7 @@ integer(qmckl_exit_code) function qmckl_compute_jastrow_champ_factor_single_een_
37813781
use, intrinsic :: iso_c_binding
37823782
use qmckl
37833783
implicit none
3784-
integer(qmckl_context), intent(in) :: context
3784+
integer(qmckl_context), intent(in), value :: context
37853785
integer(c_int64_t) , intent(in), value :: num_in, walk_num, elec_num, cord_num, nucl_num, dim_c_vector
37863786
integer(c_int64_t) , intent(in) :: lkpm_combined_index(dim_c_vector,4)
37873787
real(c_double) , intent(in) :: c_vector_full(nucl_num, dim_c_vector)
@@ -4367,7 +4367,7 @@ integer(qmckl_exit_code) function qmckl_compute_jastrow_champ_delta_p_g_doc( &
43674367
use, intrinsic :: iso_c_binding
43684368
use qmckl
43694369
implicit none
4370-
integer(qmckl_context), intent(in) :: context
4370+
integer(qmckl_context), intent(in), value :: context
43714371
integer(c_int64_t) , intent(in), value :: num_in, walk_num, elec_num, cord_num, nucl_num
43724372
real(c_double) , intent(in) :: een_rescaled_n(elec_num, nucl_num, 0:cord_num, walk_num)
43734373
real(c_double) , intent(in) :: een_rescaled_e(elec_num, elec_num, 0:cord_num, walk_num)
@@ -4445,7 +4445,7 @@ integer(qmckl_exit_code) function qmckl_compute_jastrow_champ_delta_p_g_hpc( &
44454445
use, intrinsic :: iso_c_binding
44464446
use qmckl
44474447
implicit none
4448-
integer(qmckl_context), intent(in) :: context
4448+
integer(qmckl_context), intent(in), value :: context
44494449
integer(c_int64_t) , intent(in), value :: num_in, walk_num, elec_num, cord_num, nucl_num
44504450
real(c_double) , intent(in) :: een_rescaled_n(elec_num, nucl_num, 0:cord_num, walk_num)
44514451
real(c_double) , intent(in) :: een_rescaled_e(elec_num, elec_num, 0:cord_num, walk_num)
@@ -4490,8 +4490,8 @@ integer(qmckl_exit_code) function qmckl_compute_jastrow_champ_delta_p_g_hpc( &
44904490
een_rescaled_e_gl(num, 1:3, 1:elec_num, m, nw)
44914491
delta_e_gl(1:3,num) = 0.0d0
44924492

4493-
call dgemm('N','N', 3, nucl_num*(cord_num+1), elec_num, 1.d0, &
4494-
delta_e_gl(1,1), 3, een_rescaled_n(1,1,0,nw), elec_num, 0.d0, &
4493+
call dgemm('N','N', 3, int(nucl_num*(cord_num+1),4), int(elec_num,4), 1.d0, &
4494+
delta_e_gl(1,1), 3, een_rescaled_n(1,1,0,nw), int(elec_num,4), 0.d0, &
44954495
tmp, 3)
44964496

44974497
delta_p_g(num,1:nucl_num,1,0:cord_num,m,nw) = tmp(1,1:nucl_num,0:cord_num)
@@ -4934,7 +4934,7 @@ integer(qmckl_exit_code) function qmckl_compute_jastrow_champ_factor_single_een_
49344934
use, intrinsic :: iso_c_binding
49354935
use qmckl
49364936
implicit none
4937-
integer(qmckl_context), intent(in) :: context
4937+
integer(qmckl_context), intent(in), value :: context
49384938
integer(c_int64_t) , intent(in), value :: num_in, walk_num, elec_num, cord_num, nucl_num, dim_c_vector
49394939
integer(c_int64_t) , intent(in) :: lkpm_combined_index(dim_c_vector,4)
49404940
real(c_double) , intent(in) :: c_vector_full(nucl_num, dim_c_vector)
@@ -7480,22 +7480,22 @@ qmckl_exit_code qmckl_provide_en_rescaled_single_gl(qmckl_context context)
74807480
|-------------------------+---------------------------------+--------+-------------------------------------------------------|
74817481

74827482
#+begin_src f90 :comments org :tangle (eval f) :noweb yes
7483-
integer function qmckl_compute_en_rescaled_single_gl_doc_f(context, nucl_num, &
7483+
integer function qmckl_compute_en_rescaled_single_gl_doc(context, nucl_num, &
74847484
type_nucl_num, type_nucl_vector, rescale_factor_en, walk_num, &
74857485
single_en_distance, coord, nucl_coord, en_rescaled_single_gl) &
7486-
result(info)
7486+
result(info) bind(C)
74877487
use qmckl
74887488
implicit none
7489-
integer(qmckl_context), intent(in) :: context
7490-
integer*8 , intent(in) :: nucl_num
7491-
integer*8 , intent(in) :: type_nucl_num
7492-
integer*8 , intent(in) :: type_nucl_vector(nucl_num)
7493-
double precision , intent(in) :: rescale_factor_en(nucl_num)
7494-
integer*8 , intent(in) :: walk_num
7495-
double precision , intent(in) :: single_en_distance(nucl_num, walk_num)
7496-
double precision , intent(in) :: coord(3,walk_num)
7497-
double precision , intent(in) :: nucl_coord(nucl_num,3)
7498-
double precision , intent(out) :: en_rescaled_single_gl(4,nucl_num,walk_num)
7489+
integer(qmckl_context), intent(in), value :: context
7490+
integer (c_int64_t) , intent(in) , value :: nucl_num
7491+
integer (c_int64_t) , intent(in) , value :: type_nucl_num
7492+
integer (c_int64_t) , intent(in) :: type_nucl_vector(nucl_num)
7493+
real (c_double ) , intent(in) :: rescale_factor_en(nucl_num)
7494+
integer (c_int64_t) , intent(in) , value :: walk_num
7495+
real (c_double ) , intent(in) :: single_en_distance(nucl_num,walk_num)
7496+
real (c_double ) , intent(in) :: coord(3,walk_num)
7497+
real (c_double ) , intent(in) :: nucl_coord(nucl_num,3)
7498+
real (c_double ) , intent(out) :: en_rescaled_single_gl(4,nucl_num,walk_num)
74997499

75007500
integer*8 :: nw, a, ii
75017501
double precision :: ria_inv, elnuc_dist_gl(4, nucl_num), kappa_l
@@ -7549,7 +7549,7 @@ integer function qmckl_compute_en_rescaled_single_gl_doc_f(context, nucl_num, &
75497549
end do
75507550

75517551

7552-
end function qmckl_compute_en_rescaled_single_gl_doc_f
7552+
end function qmckl_compute_en_rescaled_single_gl_doc
75537553
#+end_src
75547554

75557555
#+begin_src c :tangle (eval h_private_func) :comments org :exports none
@@ -7600,52 +7600,7 @@ qmckl_exit_code qmckl_compute_en_rescaled_single_gl (
76007600
walk_num, single_en_distance, coord, nucl_coord, en_rescaled_single_gl );
76017601
}
76027602
#+end_src
7603-
#+CALL: generate_c_interface(table=qmckl_en_rescaled_single_gl_args,rettyp=get_value("CRetType"),fname="qmckl_compute_en_rescaled_single_gl_doc")
7604-
7605-
#+RESULTS:
7606-
#+begin_src f90 :tangle (eval f) :comments org :exports none
7607-
integer(c_int32_t) function qmckl_compute_en_rescaled_single_gl_doc &
7608-
(context, &
7609-
nucl_num, &
7610-
type_nucl_num, &
7611-
type_nucl_vector, &
7612-
rescale_factor_en, &
7613-
walk_num, &
7614-
single_en_distance, &
7615-
coord, &
7616-
nucl_coord, &
7617-
en_rescaled_single_gl) &
7618-
bind(C) result(info)
7619-
7620-
use, intrinsic :: iso_c_binding
7621-
implicit none
7622-
7623-
integer (c_int64_t) , intent(in) , value :: context
7624-
integer (c_int64_t) , intent(in) , value :: nucl_num
7625-
integer (c_int64_t) , intent(in) , value :: type_nucl_num
7626-
integer (c_int64_t) , intent(in) :: type_nucl_vector(nucl_num)
7627-
real (c_double ) , intent(in) :: rescale_factor_en(nucl_num)
7628-
integer (c_int64_t) , intent(in) , value :: walk_num
7629-
real (c_double ) , intent(in) :: single_en_distance(nucl_num,walk_num)
7630-
real (c_double ) , intent(in) :: coord(3,walk_num)
7631-
real (c_double ) , intent(in) :: nucl_coord(nucl_num,3)
7632-
real (c_double ) , intent(out) :: en_rescaled_single_gl(4,nucl_num,walk_num)
7633-
7634-
integer(c_int32_t), external :: qmckl_compute_en_rescaled_single_gl_doc_f
7635-
info = qmckl_compute_en_rescaled_single_gl_doc_f &
7636-
(context, &
7637-
nucl_num, &
7638-
type_nucl_num, &
7639-
type_nucl_vector, &
7640-
rescale_factor_en, &
7641-
walk_num, &
7642-
single_en_distance, &
7643-
coord, &
7644-
nucl_coord, &
7645-
en_rescaled_single_gl)
7646-
7647-
end function qmckl_compute_en_rescaled_single_gl_doc
7648-
#+end_src
7603+
76497604

76507605
*** Test :noexport:
76517606

0 commit comments

Comments
 (0)