The Fortran conventions that the author of the code in this directory aspired to are as follows: - Module names are prefixed by the static library name, in this case "radiation" (no need to suffix by "_mod" since this is always obvious from the context) - Names of derived types are suffixed by "_type" - Implicit none everywhere - Logicals are prefixed by "do_", "use_" or "is_" - All variables in SI units by default - Variables not in SI units have the units in the variable name, e.g. pressure_hPa - Integers either prefixed by "j" to indicate loop counter, "n" to indicate the size of an array dimension, or "i" otherwise. - Loop counters should be brief and contain no underscores - Integers variables beginning with "n" or "i" should either contain no underscores (e.g. "naerosoltypes"), or should have an underscore immediately after the "n" or "i" (e.g. "n_aerosol_types"). Thus, a variable beginning with "n" or "i" containing an underscore but not as its second character need not be an integer (would normally then be a real or a derived type), in order to enable real variables such as "ice_water_content". - All variables and procedure names in lower case using descriptive names, and if not too long these will be composed of complete words separated by underscores - All parameters are in CamelCase, and integer parameters are prefixed by "I" or "N" - C-style enumerations are treated as integer parameters - Variable character strings are suffixed by "_name" or "_str", while parameter character strings (in CamelCase) are suffixed by "Name" or "Str" - Global data included in modules must be constant; any variable data must be passed to procedures via dummy arguments - Long argument lists avoided by grouping variables thematically into derived types - Any variable used in a source file should be defined in a comment earlier in the source file (if this is not obvious from the variable name) including its units if it has them (even if they are SI units) - All functions and subroutines to be defined in modules and their explicit interfaces to be revealed via the "use" command, which should use "only". - Data are read in at run-time from NetCDF files rather than being embedded in the code (e.g. using data statements). - Lots of comments!