Actual source code: ex58f.F
1: !
2: ! "$Id: ex58f.F,v 1.12 2001/08/07 03:03:07 balay Exp $";
3: !
4: ! This program demonstrates use of MatGetRow() from Fortran
5: !
6: program main
7: #include include/finclude/petsc.h
8: #include include/finclude/petscmat.h
9: #include include/finclude/petscviewer.h
11: Mat A
12: integer err,i,cols(500),ncols
13: PetscScalar values(500)
14: PetscViewer v
16: call PetscInitialize(PETSC_NULL_CHARACTER,err)
18: call PetscViewerBinaryOpen(PETSC_COMM_WORLD,'small', &
19: & PETSC_FILE_RDONLY,v,err)
21: call MatLoad(v,MATSEQAIJ,A,err)
23: call MatView(A,PETSC_VIEWER_STDOUT_WORLD,err)
25: call MatGetRow(A,2,ncols,cols,values,err)
26: do 10, i=1,ncols
27: print*,i,cols(i),values(i)
28: 10 continue
29: call MatRestoreRow(A,2,ncols,cols,values,err)
31: call MatGetRow(A,5,ncols,cols,values,err)
32: do 20, i=1,ncols
33: print*,i,cols(i),values(i)
34: 20 continue
35: call MatRestoreRow(A,2,ncols,cols,values,err)
37: call MatDestroy(A,err)
38: call PetscViewerDestroy(v,err)
40: call PetscFinalize(err)
41: end