1*c4762a1bSJed Brown! 2*c4762a1bSJed Brown! Test Fortran binding of sort routines 3*c4762a1bSJed Brown! 4*c4762a1bSJed Brownprogram main 5*c4762a1bSJed Brown#include "petsc/finclude/petsc.h" 6*c4762a1bSJed Brown 7*c4762a1bSJed Brown use petsc 8*c4762a1bSJed Brown implicit none 9*c4762a1bSJed Brown 10*c4762a1bSJed Brown PetscErrorCode ierr 11*c4762a1bSJed Brown PetscInt,parameter:: N=3 12*c4762a1bSJed Brown PetscMPIInt,parameter:: mN=3 13*c4762a1bSJed Brown PetscInt x(N),y(N),z(N) 14*c4762a1bSJed Brown PetscMPIInt mx(N),my(N),mz(N) 15*c4762a1bSJed Brown PetscScalar s(N) 16*c4762a1bSJed Brown PetscReal r(N) 17*c4762a1bSJed Brown PetscMPIInt,parameter:: two=2, five=5, seven=7 18*c4762a1bSJed Brown 19*c4762a1bSJed Brown call PetscInitialize(PETSC_NULL_CHARACTER,ierr) 20*c4762a1bSJed Brown 21*c4762a1bSJed Brown x = [3, 2, 1] 22*c4762a1bSJed Brown y = [6, 5, 4] 23*c4762a1bSJed Brown z = [3, 5, 2] 24*c4762a1bSJed Brown mx = [five, seven, two] 25*c4762a1bSJed Brown my = [five, seven, two] 26*c4762a1bSJed Brown mz = [five, seven, two] 27*c4762a1bSJed Brown s = [1.0, 2.0, 3.0] 28*c4762a1bSJed Brown r = [1.0, 2.0, 3.0] 29*c4762a1bSJed Brown 30*c4762a1bSJed Brown call PetscSortInt(N,x,ierr) 31*c4762a1bSJed Brown call PetscSortIntWithArray(N,y,x,ierr) 32*c4762a1bSJed Brown call PetscSortIntWithArrayPair(N,x,y,z,ierr) 33*c4762a1bSJed Brown 34*c4762a1bSJed Brown call PetscSortMPIInt(N,mx,ierr) 35*c4762a1bSJed Brown call PetscSortMPIIntWithArray(mN,mx,my,ierr) 36*c4762a1bSJed Brown call PetscSortMPIIntWithIntArray(mN,mx,y,ierr) 37*c4762a1bSJed Brown 38*c4762a1bSJed Brown call PetscSortIntWithScalarArray(N,x,s,ierr) 39*c4762a1bSJed Brown 40*c4762a1bSJed Brown call PetscSortReal(N,r,ierr) 41*c4762a1bSJed Brown call PetscSortRealWithArrayInt(N,r,x,ierr) 42*c4762a1bSJed Brown 43*c4762a1bSJed Brown call PetscFinalize(ierr) 44*c4762a1bSJed Brownend program 45*c4762a1bSJed Brown 46*c4762a1bSJed Brown!/*TEST 47*c4762a1bSJed Brown! 48*c4762a1bSJed Brown! test: 49*c4762a1bSJed Brown! 50*c4762a1bSJed Brown!TEST*/ 51