を使用して、いくつかの Fortran コードから python モジュールをコンパイルしようとしていますf2py
。コードは ifort で問題なくコンパイルされますが、f2py を使用するとエラーが発生します。コードは次のとおりです (2 つのファイルにまたがっています)。
gdat.f90:
MODULE GDAT
PUBLIC
INTEGER :: NX, NY
END MODULE GDAT
part.f90:
SUBROUTINE PART(ARR)
USE GDAT, ONLY: NX, NY
INTEGER, INTENT(IN) :: ARR(NX,NY)
PRINT*, ARR
END SUBROUTINE PART
を使用してコンパイルしましf2py -c gdat.f90 part.f90 -m part
たが、nx と ny が定義されていないというエラーが表示されます。 /src.linux-x86_64-2.7/untitledmodule.c:180: エラー: 'nx' 宣言されていません (この関数で最初に使用)
明示的に整形された配列の定義に問題があるようARR
です。私が言うように、それはifortでうまくコンパイルされます。
これが単純なコードであり、別の方法で記述できることはわかっていますが、これは私が書いた単なるテスト ピースです。 (中央モジュールの変数を使用して境界を定義します)、この他のコードを書き直すのではなく、これを機能させたいと思います!