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 | |
---|