fresh run が出力先を再利用する前に、前の run の最終出力と両 slot を再開候補から外し、index を消す。 各 directory は個別に原子的に無効化される。途中で止まっても残るのは前の run の完全な checkpoint だけで、 この時点では新しい run はまだ何も書いていないので、新旧の混ざった再開状態はできない。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | base_dir |
subroutine invalidate_output_checkpoints(base_dir) character(len=*), intent(in) :: base_dir integer(i32) :: slot integer :: status do slot = 0_i32, 1_i32 call invalidate_checkpoint_directory(checkpoint_slot_dir(trim(base_dir), slot)) end do call invalidate_checkpoint_directory(trim(base_dir)) call remove_file_if_exists(trim(base_dir)//'/'//checkpoint_index_name, status) if (status /= filesystem_success) error stop 'Failed to remove the previous periodic checkpoint index.' end subroutine invalidate_output_checkpoints