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.