summaryrefslogtreecommitdiffstats
path: root/fortran/src/H5fortran_detect.f90
diff options
context:
space:
mode:
Diffstat (limited to 'fortran/src/H5fortran_detect.f90')
-rw-r--r--fortran/src/H5fortran_detect.f9095
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