xref: /petsc/src/mat/tests/ex85f.F90 (revision 5d83a8b16d06840f96948f1a43aa9c83c769a60a)
1d8606c27SBarry Smith!
2d8606c27SBarry Smith!   This program tests MatGetDiagonal()
3d8606c27SBarry Smith!
4d8606c27SBarry Smith      program main
5d8606c27SBarry Smith#include <petsc/finclude/petscmat.h>
6d8606c27SBarry Smith      use petscmat
7d8606c27SBarry Smith      implicit none
8d8606c27SBarry Smith
9d8606c27SBarry Smith      PetscErrorCode ierr
10d8606c27SBarry Smith      PetscInt i,one,twelve
11d8606c27SBarry Smith      Vec     v
12d8606c27SBarry Smith      Mat     m
13d8606c27SBarry Smith      PetscScalar value
14d8606c27SBarry Smith
15d8606c27SBarry Smith      PetscCallA(PetscInitialize(ierr))
16d8606c27SBarry Smith
17d8606c27SBarry Smith      twelve = 12
18d8606c27SBarry Smith      PetscCallA(MatCreate(PETSC_COMM_SELF,m,ierr))
19d8606c27SBarry Smith      PetscCallA(MatSetSizes(m,twelve,twelve,twelve,twelve,ierr))
20d8606c27SBarry Smith      PetscCallA(MatSetFromOptions(m,ierr))
21d8606c27SBarry Smith      PetscCallA(MatSetUp(m,ierr))
22d8606c27SBarry Smith
23d8606c27SBarry Smith      value = 3.0
24d8606c27SBarry Smith      i     = 4
25d8606c27SBarry Smith      one   = 1
26*5d83a8b1SBarry Smith      PetscCallA(MatSetValues(m,one,[i],one,[i],[value],INSERT_VALUES,ierr))
27d8606c27SBarry Smith      PetscCallA(MatAssemblyBegin(m,MAT_FINAL_ASSEMBLY,ierr))
28d8606c27SBarry Smith      PetscCallA(MatAssemblyEnd(m,MAT_FINAL_ASSEMBLY,ierr))
29d8606c27SBarry Smith
30d8606c27SBarry Smith      PetscCallA(VecCreateSeq(PETSC_COMM_SELF,twelve,v,ierr))
31d8606c27SBarry Smith      PetscCallA(MatGetDiagonal(m,v,ierr))
32d8606c27SBarry Smith      PetscCallA(VecView(v,PETSC_VIEWER_STDOUT_WORLD,ierr))
33d8606c27SBarry Smith
34d8606c27SBarry Smith      PetscCallA(MatDestroy(m,ierr))
35d8606c27SBarry Smith      PetscCallA(VecDestroy(v,ierr))
36d8606c27SBarry Smith      PetscCallA(PetscFinalize(ierr))
37d8606c27SBarry Smith      end
38d8606c27SBarry Smith
39d8606c27SBarry Smith!/*TEST
40d8606c27SBarry Smith!
41d8606c27SBarry Smith!   test:
42d8606c27SBarry Smith!
43d8606c27SBarry Smith!TEST*/
44