私は派生型を持っています:
module foo
type bar
integer, allocatable, dimension(:) :: data
end type bar
end module foo
bar
ここで、明示的なインターフェイスを使用せずに、サブルーチン内で のデータを割り当てたいと思います。
program main
use foo
type(bar) :: mybar
call alloc_my_bar(10,mybar)
print*, mybar
end program
subroutine alloc_my_bar(n,mybar)
use foo
type(bar) :: mybar
integer :: n
allocate(mybar%data(n))
mybar%data = 42
end subroutine alloc_my_bar
これは で問題なく動作ifort
するようですが、mybar がユーザー定義型の一部ではない場合、明示的なインターフェイスが必要になることはわかっています...割り当て可能な配列をユーザー定義型に配置すると、明示的なインターフェイスの必要性がなくなりますか? このコードと互換性のある Fortran 標準のバージョン (F90、F95、F2003 ...) がある場合、どのバージョンですか?