aboutsummaryrefslogtreecommitdiff
path: root/ja_JP.eucJP/man/man1/f2c.1
blob: 18bb5b805eafdd1ec66d422277f6b108f178fa16 (plain) (blame)
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
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
.\" mdoc translation of the f2c.1 manpage (deprecated -man format) supplied
.\" with f2c.  The original manpage did not have a copyright statement, but
.\" the file /usr/src/bin/f2c/Notice states:
.\"
.\"/****************************************************************
.\"Copyright 1990 - 1997 by AT&T Bell Laboratories and Bellcore.
.\"
.\"Permission to use, copy, modify, and distribute this software
.\"and its documentation for any purpose and without fee is hereby
.\"granted, provided that the above copyright notice appear in all
.\"copies and that both that the copyright notice and this
.\"permission notice and warranty disclaimer appear in supporting
.\"documentation, and that the names of AT&T Bell Laboratories or
.\"Bellcore or any of their entities not be used in advertising or
.\"publicity pertaining to distribution of the software without
.\"specific, written prior permission.
.\"
.\"AT&T and Bellcore disclaim all warranties with regard to this
.\"software, including all implied warranties of merchantability
.\"and fitness.  In no event shall AT&T or Bellcore be liable for
.\"any special, indirect or consequential damages or any damages
.\"whatsoever resulting from loss of use, data or profits, whether
.\"in an action of contract, negligence or other tortious action,
.\"arising out of or in connection with the use or performance of
.\"this software.
.\"****************************************************************/
.\"
.Dd April 19, 1996
.\" jpman %Id: f2c.1,v 1.3 1997/08/20 12:23:39 horikawa Stab %
.Os "AT&T Bell Lab and Bellcore"
.Dt F2C 1
.Sh 名称
.Nm f2c
.Nd Fortran 77 から C または C++ への変換
.Sh 書式
.Nm f2c
.Op Fl AaCcEfgpRrsUuvw
.Op Fl C++
.Op Fl cd
.Op Fl d Ar dir
.Op Fl ec
.Op Fl e1c
.Op Fl ext
.Op Fl h Ns Op Cm d
.Op Fl \&I2
.Op Fl \&i2
.Op Fl i90
.Op Fl kr Ns Op Cm d
.Op Fl o Ar name
.Op Fl onetrip
.Op Fl P Ns Op Cm s
.Op Fl r8
.Op Fl 72
.Op Fl T Ar dir
.Op Fl w8
.Op Fl W Ns Ar n
.Op Fl z
.Op Fl !bs
.Op Fl !c
.Op Fl !I
.Op Fl !i8
.Op Fl !it
.Op Fl !P
.Ar file ...
.Sh 解説
.Nm f2c
は、
ファイル名が
.So \&.f Sc
あるいは
.So \&.F Sc
で終わるファイル
.Ar files
に記述された Fortran 77 ソースコードを、
カレントディレクトリ内の、
末尾の
.So \&.f Sc
または
.So \&.F Sc
を
.So \&.c Sc
に置き換えたファイル名の C (または C++) のソースファイルに変換します。
Fortran ファイルが指定されない場合、
.Nm f2c
は標準入力から Fortran コードを読み込み、
標準出力に C を出力します。
ファイル名が
.So \&.p Sc
または
.So \&.P Sc
で終わる
.Ar file
は、
.Fl P
オプションで生成されるプロトタイプファイルとみなされ、
最初に読み込まれます。
.Sh オプション
.Bl -tag -width flag
.It Fl A
ANSI C を生成します。デフォルトは旧スタイルの C です。
.It Fl a
ローカル変数を static 変数ではなく automatic 変数とします。
ただし DATA , EQUIVALENCE , NAMELIST , SAVE 文に現れるものを除きます。
.It Fl C
添字値が宣言された配列範囲内にあるかどうかをチェックするコードを
生成します。
.It Fl C++
C++ コードを生成します。
.It Fl c
オリジナルの Fortran ソースをコメントとして挿入します。
.It Fl cd
cdabs, cdcos, cdexp, cdlog, cdsin, cdsqrt をそれぞれ
虚数組み込み関数 zabs, zcos, zexp, zlog, zsin, zsqrt として理解することを
止めます。
.It Fl d Ar dir
`.c' ファイルを、現在のディレクトリの代りに、ディレクトリ
.Ar dir 
に書き込みます。
.It Fl E
初期化されない COMMON を Extern として宣言します(
.Pa f2c.h
において重複して
.Em extern
定義されます)。
.It Fl ec
初期化されていない COMMON ブロックを別々のファイルに配置します。
COMMON ABC はファイル abc_com.c に置かれます。
オプション
.Fl e1c
によってそれらの別々のファイルを出力ファイルに束ねます。
その際、元のファイルにほどくための
.Xr sed 1
スクリプトがコメントとして与えられます。
.It Fl e1c
.Fl ec
の説明を参照。
.It Fl ext
Fortran 77 拡張を見つけると警告します。
.It Fl f
自由形式(free-format)入力を仮定します。
72 カラム目以降のテキストも受理し、
72 文字より短い固定形式の行に対して空白のパディングを行いません。
.It Fl 72
72 カラム目以降に書かれたテキストをエラーとします。
.It Fl g
オリジナルの Fortran の行番号を
.Sy #line
行として埋め込みます。
.It Fl h Ns Op Cm d
Fortran 66 の Hollerith の取り扱いをエミュレートします。すなわち、
文字列をワード(または、
.Fl hd
オプション指定時はダブルワード)境界にアラインしようとします。
.It Fl \&I2
INTEGER および LOGICAL を short 型、INTEGER*4 を long int 型とします。
デフォルトの
.Em libF77
および
.Em libI77
は INQUIRE においては INTEGER*4 だけ (LOGICAL は無し) を許可している
ものと仮定します。
.Fl \&I4
オプションは、INTEGER を long int とするデフォルト処理を確認します。
.It Fl \&i2
.Fl \&I2
と同様ですが、修正された
.Em libF77
および
.Em libI77
(
.Fl Df2c_i2
でコンパイルしたもの) を仮定します。
INTEGER および LOGICAL 変数は INQUIRE で代入でき、
配列長は short int で格納されます。
.It Fl i90 
Fortran 90 のビット操作組み込み関数
btest, iand, ibclr, ibits, ibset, ieor, ior, ishft, ishftc を理解することを
止めます。
.It Fl kr Ns Op Cm d
K&R (第 1 版) の括弧つけ規則で再配置(rearrangement)可能な部分において、
Fortran の式評価を行うために一時変数を用います。
.Fl krd
オプションの場合、
単精度オペランドに対しても倍精度一時変数を使用します。
.It Fl o Ar name
C のソースコードをファイル
.Ar name
に書き出します。
.It Fl onetrip
DO ループを、もしそこに到達すれば少なくとも一回は実行されるように
コンパイルします。
(Fortran 77 の DO ループは、もし上限値が下限値より小さければ、
全く実行されません。)
.It Fl P Ns Op Cm s
入力ファイル
.Ar file Ns \&.f
あるいは
.Ar file Ns \&.F
に含まれる定義に対する ANSI (あるいは C++) プロトタイプ宣言を
ファイル
.Ar file Ns \&.P
に書き出します。
Fortran コードを標準入力から読み込んでいる場合は、
標準出力の最初に書き出します。
.Fl Ps
オプションは
.Fl P
オプションと同様ですが、
再度
.Nm f2c
を実行するとプロトタイプあるいは宣言が変化する場合、
終了ステータス 4 で終了します。
.It Fl p
プリプロセッサ定義を出力して、
コモンブロックのメンバがローカル変数のように見えるようにします。
.It Fl v
コンパイル中に、ファイル名、プログラム名、プロシジャ名(複数) を表示します。
.It Fl R
REAL 型の関数や演算を DOUBLE PRECISION に拡張しません。
.Fl !R
オプションを用いるとデフォルトの、Fortran 77 と同様の動作になります。
.It Fl r
REAL 関数(組み込み関数を含む)の値を REAL にキャストします。
.It Fl r8
REAL を DOUBLE PRECISION に、COMPLEX を DOUBLE COMPLEX に拡張します。
.It Fl s
多次元の添字式を保存します。
.It Fl T Ar dir
一時ファイルをディレクトリ
.Ar dir
に生成します。
.It Fl U
変数や外部名の大文字小文字を区別します。
Fortran キーワードは
.Em 小文字
でなければなりません。
.It Fl u
変数のデフォルトの型は、Fortran のデフォルト規則に従うのではなく、
.So 未定義 Sc
とします。
.It Fl w
全ての警告メッセージを抑制します。
.Fl w66
オプションの場合は、Fortran 66 との互換警告メッセージのみ抑制します。
.It Fl w8
COMMON あるいは EQUIVALENCE 文で double 値が不正なワード境界に
配置された場合の警告を抑制します。
.It Fl W Ns Ar n
数値変数を文字データで初期化する際、
1 ワードを
.Ar n
文字分と仮定します(デフォルトは 4)。
.It Fl z
暗黙的には DOUBLE COMPLEX を認識しません。
.It Fl !bs
文字列中の
.Em バックスラッシュ
エスケープ
(\e", \e', \e0, \e\e, \eb, \ef, \en, \er, \et, \ev)
を認識しません。
.It Fl !c
C の出力は抑制し、
.Fl P
出力を行います。
.It Fl !I
.Sy include
文を不許可とします。
.It Fl !i8
INTEGER*8 を不許可とします。
.It Fl !it
既に定義あるいはプロトタイプ宣言された手続きへの引数として
使われた部分から、型宣言していない EXTERNAL 手続きの型を推測しません。
.It Fl !P
使われ方から ANSI あるいは C++ のプロトタイプを推測しないようにします。
.El
.Pp
オブジェクトコードは
.Xr ld 1
または
.Xr cc 1
でロードしなければならず、
次のライブラリを指定する必要があります:
.Fl lf2c lm
.Sh 関連ファイル
.Ar file Ns \&.[fF]
入力ファイル

.Ar file Ns \&.c
出力ファイル

.Pa /usr/include/f2c.h
ヘッダファイル

.Pa /usr/lib/libf2c.a
組み込み関数ライブラリおよび Fortran 77 I/O ライブラリ

.Sh 関連項目
.Rs
.%A S. I. Feldman
.%A P. J. Weinberger
.%T A Portable Fortran 77 Compiler
.%B UNIX Time Sharing System Programmer's Manual
.%V Volume 2
.%D 1990
.%O AT&T Bell Laboratories
.%N Tenth Edition
.Re
.Sh 診断
.Nm f2c
が出力する診断メッセージは、
それ自身で理解可能なものであるはずです。
.Sh バグ
浮動小数点定数表記は
.Nm f2c
を実行するマシンの浮動小数点演算を用いて単純化されていますので、
普通、その精度は高々 10 進 16 ないし 17 桁です。
.Pp
型なし EXTERNAL 関数は int として宣言されます。
.Pp
.Nm f2c
の有効オプションのうち、
ここに記述されていないものがいくつかあります。
これらは
.Pa /usr/src/usr.bin/f2c/main.c
の先頭部分で説明されています。