0

父の手続きを子モジュールで実行する方法につまずいた。つまり、このトリックにより、モジュールの依存関係ツリーに関連して、上流の方法でプロセスを実行できます。具体的には、以下に例を示します。

module parent
  procedure(likefoo),pointer :: to_foo
  interface 
    subroutine likefoo
    end subroutine likefoo
  end interface
contains
  subroutine run
   call to_foo
  end subroutine
end module 

module child
  use parent
contains
  subroutine foo
      print *, 'hola'
  end subroutine foo
end module 

program main
  use parent
  use child

  to_foo => foo
  call run

end program 

この例は、ifort 13.0.0 で陽性テストされました。このコードは標準で許可されているのか、それともコンパイラ依存機能であるため問題なく動作するのでしょうか? ご協力いただきありがとうございます。

4

1 に答える 1

1

このアプローチは (F2003 機能を使用して) 適切ですが、likefoo のインターフェースを抽象化します。モジュール依存の有向グラフの要件は、それらのモジュール内のプロシージャへの呼び出しのネストと直交する概念です。

于 2012-11-06T20:43:39.420 に答える