The Japanese Manual team(man-jp@jp.FreeBSD.ORG) has translated and keeps maintaining them. Submitted by: Kazuo Horikawa <horikawa@isrd.hitachi.co.jp>
323 lines
8.1 KiB
Groff
323 lines
8.1 KiB
Groff
.\" 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 AaCcEfgpRrsUuw
|
|
.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 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
|
|
の先頭部分で説明されています。
|