xref: /petsc/src/sys/tests/ex49f.F90 (revision c4762a1b19cd2af06abeed90e8f9d34fb975dd94)
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