1 06/01/80  New FORTRAN Extensions
  2 
  3 This segment describes features of the New Fortran compiler that are
  4 extensions over old_fortran.
  5 
  6 
  7  1.  The new compiler allows complex variables to be used as
  8      subscripts.  The integer part of the real portion of the complex
  9      number is used.
 10 
 11  2.  An asterisk (*) or uppercase letter c can be used to specify a
 12      comment line.  Previously available only with the -card control
 13      argument.
 14 
 15  3.  All variables are initialized to 0 if not otherwise specified.
 16      This action can be supressed if desired with the %global
 17      statement; see fort_options.gi.info for details.
 18 
 19 
 20  4.  All combinations of arithmetic operands to the exponentiation
 21      operator are allowed.  The result is of the higher of the modes
 22      used.
 23 
 24  5.  The ^ character can be used as the exponentiation operator.
 25      Previously available only with the -card control argument.
 26 
 27  6.  Equivalence statements can be mixed with other declarative
 28      statements.  The info segment new_fortran_conversions.gi.info
 29      contains a table showing the statement ordering expected by the
 30      new compiler.
 31 
 32 
 33  7.  Several program units (main program, subroutine, block data,
 34      function) can be combined to form a single source segment.  The
 35      main program, if present, must be first in the source segment.
 36 
 37  8.  All mode statements may include an optional length specification
 38      given in characters.  It is ignored for all but real and
 39      character data.  For real data, a length greater than 7 indicates
 40      double precision.
 41 
 42  9.  The save statement has been added to the language.  The save
 43      statement is used to declare variables to be of the static
 44      storage class.  Save statements and automatic statements may not
 45      both appear in a single program unit.
 46 
 47 
 48 10.  The parameter statement has been added to the language to define
 49      named constants.  This statement allows the programmer to define
 50      and use named constants anywhere in the program, except as
 51      statement labels or in format specifications.  Previously
 52      available only with the -card control argument.
 53 
 54 11.  File number 0 is associated with the terminal.  This is the file
 55      number used for all implied unit input/output statements.  The
 56      I/O switch user_input is used for input and the switch
 57      user_output is used for output.  In the Multics environment,
 58      file05 and file06 are still directed to the terminal if if they
 59      are not attached by the user.
 60 
 61 
 62 12.  The input statement has been added to the language as a read with
 63      an implied unit of 0.
 64 
 65 13.  Two new format specifications have been added to the language.
 66      S-format is used to strip off line numbers from input records;
 67      :-format is used to terminate processing an input list if no more
 68      elements are provided.
 69 
 70 14.  Several new vfile_ file types are supported.  In particular, the
 71      FORTRAN I/O system will attempt to use any existing file if it is
 72      compatible with the type of FORTRAN input/output directed at it.
 73      Thus, a sequential operation could be used to open a keyed or
 74      blocked file.  A direct access operation could be used to open
 75      either a blocked file or a keyed file.  One limitation is that
 76      formatted requests are not permitted on vfile_ sequential files.
 77 
 78 
 79 15.  A character constant may be used instead of a format statement
 80      number in input or output statements.
 81 
 82 16.  The labels in an arithmetic if statement are optional.  If a
 83      missing label is called for, the flow of control "falls through"
 84      to the next statement.  The commas must be present.  Previously
 85      available only with the -card control argument.
 86 
 87 17.  The new built-in functions, acos, asin, dacos, dasin, log, log10,
 88      dtan, and tan, have been added to the language.
 89 
 90 
 91 18.  The !  character can be used to indicate a comment.  Anything
 92      following the !  character on the same line is treated as a
 93      comment.
 94 
 95 19.  The input source may be line-numbered.  Card-image format source
 96      cannot be line-numbered.  The -line_numbers control argument is
 97      used to specify that the source segment contains line numbers.
 98 
 99 20.  The label arguments passed to a subroutine may appear in any
100      argument position.  Similarly, label parameters can appear in any
101      parameter position.  In fact, only one label parameter is
102      required in a subroutine or entry statement that expects label
103      arguments.
104 
105 
106 21.  The open and close statements have been added to the language.
107      Refer to the Fortran User's Guide, Order No.  CC70.
108 
109 22.  An optimizer is available with the new_fortran compiler.
110 
111 23.  $-format is accepted for terminal files.  $-format prevents the
112      newline character from following the output line, like ioa_$nnl
113      does.
114 
115 
116 Notes on Future Extensions:
117  1.  Character expressions will be added to the language.  This
118      includes the concatenate and substring operations.
119 
120  2.  Double precision complex data will be added to the language.
121 
122  3.  The -long_profile control argument will be added to the fortran
123      command.