FSPLIT(1)

名前
fsplit - 複数のルーチンを含む FORTRAN 90 または、FORTRAN 77 ファイルのルーチンごとの分割

形式
fsplit [ -e efile ] ... [ fsplit_options ] file

機能説明
fsplit は、FORTRAN 77 または FORTRAN 90 のソースコードを 持つファイルを入力とみなします。入力を別々のルーチンファイルに 分割し、各ファイルに <name>.<syf> の形式で名前を付けようとします。 <name> は、プログラムユニット (関数、サブルーチン、モジュール、ブロックデータ、またはプログラム) の名前です。また、 <syf> は、ソースコードのソース言語に対応する名前の拡張子です。

名前を持たないブロックデータ副プログラムには、 blkdtaNNN.<syf> の形式で名前が付けられます。 NNN は 3 桁の数字で、既存のファイルに同じ名前のものがないことが前提となります。

名前を持たないメインプログラムには、 mainNNN.<syf> の形式で名前が付けられます。

プログラムユニットの分類中にエラーが発生するか、 name.<syf> がすでに存在する場合、 そのプログラムユニットは zzzNNN.<syf> というファイルに 置かれます (ここでも、 zzzNNN.<syf> というファイルが存在していないことが前提となります)。

オプション

-e efile
    通常、各副プログラムユニットは別々のファイルに分割されます。 しかし、-e オプションを使用すると、-e オプションで指定した 副プログラムだけが分割されます。
    例 コマンド fsplit -e sub1 -e sub2 prog.f は、 sub1 と sub2 だけをファイル sub1.f と sub2.f に抜き出します。

-u  デフォルトでは、すべてのユニット名は小文字に変換されます。 -u オプションを使用すると、すべてのユニットはオリジナルの 名前で保存されます。
    例 ファイル main.f77 には、次のようなサブルーチンが入っていると仮定します。
        subroutine SUB1
        ...
        end
        subroutine SUB2
        ...
        end

    このとき、次のコマンドを実行すると、ファイル sub1.f77 と sub2.f77 が作成されます。
         fsplit main.f77

    しかし、次のコマンドを実行すると、ファイル SUB1.f77 と SUB2.f77 が作成されます。
        fsplit -u main.f77

命名オプション
    すでに述べたとおり、fsplit プログラムは FORTRAN-77 と FORTRAN-90 のコードが入ったソースファイルを処理します。命名オプションを設定しない 場合 (次を参照)、fsplit は次の規則に従います。 <syf> が .f90 または .F90 の場合、入力ファイルは自由形式の FORTRAN-90 テキストであると考えられます。 <syf> が .f77 または .F の場合、入力ファイルは FORTRAN-77 テキストであると考えられます。 <syf> が上記以外の場合 (たとえば、.f や .for)、入力ファイルは FORTRAN-77 テキストであると考えられます。

ソース言語とソース形式の定義にはいくつかオプションがあります。

-f90
    はソースファイルを FORTRAN-90 として扱います。

-fixed
    fsplit はソースファイルを固定形式として扱います。 このオプションは、FORTRAN-90 のテキストのみに有効です。

使用例

1.  fsplit -f90 -fixed main1.f

  main1.f ファイルは、固定形式の FORTRAN-90
テキストを持つファイルであると考えられます。

2.  fsplit -f90 main2.f

  main2.f ファイルは、自由形式の FORTRAN-90
テキストを持つファイルであると考えられます。

3.  fsplit -f90 main3.f77

  main3.f77 ファイルは、自由形式の FORTRAN-90
テキストを持つファイルであると考えられます。

診断
-e オプションで指定した名前が見つからない場合、 診断メッセージが標準エラーに出力されます。

使用上の留意点

ソースファイルの書式が標準でない場合は、 fsplit が混乱することがあります。

ソースコードが構文的に正しくないプログラムの場合、 fsplit が混乱することがあります。

名前のないメインプログラムやブロックデータ副プログラムで -e オプションを使用すると、 作成後のファイル名を予想しなくてはならないので、手間がかかります。