I've been following this recent module thread with interest as it's
reminded me of the mess I got into when I first started with f90 and how
the whole area of interfaces and modules is one of the tricky aspects of
f90 to manage.
I started moving my code to f90 by using modules in place of commons which
worked fine. But then as I made use of assumed shape arrays, opt. args, I
started using explicit interfaces. It quickly became a pain to manage these
separately in modules or otherwise from the procedures. So I moved to
putting procedures in the modules themselves. But this got me into
compilation hell with circular interdependencies between modules taking
ages to fix. Nowadays I put procedures in modules as far as possible (which
I think forces a better programming style regarding data sharing) but fix
the compile order and make use of explicit interfaces where it's
unavoidable to ensure compilation. But it's still a learning experience
which forces you to change your program management and code design along
the way.
Glenn
--
Dr. Glenn Carver, Senior Research Associate,
Centre for Atmospheric Science, Chemistry Dept., Cambridge University, UK
mailto:[log in to unmask] http://www.atm.ch.cam.ac.uk/~glenn/
"I never think of the future, it comes soon enough"
- Albert Einstein
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|