What is mr(np(246))? It should be an array, not a single entry of an array. As indicated in the list of changes, in some cases you can use the syntax [z] instead of z to represent an array of single value z.
> El 23 mar 2025, a las 9:24, Sanjay Govindjee <s...@berkeley.edu> escribió: > > Jose, > I've tried lots of combinations but I still get the same error. I think > the signatures are all correct. I've attached the routine in case you see > something obvious. If not I will try to make a standalone program that > generates the same compile error. > upremas.F:66:72: > > 66 | & ierr) > | > 1 > Error: There is no specific subroutine for the generic > 'matmpibaijsetpreallocation' at (1) > upremas.F:69:72: > > 69 | & ierr) > | > 1 > Error: There is no specific subroutine for the generic > 'matseqbaijsetpreallocation' at (1) > upremas.F:75:72: > > 75 | & ierr) > | > 1 > Error: There is no specific subroutine for the generic > 'matmpiaijsetpreallocation' at (1) > upremas.F:78:72: > > 78 | & ierr) > | > 1 > Error: There is no specific subroutine for the generic > 'matseqaijsetpreallocation' at (1) > > -- > > > On 3/23/25 1:09 AM, Jose E. Roman wrote: >> "use petscmat" will use those definitions. >> >> As I said, you probably have mismatching arguments. For instance >> call MatSeqAIJSetPreallocation(Mmat, >> & PETSC_NULL_INTEGER_ARRAY,mr(np(246)), >> & ierr) >> The second argument is a PetscInt so PETSC_NULL_INTEGER_ARRAY is wrong, it >> should be PETSC_NULL_INTEGER. >> >> Now the compiler will help you fix this kind of errors, which would go >> unnoticed before. >> >> Jose >> >> >> >> >>> El 23 mar 2025, a las 9:02, Sanjay Govindjee <s...@berkeley.edu> escribió: >>> >>> Jose, >>> What module should I be using to load petscmat.h90? >>> -sanjay >>> >>> -- >>> >>> On 3/23/25 12:54 AM, Jose E. Roman wrote: >>> >>>> Have a look at the list of changes - it is currently here >>>> https://urldefense.us/v3/__https://petsc.org/main/changes/dev/__;!!G_uCfscf7eWS!Z7Z3K4IuDsP7f27a6RlCAoWVwvNV0Tfis4_iqdTxxBar71pu-yzwviBPbf7nO9r0Tpv1IC5GMYqm_Cju5tqLwHgn$ >>>> 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> >>>>>>>>> >>> >> > > <upremas.F>