write_record_header Subroutine

private subroutine write_record_header(unit, tag, count, ok, err)

Write a record header: type tag followed by the element count. ok rather than err carries the outcome so that a stale error left in err by an earlier call cannot be mistaken for a failure here.

Arguments

Type IntentOptional Attributes Name
integer(kind=default_int), intent(in) :: unit
integer(kind=int32), intent(in) :: tag
integer(kind=int64), intent(in) :: count
logical, intent(out) :: ok
type(error_t), intent(inout) :: err

Calls

proc~~write_record_header~~CallsGraph proc~write_record_header write_record_header proc~check_io check_io proc~write_record_header->proc~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~~write_record_header~~CalledByGraph proc~write_record_header write_record_header proc~write_char_record write_char_record proc~write_char_record->proc~write_record_header proc~write_int32_array write_int32_array proc~write_int32_array->proc~write_record_header proc~write_int64_array write_int64_array proc~write_int64_array->proc~write_record_header proc~write_real_dp_array write_real_dp_array proc~write_real_dp_array->proc~write_record_header proc~write_real_sp_array write_real_sp_array proc~write_real_sp_array->proc~write_record_header 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_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_prologue soa_write_prologue proc~soa_write_prologue->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_write_field soa_write_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 proc~particle_soa_serialize particle_soa_t%particle_soa_serialize proc~particle_soa_serialize->proc~soa_write_prologue proc~particle_soa_serialize->interface~soa_write_field

Variables

Type Visibility Attributes Name Initial
integer(kind=default_int), private :: ios

Source Code

   subroutine write_record_header(unit, tag, count, ok, err)
      !! Write a record header: type tag followed by the element count.
      !! `ok` rather than `err` carries the outcome so that a stale error left
      !! in `err` by an earlier call cannot be mistaken for a failure here.
      integer(default_int), intent(in) :: unit
      integer(int32), intent(in) :: tag
      integer(int64), intent(in) :: count
      logical, intent(out) :: ok
      type(error_t), intent(inout) :: err

      integer(default_int) :: ios

      write (unit, iostat=ios) tag
      if (ios == 0) write (unit, iostat=ios) count
      call check_io(ios, "failed to write record header", err)
      ok = (ios == 0)
   end subroutine write_record_header