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