Actual source code: ex105f.F90
1: !
2: ! This program tests MatGetDiagonal()
3: !
4: program main
5: #include <petsc/finclude/petscmat.h>
6: use petscmat
7: implicit none
9: PetscErrorCode ierr
10: PetscInt i,one,twelve,j
11: Mat m
12: PetscScalar value
14: PetscCallA(PetscInitialize(ierr))
15: twelve = 12
16: PetscCallA(MatCreate(PETSC_COMM_WORLD,m,ierr))
17: PetscCallA(MatSetSizes(m,PETSC_DECIDE,PETSC_DECIDE,twelve,twelve,ierr))
18: PetscCallA(MatSetFromOptions(m,ierr))
19: PetscCallA(MatSetUp(m,ierr))
21: value = 3.0
22: i = 4
23: one = 1
24: PetscCallA(MatSetValuesMPIAIJ(m,one,i,one,i,value,ADD_VALUES,ierr))
25: i = 5
26: j = 7
27: PetscCallA(MatSetValuesMPIAIJ(m,one,i,one,j,value,ADD_VALUES,ierr))
28: i = 10
29: j = 9
30: PetscCallA(MatSetValuesMPIAIJ(m,one,i,one,j,value,ADD_VALUES,ierr))
31: PetscCallA(MatAssemblyBegin(m,MAT_FINAL_ASSEMBLY,ierr))
32: PetscCallA(MatAssemblyEnd(m,MAT_FINAL_ASSEMBLY,ierr))
34: PetscCallA(MatDestroy(m,ierr))
35: PetscCallA(PetscFinalize(ierr))
36: end
38: !/*TEST
39: !
40: ! test:
41: ! nsize: 2
42: !
43: !TEST*/