bits_to_real_sp Function

private pure function bits_to_real_sp(bits) result(x)

Reinterpret the bit pattern of an int32 as a real(sp).

Only ever reached on the foreign endian read path. The native path reads real(sp) straight from the stream and never reinterprets anything, which keeps the overwhelmingly common case entirely free of any real/integer transfer.

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: bits

Return Value real(kind=sp)


Called by

proc~~bits_to_real_sp~~CalledByGraph proc~bits_to_real_sp bits_to_real_sp proc~read_real_sp_array read_real_sp_array proc~read_real_sp_array->proc~bits_to_real_sp interface~read_array read_array interface~read_array->proc~read_real_sp_array 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_prologue soa_read_prologue proc~soa_read_prologue->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 interface~soa_read_field soa_read_field 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 proc~particle_soa_deserialize particle_soa_t%particle_soa_deserialize proc~particle_soa_deserialize->proc~soa_read_prologue proc~particle_soa_deserialize->interface~soa_read_field

Source Code

   pure function bits_to_real_sp(bits) result(x)
      !! Reinterpret the bit pattern of an `int32` as a `real(sp)`.
      !!
      !! Only ever reached on the foreign endian read path. The native path
      !! reads `real(sp)` straight from the stream and never reinterprets
      !! anything, which keeps the overwhelmingly common case entirely free of
      !! any real/integer `transfer`.
      integer(int32), intent(in) :: bits
      real(sp) :: x

      x = transfer(bits, 0.0_sp)
   end function bits_to_real_sp