xref: /petsc/src/mat/tests/ex196f90.F90 (revision 6a98f8dc3f2c9149905a87dc2e9d0fedaf64e09a)
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