"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!b_yWT8KGbtscIdtldXg_71nJH-XvgG0xTlfqji-o_iqd6MlxmWYToCAnX5uBF5IuforBLSsy8Py0Uu4hJVXw8JnO$
>>   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>
> 

Reply via email to