Actual source code: ex105f.F
1: !
2: ! This program tests MatGetDiagonal()
3: !
4: program main
5: implicit none
7: #include finclude/petscsys.h
8: #include finclude/petscis.h
9: #include finclude/petscvec.h
10: #include finclude/petscmat.h
11: #include finclude/petscviewer.h
13: PetscErrorCode ierr
14: PetscInt i,one,twelve,j
15: Mat m
16: PetscScalar value
18: call PetscInitialize(PETSC_NULL_CHARACTER,ierr)
20: twelve = 12
21: call MatCreate(PETSC_COMM_WORLD,m,ierr)
22: call MatSetSizes(m,PETSC_DECIDE,PETSC_DECIDE,twelve,twelve,ierr)
23: call MatSetFromOptions(m,ierr)
25: value = 3.0
26: i = 4
27: one = 1
28: call MatSetValuesMPIAIJ(m,one,i,one,i,value,ADD_VALUES,ierr)
29: i = 5
30: j = 7
31: call MatSetValuesMPIAIJ(m,one,i,one,j,value,ADD_VALUES,ierr)
32: i = 10
33: j = 9
34: call MatSetValuesMPIAIJ(m,one,i,one,j,value,ADD_VALUES,ierr)
35: call MatAssemblyBegin(m,MAT_FINAL_ASSEMBLY,ierr)
36: call MatAssemblyEnd(m,MAT_FINAL_ASSEMBLY,ierr)
38: call MatDestroy(m,ierr)
39: call PetscFinalize(ierr)
40: end