Actual source code: ex4f.F

petsc-3.7.5 2017-01-01
Report Typos and Errors
  1: !
  2: !    Test AO with on IS with 0 entries - Fortran version of ex4.c
  3: !
  4:       program main
  5:       implicit none
  6: #include <petsc/finclude/petscsys.h>
  7: #include <petsc/finclude/petscao.h>

  9:       PetscErrorCode ierr
 10:       AO             ao
 11:       PetscInt       localvert(4),nlocal
 12:       PetscMPIInt    rank
 13:       IS             is
 14:       PetscInt       one,zero

 16: !  Needed to work with 64 bit integers from Fortran
 17:       one  = 1
 18:       zero = 0

 20:       call PetscInitialize(PETSC_NULL_CHARACTER,ierr)
 21:       call MPI_Comm_rank(PETSC_COMM_WORLD,rank,ierr)

 23:       nlocal = 0
 24:       if (rank .eq. 0) then
 25:          nlocal = 4
 26:          localvert(1) = 0
 27:          localvert(2) = 1
 28:          localvert(3) = 2
 29:          localvert(4) = 3
 30:       endif

 32: !     Test AOCreateBasic()
 33:       call AOCreateBasic(PETSC_COMM_WORLD, nlocal, localvert,             &
 34:      &     PETSC_NULL_INTEGER,ao,ierr)
 35:       call AODestroy(ao,ierr)

 37: !     Test AOCreateMemoryScalable()
 38:       call AOCreateMemoryScalable(PETSC_COMM_WORLD, nlocal, localvert,    &
 39:      &     PETSC_NULL_INTEGER,ao,ierr)
 40:       call AODestroy(ao,ierr)

 42:       call AOCreate(PETSC_COMM_WORLD,ao,ierr)
 43:       call ISCreateStride(PETSC_COMM_WORLD,one,zero,one,is,ierr)
 44:       call AOSetIS(ao,is,is,ierr)
 45:       call AOSetType(ao,AOMEMORYSCALABLE,ierr)
 46:       call ISDestroy(is,ierr)
 47:       call AODestroy(ao,ierr)

 49:       call PetscFinalize(ierr)
 50:       end