diff options
author | Elena Pourmal <epourmal@hdfgroup.org> | 2002-09-23 22:06:01 (GMT) |
---|---|---|
committer | Elena Pourmal <epourmal@hdfgroup.org> | 2002-09-23 22:06:01 (GMT) |
commit | f5096c200093eaf5b7dae72a3f672b2d7f457ca6 (patch) | |
tree | 457ebff96156da5e20133905167b7ac714428c30 /fortran/testpar | |
parent | 47fc4908325071261476bbdabb1be696323f9298 (diff) | |
download | hdf5-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.in | 22 | ||||
-rw-r--r-- | fortran/testpar/ptesthdf5_fortran.f90 | 19 | ||||
-rw-r--r-- | fortran/testpar/tcheck.f90 | 16 | ||||
-rw-r--r-- | fortran/testpar/thdf5.f90 | 15 | ||||
-rw-r--r-- | fortran/testpar/thyperslab_wr.f90 | 38 |
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 |