Actual source code: ex196f90.F90
petsc-3.8.4 2018-03-24
1: !
2: !
3: ! This program demonstrates use of MatSeqAIJGetArrayF90()
4: !
5: program main
6: #include <petsc/finclude/petscmat.h>
7: use petscmat
8: implicit none
10: Mat A
11: PetscErrorCode ierr
12: PetscViewer v
13: PetscScalar, pointer :: aa(:)
14: character*(256) f
15: PetscBool flg
17: call PetscInitialize(PETSC_NULL_CHARACTER,ierr)
18: if (ierr .ne. 0) then
19: print*,'Unable to initialize PETSc'
20: stop
21: endif
23: call PetscOptionsGetString(PETSC_NULL_OPTIONS,PETSC_NULL_CHARACTER,'-f',f,flg,ierr);CHKERRA(ierr)
24: call PetscViewerBinaryOpen(PETSC_COMM_WORLD,f,FILE_MODE_READ,v,ierr);CHKERRA(ierr)
26: call MatCreate(PETSC_COMM_WORLD,A,ierr);CHKERRA(ierr)
27: call MatSetType(A, MATSEQAIJ,ierr);CHKERRA(ierr)
28: call MatLoad(A,v,ierr);CHKERRA(ierr)
30: call MatView(A,PETSC_VIEWER_STDOUT_WORLD,ierr);CHKERRA(ierr)
32: call MatSeqAIJGetArrayF90(A,aa,ierr);CHKERRA(ierr)
33: print*,aa(3)
35: call MatDestroy(A,ierr);CHKERRA(ierr)
36: call PetscViewerDestroy(v,ierr);CHKERRA(ierr)
38: call PetscFinalize(ierr)
39: end