xref: /petsc/src/sys/tests/ex80f.F90 (revision 2ff79c18c26c94ed8cb599682f680f231dca6444)
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*/