Humm, that is what I see (appended). I put a print in PETSC and see this but I still have PETSC_COMM_SELF==0 in my fortran code.
Strange, the compile lines look close enough and the example ex61f sees a good PETSC_COMM_SELF ... Mark (gdb) where #0 PetscInitializeFortran () at /Users/markadams/Codes/petsc/src/sys/objects/ftn-custom/zstartf.c:48 #1 0x000000010027d985 in petscinitialize_ (filename=0x101eaab40 "", ierr=0x7fff5fbff18c, len=80) at /Users/markadams/Codes/petsc/src/sys/objects/ftn-custom/zstart.c:398 #2 0x00000001000015b2 in tpetsc () at ex61f.F90:111 #3 0x0000000100002a3d in main (argc=1, argv=0x7fff5fbff968 "/Users/markadams/Codes/petsc/src/ksp/ksp/examples/tutorials/ex61f") at ex61f.F90:60 Current language: auto; currently minimal (gdb) n 50 if (PETSC_COMM_WORLD) c1 = MPI_Comm_c2f(PETSC_COMM_WORLD); (gdb) p c1 $1 = 0 (gdb) n 51 c2 = MPI_Comm_c2f(PETSC_COMM_SELF); (gdb) p c1 $2 = 1140850688 (gdb) On Tue, Mar 31, 2015 at 1:32 PM, Satish Balay <[email protected]> wrote: > 1. Check if this is reproduceable with a petsc example for your build. > > 2. if you run in the debugger - and place a breakpoint in > PetscInitializeFortran() - you should see the following trace. > > (gdb) where > #0 PetscInitializeFortran () at > /home/balay/petsc/src/sys/objects/ftn-custom/zstartf.c:48 > #1 0x00007ffff66c396d in petscinitialize_ (filename=0x603640 > <petscfortran1_> "", > ierr=0x7fffffffe0bc, len=80) at > /home/balay/petsc/src/sys/objects/ftn-custom/zstart.c:398 > #2 0x0000000000401a42 in MAIN__ () at ex2f.F:102 > (gdb) n > 50 if (PETSC_COMM_WORLD) c1 = MPI_Comm_c2f(PETSC_COMM_WORLD); > (gdb) p c1 > $1 = 0 > (gdb) n > 51 c2 = MPI_Comm_c2f(PETSC_COMM_SELF); > (gdb) p c1 > $2 = 1140850688 > > > Satish > > On Tue, 31 Mar 2015, Mark Adams wrote: > > > I'm not sure where we are. My code works on Edison but fails on OSX. > > Should I call PetscInitializeFortran? I do not have a C main. > > > > > > On Tue, Mar 31, 2015 at 12:14 PM, Barry Smith <[email protected]> > wrote: > > > > > > > > PetscErrorCode PetscInitializeFortran(void) > > > { > > > MPI_Fint c1=0,c2=0; > > > > > > if (PETSC_COMM_WORLD) c1 = MPI_Comm_c2f(PETSC_COMM_WORLD); > > > c2 = MPI_Comm_c2f(PETSC_COMM_SELF); > > > petscsetcommonblock_(&c1,&c2); > > > > > > Note that this routine is called automatically by the Fortran > > > petscinitialize function. > > > > > > Barry > > > > > > > On Mar 31, 2015, at 10:19 AM, Matthew Knepley <[email protected]> > wrote: > > > > > > > > On Tue, Mar 31, 2015 at 10:13 AM, Mark Adams <[email protected]> > wrote: > > > > No, I don't have a C main program (like the doc says). > > > > > > > > I can see COMM_WORLD set in the Fortran initialize wrapper, but > where is > > > COMM_SELF set? > > > > > > > > MAtt > > > > > > > > On Tue, Mar 31, 2015 at 11:05 AM, Matthew Knepley <[email protected] > > > > > wrote: > > > > On Tue, Mar 31, 2015 at 5:44 AM, Mark Adams <[email protected]> wrote: > > > > I'm finding that my fortran code on OSX has PETSC_COMM_SELF == 0. > > > > > > > > I can not find where PETSC_COMM_SELF is created. > > > > > > > > Its set in PetscInitializeFortran(). Did you call that? > > > > > > > > Matt > > > > > > > > > > > > Mark > > > > > > > > > > > > > > > > -- > > > > What most experimenters take for granted before they begin their > > > experiments is infinitely more interesting than any results to which > their > > > experiments lead. > > > > -- Norbert Wiener > > > > > > > > > > > > > > > > > > > > -- > > > > What most experimenters take for granted before they begin their > > > experiments is infinitely more interesting than any results to which > their > > > experiments lead. > > > > -- Norbert Wiener > > > > > > > > > >
