Re: Structure of large link libraries in f95



Charles Russell wrote:
Richard E Maine wrote:


Compile your code and put it in a library the same way you do now. Then
make a module with nothing but interface blocks.


They would then have to be maintained, since I am in the habit of monkeying with my code, even in the link libraries. Even if I could INCLUDE the f77 files, I would have to split out the routines that I was monkeying with into a separate smaller "unstable" module so as not to have to recompile everything after each change.

Why would you have to recompile everything? Can't you just recompile the routines you're "monkeying with" and replace them in your library(ies)?

But, if you changed the interface you would have to change the corresponding interface block in your "interface block module(s)".

But why do you want to cast your existing, working libraries, in fortran95 anyway? I use the f77 blas/lapack (and others) libraries in my f95 code and when I use various routines from them, I declare them EXTERNAL and link in the required library -- which was compiled once and pretty much forgotten about.

Things could be automated, but I'm not a makefile guru. It took me years to get my f77 makefiles refined to the point that everything is automatic, and with modules I would have to start over. At least with gfortran and g95 available, I don't have to worry about portability of makefiles. (I assume that with their common heritage, makefiles are portable between those two, and in any case the whole compiler is portable.)

I don't like burning bridges behind me, or discarding an old and comfortable pair of shoes.

Old and comfortable do not necessarily translate into good for your feet. :o)

From f77 I can move either to f95 or to C (via f2c). Who can tell whether the next math package that I badly want will be written in f95, C, or even f77? Arguably, f77 is still the most flexible for public domain code, simply because of the availability of f2c.

It sounds like you've got everything working the way you want it, with a system set up for quick and easy modification. Why even bother with f95 constructs with your existing library setup? "If it ain't broke...." type of thing.

cheers,

paulv

--
Paul van Delst
CIMSS @ NOAA/NCEP/EMC
.