The extinction of legacy Fortran codes

I must admit that the title is a bit cataclysmic but I realized yesterday that quite some web pages referencing historical fortran codes are now unreachable.
I was going through the links proposed on Fortran-wiki and 1/4 of the the links are dead:

Other codes are available on personal webpages like the ones of Allan Miller or John Burkardt which is somehow a risk on the long term.
The community is doing a tremendous job to modernize old code base and keep them alive, and as long as the wayback machine is running the codes are never really lost. But I keep wondering if something can be done to archive these codes before they disappear.

7 Likes

Worthwhile to think about. I have no ready solution, though.

That Fortran Wiki page was put online in April 2009. Fifteen years is a long time for an URL. In the best case, the URL has changed and we can find the new one. In the worst cases, the page or the website have disappeared.

For example, concerning:

Jean-Pierre Moreau http://jean-pierre.moreau.pagesperso-orange.fr/fortran.html numerical routines

The Pages Perso service was created in 1997 by the French Internet service provider Wanadoo (which later became Orange). In those days, ISP were freely hosting personal homepages (HTML was king, the Web was 1.0 and blogs did not exist). The Pages Perso were the equivalent of Geocities, killed by Yahoo! in 2009. Pages Perso were stopped by Orange on September 5, 2023. The authors can back up their data up to January 9, 2024.

I have found that project: Archiveteam

Archive Team is a loose collective of rogue archivists, programmers, writers and loudmouths dedicated to saving our digital heritage.

The Pages Perso Orange seem to have been archived: Pages Perso Orange - Archiveteam
using that software: GitHub - ArchiveTeam/pagespersoorange-grab: Archiving Pages Perso Orange

The archives are then put on Internet Archive: Internet Archive: Digital Library of Free & Borrowable Books, Movies, Music & Wayback Machine

I have found Jean-Pierre Moreau’s backup:

BUT unhappily the code sources were not saved: https://web.archive.org/web/20231001183251/https://jean-pierre.moreau.pagesperso-orange.fr/Fortran.html

Concerning that specific page, I can try to look further. Maybe even contact the author.

Finally, I don’t know if we can expect the Internet Archive to be forever online. For example, will they always survive lawsuits?

With computers, everyone knows it is important to make backups. Since the first website in 1991 (CERN, Geneva), many have risen and fallen.

It seems we are cursed! On Jean-Pierre Moreau’s homepage, all source codes were backed up (Basic, C++, Turbo Pascal, C…) except Fortran!

But wait… It is true only for the latest backup (October 2023). The September 2023 backup is OK with Fortran! :sweat_smile:
https://web.archive.org/web/20230929060750/http://jean-pierre.moreau.pagesperso-orange.fr/fortran.html

I will put that URL in the Fortran Wiki page.

I’ve used https://zenodo.org/ (which is backed by CERN) in the past to place archives of my code in a stable location (and you get a DOI which makes citing the code in academic work easier). So if you want preserve a copy of a code I suggest making an upload there.

3 Likes

Thanks for that remark.

They say:

Why use Zenodo?
Safe — your research is stored safely for the future in CERN’s Data Centre for as long as CERN exists.

As CERN was created in 1954 and is an international organization, we can hope it will still have a long life…

Yes, this is an excellent tool! I used it for the two public github repos I put forward and is very convenient as once the accounts are linked the process is straightforward.

1 Like

I did not know about zenodo. Thanks.

The codes of JP Moreau were actually the ones I was looking for when I realized the urls were down. And yes, you have to go a bit further back in time to retrieve the fortran code. I think that link is the latest with the fortran code included

1 Like

Also note that anyone can make an upload on zenodo, there is an author field when making an upload but you can put any name in there. I have in the past made uploads for other people (with their permission). A motivated person could backup codes they find online to zenodo and add the original authors names (for proper credit) and include links to the original website in the metadata (the metadata can be altered in the future without making a new DOI)

2 Likes

I used to edit the Fortran section of the Open Directory, now defunct, which has links to Fortran codes by category. I’d guess that many links are broken – the OP is correct that individual sites tend to disappear. Besides Zenodo, one can upload code to GitHub, preserving author and license information.

1 Like

The archived DMOZ became Curlie in 2017:

That page was updated on December 21, so maybe someone is maintaining it.

It may be OK if an open licence is used. But if the code is under copyright, I think we must ask the author.

1 Like

The best way of keeping Fortran code alive is to keep it usable, useful, and used. This is what I have been doing with Powell’s Derivative-Free Optimization Solvers(PRIMA).

Uploading the code to some repository is necessary but insufficient — it is only the first step.

8 Likes
publicserviceannouncement
implicit character (A-Z)

Excuses for hijacking the discussion for a moment. As many of you remember, we are also having challenges by vendoring such code that are slowly withering away.

I know @jacobwilliams did great work converting most of such code in his repo. The reason I wanted to chime in is that, we have cleaned up amos and cdflib (you can also find these on Alan Miller catalogue).

I think it would be easier for folks who want to provide modern fortran versions of such libraries to take our C translation and quickly swap with fortran bells and whistles instead of going through the same pain like we did which is chasing 13th decimal to check everything is OK.

So here is Amos (still has a few nasty gotos) and here is the cdflib (currently in Cython but fully GOTO-free and I’ll convert it to plain C soon).

We are writing specfun in C too but that’s probably not interesting to you folks as it is pretty much a lot of functions bundled up together without too much F77isms in it (other than proudly implicit typing). We are doing it for reasons that we discussed many times elsewhere on this forum.

However, there might be some interest for SLSQP, ARPACK and PROPACK as they will be mostly dealing with arrays and modern Fortran users might benefit from that rewrite. They are not ready as PRs yet but once scipy.special module is done, they are next in the pipeline. FYI.

end publicserviceannouncement
1 Like

Hard disagree with this! :slight_smile: Convert Fortran 77 to C and then back to Modern Fortran? That’s probably 10x the amount of work to go from Fortran 77 to Modern Fortran.

Just FYI: SLSQP has already been modernized. If we can get that used by SciPy I’m all for it.

3 Likes

No just take a plain C with only arithmetic operations and convert to Fortran. F77->C is already done. The point is not the language, it is that all goto’s are unrolled, SAVE’s are removed and code is linearized. That’s the convenience, not this or that language.

I mean if you like reading sphagetti F77, that’s another story. No judgement.

My point was converting F77 to Modern Fortran (no gotos, etc.) is way easier than converting it to C. For example, the SPAG tool can mostly do 95% of that automatically. Then you just do some manual cleanups to get the last 5% done. Compared to rewriting every line in another language. Nobody will ever convince me that C is a good language to write math code in. :slight_smile:

1 Like

This forum is magnetic in language wars :slight_smile:

I am not saying you write C or any other language other than Fortran. I am not saying you should use it. Just my offer in case anyone are interested. Otherwise no harm done. You do you. Emphasis on in case.

I also point that the code flow is already flattened in a random language which you are not going to use or must use. Accidentally, they share the same syntax with Fortran because it is all arithmetics. It has the tricky parts fixed and it goes top to bottom. For the remaining 5% of your cases, just informing that it exists.

You don’t need to use it. End of my announcement.

1 Like

So apparently, it’s not only the source code that have gone missing, some tutorials also disappeared. I found out that the series of articles by Mark Leair on OOP in Fortran 2003 are no more. It seems that Nvidia deleted the former PGI pages.
For those interested, here are the links on webarchive

That’s a pity because the piece on UDDTIO is the most comprehensive and complete I know.

PS: links on FortranWiki are also dead.

3 Likes

When you find dead links, don’t hesitate to edit the Wiki page with the dedicated link at the bottom of the page. You don’t need to create any account. Just edit and put a pseudo in the “submit” field (or “anonymous coward” :slight_smile: ) That’s all.

The Fortran Wiki just contains what we, Fortran users, put in it. As a wiki, it belongs to nobody and therefore to everybody…

2 Likes