summaryrefslogtreecommitdiffstats
path: root/fortran/testpar
diff options
context:
space:
mode:
authorElena Pourmal <epourmal@hdfgroup.org>2002-09-23 22:06:01 (GMT)
committerElena Pourmal <epourmal@hdfgroup.org>2002-09-23 22:06:01 (GMT)
commitf5096c200093eaf5b7dae72a3f672b2d7f457ca6 (patch)
tree457ebff96156da5e20133905167b7ac714428c30 /fortran/testpar
parent47fc4908325071261476bbdabb1be696323f9298 (diff)
downloadhdf5-f5096c200093eaf5b7dae72a3f672b2d7f457ca6.zip
hdf5-f5096c200093eaf5b7dae72a3f672b2d7f457ca6.tar.gz
hdf5-f5096c200093eaf5b7dae72a3f672b2d7f457ca6.tar.bz2
[svn-r5940]
Purpose: Bug fix, code improvement Description: Fortran tests didn't cleanup created files. Also HDF5_PREFIX and HDF5_PARAPREFIX were not used to specify location of the files. There was a redundant file in the testpar directory that contained an error reporting function used by both serial and parallel tests. Solution: Created library h5test_fortran.a that contains functions used by the serial and parallel tests. It includes Fortran and C functions that may be called from Fortran programs to report errors, to modify file names and to cleanup files after run. Modified test code to use new functions. Platforms tested: Linux 2.2 (eirene) serial IRIX64 (modi4) parallel with HDF5_PREFIX and HDF5_PARAPREFIX set to $SCR Solris 2.7 with mpich 1.2.4 with HDF5_PARAPREFIX set to /tmp/epourmal
Diffstat (limited to 'fortran/testpar')
-rw-r--r--fortran/testpar/Makefile.in22
-rw-r--r--fortran/testpar/ptesthdf5_fortran.f9019
-rw-r--r--fortran/testpar/tcheck.f9016
-rw-r--r--fortran/testpar/thdf5.f9015
-rw-r--r--fortran/testpar/thyperslab_wr.f9038
5 files changed, 81 insertions, 29 deletions
diff --git a/fortran/testpar/Makefile.in b/fortran/testpar/Makefile.in
index 4f5de0e..2ee682a 100644
--- a/fortran/testpar/Makefile.in
+++ b/fortran/testpar/Makefile.in
@@ -1,8 +1,18 @@
## HDF5 Fortran Parallel Library Test Makefile(.in)
##
-## Copyright (C) 2000 National Center for Supercomputing Applications
-## All rights reserved
+
+##
+## Copyright by the Board of Trustees of the University of Illinois.
+## All rights reserved.
##
+## This file is part of HDF5. The full HDF5 copyright notice, including
+## terms governing use, modification, and redistribution, is contained in
+## the files COPYING and Copyright.html. COPYING can be found at the root
+## of the source code distribution tree; Copyright.html can be found at the
+## root level of an installed copy of the electronic HDF5 document set and
+## is linked from the top-level documents page. It can also be found at
+## http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have
+## access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu.
##
top_srcdir=@top_srcdir@/..
top_builddir=../..
@@ -16,6 +26,8 @@ hdf5_builddir=$(top_builddir)/src
LT_LINK_LIB=$(LT) --mode=link $(F9X) -static -rpath $(libdir)
LIBFORTRAN=../src/libhdf5_fortran.la
LIBHDF5=$(hdf5_builddir)/libhdf5.la
+FTLIB = ../test/libh5test_fortran.la
+CTLIB = ../../test/.libs/libh5test.a
## These tests are parallel
RUNTEST=$(RUNPARALLEL)
@@ -28,7 +40,7 @@ MOSTLYCLEAN=ParaEg[123].h5f
DISTCLEAN=go
## Test source files
-TEST_PFORTRAN_SRC=ptesthdf5_fortran.f90 thdf5.f90 tcheck.f90 thyperslab_wr.f90
+TEST_PFORTRAN_SRC=ptesthdf5_fortran.f90 thdf5.f90 thyperslab_wr.f90
TEST_PFORTRAN_OBJ=$(TEST_PFORTRAN_SRC:.f90=.lo)
TEST_SRC=$(TEST_PFORTRAN_SRC)
TEST_OBJ=$(TEST_SRC:.f90=.lo)
@@ -44,7 +56,7 @@ $(TEST_OBJ): $(TEST_HDR)
thyperslab_wr.lo: $(srcdir)/thyperslab_wr.f90 thdf5.lo
ptesthdf5_fortran.lo: $(srcdir)/ptesthdf5_fortran.f90 thdf5.lo
-ptesthdf5_fortran: thdf5.lo thyperslab_wr.lo tcheck.lo ptesthdf5_fortran.lo
- @$(LT_LINK_FEXE) $(FFLAGS) -o $@ ptesthdf5_fortran.lo thdf5.lo thyperslab_wr.lo tcheck.lo $(LIBFORTRAN) $(LIBHDF5) $(LIBS)
+ptesthdf5_fortran: thdf5.lo thyperslab_wr.lo ptesthdf5_fortran.lo
+ @$(LT_LINK_FEXE) $(FFLAGS) -o $@ ptesthdf5_fortran.lo thdf5.lo thyperslab_wr.lo $(FTLIB) $(CTLIB) $(LIBFORTRAN) $(LIBHDF5) $(LIBS)
@CONCLUDE@
diff --git a/fortran/testpar/ptesthdf5_fortran.f90 b/fortran/testpar/ptesthdf5_fortran.f90
index c44008d..1ac0379 100644
--- a/fortran/testpar/ptesthdf5_fortran.f90
+++ b/fortran/testpar/ptesthdf5_fortran.f90
@@ -1,3 +1,18 @@
+
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
!
! Main program for parallel HDF5 Fortran tests.
@@ -16,6 +31,8 @@
INTEGER :: mpierror ! MPI error flag
INTEGER :: comm, info
INTEGER :: mpi_size, mpi_rank
+ LOGICAL :: cleanup = .TRUE.
+! LOGICAL :: cleanup = .FALSE.
comm = MPI_COMM_WORLD
info = MPI_INFO_NULL
CALL MPI_INIT(mpierror)
@@ -45,7 +62,7 @@
if (mpi_rank .eq. 0) then
write(*,*) 'Writing/reading dataset by hyperslabs'
endif
- CALL dataset_wr_by_hyperslabs(error_1)
+ CALL dataset_wr_by_hyperslabs(cleanup, error_1)
if (error_1 .ne. 0 ) write(*,*) 'Process ', mpi_rank, 'reports failure'
if (mpi_rank .eq. 0) then
write(*,*)
diff --git a/fortran/testpar/tcheck.f90 b/fortran/testpar/tcheck.f90
deleted file mode 100644
index 978c832..0000000
--- a/fortran/testpar/tcheck.f90
+++ /dev/null
@@ -1,16 +0,0 @@
-!
-!
-! This module contains check subroutine which is used in
-! all the fortran h5 test files
-!
-
- SUBROUTINE check(string,error,total_error)
- CHARACTER(LEN=*) :: string
- INTEGER :: error, total_error
- if (error .lt. 0) then
- total_error=total_error+1
- write(*,*) string, " failed"
- endif
- RETURN
- END SUBROUTINE check
-
diff --git a/fortran/testpar/thdf5.f90 b/fortran/testpar/thdf5.f90
index 0d38f88..abb5797 100644
--- a/fortran/testpar/thdf5.f90
+++ b/fortran/testpar/thdf5.f90
@@ -1,3 +1,18 @@
+
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
MODULE THDF5
USE HDF5
include 'mpif.h'
diff --git a/fortran/testpar/thyperslab_wr.f90 b/fortran/testpar/thyperslab_wr.f90
index b6da747..ff57998 100644
--- a/fortran/testpar/thyperslab_wr.f90
+++ b/fortran/testpar/thyperslab_wr.f90
@@ -1,11 +1,29 @@
+
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+! Copyright by the Board of Trustees of the University of Illinois. *
+! All rights reserved. *
+! *
+! This file is part of HDF5. The full HDF5 copyright notice, including *
+! terms governing use, modification, and redistribution, is contained in *
+! the files COPYING and Copyright.html. COPYING can be found at the root *
+! of the source code distribution tree; Copyright.html can be found at the *
+! root level of an installed copy of the electronic HDF5 document set and *
+! is linked from the top-level documents page. It can also be found at *
+! http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have *
+! access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. *
+! * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+!
!
! This test writes/reads dataset by hyperslabs collectively.
- SUBROUTINE dataset_wr_by_hyperslabs(total_error)
+ SUBROUTINE dataset_wr_by_hyperslabs(cleanup, total_error)
USE THDF5
IMPLICIT NONE
+ LOGICAL, INTENT(IN) :: cleanup
+ INTEGER, INTENT(OUT) :: total_error
- CHARACTER(LEN=7), PARAMETER :: filename = "sdsf.h5" ! File name
+ CHARACTER(LEN=8), PARAMETER :: filename = "par_sdsf" ! File name
+ CHARACTER(LEN=80) :: fix_filename
CHARACTER(LEN=8), PARAMETER :: dsetname = "IntArray" ! Dataset name
INTEGER(HID_T) :: file_id ! File identifier
@@ -25,7 +43,7 @@
INTEGER :: i, j
INTEGER :: dims(7)
- INTEGER :: total_error, error ! Error flags
+ INTEGER :: error ! Error flag
!
! MPI definitions and calls.
!
@@ -43,11 +61,12 @@
CALL check("h5pcreate_f", error, total_error)
CALL h5pset_fapl_mpio_f(plac_id, comm, info, error)
CALL check("h5pset_fapl_mpio_f", error, total_error)
+ CALL h5_fixname_f(filename, fix_filename, plac_id, error)
!
! Create the file collectively.
!
- CALL h5fcreate_f(filename, H5F_ACC_TRUNC_F, file_id, error, access_prp = plac_id)
+ CALL h5fcreate_f(fix_filename, H5F_ACC_TRUNC_F, file_id, error, access_prp = plac_id)
CALL check("h5fcreate_f", error, total_error)
CALL h5pclose_f(plac_id, error)
CALL check("h5pclose_f", error, total_error)
@@ -137,10 +156,8 @@
CALL check("h5pcreate_f", error, total_error)
CALL h5pset_fapl_mpio_f(plac_id, comm, info, error)
CALL check("h5pset_fapl_mpio_f", error, total_error)
- CALL h5fopen_f(filename, H5F_ACC_RDWR_F, file_id, error, plac_id)
+ CALL h5fopen_f(fix_filename, H5F_ACC_RDWR_F, file_id, error, plac_id)
CALL check("h5fopen_f", error, total_error)
- CALL h5pclose_f(plac_id, error)
- CALL check("h5pclose_f", error, total_error)
!
! Open dataset.
!
@@ -221,4 +238,11 @@
CALL h5fclose_f(file_id, error)
CALL check("h5fclose_f", error, total_error)
+ if(cleanup) CALL h5_cleanup_f(filename, plac_id, error)
+ CALL check("h5_cleanup_f", error, total_error)
+
+ CALL h5pclose_f(plac_id, error)
+ CALL check("h5pclose_f", error, total_error)
+
+ RETURN
END SUBROUTINE dataset_wr_by_hyperslabs