-1

私はFortranにまったく慣れておらず、Fortran 95と2003でしか記述していません。現在、主に95で記述されているプログラムがありますが、完全にFortran 77構文であり、77の機能も含まれています。

今、私は別のプログラムの機能が必要ですが、プログラム全体を書き直したくありません。私のアイデアは置き換えることでした

program my_prog

module my_mod
subroutine my_prog()

交換は機能していないようです。コンパイラは、

subroutine my_prog()

間違っている。誰かがこのトピックについてある程度の経験を持っていますか、またはコードを書き直さずに実装することさえ可能かどうか知っていますか?

4

2 に答える 2

4

モジュールサブルーチンsubの正しい構文は次のとおりです。

module name_of_the_module

  use whatever

  implicit none

  !some variables and interfaces

  contains

    subroutine sub
      !here is the code of your subroutine
    end subroutine sub

end module name_of_the_module

それ以外の場合は、新しいコードからFORTRAN77のコードを呼び出すことができることに注意してください。これは(いくつかの例外を除いて)まだ古いスタイルの有効なFortran2008コードです。唯一の例外は、1つのソースファイルに無料のソース形式と固定のソース形式を混在させることができないことです。それもあなたの問題かもしれません。

最善の方法は、古い関数とサブルーチンをフリーソース形式(ここでは「交差形式」を参照)にも準拠するようにし、上記のようにモジュールに配置することです。

于 2012-12-21T17:51:32.710 に答える