remove_file_if_exists Subroutine

public subroutine remove_file_if_exists(path, status)

Remove one named file; a missing file counts as success. unlink never removes a directory.

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: path
integer, intent(out) :: status

Called by

proc~~remove_file_if_exists~~CalledByGraph proc~remove_file_if_exists remove_file_if_exists proc~invalidate_checkpoint_directory invalidate_checkpoint_directory proc~invalidate_checkpoint_directory->proc~remove_file_if_exists proc~invalidate_output_checkpoints invalidate_output_checkpoints proc~invalidate_output_checkpoints->proc~remove_file_if_exists proc~invalidate_output_checkpoints->proc~invalidate_checkpoint_directory proc~open_run_outputs open_run_outputs proc~open_run_outputs->proc~invalidate_output_checkpoints program~main main program~main->proc~open_run_outputs

Source Code

  subroutine remove_file_if_exists(path, status)
    character(len=*), intent(in) :: path
    integer, intent(out) :: status
    character(kind=c_char), allocatable :: c_path(:)
    logical :: exists

    if (len_trim(path) == 0) then
      status = filesystem_empty_path
      return
    end if
    inquire (file=trim(path), exist=exists)
    status = filesystem_success
    if (.not. exists) return
    call to_c_string(trim(path), c_path)
    if (c_unlink(c_path) /= 0_c_int) status = filesystem_os_error
  end subroutine remove_file_if_exists