• A Modern Fortran Scientific Programming Ecosystem

    From Beliavsky@21:1/5 to All on Thu Oct 13 11:41:36 2022
    https://degenerateconic.com/a-modern-fortran-scientific-programming-ecosystem.html
    A Modern Fortran Scientific Programming Ecosystem
    Oct 12, 2022

    Historically, large general-purpose libraries have formed the core of the Fortran scientific ecosystem (e.g., SLATEC, or the various PACKS). Unfortunately, as I have mentioned here before, these libraries were written in FORTRAN 77 (or earlier) and
    remained unmodified for decades. The amazing algorithms continued within them imprisoned in a terrible format that nobody wants to deal with anymore. At the time they were written, they were state of the art. Now they are relics of the past, a reminder
    of what might have been if they had continued to be maintained and Fortran had continued to remain the primary scientific and technical programming language.

    Over the last few years, I've managed to build up a pretty good set of modern Fortran libraries for technical computing. Some are original, but a lot of them include modernized code from the libraries written decades ago. The codes still work great (
    polyroots-fortran contains a modernized version of a routine written 50 years old), but they just needed a little bit of cleanup and polish to be presentable to modern programmers as something other than ancient legacy to be tolerated but not well
    maintained (which is how Fortran is treated in the SciPy ecosystem).

    ...

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lynn McGuire@21:1/5 to Beliavsky on Thu Oct 13 19:44:13 2022
    On 10/13/2022 1:41 PM, Beliavsky wrote:
    https://degenerateconic.com/a-modern-fortran-scientific-programming-ecosystem.html
    A Modern Fortran Scientific Programming Ecosystem
    Oct 12, 2022

    Historically, large general-purpose libraries have formed the core of the Fortran scientific ecosystem (e.g., SLATEC, or the various PACKS). Unfortunately, as I have mentioned here before, these libraries were written in FORTRAN 77 (or earlier) and
    remained unmodified for decades. The amazing algorithms continued within them imprisoned in a terrible format that nobody wants to deal with anymore. At the time they were written, they were state of the art. Now they are relics of the past, a reminder
    of what might have been if they had continued to be maintained and Fortran had continued to remain the primary scientific and technical programming language.

    Over the last few years, I've managed to build up a pretty good set of modern Fortran libraries for technical computing. Some are original, but a lot of them include modernized code from the libraries written decades ago. The codes still work great (
    polyroots-fortran contains a modernized version of a routine written 50 years old), but they just needed a little bit of cleanup and polish to be presentable to modern programmers as something other than ancient legacy to be tolerated but not well
    maintained (which is how Fortran is treated in the SciPy ecosystem).

    ...

    Which Fortran compiler and linker on which platform do you work with
    nowaday ? IDE ?

    Thanks,
    Lynn

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Beliavsky@21:1/5 to Lynn McGuire on Thu Oct 13 20:11:55 2022
    On Thursday, October 13, 2022 at 8:44:18 PM UTC-4, Lynn McGuire wrote:
    ...
    Which Fortran compiler and linker on which platform do you work with
    nowaday ? IDE ?

    Thanks,
    Lynn

    I'm the OP but not the author of the linked blog post or of the software discussed.

    I use gfortran and Intel Fortran on Windows and WSL2 using Emacs or Epsilon, a commercial Emacs-like editor.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From pehache@21:1/5 to All on Fri Oct 14 09:15:09 2022
    Le 13/10/2022 à 20:41, Beliavsky a écrit :

    a lot of them include modernized code from the libraries written decades ago. The codes still work great (polyroots-fortran contains a modernized version of a routine written 50 years old), but they just needed a little bit of cleanup and polish to be
    presentable to modern programmers

    Actually I don't the point updating legacy code, even if it is
    fixed-form pure F77, unless one wants to add new features/options/etc...

    Especially when the authors also writes:

    "[Fortran] is great for technical and numerical codes that need to run
    fast and are intended to be used for decades. The libraries listed above
    will not stop working in a few years. An extremely complicated Fortran application can be recompiled with just a Fortran compiler. You cannot
    say the same for anything written in the Python scientific ecosystem,
    which is a Frankenstein hybrid of a scripting language hacked together
    with a pile of C/C++/Fortran libraries compiled by somebody else. Good
    luck trying to run Python you write now 20 years from now (or trying to
    run something written 20 years ago)."

    Which is true... In fact all Fortran evolution is tied to be able to
    continue using legacy codes without constantly having to update them.
    Hence "what's the point updating them?".

    What the legacy libraries deserve are modern interfaces and possibly
    wrappers, which does not require updating the core codes.

    --
    "...sois ouvert aux idées des autres pour peu qu'elles aillent dans le
    même sens que les tiennes.", ST sur fr.bio.medecine
    ST passe le mur du çon : <j3nn2hFmqj7U1@mid.individual.net>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Nasser M. Abbasi@21:1/5 to pehache on Fri Oct 14 12:56:48 2022
    On 10/14/2022 2:15 AM, pehache wrote:

    What the legacy libraries deserve are modern interfaces and possibly wrappers, which does not require updating the core codes.


    But isn't this what Matlab does?

    Matlab basically makes it easy to use Fortran, which is
    what most Matlab calls end up doing under the cover.

    That what made Matlab so popular.

    --Nasser

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Amir Shahmoradi@21:1/5 to pehache on Fri Oct 14 22:51:30 2022
    On Friday, October 14, 2022 at 2:15:14 AM UTC-5, pehache wrote:

    Actually I don't the point updating legacy code, even if it is
    fixed-form pure F77, unless one wants to add new features/options/etc...

    If the codes are not modernized, no one dares improve them. Instead, people tend to start new projects from scratch in different languages, cursing Fortran (77) on the way out. IMO, Jacob's work is quite a valuable first step toward the further
    development of these dormant packages. Of course, it takes a lot of testing and time to bring confidence into the modernized libraries and more to extend the existing functionalities.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From pehache@21:1/5 to All on Sun Oct 16 17:08:37 2022
    Le 15/10/2022 à 07:51, Amir Shahmoradi a écrit :


    Of course, it takes a lot of testing and time to bring confidence into
    the modernized libraries...

    That's a big part of the problem. I use LAPACK on a regular basis, and I wouldn't really want to use a "modernized" version (I mean with a
    rewritten code) that would not bring a feature that I need.



    --
    "...sois ouvert aux idées des autres pour peu qu'elles aillent dans le
    même sens que les tiennes.", ST sur fr.bio.medecine
    ST passe le mur du çon : <j3nn2hFmqj7U1@mid.individual.net>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)