1! 2! PETSc Program to test HDF5 viewer and HDF5 attribute I/O 3! 4program main 5#include <petsc/finclude/petscsys.h> 6#include <petsc/finclude/petscvec.h> 7 use petscsys 8 use petscvec 9 implicit none 10 11 PetscViewer :: viewer 12 PetscErrorCode :: ierr 13 Vec :: x 14 PetscReal, parameter :: one = 1.0 15 PetscInt :: ival = 42 16 PetscReal :: rval = 3.14 17 ! initialize PETSc 18 PetscCallA(PetscInitialize(ierr)) 19 ! create and write a vector 20 PetscCallA(VecCreate(PETSC_COMM_WORLD,x,ierr)) 21 PetscCallA(PetscObjectSetName(x,"vec",ierr)) 22 PetscCallA(VecSetSizes(x,3,PETSC_DETERMINE,ierr)) 23 PetscCallA(VecSetType(x,VECSTANDARD,ierr)) 24 PetscCallA(VecSet(x,one,ierr)) 25 PetscCallA(PetscViewerCreate(PETSC_COMM_WORLD,viewer,ierr)) 26 PetscCallA(PetscViewerSetType(viewer, PETSCVIEWERHDF5, ierr)) 27 PetscCallA(PetscViewerFileSetMode(viewer, FILE_MODE_WRITE, ierr)) 28 PetscCallA(PetscViewerFileSetName(viewer, "ex80f.hdf5", ierr)) 29 PetscCallA(VecView(x,viewer,ierr)) 30 PetscCallA(PetscViewerHDF5WriteAttribute(viewer, "vec", "int_attribute", ival, ierr)) 31 PetscCallA(PetscViewerHDF5WriteAttribute(viewer, "vec", "float_attribute", rval, ierr)) 32 PetscCallA(PetscViewerDestroy(viewer, ierr)) 33 PetscCallA(VecDestroy(x, ierr)) 34 PetscCallA(PetscFinalize(ierr)) 35end program main 36!/*TEST 37! build: 38! requires: hdf5 39!TEST*/