source: LMDZ6/trunk/libf/phylmd/ecrad.v1.5.1/CONVENTIONS @ 5327

Last change on this file since 5327 was 3908, checked in by idelkadi, 3 years ago

Online implementation of the radiative transfer code ECRAD in the LMDZ model.

  • Inclusion of the ecrad directory containing the sources of the ECRAD code
    • interface routine : radiation_scheme.F90
  • Adaptation of compilation scripts :
    • compilation under CPP key CPP_ECRAD
    • compilation with option "-rad ecard" or "-ecard true"
    • The "-rad old/rtm/ecran" build option will need to replace the "-rrtm true" and "-ecrad true" options in the future.
  • Runing LMDZ simulations with ecrad, you need :
    • logical key iflag_rrtm = 2 in physiq.def
    • namelist_ecrad (DefLists?)
    • the directory "data" containing the configuration files is temporarily placed in ../libfphylmd/ecrad/
  • Compilation and execution are tested in the 1D case. The repository under svn would allow to continue the implementation work: tests, verification of the results, ...
File size: 2.3 KB
Line 
1The Fortran conventions that the author of the code in this directory
2aspired to are as follows:
3
4 - Module names are prefixed by the static library name, in this case
5   "radiation" (no need to suffix by "_mod" since this is always
6   obvious from the context)
7
8 - Names of derived types are suffixed by "_type"
9
10 - Implicit none everywhere
11
12 - Logicals are prefixed by "do_", "use_" or "is_"
13
14 - All variables in SI units by default
15
16 - Variables not in SI units have the units in the variable name,
17   e.g. pressure_hPa
18
19 - Integers either prefixed by "j" to indicate loop counter, "n" to
20   indicate the size of an array dimension, or "i" otherwise.
21
22 - Loop counters should be brief and contain no underscores
23
24 - Integers variables beginning with "n" or "i" should either contain
25   no underscores (e.g. "naerosoltypes"), or should have an underscore
26   immediately after the "n" or "i" (e.g. "n_aerosol_types"). Thus, a
27   variable beginning with "n" or "i" containing an underscore but not
28   as its second character need not be an integer (would normally then
29   be a real or a derived type), in order to enable real variables
30   such as "ice_water_content".
31
32 - All variables and procedure names in lower case using descriptive
33   names, and if not too long these will be composed of complete words
34   separated by underscores
35
36 - All parameters are in CamelCase, and integer parameters are
37   prefixed by "I" or "N"
38
39 - C-style enumerations are treated as integer parameters
40
41 - Variable character strings are suffixed by "_name" or "_str", while
42   parameter character strings (in CamelCase) are suffixed by "Name"
43   or "Str"
44
45 - Global data included in modules must be constant; any variable data
46   must be passed to procedures via dummy arguments
47
48 - Long argument lists avoided by grouping variables thematically into
49   derived types
50
51 - Any variable used in a source file should be defined in a comment
52   earlier in the source file (if this is not obvious from the
53   variable name) including its units if it has them (even if they are
54   SI units)
55
56 - All functions and subroutines to be defined in modules and their
57   explicit interfaces to be revealed via the "use" command, which
58   should use "only".
59
60 - Data are read in at run-time from NetCDF files rather than being
61   embedded in the code (e.g. using data statements).
62
63 - Lots of comments!
Note: See TracBrowser for help on using the repository browser.