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*/