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.
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.
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’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.
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.
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
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)
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.
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.
Hard disagree with this! 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.
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.
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.
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.
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” ) 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…