Actual source code: ex80f.F90
1: !
2: ! PETSc Program to test HDF5 viewer and HDF5 attribute I/O
3: !
4: program main
5: #include <petsc/finclude/petscsys.h>
6: #include <petsc/finclude/petscvec.h>
7: use petscsys
8: use petscvec
9: implicit none
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))
35: end program main
36: !/*TEST
37: ! build:
38: ! requires: hdf5
39: !TEST*/