A significant feature of FTN95 is its ability to implement a range of powerful run-time checks that help the programmer to develop error free code. The options in this group direct the compiler to plant code that carries out these checks. /CHECKMATE (which is the same as /FULL_UNDEF) provides comprehensive checking and is recommended for normal development.
/BREAK
Win32 only. Implies both /CHECK and /LGO and
causes a break to the symbolic debugging facility at the first executable
statement.
/BOUNDS_CHECK
Check array subscripts only (/CHECK includes /BOUNDS_CHECK).
/CHECK more...
Causes code to be planted in order to enable the run-time checking of array
bounds, overflow etc., and also to enable the use of the source-level debugging
facilities (/CHECK implies /DEBUG).
/CHECKMATE
A synonym for /FULL_UNDEF. /FULL_UNDEF implies /UNDEF which in turn implies
/CHECK.
/CHECK_ALIAS more...
Provides runtime checking for aliased arguments when used with /CHECK.
/DEBUG
causes FTN95 to generate symbolic information and to activate the symbolic
debugger when fatal errors occur. /DEBUG is included in both /CHECK and /UNDEF
which are normally preferred. /DEBUG can be used on its own in order to allow
the debugger to be used on "dirty" code, which intentionally violates some of
the rules of Fortran.
/FULL_DEBUG
Outputs full debugging information including PARAMETERs
/FULL_UNDEF
Like /UNDEF but also INTENT(OUT) arguments are initialised as undefined on
entry to a procedure (see /INHIBIT_CHECK to switch this off) and by
default character variables are initialised as undefined. The reading of an
undefined value precipitates an error condition.
/INHIBIT_CHECK <integer>
Prevent the specified check being added with /CHECK and /FULL_UNDEF as follows:
1 - suppress marking DO-loop indices as unwritable in a function call
2 - suppress marking INTENT(IN) arguments as unwritable in a function call
3 - suppress POINTER checking partially
4 - suppress POINTER checking completely
5 - suppress the argument type/size checking on function entry
6 - suppress the extra information added to a CHECK mode function call
7 - suppress CHARACTER length checks on procedure entry
8 - suppress UNDEF check with WRITE/PRINT statements
9 - suppress FULL_UNDEF check with CHARACTER WRITE/PRINT statements
10 - suppress checking of overwriting of DO-loop index using "(Writability of
...)"
11 - suppress checking of overwriting of DO-loop index after SUBROUTINE call
using "(Value of ...)"
12 - suppress checking of overwriting of DO-loop index after FUNCTION call
using "(Value of ...)"
13 - suppress checking of overwriting of EQUIVALENCEd/COMMON DO-loop index
after assignment using "(Value of ...)"
14 - suppress FULL_UNDEF check with INTENT(OUT)
15 - same as item 5 but only for module procedures
16 - spare
17 - suppress a recursion check (64 bit only)
18 - suppress argument alias checking (cancels /CHECK_ALIAS)
19 - suppress array conformance checking
20 - suppress array bounds checking (simple
arrays not array sections)
/SUPPRESS_ARG_CHECK
Suppresses /CHECK mode checking for argument consistency across routines.
/UNDEF more...
Implies /CHECK and also causes code to be planted in order to do run-time
checking for any undefined variables or array elements.