Skip to content

Conversation

@JorgeG94
Copy link

@JorgeG94 JorgeG94 commented Nov 30, 2025

This PR provides a working Fortran interface using modules and the iso_c_binding module to several libcint routines. The point of this work is to have a interface that does not rely on the use of external for the functions and provides a clean API for use of libcint in Fortran.

Two interfaces have been created, one that is directly to the C code using c_double and other iso_c_binding types and a "Fortran first ish" one that casts integer, parameter :: dp = c_double so that people can use real(dp) which is a bit more Fortran-esque than using c_double.

I've asked an LLM to create some docs of the new interfaces and provide some in code documentation and comments. I've heavily edited the LLM generated docs.

I have also provided examples of the new Fortran interfaces and separated them in the examples directory.

I am attempting to create a script that would generate these modules/interfaces automatically form the C code but I'd like to get some feedback first!

It looks like 4k lines of code but most of them are reporting the examples files, the include/ changes are just ~800 lines ish total.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant