xref: /petsc/src/vec/is/ao/tests/ex4f.F90 (revision d8606c274c09e255c003062beb17b1be973467bc)
1*d8606c27SBarry Smith!
2*d8606c27SBarry Smith!    Test AO with on IS with 0 entries - Fortran version of ex4.c
3*d8606c27SBarry Smith!
4*d8606c27SBarry Smith      program main
5*d8606c27SBarry Smith#include <petsc/finclude/petscao.h>
6*d8606c27SBarry Smith      use petscao
7*d8606c27SBarry Smith      implicit none
8*d8606c27SBarry Smith
9*d8606c27SBarry Smith      PetscErrorCode ierr
10*d8606c27SBarry Smith      AO             ao
11*d8606c27SBarry Smith      PetscInt       localvert(4),nlocal
12*d8606c27SBarry Smith      PetscMPIInt    rank
13*d8606c27SBarry Smith      IS             is
14*d8606c27SBarry Smith      PetscInt       one,zero
15*d8606c27SBarry Smith
16*d8606c27SBarry Smith!  Needed to work with 64 bit integers from Fortran
17*d8606c27SBarry Smith      one  = 1
18*d8606c27SBarry Smith      zero = 0
19*d8606c27SBarry Smith
20*d8606c27SBarry Smith      PetscCallA(PetscInitialize(ierr))
21*d8606c27SBarry Smith      PetscCallMPIA(MPI_Comm_rank(PETSC_COMM_WORLD,rank,ierr))
22*d8606c27SBarry Smith
23*d8606c27SBarry Smith      nlocal = 0
24*d8606c27SBarry Smith      if (rank .eq. 0) then
25*d8606c27SBarry Smith         nlocal = 4
26*d8606c27SBarry Smith         localvert(1) = 0
27*d8606c27SBarry Smith         localvert(2) = 1
28*d8606c27SBarry Smith         localvert(3) = 2
29*d8606c27SBarry Smith         localvert(4) = 3
30*d8606c27SBarry Smith      endif
31*d8606c27SBarry Smith
32*d8606c27SBarry Smith!     Test AOCreateBasic()
33*d8606c27SBarry Smith      PetscCallA(AOCreateBasic(PETSC_COMM_WORLD, nlocal, localvert,PETSC_NULL_INTEGER,ao,ierr))
34*d8606c27SBarry Smith      PetscCallA(AODestroy(ao,ierr))
35*d8606c27SBarry Smith
36*d8606c27SBarry Smith!     Test AOCreateMemoryScalable()
37*d8606c27SBarry Smith      PetscCallA(AOCreateMemoryScalable(PETSC_COMM_WORLD, nlocal, localvert,PETSC_NULL_INTEGER,ao,ierr))
38*d8606c27SBarry Smith      PetscCallA(AODestroy(ao,ierr))
39*d8606c27SBarry Smith
40*d8606c27SBarry Smith      PetscCallA(AOCreate(PETSC_COMM_WORLD,ao,ierr))
41*d8606c27SBarry Smith      PetscCallA(ISCreateStride(PETSC_COMM_WORLD,one,zero,one,is,ierr))
42*d8606c27SBarry Smith      PetscCallA(AOSetIS(ao,is,is,ierr))
43*d8606c27SBarry Smith      PetscCallA(AOSetType(ao,AOMEMORYSCALABLE,ierr))
44*d8606c27SBarry Smith      PetscCallA(ISDestroy(is,ierr))
45*d8606c27SBarry Smith      PetscCallA(AODestroy(ao,ierr))
46*d8606c27SBarry Smith
47*d8606c27SBarry Smith      PetscCallA(PetscFinalize(ierr))
48*d8606c27SBarry Smith      end
49*d8606c27SBarry Smith
50*d8606c27SBarry Smith!/*TEST
51*d8606c27SBarry Smith!
52*d8606c27SBarry Smith!   test:
53*d8606c27SBarry Smith!     output_file: output/ex4_1.out
54*d8606c27SBarry Smith!
55*d8606c27SBarry Smith!   test:
56*d8606c27SBarry Smith!      suffix: 2
57*d8606c27SBarry Smith!      nsize: 2
58*d8606c27SBarry Smith!      output_file: output/ex4_1.out
59*d8606c27SBarry Smith!
60*d8606c27SBarry Smith!TEST*/
61