Note that, before passing code through Floppy, it should have been compiled, preferably with the ANSI compiler flag, to check for errors. Otherwise, the results from using Floppy are unpredictable. Note also that non-standard Fortran statements (such as "include" directives or lower-case) are treated as comments by Floppy, and thus ignored.
Note that, if selecting individual rule numbers, 99 is taken to mean ALL
rules, and -99 to mean NO rules. Specifying a negative rule number excludes
that rule. So to check all rules except 1,5,7 and 31, you can use
The following options apply to code tidying:
The full list of rules is as follows:
* 1 Avoid comment lines after end of module
* 2 End all program modules with the END statement
* 3 Declared COMMON blocks must be used in the module
* 4 COMPLEX and DOUBLEPRECISION vars at end of COMMON
* 5 COMMON block definitions should not change
* 6 Variable names should be 6 or fewer characters long
7 Variables in COMMON should be 6 characters long
8 Variables not in COMMON should be <6 characters
* 9 Integer variables should begin with I to N
* 10 Variable names should not equal FORTRAN keywords
* 11 Avoid comment lines before module declaration
* 12 Module names should not equal intrinsic functions
* 13 First statement in a module should be declaration
* 14 Module should begin with at least 3 comment lines
15 Comment lines should begin with a C
* 16 No comment lines between continuations
* 17 Avoid non-standard variable types eg INTEGER*2
* 18 Avoid multiple COMMON definitions per line
* 19 Do not dimension COMMON variables outside COMMON
* 20 Avoid embedded blanks in variable names
* 21 Avoid embedded blanks in syntactic entities
* 22 Avoid the use of PRINT statements (use WRITE)
23 Do not give the END statement a label
* 24 Avoid WRITE(* construction
25 Avoid WRITE statement in a FUNCTION
* 26 Avoid the use of PAUSE statements
* 27 Statement labels should not begin in column 1
* 28 Always preceede STOP by a descriptive WRITE
* 29 Avoid the use of ENTRY in FUNCTIONS
* 30 Avoid using I/O in FUNCTIONs
31 Avoid the use of the alternate RETURN statement
* 32 COMMON block names should not equal variable names
* 33 Avoid use of obsolete CERN library routines
34 Avoid FUNCTION names the same as intrinsics
* 35 Local functions should be declared EXTERNAL
* 36 Module names should all be different
* 37 Avoid expressions of mixed mode eg A=B/I
* 38 Length of passed CHARACTER variables should be *
* 39 Order of statements should conform !
* 40 Separate Statement Functions by comment lines
* 41 No names in Statement Function definitions elsewhere
42 Use LLT,LGT etc to compare CHARACTER vars. in IFs
43 Variables (not COMMON, not PARAMs) <6 characters
* 44 Passed arguments should be dimensioned * in module