f2pyを使用してFortranモジュールをコンパイルしようとしています。それは私が次のコマンドインターフェイスでf2pyを使用してモジュールをコンパイルする
f2py.py -c -m my_log_mod_comp my_log_mod.f90
でコンパイルする次のコード
module my_log_mod
implicit none
interface my_log
module procedure my_log_array
module procedure my_log_vector
end interface my_log
private ! hides items not listed on public statement
public :: my_log
contains
subroutine my_log_array(a,res)
double precision, dimension (:,:), intent (in) :: a
double precision, dimension (:,:), intent (out) :: res
where (a>1.0)
res = log(a)
else where
res = 0.D0
end where
end subroutine
subroutine my_log_vector(a,res)
double precision, dimension (:), intent (in) :: a
double precision, dimension (:), intent (out) :: res
where (a>1.0)
res = log(a)
else where
res = 0.D0
end where
end subroutine
end module my_log_mod
であり、それは私が本当にFORTRANについて多くを知らない
C:\Users\weisshau\AppData\Local\Temp\tmpf0apqa7s\src.win32-3.6\my_log_mod_comp-f2pywrappers2.f90:7:28:
use my_log_mod, only : my_log_array
1
Error: Symbol 'my_log_array' referenced at (1) not found in module 'my_log_mod'
C:\Users\weisshau\AppData\Local\Temp\tmpf0apqa7s\src.win32-3.6\my_log_mod_comp-f2pywrappers2.f90:18:28:
use my_log_mod, only : my_log_vector
1
Error: Symbol 'my_log_vector' referenced at (1) not found in module 'my_log_mod'
次のエラーをもたらし、 f2pyなので、何が起こっているのか分かりません。私が純粋なfortranでモジュールを使用するとうまく動作します
おかげで多くのことを。私は両方のあなたの提案を試みたが、それはまだ動作しません。たぶん私は私の質問を拡大する必要があります: "入力と出力として任意の配列を取り、f2pyで使用するfortranサブルーチンを書くにはどうすればいいですか" – Jannick
私のコンピュータで動作します。あなたが提供したコードで少なくとも。説明してください*動作しません。この句は何も言わない。どういう意味ですか? –
* "入力と出力として任意の配列をとり、f2pyで使用するFortranサブルーチンを書くにはどうすればいいですか?"それが私の答えにしていたポイントです。 –