Dear Petsc, Commit 051fd8986cf23c0556f4229193defe128fafa1f7 changed the C signature of the sorting routines and as a result I cannot compile against them anymore from Fortran. I tried to rebuild Petsc from scratch and did a make allfortranstubs but still to no avail.
I attach a simple fortran program that calls PetscSortInt and gives the following error at compile time. petsc_fortran_sort.F90:15:27: call PetscSortInt(N, x, ierr) 1 Error: Rank mismatch in argument ‘b’ at (1) (scalar and rank-1) Same applies for other routines such as PetscSortIntWithArrayPair... I am not sure where to find the FortranInterfaces and currently had no time to dig deeper. Please let me know if I have missed something stupid. Many thanks, Fabian P.S. Petsc was compiled with --with-fortran --with-fortran-interfaces --with-shared-libraries=1
include ${PETSC_DIR}/lib/petsc/conf/variables include ${PETSC_DIR}/lib/petsc/conf/rules run:: petsc_fortran_sort ./petsc_fortran_sort petsc_fortran_sort:: petsc_fortran_sort.F90 ${PETSC_FCOMPILE} -c petsc_fortran_sort.F90 ${FLINKER} petsc_fortran_sort.o -o petsc_fortran_sort ${PETSC_LIB} clean:: rm -rf *.o petsc_fortran_sort
program main #include "petsc/finclude/petsc.h" use petsc implicit none PetscErrorCode :: ierr PetscInt, parameter :: N=3 PetscInt :: x(N) call PetscInitialize(PETSC_NULL_CHARACTER,ierr) x = [3, 2, 1] call PetscSortInt(N, x, ierr) call PetscFinalize(ierr) end program