Actual source code: ex196f90.F90

petsc-3.12.0 2019-09-29
Report Typos and Errors
  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*/