diff options
Diffstat (limited to 'fortran/src/H5fortran_detect.f90')
-rw-r--r-- | fortran/src/H5fortran_detect.f90 | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/fortran/src/H5fortran_detect.f90 b/fortran/src/H5fortran_detect.f90 new file mode 100644 index 0000000..3ddcc3c --- /dev/null +++ b/fortran/src/H5fortran_detect.f90 @@ -0,0 +1,95 @@ + program int_kind + write(*,*) " /*generating header file*/ " + call i01() + call i02() + call i04() + call i08() + end program int_kind + subroutine i01() + implicit none + integer( 1 ) :: a + integer :: a_size + a_size = bit_size(a) + if (a_size .eq. 8) then + write(*,*) "#define H5_FORTRAN_HAS_INTEGER_1" + endif + if (a_size .eq. 16) then + write(*,*) "#define H5_FORTRAN_HAS_INTEGER_2" + endif + if (a_size .eq. 32) then + write(*,*) "#define H5_FORTRAN_HAS_INTEGER_4" + endif + if (a_size .eq. 64) then + write(*,*) "#define H5_FORTRAN_HAS_INTEGER_8" + endif + if (a_size .eq. 128) then + write(*,*) "#define H5_FORTRAN_HAS_INTEGER_16" + endif + return + end subroutine + subroutine i02() + implicit none + integer( 2 ) :: a + integer :: a_size + a_size = bit_size(a) + if (a_size .eq. 8) then + write(*,*) "#define H5_FORTRAN_HAS_INTEGER_1" + endif + if (a_size .eq. 16) then + write(*,*) "#define H5_FORTRAN_HAS_INTEGER_2" + endif + if (a_size .eq. 32) then + write(*,*) "#define H5_FORTRAN_HAS_INTEGER_4" + endif + if (a_size .eq. 64) then + write(*,*) "#define H5_FORTRAN_HAS_INTEGER_8" + endif + if (a_size .eq. 128) then + write(*,*) "#define H5_FORTRAN_HAS_INTEGER_16" + endif + return + end subroutine + subroutine i04() + implicit none + integer( 4 ) :: a + integer :: a_size + a_size = bit_size(a) + if (a_size .eq. 8) then + write(*,*) "#define H5_FORTRAN_HAS_INTEGER_1" + endif + if (a_size .eq. 16) then + write(*,*) "#define H5_FORTRAN_HAS_INTEGER_2" + endif + if (a_size .eq. 32) then + write(*,*) "#define H5_FORTRAN_HAS_INTEGER_4" + endif + if (a_size .eq. 64) then + write(*,*) "#define H5_FORTRAN_HAS_INTEGER_8" + endif + if (a_size .eq. 128) then + write(*,*) "#define H5_FORTRAN_HAS_INTEGER_16" + endif + return + end subroutine + subroutine i08() + implicit none + integer( 8 ) :: a + integer :: a_size + a_size = bit_size(a) + if (a_size .eq. 8) then + write(*,*) "#define H5_FORTRAN_HAS_INTEGER_1" + endif + if (a_size .eq. 16) then + write(*,*) "#define H5_FORTRAN_HAS_INTEGER_2" + endif + if (a_size .eq. 32) then + write(*,*) "#define H5_FORTRAN_HAS_INTEGER_4" + endif + if (a_size .eq. 64) then + write(*,*) "#define H5_FORTRAN_HAS_INTEGER_8" + endif + if (a_size .eq. 128) then + write(*,*) "#define H5_FORTRAN_HAS_INTEGER_16" + endif + return + end subroutine |