Modularization
Major changes in 0e8602f4. Routines in the bolam.F90 file have been exported to various external "_mod.F90" files.
The bolam.F90 now only contains the main program, and we have this new module files:
- radiation_mod.F90: contains radiative routines (aerdef, radintec, ..)
- dynamics_mod.F90: contains routines defining advection and diffusion
- physics_mod.F90: contains microphysics, convection, block and orog drag parametrizations
- surface_mod.F90: contains routines related to soil and surface processes (snow, veg), including the update of the surface boundary conditions
- io_utils_mod.F90: routines needed for input/output of mhf files. Most of these to be replaced..
- mpi_utils_mod.F90: routines that distribute fields (collect/disperse) and communicate between nodes (u_ghost). For simplicity I also put here routines related to filtering/interpolation, which are needed by many other modules.
- utils_mod.F90: short module containing a few general purpose routines (interp, tridiag, ..) needed by many modules.
Further tasks to be done:
-
check consistency and optionally move routines from the "assigned" module; -
also export to the respective modules parts of the main program;
The makefile templates - both for coupled and uncoupled - have been updated. The test run was successful with 60c90ea5.
To be checked before merging to pseudo-main (and main?).
Edited by Federico Fabiano