webpage icon indicating copy to clipboard operation
webpage copied to clipboard

More Fortran packages

Open ivan-pi opened this issue 4 years ago • 21 comments

I've found a few more Fortran packages I will try to add one by one:

  • [ ] Fortran processing library: http://www.biosfera.dea.ufv.br/fpl/index.html
  • [ ] 2DECOMP & FFT: https://github.com/numericalalgorithmsgroup/2decomp_fft
  • [ ] SLICOT: http://slicot.org/
  • [ ] FORTRAN Routines for Spectral methods: https://cdm.unimore.it/home/matematica/funaro.daniele/rout.htm
  • [ ] NUFFT: https://cims.nyu.edu/cmcl/nufft/nufft.html.bak
  • [ ] FFTLog: https://jila.colorado.edu/~ajsh/FFTLog/
  • [ ] P3DFFT: https://www.p3dfft.net/
  • [ ] Parallel FFT Package: https://cs.sandia.gov/~sjplimp/docs/fft/README.html
  • [ ] fftMPI: https://fftmpi.sandia.gov/
  • [ ] CSLib: https://github.com/lammps/cslib
  • [ ] Quadratures for elastostatic Green's functions on flat triangles: https://cims.nyu.edu/cmcl/quadratures/quadratures.html
  • [ ] Quadratures for smooth functions in two and three dimensions: https://cims.nyu.edu/cmcl/quadratures/quadratures.html
  • [ ] FMMLIB2D: https://cims.nyu.edu/cmcl/fmm2dlib/fmm2dlib.html
  • [ ] OpenFFT: http://www.openmx-square.org/openfft/
  • [ ] libcerf: https://jugit.fz-juelich.de/mlz/libcerf
  • [x] PROPACK: http://sun.stanford.edu/~rmunk/PROPACK/
  • [ ] FATODE: https://github.com/ComputationalScienceLaboratory/FATODE
  • [ ] HEALPix: https://healpix.jpl.nasa.gov/
  • [ ] auto-07p: https://github.com/auto-07p/auto-07p
  • [ ] AxiSEM: http://seis.earth.ox.ac.uk/axisem/
  • [ ] SeisSol: https://github.com/SeisSol/SeisSol
  • [ ] APES: https://apes.osdn.io/ (has 5 independent? sub-components)
  • [ ] codelib: http://elib.zib.de/pub/elib/codelib/en/
  • [ ] NewtonLib: http://elib.zib.de/pub/elib/codelib/NewtonLib/index.html
  • [ ] Expokit: https://www.maths.uq.edu.au/expokit/
  • [x] pencil-code: https://github.com/pencil-code/pencil-code
  • [ ] SALMON2: https://github.com/SALMON-TDDFT/SALMON2
  • [ ] RAMSES: https://www.ics.uzh.ch/~teyssier/ramses/RAMSES.html
  • [ ] GENE: http://genecode.org/
  • [ ] PICLAS: https://github.com/piclas-framework/piclas
  • [ ] OceanWave3D: https://github.com/lppferreira/OceanWave3D-Fortran90

ivan-pi avatar Mar 18 '21 15:03 ivan-pi

Very good, great job finding them.

certik avatar Mar 18 '21 16:03 certik

Should those go in the package index at fortran-lang.org or be ported to fpm packages and registered here (requires upstream adoption)?

awvwgk avatar Mar 18 '21 16:03 awvwgk

My current plan was only to put them in the package index. 👍

ivan-pi avatar Mar 18 '21 16:03 ivan-pi

Maybe some yet unlisted packages could be found in the Curlie directory (the historical DMOZ reborn), especially here:

  • https://www.curlie.org/en/Computers/Programming/Languages/Fortran/Libraries
  • https://www.curlie.org/en/Computers/Programming/Languages/Fortran/Source_Code

vmagnin avatar Apr 22 '21 12:04 vmagnin

Indeed, there are a few interesting ones.

On my PC I found the manual for AxiSEM - a parallel spectal-element solver for 3D wave propagation (http://seis.earth.ox.ac.uk/axisem/).

ivan-pi avatar Apr 22 '21 20:04 ivan-pi

This other seismological code (https://github.com/SeisSol/SeisSol) also contains a fair share of Fortran code.

ivan-pi avatar Apr 25 '21 20:04 ivan-pi

On top of the already long list, I've found pencil-code: https://github.com/pencil-code/pencil-code

ivan-pi avatar May 02 '21 11:05 ivan-pi

There is also Elk (I communicated with the author long time ago):

  • [x] https://elk.sourceforge.io/

certik avatar May 03 '21 15:05 certik

I recommend to send a patch rather than posting the links here, because this makes it easier to discuss the proposed project and allows to actually add them to the package index. Also, it helps to avoid piling up collections of links like the “List of popular Fortran projects,” which are difficult to work on because the relevant context gets lost over time.

awvwgk avatar May 03 '21 17:05 awvwgk

@krenzland, @ravil-mobile - Given that SeisSol is on track to remove Fortran, I am guessing you don't want SeisSol to be part of the Fortran Package Index (https://fortran-lang.org/packages/)?

Btw, is there any relationship between SeisSol and AxiSEM?

ivan-pi avatar Apr 14 '22 23:04 ivan-pi

Yes, SeisSol isn't really a Fortran code. Nearly everything is written in C++/generated code, some "physics" is still in Fortran. Resulting from this, we have a lot of glue code (which inflates the line count a lot). We probably have around 2k lines of Fortran code that's really relevant.

And no, there isn't any relationship between SeisSol and AxiSEM.

krenzland avatar Apr 25 '22 08:04 krenzland

Out of curiosity, is anyone creating a Git project with as many of these projects as possible as submodules? I will find myself in need of as large a corpus of Fortran codes as I can lay my hands on, and these are all silos of grain for my mill.

gklimowicz avatar Apr 27 '22 17:04 gklimowicz

Hi @gklimowicz, I'm not aware of any of us within Fortran-Lang having done something like that. Is it compiler testing you have in mind?

Perhaps worth asking @jeffhammond. He was recently searching for Fortran codes on Twitter.

ivan-pi avatar May 06 '22 20:05 ivan-pi

https://github.com/Beliavsky/Fortran-code-on-GitHub was useful to me. I wrote a script to clone every repo it references. Was about 25MLOC I think.

I recommend Dalton (GitLab) and NWChem (GitHub) for Fortran testing. Those are both huge codes. Mostly legacy stuff.

jeffhammond avatar May 07 '22 07:05 jeffhammond

@jeffhammond @Beliavsky @ivan-pi Thanks, Jeff and Ivan. I will dig into our chess-playing friend's repo and see if there is anything I've come across to suggest add to it.

I'm planning to work on something of an over-extended Fortran semantic analyzer, so Dalton and NWChem are good, too.

Keep those cards and letters coming. :-)

gklimowicz avatar May 07 '22 17:05 gklimowicz

For eigenvalue problems, the package list currently shows only

  • ELPA
  • ARPACK

We should add the eigenvalue tag to LAPACK (dense eigenvalue problems, successor of EISPACK), SLICOT (generalized eigenvalue problems), PROPACK, and scalapackfx.

A few more libraries for eigenvalues exist, including:

  • [ ] FEAST: http://www.feast-solver.org/index.htm (also available in the NAG library)
  • [ ] SPRAL: https://www.numerical.rl.ac.uk/spral/doc/latest/Fortran/index.html
  • [ ] SLEPc: https://slepc.upv.es/ (in C, provides Fortran interface, requires PETSc)
  • [ ] PRIMME: https://www.cs.wm.edu/~andreas/software/doc/readme.html (C, provides both F77 and F90 interfaces)
  • [ ] EVSL: https://www-users.cse.umn.edu/~saad/software/EVSL/ (C, provides Fortran interface)
  • [ ] EigenEXA: https://www.r-ccs.riken.jp/labs/lpnctrt/projects/eigenexa/

Even more single codes/algorithms are mentioned in the following two documents:

ivan-pi avatar Aug 18 '22 13:08 ivan-pi

@ivan-pi go ahead and submit a PR with these. Great additions.

certik avatar Aug 18 '22 15:08 certik

Hopefully I will find some time soon.

I just noticed, FEAST has a very nice GUI configurator: http://www.feast-solver.org/config.html. I've been imagining something like this for various Fortran solvers for a long time. For example you could have a GUI for LAPACK, where you select the type of problem, what kind of decomposition you want to use, and it generates the code you can copy-paste into your program.

ivan-pi avatar Aug 18 '22 15:08 ivan-pi

Please target the new repository at https://github.com/fortran-lang/webpage for any new submissions for the package index. See https://github.com/fortran-lang/fortran-lang.org/issues/415 for details on the migration.

awvwgk avatar Aug 18 '22 17:08 awvwgk

FYI, the link in the original post for 2decomp is not good. Takes you to a 404 page for Situs Judi Slot Online Terpercaya

gklimowicz avatar Dec 14 '22 23:12 gklimowicz

FYI, the link in the original post for 2decomp is not good. Takes you to a 404 page for Situs Judi Slot Online Terpercaya

Fixed.

ivan-pi avatar Mar 06 '23 14:03 ivan-pi