NERSC Summer Intern Position

Hi all,

I’m advertising a position for a summer intern at Lawrence Berkeley National Laboratory. You’d be working with me at NERSC to properly define and implement a Fortran build system in the Fortran Package Manager (fpm). For additional details see the posting. For consideration please email me directly with a resume and cover letter.

9 Likes

That would be an exciting capability to have directly in fpm. For now I mostly use CMake, which is really only a pain to set up once. After that you can just add source files as they appear, or copy the structure from an existing project to any new ones.

It mostly works now, but I’ve encountered a bug or two detecting proper rebuild on occasion. This is mostly about fixing that problem, and making sure it takes all of the nuances around Fortran compilation dependencies into account properly. I’ve got a decent spec of how it’s all supposed to work in my head, and this would be an excuse to write it down in nice way and have some help to implement it.

I’ll grant that CMake has likely already solved this problem, so I’m sure we’d look at how they did.

As far as I know, they have. I don’t use submodules, but CMake seems to work fine for modules as well as free-floating subroutines and functions, multiples per file, free subprograms with multiple entry, etc. The Brawler modeling tool (https://dsiac.org/models/brawler/) uses quite an involved build process, involving building one program to parse an input file and generate an entire module.F90, before compiling that with the rest of the source files to produce the executables.

It will be great for this to all be possible from within fpm. Integrating with a FOSS compiler like LFortran or gfortran would make Fortran with fpm fully modern: a single package to act as package manager and build tool in one.