xref: /petsc/src/mat/tests/ex196f90.F90 (revision 7e1a0bbe36d2be40a00a95404ece00db4857f70d)
1!
2!
3!   This program demonstrates use of MatSeqAIJGetArray()
4!
5#include <petsc/finclude/petscmat.h>
6program main
7
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