implicit none prevents using undeclared variables. Is there a way to avoid calling any functions/suboutines that don't have an interface declared in a module? That would have found this problem.
Barry > On Jun 22, 2025, at 8:06 PM, Randall Mackie <rlmackie...@gmail.com> wrote: > > Thanks Barry! > > > >> On Jun 22, 2025, at 4:50 PM, Barry Smith <bsm...@petsc.dev> wrote: >> >> >> I'm sorry for not getting back to you sooner. I have attached a working >> version of your code. Since you were missing >> >> use petscdmcomposite >> >> the compiler could not generate the correct call to DMCompositeGetGlobalISs() >> >> Barry >> >> <test.F90> >> >> >>> On Jun 17, 2025, at 6:39 PM, Randall Mackie <rlmackie...@gmail.com> wrote: >>> >>> Dear Petsc users - >>> >>> I am trying to upgrade my code to petsc-3.23 (from 3.19), and I seem to >>> have run into a problem with DMCompositeGetGlobalISs. >>> >>> The example program listed on the man page for DMCompositeGetGlobalISs, >>> https://urldefense.us/v3/__https://petsc.org/release/src/snes/tutorials/ex73f90t.F90.html__;!!G_uCfscf7eWS!f0L9a3sH41EKMm27K03wzM-zl9LjhI-XIHKVLQdkjm5v_R98tKT8zlw6goKrNPjT8PommbiIyWOxn1xaWVXMKjM$ >>> >>> <https://urldefense.us/v3/__https://petsc.org/release/src/snes/tutorials/ex73f90t.F90.html__;!!G_uCfscf7eWS!eBXtwfVGvvppsy1_lM2f-Z61YMsb439eVY8V9SYWa0x6VjvTiJ-rXAnhEbi08ogvqtF3s2AZJt4pk9gNeM9yAjmHvA$>, >>> seems to indicate that a call to DMCompositeGetGlobalISs does not need to >>> allocate the IS pointer and you just pass it directly to >>> DMCompositeGetGlobalISs. >>> >>> If I compile and run the simple attached test program (say on 2 processes), >>> I get the following error: >>> >>> [0]PETSC ERROR: >>> ------------------------------------------------------------------------ >>> [0]PETSC ERROR: Caught signal number 11 SEGV: Segmentation Violation, >>> probably memory access out of range >>> [0]PETSC ERROR: Try option -start_in_debugger or -on_error_attach_debugger >>> [0]PETSC ERROR: or see >>> https://urldefense.us/v3/__https://petsc.org/release/faq/*valgrind__;Iw!!G_uCfscf7eWS!f0L9a3sH41EKMm27K03wzM-zl9LjhI-XIHKVLQdkjm5v_R98tKT8zlw6goKrNPjT8PommbiIyWOxn1xa4KzHtdM$ >>> >>> <https://urldefense.us/v3/__https://petsc.org/release/faq/*valgrind__;Iw!!G_uCfscf7eWS!eBXtwfVGvvppsy1_lM2f-Z61YMsb439eVY8V9SYWa0x6VjvTiJ-rXAnhEbi08ogvqtF3s2AZJt4pk9gNeM-7MIW3KA$> >>> and >>> https://urldefense.us/v3/__https://petsc.org/release/faq/__;!!G_uCfscf7eWS!f0L9a3sH41EKMm27K03wzM-zl9LjhI-XIHKVLQdkjm5v_R98tKT8zlw6goKrNPjT8PommbiIyWOxn1xaB1ieH9I$ >>> >>> <https://urldefense.us/v3/__https://petsc.org/release/faq/__;!!G_uCfscf7eWS!eBXtwfVGvvppsy1_lM2f-Z61YMsb439eVY8V9SYWa0x6VjvTiJ-rXAnhEbi08ogvqtF3s2AZJt4pk9gNeM_a7QtraQ$> >>> [0]PETSC ERROR: --------------------- Stack Frames >>> ------------------------------------ >>> [0]PETSC ERROR: The line numbers in the error traceback may not be exact. >>> [0]PETSC ERROR: #1 F90Array1dCreate() at >>> /home/rmackie/PETSc/petsc-3.23.3/src/sys/ftn-custom/f90_cwrap.c:123 >>> application called MPI_Abort(MPI_COMM_WORLD, 59) - process 0 >>> >>> >>> If I uncomment the line to allocate the pointer, I get a very long >>> traceback with lots of error messages. >>> >>> What is the correct way to use DMCompositeGetGlobalISs in Fortran? With or >>> without the pointer allocation, and what is the right way to do this >>> without the errors it seems to generate? >>> >>> Thanks, >>> >>> Randy Mackie >>> >>> <test.F90> >> >