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