1! 2! 3! This program demonstrates use of MatSeqAIJGetArrayF90() 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*(256) f 16 PetscBool flg 17 18 call PetscInitialize(PETSC_NULL_CHARACTER,ierr) 19 if (ierr .ne. 0) then 20 print*,'Unable to initialize PETSc' 21 stop 22 endif 23 24 call PetscOptionsGetString(PETSC_NULL_OPTIONS,PETSC_NULL_CHARACTER,'-f',f,flg,ierr);CHKERRA(ierr) 25 call PetscViewerBinaryOpen(PETSC_COMM_WORLD,f,FILE_MODE_READ,v,ierr);CHKERRA(ierr) 26 27 call MatCreate(PETSC_COMM_WORLD,A,ierr);CHKERRA(ierr) 28 call MatSetType(A, MATSEQAIJ,ierr);CHKERRA(ierr) 29 call MatLoad(A,v,ierr);CHKERRA(ierr) 30 31 call MatView(A,PETSC_VIEWER_STDOUT_WORLD,ierr);CHKERRA(ierr) 32 33 call MatSeqAIJGetArrayF90(A,aa,ierr);CHKERRA(ierr) 34 print*,aa(3) 35 36 call MatDestroy(A,ierr);CHKERRA(ierr) 37 call PetscViewerDestroy(v,ierr);CHKERRA(ierr) 38 39 call PetscFinalize(ierr) 40 end 41 42!/*TEST 43! 44! test: 45! args: -f ${wPETSC_DIR}/share/petsc/datafiles/matrices/ns-real-int32-float64 -malloc_dump 46! requires: !complex double !define(PETSC_USE_64BIT_INDICES) 47! 48!TEST*/ 49