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