Python/Fortran interoperability

nmm1 at nmm1 at
Mon Aug 24 21:54:38 CEST 2009

In article <h6upc9$4u$1 at>,
glen herrmannsfeldt  <gah at> wrote:
>< Consider, for example:
><    CHARACTER*(*) :: X
><    CHARACTER(LEN=100) :: string
><    CALL Fred(string(40:60))
><    CALL Fred(string(5:50))
>< This is not currently allowed and raises all sorts of 'interesting'
>< implementation and portability questions.  For example, I defy anyone
>< to write Fred portably in C :-)
>You mean, how does FRED know the length?  It seems to me the
>usual question for Fortran assumed size arrays.  Assuming that
>FRED can tell from the passed string, it seems fine to me.
>If not, it is a problem.  

Precisely.  And the whole point of my question is how many people
WANT to do it, from the point of view of extending BIND(C).

>< Even when Fred has an explicit length, there are some problematic
>< cases, which could catch out programmers in one language that don't
>< know the other fairly well.  But those are much less of a problem
>< than the common need for assumed length CHARACTER arguments.
>Maybe Fortran programmers who started in Fortran 66 will not
>have so much problem with this.  The usual way would be to
>pass the length, as with assumed size arrays.  I believe terminating
>strings with unusual (likely not null) characters was also done.

Yeah.  But there are a decreasing number of us left :-)

Prefix length strings were also used.

Nick Maclaren.

More information about the Python-list mailing list