Ahh, you cannot use this type of construct if (x .eq. PETSC_NULL_XXX) then
anymore. Nor can you ever assign x = PETSC_NULL_XXXX Instead use if (PetscObjectIsNull(x)) then or if (.not. PetscObjectIsNull(x)) then Also all PETSc objects are now null when they are declared so just write Mat Kmat if (PetscObjectIsNull(Kmat)) then call MatCreate(PETSC_COMM_WORLD,Kmat,ierr) > etc... Barry > On Mar 24, 2025, at 11:14 AM, Sanjay Govindjee <s...@berkeley.edu> wrote: > > Hi Barry, > The call sequence happens across several routines. I believe it is as > follows: > > call PetscInitialize(PETSC_NULL_CHARACTER, ierr) > call MPI_Comm_rank(PETSC_COMM_WORLD, rank, ierr) > call MPI_Comm_size(PETSC_COMM_WORLD, ntasks, ierr) > Kmat = PETSC_NULL_MAT > > if(Kmat.eq.PETSC_NULL_MAT) then > call MatCreate(PETSC_COMM_WORLD,Kmat,ierr) > etc... > > Kmat itself is declared in a module > > module pfeapc > # include <petsc/finclude/petscksp.h> > use petscksp > implicit none > > Vec :: rhs, sol, xvec > Vec :: yvec, zvec > Vec :: Mdiag, Msqrt > Mat :: Kmat, Mmat, Pmat > KSP :: kspsol > end module pfeapc > > - > > On Mon, Mar 24, 2025 at 7:15 AM Barry Smith <bsm...@petsc.dev > <mailto:bsm...@petsc.dev>> wrote: >> >> How do you declare and initialize the matrix in usolve.F before calling >> MatCreate()? You should not initialize it with any value before the call. >> >> Barry >> >> >>> On Mar 23, 2025, at 11:10 PM, Sanjay Govindjee via petsc-users >>> <petsc-users@mcs.anl.gov <mailto:petsc-users@mcs.anl.gov>> wrote: >>> >>> Barry, >>> >>> I now have a compiled version of my code using the main branch. When I >>> run however I am getting an error in matcreate_( ) when I try to solve >>> (actually just set up the matrix). The console window reports >>> [0]PETSC ERROR: matcreate_() at >>> /Users/sg/petsc-3.22.4main/gnu/ftn/mat/utils/gcreatef.c:14 Cannot create >>> PETSC_NULL_XXX object >>> [3]PETSC ERROR: matcreate_() at >>> /Users/sg/petsc-3.22.4main/gnu/ftn/mat/utils/gcreatef.c:14 Cannot create >>> PETSC_NULL_XXX object >>> [2]PETSC ERROR: matcreate_() at >>> /Users/sg/petsc-3.22.4main/gnu/ftn/mat/utils/gcreatef.c:14 Cannot create >>> PETSC_NULL_XXX object >>> [1]PETSC ERROR: matcreate_() at >>> /Users/sg/petsc-3.22.4main/gnu/ftn/mat/utils/gcreatef.c:14 Cannot create >>> PETSC_NULL_XXX object >>> >>> The debugger windows all report (modulo the pid): >>> (lldb) process attach --pid 90952 >>> Process 90952 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. >>> frame >>> The debugger reports for the stack: >>> (lldb) thread backtrace >>> * thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP >>> * frame #0: 0x00007fff69d92746 libsystem_kernel.dylib`__semwait_signal + >>> 10 >>> frame #1: 0x00007fff69d15eea libsystem_c.dylib`nanosleep + 196 >>> frame #2: 0x00007fff69d15d52 libsystem_c.dylib`sleep + 41 >>> frame #3: 0x0000000111acb04c libpetsc.3.022.dylib`PetscSleep(s=10) at >>> psleep.c:48:5 >>> frame #4: 0x0000000111722961 libpetsc.3.022.dylib`PetscAttachDebugger >>> at adebug.c:458:5 >>> frame #5: 0x00000001162ec7c8 >>> libpetsc.3.022.dylib`PetscAttachDebuggerErrorHandler(comm=0x000000011788fde8, >>> line=14, fun="matcreate_", >>> file="/Users/sg/petsc-3.22.4main/gnu/ftn/mat/utils/gcreatef.c", num=62, >>> p=PETSC_ERROR_INITIAL, mess="Cannot create PETSC_NULL_XXX object", >>> ctx=0x0000000000000000) at adebug.c:522:9 >>> frame #6: 0x00000001162ecdb0 >>> libpetsc.3.022.dylib`PetscError(comm=0x000000011788fde8, line=14, >>> func="matcreate_", >>> file="/Users/sg/petsc-3.22.4main/gnu/ftn/mat/utils/gcreatef.c", n=62, >>> p=PETSC_ERROR_INITIAL, mess="Cannot create PETSC_NULL_XXX object") at >>> err.c:409:15 >>> frame #7: 0x000000011233ecad >>> libpetsc.3.022.dylib`matcreate_(a=0x00000001165fdc74, b=0x000000010fcde8c8, >>> ierr=0x00007ffee0460308) at gcreatef.c:14:3 >>> frame #8: 0x000000010f7cf072 feap`usolve_ at usolve.F:138:72 >>> frame #9: 0x000000010f942de2 feap`presol_ at presol.f:181:72 >>> frame #10: 0x000000010f8cb8d8 feap`pmacr1_ at pmacr1.f:555:72 >>> frame #11: 0x000000010f8c60ad feap`pmacr_ at pmacr.f:614:72 >>> frame #12: 0x000000010f86ae4f feap`pcontr_ at pcontr.f:1375:72 >>> frame #13: 0x000000010fc1215e feap`main at feap87.f:173:72 >>> frame #14: 0x00007fff69c4ecc9 libdyld.dylib`start + 1 >>> frame #15: 0x00007fff69c4ecc9 libdyld.dylib`start + 1 >>> >>> Here is a peek at the frame stack: >>> frame #3: 0x0000000105c7104c libpetsc.3.022.dylib`PetscSleep(s=10) at >>> psleep.c:48:5 >>> 45 >>> 46 #if defined(PETSC_HAVE_SLEEP) >>> 47 else >>> -> 48 sleep((int)s); >>> 49 #elif defined(PETSC_HAVE__SLEEP) && >>> defined(PETSC_HAVE__SLEEP_MILISEC) >>> 50 else _sleep((int)(s * 1000)); >>> 51 #elif defined(PETSC_HAVE__SLEEP) >>> (lldb) up >>> frame #4: 0x00000001058c8961 libpetsc.3.022.dylib`PetscAttachDebugger at >>> adebug.c:458:5 >>> 455 while (left > 0) left = PetscSleep(left) - 1; >>> 456 } >>> 457 #else >>> -> 458 PetscCall(PetscSleep(sleeptime)); >>> 459 #endif >>> 460 } >>> 461 #endif >>> (lldb) up >>> frame #5: 0x000000010a4927c8 >>> libpetsc.3.022.dylib`PetscAttachDebuggerErrorHandler(comm=0x000000010c7f1de8, >>> line=14, fun="matcreate_", >>> file="/Users/sg/petsc-3.22.4main/gnu/ftn/mat/utils/gcreatef.c", num=62, >>> p=PETSC_ERROR_INITIAL, mess="Cannot create PETSC_NULL_XXX object", >>> ctx=0x0000000000000000) at adebug.c:522:9 >>> 519 if (fun) (void)(*PetscErrorPrintf)("%s() at %s:%d %s\n", fun, >>> file, line, mess); >>> 520 else (void)(*PetscErrorPrintf)("%s:%d %s\n", file, line, mess); >>> 521 >>> -> 522 (void)PetscAttachDebugger(); >>> 523 abort(); /* call abort because don't want to kill other MPI >>> ranks that may successfully attach to debugger */ >>> 524 PetscFunctionReturn(PETSC_SUCCESS); >>> 525 } >>> (lldb) up >>> frame #6: 0x000000010a492db0 >>> libpetsc.3.022.dylib`PetscError(comm=0x000000010c7f1de8, line=14, >>> func="matcreate_", >>> file="/Users/sg/petsc-3.22.4main/gnu/ftn/mat/utils/gcreatef.c", n=62, >>> p=PETSC_ERROR_INITIAL, mess="Cannot create PETSC_NULL_XXX object") at >>> err.c:409:15 >>> 406 if (p == PETSC_ERROR_INITIAL && n != PETSC_ERR_MEMC) >>> (void)PetscMallocValidate(__LINE__, PETSC_FUNCTION_NAME, __FILE__); >>> 407 >>> 408 if (!eh) ierr = PetscTraceBackErrorHandler(comm, line, func, >>> file, n, p, lbuf, NULL); >>> -> 409 else ierr = (*eh->handler)(comm, line, func, file, n, p, lbuf, >>> eh->ctx); >>> 410 PetscStackClearTop; >>> 411 >>> 412 /* >>> (lldb) up >>> frame #7: 0x00000001064e4cad >>> libpetsc.3.022.dylib`matcreate_(a=0x000000010a7a3c74, b=0x0000000104e3e8c8, >>> ierr=0x00007ffeeb300308) at gcreatef.c:14:3 >>> 11 PETSC_EXTERN void matcreate_(MPI_Fint *a, Mat *b, PetscErrorCode >>> *ierr) >>> 12 { >>> 13 PetscBool null_b = !*(void**) b ? PETSC_TRUE : PETSC_FALSE; >>> -> 14 PETSC_FORTRAN_OBJECT_CREATE(b); >>> 15 CHKFORTRANNULLOBJECT(b); >>> 16 *ierr = MatCreate(MPI_Comm_f2c(*(a)), b); >>> 17 if (*ierr) return; >>> (lldb) up >>> frame #8: 0x000000010492f072 feap`usolve_ at usolve.F:138:72 >>> 135 onnz => mr(np(246):np(246)+ilist(2,246)-1) >>> 136 dnnz => mr(np(247):np(247)+ilist(2,247)-1) >>> 137 >>> -> 138 call MatCreate(PETSC_COMM_WORLD,Kmat,ierr) >>> 139 call MatSetSizes(Kmat,numpeq,numpeq,PETSC_DETERMINE, >>> 140 & PETSC_DETERMINE,ierr) >>> 141 if(pfeap_bcin) call MatSetBlockSize(Kmat,nsbk,ierr) >>> >>> -- >>> ------------------------------------------------------------------- >>> Sanjay Govindjee, PhD, PE >>> Horace, Dorothy, and Katherine Johnson Professor in Engineering >>> Distinguished Professor of Civil and Environmental Engineering >>> >>> 779 Davis Hall >>> University of California >>> Berkeley, CA 94720-1710 >>> >>> Voice: +1 510 642 6060 >>> FAX: +1 510 643 5264 >>> s...@berkeley.edu <mailto:s...@berkeley.edu> >>> https://urldefense.us/v3/__http://faculty.ce.berkeley.edu/sanjay__;!!G_uCfscf7eWS!ZHDW8jL12Lr8PLPn7bLgyqZVqpP9Rp02LSQkIX0wF3EELz8q2gWCvh_B99J_PthgpNAwtStFMUIyYVmLi4v8C-s$ >>> >>> <https://urldefense.us/v3/__http://faculty.ce.berkeley.edu/sanjay__;!!G_uCfscf7eWS!d3a3dMZHNHbpo2pUZUkrJ_sVG2VKWJenpA8SfSld478I1qG5iDDI_A5HMLojdmimArbDAt-E50BvvLJDGn-rKw$> >>> ------------------------------------------------------------------- >>> >>> Books: >>> >>> Introduction to Mechanics of Solid Materials >>> https://urldefense.us/v3/__https://global.oup.com/academic/product/introduction-to-mechanics-of-solid-materials-9780192866080__;!!G_uCfscf7eWS!ZHDW8jL12Lr8PLPn7bLgyqZVqpP9Rp02LSQkIX0wF3EELz8q2gWCvh_B99J_PthgpNAwtStFMUIyYVmLllDPxy8$ >>> >>> <https://urldefense.us/v3/__https://global.oup.com/academic/product/introduction-to-mechanics-of-solid-materials-9780192866080__;!!G_uCfscf7eWS!d3a3dMZHNHbpo2pUZUkrJ_sVG2VKWJenpA8SfSld478I1qG5iDDI_A5HMLojdmimArbDAt-E50BvvLK6eJ2xMA$> >>> >>> Continuum Mechanics of Solids >>> https://urldefense.us/v3/__https://global.oup.com/academic/product/continuum-mechanics-of-solids-9780198864721__;!!G_uCfscf7eWS!ZHDW8jL12Lr8PLPn7bLgyqZVqpP9Rp02LSQkIX0wF3EELz8q2gWCvh_B99J_PthgpNAwtStFMUIyYVmLm6eDVvU$ >>> >>> <https://urldefense.us/v3/__https://global.oup.com/academic/product/continuum-mechanics-of-solids-9780198864721__;!!G_uCfscf7eWS!d3a3dMZHNHbpo2pUZUkrJ_sVG2VKWJenpA8SfSld478I1qG5iDDI_A5HMLojdmimArbDAt-E50BvvLL3Y4t2YA$> >>> >>> Example Problems for Continuum Mechanics of Solids >>> https://urldefense.us/v3/__https://www.amazon.com/dp/1083047361/__;!!G_uCfscf7eWS!ZHDW8jL12Lr8PLPn7bLgyqZVqpP9Rp02LSQkIX0wF3EELz8q2gWCvh_B99J_PthgpNAwtStFMUIyYVmLTJV6Z8Y$ >>> >>> <https://urldefense.us/v3/__https://www.amazon.com/dp/1083047361/__;!!G_uCfscf7eWS!d3a3dMZHNHbpo2pUZUkrJ_sVG2VKWJenpA8SfSld478I1qG5iDDI_A5HMLojdmimArbDAt-E50BvvLIyAaK4Eg$> >>> >>> Engineering Mechanics of Deformable Solids >>> https://urldefense.us/v3/__https://www.amazon.com/dp/0199651647__;!!G_uCfscf7eWS!ZHDW8jL12Lr8PLPn7bLgyqZVqpP9Rp02LSQkIX0wF3EELz8q2gWCvh_B99J_PthgpNAwtStFMUIyYVmLNIcZt7U$ >>> >>> <https://urldefense.us/v3/__https://www.amazon.com/dp/0199651647__;!!G_uCfscf7eWS!d3a3dMZHNHbpo2pUZUkrJ_sVG2VKWJenpA8SfSld478I1qG5iDDI_A5HMLojdmimArbDAt-E50BvvLLf5ewSKQ$> >>> >>> Engineering Mechanics 3 (Dynamics) 2nd Edition >>> https://urldefense.us/v3/__http://www.amazon.com/dp/3642537111__;!!G_uCfscf7eWS!ZHDW8jL12Lr8PLPn7bLgyqZVqpP9Rp02LSQkIX0wF3EELz8q2gWCvh_B99J_PthgpNAwtStFMUIyYVmLye1DB-o$ >>> >>> <https://urldefense.us/v3/__http://www.amazon.com/dp/3642537111__;!!G_uCfscf7eWS!d3a3dMZHNHbpo2pUZUkrJ_sVG2VKWJenpA8SfSld478I1qG5iDDI_A5HMLojdmimArbDAt-E50BvvLIJH2xWfA$> >>> >>> Engineering Mechanics 3, Supplementary Problems: Dynamics >>> https://urldefense.us/v3/__http://www.amzn.com/B00SOXN8JU__;!!G_uCfscf7eWS!ZHDW8jL12Lr8PLPn7bLgyqZVqpP9Rp02LSQkIX0wF3EELz8q2gWCvh_B99J_PthgpNAwtStFMUIyYVmLwzv91ys$ >>> >>> <https://urldefense.us/v3/__http://www.amzn.com/B00SOXN8JU__;!!G_uCfscf7eWS!d3a3dMZHNHbpo2pUZUkrJ_sVG2VKWJenpA8SfSld478I1qG5iDDI_A5HMLojdmimArbDAt-E50BvvLJV9YZdRA$> >>> >>> ------------------------------------------------------------------- >>> NSF NHERI SimCenter >>> https://urldefense.us/v3/__https://simcenter.designsafe-ci.org/__;!!G_uCfscf7eWS!ZHDW8jL12Lr8PLPn7bLgyqZVqpP9Rp02LSQkIX0wF3EELz8q2gWCvh_B99J_PthgpNAwtStFMUIyYVmLZs-lDdQ$ >>> >>> <https://urldefense.us/v3/__https://simcenter.designsafe-ci.org/__;!!G_uCfscf7eWS!d3a3dMZHNHbpo2pUZUkrJ_sVG2VKWJenpA8SfSld478I1qG5iDDI_A5HMLojdmimArbDAt-E50BvvLJMVyG6GQ$> >>> ------------------------------------------------------------------- >>> >>