summaryrefslogtreecommitdiffstats
path: root/fortran/src/H5test_kind.f90
diff options
context:
space:
mode:
authorElena Pourmal <epourmal@hdfgroup.org>2005-06-22 18:23:21 (GMT)
committerElena Pourmal <epourmal@hdfgroup.org>2005-06-22 18:23:21 (GMT)
commitea66068977639b7b2737bb9db1e59b26db914d1e (patch)
treebc1ce12c71d0f91dba3c2d0ddccd81862a588c89 /fortran/src/H5test_kind.f90
parentec071c6c149c44d9b3a056948502ca2af3b875b9 (diff)
downloadhdf5-ea66068977639b7b2737bb9db1e59b26db914d1e.zip
hdf5-ea66068977639b7b2737bb9db1e59b26db914d1e.tar.gz
hdf5-ea66068977639b7b2737bb9db1e59b26db914d1e.tar.bz2
[svn-r10970] Purpose: New feature/bug #350 fix
Description: When compiler flag was used to set the size of Fortran integer to 8 bytes, library would fail. Solution: Cleaned up the code; added detection of Fortran INTEGER type size and appropriately defined int_f type for C-stubs routines. Platforms tested: Solaris 2.8 32 and 64-bit, AIX 5.1 64-bit parallel PGI Fortran with -i8 flag on heping Absoft Fortran with -i8 flag on heping g95 on mir (Fortran integer is 8 bytes by default that cannot be changed - compiler bug ;-) AIX Fortran with -qintsize=8 32 and 64-bit modes on copper Misc. update:
Diffstat (limited to 'fortran/src/H5test_kind.f90')
-rw-r--r--fortran/src/H5test_kind.f9025
1 files changed, 25 insertions, 0 deletions
diff --git a/fortran/src/H5test_kind.f90 b/fortran/src/H5test_kind.f90
index db2971e..1f5dca3 100644
--- a/fortran/src/H5test_kind.f90
+++ b/fortran/src/H5test_kind.f90
@@ -23,11 +23,36 @@
! Generate a program
write(*,*) "program int_kind"
write(*,*) "write(*,*) "" /*generating header file*/ """
+ j = 0
+ write(*, "("" call i"", i2.2,""()"")") j
do i = 1, ii
j = kind_numbers(i)
write(*, "("" call i"", i2.2,""()"")") j
enddo
write(*,*) "end program int_kind"
+ j = 0
+ write(*, "("" subroutine i"" i2.2,""()"")") j
+ write(*,*)" implicit none"
+ write(*,*)" integer :: a"
+ write(*,*)" integer :: a_size"
+ write(*,*)" a_size = bit_size(a)"
+ write(*,*)" if (a_size .eq. 8) then"
+ write(*,*)" write(*,*) ""#define H5_FORTRAN_HAS_NATIVE_1"" "
+ write(*,*)" endif"
+ write(*,*)" if (a_size .eq. 16) then"
+ write(*,*)" write(*,*) ""#define H5_FORTRAN_HAS_NATIVE_2"" "
+ write(*,*)" endif"
+ write(*,*)" if (a_size .eq. 32) then"
+ write(*,*)" write(*,*) ""#define H5_FORTRAN_HAS_NATIVE_4"" "
+ write(*,*)" endif"
+ write(*,*)" if (a_size .eq. 64) then"
+ write(*,*)" write(*,*) ""#define H5_FORTRAN_HAS_NATIVE_8"" "
+ write(*,*)" endif"
+ write(*,*)" if (a_size .eq. 128) then"
+ write(*,*)" write(*,*) ""#define H5_FORTRAN_HAS_NATIVE_16"" "
+ write(*,*)" endif"
+ write(*,*)" return"
+ write(*,*)" end subroutine"
do i = 1, ii
j = kind_numbers(i)
write(*, "("" subroutine i"" i2.2,""()"")") j