comp.lang.ada
 help / color / mirror / Atom feed
From: Claude SIMON <claude.simon@setra.fr>
Subject: Re: Interface Ada95 => Fortran90
Date: Thu, 22 Nov 2001 19:25:33 +0100
Date: 2001-11-22T18:22:50+00:00	[thread overview]
Message-ID: <3BFD431C.EE183018@setra.fr> (raw)
In-Reply-To: m50qvt0scsemc0entov7sitss1jg05gu7n@4ax.com

You have two solutions :

 - first you try to map all your data types from Fortran90 to Ada.
    For this work you need the data representation from each compiler. It is
not
    allways possible to do because some types are not compatibles, for
example :
    Ada discrimated types have no Fortran equivalent.
   You must end with a thick binding to map Ada types to Fortran 90 types.
   The result is not portable and you must redo the binding for each couple
of
   compilers.

 - second you make a thick binding to map Ada types to Fortran 77 types
   on one side and Fortran 77 to Fortran 90 on the other side.
   You must have a to side binding but it is more portable.

With Fortran 2000 the binding will be between a two side binding with an
intermediate C maping. Not so far the second solution.

We have the same problem at work with mixing Fortran 77, Fortran 90, Ada and
C.

Claude Simon


Dan Nagle a �crit :

> Hello,
>
> Most modern Fortran compilers document their pointer & allocatable
> structure, so RTFM for your target compiler.
>
> Try using the "sequence" keyword in the derived type definition
> on the Fortran side, if you can.  It causes the compiler to lay out
> in memory the derived type in the same order as the components are
> declared.  Otherwise, the Fortran compiler is free to reorder
> for alignment or other purposes.
>
> Check for f90/95 compilers which support the Fortran 2000
> C Interoperability features.  (Judging from traffic in the Fortran
> newsgroups & mailing lists, this is one of the most requested
> features so it may be one of the first to be implemented.)
> I know of none which are available now, but some vendors
> have been hinting RSN.
>
> I'm told by some members of the Fortran C Interoperability
> subcommittee (of J3) that if the Fortran definition specify
> that the derived type (or procedure) is to interoperate with C,
> and the other language also specifies that its objects are to
> interoperate with C, that there's a high probability of both
> non-C languages being able to meet in the middle.  The most
> important parameter here is both compilers targeting the same
> C compiler.
>
> --
> Cheers!
>
> Dan Nagle
> Purple Sage Computing Solutions, Inc.
>
> On Thu, 22 Nov 2001 10:44:34 +0100, Claude SIMON
> <claude.simon@setra.fr> wrote:
>
> >I think problems come from arrays, fortran derived types and pointers.
> >
> >With arrays the problem come with assumed-shape array, array pointer and
> >allocatable array.
> >With fortran derived type the problem come from array component of the
> >above type.
> >Each fortran compiler has his own representation of pointer.
> >
> >One way to avoid the problem is to code wrapper to translate from
> >fortran 90 to fortran 77
> >when arrays and pointers are involved.
> >
> >Claude Simon
> >
> >Jean Claude Berges a �crit :
> >
> >> Hello all ,
> >>
> >> Can someone point me to tutorials, websites covering the topic of
> >> "Interface Ada95 ==> Fortran90" (call Fortran90 subroutines or
> >> functions from Ada95), like the work of Duncan Sands (see:
> >>  http://topo.math.u-psud.fr/~sands/BLAS/) but for Fortran90 types,
> >> not only basic Fortran77 types.
> >>
> >> In particular, examples about the "Import" of Fortran90 derived
> >> type, the use of Fortran90 optional statement  for dummy
> >> arguments, ...
> >>
> >> Thanks in advance.
> >>
> >>      Jean Claude BERGES
> >>      French Space Center ( DTS/MPI/MS/MN)
> >>      18,Av. Edouard Belin
> >>      31401 TOULOUSE Cedex 04 - FRANCE
> >>
> >>      E-mail : Jean-Claude.Berges@cnes.fr




      reply	other threads:[~2001-11-22 18:25 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-11-21 13:31 Interface Ada95 => Fortran90 Jean Claude Berges
2001-11-22  9:44 ` Claude SIMON
2001-11-22 13:52   ` Dan Nagle
2001-11-22 18:25     ` Claude SIMON [this message]
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox