Compaq Fortran 77 Release Notes for OpenVMS VAX Systems
*HyperReader
|
2.3 New and Changed Features in V6.3
This section provides highlights of new and changed features
in Compaq Fortran 77 Version V6.3.
2.3.1 /ASSUME=SOURCE_INCLUDE Command Line
Keyword
The compiler now supports the /ASSUME=[NO]SOURCE_
INCLUDE command line qualifier keyword. This controls
where the compiler looks for INCLUDE files (including text
libraries) if a complete file specification is not given. The
default is NOSOURCE_INCLUDE which causes the com-
piler to look for INCLUDE files in the user's current default
device and directory. If SOURCE_INCLUDE is specified,
the device and directory of the current source file is used, a
behavior common on platforms other than OpenVMS.
For example, assume that DISK1:[JONES]PROG.FOR con-
tains the following source line:
INCLUDE 'PROG1.INC'
and that the user's current default directory is DISK2:[SMITH].
The compile command
$ FORTRAN/ASSUME=SOURCE_INCLUDE DISK1:[JONES]PROG
will cause the compiler to look for PROG1.INC in
DISK1:[JONES]. If /ASSUME=NOSOURCE_INCLUDE is
specified (or the qualifier is omitted, since that is the default),
the compiler will look for PROG1.INC in DISK2:[SMITH].
If the logical name FORT$INCLUDE is defined, it overrides
the setting of [NO]SOURCE_INCLUDE.
2.3.2 /DEBUG=PARAMETERS=NONE Command Line
Keyword
The compiler now accepts a new keyword NONE for the
/DEBUG=PARAMETERS= compile command qualifier key-
word. If NONE is specified, the compiler does not write
information about PARAMETER constants to the debug
symbol table. Other possible values are USED and ALL. Note
that if /DEBUG=NOSYMBOLS is in effect, no debug symbol
table information of any type is written.
2.3.3 /WARNINGS=[NO]INFORMATIONAL Command Line
Keyword
The compiler now accepts a new [NO]INFORMATIONAL
keyword for the /WARNINGS compile command qualifier. If
NOINFORMATIONAL is specified, compiler diagnostic mes-
sages of informational severity are not displayed. The default
is INFORMATIONAL, causing informational messages to be
displayed. Note that NOGENERAL suppresses both warn-
ing and informational messages, regardless of the setting of
[NO]INFORMATIONAL.
2.3.4 Expanded syntax for Directives
In previous versions of Digital Fortran, directives were rec-
ognized only when they began with CDEC$ or CPAR$ in
column 1. This syntax is dependent on the Fortran-77 fixed
source form. With the introduction of Fortran 90 and its free
source form, it became desirable to use directives in free-
form source which does not recognize a C in column 1 as a
comment.
Although Compaq Fortran 77 does not support free-form
source, the compiler now accepts more forms of directives so
that a source program with directives can be written such
that it is acceptable in both free-form and fixed-form.
The syntax of a directive tag is now the following sequence of
characters:
1. One of the following comment introducers:
* 'C' or 'c' or*' in column 1
* '!' in column 1 or preceded by whitespace only
2. 'DEC$' or 'PAR$' (case is ignored, PAR$ recognized only
if /PARALLEL specified)
3. A blank or tab character
The following are examples of valid directives:
CDEC$ TITLE 'title'
cdec$ TITLE 'title'
*DEC$ TITLE 'title'
!dec$ TITLE 'title'
!dec$ TITLE 'title'
The following are examples of invalid directives:
CDEC$TITLE 'title' ! No blank or tab after $
ddec$ TITLE 'title' ! D comment introducer not allowed
#dec$ TITLE 'title' ! # comment introducer not allowed
CONTINUE !DEC$ TITLE 'title' ! Non-whitespace before tag
Directives cannot be continued.
To write source code that is acceptable both as fixed-form
and free-form, follow these rules:
* Treat blanks as significant.
* Put statement labels in columns 1 through 5.
* Start statement field in column 7.
* Use only '!' as a comment introducer. Place anywhere
except in column 6.
* Use only '&' as a continuation indicator. Place it both
in column 73 of the initial line and in column 6 of the
continuation line.
* Do not use /EXTEND_SOURCE.
2.3.5 Sign Extension of Untyped Bit Constants
The compiler now properly sign-extends bit constants when
used in contexts where they are treated as INTEGER *2 or
BYTE types. For example:
BYTE X
PARAMETER (X = X'FF')
INTEGER*4 I4
I4 = X
TYPE *,I4
Previously, the result of the TYPE statement would be to
display 255, rather than -1. The compiler was not prop-
erly honoring the declared data type of the constant X and
sign-extending when assigning it to an INTEGER 4 value.
*
Although not related to this correction of behavior, it should
be noted that when context requires that a bit constant be
assigned a data type, the compiler requires that bits to be
truncated be zero; it does not do a signed conversion to a
smaller datatype. For example, given the following:
INTEGER*2 I2
I2 = X'FFFFFFFF'
the compiler will issue a "Non-zero digits truncated in
constant" warning for the assignment even though signed
conversion would be valid.
2.3.6 AND, OR, XOR, LSHIFT and RSHIFT Intrinsic
Functions Supported
The intrinsic generic functions AND, OR, XOR, LSHIFT and
RSHIFT, previously described in the DEC Fortran Language
Reference Manual as being supported on RISC and Alpha
platforms only, are now supported for VAX. Except for
RSHIFT, each of these is equivalent to an existing generic
intrinsic (IAND, IOR, IEOR, ISHFT) and are provided for
increased compatibility with other platforms. RSHIFT is
equivalent to ISHFT with a negated second argument.
2.3.7 FORSYSDEF.TLB Modules for Callable Utility
Routines
The following new modules for the OpenVMS Callable Utility
Routines are provided in SYS$LIBRARY:FORSYSDEF.TLB:
ACLEDIT$ROUTINES - Access Control List Editor
CLI$ROUTINES - Command Line Interpreter
CONV$ROUTINES - CONVERT Utility
DCX$ROUTINES - Data Compression and Expansion
EDT$ROUTINES - EDT Editor
FDL$ROUTINES - File Definition Language Editor
LBR$ROUTINES - Librarian Utility
MAIL$ROUTINES - MAIL Utility
PSM$ROUTINES - Print Symbiont Modification
Routines
SMB$ROUTINES - Symbiont Routines
TPU$ROUTINES - TPU Utility