[Fwd: (j3.2006) Fortran 2003 compiler features]

Jerry DeLisle jvdelisle@verizon.net
Sun Feb 4 23:07:00 GMT 2007


Steve Kargl wrote:
> On Sun, Feb 04, 2007 at 10:39:11PM +0100, Tobias Burnus wrote:
>> is the following correct? Suggestions?
> 
> Looks about right.
> 
>>> "Binary, octal and hex constants"
>>>   
>> NO.
>> (REAL BOZ are not supported, PR29471, PR18026)
> 
> I'm assuming that this means REAL(BOZ).  PR18026 has nothing
> to do with this feature.  It involves the common misconception
> that a BOZ in a data statement involving a REAL is a bitwise
> copy.
> 
>>> Recursive input/output
>>>   
> 
> No.  But it does sometimes work on some targets.
> 
The following mess works, I think we should call it a partial and if that is not 
  a valid answer, then say no.  My interpretation of the standard says this is 
about it.  What platforms does it not work on?  Might help to find out.

(aside: It is not hard to call yourself infinitely with something like this.  I 
did it and the output keeps coming as expected until the segfault.  If you are 
curious, put a call to io1 in the print statement in io2.  It compiles fine. :) )

program recurse

real, dimension (5,5) :: array1

array1 = 3.0
print *, "In the main: ", io1(4.7), io2(23.6), io1(99.9)

contains
function io1(input)
   real, intent (in) :: input
   real              :: io1
   io1 = input + 1.0 + io2(input)
   print *, "Inside io1: ", input, io2(input), input+7.0,io2(333.3)
end function io1

function io2(input)
   real, intent (in) :: input
   real              :: io2
   io2 = input + 3
   print *, "inside io2: ", input
end function io2

end program recurse

[jerry@quasar test]$ ./a.out
  In the main:  inside io2:    4.700000
  Inside io1:    4.700000     inside io2:    4.700000
    7.700000       11.70000     inside io2:    333.3000
    336.3000
    13.40000     inside io2:    23.60000
    26.60000     inside io2:    99.90000
  Inside io1:    99.90000     inside io2:    99.90000
    102.9000       106.9000     inside io2:    333.3000
    336.3000
    203.8000


Jerry



More information about the Fortran mailing list