The result is stored into the endian global variable.
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