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