https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65234

            Bug ID: 65234
           Summary: Output descriptor (*(1E15.7)) not accepted
           Product: gcc
           Version: 5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libfortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: vehre at gcc dot gnu.org

An output descriptor of the kind

'(*(1E15.7))' 

is not accepted by the gfortran runtime library, but the error message:

Fortran runtime error: '*' requires at least one associated data descriptor
(*(1E15.7))         
         ^
is emitted. Now, for a repeat specifier of 1 this makes not much sense, besides
that F2003 and F2008 seem to define this kind of output specifier to be valid.
See F2008, 10.3.1,:

R1003 format-items is format-item [ [ , ] format-item ] ...
R1004 format-item is [ r ] data-edit-desc
                  or control-edit-desc
                  or char-string-edit-desc
                  or [ r ] ( format-items )
R1005 unlimited-format-item is * ( format-items )
R1006 r is int-literal-constant

What for example if one wants to emit/read an even number of floats like with:
'(*(2E15.7))'? 

During research Dominique and Tobias found that '(*(2(E15.7)))' is accepted.

The attached example shows that '(*(2(E15.7)))' is accepted while '(*(2E15.7))'
not.

Reply via email to