[petsc-users] Fortran interface -- low level access to petsc data

Satish Balay balay at mcs.anl.gov
Sun Oct 27 10:42:07 CDT 2013


On Sun, 27 Oct 2013, Matthew Knepley wrote:

> On Sun, Oct 27, 2013 at 6:16 AM, Hossein Talebi <talebi.hossein at gmail.com>wrote:
> 
> >  Hello All,
> >
> > I am trying to use petsc with Fortran. The initial mechanism to use petsc
> > with FORTRAN77 that works fine. However, I found the Fortran 90 interfaces
> > difficult to work with. The very first issue is one has to recompile petsc
> > with the Fortran compiler in case different to the one which was used to
> > create the Fortran Mod files.

Yes - one cannot mix fortran code compiled with 2 different compilers
- or 2 different version of the same compiler wrt modules.

But we generally recommend not mixing compilers   for C aswell as       this
can cause problems.

Also you don't need to use modules to get f90 interfaces. You can include
the f90 interface include files    directly in your code.

#incude "finclude/petsc.h90"

> > Also, we would still need to use C type
> > #include statements along with Fortran 'use' statement which is not so
> > optimal.

Even if you were to use f90 modules #include is unavoidable as we still
have other stuff in include files.

check include/finclude/petscsysdef.h  include/finclude/petscsys.h

> > Since Fortran 2003 offers great interface to C, did anyone try to write a
> > F03 interface to petsc? Using F03 features, we can have very low data
> > access to petsc database as well.
> >
> 
> F2003 support is fairly thin in the compiler world, and we have not had
> much call for it. We do gratefully accept contributions.

Currently we have the f90 interfaces [in include/finclude/ftn-auto/]
automatically generated by bfort tool from the C interface. So to
support F03 it would be ideal if there is such a tool. [or update
bfort to do it]

Satish


More information about the petsc-users mailing list