Как правильно завершить объект в Фортране?

У меня есть объект, разбирающий текстовый файл. Вот моя основная программа:

program main
use Parser_class 
implicit none
type(Parser) :: Parser
call Parser%ProcessFile('data.txt')
call Parser%Deallocate
end program main

где определение типа

module Parser_class
type :: Parser
contains
    procedure, public :: ProcessFile
    procedure, public :: Deallocate
end type Parser
contains
    subroutine ProcessFile(self)
    ...
    end subroutine 
    subroutine Deallocate(self)
    class(Parser) :: self
    ...
    end subroutine 
end module Parser_class

Я прочитал об окончательном ключевом слове и изменил определение типа на

module Parser_class
type :: Parser
contains
    procedure, public :: ProcessFile
    final :: Deallocate
end type Parser
contains
    subroutine ProcessFile(self)
    ...
    end subroutine 
    subroutine Deallocate(self)
    type(Parser) :: self
    ...
    end subroutine 
end module Parser_class

Кроме того, в основной программе у меня нетcall Parser%Deallocate больше. Финализатор не вызывается сейчас в любое время. Я как-то понимаю, это потому, что я никогда не уничтожаю и не перезаписываюParser объект. Но как я могу это сделать, или как правильно обработать процесс освобождения?

Ответы на вопрос(1)

Ваш ответ на вопрос