Actual source code: ex196f90.F90

petsc-3.8.3 2017-12-09
Report Typos and Errors
  1: !
  2: !
  3: !   This program demonstrates use of MatSeqAIJGetArrayF90()
  4: !
  5:       program main
  6:  #include <petsc/finclude/petscmat.h>
  7:       use petscmat
  8:       implicit none

 10:       Mat      A
 11:       PetscErrorCode ierr
 12:       PetscViewer   v
 13:       PetscScalar, pointer :: aa(:)
 14:       character*(256)  f
 15:       PetscBool flg

 17:       call PetscInitialize(PETSC_NULL_CHARACTER,ierr)
 18:       if (ierr .ne. 0) then
 19:         print*,'Unable to initialize PETSc'
 20:         stop
 21:       endif

 23:       call PetscOptionsGetString(PETSC_NULL_OPTIONS,PETSC_NULL_CHARACTER,'-f',f,flg,ierr);CHKERRA(ierr)
 24:       call PetscViewerBinaryOpen(PETSC_COMM_WORLD,f,FILE_MODE_READ,v,ierr);CHKERRA(ierr)

 26:       call MatCreate(PETSC_COMM_WORLD,A,ierr);CHKERRA(ierr)
 27:       call MatSetType(A, MATSEQAIJ,ierr);CHKERRA(ierr)
 28:       call MatLoad(A,v,ierr);CHKERRA(ierr)

 30:       call MatView(A,PETSC_VIEWER_STDOUT_WORLD,ierr);CHKERRA(ierr)

 32:       call MatSeqAIJGetArrayF90(A,aa,ierr);CHKERRA(ierr)
 33:       print*,aa(3)

 35:       call MatDestroy(A,ierr);CHKERRA(ierr)
 36:       call PetscViewerDestroy(v,ierr);CHKERRA(ierr)

 38:       call PetscFinalize(ierr)
 39:       end