Actual source code: ex196f90.F90

  1: !
  2: !
  3: !   This program demonstrates use of MatSeqAIJGetArray()
  4: !
  5: program main

  7: #include <petsc/finclude/petscmat.h>
  8:   use petscmat
  9:   implicit none

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

 18:   PetscCallA(PetscInitialize(ierr))

 20:   PetscCallA(PetscOptionsGetString(PETSC_NULL_OPTIONS, PETSC_NULL_CHARACTER, '-f', f, flg, ierr))
 21:   PetscCallA(PetscViewerBinaryOpen(PETSC_COMM_WORLD, f, FILE_MODE_READ, v, ierr))

 23:   PetscCallA(MatCreate(PETSC_COMM_WORLD, A, ierr))
 24:   PetscCallA(MatSetType(A, MATSEQAIJ, ierr))
 25:   PetscCallA(MatLoad(A, v, ierr))

 27:   PetscCallA(MatView(A, PETSC_VIEWER_STDOUT_WORLD, ierr))

 29:   PetscCallA(MatSeqAIJGetArray(A, aa, ierr))
 30:   print *, aa(3)

 32:   PetscCallA(MatDestroy(A, ierr))
 33:   PetscCallA(PetscViewerDestroy(v, ierr))

 35:   PetscCallA(PetscFinalize(ierr))
 36: end

 38: !/*TEST
 39: !
 40: !   test:
 41: !      args: -f ${wPETSC_DIR}/share/petsc/datafiles/matrices/ns-real-int32-float64 -malloc_dump
 42: !      requires: !complex double !defined(PETSC_USE_64BIT_INDICES)
 43: !
 44: !TEST*/