Actual source code: ex105f.F
petsc-3.4.2 2013-07-02
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