[petsc-dev] PETSC_COMM_SELF == 0

Satish Balay balay at mcs.anl.gov
Tue Mar 31 12:32:21 CDT 2015


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 <bsmith at mcs.anl.gov> 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 <knepley at gmail.com> wrote:
> > >
> > > On Tue, Mar 31, 2015 at 10:13 AM, Mark Adams <mfadams at lbl.gov> 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 <knepley at gmail.com>
> > wrote:
> > > On Tue, Mar 31, 2015 at 5:44 AM, Mark Adams <mfadams at lbl.gov> 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
> >
> >
> 




More information about the petsc-dev mailing list