Jean-Jacques Wasbauer wrote > I am about to develop a code in F90 that needs to follow quality > requirements and configuration management. We wonder what is the > best F90 organization for F90 software development in terms of > module definition. To be clearer we wonder if encapsulating each > subroutine by a module will be a valuable software organization. On > one hand it may avoid very long modules containing a lot of source > codes lines (difficulties to find a routine in a module), it will > fasten compilation (only relevant modules will be compiled and not > the all bunch of routines contained in a module when slightly > modified), on the other hand the information is dispatched in > several files. > > I would like to have your opinion based on your development > experience. I use Fortran to simulate dynamic systems, i.e. systems involving ordinary differential equations. For me a new project means a new system, therefore I have to change parts of my program frequently. Under those circumstance, here is the way I have organized my program. (*) (Four) groups of modules. Naming convention: the first letter in the file/module name (followed by _) identifies the group. (*) Every group contains more Fortran modules. Every module correspond one to one to a file. File_name = module_name + ".f90" (*) Every module contains one or (generally) more subroutines/functions. In other words every subroutine/function is contained in a module. This allows the compiler to check the consistency. I don't use include. Actually, I have purged my program from non-standard/old constructs using Lahey Essential Fortran 90 compiler. (a free basic version is available on the web from Lahey). Benefit: the code is more readable, more consistent, portable. I recommend this procedure as a test of some aspects of code quality. I hope it helps. Cheers, Vittorio ------------------------------------------------- Dr. Vittorio G. Caffa Tel.: (089) 6088-2054 IABG, Abt. AF 11 Fax: (089) 6088-3990 Einsteinstr. 20 E-Mail: [log in to unmask] D-85521 Ottobrunn %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%