1! 2! 3! This program demonstrates use of MatSeqAIJGetArray() 4! 5 program 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)) 36 end 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