1! 2! 3! This program demonstrates use of MatSeqAIJGetArray() 4! 5program main 6 7#include <petsc/finclude/petscmat.h> 8 use petscmat 9 implicit none 10 11 Mat A 12 PetscErrorCode ierr 13 PetscViewer v 14 PetscScalar, pointer :: aa(:) 15 character*(PETSC_MAX_PATH_LEN) f 16 PetscBool flg 17 18 PetscCallA(PetscInitialize(ierr)) 19 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)) 22 23 PetscCallA(MatCreate(PETSC_COMM_WORLD, A, ierr)) 24 PetscCallA(MatSetType(A, MATSEQAIJ, ierr)) 25 PetscCallA(MatLoad(A, v, ierr)) 26 27 PetscCallA(MatView(A, PETSC_VIEWER_STDOUT_WORLD, ierr)) 28 29 PetscCallA(MatSeqAIJGetArray(A, aa, ierr)) 30 print *, aa(3) 31 32 PetscCallA(MatDestroy(A, ierr)) 33 PetscCallA(PetscViewerDestroy(v, ierr)) 34 35 PetscCallA(PetscFinalize(ierr)) 36end 37 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*/ 45