module Container use Problems type data type (problem) :: problem end type data contains subroutine deallocateData(d) type(data), intent(inout) :: d call deallocateProblem(d%problem) end subroutine deallocateData end module Container