Have a look at the list of changes - it is currently here https://urldefense.us/v3/__https://petsc.org/main/changes/dev/__;!!G_uCfscf7eWS!ZGeiat-1aoVqZo1IPI1kAEiFCl1GTP4Z65w0m3KJrZCopfOFNwbrmOPmjLGwC4J7Tw79C-8ozaNsXI05qkXz8Y18$ until the new version is released. See the last section "Fortran".
The functions ending in "F90" have been renamed, just remove the "F90" suffix. Regarding the info-related errors, a workaround is to append %v, for instance mal = info(MAT_INFO_MALLOCS%v) But Barry may want to provide a better fix for this. Jose > El 23 mar 2025, a las 8:42, Jose E. Roman via petsc-users > <petsc-users@mcs.anl.gov> escribió: > > The Fortran interfaces for those functions are generated correctly, see > $PETSC_ARCH/ftn/mat/petscmat.h90 > > For instance: > > interface MatMPIBAIJSetPreallocation > subroutine MatMPIBAIJSetPreallocation(a,b,c,d,e,f, z) > import tMat > Mat :: a > PetscInt :: b > PetscInt :: c > PetscInt :: d(*) > PetscInt :: e > PetscInt :: f(*) > PetscErrorCode z > end subroutine > end interface > > The compiler message is probably due to the type of an argument not matching > the expected one. In particular, if you are passing NULL in one of the array > arguments, you should use PETSC_NULL_INTEGER_ARRAY and not PETSC_NULL_INTEGER. > > Jose > > >> El 23 mar 2025, a las 8:25, Sanjay Govindjee via petsc-users >> <petsc-users@mcs.anl.gov> escribió: >> >> Small update. I managed to eliminate all the errors associated with >> PetscViewer and below (it had to do with the fact that I had not yet built a >> module that was needed). The errors related to the preallocation routines >> still persists. >> -sanjay >> >> On 3/23/25 12:19 AM, Sanjay Govindjee wrote: >>> Hi Barry, >>> I have moved to main and rebuilt the PETSc libraries etc. Right now I am >>> having trouble just getting my source code to compile. Plenty of >>> subroutines with PETSc calls compile but a few are throwing errors and >>> killing my compile. I suspect there will be more but if I can figure these >>> hopefully I can debug the ones that will follow. >>> -sanjay >>> Error: There is no specific subroutine for the generic >>> 'matmpibaijsetpreallocation' at (1) >>> upremas.F:68:72: >>> >>> 68 | & ierr) >>> | >>> 1 >>> Error: There is no specific subroutine for the generic >>> 'matseqbaijsetpreallocation' at (1) >>> upremas.F:74:72: >>> >>> 74 | & ierr) >>> | >>> 1 >>> Error: There is no specific subroutine for the generic >>> 'matmpiaijsetpreallocation' at (1) >>> upremas.F:77:72: >>> >>> 77 | & ierr) >>> | >>> 1 >>> Error: There is no specific subroutine for the generic >>> 'matseqaijsetpreallocation' at (1) >>> >>> parkv.F:58:25: >>> >>> 58 | PetscViewer Y_view >>> | 1 >>> Error: Type name 'tpetscviewer' at (1) is ambiguous >>> parkv.F:69:9: >>> >>> 69 | endif >>> | 1 >>> Error: Expecting END SUBROUTINE statement at (1) >>> parkv.F:72:9: >>> >>> 72 | endif >>> | 1 >>> Error: Expecting END SUBROUTINE statement at (1) >>> parkv.F:91:66: >>> >>> 91 | call PetscViewerASCIIOpen(PETSC_COMM_WORLD,"yvec.m",Y_view, >>> | 1 >>> Error: Symbol 'y_view' at (1) has no IMPLICIT type; did you mean 'yvec'? >>> parkv.F:65:72: >>> >>> 65 | call VecCreate (PETSC_COMM_WORLD, xvec, ierr) >>> | >>> 1 >>> Error: There is no specific subroutine for the generic 'veccreate' at (1) >>> parkv.F:67:72: >>> >>> 67 | call VecSetFromOptions(xvec, ierr) >>> | >>> 1 >>> Error: There is no specific subroutine for the generic 'vecsetfromoptions' >>> at (1) >>> parkv.F:68:72: >>> >>> 68 | call VecDuplicate (xvec, yvec, ierr) >>> | >>> 1 >>> Error: There is no specific subroutine for the generic 'vecduplicate' at (1) >>> parkv.F:71:72: >>> >>> 71 | call VecDuplicate (xvec, yvec, ierr) >>> | >>> 1 >>> Error: There is no specific subroutine for the generic 'vecduplicate' at (1) >>> parkv.F:85:72: >>> >>> 85 | call VecAssemblyBegin(xvec, ierr) >>> | >>> 1 >>> Error: There is no specific subroutine for the generic 'vecassemblybegin' >>> at (1) >>> parkv.F:86:72: >>> >>> 86 | call VecAssemblyEnd (xvec, ierr) >>> | >>> 1 >>> Error: There is no specific subroutine for the generic 'vecassemblyend' at >>> (1) >>> parkv.F:88:72: >>> >>> 88 | call MatMult (Kmat, xvec, yvec, ierr) >>> | >>> 1 >>> Error: There is no specific subroutine for the generic 'matmult' at (1) >>> parkv.F:101:72: >>> >>> 101 | call VecGetOwnershipRange(yvec, starti, endi, ierr) >>> | >>> 1 >>> Error: There is no specific subroutine for the generic >>> 'vecgetownershiprange' at (1) >>> >>> >>> - >>> >>> >>> On 3/21/25 7:17 AM, Barry Smith wrote: >>>> >>>> I have just pushed a major update to the Fortran interface to the main >>>> PETSc git branch. Could you please try to work with main (to become >>>> release in a couple of weeks) with your Fortran code as we debug the >>>> problem? This will save you a lot of work and hopefully make the debugging >>>> more straightforward. >>>> >>>> You can send the same output with the debugger if it crashes in the >>>> main branch and I can try to track down what is going wrong. >>>> >>>> Barry >>>> >>>> >>>> >>>> >>>>> On Mar 21, 2025, at 12:37 AM, Sanjay Govindjee via petsc-users >>>>> <petsc-users@mcs.anl.gov> wrote: >>>>> >>>>> I am trying to upgrade my code to PETSc 3.22.4 (the code was last updated >>>>> to 3.19.4 or perhaps 3.18.1, I've lost track). I've been using this code >>>>> with PETSc for over 20 years. >>>>> >>>>> To get my code to compile and link during this update, I only need to >>>>> make two changes; one was to use PetscViewerPushFormat instead of >>>>> PetscViewerSetFormat and the other was to use PETSC_NULL_INTEGER_ARRAY in >>>>> a spot or two. >>>>> >>>>> When I run the code however, I am getting an error very early on during a >>>>> call to MatCreate near the beginning of the code. The screen output says: >>>>> [3]PETSC ERROR: matcreate_() at >>>>> /Users/sg/petsc-3.22.4/gnug/src/mat/utils/ftn-auto/gcreatef.c:101 Cannot >>>>> create PETSC_NULL_XXX object >>>>> [0]PETSC ERROR: matcreate_() at >>>>> /Users/sg/petsc-3.22.4/gnug/src/mat/utils/ftn-auto/gcreatef.c:101 Cannot >>>>> create PETSC_NULL_XXX object >>>>> [1]PETSC ERROR: matcreate_() at >>>>> /Users/sg/petsc-3.22.4/gnug/src/mat/utils/ftn-auto/gcreatef.c:101 Cannot >>>>> create PETSC_NULL_XXX object >>>>> [2]PETSC ERROR: matcreate_() at >>>>> /Users/sg/petsc-3.22.4/gnug/src/mat/utils/ftn-auto/gcreatef.c:101 Cannot >>>>> create PETSC_NULL_XXX object >>>>> I have a 4 processor run going. I am running with >>>>> -on_error_attach_debugger but the debugger is giving me cryptic (at least >>>>> to me) output (the same for all 4 processes modulo the PID). Stack >>>>> traces seem to be unavailable :( >>>>> lldb -p 71963 >>>>> (lldb) process attach --pid 71963 >>>>> Process 71963 stopped >>>>> * thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP >>>>> frame #0: 0x00007fff69d92746 libsystem_kernel.dylib`__semwait_signal + >>>>> 10 >>>>> libsystem_kernel.dylib`__semwait_signal: >>>>> -> 0x7fff69d92746 <+10>: jae 0x7fff69d92750 ; <+20> >>>>> 0x7fff69d92748 <+12>: movq %rax, %rdi >>>>> 0x7fff69d9274b <+15>: jmp 0x7fff69d9121d ; cerror >>>>> 0x7fff69d92750 <+20>: retq >>>>> Target 0: (feap) stopped. >>>>> >>>>> Executable module set to "/Users/sg/Feap/ver87/parfeap/feap". >>>>> Architecture set to: x86_64h-apple-macosx-. >>>>> Does anyone have any hints as to what may be going on? Note the program >>>>> starts normally and i can do stuff with the interactive interface for the >>>>> code -- even plotting the mesh etc. so I believe the input data has been >>>>> read in correctly. The crash only occurs when I initiate the formation >>>>> of the matrix. >>>>> >>>>> I am attaching the >>>>> /Users/sg/petsc-3.22.4/gnug/src/mat/utils/ftn-auto/gcreatef.c file in >>>>> case that offers some insight. >>>>> >>>>> Note, I have been >>>>> -sanjay >>>>> -- >>>>> >>>>> <gcreatef.c> >>>> >>> >> >