File: f77.html

package info (click to toggle)
ftnchek 2.11.2-2
  • links: PTS
  • area: main
  • in suites: potato
  • size: 5,392 kB
  • ctags: 2,790
  • sloc: ansic: 21,570; fortran: 2,921; yacc: 2,794; sh: 1,623; makefile: 693; lisp: 264; awk: 163
file content (262 lines) | stat: -rw-r--r-- 9,761 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
<HTML>
<HEAD>
<TITLE>Option: f77</TITLE>
</HEAD>
<BODY>
<A HREF="toc.html">Table of Contents</A><P>
<P>Previous: <A HREF="extern.html">-extern</A><HR><P>
<H2>Option: <font color=#FF0080>f77</font></H2><P>
<A NAME="f77"></A><DT><B><A HREF="f77.html">-f77</A>=</B><I>list</I>  </DT>
<DD>Use this setting to catch language extensions which violate 
the Fortran 77 Standard.  Such extensions may cause your program not to 
be portable.  Examples include the use of underscores in variable names; 
variable names longer than six characters; statement lines longer than 
72 characters; and nonstandard statements such as the DO  ... ENDDO  structure. 
 <B>ftnchek </B> does not report on the use of lowercase letters. By default, 
all warnings are turned off.  <blockquote></DD>
</DL>
<P>
This setting provides detailed control over 
the warnings about supported extensions to the Fortran 77 Standard.  The 
<I>list </I> consists of keywords separated by commas or colons. There are three 
special keywords: <B>all </B> to turn on all the warnings about nonstandard extensions, 
<B>none </B> to turn them all off, and <B>help </B> to print the list of all the keywords 
with a brief explanation of each. If <I>list </I> is omitted, <B><A HREF="f77.html">-f77</A> </B> is equivalent 
to <B><A HREF="f77.html">-f77</A>=all </B>, and <B>-nof77 </B> is equivalent to <B><A HREF="f77.html">-f77</A>=none </B>. The warning keywords 
with their meanings are as follows. (Further details about the extensions 
themselves are given below in the section on Extensions.) 
<DL>

<DT><B>accept-type</B>:  
</DT>
<DD>ACCEPT  and TYPE  I/O statements. </DD>

<DT><B>array-bounds</B>:  </DT>
<DD>Expressions defining array 
bounds that contain array elements or function references. </DD>

<DT><B>assignment-stmt</B>: 
 </DT>
<DD>Assignment statements involving arrays.  In Fortran 90, an array can be 
assigned to another array of compatible shape, or a scalar can be assigned 
to an array.  Neither of these assignments is permitted in Fortran 77.  
<blockquote></DD>
</DL>
<P>
A related warning occurs when an array is assigned to a scalar.  Since 
this is illegal also in Fortran 90, it is always warned about regardless 
of the <B><A HREF="f77.html">-f77</A> </B> setting (unless all checking is turned off with the <B>-nocheck 
</B> flag).  </blockquote>

<DL>

<DT><B>automatic-array</B>:  </DT>
<DD>Local (not dummy) arrays which have variable 
size.  These would correspond to arrays whose storage would have to be 
dynamically allocated at run time. </DD>

<DT><B>backslash</B>:  </DT>
<DD>Unix backslash escape in 
strings.  This warning will be given only if the <B><A HREF="source.html">-source</A>=unix-backslash </B> 
setting is specified to cause the escape interpretation of backslash.. </DD>

<DT><B>byte</B>: 
 </DT>
<DD>BYTE  data type declaration. </DD>

<DT><B>common-subprog-name</B>:  </DT>
<DD>Common block and subprogram 
having the same name. </DD>

<DT><B>construct-name</B>:  </DT>
<DD>Use of a construct-name to label a 
control statement. </DD>

<DT><B>continuation</B>:  </DT>
<DD>More than 19 successive continuation 
lines. </DD>

<DT><B>cpp</B>:  </DT>
<DD>Unix C preprocessor directives in the source code. </DD>

<DT><B>cycle-exit</B>: 
 </DT>
<DD>The CYCLE  and EXIT  statements. </DD>

<DT><B>d-comment</B>:  </DT>
<DD>Debugging comments starting 
with D  in the source code. </DD>

<DT><B>dec-tab</B>:  </DT>
<DD>DEC Fortran style tab-formatted source 
code.  This warning will be given only if the <B><A HREF="source.html">-source</A>=dec-tab </B> setting is 
specified to cause interpretation of tabs in this style. </DD>

<DT><B>do-enddo</B>:  </DT>
<DD>DO  
loop extensions: terminal statement label omitted, END DO , and WHILE 
. </DD>

<DT><B>double-complex</B>:  </DT>
<DD>Double precision complex datatype. </DD>

<DT><B>format-dollarsign</B>:  
</DT>
<DD>Dollar sign control code in FORMAT  statements. </DD>

<DT><B>format-edit-descr</B>:  </DT>
<DD>Nonstandard 
edit descriptors in FORMAT  statements. </DD>

<DT><B>function-noparen</B>:  </DT>
<DD>Function definition 
without parentheses. </DD>

<DT><B>implicit-none</B>:  </DT>
<DD>IMPLICIT NONE  statement. </DD>

<DT><B>include</B>:  
</DT>
<DD>INCLUDE  statement. </DD>

<DT><B>inline-comment</B>:  </DT>
<DD>Inline comments starting with an exclamation 
point. </DD>

<DT><B>internal-list-io</B>:  </DT>
<DD>List-directed I/O to or from an internal file. </DD>

<DT><B>intrinsic</B>: 
 </DT>
<DD>Nonstandard intrinsic functions. </DD>

<DT><B>io-keywords</B>  </DT>
<DD>Nonstandard keywords used 
in I/O statements.  These fall into three groups.  The first group includes 
keywords that are accepted in Fortran 90:  <CENTER> <TABLE BORDER=0>
 <TR> <TD ALIGN=LEFT>ACTION  </TD> <TD ALIGN=LEFT>PAD  </TD> <TD ALIGN=LEFT>READWRITE 
 </TD> </TR>
 <TR> <TD ALIGN=LEFT>ADVANCE  </TD> <TD ALIGN=LEFT>POSITION  </TD> <TD ALIGN=LEFT>SIZE  </TD> </TR>
 <TR> <TD ALIGN=LEFT>DELIM  </TD> <TD ALIGN=LEFT>READ  </TD> <TD ALIGN=LEFT>WRITE  </TD> </TR>
 <TR> <TD ALIGN=LEFT>EOR  </TD> </TR>
 </TABLE>
 </CENTER>The 
second group comprises the following VMS Fortran keywords:  <CENTER> <TABLE BORDER=0>
 <TR> <TD ALIGN=LEFT>BLOCKSIZE 
 </TD> <TD ALIGN=LEFT>EXTENDSIZE  </TD> <TD ALIGN=LEFT>READONLY  </TD> </TR>
 <TR> <TD ALIGN=LEFT>BUFFERCOUNT  </TD> <TD ALIGN=LEFT>INITIALSIZE  </TD> <TD ALIGN=LEFT>RECORDSIZE  </TD> </TR>
 
<TR> <TD ALIGN=LEFT>CARRIAGECONTROL  </TD> <TD ALIGN=LEFT>MAXREC  </TD> <TD ALIGN=LEFT>RECORDTYPE  </TD> </TR>
 <TR> <TD ALIGN=LEFT>DEFAULTFILE  </TD> <TD ALIGN=LEFT>NAME  (in OPEN 
) </TD> <TD ALIGN=LEFT>SHARED  </TD> </TR>
 <TR> <TD ALIGN=LEFT>DISP  </TD> <TD ALIGN=LEFT>NOSPANBLOCK  </TD> <TD ALIGN=LEFT>TYPE  </TD> </TR>
 <TR> <TD ALIGN=LEFT>DISPOSE  </TD> <TD ALIGN=LEFT>ORGANIZATION  </TD> </TR>
 
</TABLE>
 </CENTER>(The keyword NAME  is standard only in the INQUIRE  statement.) The third 
group consists of the following IBM/MVS keyword:  <CENTER> <TABLE BORDER=0>
 <TR> <TD ALIGN=LEFT>NUM  </TD> </TR>
 </TABLE>
 </CENTER></DD>

<DT><B>long-line</B>: 
 </DT>
<DD>Statements with meaningful code past 72 columns.  This warning is given 
only if the <B><A HREF="columns.html">-columns</A> </B> setting has been used to increase the statement field 
width. </DD>

<DT><B>long-name</B>:  </DT>
<DD>Identifiers over 6 characters long. </DD>

<DT><B>mixed-common</B>:  </DT>
<DD>Mixed 
character and noncharacter data in COMMON block. </DD>

<DT><B>mixed-expr</B>:  </DT>
<DD>Nonstandard 
type combinations in expressions, for example DOUBLE PRECISION  with COMPLEX 
, assigning hollerith to integer, logical operations on integers. </DD>

<DT><B>name-dollarsign</B>: 
 </DT>
<DD>Dollar sign used as a character in identifiers. </DD>

<DT><B>name-underscore</B>:  </DT>
<DD>Underscore 
used as a character in identifiers. </DD>

<DT><B>namelist</B>:  </DT>
<DD>NAMELIST  statement. </DD>

<DT><B>param-implicit-type</B>: 
 </DT>
<DD>Implicit typing of a parameter by the data type of the value assigned. 
This warning can only occur if implicit parameter typing has been turned 
on by the <B><A HREF="source.html">-source</A>=parameter-implicit-type </B> option, or if the PARAMETER  statement 
is of the nonstandard form without parentheses.  If this option is turned 
on, then any instances where implicit parameter typing occurs will be 
warned about. If you want to be warned only in those instances where the 
implicit data type differs from the default type, use <B><A HREF="portability.html">-portability</A>=param-implicit-type 
</B> instead.  According to the Fortran 77 standard, the data type of a parameter 
is given by the same rules as for a variable, and if necessary a type 
conversion is done when the value is assigned. </DD>

<DT><B>param-intrinsic</B>:  </DT>
<DD>Intrinsic 
function or exponentiation by a real used to define the value of a PARAMETER 
 definition. </DD>

<DT><B>param-noparen</B>:  </DT>
<DD>PARAMETER  statement without parentheses.  The 
user should be aware that the semantics of this form of the statement 
differs from that of the standard form: in this form, the parameter takes 
its data type from the value assigned, rather than having its default 
data type based on the first letter of the parameter name.  (This form 
of the PARAMETER  statement was introduced by DEC before the Fortran 77 
standard was defined, and should be avoided.) </DD>

<DT><B>pointer</B>:  </DT>
<DD>``Cray pointer'' syntax. 
</DD>

<DT><B>quad-constant</B>:  </DT>
<DD>Quad precision real constants, e.g. of the form 1.23Q4 . </DD>

<DT><B>quotemark</B>: 
 </DT>
<DD>Strings delimited by quote marks rather than apostrophes. </DD>

<DT><B>relops</B>:  </DT>
<DD>Relational 
(comparison) operators composed of punctuation, namely: &lt; &lt;= == /= &gt; &gt;=. </DD>

<DT><B>statement-order</B> 
 </DT>
<DD>Statements out of the sequence mandated by the Standard.  The allowed 
sequence is illustrated in Table 1 in the section on Interpreting the 
Output. </DD>

<DT><B>typeless-constant</B>:  </DT>
<DD>Typeless constants, for example Z'19AF' . </DD>

<DT><B>type-size</B>: 
 </DT>
<DD>Type declarations specifying a size, for example REAL*8 . </DD>

<DT><B>variable-format</B>: 
 </DT>
<DD>Variable repeat specification or field size in FORMAT.  These are of the 
form &lt;  <I>expr </I> &gt; . </DD>

<DT><B>vms-io</B>:  </DT>
<DD>Obsolete.  Now has the same meaning as the <B>io-keywords 
</B> keyword. </DD>
</DL>
<P>
See also: <B><A HREF="f90.html">-f90</A> </B>, <B><A HREF="f95.html">-f95</A> </B>, <B><A HREF="portability.html">-portability</A> </B>, <B><A HREF="pretty.html">-pretty</A> </B>, <B><A HREF="wordsize.html">-wordsize</A> </B>.  </blockquote>
<P>
 
<DL>

<P><HR><P>Next: <A HREF="f90.html">-f90</A>
</BODY></HTML>