Open newville opened 7 years ago
I don't know that it was a good decision, but my thinking behind the libraries is that libonepath
and libpotph
are the Fortran entry points. That is, a Fortran programmer would want a familiar, Fortran-syntax way of getting into those two things. They both expose Fortran subroutines with a long argument lists.
libfeffpath
and libfeffphase
are fairly thin C wrappers which expose a data structure and map the data structure onto the Fortran subroutine calls in the other two libraries.
As I said, not necessarily the most sensible, but it's what I did when i did it, which was quite some time ago by now....
As for the executables, I replicated what Feff8 did as delivered and thought about improving upon it not at all. That wasn't a decision so much as a stopping point.
I am fine with executables named feff8l_*
. I would also be fine with a small C or python program called feff8l
which, when called without an argument, would run all of Feff in the original sense. When called with an argument, it would run the individual steps.
addressed in #41, though the small feff8l
program there is in Python (with no non-standard lib dependencies).
Currently (unless I'm mistaken),
make install
installsPREFIX/bin/: ff2x, genfmt, pathfinder, pot, rdinp, xsph
PREFIX/lib/: json_module.mod, libfeffpath.EXT, libfeffphases.EXT, libjsonfortran.a, libonepath.EXT, libpotph.EXT
PREFIX/include: feffpath.h, feffphases.h
where EXT='so' for linux, 'dylib' for Mac, 'dll' for Windows.
I see three problems here:
I propose condensing the shared libraries libfeffpath.EXT, libfeffphases.EXT, and libonepath.EXT
to a single
libfeff8l.EXT
, and changing the name for the installed binary files:We can then also include a bash file (or bat file for Windows) that runs all of these.