Coding norms 2011 rules¶
- R1 : Encapsulation rules
- R2 : Subroutine length
- R3 : Cosmetic changes
- R4 : Unused variables
- R5 : Variable name suffixes
- R6 : Array syntax
- R7 : Cut-n-paste
- R8 : LECMWF variable
- R9 : LELAM variable
- R10 : LFI or GRIB
- R11 : message passing
- R12 : Derived types in a module
- R13 : Code must be threadsafe
- R14 : Abnormal termination
- R15 : The save statement
- R16 : argument passing characteristics
- R17 : SELECT CASE
- R18 : include interfaces
- R19 : number of arguments to routines
- R20 : names of variables
- R21 : Name prefixes and suffixes
- R22 : Aladin routine names
- R23 : NULOUT & NULERR usage
- R24 : universal constants
- R25 : MPL string argument
- R26 : code structure and file location
- R27 : namelist usage
- R28 : DATA statement
- R29 : F90 free format
- R30 : consistent style
- R31 : no TAB usage
- R32 : IMPLICIT NONE
- R33 : no hard-coded array dimensions
- R34 : “::” notation
- R35 : mandatory KIND specification
- R36 : USE, ONLY
- R37 : PARAMETER wherever possible
- R38 : variable name prefixes
- R39 : banned statements
- R40 : no implicit array sizing
- R41 : automatic and allocatable arrays
- R42 : deallocation of allocatables
- R43 : comparison operators
- R44 : value comparisons
- R45 : argument intents are compulsory
- R46 : order of optional arguments
- R47 : ENDIF / END IF
- R48 : removal of dead code