[3990] | 1 | Description of libf purpose and contents |
---|
| 2 | ---------------------------------------- |
---|
| 3 | |
---|
| 4 | All the LMDZ source code is located in subdirectories of libf. |
---|
| 5 | The various directories (and their respective subdirectories) are there to |
---|
| 6 | separate codes with various functionalities. The main driver in this |
---|
| 7 | organization is to cleanly separate dynamics, physics and their |
---|
| 8 | interface. In practice: |
---|
| 9 | |
---|
| 10 | dyn3d : dynamics, serial version |
---|
| 11 | |
---|
| 12 | dyn3dpar : dynamics, parallel version. Obsolete (many arrays remained global |
---|
| 13 | requiring more overall memory with increasing core number) |
---|
| 14 | |
---|
| 15 | dyn3dmem : dynamics, parallel (optimized) version with improved |
---|
| 16 | memory management (all arrays are local to each core) |
---|
| 17 | |
---|
| 18 | dyn3d_common: routines used by all dynamics (serial or parallel) |
---|
| 19 | |
---|
| 20 | filtre: high-latitude longitudinal filter for lonxlat grid |
---|
| 21 | (used by the dynamics, serial or parallel) |
---|
| 22 | |
---|
| 23 | grid: routine for model's grid generation |
---|
| 24 | (used by the dynamics, serial or parallel) |
---|
| 25 | |
---|
| 26 | |
---|
| 27 | phy* : various physics packages |
---|
| 28 | phylmd: standard terrestrial lmd physics |
---|
| 29 | phylmdiso: version with isotopes (temporary, should be merged in phylmd) |
---|
| 30 | phymar: physics of the 'modele atmospherique regional', obsolete |
---|
| 31 | phydev: 'physics that does nothing but does it well' |
---|
| 32 | |
---|
| 33 | phy_common: common routines to all physics |
---|
| 34 | (different modules for parallelism, abort_physics, geometry, |
---|
| 35 | getin wrapper, ...) |
---|
| 36 | |
---|
| 37 | dynphy_lonlat: contains the dynamics/physics interface |
---|
| 38 | with at a first level common routines to all physics |
---|
| 39 | and dedicated specific routines for each physics |
---|
| 40 | (e.g., call physics + physics initialization) in a |
---|
| 41 | subdirectory of the same name as the physics package's |
---|
| 42 | (phylmd, phydev, ...). |
---|
| 43 | In addition the subdirectory stores main programs, |
---|
| 44 | other than the gcm, which require access to both physics |
---|
| 45 | and dynamics routines |
---|
| 46 | (e.g. to generate initial states, such as ce0l). |
---|
| 47 | Note that if a physics package name is an extension of |
---|
| 48 | an already existing physics package (e.g. phylmdiso and |
---|
| 49 | phylmd) then they share the same interface (phylmd here). |
---|
| 50 | |
---|
| 51 | phy*/dyn1d: the 1D model (and links to some required dyn3d/* routines) |
---|
| 52 | |
---|
| 53 | misc (misceallenous): dynamics and physics independent routines which can be |
---|
| 54 | used by either but rely on neither |
---|
| 55 | (e.g. random number generator, |
---|
| 56 | tridiagonal matrix solver, NetCDF function wrappers, |
---|
| 57 | CRAY-specific routines, ...) |
---|
| 58 | |
---|
| 59 | obsolete: obsolete code not used anymore but moved and stored here for an |
---|
| 60 | easy quick look. |
---|
| 61 | |
---|
| 62 | 11/10/2021 |
---|
| 63 | |
---|
| 64 | |
---|
| 65 | |
---|
| 66 | |
---|