Actual source code: ex4f.F
petsc-3.7.2 2016-06-05
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