source: LMDZ6/branches/LMDZ-ECRAD/libf/phylmd/ecrad/CONVENTIONS @ 3880

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

Online implementation of the radiative transfer code ECRAD in LMDZ.

  • Inclusion of the ecrad directory containing the sources of the ECRAD code
  • Adaptation of compilation scripts (CPP_ECRAD keys)
  • Call of ecrad in radlwsw_m.F90 under the logical key iflag_rrtm = 2
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.