summaryrefslogtreecommitdiffstats
path: root/fortran/src/H5test_kind_SIZEOF.f90
diff options
context:
space:
mode:
Diffstat (limited to 'fortran/src/H5test_kind_SIZEOF.f90')
-rw-r--r--fortran/src/H5test_kind_SIZEOF.f9066
1 files changed, 42 insertions, 24 deletions
diff --git a/fortran/src/H5test_kind_SIZEOF.f90 b/fortran/src/H5test_kind_SIZEOF.f90
index 867ec1e..7a58b0e 100644
--- a/fortran/src/H5test_kind_SIZEOF.f90
+++ b/fortran/src/H5test_kind_SIZEOF.f90
@@ -49,6 +49,10 @@ PROGRAM test_kind
INTEGER :: ji, jr, jd
last = -1
ii = 0
+
+ ikind_numbers = 0
+ rkind_numbers = 0
+
DO i = 1,100
j = SELECTED_INT_KIND(i)
IF(j .NE. last) THEN
@@ -114,30 +118,20 @@ WRITE(*,'(40(A,/))') &
'!',&
'!*****'
-! Generate a program
- WRITE(*,*) "PROGRAM int_kind"
- WRITE(*,*) "WRITE(*,*) "" /*generating header file*/ """
- ji = 0
- WRITE(*, "("" CALL i"", i2.2,""()"")") ji
- jr = 0
- WRITE(*, "("" CALL r"", i2.2,""()"")") jr
- jd = 0
- WRITE(*, "("" CALL d"", i2.2,""()"")") jd
- DO i = 1, ii
- j = ikind_numbers(i)
- WRITE(*, "("" CALL i"", i2.2,""()"")") j
- ENDDO
- DO i = 1, ir
- j = rkind_numbers(i)
- WRITE(*, "("" CALL r"", i2.2,""()"")") j
- ENDDO
- WRITE(*,*) "END PROGRAM int_kind"
+! GENERATE A PROGRAM
+!
+! (a) Generate the module
+
+ WRITE(*,*) "MODULE H5test_kind_SIZEOF_mod"
+ WRITE(*,*) "USE ISO_C_BINDING"
+ WRITE(*,*) "IMPLICIT NONE"
+ WRITE(*,*) "CONTAINS"
j = 0
ji = KIND(1)
WRITE(*, "("" SUBROUTINE i"", i2.2,""()"")") j
WRITE(*,*)" IMPLICIT NONE"
WRITE(*,*)" INTEGER :: a"
- WRITE(*,*)" INTEGER :: a_size"
+ WRITE(*,*)" INTEGER(C_SIZE_T) :: a_size"
WRITE(*,*)" CHARACTER(LEN=2) :: ichr2, jchr2"
WRITE(*,*)" a_size = SIZEOF(a)"
WRITE(*,*)" WRITE(ichr2,'(I2)') a_size"
@@ -151,7 +145,7 @@ WRITE(*,'(40(A,/))') &
WRITE(*, "("" SUBROUTINE r"", i2.2,""()"")") jr
WRITE(*,*)" IMPLICIT NONE"
WRITE(*,*)" REAL :: a"
- WRITE(*,*)" INTEGER :: a_size"
+ WRITE(*,*)" INTEGER(C_SIZE_T) :: a_size"
WRITE(*,*)" CHARACTER(LEN=2) :: ichr2, jchr2"
WRITE(*,*)" a_size = SIZEOF(a)"
WRITE(*,*)" WRITE(ichr2,'(I2)') a_size"
@@ -165,7 +159,7 @@ WRITE(*,'(40(A,/))') &
WRITE(*, "("" SUBROUTINE d"", i2.2,""()"")") jd
WRITE(*,*)" IMPLICIT NONE"
WRITE(*,*)" DOUBLE PRECISION :: a"
- WRITE(*,*)" INTEGER :: a_size"
+ WRITE(*,*)" INTEGER(C_SIZE_T) :: a_size"
WRITE(*,*)" CHARACTER(LEN=2) :: ichr2, jchr2"
WRITE(*,*)" a_size = SIZEOF(a)"
WRITE(*,*)" WRITE(ichr2,'(I2)') a_size"
@@ -179,7 +173,7 @@ WRITE(*,'(40(A,/))') &
WRITE(*, "("" SUBROUTINE i"", i2.2,""()"")") j
WRITE(*,*)" IMPLICIT NONE"
WRITE(*,'(A,I0,A)')" INTEGER(KIND=",j,") :: a"
- WRITE(*,*)" INTEGER :: a_size"
+ WRITE(*,*)" INTEGER(C_SIZE_T) :: a_size"
WRITE(*,*)" CHARACTER(LEN=2) :: ichr2, jchr2"
WRITE(*,*)" a_size = SIZEOF(a)"
WRITE(*,*)" WRITE(ichr2,'(I2)') a_size"
@@ -193,8 +187,8 @@ WRITE(*,'(40(A,/))') &
j = rkind_numbers(i)
WRITE(*, "("" SUBROUTINE r"", i2.2,""()"")") j
WRITE(*,*)" IMPLICIT NONE"
- WRITE(*,'(A,I0,A)')" REAL(KIND= ",j,") :: a"
- WRITE(*,*)" INTEGER :: a_size"
+ WRITE(*,'(A,I0,A)')" REAL(KIND= ",j,") :: a"
+ WRITE(*,*)" INTEGER(C_SIZE_T) :: a_size"
WRITE(*,*)" CHARACTER(LEN=2) :: ichr2, jchr2"
WRITE(*,*)" a_size = SIZEOF(a)"
WRITE(*,*)" WRITE(ichr2,'(I2)') a_size"
@@ -204,6 +198,30 @@ WRITE(*,'(40(A,/))') &
WRITE(*,*)" RETURN"
WRITE(*,*)"END SUBROUTINE"
ENDDO
+ WRITE(*,*) "END MODULE H5test_kind_SIZEOF_mod"
+ WRITE(*,*) ""
+
+ ! (b) generate the main program
+
+ WRITE(*,*) "PROGRAM H5test_kind_SIZEOF"
+ WRITE(*,*) "USE H5test_kind_SIZEOF_mod"
+ WRITE(*,*) "WRITE(*,*) "" /*generating header file*/ """
+ ji = 0
+ WRITE(*, "("" CALL i"", i2.2,""()"")") ji
+ jr = 0
+ WRITE(*, "("" CALL r"", i2.2,""()"")") jr
+ jd = 0
+ WRITE(*, "("" CALL d"", i2.2,""()"")") jd
+ DO i = 1, ii
+ j = ikind_numbers(i)
+ WRITE(*, "("" CALL i"", i2.2,""()"")") j
+ ENDDO
+ DO i = 1, ir
+ j = rkind_numbers(i)
+ WRITE(*, "("" CALL r"", i2.2,""()"")") j
+ ENDDO
+ WRITE(*,*) "END PROGRAM H5test_kind_SIZEOF"
+
END PROGRAM test_kind