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