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: ! output_file: output/empty.out
42: !
43: !TEST*/