画像値を読み取るためのライブラリを作成しているときに、次の問題が発生します。という新しい型を定義しましたrealimage
。このタイプ内で関数が参照され、結果として配列が返されます。
module typedefinition
implicit none
type realimage
integer :: byteorder = 0
contains
procedure :: initialize => initializereal
procedure :: pxvalues => pxvaluesreal ! Array valued function
end type realimage
contains
function pxvaluesreal(this, x, y) result(val)
implicit none
type(realimage) this
real val(5)
integer :: x, y
...
end function
end module
gfortranを使用してモジュールをコンパイルし、を使用して関数を呼び出すとimage1%pxvalues(x,y)
、常に次のエラーメッセージが表示されます。
main.f95: In function ‘testtype’:
main.f95:15: internal compiler error
メインプログラムで関数を直接呼び出すと(pxvaluesreal(image1,x,y))
、すべて正常に動作します。
関数の戻り値の次元であるコンパイラーに通知するために、型定義で配列の次元を定義することは可能ですか?