F95(L) F95(L) NNAAMMEE ff9955 - Fortran 95 compiler UUSSAAGGEE ff9955 [option] ... _[_f_i_l_e_]... DDEESSCCRRIIPPTTIIOONN ff9955 is the NAGWare Fortran 95 compiler. It translates programs written in Fortran 77, Fortran 90 or Fortran 95 into executable programs, relocatable binary modules, assembler source files or C source files. The suffix of a filename determines the action ff9955 per- forms upon it. Files ending in ..ff9900 or ..ff9955 are taken to be Fortran 90/95 free form source files, files ending in ..ff ,, ..ffoorr or ..ffttnn are taken to be Fortran 90/95 fixed form (or Fortran 77) source files. Files ending in ..FF9900 or ..FF9955 are taken to be free source form files requiring pre- processing by fpp, files ending in ..FF are taken to be fixed source form files requiring preprocessing by fpp. The file list may contain filenames of any form. If a filename without a suffix is provided and there is no file of that name, f95 will look for a file with the suf- fix ".f95", and if that does not exist, the suffix ".f90". Modules and include files are expected to exist in the current working directory or in a directory named by the _-_I option. Options not recognised by f95 are passed to the load phase (cc or gcc). OOPPTTIIOONNSS --113322 Increase the length of each fixed source form input line from 72 characters to 132 characters. This has no effect on free source form input. --bbcc==_2_._0 Operate in backward compatibility mode. In this mode the compiler is compatible with NAGWare f90 release 2.0 or 2.0a (normally it is compatible with NAGware f90 releases 2.1 and 2.2). --BB_b_i_n_d_i_n_g Specify _d_y_n_a_m_i_c or _s_t_a_t_i_c binding (Sun only). This only has effect if specified during the link step. --cc Compile only (produce .o file for each source file), do not link the .o files to produce an executable file. --CC Compile code with all possible runtime checks. This option is a synonym for _-_C_=_a_l_l. --CC==_c_h_e_c_k Compile checking code according to the value of _c_h_e_c_k, which must be one of: aallll (perform all checks), aarrrraayy (check array bounds), ccaallllss (check procedure references), ddoo (check DO loops for zero step values), nnoonnee (do no checking: this is the default), pprreesseenntt (check OPTIONAL references), or ppooiinntteerr (check POINTER references). --DD_n_a_m_e Defines _n_a_m_e to fpp as a preprocessor variable. This is equivalent to passing the _-_D option directly to fpp, and only affects .F, .F90 and .F95 files. --ddccffuunnss Enable recognition of non-standard double preci- sion complex intrinsic functions. These act as specific versions of the standard generic intrinsics as follows: Specific Equivalent Fortran 90/95 Generic Intrinsic Function CDABS(A) ABS(A) DCMPLX(X,Y) CMPLX(X,Y,KIND=KIND(0d0)) DCONJG(Z) CONJG(Z) DIMAG(Z) AIMAG(Z) DREAL(Z) REAL(Z) or DBLE(Z) --ddrryyrruunn Show but do not execute commands constructed by the compiler driver. --dduussttyy Allows the compilation and execution of "legacy" software by downgrading the category of common errors found in such software from "Error" to "Warning" (which may then be suppressed entirely with the _-_w option). This option disables _-_C_=_c_a_l_l_s, and also enables Hollerith i/o (see the _-_h_o_l_l_e_r_i_t_h___i_o option. --FF Preprocess all .F, .F90 and .F95 files producing .f, .f90 and .f95 output; no compilation is done. --ff7777 Make external linkages compatible with the native f77 compiler where possible. On AIX, HP- UX and VMS, this suppresses the trailing under- score for those external names that do not clash with C language keywords or library functions. --ffiixxeedd Interpret all Fortran source files according to fixed-form rules. --ffllooaatt--ssttoorree (Gnu C based systems only) Do not store float- ing-point variables in registers on machines with floating-point registers wider than 64 bits. This can avoid problems with excess pre- cision. --ffrreeee Interpret all Fortran source files according to free-form rules. --gg Produce information for interactive debugging by the host system debugger. Implies _-_O_0. --gg9900 Compile for debugging by _d_b_x_9_0, the Fortran-90 aware front-end to dbx. This produces a debug information (.g90) file for each Fortran source file. This option may be unavailable on some implementations. --ggcc Enables automatic garbage collection of the exe- cutable program. --gglliinnee Compile code to produce line number information in runtime error messages (note that this affects most, but not all, runtime error mes- sages). This option increases both executable file size and execution time. --hhoolllleerriitthh__iioo Enable Fortran-66 compatible input/output of character data stored in numeric variables using the A edit descriptor. This was superseded by the CHARACTER datatype in Fortran 77. --hhppff Accept the extensions to Fortran specified by the High Performance Fortran Forum in HPF 1.0. These consist of the EXTRINSIC keyword and a large number of compiler directives. The com- piler directives are checked for correctness but have no effect on compilation. --II _p_a_t_h_n_a_m_e Add _p_a_t_h_n_a_m_e to the list of directories which are to be searched for module information (.mod) files and INCLUDE files. The current working directory is always searched first, then any directories named in _-_I options, then the com- piler's library directory (usually /usr/local/lib/NAGWare or /opt/NAGWare/lib). --iieeeeee==_m_o_d_e Set the mode of IEEE arithmetic operation according to _m_o_d_e, which must be one of ffuullll, nnoonnssttdd or ssttoopp. _-_i_e_e_e_=_f_u_l_l enables all IEEE arithmetic facilities including non-stop arithmetic. _-_i_e_e_e_=_n_o_n_s_t_d disables IEEE gradual underflow, pro- ducing zero instead of a denormalised number; the resulting program may run faster. Non-stop arithmetic is also disabled, terminating execution on floating overflow, divide by zero or invalid operand. _-_i_e_e_e_=_s_t_o_p enables all IEEE arithmetic facilities except for non-stop arithmetic; execu- tion will be terminated on floating overflow, divide by zero or invalid operand. On DEC Alpha running Digital UNIX, the _-_i_e_e_e option must be specified when compiling all pro- gram units. On other machines and operating systems, the _-_i_e_e_e option must be specified when compiling the main program unit, and its effect is global. The default mode is _-_i_e_e_e_=_s_t_o_p. --iinnffoo Request output of information messages. The default is to suppress these messages. --kkiinndd==_o_p_t_i_o_n Specify the kind numbering system to be used; _o_p_t_i_o_n must be one of bbyyttee or sseeqquueennttiiaall. For _-_k_i_n_d_=_b_y_t_e, the kind numbers for INTEGER, REAL and LOGICAL will match the number of bytes of storage (e.g., default REAL is 4 and DOUBLE PRECISION is 8). Note that COMPLEX kind numbers are the same as its REAL components, and thus half of the total byte length in the entity. For _k_i_n_d_=_s_e_q_u_e_n_t_i_a_l (the default), the kind num- bers for all datatypes are numbered sequentially from 1, increasing with precision (e.g., default REAL is 1 and DOUBLE PRECISION is 2). This option does not affect the interpretation of byte-length specifiers (an extension to For- tran 77). --ll_x Load with library lib_x.a. The loader will search for this library in the directories spec- ified by -L_d_i_r options followed by the normal system directories (see the ld(1) command). --LL_d_i_r Add _d_i_r to the list of directories for library files (see the ld(1) command). --MM Produce module information files (.mod files) only. --mmaaxxccoonnttiinn==_N Increase the limit on the number of continuation lines to _N. The default, as specified by the Fortran standard, is 19 for fixed source form and 39 for free source form. This option will not decrease the limit below the standard num- ber. --mmddiirr _d_i_r Write any module information (.mod) files to directory _d_i_r instead of the current working directory. --mmiissmmaattcchh Downgrade consistency checking of procedure argument lists so that mismatches produce warn- ing messages instead of error messages. This only affects calls to a routine which is not in the current file; calls to a routine in the file being compiled must still be correct. This option disables _-_C_=_c_a_l_l_s. --mmiissmmaattcchh__aallll Further downgrade consistency checking of proce- dure argument lists so that calls to routines in the same file which are incorrect will produce warnings instead of error messages. This option disables _-_C_=_c_a_l_l_s. --nnoommoodd Suppress module information (.mod) file produc- tion. --nnooqquueeuuee If no licence for the compiler is immediately available, exit with an error instead of queue- ing for it. --oo _o_u_t_p_u_t Name the output file _o_u_t_p_u_t instead of a.out. This may also be used to specify the name of the output file produced under the _-_c and _-_S options. --OO Normal optimisation, equivalent to _-_O_2. --OO_N Set the optimisation level to _N. The optimisa- tion levels are: --OO00 No optimisation. This is the default, and is the only optimisation level com- patible with debugging. --OO11 Minimal quick optimisation. --OO22 Normal optimisation. --OO33 Further optimisation. --OO44 Maximal optimisation. --OOaassssuummeedd This is a synonym for _-_O_a_s_s_u_m_e_d_=_c_o_n_t_i_g. --OOaassssuummeedd==_s_h_a_p_e Optimises assumed-shape array dummy arguments according to the value of _s_h_a_p_e, which must be one of aallwwaayyss__ccoonnttiigg Optimised for contiguous actual argu- ments. If the actual argument is not contiguous a runtime error will occur (the compiler is not standard-conforming under this option). ccoonnttiigg Optimised for contiguous actual argu- ments; if the actual argument is not con- tiguous (i.e. it is an array section) a contiguous local copy is made. This may speed up array section accessing if a sufficiently large number of array ele- ment or array operations is performed (i.e. if the cost of making the local copy is less than the overhead of discon- tiguous array accesses), but usually makes such accesses slower. Note that this option does not affect dummy argu- ments with the TARGET attribute; these are always accessed via the dope vector. sseeccttiioonn Optimised for low-moderate accesses to array section (discontiguous) actual arguments. This is the default. Note that CHARACTER arrays are not affected by these options. --OObblloocckk==_N Specify the dimension of the blocks used for evaluating the MATMUL intrinsic. The default value (only when _-_O is used) is 30, i.e. the arguments are processed in 30x30 blocks. --OOuunnrroollll==_N Specify the depth to which simple loops and array operations should be unrolled. The default is no unrolling (i.e. a depth of 1) for _-_O_0 and _-_O_1, and a depth of 2 for _-_O and higher optimisation levels. It can be advantageous to disable f95's loop unrolling if the C compiler normally does a very good job itself - this can be accomplished with _-_O_u_n_r_o_l_l_=_1. --OOuunnssaaffee Perform possibly unsafe optimisations that may depend on the numerical stability of the pro- gram. --ppgg Compile code to generate profiling information which is written at run-time to an implementa- tion-dependent file (normally _g_m_o_n_._o_u_t or _m_o_n_._o_u_t _)_. An execution profile may then be generated using _g_p_r_o_f (on Apollo, Sun and IBM Risc System), or _p_r_o_f (on DECstations and SGI). This option may be unavailable on some implemen- tations. --QQppaatthh _p_a_t_h_n_a_m_e Change the f95 compiler library pathname from the default (usually /usr/local/lib/NAGWare or /opt/NAGWare/lib) to _p_a_t_h_n_a_m_e _. --rr88 Double the size of default REAL/COMPLEX, and on machines for which quadruple-precision REAL/COM- PLEX are available, double the size of DOUBLE PRECISION. REAL/COMPLEX specified with explicit KIND numbers or byte lengths are unaffected - but since the KIND intrinsic returns the correct values, COMPLEX(KIND(0d0)) on a machine with quad-precision floating-point will correctly select quad-precision COMPLEX. This has no effect on INTEGER sizes, and so the compiler is not standard-conforming in this mode. --ss Strip symbol table information from the exe- cutable file. This option is passed to ld so only has effect during the link step. --SS Produce assembler (actually C source code). The resulting .c file should be compiled with the f95 command, not with the C compiler directly. --ssaavvee This is equivalent to inserting the SAVE state- ment in all subprograms which are not declared RECURSIVE, thus causing all local variables in such subprograms to be statically allocated. --ssttrriicctt9955 Produce obsolescence warning messages for use of "CHARACTER*" syntax. This message is not pro- duced by default since most programs contain this syntax. --ttaarrggeett==_m_a_c_h_i_n_e Specify the machine for which code should be generated and optimised. For Sun/SPARC, _m_a_c_h_i_n_e may be one of V7 SPARCstation 1 et al. V8 SPARCstation 2 et al. super SuperSPARC ultra UltraSPARC native the current machine The default is to compile for SPARC V7. Note that programs compiled for later versions of the architecture may not run, or may run much more slowly, on an earlier machine. The _-_t_a_r_- _g_e_t_=_s_u_p_e_r and _-_t_a_r_g_e_t_=_u_l_t_r_a options do not work with Sun C prior to SC4.0. The _-_t_a_r_g_e_t_=_n_a_t_i_v_e option is not available with GCC. For SGI/Irix 5, _m_a_c_h_i_n_e may be one of mips1 R2000/R3000. mips2 R4000 or later. Code thus produced will not run on R2000/R3000-based machines. The default is to compile for R2000/R3000. For Digital Alpha Unix, _m_a_c_h_i_n_e may be one of ev4, ev5, ev56, pca56 the specified evolution of the Alpha chip native the current machine. For HP9000/700, _m_a_c_h_i_n_e may be one of native the current machine 1.0, 1.1, 1.1a, 1.1b, 1.1c, 1.1d, 1.1e, 2.0 the specified revision of the PA-RISC architecture. --tteemmppddiirr _d_i_r_e_c_t_o_r_y Set the directory used for temporary files to _d_i_r_e_c_t_o_r_y. The default is to use the directory named by the TMPDIR environment variable, or if that is not set, /tmp. --ttiimmee Report execution times for the various compila- tion phases. --uu Specify that IMPLICIT NONE is in effect by default, unless overridden by explicit IMPLICIT statements. --uunnsshhaarreeddff9955 Bind with the unshared (static) version of the f95 runtime library; this allows a dynamically linked executable to be run on systems where the NAGWare f95 compiler is not installed. This option is only effective if specified during the link step. --vv Verbose. Print the name of each file as it is compiled. --VV Print version information about the compiler. --ww Suppress all warning messages. This option is a synonym for _-_w_=_a_l_l. --ww==_c_l_a_s_s Suppress the warning messages specified by _c_l_a_s_s, which must be one of aallll, oobbss, xx7777 or xx9955. _-_w_=_a_l_l suppresses all warning messages. _-_w_=_o_b_s suppresses warning messages about the use of obsolescent features. _-_w_=_x_7_7 suppresses extension warnings for com- mon extensions to Fortran 77. These are TAB format, byte-length specifiers and Hollerith constants. _-_w_=_x_9_5 suppresses extension warnings for extensions to Fortran 95 (currently just the HPF extensions). --WW_o_p_t_i_o_n_s The _-_W option can be used to specify the path to use for a compilation component or to pass an option directly to such a component. The possi- ble combinations are: --WW00==_p_a_t_h Specify the path used for the Fortran 95 front-end. Note that this does not affect the library directory; the _-_Q_p_a_t_h option should be used to specify that. --WWcc==_p_a_t_h Specify the path to use for invoking the C compiler; this is used both for the final stage of compilation and for load- ing. --WWcc,,_o_p_t_i_o_n Pass _o_p_t_i_o_n directly to the host C com- piler when compiling (producing the .o file). Multiple options may be specified in a single _-_W_c_, option by separating them with commas. --WWll==_p_a_t_h Specify the path to use for invoking the loader (producing the executable). --WWll,,_o_p_t_i_o_n Pass _o_p_t_i_o_n directly to the host C com- piler when loading (producing the exe- cutable). Multiple options may be specified in a single _-_W_l_, option by sep- arating them with commas. --WWpp==_p_a_t_h Specify the path to use for invoking the fpp preprocessor. --WWpp,,_o_p_t_i_o_n Pass _o_p_t_i_o_n directly to fpp when prepro- cessing (only for .F, .F90 and .F95 files). --xxlliicciinnffoo Report on the availability of licences for the compiler instead of compiling anything. --xxss (Sun/SPARC option only) Store symbol tables for dbx in the executable (avoids the need to keep the object files for debugging). FFIILLEESS aa..oouutt Executable output file _f_i_l_e..aa Library of object files _f_i_l_e..cc C source file _f_i_l_e..ff Fixed-form Fortran 90/95 or FORTRAN 77 source file _f_i_l_e..ff9900 Free-form Fortran 90/95 source file _f_i_l_e..ff9955 Free-form Fortran 90/95 source file _m_o_d_u_l_e_-_n_a_m_e..mmoodd Compiled module information file _f_i_l_e..oo Object file //oopptt//NNAAGGWWaarree//lliibb NAGWare library directory on Sun Solaris (may be changed by --QQppaatthh); referred to as _l_i_b_r_a_r_y hereafter. //uussrr//llooccaall//lliibb//NNAAGGWWaarree NAGWare library directory on other machines and operating systems. _l_i_b_r_a_r_y_/**..mmoodd Compiled library module files (sup- plied by NAG) _l_i_b_r_a_r_y_/ddooppee..hh Dope vector header file _l_i_b_r_a_r_y_/ff9955..hh Runtime library header file _l_i_b_r_a_r_y_/ff9955ccoommpp Fortran 95 compiler _l_i_b_r_a_r_y_/ff9900__iioossttaatt..ff9900 Source code of F90_IOSTAT module _l_i_b_r_a_r_y_/ff9900__kkiinndd..ff9900 Source code of F90_KIND module _l_i_b_r_a_r_y_/ff9900__uuttiill..ff9900 A sample Fortran 90 program that dis- plays implementation-specific informa- tion _l_i_b_r_a_r_y_/ggcc..oo Garbage collector _l_i_b_r_a_r_y_/lliibbff9955..aa Runtime library _l_i_b_r_a_r_y_/lliibbuuff9955..aa Runtime library used by _-_b_c_=_2_._0 option _l_i_b_r_a_r_y_/uunnpprrootteecctt..hh Header file for _-_b_c_=_2_._0 option _l_i_b_r_a_r_y_/bbyytteess//**..mmoodd Library module files compiled with the _-_b_y_t_e___k_i_n_d_s option _l_i_b_r_a_r_y_/bbcc2200//**..mmoodd Library module files compiled with the _-_b_c_=_2_._0 option NNoottee:: On machines with the length of filenames restricted to less than 36 characters module information for some mod- ules will be stored in files with different names. The supplied Technical Information note (TECHINFO) contains details if applicable. DDIIAAGGNNOOSSTTIICCSS The diagnostics produced by f95 itself are intended to be self-explanatory. The loader, or more rarely the host C compiler, may produce occasional diagnostics. Messages produced by the compiler are classified by sever- ity level; these levels are: Info informational message, noting an aspect of the source code in which the user may be interested. Warning some questionable usage has been found in the user's code which may indicate a programming error. Extension some non-standard-conforming code has been detected but has successfully been compiled as an extension to the language. This has the same severity as "warning". Obsolescent some archaic code has been detected which although standard-conforming was classified as obsolescent by the Fortran 95 standard. This has the same severity as "warning". Deleted feature used a feature that was present in Fortran 90 but deleted from the Fortran 95 standard was used. This has the same severity as "warning". Error the source code does not conform to the Fortran standard or does not make sense. Compilation continues after recovery. Fatal a serious error in the user's program from which the compiler cannot recover, the compilation is aborted immediately. Panic an internal inconsistency is found by one of the compiler's self-checks; this is a bug in the compiler itself and NAG should be notified. CCOOMMPPIILLEERR LLIIMMIITTSS Maximum INCLUDE file nesting = 20 Maximm number of INCLUDE file references per compilation = 2047 Maximum DO loop nesting level = 199 Maximum CASE construct nesting level = 30 Maximum DATA-implied-DO loop nesting = 20 Maximum array-constructor-implied-DO loop nesting = 20 Maximum number of dummy arguments = 32767 Maximum number of arguments to MIN and MAX = 20 II//OO UUNNIITTSS SSttaannddaarrdd II//OO UUnniittss Error output = 0 Input = 5 Output = 6 DDeeffaauulltt RReeccoorrdd LLeennggtthhss Formatted = 1024 characters Unformatted = 65536 bytes AAUUTTOOMMAATTIICC FFIILLEE PPRREECCOONNNNEECCTTIIOONN All logical unit numbers are automatically preconnected to specific files. These files need not exist and will only be opened or created if they are accessed with READ or WRITE without an explicit OPEN. By default the specific filename for unit _n is ffoorrtt.._n; however if the environment variable FFOORRTT_n_n exists its value is used as the filename. Note that there are two digits in this variable name, e.g. the variable controlling unit 1 is FFOORRTT0011 (unless the pre- fix has been changed, see the description of module FF9900__PPRREECCOONNNN__IIOO). However the default filename for unit 1, if no environment variable exists, is "ffoorrtt..11". A file preconnected in this manner is opened with AACCCCEESSSS==''SSEEQQUUEENNTTIIAALL''. If the initial READ or WRITE is an unformatted i/o statement, it is opened with FFOORRMM==''UUNNFFOORR-- MMAATTTTEEDD'' other it is opened with FFOORRMM==''FFOORRMMAATTTTEEDD''. By default (see module FF9900__PPRREECCOONNNN__IIOO) a formatted connection is opened with BBLLAANNKK==''NNUULLLL'' and PPOOSSIITTIIOONN==''RREEWWIINNDD''. Automatic preconnection applies only to the initial use of a logical unit; once CLOSEd the unit will not be recon- nected automatically but must be explicitly OPENed. Note that this facility means that it is possible for a READ or WRITE statement with an IIOOSSTTAATT== clause to receive an i/o error code associated with the implicit OPEN. IIEEEEEE 775544 AARRIITTHHMMEETTIICC SSUUPPPPOORRTT If no floating-point option is specified, any floating divide-by-zero, overflow or invalid operand exception will cause the execution of the program to be terminated (with an informative message and, on Unix, a core dump). Occur- rence of floating underflow may be reported on normal termination of the program. On hardware supporting IEEE 754 standard arithmetic gradual underflow with denor- malised numbers will be enabled. Note that this mode of operation is the only one available on hardware which does not support IEEE 754. If the _-_i_e_e_e_=_f_u_l_l option is specified, non-stop arithmetic is enabled; thus REAL variables may take on the values +Infinity, -Infinity and NaN (Not-a-Number). If any of the floating exceptions listed above are detected by the hardware during execution, this fact will be reported on normal termination. The _-_i_e_e_e_=_f_u_l_l option must be speci- fied when compiling the main program and has global effect; that is, it affects the entire executable program. If the _-_i_e_e_e_=_n_o_n_s_t_d option is specified, floating-point exceptions are handled in the default manner (i.e. execu- tion is terminated). However, gradual underflow is nnoott enabled, so results which would have produced a denor- malised number produce zero instead. This option can only be used on hardware for which this mode of operation is faster. On most such machines it must be specified when compiling the main program and has global effect (like _-_i_e_e_e_=_f_u_l_l); however, on Digital UNIX (DEC Alpha) it only has full effect if used when compiling all program units - this is because on the Alpha architecture different (slower) code must be generated for arithmetic which is capable of producing denormalised numbers. RRAANNDDOOMM__NNUUMMBBEERR The random number generator supplied as the intrinsic sub- routine RANDOM_NUMBER is the "good, minimal standard" gen- erator described in "Random Number Generators: Good Ones Are Hard to Find" [CACM October 1988, Volume 31 Number 10, pp 1192-1201]. This is a parametric multiplicative linear congruential algorithm with the following parameters: modulus: 2**31-1 (2147483647) multiplier: 16807 This is a full-period generator. The seed is obtained from the time-of-day clock; viz time*16807+1 where "time" is the number of seconds past midnight. AAUUTTOOMMAATTIICC GGAARRBBAAGGEE CCOOLLLLEECCTTIIOONN The _-_g_c option enables use of the runtime garbage collec- tor. It is necessary to use this option during the link phase for it to have effect; specifying it additionally during the compilation phase can result in improved per- formance. The supplied Technical Information note (TECHINFO) lists whether garbage collection is available for your system. If it is available, there will be a file "gc.o" in the compiler's library directory. The collector used is based on version 4.11 of the pub- licly available general purpose garbage collecting storage allocator of Hans-J Boehm, Alan J Demers and Xerox Corpo- ration, described in "Garbage Collection in an Uncoopera- tive Environment" (H Boehm and M Weiser, Software Practice and Experience, September 1988, pp 807-820). The copyright notice attached to their latest version is as follows: Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers Copyright (c) 1991-1996 by Xerox Corporation. All rights reserved. Copyright (c) 1996 by Silicon Graphics. All rights reserved. THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WAR- RANTY EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK. Permission is hereby granted to use or copy this program for any purpose, provided the above notices are retained on all copies. Permission to modify the code and to distribute modified code is granted, provided the above notices are retained, and a notice that the code was modified is included with the above copyright notice. Note that the "NO WARRANTY" disclaimer refers to the orig- inal copyright holders Boehm, Demers, Xerox Corporation and Silicon Graphics. The modified collector distributed in binary form with the NAGWare f95 compiler is subject to the same warranty and conditions as the rest of the NAG- Ware f95 compilation system. The module FF9900__GGCC is provided; it contains functions and variables that can control the behaviour of the garbage collector. DDEEBBUUGGGGIINNGG For details on the Fortran-90-aware debugger see dbx90(1). This may not be available on some systems. In general, host system debuggers, such as dbx, may be used successfully on Fortran code as the names of the original source files, plus line numbers, are passed through to the intermediate C files. In using such debug- gers it should be noted that most local variables have an underscore appended to their names. It may be useful to look at the intermediate C code when debugging; this is produced by the -S option. MMOODDUULLEESS To use a module it must be pre-compiled, or must be defined in the file prior to its use. When separately compiling a module the _-_c option should be specified. Compiling a module creates a `.mod' file and usually a `.o' file. The `.mod' file is used by the compiler at compile time to provide information about module contents, the `.o' file (if generated) contains the code of any mod- ule procedures and must be specified when creating an exe- cutable file. Note that the name of the `.mod' file will be the name of the module, the `.o' file will be named after the original source file. When a precompiled module is USEd the f95 compiler attempts to find its source file and, if that is success- ful, checks the modification times producing a warning message if the `.mod' file is out of date. NAG-supplied modules are described in the man page nag_modules. SSEEEE AALLSSOO aarr(1), cccc(1V), ff7777(1V), ff9900__ggcc(3), ff9900__iioossttaatt(3), ff9900__kkiinndd(3), ff9900__pprreeccoonnnn__iioo(3), ff9900__uunniixx(3), ff9900__uunniixx__ddiirr(3), ff9900__uunniixx__ddiirreenntt(3), ff9900__uunniixx__eennvv(3), ff9900__uunniixx__eerrrrnnoo(3), ff9900__uunniixx__ffiillee(3), ff9900__uunniixx__pprroocc(3), iieeeeee__aarriitthhmmeettiicc(3), iieeeeee__eexxcceeppttiioonnss(3), iieeeeee__ffeeaattuurreess(3), lldd(1), nnaagg__mmoodduulleess(3). BBUUGGSS Please report any bugs found to "infodesk@nag.co.uk" or "infodesk@nag.com", along with any suggestions for improvements. AAUUTTHHOORR Malcolm Cohen, The Numerical Algorithms Group Ltd., Oxford, United Kingdom. F95(L)