check_io Subroutine

private subroutine check_io(ios, context, err)

Turn a non zero iostat into an ERROR_IO carrying the raw value. Every I/O statement in this module funnels its status through here so that the failure message always names both the operation and the iostat the runtime produced.

Arguments

Type IntentOptional Attributes Name
integer(kind=default_int), intent(in) :: ios
character(len=*), intent(in) :: context
type(error_t), intent(inout) :: err

Calls

proc~~check_io~~CallsGraph proc~check_io check_io interface~to_char to_char proc~check_io->interface~to_char proc~error_set error_t%error_set proc~check_io->proc~error_set proc~to_char_char to_char_char interface~to_char->proc~to_char_char proc~to_char_dp to_char_dp interface~to_char->proc~to_char_dp proc~to_char_int32 to_char_int32 interface~to_char->proc~to_char_int32 proc~to_char_int64 to_char_int64 interface~to_char->proc~to_char_int64 proc~to_char_logical to_char_logical interface~to_char->proc~to_char_logical proc~to_char_matrix_dp to_char_matrix_dp interface~to_char->proc~to_char_matrix_dp proc~to_char_matrix_int32 to_char_matrix_int32 interface~to_char->proc~to_char_matrix_int32 proc~to_char_matrix_int64 to_char_matrix_int64 interface~to_char->proc~to_char_matrix_int64 proc~to_char_matrix_sp to_char_matrix_sp interface~to_char->proc~to_char_matrix_sp proc~to_char_sp to_char_sp interface~to_char->proc~to_char_sp proc~to_char_vector_dp to_char_vector_dp interface~to_char->proc~to_char_vector_dp proc~to_char_vector_int32 to_char_vector_int32 interface~to_char->proc~to_char_vector_int32 proc~to_char_vector_int64 to_char_vector_int64 interface~to_char->proc~to_char_vector_int64 proc~to_char_vector_sp to_char_vector_sp interface~to_char->proc~to_char_vector_sp

Called by

proc~~check_io~~CalledByGraph proc~check_io check_io proc~read_char_record read_char_record proc~read_char_record->proc~check_io proc~read_record_header read_record_header proc~read_char_record->proc~read_record_header proc~read_header read_header proc~read_header->proc~check_io proc~read_int32_array read_int32_array proc~read_int32_array->proc~check_io proc~read_int32_array->proc~read_record_header proc~read_int64_array read_int64_array proc~read_int64_array->proc~check_io proc~read_int64_array->proc~read_record_header proc~read_real_dp_array read_real_dp_array proc~read_real_dp_array->proc~check_io proc~read_real_dp_array->proc~read_record_header proc~read_real_sp_array read_real_sp_array proc~read_real_sp_array->proc~check_io proc~read_real_sp_array->proc~read_record_header proc~read_record_header->proc~check_io proc~serialize_close serialize_close proc~serialize_close->proc~check_io proc~serialize_open_read serialize_open_read proc~serialize_open_read->proc~check_io proc~serialize_open_write serialize_open_write proc~serialize_open_write->proc~check_io proc~write_char_record write_char_record proc~write_char_record->proc~check_io proc~write_record_header write_record_header proc~write_char_record->proc~write_record_header proc~write_header write_header proc~write_header->proc~check_io proc~write_int32_array write_int32_array proc~write_int32_array->proc~check_io proc~write_int32_array->proc~write_record_header proc~write_int64_array write_int64_array proc~write_int64_array->proc~check_io proc~write_int64_array->proc~write_record_header proc~write_real_dp_array write_real_dp_array proc~write_real_dp_array->proc~check_io proc~write_real_dp_array->proc~write_record_header proc~write_real_sp_array write_real_sp_array proc~write_real_sp_array->proc~check_io proc~write_real_sp_array->proc~write_record_header proc~write_record_header->proc~check_io interface~read_array read_array interface~read_array->proc~read_char_record interface~read_array->proc~read_int32_array interface~read_array->proc~read_int64_array interface~read_array->proc~read_real_dp_array interface~read_array->proc~read_real_sp_array interface~write_array write_array interface~write_array->proc~write_char_record interface~write_array->proc~write_int32_array interface~write_array->proc~write_int64_array interface~write_array->proc~write_real_dp_array interface~write_array->proc~write_real_sp_array proc~soa_read_prologue soa_read_prologue proc~soa_read_prologue->proc~read_header proc~soa_read_prologue->interface~read_array proc~soa_write_prologue soa_write_prologue proc~soa_write_prologue->proc~write_header proc~soa_write_prologue->interface~write_array proc~particle_soa_deserialize particle_soa_t%particle_soa_deserialize proc~particle_soa_deserialize->proc~soa_read_prologue interface~soa_read_field soa_read_field proc~particle_soa_deserialize->interface~soa_read_field proc~particle_soa_serialize particle_soa_t%particle_soa_serialize proc~particle_soa_serialize->proc~soa_write_prologue interface~soa_write_field soa_write_field proc~particle_soa_serialize->interface~soa_write_field proc~soa_read_int32_field soa_read_int32_field proc~soa_read_int32_field->interface~read_array proc~soa_read_int64_field soa_read_int64_field proc~soa_read_int64_field->interface~read_array proc~soa_read_logical_field soa_read_logical_field proc~soa_read_logical_field->interface~read_array proc~soa_read_real_dp_field soa_read_real_dp_field proc~soa_read_real_dp_field->interface~read_array proc~soa_read_real_sp_field soa_read_real_sp_field proc~soa_read_real_sp_field->interface~read_array proc~soa_write_int32_field soa_write_int32_field proc~soa_write_int32_field->interface~write_array proc~soa_write_int64_field soa_write_int64_field proc~soa_write_int64_field->interface~write_array proc~soa_write_logical_field soa_write_logical_field proc~soa_write_logical_field->interface~write_array proc~soa_write_real_dp_field soa_write_real_dp_field proc~soa_write_real_dp_field->interface~write_array proc~soa_write_real_sp_field soa_write_real_sp_field proc~soa_write_real_sp_field->interface~write_array interface~soa_read_field->proc~soa_read_int32_field interface~soa_read_field->proc~soa_read_int64_field interface~soa_read_field->proc~soa_read_logical_field interface~soa_read_field->proc~soa_read_real_dp_field interface~soa_read_field->proc~soa_read_real_sp_field interface~soa_write_field->proc~soa_write_int32_field interface~soa_write_field->proc~soa_write_int64_field interface~soa_write_field->proc~soa_write_logical_field interface~soa_write_field->proc~soa_write_real_dp_field interface~soa_write_field->proc~soa_write_real_sp_field

Source Code

   subroutine check_io(ios, context, err)
      !! Turn a non zero `iostat` into an `ERROR_IO` carrying the raw value.
      !! Every I/O statement in this module funnels its status through here so
      !! that the failure message always names both the operation and the
      !! `iostat` the runtime produced.
      integer(default_int), intent(in) :: ios
      character(len=*), intent(in) :: context
      type(error_t), intent(inout) :: err

      if (ios /= 0) call err%set(ERROR_IO, context//", iostat="//to_char(int(ios, int32)))
   end subroutine check_io