英語フランス語スペイン語

Ad


OnWorksファビコン

ftnchek - クラウドでオンライン

Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターを介して OnWorks 無料ホスティング プロバイダーで ftnchek を実行します。

これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド ftnchek です。

プログラム:

NAME


ftnchek - Fortran 77 プログラムチェッカー

SYNOPSIS


フトチェク [ -引数[=リスト]] [ -配列[=リスト]]
[ -[いいえ]短い ] [ -コールツリー[=リスト]] [ -[いいえ]チェック ]
[ -列[=NUM]] [ -一般[=リスト]]
[ -[いいえ]相互参照[=リスト]] [ -[いいえ]宣言する ]
[ -[いいえ]分裂 ] [ -エラー[=NUM]] [ -[いいえ]外部 ]
[ -[いいえ]f77[=リスト]] [ -[いいえ]f90[=リスト]]
[ -[いいえ]f95[=リスト]] [ -[いいえ]助けます ]
[ -[いいえ]識別子文字[=リスト]] [ -include=STR ]
[ -本質的[=リスト]] [ -[いいえ]ライブラリ ] [ -[いいえ]リスト ]
[ -makecls[=リスト]] [ -mkhtml[=リスト]]
[ -[いいえ]初心者 ] [ -出力=STR ]
[ -ポインターサイズ[=NUM]] [ -[いいえ]移植性[=リスト]]
[ -[いいえ]かなり[=リスト]] [ -計画[=リスト]]
[ -[いいえ]純粋な ] [ -[いいえ]静かな ] [ -[いいえ]参照 ]
[ -[いいえ]リソース ] [ -[いいえ]シックスチャー ] [ -[いいえ]sort ]
[ -source[=リスト]] [ スタイル[=リスト]] [ -[いいえ]シンタブ ]
[ -[いいえ]切り捨て[=リスト]] [ -利用方法[=リスト]]
[ -[いいえ]VCG ] [ -[いいえ]バージョン ] [ -[いいえ] ]
[ -ワードサイズ[=NUM]] [ -ラップ[=NUM]] [ ファイル ... ]

DESCRIPTION


フトチェク (Fortran checker の略) は、Fortran 内の特定のエラーを検出するように設計されています。
コンパイラが通常実行しないプログラム。 フトチェク 主に検出を目的としたものではありません
構文エラー。 その目的は、ユーザーが意味上のエラーを見つけられるように支援することです。 セマンティック
エラーは Fortran 言語では正当ですが、無駄であるか、誤ったエラーを引き起こす可能性があります。
手術。 たとえば、決して使用されない変数は、
プログラム; 初期化されていない変数には、不正確な結果を引き起こす可能性のあるガベージが含まれています。
計算された; また、宣言されていない変数は、意図した型を持たない可能性があります。 フトチェク
ユーザーの Fortran プログラムのデバッグを支援することを目的としています。 意図したものではありません
すべての構文エラーをキャッチします。 これはコンパイラの機能です。 ご使用の前に
フトチェク、ユーザーはプログラムが正しくコンパイルされることを確認する必要があります。

このドキュメントでは、まず呼び出し方法を要約します。 フトチェク。 そのセクションは事前に読んでおく必要があります
使い始めます フトチェク。 後のセクションで説明します フトチェクのオプションをさらに詳しく説明すると、
その使用例を示し、出力を解釈する方法を説明します。 最後のセクション
の制限と既知のバグについて言及する フトチェク.

呼び出し フンチェク


フトチェク 次の形式のコマンドを通じて呼び出されます。

$ ftnchek [-オプション -オプション ...] ファイル名 [ファイル名 ...]

括弧はオプションであることを示します。 括弧自体はそうではありません
実際に入力しました。 ここでのオプションは、コマンド ライン スイッチまたは設定であり、
プログラムの動作と出力される情報の量。 いいえの場合
オプションが指定されている場合、デフォルトのアクションでは、エラー メッセージ、警告、および
情報メッセージは含まれますが、プログラム リストやシンボル テーブルは含まれません。

各オプションは「-」文字で始まります。 (VAX/VMS または MS-DOS システムでは、
'/' または '-' のいずれかです。) ますます一般的になっている規則に準拠するために、
オプションは「--」で始めることもできます。 オプションについては、次で詳しく説明します。
のセクションから無料でダウンロードできます。

フトチェク オプションは XNUMX つのカテゴリに分類されます。スイッチは true または false のいずれかです。
数値または文字列値を持つ設定。 スイッチの名前には「no」という接頭辞が付きます。
または「no-」でオフにします: 例: -ノピュア 不純な関数に関する警告をオフにします。
「no」接頭辞は数値設定でも使用でき、オフにする効果があります。
対応する警告。 警告のリストを制御する設定には特別な構文があります
以下で説明します。 オプション名の最初の 3 文字のみ (「-」はカウントしません)
を提供する必要があります。 数値または文字列の等号の代わりにコロンを使用できます。
割り当ての設定。 ただし、以下では等号形式のみを示します。

スイッチと設定は、 フトチェク 現在認識しているものは以下のとおりです。 それぞれについて
オプションの場合、デフォルトはオプションが明示的に指定されていない場合に使用される値ですが、
Turn-on は、オプションに値を割り当てずに指定した場合に使用される値です。

-引数=リスト
サブプログラムのタイプと引数の不一致に関する警告を制御します。 デフォルト = オン
= すべて。

-配列=リスト
サブプログラムの配列引数をチェックする際の警告を制御します。 デフォルト = オン =
すべて。

-簡単に 一部のエラー メッセージには短い形式を使用します。 デフォルト = いいえ。

-calltree=リスト
サブプログラム呼び出し階層を 3 つの形式のいずれかで生成します: text call-tree、who-calls-
誰とVCG。 デフォルト = なし、オン = ツリー、プルーン、ソート。

Status -mkhtml オプションが呼び出されます & Tree は適用された calltree オプション、ファイルです
CallTree.html という名前の、HTML 形式でツリーを表すファイルが生成されます。

-小切手 チェックを実行します。 デフォルト = はい。

-列=NUM
行の最大長を次のように設定します NUM 列。 (これを超えると無視されます。) ターンオン = 最大 =
132. デフォルト = 72。

-共通=リスト
COMMONブロックのチェックの厳しさを設定します。 デフォルト = オン = すべて。

-crossref=リスト
サブプログラム呼び出し、ラベルの使用法、および/または COMMON ブロックの相互参照リストを出力します。
使用。 デフォルト = なし。

-宣言する
データ型が明示的に宣言されていないすべての識別子のリストを出力します。 デフォルト
=いいえ。

-分割
除算が行われる場合は常に警告します (定数による除算を除く)。 デフォルト = いいえ。

-エラー=NUM
カスケードごとのエラー メッセージの最大数を設定します。 デフォルト = オン = 3。

-外部
呼び出される外部サブプログラムが定義されていない場合に警告します。 デフォルト = はい。

-f77=リスト
Fortran 77 標準でサポートされている拡張機能に関する特定の警告を制御します。
デフォルト = なし、オン = すべて。

-f90=リスト
Fortran 77 標準でサポートされている拡張機能に関する特定の警告を制御する
これらは Fortran 90 標準の一部として採用されませんでした。 デフォルト = なし、オン
= すべて。

-f95=リスト
から削除された標準 Fortran 77 機能に関する特定の警告を制御します。
Fortran 95 標準。 デフォルト = なし、オン = すべて。

-助けて コマンドの概要を印刷します。 デフォルト = いいえ。

-識別子-文字=リスト
識別子に使用できる英数字以外の文字を定義します。 デフォルト =
オン = ドル記号とアンダースコア。

-include=path
システム全体で検索する前に、INCLUDE ファイルを検索するディレクトリを定義します。
ディレクトリ。 累積的な。 デフォルト = オン = なし。

-固有=リスト
非標準の組み込み関数の制御処理。 デフォルト = を除くすべて VM for
Unix バージョンを除くすべて UNIX VMS バージョンの場合、除くすべて UNIX & VM その他の
バージョン。 オン = すべて。

-図書館
ライブラリ モードの開始: ファイル内の定義されているサブプログラムについては警告しませんが、
使われたことがない。 デフォルト = いいえ。

-リスト プログラムのソースリストを印刷します。 デフォルト = いいえ。

-madecls=リスト
申告書のファイルを準備します。 の リスト この形式のオプションを指定します
ファイル。 デフォルト = なし、オン = 宣言。

-mkhtml=リスト
ftnchek 分析とコード コメントから個別の HTML ドキュメント ファイルを作成します。
通常、次のように指定することもできます。 -call=ツリー ルートHTMLファイルを作成するには
CallTree.html。 デフォルト = なし、オン = ドキュメント。

-初心者
初心者ユーザーに適した出力を提供します。 デフォルト = はい。

-出力=ファイル名
出力を指定されたファイルに送信します。 デフォルトでオンにすると、出力が画面に送信されます。
(デフォルトのファイル名拡張子は .lis).

-ポインターサイズ=NUM
「Cray ポインタ」変数のサイズを次のように設定します。 NUM バイト。 最小 = 1、最大 = 16。
デフォルト = オン = 4

-移植性=リスト
ポータブルでない使用法について警告します。 デフォルト = なし、オン = すべて。

-かなり=リスト
ソースコードの誤解を招く可能性のある外観について警告を発します。 デフォルト = ターン-
オン = すべて。

-プロジェクト=リスト
プロジェクト ファイルを作成します (以下の説明を参照)。 デフォルト = いいえ。

-ピュア 関数は純粋である、つまり副作用がないと仮定します。 デフォルト = はい。

-静かな あまり冗長でない出力を生成します。 デフォルト = いいえ。

-参照
各サブプログラムによって参照されるサブプログラムのテーブルを出力します。 デフォルト = いいえ。

-資力
プログラムの解析に使用されたリソースの量を出力します。 デフォルト = いいえ。

-XNUMX文字
衝突する変数名を 6 文字の長さでリストします。 デフォルト = いいえ。

-選別 前提条件の順序でソートされたサブプログラムのリストを出力します。 デフォルト = いいえ。

-ソース=リスト
ソースの書式設定オプションを選択します: 固定形式または自由形式、DEC Fortran タブ形式
行、VMS スタイルの INCLUDE ステートメント、UNIX スタイルのバックスラッシュ エスケープ シーケンス、および
パラメータの暗黙的な型指定。 デフォルト = なし、オン = すべて。

-style =リスト
時代遅れまたは時代遅れのプログラミングについて特に厳しい警告を生成します
建築物。 デフォルト = なし、オン = すべて。

-symtab
各サブプログラムのシンボル テーブルとラベル テーブルを出力します。 デフォルト = いいえ。

-切り捨て=リスト
切り捨てによる精度の損失の可能性を確認します。 デフォルト = オン = すべて。

-使用法=リスト
未使用または初期化されていない変数、共通ブロックなどに関する警告を制御します。
デフォルト = オン = すべて。

-vcg VCG形式のコールグラフを生成します。

-バージョン
バージョン番号を出力します。 デフォルト = いいえ。

-揮発性
COMMON ブロックはアクティブ化の間に定義を失うと仮定します。 デフォルト = いいえ。 (廃止。
  -common=揮発性 代わりに)

-wordsize=NUM
数値のデフォルトのワード サイズを次のように設定します。 NUM バイト。 デフォルト = オン =
4バイト。

-ラップ=NUM
長いエラー メッセージと警告を次の出力列に折り返す出力列を設定します。
ライン。 0 に設定すると、ラッピングがオフになります。 デフォルト = オン = 79。

複数のオプションを使用する場合は、オプションを空白で区切る必要があります。
オプションがスラッシュ ( / ) で始まる VMS などのシステム。 空白を入れることはできません
設定内の等号 ( = ) の周り。 ふんちく「?」 コマンドの概要が生成されます
すべてのオプションと設定をリストします。

キーワードのリストを取得する設定の場合、つまり -引数, -配列, -コールツリー, -一般,
-crossref, -f77, -f90, -f95, -本質的, -makecls, -mkhtml, -携帯性, -可愛い,
-計画, -source, スタイル, -切り捨て, -利用方法、リストはキーワードで構成されます
カンマまたはコロンで区切ります。 キーワードのリストを省略した場合、その効果は次のようになります。
オプションをその有効値に設定します (ほとんどの場合、「all」と同じ)。 また、リストが
省略した場合、設定名の先頭に次の文字を付けることができます。 いいえ or NO- すべてのオプションをオフにするには
コントロール。 例えば、 -f77 非標準構造に関するすべての警告をオンにします。
-nof77 それらをすべてオフにします。 XNUMX つの特別なキーワードは次のとおりです。

助けます 設定によって制御されるすべてのオプション キーワードを簡単な説明とともに出力します。
それらの意味の説明。 このキーワードを他のキーワードと一緒にリストに指定することはできません
キーワード。

すべてのオプションを設定します。 これにより、設定によって制御されるすべてのオプションがオンになります。

なし すべてのオプションをクリアします。 これにより、設定によって制御されるすべてのオプションがオフになります。

これら XNUMX つの特別なキーワードは完全に指定する必要があります。 他のすべてのキーワードについては、同じ数だけ
キーワードを明確に識別するために必要な文字を指定するか、
ワイルドカード パターンを使用することもできます。 リストにキーワードを含めると、対応するキーワードが表示されます。
オプションオン。 例えば、 -f77=組み込み の使用に関する警告のみをオンにします
非標準の組み込み関数。 キーワードの前に次の文字を付ける NO- オプションをオフにします。 のために
例、 -pretty=長蛇の列なし 72 列を超える行についての警告をオフにします。
誤解を招く外観に関する他の警告はすべて有効のままにしておきます。 もし
設定にはデフォルトがあります なしを使用すると、XNUMX つまたは XNUMX つを除くすべてのオプションをオンにできます。
初め。 例えば、 -f77=すべて、含まない すべての非標準拡張機能に関する警告を有効にします
INCLUDE ステートメントを除く。 設定にデフォルトがある場合 、すべての警告をオフにすることができます
XNUMX つまたは XNUMX つを除いて、 なし 初め。 例えば、 -切り捨て=なし、降格 向きを変えるだろう
降格を除き、精度に関連するすべての警告をオフにします。 ワイルドカード パターンには、
アスタリスクは任意の文字列を表します。 ワイルドカード パターンが使用される場合、すべての
これに一致する警告が影響を受けます。 もし NO- はパターンの先頭にあり、一致するものはすべて
警告はオフになりますが、それ以外の場合はすべてオンになります。 明確な最小の長さ
このルールはワイルドカード一致には適用されません。 たとえば、次のように使用します。 -usage=no-*var* 電源を切るために
変数の使用法 (ローカルと共通の両方) に関連するすべての警告。 (Unix ユーザーは次の操作が必要になる場合があります)
シェルが次のことを試みるのを防ぐために、ワイルドカードを含むオプションを引用符で囲みます。
展開してください。) ワイルドカードは、警告キーワードのリスト内でのみ認識され、先頭では認識されません。
レベルオプション自体。

日時 フトチェク 起動すると、環境変数と環境設定が検索されます。
ファイル。 環境または設定ファイルで定義されたオプションはすべて次のように使用されます。
組み込みのデフォルトの代わりにデフォルトを使用します。 これらはコマンドラインによって上書きされます。
オプション。 環境の詳細については、デフォルトの変更に関するセクションを参照してください。
オプションと環境設定ファイル。

入力ファイルの名前を付ける場合、拡張子はオプションです。 延長を指定しない場合は、
フトチェク 最初に拡張子が付いているプロジェクト ファイルを探します .prj、もしそうであればそれを使用します
存在します。 そうでない場合は、 フトチェク 次の拡張子を持つ Fortran ソース ファイルを検索します。 。にとって
VMS システムの場合、 .f UNIX システムの場合。 複数のファイル名を付けることができます フトチェク,
すべてのファイル内のモジュールが XNUMX つのファイル内にあるかのように処理されます。

VMS のコマンド ラインでのファイル名の指定では、ワイルドカードを使用できます。
および MS-DOS バージョン、もちろん UNIX やその他のシステムでも同様です。
コマンドプロセッサでのワイルドカード展開。

ファイル名が指定されていない場合は、 フトチェク 標準入力から入力を読み取ります。

OPTIONS


このセクションでは、以下についてさらに詳しく説明します。 フトチェク コマンドラインオプション。 オプション
ファイル名はコマンドラインに散在する場合があります。 ほとんどのオプションは位置指定です:
オプションは、そのオプションが見つかった時点から、オプションによってオーバーライドされるまで有効です。
後で変更します。 したがって、たとえば、一部のファイルについてはリストが抑制され、他のファイルについては抑制されない場合があります。
その他。 例外は次のとおりです。 -本質的, -ポインターサイズ, -ワードサイズ 設定、
入力ファイルの処理が開始されると変更できません。 の -引数, -配列,
-コールツリー, -一般, -crossref, -外部, -参照, -資力, -選別, -vcg, -揮発性
オプション。アクションは、処理後のオプションの値にのみ依存します。
入力ファイルが完成しました。 そしてその -含める 累積的な設定です。

次のリストのオプション名はアルファベット順に並んでいます。

-引数=リスト
実際のサブプログラム引数とダミーのサブプログラム引数の間の不一致に関する警告を制御します。
また、予期されるサブプログラム タイプと実際のサブプログラム タイプの不一致についても説明します。 (実際の
argument は、呼び出し元によってサブプログラムに渡される引数です。 仮引数は
サブプログラムによって受け取られる引数。) デフォルトでは、すべての警告がオンになります。

  リスト カンマまたはコロンで区切られたキーワードで構成されます。 これらすべて以来、
警告はデフォルトでオンになっており、接頭辞が次のキーワードが含まれます。 NO- をオフにする
特別な警告。 特別なキーワードが XNUMX つあります。 すべてをオンにするには
引数に関する警告、 なし それらをすべてオフにし、 助けます のリストを印刷するには
すべてのキーワードとそれぞれの簡単な説明。 もし リスト 省略、 -引数
に相当します -引数=すべて, -引数なし に相当します -引数=なし.
警告キーワードとその意味は次のとおりです。

配列性:
配列である引数の矛盾した使用について警告します。 これらの警告は、
によってさらに制御される -配列 オプションを選択します。

type:
実際の引数とは異なるデータ型の仮引数について警告します。

関数型:
関数の戻り値が異なる型であると呼び出しが想定している場合に警告する
実際よりも。 関数がサブルーチンとして呼び出された場合にも警告します。
逆に。

:
引数の数が異なるサブプログラムを呼び出すことについて警告します。
サブプログラムは期待しています。

以前のバージョンとの互換性のために フトチェク、これの数値形式
設定も受け入れられます: リスト は 0 ~ 3 の数値に置き換えられます。
0 はすべての警告をオフにし、1 は警告のみをオンにします , 2 以外のすべてをオンにします。 ,
3 はすべての警告をオンにします。

この設定は、組み込み関数の呼び出しのチェックには適用されません。
ステートメント関数。これをオフにできるのは -ノーチェック オプションを選択します。

も参照してください。 -配列, -図書館, -利用方法.

-配列=リスト
実物とダミーの一致チェックの厳密さの度合いを制御します
配列であるサブプログラム引数。 この設定によって制御される警告は次のとおりです。
知識のあるプログラマーによって合法的に使用される可能性のある構造の場合、
しかし、それは多くの場合、プログラミングエラーを示しています。 デフォルトでは、すべての警告がオフになります
に。

  リスト カンマまたはコロンで区切られたキーワードで構成されます。 これらすべて以来、
警告はデフォルトでオンになっており、接頭辞が次のキーワードが含まれます。 NO- をオフにする
特別な警告。 特別なキーワードが XNUMX つあります。 すべてをオンにするには
配列引数に関する警告、 なし それらをすべてオフにし、 助けます を印刷するには
すべてのキーワードのリストとそれぞれの簡単な説明。 もし リスト 省略、
-配列 に相当します -配列=すべて, -noarray に相当します -配列=なしを選択します。
警告キーワードとその意味は次のとおりです。

大きさ:
引数の次元数が異なる場合、または実際の次元数が異なる場合に警告します。
引数は配列要素ですが、仮引数は配列全体です。

サイズ:
両方の引数が配列であるが、要素数が異なる場合に警告します。

以前のバージョンとの互換性のために フトチェク、これの数値形式
設定も受け入れられます: リスト は 0 ~ 3 の数値に置き換えられます。
0 はすべての警告をオフにし、1 は警告のみをオンにします 大きさ、2回のみオン サイズ,
3 すべての警告をオンにします。

注: 実引数が指定されている場合、この設定に関係なく、常に警告が表示されます。
が配列であり、仮引数がスカラー変数であるか、実際の引数が
引数はスカラー変数または式ですが、仮引数は配列です。
こうしたケースが意図的に行われることはほとんどありません。 (これらの警告もオフにするには、次を使用します
-arguments=配列なし.) 実際の引数が
配列要素であり、仮引数はスカラー変数です。 可変次元
配列および 1 またはアスタリスクの次元を持つ配列は、任意の数の配列と一致します
要素。 多次元配列のサイズが一致するかどうかのチェックはありません
各次元を個別に。

も参照してください。 -引数, -図書館, -利用方法.

-簡単に
一部の警告メッセージに対して短い形式を選択します。 現時点で唯一の警告は、
このフラグによって制御されるものは、各処理の最後に出力されるものです。
サブプログラム。 これらには、設定されているが使用されていない変数に関する警告が含まれます。
設定前に使用される、Fortran 77 標準に準拠していない変数名、
など (これらの警告は、他のフラグに応じて完全に抑制される場合があります。
  -利用方法 or -f77 ) デフォルトの形式では、各変数は
別の行と、変数が宣言、設定、または設定されている行番号
警告の性質に応じて使用されます。 より簡潔な形式では、すべてがリストされます。
警告が適用される変数。4 行に最大 XNUMX つの変数を指定できます。

も参照してください。 -静かな.

-calltree=リスト
目的 フトチェク 完全なプログラムの呼び出し構造を出力します。

  リスト カンマまたはコロンで区切られたキーワードで構成されます。 スペシャルはXNUMXつあります
キーワード: なし すべてのオプションをオフにするには、 助けます すべてのリストを印刷するには
キーワードとそれぞれの簡単な説明。 (キーワードは すべてをオンにする
オプションを使用できますが、使用できる形式は XNUMX つだけであるため、通常は使用しないでください。
指定されている場合。) リスト 省略、 -コールツリー に相当します -calltree=ツリー,
-nocalltree に相当します -calltree=なし。 デフォルトでは、コールグラフは出力されません。

-mkhtml オプションが呼び出された場合 & Tree は適用された calltree オプション、ファイルです
CallTree.html という名前のツリーも HTML 形式で作成されます。 これ
このファイルは、それぞれを説明する HTML ファイルを参照するための開始点として役立ちます。
プログラムのコンポーネント。

使用する形式を制御するキーワードは次のとおりです。

ツリー:
ツリー形式でコール グラフを生成します。

参照:
コールグラフをwho-calls-who形式で生成します( -参照 スイッチ)。

VCG:
VCG 形式でコール グラフを生成します ( -vcg スイッチ)。

いずれかの形式のみ ツリー, 参照または VCG 指定される場合があります。

次のキーワードは、出力に影響するオプションを制御します。

プルーン:
繰り返されるサブツリーをプルーニングします ( ツリー)。 これがデフォルトです。

sort:
各ルーチンの子をアルファベット順に並べ替えます。 これがデフォルトです。

のディスカッションを参照してください。 -参照 & -vcg これらの詳細についてはフラグを参照してください
フォーマット。

ツリー 形式、コールグラフはメインプログラムから開始して出力されます、
これは最初の行の左余白にリストされています。 次に、次の行で、
メインプログラムによって呼び出される各ルーチンが、いくつかのスペースでインデントされてリストされ、その後に続きます。
そのルーチンから始まるサブツリーによって。

デフォルト モードでは、ルーチンが複数の他のルーチンによって呼び出された場合、そのルーチンは
呼び出しサブツリーは、最初に見つかったときにのみ出力されます。その後の呼び出しでは、のみが表示されます。
ルーチン名と通知「(上記を参照)」。 サブツリーを印刷するには
ルーチンが出現するたびに、オプションを使用します 剪定なし.

入力ファイルのいずれかがプロジェクトである場合、コール ツリーは不完全になることに注意してください。
で作成された複数のモジュールを含むファイル -図書館 モード。 を参照してください。
以下のプロジェクト ファイルについて説明します。

技術的なポイント: 特定のルーチンによって呼び出されるルーチンの各リストは、次のように出力されます。
アルファベット順 ノーソート オプションが与えられます。 メインプログラムが複数ある場合
が見つかると、それぞれの呼び出しツリーが個別に出力されます。 メインプログラムがない場合
見つかった場合は、その旨のレポートが出力され、トップレベルの呼び出しツリーが出力されます。
ライブラリ以外のルーチンが出力されます。 このフラグは呼び出しの出力のみを制御します
木: フトチェク を決定するために使用されるため、いずれの場合でもコール ツリーを構築します。
どのライブラリ モジュールがクロスチェックされるか。 のディスカッションを参照してください。 -図書館
フラグ。

以前のバージョンとの互換性のために フトチェク、これの数値形式
設定も受け入れられます: リスト は 0 ~ 15 の数字に置き換えられます。
数値は 1 から形成されます ツリー 形式、2 の場合 参照 形式、または 3 VCG
フォーマットに 4 を加えたもの 剪定なし、および8 ノーソート.

も参照してください。 -crossref, -図書館, -参照, -選別, -symtab, -vcg.

-小切手
このスイッチは、エラーや警告メッセージをオフにできるようにするために提供されています。
フトチェク 宣言など、バグ発見以外の目的で使用される場合
または呼び出しツリーを出力します。 位置関係なので全てのチェックを外した後、
選択したチェックをオンに戻すことができます。 の効果 -ノーチェック 全部入れることです
スイッチ、数値設定、および警告リストを制御する設定
すべての値が -no プレフィックスで指定されているかのように、値をオフにします。 スイッチ
制御するのではなく、オプションと動作モードを指定する設定
警告は影響を受けません。 これらは -列, -crossref, -含める, -本質的,
-図書館, -リスト, -makecls, -初心者, -出力, -ポインターサイズ, -計画, -静かな,
-参照, -資力, -選別, -source, -symtab, -vcg, -バージョン, -ワードサイズ,
-ラップ。 デフォルト = はい。

解析エラー (認識されないステートメントまたは不正な形式のステートメントによる構文エラー) は、
次の場合には結果が不正確になる可能性があるため、このスイッチによって抑制されます。 フトチェク 持っていない
プログラムを正しく解析しました。

によって制御されないさまざまなエラーや警告メッセージがいくつかあります。
他のスイッチと連動するため、このスイッチでのみオフにできます。 使用することに注意してください
-小切手 フォロー中 -ノーチェック これらの特別な警告を無効にする効果のみがあります
オンに戻しても、オフにしたすべてのチェックは復元されません。 これらの警告は次のとおりです。

o モジュールには実行可能なステートメントが含まれていません。

o フリーソース形式では、スペースが必要な場所にスペースがありません (例:
キーワードと識別子)、または何も許可されていない場所に存在するスペース(例:
識別子)。

o 形式のデータ型宣言におけるゼロまたは負の長さの指定
タイプ*レン。

o 式内のオペランドが無効です。

o スカラーに割り当てられた配列。

o DO インデックスと境界間の型の不一致。

o SAVE ステートメントで宣言された未定義の共通ブロック。

o 互換性のない型で明示的に宣言された組み込み関数。

o INTRINSIC ステートメントで明示的に宣言された不明な組み込み関数。

o サブプログラムの引数として渡された組み込み関数が、
INTRINSIC ステートメント。

o 組み込み関数またはステートメント関数が正しく呼び出されません。

o 関数は RETURN ステートメントの前に戻り値を設定しません。

o パラメーター定数値は評価されません (これは フトチェクのせいだし、それはただのことだ
その事実をお知らせします)。

o サブプログラムのエントリ ポイントは、後で別のサブプログラムの名前として使用されます。

o I/O ステートメントで不明なキーワードが使用されています。

o 不正なラベル参照 (例: GOTO は実行不可能なステートメントを参照します。I/O
ステートメントは非フォーマットステートメントを指します)。

も参照してください。 -エラー.

-列=NUM
ステートメントの最大長を次のように設定します NUM 列。 (これ以降は無視されます。)
Fortran に違反する可能性のあるプログラムをチェックできるようにする設定が提供されています。
ステートメントの長さの標準制限は 72 列です。 による
標準では、列 72 以降の文字はすべて無視されます。 この設定を使用すると、
  -f77=長蛇の列 オプションが有効な場合、次の行に対して警告が表示されます。
列 72 以降のどの文字が処理されるか。 ターンオン = 最大 = 132。デフォルト = 72。

この設定では、次の文字の存在に関する警告が抑制されません。
列 72。列 72 を超えて意味のあるプログラム テキストを含むコードを処理するには、これを使用します。
設定して、 -f77 延縄 オプションはオフです。 コードを処理するには
列 73 ~ 80 にシーケンス番号を入力します。列の設定はデフォルトのままにします。
値を設定して使用します -pretty=長蛇の列なし フラグ。

も参照してください。 -f77, -可愛い.

-共通=リスト
この設定は、COMMON ブロックのチェックの厳密さを制御します。 デフォルトでは、すべて
警告を除く オンになっています。

  リスト カンマまたはコロンで区切られたキーワードで構成されます。 これらのほとんどは
警告はデフォルトでオンになっており、接頭辞が次のキーワードが含まれます。 NO- をオフにする
特別な警告。 特別なキーワードが XNUMX つあります。 すべてをオンにするには
警告、 なし それらをすべてオフにし、 助けます すべてのキーワードのリストを印刷するには
それぞれの簡単な説明付き。 もし リスト 省略、 -一般 に相当します
-common=寸法、正確、長さ、タイプ, -nocommon に相当します -common=なし.
警告キーワードとその意味は次のとおりです。

大きさ:
ブロックの各宣言内の対応する配列はサイズが一致する必要があり、
次元の数。 このオプションは、と一緒に使用した場合にのみ効果があります。
正確な.

正確な:
XNUMX つのブロックの比較は、単純にではなく変数ごとに行われます。
対応する保管場所間の合意が必要です。 すべての場合はこれを使用してください
特定の COMMON ブロックの宣言は同一であると想定されています。
良いプログラミングの練習になります。

長さ:
同じブロックの異なる宣言の全長が等しくない場合に警告します。
Fortran 77 標準では、それぞれの名前付き共通ブロックが必要ですが、空白の共通ブロックは必要ありません。
プログラムのすべてのモジュールで同じ長さになるようにします。

type:
特定の COMMON ブロックの各宣言内で、対応するメモリ位置
(ワードまたはバイト) のデータ型が一致する必要があります。 併用すると 正確な、 この
対応する変数のデータ型が一致する必要があります。

:
COMMON ブロックは揮発性であると仮定します。

多くの Fortran プログラマは、ローカル変数か COMMON 変数かにかかわらず、変数は
静的、つまり、一度値が割り当てられると、その値は次の期間まで永続的に保持されます。
プログラムによって別の値が割り当てられます。 しかし、実際には Fortran 77
標準では、これが当てはまる必要はありません。 ローカル変数は次のようになります。
それらが宣言されているモジュールのアクティブ化の間は未定義です。 同様に、
COMMON ブロックが宣言されているモジュールがない場合、COMMON ブロックは未定義になる可能性があります。
アクティブ。 (この動作を持つエンティティの専門用語は「自動」ですが、
フトチェク 非専門家にとってはわかりやすいため、「揮発性」という言葉を使用しています。)
SAVE ステートメントで宣言された COMMON ブロック、またはメイン プログラムまたは
ブロック データ サブプログラムは、プログラムが実行されている限り定義されたままになります。 変数
ある時点で未定義になる可能性のある COMMON ブロックは、揮発性と呼ばれます。

Status -common=揮発性 フラグがオンになり、 フトチェク を見つけた場合は警告します
揮発性の COMMON ブロック。 同時に、 -usage=com-block-volatile オプション
オンになっています (これがデフォルトです)。 フトチェク そのようなブロックがあるかどうかを確認しようとします
定義されたステータスは、モジュールのアクティブ化の間に失われる可能性があります。
宣言された。 フトチェク はこれに関してあまりうまく機能しません。使用されるルールは、
ブロックが呼び出しツリーの XNUMX つの別々のサブツリーで宣言されているかどうか。 のために
たとえば、XNUMX つのモジュールが両方ともメイン プログラムから呼び出された場合にこれが当てはまります。
揮発性の COMMON ブロックを共有しました。 ブロックは XNUMX つのブロックの間で未定義になることもあります。
同じサブプログラムの連続呼び出しですが、 フトチェク 言えるほど賢くない
サブプログラムを複数回呼び出すことができるかどうかを判断するため、この場合はチェックされません。

  -common=揮発性 フラグは方法に影響を与えません フトチェク ローカルの使用状況をチェックします
変数。

以前のバージョンとの互換性のために フトチェク、これの数値形式
設定も受け入れられます: リスト は 0 ~ 3 の数値に置き換えられます。
0 はすべての警告をオフにし、1 以上はオンにします type、2つ以上がオンになります。
長さ、3回オン 大きさ & 正確な また。 数値フォームをオンにできません
  オプションを選択します。

も参照してください。 -図書館, -利用方法.

-crossref=リスト
相互参照テーブルを印刷します。 デフォルト = なし。

  リスト カンマまたはコロンで区切られたキーワードで構成されます。 を含むキーワード
それらの意味は次のとおりです。

呼び出し:
表には、各サブプログラムのリストと、それを呼び出すルーチンのリストが続きます。
このリストでは、メインの呼び出しツリーにないライブラリ モジュールは省略しています。
プログラム。 リストはアルファベット順に並べられています。

一般的な:
表には、各 COMMON ブロックのリストと、それにアクセスするルーチンのリストが続きます。
それ。 これらのリストされたルーチンは、COMMON の一部の変数が含まれるルーチンです。
ブロックを宣言するルーチンだけではなく、ブロックがアクセスされます。 (に
COMMON ブロックを宣言しているのに使用していないルーチンを見つけてください。
-利用方法 国旗。)

ラベル:
表には、各ラベルのリストと、そのラベルへのすべての参照のリストが続きます。 ラベル
参照は、参照元の行番号とステートメントの種類によって示されます。
声明。 ラベルリストは順番に並んでいます。 参考文献は、
プログラム内で出現する順序でリストされています。

も参照してください。 -コールツリー, -参照, -選別, -symtab, -vcg.

-宣言する
このフラグが設定されている場合、各モジュールでデータ型が宣言されていないすべての識別子が
が列挙されます。 このフラグは、スペルミスのある変数名を見つけるのに役立ちます。
モジュールに IMPLICIT NONE が含まれている場合も同じリストが表示されます。
声明。 デフォルト = いいえ。

も参照してください。 -XNUMX文字, -利用方法.

-分割
このスイッチは、ユーザーが潜在的なゼロ除算の問題を発見できるようにするために提供されています。 もし
このスイッチが選択されている場合、定数による除算を除くすべての除算にフラグが立てられます。 (それ
ユーザーは定数で割らないほどの知性を持っていると想定されます。
ゼロに等しい!) デフォルト = いいえ。

も参照してください。 -携帯性, -切り捨て.

-エラー=NUM
「カスケード」内のエラー メッセージの最大数を設定します。 のチェック中
サブプログラムの引数、共通ブロック宣言などの一致、
場合によっては、XNUMX つのケースで長い文字列の警告が生成されることがあります。 多くの場合、これは単に
は、本物の品目ごとの不一致以外の何らかの原因を示します。
たとえば、あるリストから変数が欠落している場合です。 したがって、そのような場合には フトチェク 印刷を停止します
カスケード制限に達した後の警告、およびトレーラー「etc...」
印刷されていないエラーがさらにあったことを示すために印刷されます。 そう思ったら
これらの警告は本物である可能性が高く、さらに多くの警告を表示するにはこの設定を使用します。
オン = デフォルト = 3、最大 = 999。値 0 は制限がないことを意味します。

この設定では、印刷されるエラー メッセージの数に全体的な制限は設定されません。
いずれか XNUMX つのカスケードで出力される番号のみ。 ほとんどの種類の警告とエラー
メッセージはカスケード効果の影響を受けないため、この影響を受けません。
設定。 警告を全般的にオフにするには、個別の警告コントロールを使用します。
オプションまたは -ノーチェック オプションを選択します。

も参照してください。 -小切手.

-外部
目的 フトチェク プログラムによって呼び出されたサブプログラムが一度も実行されないかどうかを報告します。
定義されています。 通常であれば、 フトチェク それぞれが完全なプログラムで実行されています。
組み込み関数以外のサブプログラムはどこかに定義する必要があります。 振り向く
ファイルの一部を形成するファイルのサブセットをチェックしたいだけの場合は、このスイッチをオフにします。
より大きな完全なプログラム。 サブプログラムの引数は引き続きチェックされます
正しさ。 デフォルト = はい。

  -外部 フラグは現在、 -usage=ext-未定義 オプション。 のために
便宜上、 -外部 フラグは保持されるため、 -noextern 同等です
〜へ -usage=no-ext-未定義 オプション。 ザ· -外部 スイッチは最終的に廃止される可能性があります。

も参照してください。 -図書館.

-f77=リスト
Fortran 77 に違反する言語拡張を検出するには、この設定を使用します。
標準。 このような拡張子により、プログラムが移植できなくなる可能性があります。 例
変数名にはアンダースコアを使用します。 XNUMX つを超える変数名
キャラクター。 72 文字を超えるステートメント行。 および非標準的なステートメント
DO ... ENDDO 構造など。 フトチェク の使用については報告していない
小文字。 デフォルトでは、すべての警告がオフになっています。

この設定では、サポートされている拡張機能に関する警告を詳細に制御できます。
Fortran 77 標準に準拠します。 (拡張機能自体の詳細については、
以下の拡張機能のセクションで説明します)。 リスト 区切られたキーワードで構成されます
カンマまたはコロンで区切ります。 特別なキーワードが XNUMX つあります。 すべてをオンにするには
非標準の拡張機能に関する警告、 なし それらをすべてオフにし、 助けます 印刷する
すべてのキーワードのリストとそれぞれの簡単な説明。 もし リスト 省略、
-f77 に相当します -f77=すべて, -nof77 に相当します -f77=なし。 警告
キーワードとその意味は次のとおりです。

受け入れタイプ:
ACCEPT および TYPE I/O ステートメント。

配列の境界:
配列要素または関数を含む配列境界を定義する式
参照。

代入文:
配列を含む代入ステートメント。 Fortran 90 では、配列は次のようになります。
互換性のある形状の別の配列に割り当てるか、スカラーを割り当てることができます。
配列。 これらの代入はどちらも Fortran 77 では許可されません。

配列がスカラーに割り当てられると、関連する警告が発生します。 これから
Fortran 90 でも違法です。
-f77 設定 (すべてのチェックがオフになっていない限り) -ノーチェック 国旗)。

属性ベースの宣言:
新しい Fortran 90 属性ベースのスタイルでの型宣言。 このスタイルの
宣言は、
属性のリストと宣言された変数のリスト。 このオプションも
型での Fortran 90 の長さまたは種類の指定子の使用に対する警告を制御します
宣言。 (ただし、これらの指定子は非属性ベースでも使用できます)
宣言の蔓延を避けるために、このオプションによって制御されます。
-f77 オプション。)

自動配列:
可変サイズのローカル (ダミーではない) 配列。 これらは以下に相当します
実行時にストレージを動的に割り当てる必要がある配列。

バックスラッシュ:
文字列内の Unix バックスラッシュ エスケープ。 この警告は、次の場合にのみ表示されます。
-source=unix-バックスラッシュ エスケープを引き起こす設定が指定されています
バックスラッシュの解釈..

バイト: BYTE データ型宣言。

ケース構築:
SELECT CASE 構造。

文字:
文字データに関する Fortran 77 標準の拡張。 現在のところ、
これは、ゼロまたはゼロで宣言された文字変数に関する警告のみを制御します。
マイナスの長さ。 Fortran 77 では、すべての文字変数は正の値でなければなりません
長さ。 Fortran 90 では、長さをゼロにすることができ、次のような宣言を行うことができます。
負の長さが許可されることを指定し、宣言された長さに対してゼロに変換します。
長さ。 注: 負の長さ指定子はプログラミングを示す可能性があるため、
エラーの場合、このオプションがオフになっている場合でも、それらに関する警告が表示されます。
によってのみ抑制されます。 -ノーチェック フラグ。

共通サブプログラム名:
同じ名前の共通ブロックとサブプログラム。

構成名:
構成名を使用して制御ステートメントにラベルを付ける。

継続:
19 行以上の連続した継続行。

cpp: ソース コード内の Unix C プリプロセッサ ディレクティブ。

クレイポインター:
「クレイポインタ」構文。

サイクル出口:
CYCLE ステートメントと EXIT ステートメント。

dコメント:
ソース コード内の D で始まるデバッグ コメント。

decタブ:
DEC Fortran スタイルのタブ形式のソース コード。 この警告は、
もし -source=dec-tab タブを解釈する設定が指定されています
このスタイルで。

ドエンドド:
DO ループの拡張: 終端ステートメントのラベルの省略、END DO、および WHILE。

二重複合体:
倍精度の複合データ型。

フォーマット-ドル記号:
FORMAT ステートメント内のドル記号制御コード。

フォーマット編集説明:
FORMAT ステートメント内の非標準編集記述子。

関数のパレン:
括弧のない関数定義。

暗黙的なし:
IMPLICIT NONE ステートメント。

include:
INCLUDE ステートメント。

インラインコメント:
感嘆符で始まるインライン コメント。

内部リスト io:
内部ファイルとの間のリスト指向 I/O。

本質的な:
非標準の組み込み関数。

io-キーワード
I/O ステートメントで使用される非標準キーワード。 これらは XNUMX つのグループに分類されます。
最初のグループには、Fortran 90 で受け入れられるキーワードが含まれます。

アクションパッドの読み書き
アドバンスポジションサイズ
デリム読み取り書き込み
EOR
XNUMX 番目のグループは、次の VMS Fortran キーワードで構成されます。

ブロックサイズ拡張サイズ読み取り専用
バッファカウント 初期サイズ レコードサイズ
CARRIAGECONTROL MAXREC RECORDTYPE
デフォルトファイル名 (オープン時) 共有
ディスプレイノスパンブロックタイプ
組織を処分する
(キーワード NAME は、INQUIRE ステートメントでのみ標準です。) XNUMX 番目
グループは、次の IBM/MVS キーワードで構成されます。

NUM
このフラグは、ACCESS='APPEND' の使用に関する警告も制御します。
一部のコンパイラで受け入れられます。 「APPEND」の値はどの I/O にも無効です
標準 Fortran 77 および Fortran 90 では指定子 'APPEND' を使用する必要があります
ACCESS ではなく、POSITION 指定子の値として。

延縄:
72 列を超えた意味のあるコードを含むステートメント。 この警告は、
もし -列 この設定は、ステートメントのフィールド幅を増やすために使用されています。

長い名前:
6 文字を超える識別子。

混合共通:
COMMON ブロック内の文字データと非文字データが混在しています。

混合式:
式内の非標準型の組み合わせ (DOUBLE PRECISION など)
COMPLEX を使用して、ホレリスを整数に割り当て、整数の論理演算を行います。

名前-ドルサイン:
識別子の文字として使用されるドル記号。

名前-アンダースコア:
識別子の文字として使用されるアンダースコア。

名前リスト:
NAMELIST ステートメント。

param-暗黙的なタイプ:
割り当てられた値のデータ型によるパラメータの暗黙的な型指定。 これ
警告は、暗黙的なパラメータの入力が有効になっている場合にのみ発生します。
-source=param-暗黙的タイプ オプション、または PARAMETER ステートメントが
括弧のない非標準形式。 このオプションがオンになっている場合、
暗黙的なパラメータの入力が発生するインスタンスについては警告が表示されます。 もし
暗黙的なデータ型が存在する場合にのみ警告を受け取りたい場合
デフォルトのタイプとは異なります。使用してください -portability=param-暗黙的タイプ を代わりにお使いください。
Fortran 77 標準に従って、パラメータのデータ型は次のように指定されます。
変数と同じ規則に従い、必要に応じて型変換が行われます。
値が割り当てられると完了します。

param 組み込み:
の値を定義するために使用される組み込み関数または実数によるべき乗
パラメータの定義。

パラノパレン:
括弧のない PARAMETER ステートメント。 ユーザーは次のことに注意する必要があります。
この形式のステートメントのセマンティクスは標準のセマンティクスとは異なります
フォーム: このフォームでは、パラメータは値からデータ型を取得します。
最初の文字に基づいてデフォルトのデータ型を設定するのではなく、割り当てられます。
パラメータ名の。 (この形式の PARAMETER ステートメントは導入されました
Fortran 77 標準が定義される前に DEC によって定義されているため、これは避けるべきです。)

ポインタ:
Fortran 90 の標準ポインター関連構文 (POINTER、TARGET、および
ALLOCATABLE 型宣言、ALLOCATE、DEALLOCATE、および NULLIFY ステートメント、
=> を使用したポインタの割り当て。

クワッド定数:
1.23 倍精度の実定数 (例: 4QXNUMX の形式)。

引用符:
アポストロフィではなく引用符で区切られた文字列。

再発:
句読点で構成される関係 (比較) 演算子、つまり < <= == /=
> >=。

セミコロン:
ステートメントの区切り文字としてセミコロンが使用されます。

ステートメントの順序:
標準で義務付けられている順序から外れたステートメント。 許可されたもの
シーケンスは、出力の解釈に関するセクションの表 1 に示されています。

型なし定数:
型なし定数 (Z'19AF' など)。

タイプサイズ:
サイズを指定する型宣言 (REAL*8 など)。

可変形式:
FORMATの可変リピート指定またはフィールドサイズ。 これらは次のような形式です
< >.

vms-io:
廃止。 Now はと同じ意味を持ちます io-キーワード キーワード。

も参照してください。 -f90, -f95, -携帯性, -可愛い, スタイル, -ワードサイズ.

-f90=リスト
この設定では、サポートされている拡張機能に関する警告を詳細に制御できます。
Fortran 77 の一部として採用されなかった Fortran 90 標準に準拠
標準。 ご了承ください フトチェク は、完全な Fortran 90 言語をサポートしていません。
ただし、普及していた Fortran 77 へのいくつかの一般的な拡張機能はサポートしています。
Fortran 90 が定義される前。 これらの拡張機能の一部は Fortran の一部になりました。
90 は標準ですが、他のものはそうではありませんでした。 の -f90 設定では後者についてのみ警告します。
つまり、このフラグは、Fortran 77 の合法でも合法でもないものをカバーします。
Fortran 90。したがって、このフラグで制御される警告は基本的にサブセットです。
によって管理される警告のうち、 -f77。 以下に説明するように、いくつかのケースがあります。
警告が発せられる状況は両者で若干異なります。
フラグ。

  リスト カンマまたはコロンで区切られたキーワードで構成されます。 XNUMXつあります
特別なキーワード: 非標準の拡張機能に関するすべての警告をオンにするには、
なし それらをすべてオフにし、 助けます すべてのキーワードのリストを出力するには、
それぞれの簡単な説明。 もし リスト 省略、 -f90 に相当します -f90=すべて,
-nof90 に相当します -f90=なし.

次のキーワードは同じ意味を持ちます。 -f90 はどうかと言うと -f77。 読者は
以下の説明を参照 -f77.

受け入れタイプ 二重複合体 パラノパレン
バックスラッシュ フォーマット-ドル記号 クレイポインター
バイト フォーマット編集説明 クワッド定数
cpp 関数のパレン タイプサイズ
dコメント 名前-ドルサイン 可変形式
decタブ param-暗黙的なタイプ vms-io

対応するキーワードと若干異なるキーワード -f77 キーワードは次のとおりです
続く。

継続:
固定ソース内のステートメントの継続行数の制限
Fortran 19 でも Fortran 90 の形式は同じ、つまり 77 です。 無料のソースの場合
制限は 39 継続行であり、継続を含む行は XNUMX 行です。
マークを空にしたり、コメントのみを含めたりすることはできません。

本質的な:
これは次の場合と同じです -f77 で定義された組み込み関数を除く
MIL-STD 1753。これらはすべて Fortran 90 に含まれているため、警告されません
について。 (見る -本質的 リストを参照してください。)

io-キーワード:
これは次の場合と同じです -f77 ただし、I/O に関する警告は表示されません。
Fortran 90 の標準のキーワード。

延縄:
Fortran 90 標準では 72 文字を超える行が許可されていますが、
無料のソース形式であっても、この制限は固定ソース形式にも適用されます。 で
無料のソースフォームでは、行の長さの制限は 132 文字であり、固定とは異なります。
形、 フトチェク この制限を増やすことはできません。

混合式:
これは次の場合と同じです -f77 拡張精度が混在する式を除く
Fortran 90 で許可されている複雑なデータ型を持つ real。

ステートメントの順序:
これは対応するものと同様です -f77 警告ですが、多少は適用されます
Fortran 90 標準のステートメントの順序に関する制限が緩和されました。 で
特に、Fortran 90 では DATA ステートメントとステートメント関数が使用できます。
定義は仕様ステートメントと混合する必要があります。

型なし定数:
Fortran 90 では、B'ddd' 形式の XNUMX 進数、XNUMX 進数、および XNUMX 進数の定数。
O'ddd' と Z'ddd' はそれぞれ許可されます。 ここで、「ddd」は
数字の文字列。 フトチェク これらの形式だけでなく、次の形式も認識します。
XNUMX 進定数を表す X'ddd' 形式と、
基本標識 B、O、Z、または X が数字列の後に続きます。 これらの亜種は、
Fortran 90 では採用されていないため、このフラグが設定された場合にのみ警告されます。
オン。

も参照してください。 -f77, -f95, -携帯性, -可愛い, スタイル, -ワードサイズ.

-f95=リスト
この設定では、標準 Fortran 77 に関する警告を詳細に制御できます。
Fortran 95 標準から削除された機能。 とは異なり、 -f77 & -f90
設定では、これらの警告は Fortran 77 で有効な構文に適用されます。
これらの機能は標準から削除されているため、プログラムが
これらを含むものは、一部の新しいコンパイラでは受け入れられません。

  リスト カンマまたはコロンで区切られたキーワードで構成されます。 XNUMXつあります
特別なキーワード: 非標準の拡張機能に関するすべての警告をオンにするには、
なし それらをすべてオフにし、 助けます すべてのキーワードのリストを出力するには、
それぞれの簡単な説明。 もし リスト 省略、 -f95 に相当します -f95=すべて,
-nof95 に相当します -f95=なし。 警告キーワードとその意味は次のとおりです。
続く。

本当のこと:
任意の実数値型の DO 変数。

一時停止:
PAUSE ステートメント。

割り当てます:
ASSIGN ステートメント、割り当てられた GOTO、または割り当てられた形式。

h-edit:
フォーマット内の H 編集記述子。

Fortran 77 では削除された Fortran 95 構文機能がもう XNUMX つあります。
IF ブロックの外側から ENDIF に分岐します。 しかし、 フトチェク することができません
プログラム フローを分析するため、これに対する警告は表示されません。

も参照してください。 -f77, -f90, -携帯性, -可愛い, スタイル, -ワードサイズ.

-助けて
すべてのコマンドライン オプションのリストと各オプションの簡単な説明を出力します。
デフォルト値とともに。 このコマンドの機能は次のコマンドと同じです。 「?」
引数であり、質問が行われるシステムの便宜のために提供されています。
マークはコマンドインタープリタにとって特別な意味を持ちます。 デフォルト = いいえ。

ヘルプ リストには、バージョン番号とパッチ レベルも表示されます。 フトチェク フォルダーとその下に
著作権表示。

注: ヘルプ リストの角括弧内に印刷されている「デフォルト」値は、次のとおりです。
厳密に言えば、組み込みのデフォルト値ではなく、追加後の現在の値です。
環境オプションと、その前にあるコマンドライン オプション -助けて オプションあり
処理された。

も参照してください。 -初心者, -バージョン, 助けます のリストを取るすべての設定のオプション
キーワード。

-識別子-文字=リスト
識別子に使用できる英数字以外の文字を定義します。 デフォルトでは、
フトチェク 英数字以外の文字としてドル記号とアンダースコアのみを受け入れます
識別子の名前に。 の登場人物 リスト 受け入れられたセットを置き換えます
以前は英数字以外の文字が有効でした。 したがって、ドル記号または
アンダースコアはリストに含まれていないため、許容されるステータスを失います。
文字。

このオプションは、有効にするために提供されています。 フトチェク 非を含むソース ファイルを処理するには
たとえば、特定のファイルにアクセスするために必要となる可能性のある標準識別子名
オペレーティング システム サービス。 の制限と拡張機能に関するセクションを参照してください。
暗黙的な型付けにおけるこれらの文字を含む識別子の処理。

使い方 -noidentifer-chars 英数字以外の文字の受け入れをオフにします
完全に。

も参照してください。 -source.

-include=path
INCLUDE ステートメントで指定されたファイルを検索するディレクトリを指定します。
他のコマンドライン オプションとは異なり、この設定は累積的です。 つまり、そうであれば
コマンドラインで複数回指定すると、指定されたすべてのディレクトリが
指定されたのと同じ順序で検索されるリストに配置されます。 の
どの順番で フトチェク 含めるファイルを検索します: 現在の
ディレクトリ; 環境変数 FTNCHEK_INCLUDE で指定されたディレクトリ (存在する場合)。
任意で指定されたディレクトリ -含める オプション。 で指定されたディレクトリ
環境変数 INCLUDE; そして最後に標準のシステム全体のディレクトリに
(/ usr / include UNIX の場合は SYS$LIBRARY、VMS の場合は \include)。

も参照してください。 -f77, -source.

-固有=リスト
かどうかを制御します。 フトチェク 特定の非標準組み込み関数を次のように認識します。
本質的な。 の リスト カンマまたはコロンで区切られたキーワードで構成されます。 いくつかの
キーワードは、特定の関数グループを認識するかどうかを制御します。
キーワードは、一部の非標準組み込み関数を呼び出すために予期される構文を制御します。
対応する組み込みセットの認識を有効にするキーワードを含めるか、
対応する構文を許可します。 接頭辞が付いたキーワードを含めます NO- 電源を切るために
その認識。

特別なキーワードが XNUMX つあります。 すべての非標準の認識をオンにします
組み込み (以下にリスト) を使用し、バリエーションがあるものについてはどちらの構文も受け入れます。
  なし 指定されたものを除くすべての非標準組み込み関数の認識をオフにします。
下に。 使用 助けます すべてのキーワードのリストと簡単な説明を出力します。
それぞれ。 もし リスト 省略、 -本質的 に相当します -intrinsic=すべて,
-非本質的 に相当します -intrinsic=なし.

非標準の拡張機能をサポートするために必要な非標準の組み込み関数
精度データ型 (倍精度および四倍精度) は常に認識されます。
double 複素数データ型の組み込み関数は次のとおりです。

CDABS CDSQRT DREAL ZLOG
CDCOS DCMPLX IMAG ZSIN
CDEXP DCONJG ZABS ZSQRT
CDLOG DIMAG ZEXP ZCOS
CDSIN
XNUMX 倍精度および XNUMX 倍複素数型の組み込み関数は次のとおりです。

CQABS QARCOS QEXT QNINT
CQCOS カルシン QEXTD QPROD
CQEXP カタン QFLOAT QREAL
CQLOG QATAN2 QIMAG QSIGN
CQSIN QCMPLX QINT QSIN
CQSQRT QCONJG QLOG QSINH
DBLEQ QCOS QLOG10 QSQRT
IQINT QCOSH QMAX1 QTAN
IQNINT QDIM QMIN1 QTANH
QABS QEXP QMOD SNGLQ
他の非標準組み込み関数の認識を制御するキーワードは次のとおりです。
次のように:

余分な:
以下の一般的に利用可能な非標準組み込み関数を認識します (例外はすべて
EXIT と LOC は MIL-STD 1753 で定義されています)。

BTEST IBCLR IEOR ISHFTC
IBITS IOR LOC から出る
IAND IBSET ISHFT NOT

UNIX: これらの一般的な Unix 固有の組み込み関数を認識します。

GMTIME LTIME SRAND を中止する
および IARGC またはシステム
GETARG イランランド時間
GETENV LSHIFT RSHIFT XOR

VM: これらの一般的な VMS 固有の組み込み関数を認識します。

日付 IDATE 秒 時刻

エラー RAN SIZEOF

iargc-引数なし:
IARGC を引数なしで呼び出せることを指定します。

iargc-XNUMX-引数:
IARGC を XNUMX つの引数で呼び出せることを指定します。

引数なしのランド:
RAND と IRAND を引数なしで呼び出せることを指定します。

ランド XNUMX 引数:
RAND と IRAND を XNUMX つの引数で呼び出せることを指定します。

  引数なし & XNUMX つの引数 キーワードは次のように機能します: オプションをオンにします
原因 フトチェク 関数の呼び出しに対応する構文を受け入れるには、
代替構文の可能性を排除するものではありません。 オプションを回すと
off を指定すると、対応する構文が受け入れられなくなります。 両方のオプションがオンになっている場合
on at Once (デフォルト) の場合、どちらの構文も受け入れられます。 両方のオプションをオフにする
すぐには意味がありません。 これらのオプションは、
Unix 組み込み機能がオフになっています。

この設定は、標準以外の警告を発行するかどうかを制御しないことに注意してください。
これらの機能について。 関数が次のように仮定されるかどうかを制御します。
組み込みかどうかによって、使用状況がどのようにチェックされるかが決まります。 で機能する場合
これらのセットのいずれかが含まれている場合、それらの呼び出しは次に従ってチェックされます。
組み込み関数のルール。 それ以外の場合は、通常どおりチェックされます (ユーザー
書かれています)外部関数。 非標準の警告は、
-f77=組み込み オプションを選択します。

この設定のデフォルト値は次と同等です。 -intrinsic=すべて 続い
-intrinsic=no-vms Unix バージョンの場合、 -intrinsic=no-unix VMS バージョンの場合、および
-intrinsic=no-unix、no-vms 他のバージョンの場合。

注: のバージョンでは、 フトチェク 2.10 より前は、 -本質的 フラグは数値を取りました
オプションのリストの代わりに引数を使用します。 書き込んだ可能性のあるユーザーのために
スクリプトの呼び出し フトチェク このように、数値形式は引き続き受け入れられます。 の
設定の数値形式は XNUMX 桁で構成されます。 一の桁は、
サポートされる組み込み関数のセット。 数字 0 は Fortran 77 のみを選択します
標準の組み込み関数に加えて、非標準の拡張精度をサポートするために必要な組み込み関数
データ型。 数字の 1 は次と同等です。 余分な、2は次と同等です。 余分な、UNIX,
3 は次と同等です 追加、vms。 この設定の XNUMX の位は構文を制御します
RAND 組み込み関数の XNUMX の位の桁は、RAND 組み込み関数の構文を制御します。
IARGC関数。 これらの数字に 0 を指定すると、何も指定せずに呼び出すことができます。
引数、1 は 2 つの引数を必要とする場合、XNUMX はいずれかの形式を許可します。

も参照してください。 -f77.

-図書館
このスイッチは、ファイルに多数のサブプログラムが含まれている場合に使用されますが、
それらはすべてアプリケーションによって使用されます。 通常は、 フトチェク あれば警告します
サブプログラムは定義されていますが、決して使用されません。 このスイッチはこれらの警告を抑制します。
デフォルト = いいえ。

このスイッチは、どのサブプログラム呼び出しと COMMON ブロック宣言を制御するかも制御します。
チェックした。 ファイルが読み取られた場合、 -図書館 フラグが有効な場合、サブプログラムは呼び出します
そして、そのファイル内のルーチンに含まれる COMMON 宣言は、次の場合にのみチェックされます。
そのルーチンはメイン プログラムの呼び出しツリーにあります。 一方、
-図書館 スイッチがオフになってから、 フトチェク すべてのルーチンの呼び出しをチェックします。
他のルーチンは、それらのルーチンが実際に存在するかどうかに関係なく、
実行時に呼び出され、同様にすべての COMMON ブロック宣言が比較されます。
契約。

このスイッチとの違いは、 -usage=no-ext-unused のオプション
サブプログラムは、後者がルーチンに関する警告のみを抑制するという点です。
宣言されていますが、使用されていません。 の -図書館 スイッチはさらに進んで未使用のものを除外します
引数のすべてのクロスチェックが有効な間に処理されたルーチンと
COMMON ブロック宣言も同様です。

(ファイルセットのどこにもメインプログラムがない場合、 フトチェク 読んだので、
コールツリーがないということは、 フトチェク ライブラリ以外のルーチンを探します
他のルーチンによって呼び出されず、これらをメインのルーチンの代わりとして使用します。
呼び出しツリーを構築し、何をチェックするかを決定するプログラム。 そのようなトップがなければ、
レベルの非ライブラリ ルーチンが見つかり、すべてのモジュール間呼び出しとすべての COMMON
申告内容はチェックされます。)

も参照してください。 -引数, -コールツリー, -一般, -外部, -利用方法.

-リスト
Fortran プログラムのリストを行で出力することを指定します。
数字。 もし フトチェク エラーを検出すると、プログラム行の後にエラーメッセージが続きます
キャレット ( ^ ) を使用してエラーの場所を指定します。 ソースリストが存在しなかった場合
要求された、 フトチェク エラーを含む行は引き続き出力されます。
エラーが発生した場所を特定するのはユーザーです。 デフォルト = いいえ。

も参照してください。 -出力、\fB-symtab, FB-静か.

-madecls=リスト
変数の宣言、共通ブロック、および
namelist リスト (ソース コードにマージできるようにするため)。 宣言は次のとおりです
ソースコードと同じ名前のファイルに保存されますが、拡張子は
に変わった .dcl。 ファイルに宣言が書き込まれていない場合、そのファイルは削除されます。
空のファイルによる混乱を軽減します。

入力が名前付きファイルではなく標準入力からのものである場合、宣言は次のようになります。
標準出力に書き込まれます。

変数は各宣言クラス内でアルファベット順に宣言され、
型。後で配列で使用できるため、最初に整数変数を使用します。
寸法

PARAMETER ステートメントは、アルファベット順ルールの例外です。
Fortran 77 標準では、パラメータ値を定義する式が参照する必要があります。
定数とすでに定義されているパラメータ名のみ。 これにより、オリジナルが強制されます
宣言ファイルに保存されるステートメントのソース ファイル順序。

の明示的な宣言 変数は現代の優れたプログラミングとみなされます
練習する。 コンパイラ オプションを使用して、宣言されていない変数、スペルミスを拒否することにより、
変数名 (または列 72 を超えた名前) はコンパイル時に捕捉できます。
明示的な宣言により、浮動小数点精度の変更も大幅に容易になります。
などのフィルターを使用すると、 dtoq(1L)、 dtos(1L)、 fd2s(1L)、 fs2d(1L)、 qtod(1L)、および
ストッ(1L)。 これらのプログラムは、明示的な浮動小数点の型を変更できます。
型宣言、組み込み関数、および定数を使用できますが、これらはそうではないためです。
Fortran ソース コードの厳密な語彙および文法分析を実行します。
未宣言の変数に対して変更された型宣言を提供することはできません。 デフォルト
設定 = 0、オン = 1。

宣言ファイルの形式に関するさまざまなオプションは、 リスト,
カンマまたはコロンで区切られたキーワードで構成されます。 スペシャルはXNUMXつあります
キーワード: すべてのオプションをオンにするには、 なし それらをすべてオフにし、 助けます 〜へ
すべてのキーワードのリストとそれぞれの簡単な説明を出力します。 もし リスト is
省略、 -makecls に相当します -makedcls=宣言 (つまり、
デフォルトのオプションを使用した宣言ファイル)、および -nomakedcls に相当します
-makedcls=なし.

以前のバージョンとの互換性のために フトチェク、この設定の数値形式
も受け入れられます: リスト 数値の合計である数値に置き換えられます
次のリストのキーワードの横のかっこ内にあります。 警告キーワード
それぞれの意味は次のとおりです。

宣言 (1):
宣言ファイルを作成します。 (これは他のオプションのいずれかによって暗黙的に示され、
他のオプションが指定されている場合は省略できます。)

未申告のみ (2):
デフォルトでは、すべての変数が宣言ファイルに含まれます。 これとともに
オプション、のみを含める 宣言されていない 変数。 この設定は、次のような場合に役立ちます。
Fortran ソース ファイルにはすべての変数が含まれているため、宣言されていない変数をチェックしたい
変数が適切に宣言されていても、 .dcl ファイル。 これとともに
オプションを使用すると、共通ブロックと名前リストリストは
宣言ファイルの性質上、宣言を解除することはできないためです。

コンパクト (4):
宣言は通常、共通してきれいに並ぶようにきれいに印刷されます。
Extended PFORT Verifier によって出力される宣言ファイルの場合と同様に、列
努力する(1L)。 このオプション値は、代わりに列のないコンパクトな出力を選択します。
アライメント。

継続行の使用 (8):
可能な場合は継続行が使用されます。 デフォルトは次のとおりです
各行で新しい宣言を開始します。 このオプションは使用に適しています
ととも​​に コンパクト.

キーワード - 小文字 (16):
Fortran キーワードをデフォルトの大文字ではなく小文字で出力します。

vars-and-consts-小文字 (32):
変数と定数をデフォルトではなく小文字で出力します
大文字。 文字列定数はこのオプションの影響を受けません。

除外-sftran3 (64):
SFTRAN3 によって生成される内部整数変数の宣言を省略します。
プリプロセッサ、 xsf3(1L)、構造化 Fortran の翻訳の一部として
通常の Fortran へのステートメント。 これらの変数には、次の XNUMX 文字の名前が付いています。
フォーム NPRddd, NXdddd, N2dddd, N3ddddここで、 d は XNUMX 進数です。
これらは SFTRAN3 ソース コードでは表示されず、次の場合に変更されるためです。
SFTRAN3 コードは変更されているため、そのような変数は明示的に宣言しないでください。
代わりに、デフォルトの Fortran INTEGER データ型ベースを想定する必要があります。
彼らの最初の手紙には、 N.

アスタリスク-コメント (128):
コメント文字としてアスタリスクを使用します。 それ以外の場合、デフォルトは「C」です。

コメント文字小文字 (256):
コメント文字として「C」または「*」の代わりに「c」を使用します。

配列次元の抑制 (512):
生成された宣言内の配列のディメンション化を抑制します。 このオプション
型宣言が欠落しているコードで使用し、宣言を許可します。
ファイルは変更せずにコードに挿入されます。 コードには次のものがあるため、
すでにディメンション ステートメントが作成されており、型内の配列変数のディメンション化が行われています。
宣言ファイルのステートメントは冗長です。 このオプションを使用する必要があります
オプション 2 = undeclared-only と組み合わせた場合のみ、それ以外の場合は任意
type ステートメントでディメンション化された配列は失われます。
寸法記入。

フリーフォーム (1024):
自由なソース形式で宣言を作成します。 このモードは次の場合に自動的に使用されます。
入力ソースは自由形式です。 このオプションを使用して宣言を生成します
入力が固定形式であっても、自由形式で入力できます。 自由形式の宣言は、
2 列ではなく 6 列のみインデントし、コメントとして感嘆符を使用します
文字の末尾にあるアンパサンドで継続行を示します。
続く行。

宣言ファイルには、宣言の開始と終了をマークする独特のコメントが含まれています。
各プログラム単位の宣言。テキスト エディター マクロの使用を容易にします。
宣言をソース コードにマージして戻します。

  フトチェク 配信にはプログラムが含まれており、 dcl2inc、宣言を処理します
ファイルを使用して、すべての COMMON ブロックの宣言を含むファイルを形式で生成します。
INCLUDE ファイルとしての使用に適しています。 を参照してください。 dcl2inc詳細については、(1L) マンページを参照してください。
その使用。

も参照してください。 -mkhtml.

-mkhtml=リスト
ソースから HTML ドキュメントを生成します。 ftnchek から個別の HTML ファイルを作成します
分析とコードのコメント。 直前および直後のすべてのコメント
関数またはサブルーチンの定義は HTML ファイルにキャプチャされます。 再フォーマットなし
ソースコメントは、FORTRAN コメント文字の除去以外に実行されます。
さらに、HTML ファイルには、宣言されたローカル変数、共通ブロックがリストされます。
使用される変数、呼び出される関数とサブルーチン、I/O ユニットの使用状況など
各サブプログラムに関する情報。 通常、次のように指定することもできます。
-call=ツリー ルート HTML ファイル CallTree.html を作成します。 (おそらくこのファイルは
「index.html」という名前を付けます。)

HTML ファイルの形式に関するさまざまなオプションは、 リスト、その
カンマまたはコロンで区切られたキーワードで構成されます。 スペシャルはXNUMXつあります
キーワード: すべてのオプションをオンにするには、 なし それらをすべてオフにし、 助けます 〜へ
すべてのキーワードのリストとそれぞれの簡単な説明を出力します。 もし リスト is
省略、 -mkhtml に相当します -mkhtml=ドキュメント (つまり、HTML ドキュメントを生成します)
デフォルトのオプションを使用したファイル)、および -nomkhtmls に相当します -mkhtml=なし.

簡単にするために、オプションは -mkhtml のものと同じです
-makecls ただし、該当しないものは除きます。 同様に、次の数値形式は、
この設定は、括弧内の数値の合計として形成され、使用できます。
以下のリスト。 警告キーワードとその意味は次のとおりです。

ドキュメント (1):
HTMLドキュメントを作成します。 (これは他のオプションのいずれかによって暗黙的に示され、
他のオプションが指定されている場合は省略できます。)

コンパクト (4):
宣言は通常、共通してきれいに並ぶようにきれいに印刷されます。
列。 このオプション値は、代わりに列のないコンパクトな出力を選択します。
アライメント。

継続行の使用 (8):
新しい宣言を開始する代わりに継続行が使用されます。
各行にあります。 このオプションは、 コンパクト.

キーワード - 小文字 (16):
Fortran キーワードをデフォルトの大文字ではなく小文字で出力します。

vars-and-consts-小文字 (32):
変数と定数をデフォルトではなく小文字で出力します
大文字。 文字列定数はこのオプションの影響を受けません。

除外-sftran3 (64):
SFTRAN3 によって生成される内部整数変数の宣言を省略します。
プリプロセッサ、 xsf3(1L)。 (見る -makecls 議論のために。)

配列次元の抑制 (512):
生成された宣言内の配列のディメンション化を抑制します。 これは
通常は望ましくありませんが、何らかの理由でこれを望まない場合は使用できます。
HTML に表示される配列の次元。

フリーフォーム (1024):
自由なソース形式で変数宣言を生成します。 このモードは
入力ソースが自由形式の場合に自動的に使用されます。 これが主に影響するのは、
継続行が使用されている場合は、その形式。

も参照してください。 -コールツリー, -makecls.

-初心者
このフラグは、初心者にとってより役立つ出力を提供することを目的としています。 XNUMXつあります
効果:

(a) 関数は使用されているが使用されていないという旨の追加メッセージを提供します。
どこかに定義されている配列は、ユーザーが宣言し忘れた配列である可能性があります。
DIMENSION ステートメント (配列参照の構文はそれと同じであるため)
関数リファレンスの)。

(b) エラー メッセージと警告の形式を変更します。 旗が変わったら
オフ -ノノヴィス、これらのメッセージは UNIX に似たスタイルで出力されます。
糸くず.

デフォルト = はい。

-出力=ファイル名
この設定は、簡単な操作を許可しないシステムでの便宜のために提供されています。
プログラムからの出力のリダイレクト。 この設定が与えられると、出力は
通常は画面に表示されるが、代わりに指定されたファイルに送信されます。 注記、
ただし、その操作ミスは、 フトチェク それ自体 (スペースがない、またはできないなど)
ファイルを開いている) は引き続き画面に送信されます。 ファイル名の拡張子は、
オプションであり、拡張子が指定されていない場合は、拡張子 .lis 使用されます。

-ポインターサイズ=NUM
「Cray ポインタ」変数のサイズを指定します。 NUM バイト。 デフォルト = ターン-
オン = 4 バイト。

ポインター サイズは、ポインターに関連する精度の不一致の警告を通知するために使用されます。
変数 (たとえば、ポインタに割り当てからの値が割り当てられる場合)
ルーチンとして渡すか、サブプログラムのパラメータとして渡します。

も参照してください。 -f77, -携帯性, -切り捨て, -ワードサイズ.

-移植性=リスト
フトチェク ポータブルではないさまざまな使用法について警告が表示されます。 例としては次のものが挙げられます。
コメントまたは文字列内を除くタブの使用、Hollerith の使用
定数、および異なるデータ型の変数の等価性。 このオプション
Fortran 77 標準に対してサポートされている拡張機能については警告が生成されません。
これは移植性の問題を引き起こす可能性もあります。 それらをキャッチするには、 -f77 設定。
デフォルトでは、すべての警告がオフになっています。

この設定では、移植性の可能性に関する警告を詳細に制御できます。
問題。 の リスト カンマまたはコロンで区切られたキーワードで構成されます。 がある
XNUMX つの特別なキーワード: ポータブルでない使用法に関するすべての警告をオンにするには、
なし それらをすべてオフにし、 助けます すべてのキーワードのリストを出力するには、
それぞれの簡単な説明。 もし リスト 省略、 -携帯性 に相当します
-移植性=すべて, -移植性がない に相当します -移植性=なしを選択します。
警告キーワードとその意味は次のとおりです。

バックスラッシュ:
文字列内のバックスラッシュ文字。 一部のコンパイラはバックスラッシュを次のように扱うため、
エスケープ文字なので、使用しても問題が発生する可能性があります
標準に準拠した方法で。

共通のアライメント:
COMMON ブロック変数はストレージ サイズの降順ではありません。 いくつかの
コンパイラでは、ストレージのアライメント要件のため、この順序付けが必要です。

ホリス:
ホレリス定数 (FORMAT 仕様内以外)。 ホレリス
データ型は Fortran IV の機能ですが、Fortran 77 では削除されました。
標準。 これは文字データ型に置き換えられます。 ホレリスの保管
数値または論理データ型の変数内のデータは、次の理由により移植性がありません。
ワードサイズの違い。

長い文字列:
255 文字を超える文字列定数、変数、または式。

混合等価:
異なるデータ型の変数が同等になります。

サイズ混合:
明示的に指定された変数とともに使用される、デフォルトの精度で宣言された変数
式、代入、または引数としての精度。 たとえば、
REAL*8 として宣言された変数は、DOUBLE PRECISION と同等として扱われます。

本当のこと:
非整数の DO ループのインデックスと境界。 これらにより、プログラムの結果が悪化する可能性があります。
使用する特定のコンピュータのハードウェア特性によって異なります。

param-暗黙的なタイプ:
割り当てられた値のデータ型によるパラメータの暗黙的な型指定 (指定されている場合)
デフォルトのタイプとは異なります。 この警告は、暗黙的な場合にのみ発生します。
パラメータの入力は、 -source=param-暗黙的タイプ
オプションが指定されていない場合、または PARAMETER ステートメントが非標準形式である場合
括弧。 このオプションがオンの場合、暗黙的に
パラメータの型付けが発生し、暗黙的な型がパラメータの型と異なる場合
パラメータ名の最初の文字に基づくデフォルトのタイプは警告されます
について。 暗黙的なパラメータの型指定により、ステートメントのセマンティクスが変更される可能性があります
パラメータが使用されている場所では、移植性の問題が発生します。

タブ: ソースコード内のタブ。 タブは人によって解釈が異なります
コンパイラ。 この警告は、ファイルの最後に XNUMX 回だけ表示されます。

も参照してください。 -f77, -f90, -f95, -可愛い, スタイル, -ワードサイズ.

-かなり=リスト
ソースコードの外観に関連する特定のメッセージを制御します。 これらは警告します
プログラムを読みにくくしたり、読者を欺いたりする可能性のあるものについて。
デフォルトでは、すべての警告がオンになっています。

この設定では、外観に関する警告を詳細に制御できます。 の
リスト カンマまたはコロンで区切られたキーワードで構成されます。 すべての警報がオンになっているため、
デフォルトでは、接頭辞が次のキーワードが含まれます。 NO- 特定の警告をオフにします。
特別なキーワードが XNUMX つあります。 誤解を招く内容に関するすべての警告をオンにするには
外観、 なし それらをすべてオフにし、 助けます すべてのリストを印刷するには
キーワードとそれぞれの簡単な説明。 もし リスト 省略、 -可愛い is
に相当 -かなり=すべて, -かわいくない に相当します -かなり=なしを選択します。
警告キーワードとその意味は次のとおりです。

代替復帰:
RETURN ステートメントには、代替リターン ポイントを指定する定数があります。
が 0 からラベルである仮引数の数までの間にありません。 これは
合法であり、代替リターンのない RETURN と同じ効果があります。
式ですが、プログラマが代替の式を使用するつもりだったことを示唆しています。
返送ラベルが提供されていません。

埋め込みスペース:
変数名または ** などの複数文字演算子に埋め込まれたスペース。

継続:
コメント行に続く継続マーク。

延縄:
幅が 72 列を超える行 (コメントを除く) (通常は 72 列を超える)
コンパイラによって無視されます)。

スペースがありません:
変数とその前のキーワードの間にスペースがありません。

複数の共通:
COMMON ブロックが複数のステートメントで宣言されています。 次の場合、警告は表示されません。
ステートメントはコメント行を除いて連続しています。

複数の名前リスト:
NAMELIST が複数のステートメントで宣言されています。 次の場合、警告は表示されません。
ステートメントはコメント行を除いて連続しています。

括弧:
変数自体を括弧で囲みます。 サブプログラムの引数として、これは
引数を式にし、サブプログラムでは変更できません。

フリーソース形式では、余分なスペースやスペースの欠落が禁止されていることに注意してください。
Fortran 90 標準に準拠しており、単なるスタイル違反ではありません。 この場合、警告は
は構文エラー メッセージに置き換えられ、次を使用することによってのみオフにできます。
-ノーチェック.

も参照してください。 -f77, -携帯性, スタイル.

-プロジェクト=リスト
フトチェク この間に入力された各ソースファイルからプロジェクトファイルを作成します
オプションがオンになっています。 プロジェクト ファイルには入力と同じ名前が付けられます。
ファイルですが、拡張子は .f or 。にとって と取り換える .prj。 (入力が次からの場合
標準入力、プロジェクト ファイルの名前は ftnchek.prj.) デフォルト = なし。

  リスト カンマまたはコロンで区切られたキーワードで構成されます。 XNUMXつあります
特別なキーワード: すべてのオプションをオンにするには、 なし それらをすべてオフにし、
助けます すべてのキーワードのリストとそれぞれの簡単な説明を印刷します。 もし
リスト 省略、 -計画 に相当します -プロジェクト=すべて, -ノープロジェクト is
に相当 -プロジェクト=なし。 キーワードとその意味は次のとおりです。

作ります:
プロジェクトファイルを作成します。 デフォルトでは、プロジェクト ファイルは作成されません。 もし
このオプションがオンになっていない場合、他のオプションは効果がありません。

トリムコール:
プロジェクトファイルに保存されているサブプログラムに関する情報の量を削減します。
宣言と呼び出し。 これがデフォルトです。 このオプションをオフにするのは次の場合のみです。
まれな状況。 (以下の説明を参照してください。) トリミングの量は異なります。
に応じて -図書館 フラグ。 そのフラグが次の場合、より多くの情報がトリミングされます。
オン。

トリム共通:
プロジェクト ファイルに保存されている共通ブロック宣言の数を削減します。
これがデフォルトです。 このオプションは、まれな状況でのみオフにしてください。 (見る
以下で説明します。) このオプションは、次の場合には効果がありません。 -図書館 フラグが立っている
off: ライブラリ モードではない場合、共通ブロック宣言はトリミングされません。
このオプションに関係なく実行されます。

プロジェクト ファイルには、ソース ファイルからの情報の概要が含まれており、以下で使用できます。
他のファイル内の FUNCTION、SUBROUTINE、および COMMON の使用法の一致をチェックします。
これにより、増分チェックが可能になり、大規模なセットがある場合に時間を節約できます。
共有サブルーチンを含むファイル。そのほとんどはめったに変更されません。 走れるよ
フトチェク 各ファイルに対して XNUMX 回、 -計画 フラグを設定し、プロジェクト ファイルを作成します。
通常、次の設定も行います。 -図書館 & -noextern 現時点でのフラグは、
他のファイルとの整合性に関するメッセージを抑制します。 エラーメッセージのみ
この時点で、各ファイルに関連する情報自体が印刷されます。 その後、実行します
フトチェク 一貫性をチェックするために、すべてのプロジェクト ファイルにこれらのフラグを付けないでください。
異なるファイルの間で。 個々のファイル内のすべてのメッセージは、
省略される。 ファイルが変更された場合にのみ、新しいプロジェクト ファイルを作成する必要があります
それのために。

当然のことながら、 -計画 オプションがオンになっていて、 フトチェク プロジェクトを読み込まない
ファイルを入力として使用します。

通常、プロジェクトを作成する場合は、トリム オプションをオンのままにしておく必要があります。
将来の入力用のファイル フトチェク。 トリミングはデフォルトでオンになっているため、これは、
それは単にコマンドを与えるだけです -計画 オプションリストなしが推奨されます
モード。 トリム オプションは、
プロジェクトファイルをプログラムのチェック以外の目的で使用すること
フトチェク。 プロジェクト ファイルを本来の目的に使用するには、トリム オプションを設定する必要があります。
オフにしないでください。

プロジェクトファイルには、ファイル間の一致を確認するために必要な情報のみが含まれています。
これは、完全なプログラムのすべてのモジュールが存在しない場合、プロジェクト ファイルは役に立たないことを意味します。
単一のファイルに含まれています。

より詳細な説明は、プロジェクト ファイルの使用に関するセクションで説明されています。

-ピュア
関数は「純粋」である、つまり、変更による副作用はないと仮定します。
それらの引数または変数は COMMON ブロック内にあります。 このフラグが有効な場合、
フトチェク 実際の引数の設定および使用状況の決定に基づいて決定されます。
関数に渡される引数は変更されないことを前提としています。 それは
また、関数がその引数のいずれかを変更することが見つかった場合、または
共通変数。 デフォルト = はい。

このフラグをオフにすると、関数に渡される実際の引数が処理されます。
サブルーチンに渡される実際の引数と同じ方法です。 この意味は フトチェク
は、引数が関数によって変更される可能性があることを前提としています。 警告は表示されません
関数に副作用があることが判明した場合に与えられます。 チェックが厳しくなるので、
関数が純粋であると想定されている場合は可能ですが、次の場合にのみこのフラグをオフにする必要があります。
あなたのプログラムは実際には副作用のある関数を使用しています。

-静かな
このオプションは、通常の動作に関連する出力の量を減らすため、
エラーメッセージがよりわかりやすくなります。 このオプションは便宜上提供されています。
大きなファイルスイートをチェックしているユーザー。 削除された出力には以下が含まれます。
プロジェクト ファイルの名前、および構文エラーが見つからなかったことを報告するメッセージ。
また、わかりやすくするために通常は含まれるいくつかの空白行も削除されます。 (いくつかの
この出力は、 -リスト & -symtab オプション。) デフォルト = いいえ。

注: の違いを覚える方法 -静かな & -簡単に つまり
-静かな 警告関連の情報は抑制されませんが、 -簡単に ありません。

も参照してください。 -簡単に.

-参照
誰が誰を呼び出したかテーブルを印刷することを指定します。 この表は各サブプログラムをリストしたものです
その後に、呼び出すルーチンのリストが続きます。 このスイッチは次のものと同等です
-calltree=参照。 デフォルト = いいえ。

参照リストでは、未使用のライブラリ モジュールによって呼び出されるルーチンは省略されます。 したがって、それは
コールツリー形式と同じ情報、つまり次の階層が含まれます。
サブプログラム呼び出しですが、別の方法で出力されます。 これは幅優先で出力します。
コールツリーのトラバース -calltree=ツリー 深さ優先を出力します
トラバーサル。

も参照してください。 -コールツリー, -crossref, -図書館, -選別, -symtab, -vcg.

-資力
が使用したリソースの量を出力します。 フトチェク プログラムの処理中。 これ
リストは、プログラムのサイズと複雑さを分析するのに役立つ場合があります。 できる
より大きなサイズを選択するのにも役立ちます フトチェクの内部テーブルも同様である場合
特定のプログラムを分析するには小さい。 デフォルト = いいえ。

このリストでは、「チャンク サイズ」という用語はメモリのブロックのサイズです。
ではなく、XNUMX つのアイテムのサイズ単位で、問題のアイテムを格納するために割り当てられます。
必ずバイト単位で。 最初に割り当てられたスペースがいっぱいになると、メモリが追加されます。
このサイズのチャンクに割り当てられます。 以下項目の説明です
印刷:

ソース ライン 処理済み:
コードの合計行数。ステートメント行と行の合計は別々に示されます。
コメント行。 コメント行には、列 1 に「C」または「*」が含まれる行も含まれます
空白行とインライン コメントのみを含む行として。 ステートメント行
他のすべての行 (一部の行の後にインライン コメントがある行を含む)
コード。 継続行は別の行としてカウントされます。 インクルードの行
ファイルは、そのファイルが組み込まれるたびにカウントされます。

トータル 実行ファイル 文:
プログラム内の仕様、データ、ステートメントを除くステートメントの数
function、FORMAT、ENTRY、および END ステートメント。

トータル of モジュール:
モジュールとは、メイン プログラム、サブルーチン、
関数とブロックデータユニット。 この数は、
参照されるモジュールではなくソースです。 ステートメント関数は含まれていません。 あ
複数のエントリ ポイントを持つサブプログラムは XNUMX 回だけカウントされます。

トータル ステートメント ラベル 定義済みの
ステートメントに付けられたラベルの数 (ステートメント番号とも呼ばれます)。 の
プログラム全体の合計ラベル数と最大ラベル数が表示されます。
単一のサブプログラム内の数値。

最大値 識別子 chars:
識別子の名前を格納するために使用される文字数。 識別子とは、
変数、サブプログラム、または共通ブロック名。 地元の名前は地元の名前です
グローバル名はサブプログラム内の変数を指しますが、グローバル名はサブプログラムと共通の変数を指します。
ブロック名、仮引数名、共通変数名。 実際の
引数テキスト (引数ごとに最大 15 文字) もここに含まれます。
ローカル名に使用されるスペースは各モジュールの最後では回復されないため、
この数は、グローバル空間と同様に、プログラム全体が分析されるまで増加します。
残念ながら、この図には複数回保存されたテキストが含まれている可能性があります。
ただし、多くの場合、重複を回避するヒューリスティックが使用されます。

最大値 トークン 클라우드 기반 AI/ML및 고성능 컴퓨팅을 통한 디지털 트윈의 기초 – Edward Hsu, Rescale CPO 많은 엔지니어링 중심 기업에게 클라우드는 R&D디지털 전환의 첫 단계일 뿐입니다. 클라우드 자원을 활용해 엔지니어링 팀의 제약을 해결하는 단계를 넘어, 시뮬레이션 운영을 통합하고 최적화하며, 궁극적으로는 모델 기반의 협업과 의사 결정을 지원하여 신제품을 결정할 때 데이터 기반 엔지니어링을 적용하고자 합니다. Rescale은 이러한 혁신을 돕기 위해 컴퓨팅 추천 엔진, 통합 데이터 패브릭, 메타데이터 관리 등을 개발하고 있습니다. 이번 자리를 빌려 비즈니스 경쟁력 제고를 위한 디지털 트윈 및 디지털 스레드 전략 개발 방법에 대한 인사이트를 나누고자 합니다. chars:
トークンは、そのレベルより上の FORTRAN 言語の最小構文単位です。
個々のキャラクターの。 たとえば、トークンは変数名、
数値定数、引用符で囲まれたテキスト文字列、または句読点文字。 トークン
テキストはモジュールの処理中に保存されます。 技術的な理由により、
単一文字のトークンはこの合計には含まれません。 そうでない項目
シンボルテーブルで表されるものは重複する可能性があります。 トークンテキストのスペースは次のとおりです。
各モジュールの最後に回復されるため、この数値は最大値を表します。
任意の XNUMX つのモジュール。

最大値 ローカル 記号:
これは、あらゆるモジュールのローカル シンボル テーブル内のエントリの最大数です。
ローカル シンボル テーブル エントリには、すべての変数とパラメータ、共通ブロックが含まれます
名前、ステートメント関数、外部サブプログラム、組み込み関数
モジュールによって参照されます。 リテラル定数はローカルシンボルには格納されません
列で番号の横にあるXをクリックします。

最大値 全体的な 記号:
これは、終了時のグローバル シンボル テーブル内のエントリの数です。
処理。 グローバル シンボル テーブル エントリには、外部サブプログラムと共通のサブプログラムが含まれます。
ブロック名。 組み込み関数とステートメント関数は含まれません。

最大値 of トークンリスト:
トークン リストは、実際の引数または仮引数を表すトークンのシーケンスです。
サブプログラムのリスト、または共通ブロックまたは名前リスト内の変数のリスト。
したがって、この数値は、COMMON、CALL、NAMELIST、および
任意の XNUMX つのモジュールに対する ENTRY ステートメントと関数呼び出し。 スペースは
各モジュールの最後に回復されます。

最大値 トークン リスト/ツリー スペース:
これは、すべてのトークン リストとトークン ツリーの中で最大のトークン数です。
任意の XNUMX つのモジュール。 式を分析するときにトークン ツリーが形成されます。
オペランドはツリーの葉であり、演算子はノードです。 したがって、これ
数値は、個々のモジュールの最大の複雑さの尺度です。 のために
たとえば、長い算術式が多数あるモジュールでは、
番号。 上で説明したトークン テキストとは異なり、トークンの数は
変数名やリテラル定数の長さには関係なく、
式。

of サブプログラム 呼び出し:
これは、CALL ステートメントと関数の数のすべてのモジュールの合計です。
呼び出し (組み込み関数とステートメント関数を除く)。

of 一般的な コロナ新型ウィルス(COVID-XNUMX)やメンタルヘルスの崩壊を避ける為の 宣言:
これは、すべてのモジュールの共通ブロック宣言の数の合計です。
つまり、異なるモジュール内のブロックの各宣言がカウントされます。
別々に。 (標準では、ブロック内で複数のブロックを宣言できます。
同じモジュール。 これらは次のとおりであるため、XNUMX つの宣言としてのみカウントされます。
XNUMX つの長い宣言に相当します。)

of 配列 薄暗い & パラメータ ポイント:
これは、配列の次元数とパラメータのすべてのモジュールの合計です。
で使用するために保存された定義テキスト文字列 -makecls オプション。 長さ
テキスト文字列はカウントされません。 多次元配列の各次元は次のようになります。
別々にカウントされます。

プロジェクト ファイルが代わりに使用される場合、これらの数値は明らかに同じではありません。
元のソースコード。 グローバルエンティティの数値さえ異なる場合があります。
プロジェクト ファイルでは一部の冗長な情報が削除されているためです。

-XNUMX文字
の目標のXNUMXつ フトチェク プログラムはユーザーが移植可能な Fortran を作成できるようにするためのものです
プログラム。 非移植性の潜在的な原因の XNUMX つは、次のような変数名の使用です。
XNUMX 文字を超えています。 一部のコンパイラは余分な文字を無視します。
この動作により、XNUMX つの異なる変数が考慮される可能性があります。
同じ。 たとえば、AVERAGECOST と AVERAGEPRICE という名前の変数は同じです。
最初の XNUMX 文字で。 このような競合の可能性を検出したい場合は、次を使用します。
この旗。 デフォルト = いいえ。

-f77=長い名前 リストしたい場合は XNUMX つより長い変数
最初の XNUMX 文字が同じペアだけではありません。

も参照してください。 -f77, -携帯性.

-選別
プログラムで使用されるすべてのモジュールのソートされたリストを印刷することを指定します。 これ
リストは「前提条件」の順序になっています。つまり、各モジュールはすべての条件が揃った後にのみ出力されます。
呼び出し元のモジュールが出力されています。 これはとも呼ばれます
コールツリーの「トポロジカルソート」。 各モジュールは XNUMX 回だけリストされます。 ルーチン
メインプログラムの呼び出しツリーにないものは省略されます。 もしあれば
コールグラフ内のサイクル (標準 Fortran では不正) が検出され、
診断されました。 デフォルト = いいえ。

も参照してください。 -コールツリー, -crossref, -参照, -symtab, -vcg.

-ソース=リスト
この設定は、Fortran ソース コードの形式に関する特定のオプションを制御します。
  リスト カンマまたはコロンで区切られたキーワードで構成されます。 XNUMXつあります
特別なキーワード: すべてのオプションをオンにするには、 なし それらをすべてオフにし、
助けます すべてのキーワードのリストとそれぞれの簡単な説明を印刷します。 もし
リスト 省略、 -source に相当します -source=すべて, -ノーソース 同等です
〜へ -source=なし.

以前のバージョンとの互換性のために フトチェク、この設定の数値形式
も受け入れられます: リスト 数値の合計である数値に置き換えられます
次のリストのキーワードの横のかっこ内にあります。 ( 固定の & 無料です。
オプションには数値は含まれません。) 警告キーワードとその意味は次のとおりです。
次のように:

固定の:
ソースを固定形式 (サポートされている拡張子などを使用して) として解釈します。
コメントには感嘆符)。 ステートメントは列 7 ~ 72 になければなりません
( -列 これを変更するために設定が使用されています)、空白は使用されません
重要な外部文字コンテキスト (ただし、 -可愛い
オプション)。 ソース ファイルの拡張子が次の場合を除き、これがデフォルトのモードです。 .f90
or .F90。 このオプションは一緒に指定できません -source=無料.

無料です。: ソースを自由形式として解釈します。 ステートメントは列 1 のどこにでも入れることができます
から 132 まで、コメントは感嘆符でのみ始めることができ、空白は使用できません。
識別子とキーワードの間など、いくつかの場所で必要です。 これは
ソースファイル拡張子が次の場合のデフォルトモード .f90 or .F90。 このオプション
と一緒に与えることはできません -source=修正 or -source=dec-tab

decタブ (1):
DEC スタイルのタブ形式のソースを受け入れます。 最初のタブで始まる行
タブの後の文字が次の文字でない限り、新しいステートメント行として扱われます。
ゼロ以外の数字。この場合、継続行として扱われます。 の
タブまたは継続マークの後の次の列が 7 列目として扱われます。
行が継続している場合、警告が表示されます。
-f77=XNUMX 進タブ 有効です。

vms-include (2):
VMS スタイルの INCLUDE ステートメントを受け入れます。 これらは通常の構文に従いますが、
次の追加機能を備えています: (1) ファイル拡張子 (指定されていない場合)
デフォルトは通常のソース ファイル拡張子と同じです。 (2) オプション
/LIST または /NOLIST をインクルードファイル名に追加して、リストを制御できます。
その内容の。

unix-バックスラッシュ (4):
文字列内の UNIX スタイルのバックスラッシュ エスケープを処理します。 逃亡
バックスラッシュに続くシーケンスは ANSI に従って評価されます。
C の文字列の標準: 最大 XNUMX 桁の XNUMX 進数値、x を表します。
XNUMX 進定数 (abfnrt のいずれかの文字) の始まりを示します。
特別な制御コードおよびその他の文字 (改行を含む) を意味します
キャラクターそのものを意味します。 このソース コード オプションが有効な場合、
警告が表示される場合は、 -f77=バックスラッシュ 設定が指定されています。

デフォルトの動作では、バックスラッシュを他の通常の動作と同様に扱います。
文字ですが、次の場合には移植性に関する警告が生成されます。
-携帯性 フラグが設定されます。 一部のコンパイラは
標準以外の方法でバックスラッシュを使用することも可能ですが、標準に準拠することも可能です
文字列にバックスラッシュ文字を使用すると、プログラムは移植できなくなります。

Since フトチェク 解釈された文字列をあま​​り処理しません。
このオプションを使用するには必要です。 スプリアスを避けるために必要です
(a) チェック対象のプログラムがバックスラッシュを使用して埋め込みを行っている場合にのみ警告が表示されます。
標準メカニズムを使用する代わりに、文字列内でアポストロフィまたは引用符を使用する
区切り文字を XNUMX 倍にすること。 (b) バックスラッシュは、末尾をエスケープするために使用されます。
複数のソース行にまたがって文字列を続けるには、行を使用します。 または (c)
PARAMETER 定義では、LEN などの組み込み文字列関数を使用します。
引数として文字列を指定し、その値は後で配列を定義するために使用されます。
寸法など

param-暗黙的なタイプ (8):
割り当てられた値のデータ型によるパラメータの暗黙的な型指定。 いくつかの
非標準のコンパイラでは、値のデータ型によるオーバーライドが許可される場合があります。
の最初の文字に基づく、Fortran 77 のデフォルトのパラメータのタイプ。
パラメータ名。 このオプションは、
括弧を含む標準形式。 明示的に設定されたパラメータ
PARAMETER ステートメントの前に type ステートメントで宣言されたものは影響を受けません。
このオプションによって。 警告が表示されます -f77=パラメータ暗黙的タイプ
or -portability=param-暗黙的タイプ オプションを選択します。

この暗黙的な型指定は明示的な型と同等として扱われることに注意してください。
パラメータの宣言。 したがって、使用する場合は、
-makedcls=未宣言のみ 未宣言の宣言のみを生成するには
変数の場合、これらのパラメータは 含まれます。

dec-param-標準タイプ (16):
DEC Fortran スタイルのパラメーターのデータ型指定については、Fortran 77 ルールに従ってください。
これらは、PARAMETER ステートメントの非標準形式を使用して宣言されます。
括弧がありません。 DEC Fortran によれば、この形式で定義されるパラメータは
ステートメントのデータ型は、値のデータ型によって指定されます。
割り当てられました。 このオプションを使用して伝える フトチェク このルールには従わないが、
代わりに、標準の PARAMETER ステートメントと同じルールを使用します。 これ
オプションは、標準形式の PARAMETER ステートメントには適用されません。

デフォルトでは、これらのソース コード オプションはすべてオフになっています。
vms-include このオプションは、VMS バージョンではデフォルトでオンになっています。

も参照してください。 -f77, -含める, -携帯性.

-style =リスト
時代遅れまたは旧式のプログラミングについて特に厳しい警告を提供します
建築物。 このオプションは、最新のプログラミングに従う取り組みに役立ちます。
スタイル。 (このオプションに基づいて苦情が寄せられたもののほとんどは、
F サブセット 言語。) By デフォルト、 警告   回しました オフ。

  リスト カンマまたはコロンで区切られたキーワードで構成されます。 XNUMXつあります
特別なキーワード: すべてのオプションをオンにするには、 なし それらをすべてオフにし、
助けます すべてのキーワードのリストとそれぞれの簡単な説明を印刷します。 もし
リスト 省略、 スタイル に相当します -style=すべて, -ノスタイル に相当します
-style=なし。 警告キーワードとその意味は次のとおりです。

ブロック-if:
算術 IF ステートメントについて苦情を言います。 ブロック IF または論理 IF (どちらも受け入れます)
単一のステートメントを制御します)。

構成名:
名前のないブロック構成要素 (IF、DO、SELECT CASE) について苦情を申し立てます。 ご了承ください
構成体の開始ステートメントに構成名が存在する場合、
他のすべてのコンポーネント ステートメント (ELSE、END IF、
など)構造の。 その場合、それらの構成名が欠落しています
このオプションに関係なく、ステートメントは構文エラーを生成します。 目的
このオプションの目的は、構成要素にオプションの要素が完全に欠落している場合に警告することです。
名前。

明確な方法:
XNUMX つの DO ループが共通のターミネータ ステートメントを共有している場合は文句を言います。

構築する:
DO ループのターミネータが END DO 以外の場合は苦情を申し立てます。
CONTINUE ステートメント。 これはループが満たすための要件です
Fortran 90 の do-construct 定義。

ドエンドド:
DO ループのターミネータが END DO 以外の場合に文句を言う
声明。 (このオプションは 構築する オプション、均等であること
より厳しくなります。)

エンドネーム:
構造化された END にサブプログラム名がないことについて苦情を言う
ステートメント。

フォーマット-stmt:
FORMAT ステートメントの存在について文句を言います。 FORMAT ステートメントのみ
I/O リスト内のそれらへの参照ではなく、それ自体にフラグが立てられます。

goto文: 無条件、計算された、または割り当てられた GOTO の存在について苦情を言う
発言。 代替返品についても苦情を申し立てます(ただし、次のようなラベルについてはそうではありません)
サブプログラム引数)。

ラベル付きstmt:
以外のステートメントにラベル (数字) が存在することについて苦情を申し立てます。
FORMAT ステートメント。 (FORMAT ステートメントはおそらく便利ではありますが、
容易に虐待されるため、それらに関する苦情は別の部門によって管理されます。
フォーマット-stmt キーワード。)

プログラムステートメント:
メインの先頭に PROGRAM ステートメントがないことについて不満を言う
プログラム。

構造化されたエンド:
サブプログラムを終了するためのプレーンな END ステートメントの使用については、むしろ文句を言ってください。
構造化された END ステートメント (END PROGRAM、END SUBROUTINE、END FUNCTION、
またはエンドブロックデータ)。

も参照してください。 -f77, -f90, -f95, -可愛い, -携帯性.

-symtab
すべての識別子をリストしたシンボルテーブルがモジュールごとに出力されます。
モジュールで言及されています。 この表には、各変数の名前、データ型、
配列の次元数。 アスタリスク (*) は、
変数は、明示的な型で名前が付けられるのではなく、暗黙的に型指定されています。
宣言文。 この表には、モジュールによって呼び出されるすべてのサブプログラムもリストされています。
宣言されたすべての COMMON ブロックなど。デフォルト = no。

また、モジュールごとにラベルテーブルが印刷されます。 表には各ラベルがリストされています
モジュールで定義されます。 前記ステートメントラベルが定義されている行。 そしてその
ステートメントのタイプ (実行可能ファイル、形式、または仕様)。 ラベルは次のとおりです。
順番。

モジュールで使用される I/O ユニットを説明する表も印刷されます。
それらの使用方法に関する情報: どのような操作が実行されるか、
アクセスがシーケンシャルか直接か、I/O がフォーマットされているか未フォーマットか。

も参照してください。 -コールツリー, -crossref, -リスト, -参照, -選別, -vcg.

-切り捨て=リスト
切り捨て (または丸め) エラーの可能性について警告します。 これらのほとんどは以下に関連しています
整数演算。 デフォルトでは、すべての警告がオンになっています。

この設定では、切り捨ての可能性に関する警告を詳細に制御できます。
エラー。 の リスト カンマまたはコロンで区切られたキーワードで構成されます。 ずっと
警告はデフォルトでオンになっており、接頭辞が次のキーワードが含まれます。 NO- をオフにする
特別な警告。 特別なキーワードが XNUMX つあります。 すべてをオンにするには
切り捨てに関する警告、 なし それらをすべてオフにし、 助けます のリストを印刷するには
すべてのキーワードとそれぞれの簡単な説明。 もし リスト 省略、 -切り捨て
に相当します -切り捨て=すべて, -途切れない に相当します
-切り捨て=なし。 警告キーワードとその意味は次のとおりです。

int-div-指数:
整数の除算の結果を指数として使用します。 これは、
実商が対象となります。 例としては、X**(1/3) を記述して評価します。
X の立方根。正しい式は X**(1./3.) です。

int-div-real:
整数の除算を含む式を実数に変換します。 これ
実数商が意図されていることを示唆しています。

int-div-zero:
結果がゼロになる整数定数式の除算。

int-neg-power:
負の整数による整数のべき乗 (そうでない場合はゼロになります)
基本整数の大きさは 1 です)。 これは、実際の塩基が
意図されました。

プロモーション:
より低い精度の数量をより高い精度の数量に自動変換します。
精度。 このプロセスにおける実際の変数の精度の損失は次のとおりです。
対応する降格に相当します。 昇進に関する警告はありません
これは通常正確であるため、整数値を実数に変換します。

リアルドゥインデックス:
整数境界を持つループ内での非整数 DO インデックスの使用。 整数 DO
実境界を持つインデックスは、この設定に関係なく常に警告されます。

実数の添字:
非整数配列の添字の使用。

有効数字:
単精度定数を過剰に指定します。 これは、二重であることを示している可能性があります。
精度定数が意図されていました。

サイズの降格:
より高い精度の数量をより低い精度の数量に自動変換する
同じタイプの。 この警告は、明示的なサイズが使用されている場合にのみ発生します。
代入内の一方または両方のオペランドの型を宣言します。 たとえば、
REAL*8 変数が REAL 変数に割り当てられている場合、警告が発行されます。
デフォルトのワードサイズ 4 が有効な場合。 次の場合にも警告が発行されます。
たとえば、INTEGER の場合、長い整数は短い整数に割り当てられます。
式は INTEGER*2 変数に代入されます。 例外が XNUMX つあります
この最後のケース、つまり代入の右辺が小さい場合
リテラル定数 (128 未満)。 タイプ降格: の自動変換
より高い精度の数量を、異なるタイプのより低い精度の数量に変換します。 これ
警告には、実数値から整数、倍精度への変換が含まれます。
単精度実数への変換、およびより長い文字列の代入
短いもの。

昇進と降格に関する警告は、複雑な定数にも適用されます。
精度は実数部または虚数部の精度であると考えられます。 に関する警告
昇進と降格は、変換が自動的に行われた場合にのみ与えられます。
たとえば、混合精度の式や代入ステートメントなどです。 本質的な場合
INT などの関数を使用して変換を実行しても、警告は表示されません。

も参照してください。 -携帯性, -ワードサイズ.

-使用法=リスト
未使用または初期化されていない可能性のある変数、未使用の共通ブロック、
未定義または未使用のステートメントラベル、および未使用または未定義のサブプログラム。 による
デフォルトでは、すべての警告がオンになっています。

この設定では、使用の可能性に関する警告を詳細に制御できます。
エラー。 の リスト カンマまたはコロンで区切られたキーワードで構成されます。 ずっと
警告はデフォルトでオンになっており、接頭辞が次のキーワードが含まれます。 NO- をオフにする
特別な警告。 特別なキーワードが XNUMX つあります。 すべてをオンにするには
使用上の警告、 なし それらをすべてオフにし、 助けます すべてのリストを印刷するには
キーワードとそれぞれの簡単な説明。 もし リスト 省略、 -利用方法 is
に相当 -使用法=すべて, -ヌーサージュ に相当します -使用法=なし。 これら
警告は、オブジェクトの XNUMX つの主なカテゴリ (サブプログラムの仮引数、共通) をカバーします。
ブロックと変数、サブプログラムと関数、ローカル変数。 警告
未定義の項目、複数定義された項目、未使用の項目などが含まれます。
キーワードとその意味は次のとおりです。

引数エイリアス:
スカラー仮引数は実際には別の仮引数と同じであり、同じである (または同じである可能性がある)
変更されました。 Fortran 77 標準 (セクション 15.9.3.6) では、
別の引数にエイリアス化された引数。

引数配列エイリアス:
配列または配列要素である仮引数が、
別のものが変更されます。 このフラグは次のようなものです 引数エイリアス しかし提供します
配列引数を個別に制御します。 エイリアスが発生しているかどうかを判断するのは困難です
配列の場合に発生するため、 フトチェク 誤った警告が多すぎるため、
このフラグを使用すると、配列関連のものを抑制せずにオフにすることができます。
スカラーに関する警告。

arg-common-alias:
スカラー仮引数はサブプログラム内の共通変数と同じです。
そしてどちらかが変更されます。 これは Fortran 77 標準でも禁止されています。
共通のチェックが正確でない場合 ( -一般 設定)、それは困難です
エイリアシングが発生しているかどうかを通知するため、変数が次の場合に警告が表示されます。
サブプログラムによって宣言された共通ブロック内の任意の場所。

arg-common-array-alias:
配列または配列要素である仮引数が、
共通変数があり、どちらかが変更されます。 共通チェックが正確でない場合、
変数は、
サブプログラム。

arg-const-modified:
サブプログラムは、定数または式である引数を変更します。 そのような
アクションによってプログラムの異常な動作が引き起こされる可能性があります。

引数-未使用:
仮引数が宣言されていますが、使用されません。 これは次のようなものです
var-未使用 キーワードは以下で説明しますが、引数にのみ適用されます。

com-ブロック-未使用:
共通ブロックが宣言されていますが、その中の変数はどれも使用されていません。
サブプログラム。 共通の厳密性の設定が次の場合、この警告は抑制されます。
0.

コムブロック揮発性:
共通ブロックが次の場合に、共通ブロックの内容の定義が失われる可能性があります。
揮発性。 このオプションは、次の場合にのみ効果があります。 -common=揮発性 フラグが入っています
効果。 のディスカッションを参照してください。 -一般 上記の設定。

com-var-set-unused:
共通変数には値が割り当てられますが、その値はどの変数でも使用されません。
サブプログラム。 共通の厳密性の設定が次の場合、この警告は抑制されます。
0.

com-var-uninitialized:
共通変数の値が一部のサブプログラムで使用されていますが、設定されていません
どこでも。 残念ながら、 フトチェク ~について十分に徹底的な分析を行っていない
どのルーチンが他のルーチンより先に呼び出されるかを知るための呼び出しシーケンス。 それで
このタイプのエラーに関する警告は、次の場合にのみ表示されます。
変数はあるルーチンで使用されていますが、他のルーチンでは設定されていません。 チェック中
個々の COMMON 変数の変更は、次の場合にのみ実行されます。 -一般 設定は3です
(変動契約により変動)。 一般的な場合、この警告は抑制されます。
厳密性の設定は 0 です。

com-var-unused:
共通変数が宣言されていますが、どのサブプログラムでも使用されていません。 この警告は
共通厳密性設定が 0 の場合、抑制されます。

do-index-modified:
DO ループのインデックスである変数が何らかのステートメントによって変更される
ループの範囲内です。 標準では、アクティブな DO 変数に次のことを許可します。
DO ステートメントのインクリメント メカニズムによってのみ変更できます。

外部乗算定義:
外部 (サブルーチンまたは関数) が複数回定義されています。 意味
外部とは、ソース コードの本体を提供することを意味します。

ext 宣言のみ:
名前は一部のモジュールの EXTERNAL ステートメントで宣言されていますが、宣言されていません。
どこでも定義または使用されます。

外部未定義:
外部が使用 (呼び出され) ていますが、どこにも定義されていません。 このオプションは
と同等 -外部の フラグ。 サブプログラムが複数回呼び出された場合、
一度実行すると、それらの呼び出しの一貫性が引き続きチェックされます。

中古未使用:
外部が定義されています (そのサブプログラム本体が存在します) が、使用されていません。
サブプログラムは、他のプログラムによって呼び出された場合でも、未使用とみなされます。
サブプログラム (以下で始まる実行スレッドから呼び出すことができない場合)
メインプログラム。 サブプログラムの引数とその引数の一致
この警告がオフになっていても、呼び出しは引き続きチェックされます。 もしあるなら
メインプログラムがない場合、この警告はサブプログラムが存在しない場合にのみ発行されます。
どこでも呼び出されます。 この警告はライブラリ モードでは抑制されますが、ライブラリ
モードには、未使用の引数のチェックを抑制する追加の効果があります。
ルーチン。

ラベル未定義:
ステートメントは、定義されていないラベルを参照しています。

ラベル未使用:
ステートメントラベルは定義されていますが、決して参照されません。

var-set-unused:
ローカル変数には値が割り当てられますが、その値は使用されません。

var-初期化されていない:
ローカル変数の値は、割り当てられる前に使用される場合があります。 時々
フトチェク ローカル変数の使用に関する警告に誤りがあります。 いつもの
問題が存在しない場合に警告を発するというエラーが発生しますが、まれに発生します。
場合によっては、問題が存在する場所を警告できない可能性があります。 のセクションを参照してください。
たとえばバグ。 変数が等価である場合、使用されるルールは フトチェク
つまり、任意の変数への参照は、すべての変数への同じ参照を意味します。
等価な変数。 配列の場合、規則として、への参照は
配列要素はすべて、配列のすべての要素への参照として扱われます。

var-未使用:
ローカル変数は (型宣言などで) 宣言されていますが、宣言されていません。
モジュールで使用されます。 仮引数には適用されません: 仮引数に関する警告
キーワードによって制御される 引数-未使用 上述した。

注: のバージョンでは、 フトチェク 2.10 より前は、 -利用方法 フラグは数値引数を取りました
オプションのリストの代わりに。 スクリプトを作成した可能性のあるユーザーのために
呼び出す フトチェク このように、数値形式は引き続き受け入れられます。 数値
設定はXNUMX桁の数字で構成されます。 最初の桁(百の位)のコントロール
サブプログラム (関数およびサブルーチン)、XNUMX 桁目 (XNUMX の位) に関する警告
place) 共通ブロックと共通変数に関する警告、および XNUMX 桁目
(XNUMX 位) ローカル変数に関する警告。 各桁で警告を制御します
規則によれば、1 は未定義の項目と変数について警告することを意味します
2 は未使用のアイテムについて警告することを意味し、3 は設定前に使用されているアイテムについて警告することを意味します
両方のタイプについて警告します。 これらの数値は適切な値に変換されるようになりました。
上記のキーワードを除く コムブロック揮発性影響を受けません
数値引数で指定します。

も参照してください。 -一般, -宣言する, -外部, -図書館.

-vcg
VCG グラフ記述の形式でコール グラフを生成します。 この説明は、
メインファイルを含むファイルと同じステムを持つ別のファイルに書き込まれます。
プログラムとサフィックス .vcg。 このファイルは直接渡すことができます xvcg(1L)~
コールグラフを視覚化します。 (入力が標準入力からの場合、グラフは
説明は標準出力に送信されます。) このスイッチは以下と同等です。
-calltree=vcg。 デフォルト = いいえ。

作成された VCG 記述は必要以上に複雑です。 VCG ではグラフが可能
およびネストされたサブグラフ: 各サブルーチンは、その中にネストされたサブグラフとして作成されます。
ルーチンの呼び出し。 これにより、サブグラフを対話的に表示したり、要約したりすることができます。
それら。

  -vcg のオプション フトチェク クランフィールドのフィリップ・ルビーニ博士によって書かれました
大学、イギリス。

xvcg は、X Windows システムで実行されるグラフ視覚化ツールです。 それは
ftp.cs.uni-sb.de から無料で入手できます。 それはG.サンダーによって書かれました。
ドイツ、ザールランド大学。

も参照してください。 -コールツリー, -crossref, -参照, -選別.

-バージョン
このオプションにより、 フトチェク バージョン番号、リリース日を示す行を出力するには、
プログラムのパッチレベル。 ファイルが指定されない場合、終了します。 ファイルの場合
が指定されている場合、このオプションの効果はパッチ レベルを含めることです (通常は
省略)処理開始時に出力されるバージョン情報に記載されています。 デフォルト =
いいえ。

も参照してください。 -助けて.

-揮発性
COMMON ブロックは揮発性であると仮定します。 デフォルト = いいえ。

このフラグは次のものに置き換えられます -common=揮発性、今後は使用しないでください。 かもしれない
の将来のリリースでは削除される フトチェク.

も参照してください。 -一般, -利用方法.

-wordsize=NUM
デフォルトのワードサイズを指定します。 NUM バイト。 これは論理的なサイズであり、
明示的な精度が指定されていない単精度数値変数。
(非文字変数の明示的な精度は、Fortran 77 の拡張機能です。
標準であり、REAL*8 X などの型宣言によって与えられます。) 倍精度
複素変数はこの値の XNUMX 倍になり、複素変数が XNUMX 倍になると XNUMX 倍になります。
回。 XNUMX 倍精度の定数と組み込み関数の結果は XNUMX 倍になります
この値。 REAL*16 として宣言された変数はクワッドとみなされますので注意してください。
ワード サイズが 4 バイトの場合のみ精度が向上します。 デフォルト = オン = 4 バイト。

ワード サイズの値は、標準に準拠したプログラムのチェックには関係ありません。
非文字変数の明示的な精度を宣言したり、ホレリスを格納したりしないでください。
変数内のデータ。 この設定は、文字のデフォルトのサイズにも影響しません。
変数、常に 1 バイトです。 ホレリス定数もまた占有すると仮定されます。
1 文字あたり XNUMX バイト。

ワード サイズは、代入時に切り捨てが発生するかどうかを決定するために使用されます。
ステートメント、およびサブプログラムの引数リスト内の精度の不一致を検出するため、および
共通ブロックリスト。 発行される正確な警告はステータスによって異なります。
他のフラグの。 両方の下で、 -portability=混合サイズ-nowordsize 国旗、
明示的なオブジェクトとデフォルトの精度オブジェクトの混合 (文字式は含まれません)
含まれています)について警告されています。 これは、両方を含む算術式に適用されます。
オブジェクトのタイプ、およびサブプログラムの引数と COMMON 変数に適用されます。 アンダーコントロール
-切り捨て=降格 & プロモーション オプションの場合、警告が表示されます
同じ型のより短い変数への式の代入、または
算術演算において、より低い精度の値をより高い精度に昇格すること
式または代入ステートメント。

ワード サイズを 0 に指定するか、同等の値を使用します。 -nowordsize デフォルトがないことを意味します
値が仮定されます。 これは次のように指定するのと同じです -portability=混合サイズ.
フラグを付けるなど、デフォルトの精度と明示的な精度が混在するケースを見つけるために使用します。
REAL*8 が DOUBLE PRECISION と同等として扱われる箇所。

も参照してください。 -ポインターサイズ, -携帯性, -切り捨て.

-ラップ=コル
エラーメッセージの折り返しを制御します。 過ぎてしまう長いエラーメッセージ
指定された列は、単語間の別々の行に分割されます。
読みやすくするためにメッセージを追加します。 でオフになった場合 -ナラップ、それぞれ個別のエラー
メッセージは XNUMX 行に出力され、メッセージの折り返しはディスプレイに委ねられます。
メッセージを送信するか切り詰めます。 デフォルト = オン = 79。

変化 デフォルト


フトチェク すべてのオプションのデフォルト値を変更するための XNUMX つのメカニズムが含まれています。
環境変数を定義するか、環境設定ファイルを作成します。 いつ フトチェク が起動し、
環境内で、接頭辞を付けることによって名前が構成されている変数を探します。
文字列 FTNCHEK_ をオプション名の大文字バージョンに置き換えます。 そのような変数が
見つかった場合、その値は、対応するスイッチまたは設定のデフォルトを指定するために使用されます。
設定の場合 (たとえば、 -一般 厳密性の設定) の値
環境変数はデフォルトの設定値として読み込まれます。 スイッチの場合、
環境変数に次の値がない限り、デフォルトのスイッチは true または yes として扱われます。
0 または NO。

環境変数名は完全長のオプションを使用して構築する必要があることに注意してください。
名前は大文字にする必要があります。 たとえば、 フトチェク ソースリストを印刷する
デフォルトでは、環境変数 FTNCHEK_LIST を 1 または YES、または 0 以外の値に設定します。
いいえ。 名前 FTNCHEK_LIS (完全なオプション名ではありません) または ftnchek_list (小文字) は、
認識されません。

ここでは、さまざまなシステムで環境変数を設定する方法の例をいくつか示します。 のために
簡単のため、すべての例はデフォルトを設定しています -リスト 「はい」に切り替えてください。

1.UNIX、ボーンシェル: $ FTNCHEK_LIST=YES
$ エクスポート FTNCHEK_LIST

2. UNIX、C シェル: % setenv FTNCHEK_LIST YES

3. VAX/VMS: $ DEFINE FTNCHEK_LIST YES

4. MSDOS: $ SET FTNCHEK_LIST=YES

環境変数を処理した後、ftnchek は設定ファイルを探します。
オプションと設定が含まれています。 のみを使用して、次の順序で検索します。
最初に見つかったファイル: (1) .ftnchekrc 現在のディレクトリ内、(2) ftnchek.ini 現在の
ディレクトリ、(3) .ftnchekrc ユーザーのホームディレクトリ内、(4) ftnchek.ini 家の中
ディレクトリ。 そのようなファイルが見つかった場合、そのファイルで定義されているオプションがデフォルトとして使用されます。
組み込みのデフォルトを置き、環境に設定されているデフォルトをオーバーライドします。

環境設定ファイル内の各オプションまたは設定は、別の行に入力する必要があります。 与えられるのは、
最初のダッシュがないことを除き、コマンドラインと同じ形式です。 好み
ファイルには空白行やコメントを含めることができます。 コメントは行の任意の時点で導入されます
スペース文字 (空白またはタブ) または「#」文字で指定され、次の末尾で終了します。
この線。

コマンドライン オプションは、環境または環境設定で設定されたデフォルトをオーバーライドします。
組み込みのデフォルトをオーバーライドするのと同じ方法で、ファイルを編集します。

使用する PROJECT ファイル


このセクションには、プロジェクト ファイルを最も効果的に使用する方法に関する詳細情報が含まれています。
そしていくつかの落とし穴を回避する方法。

小切手を分割することができます フトチェク は、ローカルとグローバルの XNUMX つのカテゴリに分類されます。 地元
チェックは XNUMX つのルーチン内に限定され、初期化されていないものなどを検出します。
変数、算術式の意図しない精度の損失など。この種の
チェックは各サブプログラムで個別に実行できます。 さらに、ローカルでのチェック
他のサブプログラムが変更されたときに、サブプログラムを繰り返す必要はありません。 グローバル
チェックすると、間違った引数の型でサブルーチンを呼び出すなどのことが検出されます。
共通のブロック宣言に同意しません。 セット全体を見る必要があります
サブプログラムは相互に対話します。

プロジェクト ファイルの目的は、ローカル チェックとグローバル チェックのステップを可能にすることです。
別れる。 各サブプログラムが独自のソース ファイル内にあると仮定すると、次のように実行できます。
フトチェク それぞれに XNUMX 回ずつ、グローバル チェックを抑制しながらローカル チェックを実行します。 それから
フトチェク すべてのプロジェクト ファイルに対して一度実行して、グローバル チェックを行うことができます。 の
以下のサンプル Makefile は、このタスクを自動化する方法を示しています。 「.f.prj」ターゲットは、
ソース ファイルが変更されるたびに、特定のファイルのプロジェクト ファイルが更新されます。 情報
グローバルチェックに必要なファイルはプロジェクトファイルに保存されます。 「チェック」ターゲットは次のことを行います。
結合されたグローバルチェック。 通常、「make check」は「ftnchek -project」を繰り返します。
変更されたソース ファイルのみをステップとして実行し、その後、グローバル チェックを実行します。 これは明らかに大きいです
これは、多くのサブプログラムがほとんど変更されない、大規模なプログラムの場合に有利です。

プロジェクト ファイルを使用して各サブプログラムを別個のソース ファイルに配置するのが最適です。
各ソース ファイルに複数のサブプログラムが含まれる場合、定義が複雑になります。
モジュール間チェックがあるため、「ローカル」チェックと「グローバル」チェックが異なります。
ファイル内に含まれています。 フトチェク この場合、正しいことをしようとしますが、
クロスの再実行を回避することとのトレードオフにより、いくつかの複雑な問題 (後述) が発生します。
プログラムの構造に関する情報をチェックして保存します。

通常、最小限の再チェックを行うには、プロジェクト ファイルを次のように作成する必要があります。
  -図書館 フラグが有効で、トリミングがオンになっています。 このモードでは、保存される情報は
プロジェクト ファイル内は、すべてのサブプログラム宣言、すべてのサブプログラム呼び出しで構成されます
同じファイル内の宣言では解決されず、各 COMMON ブロックの XNUMX つのインスタンス
宣言。 これは、両者の一致を確認するために必要な最小限の情報です。
ファイル。

ソース ファイルに複数のルーチンが含まれている場合、いくつかの問題が発生する可能性があります。
ライブラリ モードでプロジェクト ファイルを作成すると、呼び出し階層が存在するため、この問題が発生する可能性があります。
ファイル内で定義されているルーチンのうちの一部は失われます。 また、ファイル内のルーチンが
他のファイルのルーチンと共有される COMMON ブロックを使用する場合、
COMMON ブロックの設定および使用状況を正しくチェックするために保存される十分な情報
および COMMON 変数は、 -利用方法 設定。 したがって、使用する予定がある場合は、
プロジェクトファイルの場合 -利用方法 チェックがオンになっており (これがデフォルトの状況です)、
XNUMX つのプロジェクト ファイル内の複数のルーチンは、他のファイル内のルーチンと COMMON ブロックを共有します。
プロジェクト ファイルは次のように作成する必要があります。 -図書館 フラグがオフになりました。 このモードでは、
フトチェク 上記の情報に加えて、各サブプログラムの XNUMX 回の呼び出しを保存します。
同じファイル内の他のサブプログラム、およびすべての COMMON ブロック宣言。 この意味は
プロジェクト ファイルが必要以上に大きくなり、読み込まれると、 フトチェク かもしれません
プロジェクト ファイルの作成時にすでに行われていたモジュール間チェックを繰り返します。 もし
各プロジェクト ファイルにはモジュールが XNUMX つだけ含まれており、作成時に情報が失われることはありません。
ライブラリモードのプロジェクトファイル。

プロジェクト ファイルを作成すると情報が失われる可能性があるため、
-図書館 フラグが有効な場合、後でそのプロジェクト ファイルが読み込まれるたびに処理されます。
の現在の設定に関係なく、ライブラリ ファイルとして保存されます。 -図書館 フラグ。 もう一方の
一方、ライブラリ モードをオフにして作成されたプロジェクト ファイルは、後でどちらの方法でも読み込むことができます。
モード。

前述の説明では、トリミング オプションが -計画 設定は
プロジェクトファイル作成時にオンになります。 これが通常の状況です。 の トリムなし
のオプション -計画 プロジェクトファイルを使用したい場合に備えて設定が提供されています
プログラムのチェック以外の目的 フトチェク。 たとえば、次のように書くことができます
Perl スクリプトを使用してプロジェクト ファイルを分析し、さまざまな違いについての情報を取得します。
サブプログラムが呼び出されます。 使用しないでください。 トリムなし ~の問題に対処するためのオプション
情報損失は、必要以上に多くの情報を失わせる原因となるため、上で説明しました。
保管されています。 これによりプロジェクト ファイルが大きくなり、 フトチェク 後でさらに作業を行うため
プログラム全体をチェックするためにそれらを読み取ります。 通常は、 -図書館
後で使用するために保存する情報の量を制御するオプション フトチェク あなたのことをチェックする際に
プログラム。

UNIX の使用方法の例を次に示します。 make 新しいものを自動的に作成するユーティリティ
対応するソース ファイルが変更されるたびに、プロジェクト ファイルのセットを確認します。
一貫性を保つためにファイルを作成します。 これらの行をメイクファイルに追加します。 この例では、
リンクされるオブジェクト ファイルの名前をすべてリストするマクロ OBJS が定義されています
それらを組み合わせて完全な実行可能プログラムを形成します。 (このメイクファイルでは、インデントされた行は
それぞれが空白ではなくタブで始まる必要があります。) ソース ファイルに複数のルーチンが含まれている場合
相互に共通のブロックを共有する場合は、no-com-\* オプションを削除する必要があります
NOGLOBAL から削除するか、-library フラグを削除します。
# make にプロジェクト ファイルのサフィックスを教えます
.サフィックス: .prj

# これらのオプションはグローバル チェックを抑制します。
NOGLOBAL=-usage=no-ext-unknown,no-com-\*

# .f ファイルから .prj ファイルを作成する方法を make に指示します
.f.prj:
ftnchek -project $(NOGLOBAL) -library $

# プロジェクトファイル名を含むマクロ PRJS を設定します
PRJS= $(OBJS:.o=.prj)

# 「make check」は変更されたすべてをチェックします。
チェック: $(PRJS)
ftnchek $(PRJS)

プログラムが、多数の異なるソース ファイルで定義された多数のルーチンを使用する場合、
ディレクトリが異なると、異なるプロジェクト ファイルをすべて指定するのが面倒になる場合があります
プログラムを正しくチェックするために必要です。 このようなケースに対処するために、 フトチェク プロジェクトを許可します
ファイルを XNUMX つの大きなファイルに連結します。 この XNUMX つのファイルを次のユーザーに渡すことができます。
フトチェク 一部またはすべてのルーチンの使用を確認するための情報を提供するため
結合されたプロジェクト ファイルで定義されます。 このような「ライブラリ」プロジェクト ファイルを使用する場合、
欲しいかもしれない フトチェクのエラーレポートには、ファイルの名前が正確に記録されています。
特定の関数が定義されています。 さまざまなソース ファイルが複数のディレクトリにある場合、
ファイル名のみを示すエラー レポートはあいまいな可能性があるため、むしろファイル名を含める必要があります。
ファイルへのパス。 解決策は、次のようにして個々のプロジェクト ファイルを作成することです。
ソースファイルへの完全なパスを指定します。 次に、この完全なパスが
エラーレポート。 たとえば、すべてのライブラリ サブプログラム ソース ファイルが
/util/lib という名前のディレクトリのサブディレクトリにあります。 その後、個々のプロジェクト ファイルは
最初に次のようなコマンドで作成されます。
find /util/lib -name '*.f' -exec ftnchek -project '{}' ';'
(おそらく他のオプションが提供されるでしょう フトチェク 上で議論したように。 また、このステップは
代わりに、完全なソースを提供する改訂された Makefile ルールによって処理できる可能性があります。
呼び出すときにローカル名だけではなくファイルパスを使用する フトチェク.) 次に、すべてを連結します。
これらのプロジェクト ファイルを手動で編集します。
find /util/lib -name '*.prj' -exec cat '{}' ';' > 私たちのlib.prj
その後、次のコマンドを使用してプログラムのソース ファイルを確認できます。
ftnchek prog.f ... -lib ourlib.prj
また、ライブラリ ルーチンに関連するエラー メッセージには、
ルーチンのソースファイル。

現時点では、次のようなアーカイブ ユーティリティはありません。 ar 連結されたコンテンツの内容を管理するには
上の図のようなプロジェクト ファイル。 いずれかが変更された場合
ライブラリ ルーチンの場合、結合されたプロジェクト ファイルを更新する唯一の方法は、すべてを連結することです。
個々のプロジェクト ファイルをもう一度。 このようなユーティリティは非常に簡単に作成できます。
誰かがそうして、それを フトチェク 努力。

AN 実施例


次の簡単な Fortran プログラムは、 フトチェクを選択します。
プログラムは、テスト スコアの配列を受け入れて、その平均を計算することを目的としています。
シリーズ。

C 著者: MIKE MYERS と LUCIA SPAGNUOLO
C 日付: 8 年 1989 月 XNUMX 日

C 変数:
C SCORE -> テストスコアの配列
C SUM -> テストの点数の合計
C COUNT -> 読み込まれたスコアのカウンター
CI -> ループカウンター

実数関数 COMPAV(スコア,カウント)
整数合計、カウント、J、スコア(5)

DO 30 I = 1,COUNT
SUM = SUM + スコア(I)
30 続ける
COMPAV = 合計/カウント
終わり

プログラム アベナム
C
C メインプログラム
C
C 著者: ロイス・ビッグビー
C 日付: 15 年 1990 月 XNUMX 日
C
C 変数:
C MAXNOS -> 入力値の最大数
C NUMS -> 数値の配列
C COUNT -> 入力値の正確な数
C AVG -> COMPAV によって返される平均
CI -> ループカウンター
C

パラメータ(MAXNOS=5)
整数 I、カウント
実数(MAXNOS)、AVG
カウント = 0
DO 80 I = 1、MAXNOS
読み取り (5,*,END=100) NUMS(I)
カウント = カウント + 1
80 続ける
100 AVG = COMPAV(数値、カウント)
終わり

このプログラムをコンパイルしても、コンパイラはエラー メッセージを表示しません。 それでもここにあるのは
実行すると次のようになります。

$ 実行平均
70
90
85

$

どうしたの? なぜプログラムは何もしなかったのですか? 以下は、からの出力です
フトチェク 上記のプログラムをデバッグするために使用する場合:

$ ftnchek -list -symtab 平均

FTNCHEK バージョン 3.3 2004 年 XNUMX 月

ファイル average.f:

1 C 著者: MIKE MYERS と LUCIA SPAGNUOLO
2C 日付: 8 年 1989 月 XNUMX 日
3
4 C 変数:
5 C SCORE -> テストスコアの配列
6 C SUM -> テストの点数の合計
7 C COUNT -> 読み込まれたスコアのカウンター
8 CI -> ループカウンター
9
10 実数関数 COMPAV(スコア,カウント)
11 整数 SUM,COUNT,J,スコア(5)
12
13 DO 30 I = 1,COUNT
14 SUM = SUM + スコア(I)
15 30 コンティニュー
16 COMPAV = 合計/カウント
^
行 16 列 20 付近の警告: 整数商 expr SUM/COUNT が変換されました
リアル
17終了

モジュール COMPAV: func: real

変数:

名称 タイプ 寸法 名称 タイプ 寸法 名称 タイプ 寸法 名称 タイプ 寸法
COMPAV 実数 COUNT intg I intg* J intg
スコア intg 1 SUM intg

* 変数が宣言されていません。 タイプは暗黙的に定義されています。

モジュール COMPAV の警告: 宣言されているが参照されていない変数:
J は 11 行目で宣言されています

モジュール COMPAV での警告: 変数は設定前に使用される可能性があります:
14 行目で使用される SUM
14行目のSUMセット

ステートメント ラベルの定義:

ラベル ライン StmtType
<30> 15 実行

18
19
20 プログラム アベナム
21 C
22C メインプログラム
23 C
24 C 著者: ロイス・ビッグビー
25C 日付: 15 年 1990 月 XNUMX 日
26 C
27 C 変数:
28 C MAXNOS -> 入力値の最大数
29 C NUMS -> 数値の配列
30 C COUNT -> 入力値の正確な数
31 C AVG -> COMPAV によって返される平均
32 CI -> ループカウンター
33 C
34
35 パラメータ(MAXNOS=5)
36 整数 I、カウント
37 実数(MAXNOS)、平均
38 カウント = 0
39 DO 80 I = 1、MAXNOS
40 読み取り (5,*,END=100) 数値(I)
41 カウント = カウント + 1
42 80 コンティニュー
43 100 AVG = COMPAV(数値、カウント)
44終了

モジュール AVENUM: prog

参照される外部サブプログラム:

COMPAV: 実数*

変数:

名称 タイプ 寸法 名称 タイプ 寸法 名称 タイプ 寸法 名称 タイプ 寸法
AVG real COUNT intg I intg MAXNOS intg*
NUMS 実数 1

* 変数が宣言されていません。 タイプは暗黙的に定義されています。

モジュール AVENUM の警告: 設定されているが使用されていない変数:
43行目に設定されたAVG

入出力操作:

ユニットID ユニット番号 アクセスフォーム 操作ライン
5 シーケンス FMTD 読み取り 40

ステートメント ラベルの定義:

ラベル ライン StmtType ラベル ライン StmtType
<80> 42 実行 <100> 43 実行

ファイル average.f で 0 個の構文エラーが検出されました
ファイル average.f で発行された 6 つの警告

警告: サブプログラムの COMPAV 引数のデータ型が位置 1 で一致しません:
モジュール COMPAV の 10 行目のファイル average.f のダミー引数 SCORE は intg 型です
モジュール AVENUM の 43 行目のファイル average.f の実際の引数 NUMS は実数型です

による フトチェク、プログラムには、使用される前に使用される可能性のある変数が含まれています
初期値と不要な変数が割り当てられています。 フトチェク も警告する
整数商が実数に変換されたことをユーザーに通知します。 これは、ユーザーを支援する場合があります。
意図しない丸めエラーをキャッチします。 以来、 -symtab 旗が渡され、 フトチェク プリント
ローカルモジュールからの識別子とそれに対応するデータ型を含むテーブルを出力します
そして次元数。 ついに、 フトチェク 関数 COMPAV が使用されていないことを警告します
適切なタイプの引数で。

フトチェクの助けを借りて、プログラムをデバッグできます。 以下があったことがわかります
エラー:

1. 除算を行う前に、SUM と COUNT を実数に変換する必要があります。

2. SUM は、ループに入る前に 0 に初期化されている必要があります。

3. AVG は、計算後に出力されませんでした。

4. NUMS は、REAL ではなく INTEGER として宣言する必要がありました。

また、J ではなく I が、関数 COMPAV で INTEGER と宣言されている必要があることもわかります。 また、
プログラム AVENUM で、MAXNOS が INTEGER として宣言されておらず、COMPAV が REAL として宣言されていませんでした。 これらはそうではありません
エラーですが、不注意を示している可能性があります。 たまたま、これらのデフォルトのタイプは
変数は意図した型と一致しました。

修正されたプログラムと実行時の出力は次のとおりです。

C 著者: MIKE MYERS と LUCIA SPAGNUOLO
C 日付: 8 年 1989 月 XNUMX 日
C
C 変数:
C SCORE -> テストスコアの配列
C SUM -> テストの点数の合計
C COUNT -> 読み込まれたスコアのカウンター
CI -> ループカウンター
C
実数関数 COMPAV(スコア,カウント)
整数合計、カウント、I、スコア(5)
C
合計 = 0
DO 30 I = 1,COUNT
SUM = SUM + スコア(I)
30 続ける
COMPAV = 浮動小数点(合計)/浮動小数点(カウント)
終わり
C
C
プログラム アベナム
C
C メインプログラム
C
C 著者: ロイス・ビッグビー
C 日付: 15 年 1990 月 XNUMX 日
C
C 変数:
C MAXNOS -> 入力値の最大数
C NUMS -> 数値の配列
C COUNT -> 入力値の正確な数
C AVG -> COMPAV によって返される平均
CI -> ループカウンター
C
C
整数 MAXNOS
パラメータ(MAXNOS=5)
INTEGER I、NUMS(MAXNOS)、COUNT
REAL AVG、COMPAV
カウント = 0
DO 80 I = 1、MAXNOS
読み取り (5,*,END=100) NUMS(I)
カウント = カウント + 1
80 続ける
100 AVG = COMPAV(数値、カウント)
WRITE(6,*) '平均 =',AVG
終わり
$ 実行平均
70
90
85

平均 = 81.66666
$

フトチェクの助けを借りて、私たちのプログラムは成功しました!

通訳 出力


によって与えられたメッセージ フトチェク 構文エラーだけでなく、警告や
正当な Fortran であるが、エラーまたはエラーを示す可能性があるものに関する情報メッセージ
不注意。 これらのメッセージのほとんどは、コマンド ライン オプションでオフにすることができます。 どれの
オプションは、警告される状態の性質に応じて、各メッセージを制御します。
前のセクションのコマンドライン フラグの説明と、個々のフラグの説明を参照してください。
以下のメッセージ。 各メッセージには、メッセージの性質を示す語句が前に付けられます
状態とその重症度。

「エラー」は構文エラーを意味します。 最も単純な種類の構文エラーはタイプミスです
括弧の不一致やキーワードのスペルミスなどのエラー。 このタイプの
エラーはパーサーによってキャッチされ、「解析エラー」または「構文」の説明とともに表示されます。
error'' (パーサー ジェネレーターのバージョンと、それが GNU であるかどうかによって異なります) バイソン or
UNIX ヤック)。 このタイプのエラー メッセージは抑制できません。 このタイプの
エラーはしばしばそれを意味します フトチェク エラーが発生したステートメントを適切に解釈していません
その結果、その後のチェック操作が危険にさらされます。 あなたがすべき
他のメッセージの解釈に進む前に、すべての構文エラーを排除する フトチェク
与えます。

「警告: 非標準構文」は、Fortran の拡張機能を示しています。 フトチェク サポート
しかし、それは Fortran 77 標準に従っていません。 拡張機能 フトチェク 受け入れる
以下の拡張機能のセクションで説明します。 XNUMX つの例は、DO ... ENDDO です。
工事。 プログラムがこれらの拡張機能を使用している場合、次のように警告が表示されます。
の下の仕様 -f77 設定。 デフォルトの動作では、警告は表示されません。

その他の場合の「警告」は、疑わしいが、そうである場合とそうでない場合がある状態を意味します。
プログラミングエラー。 多くの場合、これらの条件は標準の下で合法です。 一部は
違法ですが、構文エラーの見出しには該当しません。 使用エラーは一例です。
これらは、変数が割り当てられる前に使用される可能性があることを示しています。
値 (通常はエラー)、または変数が宣言されているが使用されていない (無害ですが、
不注意を示している可能性があります)。 使用エラーのチェック量は、
-利用方法 デフォルトでチェックの最大量を指定するフラグ。

切り捨ての警告は、精度が意図せず失われる可能性がある状況をカバーします。
倍精度値が実数変数に代入される場合の例。 これらの警告は、
によって制御されます -切り捨て デフォルトでオンになっています。

``Nonportable usage'' は、一部のコンパイラで受け入れられない可能性のある機能について警告します。
Fortran 77 標準に反していない場合でも、またはそれが原因でプログラムが
異なるプラットフォームで異なるパフォーマンスを発揮します。 たとえば、実数と
通常、整数変数は移植性のない方法です。 への拡張機能の使用
もちろん、標準言語は移植性のないもう XNUMX つの原因ですが、これは次のように処理されます。
別ケース。 プログラムの真の移植性をチェックするには、 -携帯性
-f77 フラグを使用する必要があります。 どちらもデフォルトでオフになっています。 の -ワードサイズ 設定は
特定のマシンに依存する移植性のない使用法のみをチェックするために提供されています
ワードサイズ。

「誤解を招く可能性のある外観」は、何を意味しない可能性がある法的解釈に使用されます。
一見意味があるように見えます。 たとえば、Fortran は空白を認識しません。
変数名内の余分なスペースまたはキーワードと変数の間のスペースの不足
変数は読者に間違った印象を与える可能性があります。 これらのメッセージは抑制できます
をオフにすることで -可愛い デフォルトでオンになっているフラグ。

すべてのファイルが処理された後に表示されるその他のメッセージ。
モジュール間の合意、「警告」という言葉を使用しないでください。
カテゴリー。 例には、異なる変数の対応する変数間の型の不一致が含まれます。
COMMON ブロック宣言、またはサブプログラムの仮引数と実引数の間。 これらは
警告は、 -一般 & -引数 それぞれの設定。 デフォルトでは
両方とも、チェックの厳格さを最大限に高めるように設定されています。

多くの場合無害である状態に関する別のグループの警告は、次のような場合を指します。
サブプログラムの引数として渡される変数の配列プロパティが XNUMX つの間で異なる
ルーチン。 たとえば、配列要素は、
配列全体。 これは、単一の行または列を処理するために一般的に使用される手法です。
二次元配列。 ただし、プログラミング エラーを示している可能性もあります。 の -配列
設定により、ユーザーはこれをチェックする際に使用される厳密さの程度を調整できます
実際の配列引数と仮配列引数の間の一種の一致。 デフォルトの厳格度は
最大。

「おっと」は技術的な問題を示します。 フトチェク またはその
リソースを超えました。

構文エラー メッセージと警告には、ファイル名と行番号が含まれます。
列番号。 フトチェク これらのエラーの表示には XNUMX つの異なるオプションがあります
メッセージ。 もしも -初心者 が有効です。これがデフォルトです。メッセージはスタイルになっています。
通常の英語に近い。 (デフォルトのスタイルでは、ファイル名はメッセージに出力されません。
プログラムの本体内で -リスト が有効です。) 別の形式のエラー メッセージ
によって選択されます -ノノヴィス オプション。 このスタイルでは、メッセージの外観は
UNIX に似ている 糸くず プログラム。

フトチェク いくつかの種類の構文エラーはまだ見えません。 最も重要なものは次の XNUMX つです。
FORMATステートメントの詳細なチェック、および制御に関係するほとんどすべて
IF、DO、および GOTO ステートメントによる実行フロー: つまり、コントロールの正しいネスト
構造、IF ... THEN などの開始ステートメントと終了ステートメントの一致
ENDIF などのステートメント ラベル (番号) の適切な使用。 ほとんどのコンパイラは
これらのエラーをキャッチします。 詳細については、制限事項のセクションを参照してください。

If フトチェク コンパイラがそうしないときに構文エラーメッセージを表示します。
あなたのプログラムには、コンパイラによって受け入れられる標準 Fortran の拡張機能が含まれています。
によってではなく フトチェク. (拡張機能のセクションを参照してください。) VAX/VMS システムでは、
コンパイラ オプション /STANDARD を使用して、コンパイラが標準の Fortran のみを受け入れるようにします。 の上
ほとんどの UNIX または UNIX ライクなシステムでは、これはフラグを設定することで実現できます。 -ansi。

から寄せられたメッセージの多くは フトチェク 自明です。 ある程度必要な方
追加の説明は、アルファベット順に以下にリストされています。

コマンドと コロナ新型ウィルス(COVID-XNUMX)やメンタルヘルスの崩壊を避ける為の 名前: データ type ミスマッチ at 位置 n
  n-COMMON ブロックの th 変数は、XNUMX つの異なるデータ型で異なります
COMMON ブロックの宣言。 デフォルトでは (-一般 厳しさレベル 3)、 フトチェク
COMMON ブロックについては非常にうるさいです: それらにリストされている変数は正確に一致する必要があります
データ型と配列の次元によって。 つまり、宣言の正当なペア
異なるモジュール:
コモン /COM1/ A,B
&
コモン /COM1/ A(2)
引き起こすだろう フトチェク 厳しさレベル 3 で警告を発します。これら XNUMX つの宣言
どちらも XNUMX つの実数変数を宣言するため、Fortran では有効です。 厳しさで
レベル 1 または 2 の場合、この例では警告は表示されませんが、警告は次のようになります。
B が INTEGER と宣言された場合など、データ型の不一致があった場合に指定されます。
制御者 -一般 設定。

コマンドと コロナ新型ウィルス(COVID-XNUMX)やメンタルヘルスの崩壊を避ける為の NAME 持っています 長い データ type フォロー中 短い データ type
一部のコンパイラでは、各項目が特定の位置から始まるように、マルチバイト項目の位置合わせが必要です。
アイテムサイズの倍数であるアドレス。 したがって、短い場合(たとえば、単一の
精度実数) アイテムの後に長い (倍精度実数など) アイテムが続きます。
後者は正しく配置されない場合があります。 によって制御される -portability=共通アライメント
オプションを選択します。

コマンドと コロナ新型ウィルス(COVID-XNUMX)やメンタルヘルスの崩壊を避ける為の NAME 持っています 混合 文字 & 非キャラクター variables
ANSI 標準では、COMMON ブロック内の変数の型が
CHARACTER の場合、同じ COMMON ブロック内の他のすべての変数も型でなければなりません
キャラクター。 によって制御される -f77=混合共通 オプションを選択します。

コマンドと コロナ新型ウィルス(COVID-XNUMX)やメンタルヘルスの崩壊を避ける為の 名前: 変化する 長さ
-一般 設定レベル 2 の場合、このメッセージは、COMMON ブロックが宣言されていることを意味します。
XNUMX つの異なるサブプログラムで単語数が異なります。 単語は量です
XNUMX つの整数変数または実数変数が占めるストレージの容量。 ために -一般 設定レベル3、
これは、XNUMX つの宣言の変数の数が異なることを意味します。
任意のサイズの配列は XNUMX つの変数と見なされます。 これは必ずしもエラーではありませんが、
しかし、変数がリストの XNUMX つにないことを示している可能性があります。 ご了承ください
Fortran 77 標準によると、名前付き COMMON ブロックのエラーです (ただし、
空白ではない COMMON) 異なる宣言の単語数が異なる
モジュール。 与えられた -一般 2 または 3 を設定します。

エラー: ひどく 形成 論理/リレーショナル オペレータ or 定数

エラー: ひどく 形成 リアル 定数
構文アナライザーは、次の特殊な単語の XNUMX つの開始を検出しました。
ピリオド (.EQ. など) で終わるか、数値定数の始まりですが、そうではありませんでした
その種の完全なアイテムを見つけることに成功します。

エラー: be 調節可能 サイズ in モジュール NAME
アスタリスクのサイズで文字変数を宣言することはできません。
仮引数、パラメーター、または関数の名前でない限り、括弧
モジュールで定義されています。

エラー: be 宣言された in セーブ ステートメント in モジュール NAME
SAVE ステートメントで宣言できるのは、ローカル変数と共通ブロックだけです。

エラー: いいえ path 〜へ この ステートメント
フトチェク ないために無視またはバイパスされるステートメントを検出します。
声明への予測可能なルート。 たとえば、番号のないステートメント (a
ステートメント ラベルのないステートメント)、GOTO ステートメントの直後、
実行できない可能性があります。

エラー: パーズ エラー
これは、Fortran プログラムを式に分析するパーサーが、
ステートメントなど、一部の有効な解釈を見つけることができませんでした
プログラム内のステートメントの。 コンパイラが構文エラーを報告しない場合
同じ場所で、最も一般的な説明は次のとおりです。(1) ANSI への拡張機能の使用
認識されない標準 Fortran フトチェク、または (2) ステートメントが要求する
より先読み フトチェク を使用します (バグに関するセクションを参照)。

注: このメッセージは、影響を受けるステートメントが解釈されないことを意味します。
したがって、 フトチェクの後続の処理はエラーになります。
このステートメントの影響を受ける事項 (型宣言など) によって異なります。

エラー: 構文 エラー
これは ``Error: Parse error'' (上記参照) と同じです。 あなたの場合に生成されます
のバージョン フトチェク UNIX を使用して構築された ヤック GNU ではなくパーサー ジェネレーター
バイソン.

識別子 which   ユニーク in 最初の 6 タンク
6 文字を超える XNUMX つの識別子は、
最初の6文字。 これは移植性のためです。これらは別個のものとは見なされない場合があります
一部のコンパイラによって。 によって制御される -XNUMX文字 オプションを選択します。

携帯不可 使用法: 引数 精度 かもしれません be 正しい for 本質的な function
組み込み関数に渡される引数の精度が正しくない可能性があります
一部のコンピューター。 数値変数が明示的な精度で宣言されたときに発行されます
(例: REAL*8 X) は、特定の組み込み関数 (例: DSQRT(X)) に渡されます。
制御者 -portability=混合サイズ & -ワードサイズ.

携帯不可 使用法: 文字 定数/変数 長さ 超え 255
一部のコンパイラは、長さが 255 文字を超える文字列をサポートしていません。
制御者 -portability=長い文字列.

携帯不可 使用法: File 含まれています タブ
フトチェク タブを次の列までのスペースに相当するように展開します。
8 の倍数。一部のコンパイラでは、タブの扱いが異なります。
電子メールで送信されたファイルでは、何らかの方法でタブが空白に変換されます。
したがって、タブを含むファイルは、コンパイル後に正しくコンパイルされない場合があります。
転送されました。 フトチェク タブがコメント内でのみ発生する場合、このメッセージは表示されません
または文字定数。 によって制御される -移植性=タブ.

携帯不可 使用法: 非整数 DO ループ 境界
この警告は、DO インデックスと境界が整数でない場合にのみ表示されます。 の使用
DO ステートメントで整数以外の量を使用すると、予期しないエラーが発生したり、異なる場合があります。
丸め効果により、異なるマシンでの結果。 によって制御される
-移植性=本当のこと.

ことによると it is an 配列 which ました 宣言された
このメッセージは、関数の呼び出しまたは
引数の型の不一致。
function は実際には配列であることを意図しています。 プログラマーが寸法記入を忘れた場合
配列の場合、配列への参照は関数呼び出しとして解釈されます。
問題の名前が EXTERNAL または
INTRINSIC ステートメント。 によって制御される -初心者 オプションを選択します。

ことによると 誤解を招く 外観: 文字 過去 72 コラム
プログラムは、ステートメント フィールド幅を標準値で処理しています。
of 72 で、列 72 を過ぎていくつかの非空白文字が見つかりました。この場合、
フトチェク 列 72 を超える文字を処理しておらず、ユーザーに通知しています
その声明は、それが持っているように見える意味を持っていない可能性があります。 これらは
文字はプログラマーによって意味のあるものとして意図されているかもしれませんが、
コンパイラによって無視されます。 によって制御される -pretty=ロングライン.

ことによると 誤解を招く 外観: コマンドと コロナ新型ウィルス(COVID-XNUMX)やメンタルヘルスの崩壊を避ける為の 宣言された in 他には? より XNUMXつ ステートメント
このような複数の宣言は合法であり、宣言の継続と同じ効果があります。
ブロックの元の宣言。 この警告は、XNUMX つの
宣言は、間にある XNUMX つ以上のステートメントによって区切られます。 によって制御される
-pretty=複数共通.

ことによると 誤解を招く 外観: 継続 コメント or ブランク ライン
フトチェク この警告メッセージを発行して、
ステートメントにはコメントが散りばめられているため、見落としがちです。 によって制御される
-pretty=続き.

ことによると 誤解を招く 外観: 無関係 括弧
式で変数自体を括弧で囲むことについて警告します。 とき
括弧で囲まれた変数が引数としてサブプログラムに渡されると、次のように扱われます。
呼び出されたルーチンによって値を変更できる変数としてではなく、式。
制御者 -pretty=括弧.

サブプログラム 名前: 引数 データ type ミスマッチ at 位置 n
サブプログラムの n-th 実引数 (CALL または関数の使用法)
データ型または精度が n-th 仮引数 (SUBROUTINE または
FUNCTION 宣言)。 たとえば、ユーザーがサブプログラムを次のように定義するとします。
サブルーチン SUBA(X)
リアルエックス
および他の場所では、次の方法で SUBA を呼び出します。
CALL スバ(2)
フトチェク エラーを検出します。 ここでの理由は、数値 2 が整数であるためです。
本当じゃない。 ユーザーが書くべきだった
コールすば(2.0)

サブプログラムである引数をチェックする場合、 フトチェク 決定できなければならない
関数かサブルーチンか。 によって使用されるルール フトチェク これを行うには
次のように: サブプログラムが、実引数として渡される以外に、
同じモジュールの他の場所で直接呼び出された場合、そのタイプはそれによって決定されます
利用方法。 そうでない場合、サブプログラムの名前が明示的に表示されない場合
型宣言、サブルーチンと見なされます。 明示的に入力された場合
関数として取り上げます。 したがって、実引数として渡されるサブルーチンは、
呼び出しモジュールの EXTERNAL ステートメントによって宣言されますが、関数は
また、このエラー メッセージの生成を回避するために、明示的に入力する必要があります。
制御者 -引数 設定。

サブプログラム 名前: 引数 配列性 ミスマッチ at 位置 n
前の状況に似ていますが、サブプログラムの仮引数が異なります。
対応する実引数の次元数または次元数
要素。 によって制御される -配列 ととも​​に -引数 設定を行います。

サブプログラム 名前: 引数 ミスマッチ at 位置 n
文字仮引数が、対応する実引数より大きい。
ホレリスの仮引数が、対応する実引数よりも大きくなっています。
制御者 -引数 設定。

サブプログラム 名前: 引数 使用 ミスマッチ
フトチェク サブプログラムが引数を使用する方法間の競合の可能性を検出します
サブプログラムに引数を渡す方法。 紛争は
以下に概説するように、XNUMX つのタイプのいずれかになります。

ダミー argは is 変更、 実際 argは is 定数 or
仮引数は、SUBROUTINE または FUNCTION ステートメントで指定された引数であり、
サブプログラム内で使用されます。 実引数は、に渡される引数です。
呼び出し元によるサブルーチンまたは関数。 フトチェク 仮引数が
サブプログラムによって変更され、その値が呼び出しで変更されたことを意味します
モジュール。 対応する実引数は、定数または式であってはなりません。
むしろ、正当に割り当てることができる変数または配列要素です。
によって制御される -usage=arg-const-modified オプションを選択します。

ダミー argは 中古 セット、 実際 argは セッションに
ここでは、値を割り当てる前にサブプログラムで仮引数を使用できます。
サブプログラムによってそれに。 対応する実引数には値が必要です
サブプログラムを呼び出す前に、呼び出し元によって割り当てられます。 によって制御される
-usage=var-未初期化 オプションを選択します。

この警告は、 -引数 設定。

サブプログラム NAME 呼び出された 一貫性がない
ここでの不一致は、サブプログラム自体のデータ型が使用されているものと使用されているものとの間にあります。
定義されています。 たとえば、ユーザーが宣言した場合
整数関数カウント(A)
別のモジュールで COUNT を次のように呼び出します。
N = カウント(A)
データ型を宣言しないと、最初の型に基づいて、デフォルトで実数型になります。
その名前の文字。 呼び出しモジュールには宣言が含まれている必要があります
整数カウント

与えられた -引数 2 または 3 を設定します。

サブプログラム 名前: 変化する 長さ 引数 リスト:
仮引数(パラメータ)の数に矛盾があります
サブプログラムが持っているものと、呼び出しで与えられた実際の引数の数。
フトチェク サブプログラムのすべての呼び出しを追跡します (CALL ステートメントと
関数を使用した式) を作成し、それらを関数の定義と比較します。
ソース コードの別の場所にあるサブプログラム。 Fortran コンパイラは通常、
このタイプのエラーをキャッチします。 与えられた -引数 1 または 3 を設定します。

変数 宣言された。 タイプ 持っています 暗黙的に 定義済みの
モジュールのシンボルテーブルを印刷するとき、 フトチェク すべてにアスタリスクでフラグを立てます
明示的に型付けされていない識別子であり、型付けされたデータ型を示します。
暗黙的な型付けによって割り当てられます。 これにより、希望するユーザーにサポートが提供されます。
Pascal やその他の言語で必要とされるように、すべての変数を宣言します。 この
メッセージが表示されるのは、 -symtab オプションが有効です。 または、
-宣言する 宣言されていないすべての変数のリストを取得する場合は、フラグを付けます。

Variables 宣言された 焙煎が極度に未発達や過発達のコーヒーにて、クロロゲン酸の味わいへの影響は強くなり、金属を思わせる味わいと乾いたマウスフィールを感じさせます。 決して 参照
プログラムで宣言されたが使用されなかった識別子を検出します。
値を割り当てるか、その値にアクセスします。 COMMON の変数
除外されます。 によって制御される -usage=var-未使用 オプションを選択します。

Variables セッションに 焙煎が極度に未発達や過発達のコーヒーにて、クロロゲン酸の味わいへの影響は強くなり、金属を思わせる味わいと乾いたマウスフィールを感じさせます。 決して 中古
フトチェク 変数に値が割り当てられたときにユーザーに通知しますが、
変数は、プログラムでそれ以外の場合は使用されません。 通常、これは
監視。 によって制御される -usage=var-set-unused オプションを選択します。

Variables 中古 セッションに
このメッセージは、識別子が値の計算に使用されていることを示しています。
初期化。 このような使用法は、誤った値が計算される可能性があります。
その初期値は制御されません。 によって制御される -usage=var-未初期化
オプションを選択します。

Variables かもしれません be 中古 セッションに
セット前に使用されるものと同様ですが、 フトチェク ステータスを判別できません
確信をもって。 フトチェク 最初の場合、設定する前に変数を使用できると仮定します
変数の使用は、プログラム テキスト内でその割り当ての前に行われます。
によって制御される -usage=var-未初期化 オプションを選択します。

警告: DO index is 整数
この警告は、DO 境界が整数で、DO インデックスがそうでない場合にのみ表示されます。
インデックスが整数であると宣言されていないことを示している可能性があります。 によって制御される
-truncation=実際の実行 オプションを選択します。

警告: 整数 ... 変換 〜へ リアル
XNUMX つの整数の商は、整数型の結果になります。
小数部は切り捨て。 そのような除算を含む整数式が
後で実数データ型に変換された場合、実数型の分割が行われた可能性があります。
意図されました。 によって制御される -truncation=int-div-real オプションを選択します。

警告: 整数 ... 中古 in 指数
XNUMX つの整数の商は、整数型の結果になります。
小数部は切り捨て。 このような整数式を指数として使用すると、
実数型の分割が意図された可能性が非常に高いです。 によって制御される
-truncation=int-div-exponent オプションを選択します。

警告: NAME セッションに いつ リターン 遭遇
Fortran の関数が値を返す方法は、値を
関数の名前。 このメッセージは、機能に割り当てられていないことを示します。
RETURN ステートメントが見つかったポイントの前の値。 したがって、
関数が未定義の値を返す可能性があります。

警告: 非標準 構文: 調節可能 サイズ be 連結 こちら
Fortran 77 標準 (セクション 6.2.2) では、文字変数の連結が禁止されています。
代入ステートメントを除いて、そのサイズは括弧内のアスタリスクです。
制御者 -f77=混合式.

警告: 非標準 構文 : 重要 文字 過去 72 コラム
この警告は、 -f77=長蛇の列 の場合の設定 -列 設定は
ステートメントのフィールド幅を広げるために使用されており、ステートメントには意味があります。
標準の Fortran は、これらの列のすべてのテキストを無視します。
しかし、そうでないコンパイラもあります。 したがって、プログラムは次のように異なる方法で処理される場合があります。
異なるコンパイラ。

警告: 非標準 構文 : ステートメント でる of オーダー。
フトチェク ANSI に指定された順序から外れているステートメントを検出します
標準 Fortran 77。 表 1 は、
フォートラン言語。 それにもかかわらず、順不同のステートメントは、によって解釈されます。
フトチェク、エラーメッセージの「カスケード」を防ぎます。 シーケンスカウンターも
同様のブロックのエラーメッセージの繰り返しを防ぐためにロールバック
ステートメント。 によって制御される -f77=ステートメントの順序 オプションを選択します。

-------------------------------------------------- ------
| | | | 暗黙
| | パラメータ |---------------------
| | | | その他の仕様
フォーマット |--------------------|---------------------
と | | | ステートメント関数
エントリー | データ |---------------------
| | | | 実行可能
-------------------------------------------------- ------

テーブル1

警告: 可能 分裂 by ゼロ
このメッセージは、除算が行われるたびに出力されます (a による除算を除く)。
絶え間ない)。 これを使用して、実行時のゼロ除算の問題を特定します。 制御された
by -分割 オプションを選択します。

警告: リアル 切り捨て 〜へ 整数
フトチェク 実式を持つ代入文を検出しました
右、左の整数変数。 実数値の小数部分
失うだろう。 を使用して実数式を明示的に整数に変換すると、
INT または NINT 組み込み関数、警告は出力されません。 同様のメッセージは、
倍精度式が単精度に割り当てられている場合に表示されます
変数などによって制御されます -切り捨て=降格 オプションを選択します。

警告: 添字 is 整数
配列添字は通常整数量であるため、非整数の使用
ここでの式はエラーを通知する場合があります。 によって制御される -truncation=実添字
オプションを選択します。

警告: 未知の 本質的な function
このメッセージは、INTRINSIC ステートメントで宣言された名前が
知られていない フトチェク. おそらく非標準の組み込み関数なので、
プログラムは移植できません。 関数は次のように処理されます フトチェク ユーザーとして
定義された関数。 この警告は、影響を与えるため、どのオプションによっても抑制されません。
フトチェクさんの番組分析。 ただし、組み込み関数が次のいずれかにある場合
サポートされている非標準組み込み関数のセットを使用できます。 -本質的 に設定
原因となる フトチェク それを認識します。

制限 そして 延長


フトチェク ANSI 標準の Fortran-77 プログラムを受け入れますが、いくつかのマイナーな制限と多数の制限があります。
一般的な拡張子。

制限事項:
ステートメント関数の仮引数は、通常の変数のように扱われます。
プログラム。 つまり、それらのスコープはステートメントだけでなく、サブプログラム全体です。
関数の定義。

FORMAT ステートメントのチェックは緩く、区切り記号 (カンマ、
など) 標準で必要とされる場所のフォーマット記述子間、および
許可 .d それらを持つべきではない記述子のフィールド。 以下で警告します
-f77=フォーマット編集記述 非標準の記述子タイプ (O など) について、およびサポートされている
拡張機能

いくつかの構文拡張と Fortran 90 要素があります。 フトチェク 受け入れる
しかし、ほとんどチェックしません。 たとえば、ポインターの使用法 (
非標準の Cray 構文または Fortran 90 構文) は、set 以外はチェックされません。
そして使用状況。 いつの日か、より徹底的なチェックが行われることが望まれます
実装されていますが、今のところ、ユーザーはこれらの構文の受け入れを考慮する必要があります
機能は、コードの他の側面をチェックできるようにするための便利な機能です。
それらが含まれています。 機能の詳細については、拡張機能のセクションを参照してください。
受け入れられましたが、完全にはチェックされていません。

ユーザー提供のサブプログラムが、非標準の組み込み関数の XNUMX つと同じ名前を持つ場合
によって認識される機能 フトチェクの EXTERNAL ステートメントで宣言する必要があります。
それを呼び出す任意のルーチン。 それ以外の場合は、通常のチェックの対象となります
組み込み関数に与えられます。 非標準の組み込み関数は
Fortran 77 標準では、この EXTERNAL ステートメントは必要ありません。
使い方 -intrinsic=なし ほとんどの非標準組み込み関数の設定、認識
(double complex データ型をサポートするために必要なもののみを除く)
オフ。 以下のサポートされている非標準組み込み関数のリストを参照してください。
の議論 -本質的 上記の設定。

拡張機能:
これらのすべての拡張子 (小文字を除く) は、次の場合に警告を生成します。
関連する -f77 オプションが設定されています。 以下にリストされている拡張機能の一部は、
Fortran-90 標準。 これらは表記 (F90) で示されます。

タブが許可され、タブに対応する同等の空白に変換されます
8列ごとに停止します。 標準はタブを認識しません。 いくつかのことに注意してください
コンパイラはタブを許可しますが、扱いが異なります。 DEC に対して定義された治療法
FORTRAN は、 -source=dec-tab 設定。

文字列は、引用符またはアポストロフィで区切ることができます。 XNUMX つのシーケンス
区切り文字は、単一の埋め込み区切り文字として解釈されます。
(F90)

文字列には、UNIX スタイルのバックスラッシュ エスケープ シーケンスを含めることができます。 かれらは〜だろう
そのように解釈されます -source=unix-バックスラッシュ 設定が与えられます。 そうでなければ、
バックスラッシュ文字は、通常の印刷文字として扱われます。

ソース コードは、Fortran 90 フリー フォーマットまたは従来の固定フォーマットのいずれかです。
(F90)

ステートメント区切り文字としてセミコロンを使用できます。 (F90)

小文字は許可され、内部で大文字に変換されます
文字列を除く。 標準では、大文字のみを指定しています。
コメントと文字列。 (F90)

Fortran 77 標準に従って、ホレリス定数を使用できます。
付録 C. 式で使用したり、データ型と混同したりしないでください。
キャラクター。

1 桁目の文字 'D' (大文字または小文字) は、文字列の先頭として扱われます。
コメント。 このような行をコメントではなくステートメントとして扱うオプションはありません。

ステートメントが 72 列を超える場合があります。 -列 ました
制限を増やすために使用されます。 標準によると、73列目からのすべてのテキスト
から 80 までは無視され、80 桁を超える行はありません。

変数名は XNUMX 文字を超える場合があります。 標準では、次のように XNUMX つが指定されています。
最大。 フトチェク では、最大 31 文字の長さの名前を使用できます (F90)。

変数名には、アンダースコアとドル記号 (またはその他のアルファベット以外の記号) を含めることができます。
によって指定された文字 -識別子文字 オプション)。 これらのキャラクターは、
アルファベットと同じ扱い。 始まる変数のデフォルトの型
これらの文字は本物です。 の範囲を指定する IMPLICIT 型ステートメントで
文字の場合、Z の後にドル記号が続き、アンダースコアが続きます。 (他の
ユーザー定義文字はドル記号と同じように扱われます。) Fortran 90
変数名にアンダースコアを使用できます。

UNIX バージョンでは、プリプロセッサ ディレクティブ、つまり行の存在が許容されます。
ポンド記号 (#) で始まります。 #line を除いて、これらはコメントとして扱われます。
解釈され、行番号とソースを設定するために使用されるディレクティブ
警告およびエラー メッセージのファイル名。 #include ディレクティブはそうではないことに注意してください
によって処理された フトチェク. ソースファイルを含めるためにそれらを使用するプログラムは、
に入力される前にプリプロセッサを通過する フトチェク。 下記のように、
フトチェク 構文が異なる INCLUDE ステートメントを処理します。 アン
オプションプログラム、 ftnpp(1L) (別売り)
INCLUDE ファイルを適切に処理します。

Fortran 90 DO ... ENDDO 制御構造が許可されています。 CYCLEとEXIT
ステートメントが受け入れられます。 これらはすべてオプションの do-construct 名を持つことができますが、
構成名の一貫性はチェックされません。 (F90)

Fortran 90 SELECT CASE 構造が受け入れられます。 (F90)

コンストラクト名は、IF、THEN、ELSE、ENDIF、および SELECT CASE でも受け入れられます。
ステートメント。 (F90)

ACCEPT および TYPE ステートメント (端末 I/O 用) が許可されます。
PRINT としての構文。

いわゆる「Cray ポインター」構文は許容されます。 それは同じではありません
Fortran 90 POINTER ステートメント。 その他のステートメントの実際のチェックはありません
基本的な構文よりも。 このステートメントの形式は次のとおりです。
ポインター (ポインタ, 指摘先) [、(ポインタ, 指摘先)]
ポインター変数には、INTEGER *4 のデータ型が割り当てられます。 の使用状況チェック
実際には間接的にアクセスされるため、pointee 変数は抑制されます。
ポインターを介して。

次の Fortran 90 ポインター関連の構文が受け入れられます: ALLOCATABLE、
POINTER、TARGET ステートメント、および型宣言内の同じ属性。
ALLOCATE、DEALLOCATE、および NULLIFY 実行ステートメント。 を使用したポインタ代入
=> 演算子; および組み込み関数 ALLOCATED および ASSOCIATED。 少しセマンティック
ポインター変数と操作のチェックは、基本セットを超えて実行され、使用されます
状態。 たとえば、ダングリング ポインターなどのエラーのチェックはありません。
または割り当てられていない配列の使用。

ステートメントには、任意の数の継続行を含めることができます。 Fortran 77 と Fortran
90 の規格では、固定ソース形式で最大 19 を許可します。 Fortran 90 標準
自由なソース形式で最大 39 個まで許可されます。

句読点で構成される関係 (比較) 演算子、つまり < <= == /= > >=
許可されます。 (F90)

感嘆符で始まるインライン コメントを使用できます。 (F90)

NAMELIST I/O がサポートされています。 構文は Fortran 90 と同じです。

FORMAT ステートメントには、キャリッジの抑制を示すドル記号を含めることができます。
戻る。 山括弧で囲まれた整数式は、
Fortran 77 標準で整数定数を使用できる FORMAT ステートメント (例外を除く)
ホレリス定数の長さ)、繰り返しのランタイム値を提供する
仕様またはフィールド幅。

VMS のキーワードに対応する、I/O ステートメントで非標準のキーワードを使用できます。
Fortran。

IMPLICIT NONE ステートメントがサポートされています。 この発言の意味は、
すべての変数は、データ型を明示的に宣言する必要があります。 にフラグを立てるのではなく、
構文エラーメッセージを伴うそのような変数の出現、 フトチェク まで待ちます
モジュールの終わり、そして宣​​言されていないすべての変数のリストを出力します。
のために行います -宣言する オプション。 (F90)

データ型 INTEGER、REAL、COMPLEX、および LOGICAL には、オプションの
型宣言での精度指定。 たとえば、REAL*8 は 8 バイトを意味します。
浮動小数点データ型。 REAL*8 データ型は必ずしも考慮されません
に応じて、DOUBLE PRECISION と同等 -ワードサイズ 設定。 Fortran 77
標準では、CHARACTER データに対してのみ長さを指定できます。

フトチェク 複素数の DOUBLE COMPLEX 型指定をサポートし、
実部と虚部は倍精度です。 混合モード算術
倍精度実数データを持つ単精度複素数。
標準、二重複素数の結果が得られます。

結合された型宣言とデータステートメントのような初期化子が受け入れられます。
これらは、標準の Fortran 77 型宣言の形式で、その後にスラッシュが続きます。
DATA ステートメントで使用されるような定数の区切りリスト。 の例
構文は
整数 N / 100 /
Fortran 90 では、この粗悪な形式の初期化宣言は採用されませんでした。
宣言は、以下に説明する標準的な形式を使用して記述する必要があります。
によって受け入れられた フトチェク.

Fortran 90 属性ベースの型宣言のサポートは限定されています。 この
宣言のスタイルは、
属性のリストと宣言された変数のリスト。 サポートされる機能は
初心者のプログラマーには十分ですが、プロのプログラマーにはまだ十分ではありません。
高品質の Fortran 90 プログラム。 今後、より多くの機能のサポートを追加したいと考えています
リリースします。 この仕事を手伝ってくれるボランティアを募集します。 の ToDo ファイルを参照してください。
詳細については、ソース コードの配布を参照してください。 加えて、現在受け入れられている属性
通常のデータ型はすべて、DIMENSION、EXTERNAL、INTRINSIC、PARAMETER、および SAVE です。
新しい形式の宣言では、変数に値を割り当てることもできます
宣言した。 現在、(LEN=値) 文字の長さを指定する形式も
受け入れました。 (KIND= を使用した種類指定値) 解析されますが、解析されません
処理済み: すべての種類がデフォルトの種類として扱われます。 チェックも少ないし
これらの宣言は、基本的な構文を超えています。

多くの一般的に見られる非標準の組み込み関数が提供されています。 を参照してください
の議論 -本質的 関数のリストとどの関数を制御するかについて
認識された。

引数のチェックは、配列または
混合引数タイプ。

フトチェク INCLUDE ステートメントを許可します。
指定されたファイル。 構文は次のとおりです。
含む 'ファイル名'
これは Fortran 90 と互換性があります。 -source=vms-include オプションが与えられ、
フトチェク このステートメントに関して VMS の規則に従います。
デフォルトの拡張子 。にとって ファイル名拡張子が指定されていない場合、
ファイル名の後に修飾子 /[NO]LIST を付けて、含まれるファイルのリストを制御します。
ファイル。 VMS テキスト モジュールの組み込みはサポートされていません。

インクルード ファイルに含まれるアイテムに関連する診断出力では、
エラーは、インクルード ファイル内の場所と
ファイルが含まれていた親ファイル。

フトチェク 括弧のない PARAMETER ステートメントを受け入れます。 これらは警告されます
について -f77=パラメータ-ノパレン フラグが与えられます。

フトチェク 組み込み関数を含む PARAMETER 定義を受け入れ、
非整数指数による累乗。 これらのケースはどちらも禁止されています。
Fortran 77 標準に準拠しており、次の場合に警告が表示されます。 -f77=パラメータ組み込み フラグ
与えられます。 組み込み関数の値がコンパイル時の整数定数の場合、
フトチェク それを評価します。 これにより、パラメーターが使用されているかどうかをより適切に確認できます
配列サイズの宣言。 Fortran 90 では、PARAMETER で組み込み関数を使用できます
定義。

評価される組み込み関数は次のとおりです。

ABS IAB DIM IDIM MAX
MAX0 MIN MIN0 MOD 符号
ISIGN LEN ICHAR インデックス

整数引数の関数は、引数が整数の場合にのみ評価されます
定数式。 (これらには、整数定数、パラメーター、および
組み込み関数を評価します。) 関数 LEN は、その引数が次の場合に評価されます。
文字定数および長さが XNUMX でない変数のみを含む式
調整可能。 関数 ICHAR および INDEX は、引数が次の場合にのみ評価されます。
文字定数。 フトチェク いくつかの値が必要な場合は警告を発します
評価されない組み込み関数。

NEW 商品特徴


バージョン 3.2 からバージョン 3.3 への変更点は次のとおりです。

1. 無制限の先読みのためにフロントエンドが書き直され、長年のバグが解消されました
あいまいさが解決されなかったステートメントの誤った解釈を引き起こした
最初の行。

2。 ザ -mkhtml オプションが MS-DOS 版で利用できるようになりました。

3. Fortran 90 ポインター関連の構文のサポートが追加されました: ALLOCATE、DEALLOCATE、および NULLIFY
ステートメント; 型宣言の ALLOCATABLE、POINTER、および TARGET 属性。 の
ポインター代入演算子 => および組み込み関数 ALLOCATED および ASSOCIATED; と
遅延形状配列宣言。 現在、これらの新しい構文機能が受け入れられています
しかし、適切にチェックされていません。 この機能は Robert Landrito によって追加されました。

4。 ザ -f77 & -f90 ポインタ ``Cray ポインタ'' に関する警告を制御するオプションが追加されました。
名前が変更されました クレイポインターを選択します。 -f77=ポインター オプションは、代わりに警告を制御するようになりました
Fortran 90 ポインター関連の構文を含むコード。

5. 再実装 -mkhtml を含むソース ファイルでの処理がはるかに高速になりました。
多くのルーチン。

6. テストディレクトリの配置を変更したため、変更する必要がなくなりました
テスト スイートを実行するためのディストリビューション (チェックバット) MS-DOS で。

7. コマンドラインで略称を設定した際の数値設定読み込みのバグを修正
3文字。

8. ラベル付きの END ステートメントを参照する GOTO に対して誤った警告を引き起こすバグを修正しました
END の前のステートメントが FORMAT の場合。

9. 新しい旗 -f77=キャラクター Fortran 77 の拡張に関する警告を制御する
文字データ型。 この新しいフラグに付随するのは、Fortran 90 ルールのサポートです。
ゼロまたは負の長さに評価される文字変数宣言。
負の長さの値をゼロとして扱います。

10. 最後の END ステートメントに続くコメントと空白行の出力の軽微なバグを修正しました。
in -リスト モード。

onworks.net サービスを使用してオンラインで ftnchek を使用する


無料のサーバーとワークステーション

Windows と Linux のアプリをダウンロード

Linuxコマンド

Ad