Actual source code: ex67f.F

  1: !
  2: !   This program demonstrates use of MatGetSubMatrices() from Fortran
  3: !
  4:       program main
  5:       implicit none
 6:  #include finclude/petscsys.h
 7:  #include finclude/petscmat.h
 8:  #include finclude/petscis.h
 9:  #include finclude/petscviewer.h

 11:       Mat      A,B
 12:       PetscErrorCode  ierr
 13:       PetscInt one,zero
 14:       PetscViewer   v
 15:       IS       isrow

 17:       call PetscInitialize(PETSC_NULL_CHARACTER,ierr)

 19:       call PetscViewerBinaryOpen(PETSC_COMM_WORLD,'../matbinary.ex',         &
 20:      &                          FILE_MODE_READ,v,ierr)

 22:       call MatLoad(v,MATSEQAIJ,A,ierr)

 24:       one  = 1
 25:       zero = 0
 26:       call ISCreateGeneral(PETSC_COMM_SELF,one,zero,isrow,ierr)

 28:       call MatGetSubmatrices(A,one,isrow,isrow,                           &
 29:      &        MAT_INITIAL_MATRIX,B,ierr)

 31:       call MatView(B,PETSC_VIEWER_STDOUT_SELF,ierr)

 33:       call MatGetSubmatrices(A,one,isrow,isrow,                           &
 34:      &        MAT_REUSE_MATRIX,B,ierr)

 36:       call MatView(B,PETSC_VIEWER_STDOUT_SELF,ierr)

 38:       call ISDestroy(isrow,ierr)
 39:       call MatDestroy(A,ierr)
 40:       call MatDestroy(B,ierr)
 41:       call PetscViewerDestroy(v,ierr)

 43:       call PetscFinalize(ierr)
 44:       end