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