xref: /petsc/src/mat/tests/ex196f90.F90 (revision dfd57a172ac9fa6c7b5fe6de6ab5df85cefc2996)
1c4762a1bSJed Brown!
2c4762a1bSJed Brown!
3c4762a1bSJed Brown!   This program demonstrates use of MatSeqAIJGetArrayF90()
4c4762a1bSJed Brown!
5c4762a1bSJed Brown      program main
6c4762a1bSJed Brown
7c4762a1bSJed Brown#include <petsc/finclude/petscmat.h>
8c4762a1bSJed Brown      use petscmat
9c4762a1bSJed Brown      implicit none
10c4762a1bSJed Brown
11c4762a1bSJed Brown      Mat                            A
12c4762a1bSJed Brown      PetscErrorCode                 ierr
13c4762a1bSJed Brown      PetscViewer                    v
14c4762a1bSJed Brown      PetscScalar, pointer ::        aa(:)
1562ac926dSPierre Jolivet      character*(PETSC_MAX_PATH_LEN) f
16c4762a1bSJed Brown      PetscBool                      flg
17c4762a1bSJed Brown
18c4762a1bSJed Brown      call PetscInitialize(PETSC_NULL_CHARACTER,ierr)
19c4762a1bSJed Brown      if (ierr .ne. 0) then
20c4762a1bSJed Brown        print*,'Unable to initialize PETSc'
21c4762a1bSJed Brown        stop
22c4762a1bSJed Brown      endif
23c4762a1bSJed Brown
24c4762a1bSJed Brown      call PetscOptionsGetString(PETSC_NULL_OPTIONS,PETSC_NULL_CHARACTER,'-f',f,flg,ierr);CHKERRA(ierr)
25c4762a1bSJed Brown      call PetscViewerBinaryOpen(PETSC_COMM_WORLD,f,FILE_MODE_READ,v,ierr);CHKERRA(ierr)
26c4762a1bSJed Brown
27c4762a1bSJed Brown      call MatCreate(PETSC_COMM_WORLD,A,ierr);CHKERRA(ierr)
28c4762a1bSJed Brown      call MatSetType(A, MATSEQAIJ,ierr);CHKERRA(ierr)
29c4762a1bSJed Brown      call MatLoad(A,v,ierr);CHKERRA(ierr)
30c4762a1bSJed Brown
31c4762a1bSJed Brown      call MatView(A,PETSC_VIEWER_STDOUT_WORLD,ierr);CHKERRA(ierr)
32c4762a1bSJed Brown
33c4762a1bSJed Brown      call MatSeqAIJGetArrayF90(A,aa,ierr);CHKERRA(ierr)
34c4762a1bSJed Brown      print*,aa(3)
35c4762a1bSJed Brown
36c4762a1bSJed Brown      call MatDestroy(A,ierr);CHKERRA(ierr)
37c4762a1bSJed Brown      call PetscViewerDestroy(v,ierr);CHKERRA(ierr)
38c4762a1bSJed Brown
39c4762a1bSJed Brown      call PetscFinalize(ierr)
40c4762a1bSJed Brown      end
41c4762a1bSJed Brown
42c4762a1bSJed Brown!/*TEST
43c4762a1bSJed Brown!
44c4762a1bSJed Brown!   test:
45c4762a1bSJed Brown!      args: -f ${wPETSC_DIR}/share/petsc/datafiles/matrices/ns-real-int32-float64 -malloc_dump
46*dfd57a17SPierre Jolivet!      requires: !complex double !defined(PETSC_USE_64BIT_INDICES)
47c4762a1bSJed Brown!
48c4762a1bSJed Brown!TEST*/
49