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