transfer-1.f90   [plain text]


! Bigendian test posted by Perseus in comp.lang.fortran on 4 July 2005.
   integer(1), parameter :: zero = 0
   LOGICAL, PARAMETER :: bigend = IACHAR(TRANSFER(1,"a")) == zero
   LOGICAL :: bigendian
   call foo ()
contains
   subroutine foo ()
   integer :: chr, ans
   if (bigend) then
     ans = 1
   else
     ans = 0
   end if
   chr = IACHAR(TRANSFER(1,"a"))
   bigendian =  chr == 0_4
   if (bigendian) then
     ans = 1
   else
     ans = 0
   end if
   end subroutine foo
end