checkpoint_state.f90 Source File


This file depends on

sourcefile~~checkpoint_state.f90~~EfferentGraph sourcefile~checkpoint_state.f90 checkpoint_state.f90 sourcefile~io_session.f90 io_session.f90 sourcefile~checkpoint_state.f90->sourcefile~io_session.f90 sourcefile~common.f90~3 common.f90 sourcefile~io_session.f90->sourcefile~common.f90~3 sourcefile~io.f90 io.f90 sourcefile~io_session.f90->sourcefile~io.f90 sourcefile~io_base.f90 io_base.f90 sourcefile~io_session.f90->sourcefile~io_base.f90 sourcefile~io.f90->sourcefile~common.f90~3 sourcefile~io.f90->sourcefile~io_base.f90 sourcefile~io_base.f90->sourcefile~common.f90~3

Files dependent on this one

sourcefile~~checkpoint_state.f90~~AfferentGraph sourcefile~checkpoint_state.f90 checkpoint_state.f90 sourcefile~checkpoint_manager.f90 checkpoint_manager.f90 sourcefile~checkpoint_manager.f90->sourcefile~checkpoint_state.f90 sourcefile~io_manager.f90 io_manager.f90 sourcefile~io_manager.f90->sourcefile~checkpoint_state.f90 sourcefile~io_manager.f90->sourcefile~checkpoint_manager.f90 sourcefile~base_case.f90 base_case.f90 sourcefile~base_case.f90->sourcefile~io_manager.f90 sourcefile~channel.f90 channel.f90 sourcefile~channel.f90->sourcefile~base_case.f90 sourcefile~cylinder.f90 cylinder.f90 sourcefile~cylinder.f90->sourcefile~base_case.f90 sourcefile~generic.f90 generic.f90 sourcefile~generic.f90->sourcefile~base_case.f90 sourcefile~tgv.f90 tgv.f90 sourcefile~tgv.f90->sourcefile~base_case.f90 sourcefile~xcompact.f90 xcompact.f90 sourcefile~xcompact.f90->sourcefile~base_case.f90 sourcefile~xcompact.f90->sourcefile~channel.f90 sourcefile~xcompact.f90->sourcefile~cylinder.f90 sourcefile~xcompact.f90->sourcefile~generic.f90 sourcefile~xcompact.f90->sourcefile~tgv.f90

Source Code

module m_checkpoint_state
  !! Interface for case- or model-specific state stored in solver checkpoints.
  use m_io_session, only: reader_session_t, writer_session_t

  implicit none

  type, abstract :: checkpoint_state_t
  contains
    procedure(write_checkpoint_iface), deferred :: write_checkpoint
    procedure(read_checkpoint_iface), deferred :: read_checkpoint
  end type checkpoint_state_t

  abstract interface
    subroutine write_checkpoint_iface(self, writer)
      import :: checkpoint_state_t, writer_session_t
      class(checkpoint_state_t), intent(inout) :: self
      type(writer_session_t), intent(inout) :: writer
    end subroutine write_checkpoint_iface

    subroutine read_checkpoint_iface(self, reader)
      import :: checkpoint_state_t, reader_session_t
      class(checkpoint_state_t), intent(inout) :: self
      type(reader_session_t), intent(inout) :: reader
    end subroutine read_checkpoint_iface
  end interface

end module m_checkpoint_state