Actual source code: ex196f90.F90
petsc-3.12.0 2019-09-29
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*(256) f
16: PetscBool flg
18: call PetscInitialize(PETSC_NULL_CHARACTER,ierr)
19: if (ierr .ne. 0) then
20: print*,'Unable to initialize PETSc'
21: stop
22: endif
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)
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)
31: call MatView(A,PETSC_VIEWER_STDOUT_WORLD,ierr);CHKERRA(ierr)
33: call MatSeqAIJGetArrayF90(A,aa,ierr);CHKERRA(ierr)
34: print*,aa(3)
36: call MatDestroy(A,ierr);CHKERRA(ierr)
37: call PetscViewerDestroy(v,ierr);CHKERRA(ierr)
39: call PetscFinalize(ierr)
40: end
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*/