check_endian Subroutine

public subroutine check_endian()

Note

The result is stored into the endian global variable.

Arguments

None

Called by

proc~~check_endian~~CalledByGraph proc~check_endian check_endian proc~penf_init penf_init proc~penf_init->proc~check_endian program~volatile_doctest~1157 volatile_doctest program~volatile_doctest~1157->proc~check_endian program~volatile_doctest~1410 volatile_doctest program~volatile_doctest~1410->proc~check_endian program~volatile_doctest~1650 volatile_doctest program~volatile_doctest~1650->proc~check_endian program~volatile_doctest~44 volatile_doctest program~volatile_doctest~44->proc~check_endian program~volatile_doctest~588 volatile_doctest program~volatile_doctest~588->proc~check_endian program~volatile_doctest~709 volatile_doctest program~volatile_doctest~709->proc~check_endian program~volatile_doctest~768 volatile_doctest program~volatile_doctest~768->proc~check_endian proc~b64_init b64_init proc~b64_init->proc~penf_init proc~b64_init~2 b64_init proc~b64_init~2->proc~penf_init proc~b64_init~3 b64_init proc~b64_init~3->proc~penf_init proc~b64_init~4 b64_init proc~b64_init~4->proc~penf_init proc~initialize vtm_file%initialize proc~initialize->proc~penf_init proc~initialize->proc~b64_init proc~initialize~2 vtk_file%initialize proc~initialize~2->proc~penf_init proc~initialize~2->proc~b64_init proc~initialize~4 pvtk_file%initialize proc~initialize~4->proc~penf_init proc~initialize~4->proc~b64_init proc~penf_print penf_print proc~penf_print->proc~penf_init program~volatile_doctest~1281 volatile_doctest program~volatile_doctest~1281->proc~penf_init program~volatile_doctest~1285 volatile_doctest program~volatile_doctest~1285->proc~penf_init program~volatile_doctest~230 volatile_doctest program~volatile_doctest~230->proc~penf_init program~volatile_doctest~322 volatile_doctest program~volatile_doctest~322->proc~penf_init program~volatile_doctest~418 volatile_doctest program~volatile_doctest~418->proc~penf_init program~volatile_doctest~637 volatile_doctest program~volatile_doctest~637->proc~penf_init program~volatile_doctest~935 volatile_doctest program~volatile_doctest~935->proc~penf_init proc~write_check write_check proc~write_check->proc~initialize~2 proc~write_pvts write_pvts proc~write_pvts->proc~initialize~4 proc~write_slave write_slave proc~write_slave->proc~initialize~2 proc~write_vts write_vts proc~write_vts->proc~initialize~2 program~volatile_doctest~1211 volatile_doctest program~volatile_doctest~1211->proc~penf_print program~volatile_doctest~1345 volatile_doctest program~volatile_doctest~1345->proc~penf_print program~volatile_doctest~1368 volatile_doctest program~volatile_doctest~1368->proc~penf_print program~volatile_doctest~1503 volatile_doctest program~volatile_doctest~1503->proc~penf_print program~volatile_doctest~1769 volatile_doctest program~volatile_doctest~1769->proc~penf_print program~volatile_doctest~296 volatile_doctest program~volatile_doctest~296->proc~b64_init program~volatile_doctest~304 volatile_doctest program~volatile_doctest~304->proc~penf_print program~volatile_doctest~338 volatile_doctest program~volatile_doctest~338->proc~b64_init program~volatile_doctest~463 volatile_doctest program~volatile_doctest~463->proc~b64_init program~volatile_doctest~547 volatile_doctest program~volatile_doctest~547->proc~penf_print program~volatile_doctest~909 volatile_doctest program~volatile_doctest~909->proc~b64_init program~vtk_fortran_write_vtm vtk_fortran_write_vtm program~vtk_fortran_write_vtm->proc~initialize~2 program~vtk_fortran_write_vtr vtk_fortran_write_vtr program~vtk_fortran_write_vtr->proc~initialize~2 program~vtk_fortran_write_vts vtk_fortran_write_vts program~vtk_fortran_write_vts->proc~initialize~2 program~vtk_fortran_write_vtu vtk_fortran_write_vtu program~vtk_fortran_write_vtu->proc~initialize~2 program~vtk_fortran_write_vtu~2 vtk_fortran_write_vtu program~vtk_fortran_write_vtu~2->proc~initialize~2 program~vtk_fortran_write_pvts vtk_fortran_write_pvts program~vtk_fortran_write_pvts->proc~write_pvts program~vtk_fortran_write_pvts->proc~write_vts program~vtk_fortran_write_volatile vtk_fortran_write_volatile program~vtk_fortran_write_volatile->proc~write_check program~vtk_fortran_write_volatile->proc~write_slave

Source Code

   subroutine check_endian()
   !< Check the type of bit ordering (big or little endian) of the running architecture.
   !<
   !> @note The result is stored into the *endian* global variable.
   !<
   !<```fortran
   !< use penf
   !< call check_endian
   !< print *, endian
   !<```
   !=> 1 <<<
   if (is_little_endian()) then
      endian = endianL
   else
      endian = endianB
   endif
   contains
      pure function is_little_endian() result(is_little)
      !< Check if the type of the bit ordering of the running architecture is little endian.
      logical      :: is_little !< Logical output: true is the running architecture uses little endian ordering, false otherwise.
      integer(I1P) :: int1(1:4) !< One byte integer array for casting 4 bytes integer.

      int1 = transfer(1_I4P, int1)
      is_little = (int1(1)==1_I1P)
      endfunction is_little_endian
   endsubroutine check_endian