Actual source code: ex85f.F

  1: !
  2: !      "$Id: ex85f.F,v 1.2 2001/06/21 21:17:18 bsmith Exp $";
  3: !
  4: !   This program tests MatGetDiagonal()
  5: !
  6:       program main
  7:       implicit none

 9:  #include include/finclude/petsc.h
 10:  #include include/finclude/petscis.h
 11:  #include include/finclude/petscvec.h
 12:  #include include/finclude/petscmat.h
 13:  #include include/finclude/petscviewer.h

 15:       integer ierr,i
 16:       Vec     v
 17:       Mat     m
 18:       double precision value

 20:       call PetscInitialize(PETSC_NULL_CHARACTER,ierr)

 22:       call MatCreate(PETSC_COMM_SELF,12,12,12,12,m,ierr)
 23:       call MatSetFromOptions(m,ierr)

 25:       value = 3.0
 26:       i     = 4
 27:       call MatSetValues(m,1,i,1,i,value,INSERT_VALUES,ierr)
 28:       call MatAssemblyBegin(m,MAT_FINAL_ASSEMBLY,ierr)
 29:       call MatAssemblyEnd(m,MAT_FINAL_ASSEMBLY,ierr)

 31:       call VecCreateSeq(PETSC_COMM_SELF,12,v,ierr)
 32:       call MatGetDiagonal(m,v,ierr)
 33:       call VecView(v,PETSC_VIEWER_STDOUT_WORLD,ierr)

 35:       call MatDestroy(m,ierr)
 36:       call VecDestroy(v,ierr)
 37:       call PetscFinalize(ierr)
 38:       end