../Src/fparser.f90:329: internal compiler error: in gfc_conv_array_constructor_expr, at fortran/trans-expr.c:1975
The problem is at the line "CHARACTER (LEN=LEN(Funcs)) :: fun" It goes away if changed to: LEN=LEN(Funcs(cAbs)) but I believe the standard says the argument to LEN() can be array valued (I don't have my copy handy, but my DEC Reference Manual, which is rarely wrong, says this.) Here's the code: MODULE fparser IMPLICIT NONE INTEGER, PARAMETER :: is = SELECTED_INT_KIND(4) ! Data type of bytecode PRIVATE SAVE INTEGER(is), PARAMETER :: cImmed = 1, & cAbs = 8, & cExp = 9, & cLog10 = 10, & cLog = 11, & cSqrt = 12, & cSinh = 13, & cCosh = 14, & cTanh = 15, & cSin = 16, & cCos = 17, & cTan = 18, & cAsin = 19, & cAcos = 20, & cAtan = 21, & VarBegin = 22 CHARACTER (LEN=5), DIMENSION(cAbs:cAtan), PARAMETER :: Funcs = (/ 'abs ', & 'exp ', & 'log10', & 'log ', & 'sqrt ', & 'sinh ', & 'cosh ', & 'tanh ', & 'sin ', & 'cos ', & 'tan ', & 'asin ', & 'acos ', & 'atan ' /) CONTAINS FUNCTION MathFunctionIndex (str) RESULT (n) IMPLICIT NONE CHARACTER (LEN=*), INTENT(in) :: str INTEGER(is) :: n,j INTEGER :: k CHARACTER (LEN=LEN(Funcs)) :: fun n = 0 DO j=cAbs,cAtan ! Check all math functions k = MIN(LEN_TRIM(Funcs(j)), LEN(str)) CALL LowCase (str(1:k), fun) IF (fun == Funcs(j)) THEN ! Compare lower case letters n = j ! Found a matching function EXIT END IF END DO END FUNCTION MathFunctionIndex END MODULE fparser -- Summary: internal compiler error in gfortran Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: critical Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: dbs at hpcrdm dot lbl dot gov GCC build triplet: same GCC host triplet: i686-pc-linux-gnu GCC target triplet: same http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24813