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