[petsc-dev] Fortran interface problem in v.3.10.2
Martin Diehl
m.diehl at mpie.de
Thu Oct 25 01:44:30 CDT 2018
Hi,
again some news on this topic.
First, the Intel Fortran engineer revoked his statement regarding the
standard, so derived types with type-bound procedures cannot be passed
to type(*) dummy arguments.
There is another solution, but that seems to require explicit type
casting. I'll have a closer look on it in the next days.
Currently, I cannot think of a good solution without any limitations.
regards,
Martin
On Tue, 2018-10-23 at 18:53 +0200, Martin Diehl wrote:
> Hi,
>
> some more information on this topic.
>
> First, Adrians code is not wrong. The statement on the IBM homepage
> regarding type(*) and type-bound procedures is according to my
> current
> understanding simply not true.
> However, type(*) is a feature of Fortran 2018, a standard that is not
> even published.
>
> My information mainly comes from the Intel developer zone, see
>
>
https://software.intel.com/en-us/forums/intel-fortran-compiler-for-linux-and-mac-os-x/topic/798744
> and I have also informed the GCC/gfortran developers,
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87707.
> I hope to get some more information in the next day and will keep you
> updated.
>
> best regards,
> Martin
>
>
>
> On Tue, 2018-10-23 at 17:25 +1300, Adrian Croucher wrote:
> > hi
> >
> > Thanks to you both for looking into this.
> >
> > It sounds like if we want type checking in the PETSc Fortran
> > interfaces,
> > which I agree is a useful thing, then no compilers are going to
> > support
> > passing in these derived types with type-bound procedures via
> > type(*)
> > interfaces anytime soon.
> >
> > In my case the derived-type objects I'm passing in to
> > SNESSetConvergenceTest() don't really need to have type-bound
> > procedures
> > (the derived type doesn't get subclassed, and there aren't really
> > any
> > data-hiding considerations), it's mostly just a style thing so that
> > they
> > work similarly to other derived types in the code. So I could
> > fairly
> > easily just turn the type-bound procedures into ordinary
> > subroutines,
> > not bound to any derived type.
> >
> > That might be the simplest fix for me. I suppose this issue could
> > still
> > affect other people, but maybe not a lot of people are using PETSc
> > with
> > F2003.
> >
> > - Adrian
> >
> > On 23/10/18 2:55 AM, Martin Diehl wrote:
> > > > I'm sorry, I don't understand. Are you saying that the
> > > > example
> > > > code is not correct Fortran?
> > >
> > > In the case that your interface has a type(*) argument, it is not
> > > valid
> > > Fortran because 'context_type' contains the type-bound procedure
> > > 'context_init'. That is why the GNU compiler complains when the
> > > interface exists. Apparently, without the interface it accepts
> > > it,
> > > so
> > > not having an interface would be a solution in that case.
> > > However,
> > > the
> > > Intel compiler will fail during linking with or without
> > > interface,
> > > so
> > > it does not seem to be a general solution.
> > > At the moment, I believe that one simply has to live with the
> > > limitations that type(*) imposes on the data that can be passed
> > > to
> > > void*. To clarify this, I opened a thread in the Intel developer
> > > zone
> > > and will keep you updated
> > >
> > >
>
>
https://software.intel.com/en-us/forums/intel-fortran-compiler-for-linux-and-mac-os-x/topic/798744
> > >
--
-----------------------------------------------
Max-Planck-Institut für Eisenforschung GmbH
Max-Planck-Straße 1
D-40237 Düsseldorf
Handelsregister B 2533
Amtsgericht Düsseldorf
Geschäftsführung
Prof. Dr. Gerhard Dehm
Prof. Dr. Jörg Neugebauer
Prof. Dr. Dierk Raabe
Dr. Kai de Weldige
Ust.-Id.-Nr.: DE 11 93 58 514
Steuernummer: 105 5891 1000
-------------------------------------------------
Please consider that invitations and e-mails of our institute are
only valid if they end with …@mpie.de.
If you are not sure of the validity please contact rco at mpie.de
Bitte beachten Sie, dass Einladungen zu Veranstaltungen und E-Mails
aus unserem Haus nur mit der Endung …@mpie.de gültig sind.
In Zweifelsfällen wenden Sie sich bitte an rco at mpie.de
-------------------------------------------------
Max-Planck-Institut für Eisenforschung GmbH
Max-Planck-Straße 1
D-40237 Düsseldorf
Handelsregister B 2533
Amtsgericht Düsseldorf
Geschäftsführung
Prof. Dr. Gerhard Dehm
Prof. Dr. Jörg Neugebauer
Prof. Dr. Dierk Raabe
Dr. Kai de Weldige
Ust.-Id.-Nr.: DE 11 93 58 514
Steuernummer: 105 5891 1000
Please consider that invitations and e-mails of our institute are
only valid if they end with …@mpie.de.
If you are not sure of the validity please contact rco at mpie.de
Bitte beachten Sie, dass Einladungen zu Veranstaltungen und E-Mails
aus unserem Haus nur mit der Endung …@mpie.de gültig sind.
In Zweifelsfällen wenden Sie sich bitte an rco at mpie.de
-------------------------------------------------
More information about the petsc-dev
mailing list