通常のプロシージャと遅延プロシージャの両方を 1 つの抽象型に混在させようとすると、gfortran は通常のプロシージャの呼び出しに失敗します。
type, abstract :: tBody
private
...
contains
procedure :: init => new_Body
...
procedure (contained), deferred :: PointIn
end type tBody
abstract interface
logical(LGT) pure function contained( Body, Point )
import :: tBody, tAffinePoint, LGT
class(tBody), intent(IN) :: Body
type(tAffinePoint), intent(IN) :: Point
end function contained
end interface
subroutine newCuboid( this, ... )
class(tCuboid), intent(OUT) :: this
...
call this%tBody%init( ... )
.... [gfortran halts here]
end subroutine newCuboid
tBody 型を配置して、抽象化された遅延プロシージャと通常のインスタンス化されたプロシージャの両方を使用できるようにする方法はありますか?