The following program gives an error message for valid use of
an array element in an expression for an automatic character
array.  

The error message is repeated twice.

Changing from a run-time subscript in the parameter array to a
constant fixes the problem.

Dick Hendrickson

      program try_vf0016
! fails on Windows XP
! gcc version 4.4.0 20080312 (experimental) [trunk revision 133139]
! syntax error for valid syntax

      call       vf0016(  1,  2,  3)

      end
      SUBROUTINE VF0016(nf1,nf2,nf3)
      CHARACTER(LEN=9,KIND=1),DIMENSION(3), PARAMETER
     $     ::  TEST_STRINGS =
     $  (/'       HI','ABC      ','  CDEFG  '/)
      CHARACTER :: TEST_ARRAY
     $(LEN_TRIM(ADJUSTL(TEST_STRINGS(nf1))),  ! changing nf1 to 1 fixes it
     $ SUM(LEN_TRIM(ADJUSTL(TEST_STRINGS))),
     $ LEN_TRIM(ADJUSTL(ADJUSTR(TEST_STRINGS(3)))),
     $ SUM(LEN_TRIM(ADJUSTL(ADJUSTR(TEST_STRINGS(NF1:NF3:NF2)))))   )

       print *, 2, 10, 5, 7
       print *, shape (test_array)
         end



C:\g_experiments\gfortran>gfortran vf0016.f
vf0016.f:14.24:

     $(LEN_TRIM(ADJUSTL(TEST_STRINGS(nf1))),  ! changing nf1 to 1 fixes
                       1
Error: Variable 'test_strings' cannot appear in the expression at (1)
vf0016.f:14.24:

     $(LEN_TRIM(ADJUSTL(TEST_STRINGS(nf1))),  ! changing nf1 to 1 fixes
                       1
Error: Variable 'test_strings' cannot appear in the expression at (1)


-- 
           Summary: Can't use run-time array element in character
                    declaration
           Product: gcc
           Version: 4.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: dick dot hendrickson at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35723

Reply via email to