1
0
mirror of https://github.com/TREX-CoE/qmckl.git synced 2024-07-03 09:56:10 +02:00

Changed argument order.

This commit is contained in:
Francois Coppens 2023-02-27 11:29:01 +01:00
parent 656d268187
commit 1640eb60f9

View File

@ -790,11 +790,11 @@ If the determinant is passed it will only be partially updated if there were any
| ~LDS~ | ~uint64_t~ | in | Leading dimension of Slater_inv |
| ~Dim~ | ~uint64_t~ | in | Dimension of Slater_inv |
| ~N_updates~ | ~uint64_t~ | in | Number of rank-1 updates to be applied to Slater_inv |
| ~Updates~ | ~double[N_updates*LDS]~ | in | Array containing the rank-1 updates |
| ~Updates~ | ~double[LDS*N_updates]~ | in | Array containing the rank-1 updates |
| ~Updates_index~ | ~uint64_t[N_updates]~ | in | Array containing positions of the rank-1 updates |
| ~breakdown~ | ~double~ | in | Break-down parameter on which to fail or not |
| ~Slater_inv~ | ~double[Dim*LDS]~ | inout | Array containing the inverse Slater-matrix |
| ~later_updates~ | ~double[N_updates*LDS]~ | inout | Array containing the split updates for later |
| ~later_updates~ | ~double[LDS*N_updates]~ | inout | Array containing the split updates for later |
| ~later_index~ | ~uint64_t[N_updates]~ | inout | Array containing the positions of the split updates for later |
| ~later~ | ~uint64_t~ | inout | Number of split updates for later |
| ~determinant~ | ~double~ | inout | Determinant of the Slater-matrix |
@ -928,11 +928,11 @@ end function qmckl_sm_splitting_core_doc_f
#+end_src
**** C interface to the pedagogical kernel (not directly exposed)
The following Fortran function ~qmckl_sm_splitting_core_doc~ makes sure
that the pedagogical kernel ~qmckl_sm_splitting_core_doc_f~, written in
Fortran, can be called from C using the ~ISO_C_BINDING~. The Fortran function
~qmckl_sm_splitting_core_doc~ will be exposed in the header file 'qmckl.h'
for C users and in the module file 'qmckl_f.F90' for Fortran users.
The function ~qmckl_sm_splitting_core_doc~ makes sure that
~qmckl_sm_splitting_core_doc_f~ can be called from C using the
~ISO_C_BINDING~. Function ~qmckl_sm_splitting_core_doc~ will be
exposed in ~qmckl.h~ and ~qmckl_f.F90~, but
~qmckl_sm_splitting_core_doc_f~ will not.
#+CALL: generate_c_interface(table=qmckl_sm_splitting_core_args,rettyp=get_value("CRetType"),fname="qmckl_sm_splitting_core_doc")
@ -960,19 +960,16 @@ integer(c_int32_t) function qmckl_sm_splitting_core_doc &
integer (c_int64_t) , intent(in) , value :: LDS
integer (c_int64_t) , intent(in) , value :: Dim
integer (c_int64_t) , intent(in) , value :: N_updates
real (c_double ) , intent(in) :: Updates(N_updates*LDS)
real (c_double ) , intent(in) :: Updates(LDS*N_updates)
integer (c_int64_t) , intent(in) :: Updates_index(N_updates)
real (c_double ) , intent(in) , value :: breakdown
real (c_double ) , intent(inout) :: Slater_inv(Dim*LDS)
real (c_double ) , intent(inout) :: later_updates(N_updates*LDS)
real (c_double ) , intent(inout) :: later_updates(LDS*N_updates)
integer (c_int64_t) , intent(inout) :: later_index(N_updates)
integer (c_int64_t) , intent(inout) :: later
real (c_double ) , intent(inout) :: determinant
integer(c_int32_t), external :: qmckl_sm_splitting_core_doc_f
write(*,*) "Entering 'qmckl_sm_splittinig_core_doc'"
info = qmckl_sm_splitting_core_doc_f &
(context, &
LDS, &
@ -987,8 +984,6 @@ integer(c_int32_t) function qmckl_sm_splitting_core_doc &
later, &
determinant)
write(*,*) "Leaving 'qmckl_sm_splittinig_core_doc'"
end function qmckl_sm_splitting_core_doc
#+end_src