1program CMakeFortranCompilerABI 2 3implicit none 4 5integer :: i(1) = 0 6where (i==0) i=1 7if (any(i/=1)) stop 1 8! showing Fortran 90 syntax is OK 9 10#if 0 11! Address Size 12#endif 13#if defined(_LP64) 14PRINT *, 'INFO:sizeof_dptr[8]' 15#elif defined(_M_IA64) 16PRINT *, 'INFO:sizeof_dptr[8]' 17#elif defined(_M_X64) 18PRINT *, 'INFO:sizeof_dptr[8]' 19#elif defined(_M_AMD64) 20PRINT *, 'INFO:sizeof_dptr[8]' 21#elif defined(__x86_64__) 22PRINT *, 'INFO:sizeof_dptr[8]' 23 24#elif defined(_ILP32) 25PRINT *, 'INFO:sizeof_dptr[4]' 26#elif defined(_M_IX86) 27PRINT *, 'INFO:sizeof_dptr[4]' 28#elif defined(__i386__) 29PRINT *, 'INFO:sizeof_dptr[4]' 30 31#elif defined(__SIZEOF_POINTER__) && __SIZEOF_POINTER__ == 8 32PRINT *, 'INFO:sizeof_dptr[8]' 33#elif defined(__SIZEOF_POINTER__) && __SIZEOF_POINTER__ == 4 34PRINT *, 'INFO:sizeof_dptr[4]' 35#elif defined(__SIZEOF_SIZE_T__) && __SIZEOF_SIZE_T__ == 8 36PRINT *, 'INFO:sizeof_dptr[8]' 37#elif defined(__SIZEOF_SIZE_T__) && __SIZEOF_SIZE_T__ == 4 38PRINT *, 'INFO:sizeof_dptr[4]' 39#endif 40 41#if 0 42! Application Binary Interface 43#endif 44#if defined(__ELF__) 45PRINT *, 'INFO:abi[ELF]' 46#endif 47PRINT *, 'ABI Detection' 48end program 49