Actual source code: ex4f.F90

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

  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:       PetscCallA(PetscInitialize(ierr))
 21:       PetscCallMPIA(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:       PetscCallA(AOCreateBasic(PETSC_COMM_WORLD, nlocal, localvert,PETSC_NULL_INTEGER,ao,ierr))
 34:       PetscCallA(AODestroy(ao,ierr))

 36: !     Test AOCreateMemoryScalable()
 37:       PetscCallA(AOCreateMemoryScalable(PETSC_COMM_WORLD, nlocal, localvert,PETSC_NULL_INTEGER,ao,ierr))
 38:       PetscCallA(AODestroy(ao,ierr))

 40:       PetscCallA(AOCreate(PETSC_COMM_WORLD,ao,ierr))
 41:       PetscCallA(ISCreateStride(PETSC_COMM_WORLD,one,zero,one,is,ierr))
 42:       PetscCallA(AOSetIS(ao,is,is,ierr))
 43:       PetscCallA(AOSetType(ao,AOMEMORYSCALABLE,ierr))
 44:       PetscCallA(ISDestroy(is,ierr))
 45:       PetscCallA(AODestroy(ao,ierr))

 47:       PetscCallA(PetscFinalize(ierr))
 48:       end

 50: !/*TEST
 51: !
 52: !   test:
 53: !     output_file: output/ex4_1.out
 54: !
 55: !   test:
 56: !      suffix: 2
 57: !      nsize: 2
 58: !      output_file: output/ex4_1.out
 59: !
 60: !TEST*/