[petsc-users] upgrading to 3.22.4

Sanjay Govindjee s_g at berkeley.edu
Sun Mar 23 02:46:17 CDT 2025


For what its worth I have encountered a few more compile errors (and if 
I exclude the failing-to-compile routines some link errors).

The link errors are:

    Undefined symbols for architecture x86_64:
       "_vecgetarrayreadf90_"
      "_vecrestorearrayreadf90_",

The other compile errors are in a routine that starts with

    #     include   <petsc/finclude/petscksp.h>
            use                       petscksp
            implicit   none

The compile errors are as follows (It seems that some of the 
declarations have moved around or have changed).

    usolve.F:86:39:

        86 |       real*8         info(MAT_INFO_SIZE), nza,nzr,mal
           |                                       1
    Error: Symbol 'mat_info_size' at (1) has no IMPLICIT type; did you
    mean 'mpi_win_size'?
    usolve.F:186:39:

       186 |             mal = info(MAT_INFO_MALLOCS)
           |                                       1
    Error: Symbol 'mat_info_mallocs' at (1) has no IMPLICIT type; did
    you mean 'mpi_info_null'?
    usolve.F:184:44:

       184 |             nza = info(MAT_INFO_NZ_ALLOCATED)
           |                                            1
    Error: Symbol 'mat_info_nz_allocated' at (1) has no IMPLICIT type;
    did you mean 'mpi_win_flavor_allocate'?
    usolve.F:185:39:

       185 |             nzr = info(MAT_INFO_NZ_USED)
           |                                       1
    Error: Symbol 'mat_info_nz_used' at (1) has no IMPLICIT type; did
    you mean 'mpi_info_null'?
    usolve.F:144:72:


       183 |             call MatGetInfo(Kmat, MAT_LOCAL, info, ierr)
    | 1
    Error: There is no specific subroutine for the generic 'matgetinfo'
    at (1)
    usolve.F:306:72:

       306 |                 call
    PCSetCoordinates(pc,ndm,numpn,hr(np(43)),ierr)
    | 1
    Error: There is no specific subroutine for the generic
    'pcsetcoordinates' at (1)
    usolve.F:339:15:

       339 |             if(reason.gt.0 .and. echo) then
           |               1
    Error: Operands of comparison operator '.gt.' at (1) are
    TYPE(ekspconvergedreason)/INTEGER(4)
    usolve.F:341:52:

       341 |               write(  *,*) ' CONVERGENCE: ',creason(reason),
           |                                                    1
    Error: Array index at (1) must be of INTEGER type, found DERIVED
    usolve.F:343:52:

       343 |               write(iow,*) ' CONVERGENCE: ',creason(reason),
           |                                                    1
    Error: Array index at (1) must be of INTEGER type, found DERIVED
    usolve.F:345:19:

       345 |             elseif(reason.lt.0) then
           |                   1
    Error: Operands of comparison operator '.lt.' at (1) are
    TYPE(ekspconvergedreason)/INTEGER(4)
    usolve.F:346:62:

       346 |               write(  *,*) ' NO CONVERGENCE REASON:
    ',nreason(-reason)
    |                                                              1
    Error: Operand of unary numeric operator '-' at (1) is UNKNOWN
    usolve.F:347:62:

       347 |               write(iow,*) ' NO CONVERGENCE REASON:
    ',nreason(-reason)
    |                                                              1
    Error: Operand of unary numeric operator '-' at (1) is UNKNOWN

-

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 at 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>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20250323/4d4b757d/attachment-0001.html>


More information about the petsc-users mailing list