fortran90 引数で渡された関数の呼び出し
fortran90を始めて間もない者です。
メインプログラムより呼び出しているサブルーチンにユーザ関数を渡しています。
このサブルーチンを自前で作成するのが目的です。
引数で受け取った関数を、自前の別関数より呼び出すにはどうしたら良いでしょうか。
Cであれば関数のポインタをグローバルな変数にセットしてやれば可能だと思いますが・・・
!--------------------------------
subroutine sub(func1, a)
real::a
interface
real function func1(x)
real::x
end function func1
real function func2(x)
real x
end function func2
end interface
call sub2(func2, a)
write(*,*) a
return
end subroutine sub
!--------------------------------
real function func2(x)
real::func2, x
! ここでfunc1を呼び出したい
! func2=func1(x)
end function func2
!--------------------------------
subroutine sub2(funca, a)
real::a
interface
real function funca(x)
real::x
end function funca
end interface
a=funca(10.)
return
end
!--------------------------------
program main
external func
real a
call sub(func, a)
write(*,*) a
end program
!--------------------------------
function func(x)
real func, x
func=2.*x*x
end function func
お礼
途中でファイル出力して、それを再読み込みして処理するようにしました。 お手数をおかけしてすみませんでした。m(_ _)m