Actual source code: ex105f.F90
1: !
2: !
3: #include <petsc/finclude/petscmat.h>
4: program main
5: use petscmat
6: implicit none
8: PetscErrorCode ierr
9: PetscInt :: i, j
10: PetscInt, parameter :: one = 1, twelve = 12
11: Mat m
12: PetscScalar, parameter :: value = 3.0
14: PetscCallA(PetscInitialize(ierr))
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: i = 4
21: PetscCallA(MatSetValuesMPIAIJ(m, one, [i], one, [i], [value], ADD_VALUES, ierr))
22: i = 5
23: j = 7
24: PetscCallA(MatSetValuesMPIAIJ(m, one, [i], one, [j], [value], ADD_VALUES, ierr))
25: i = 10
26: j = 9
27: PetscCallA(MatSetValuesMPIAIJ(m, one, [i], one, [j], [value], ADD_VALUES, ierr))
28: PetscCallA(MatAssemblyBegin(m, MAT_FINAL_ASSEMBLY, ierr))
29: PetscCallA(MatAssemblyEnd(m, MAT_FINAL_ASSEMBLY, ierr))
31: PetscCallA(MatDestroy(m, ierr))
32: PetscCallA(PetscFinalize(ierr))
33: end
35: !/*TEST
36: !
37: ! test:
38: ! nsize: 2
39: ! output_file: output/empty.out
40: !
41: !TEST*/