Hello Bertrand,
On Tue, 30 Nov 2004, Bertrand Meltz wrote:
> I often use this piece of program in my codes.
> Some compilers insist that this is a recursive library call.
> Is it really?
>
> !-----------------------------------
> program test
> print *, the_date()
> contains
>
> function the_date() result( day)
>
> implicit none
> character( LEN=17) :: day
> character(len=8) :: date
> character(len=10) :: time
>
> call DATE_AND_TIME( date, time)
> write( day, '(a7,a2,a1,a2,a1,a4)') &
> 'Date : ', date(7:8), '/', date(5:6), '/', date(1:4)
> end function the_date
>
> end program test
> !-----------------------------------
This program contains a recursive I/O reference, and this is
not allowed in Fortran 90/95. (The 'print' calls 'the_date',
and this in turn calls 'write'.) I have the same problems!
Some time ago I heard that Fortran 2003 will release this
restriction in that a nesting of internal I/O with external
I/O should become possible. This would make our problem go
away. But I don't know whether will really be implemented
in the coming F 2003 standard.
Roland
+----------------------------------------------------------------------+
| Roland Schilling Home-Office: +49(89)32929-670 |
| Max-Planck-Institut für Gravitationsphysik |
| -- Albert-Einstein-Institut -- |
| D-85748 Garching E-mail: [log in to unmask] |
| Germany http://www.geo600.uni-hannover.de |
+----------------------------------------------------------------------+
|