fortran インターフェイスをスタンドアロン ライブラリとしてパッケージ化したいと考えています。これは、c/c++ のヘッド ファイルに似たものです。これが私のコードです。問題は、「hello」サブルーチンを実行するために「hello」サブルーチンを呼び出したいことです。誰でも私を助けることができますか?
Interface と set_callback,invoke_callback をスタンドアロンのモジュール ファイルとして配置したいと考えています。
MODULE DEMO
INTERFACE
SUBROUTINE callback_prototype(callbackID)
CHARACTER(*) :: callbackID
END SUBROUTINE callback_prototype
END INTERFACE
PROCEDURE( callback_prototype ), POINTER :: f_ptr => NULL()
CONTAINS
SUBROUTINE set_callback(func)
IMPLICIT NONE
EXTERNAL :: func
f_ptr => func
call HELLO
END SUBROUTINE
SUBROUTINE invoke_callback(callbackID)
CHARACTER(*) :: callbackID
if (associated(f_ptr)) call f_ptr(callbackID)
END SUBROUTINE
SUBROUTINE HELLO
IMPLICIT NONE
Dosomething
END SUBROUTINE
END MODULE