summaryrefslogtreecommitdiffstats
path: root/fortran/src/H5match_types.c
diff options
context:
space:
mode:
Diffstat (limited to 'fortran/src/H5match_types.c')
-rw-r--r--fortran/src/H5match_types.c40
1 files changed, 29 insertions, 11 deletions
diff --git a/fortran/src/H5match_types.c b/fortran/src/H5match_types.c
index 98128db..6f5af49 100644
--- a/fortran/src/H5match_types.c
+++ b/fortran/src/H5match_types.c
@@ -100,7 +100,7 @@ initFfile(void)
! access to either file, you may request a copy from help@hdfgroup.org. *\n\
! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n\
!\n!\n\
-! This file is automatically generated and contains HDF5 Fortran90 type definitions.\n!\n\
+! This file is automatically generated by H5match_types.c and contains HDF5 Fortran90 type definitions.\n!\n\
MODULE H5FORTRAN_TYPES\n\
USE ISO_C_BINDING\n\
!\n\
@@ -175,6 +175,11 @@ int main(void)
H5_FORTRAN_NUM_INTEGER_KINDS = (int)(sizeof(IntKinds)/sizeof(IntKinds[0]));
H5_FORTRAN_NUM_REAL_KINDS = (int)(sizeof(RealKinds)/sizeof(RealKinds[0]));
+
+
+ fprintf(fort_header," INTEGER, PARAMETER :: H5_FORTRAN_NUM_INTEGER_KINDS = %d\n", H5_FORTRAN_NUM_INTEGER_KINDS);
+
+
for(i=0;i< H5_FORTRAN_NUM_INTEGER_KINDS;i++) {
if(sizeof(long long) == IntKinds_SizeOf[i])
writeTypedef("int", "long long", IntKinds[i]);
@@ -258,7 +263,7 @@ int main(void)
/* haddr_t */
for(i=0;i< H5_FORTRAN_NUM_INTEGER_KINDS;i++) {
if(IntKinds_SizeOf[i] == H5_SIZEOF_HADDR_T) {
- writeToFiles("int","HADDR_T", "haddr_t_f", H5_SIZEOF_HADDR_T, IntKinds[i]);
+ writeToFiles("int","HADDR_T", "haddr_t_f", IntKinds[i], IntKinds[i]);
break;
}
if(i == (H5_FORTRAN_NUM_INTEGER_KINDS-1) )
@@ -269,7 +274,7 @@ int main(void)
/* hsize_t */
for(i=0;i< H5_FORTRAN_NUM_INTEGER_KINDS;i++) {
if(IntKinds_SizeOf[i] == H5_SIZEOF_HSIZE_T) {
- writeToFiles("hsize_t","HSIZE_T", "hsize_t_f", H5_SIZEOF_HSIZE_T, IntKinds[i]);
+ writeToFiles("hsize_t","HSIZE_T", "hsize_t_f", IntKinds[i], IntKinds[i]);
break;
}
if(i == (H5_FORTRAN_NUM_INTEGER_KINDS-1) )
@@ -280,7 +285,7 @@ int main(void)
/* hssize_t */
for(i=0;i< H5_FORTRAN_NUM_INTEGER_KINDS;i++) {
if(IntKinds_SizeOf[i] == H5_SIZEOF_HSSIZE_T) {
- writeToFiles("int","HSSIZE_T", "hssize_t_f", H5_SIZEOF_HSSIZE_T, IntKinds[i]);
+ writeToFiles("int","HSSIZE_T", "hssize_t_f", IntKinds[i], IntKinds[i]);
break;
}
if(i == (H5_FORTRAN_NUM_INTEGER_KINDS-1) )
@@ -291,7 +296,7 @@ int main(void)
/* off_t */
for(i=0;i< H5_FORTRAN_NUM_INTEGER_KINDS;i++) {
if(IntKinds_SizeOf[i] == H5_SIZEOF_OFF_T) {
- writeToFiles("int","OFF_T", "off_t_f", H5_SIZEOF_OFF_T, IntKinds[i]);
+ writeToFiles("int","OFF_T", "off_t_f", IntKinds[i], IntKinds[i]);
break;
}
if(i == (H5_FORTRAN_NUM_INTEGER_KINDS-1) )
@@ -302,7 +307,7 @@ int main(void)
/* size_t */
for(i=0;i< H5_FORTRAN_NUM_INTEGER_KINDS;i++) {
if(IntKinds_SizeOf[i] == H5_SIZEOF_SIZE_T) {
- writeToFiles("size_t","SIZE_T", "size_t_f", H5_SIZEOF_SIZE_T, IntKinds[i]);
+ writeToFiles("size_t","SIZE_T", "size_t_f", IntKinds[i], IntKinds[i]);
break;
}
if(i == (H5_FORTRAN_NUM_INTEGER_KINDS-1) )
@@ -311,7 +316,7 @@ int main(void)
}
/* int */
- writeToFiles("int","Fortran_INTEGER", "int_f", H5_FORTRAN_NATIVE_INTEGER_SIZEOF, H5_FORTRAN_NATIVE_INTEGER_KIND);
+ writeToFiles("int","Fortran_INTEGER", "int_f", H5_FORTRAN_NATIVE_INTEGER_KIND, H5_FORTRAN_NATIVE_INTEGER_KIND);
/* int_1, int_2, int_4, int_8 */
@@ -327,16 +332,29 @@ int main(void)
FoundIntSize[3] = -1;
FoundIntSize[4] = -1;
+ fprintf(fort_header," INTEGER, DIMENSION(1:%d), PARAMETER :: Fortran_INTEGER_AVAIL_KINDS = (/", H5_FORTRAN_NUM_INTEGER_KINDS);
+
for(i=0;i<H5_FORTRAN_NUM_INTEGER_KINDS;i++) {
FoundIntSize[i] = (int)IntKinds[i];
FoundIntSizeKind[i] = (int)IntKinds_SizeOf[i];
/* writeToFiles("int",chrA, chrB, FoundIntSize[i], FoundIntSizeKind[i]); */
+ fprintf(fort_header,"%d",(int)IntKinds[i]);
+ if(i==H5_FORTRAN_NUM_INTEGER_KINDS-1) {
+ fprintf(fort_header,"/)\n");
+ } else {
+ fprintf(fort_header,",");
+ }
+
}
+
+
+
+
for(i=0;i<H5_FORTRAN_NUM_INTEGER_KINDS;i++) {
if( FoundIntSize[i] > 0) /* Found the integer type */
{
- sprintf(chrA, "Fortran_INTEGER_%d", FoundIntSize[i]);
+ sprintf(chrA, "Fortran_INTEGER_KINDS_%d", FoundIntSizeKind[i]);
sprintf(chrB, "int_%d_f", FoundIntSize[i]);
writeToFiles("int",chrA, chrB, FoundIntSize[i], FoundIntSizeKind[i]);
}
@@ -347,7 +365,7 @@ int main(void)
{
if( FoundIntSize[j] > 0) /* Found the next highest */
{
- sprintf(chrA, "Fortran_INTEGER_%d", (-1)*FoundIntSize[i]);
+ sprintf(chrA, "Fortran_INTEGER_KINDS_%d", (-1)*FoundIntSizeKind[i]);
sprintf(chrB, "int_%d_f", (-1)*FoundIntSize[i]);
writeToFiles("int",chrA, chrB, FoundIntSize[j], FoundIntSizeKind[j]);
flag = 1;
@@ -360,7 +378,7 @@ int main(void)
{
if( FoundIntSize[j] > 0) /* Found the next lowest */
{
- sprintf(chrA, "Fortran_INTEGER_%d", (-1)*FoundIntSize[i]);
+ sprintf(chrA, "Fortran_INTEGER_KINDS_%d", (-1)*FoundIntSizeKind[i]);
sprintf(chrB, "int_%d_f", (-1)*FoundIntSize[i]);
writeToFiles("int",chrA, chrB, FoundIntSize[j], FoundIntSizeKind[j]);
flag = 1;
@@ -391,7 +409,7 @@ int main(void)
/* hid_t */
for(i=0;i< H5_FORTRAN_NUM_INTEGER_KINDS;i++) {
if(IntKinds_SizeOf[i] == H5_SIZEOF_HID_T) {
- writeToFiles("int","HID_T", "hid_t_f", H5_SIZEOF_HID_T, IntKinds[i]);
+ writeToFiles("int","HID_T", "hid_t_f", IntKinds[i], IntKinds[i]);
break;
}
if(i == (H5_FORTRAN_NUM_INTEGER_KINDS-1) )