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,PETSC_DEFAULT_INTEGER,PETSC_NULL_INTEGER,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*/