The elemental intrinsic functions listed below lack simplifiers to make them usable in initialization expressions:
DREAL (GNU extension) ERFC_SCALED (F2008) IS_IOSTAT_END (F2003) IS_IOSTAT_EOR (F2003) ISNAN (GNU extension) LSHIFT (GNU extension) MERGE (F95) RSHIFT (GNU extension) Probably only ERFC_SCALED and MERGE are of real significance. Valid code example that's currently rejected: $> cat merge.f90 INTEGER, PARAMETER :: k = selected_real_kind (precision (0.0_8) + 1) INTEGER, PARAMETER :: nbytes = MERGE(48, 32, k == 16) INTEGER, PARAMETER :: n = nbytes / KIND(n) + 1 END merge.f90:3.38: INTEGER, PARAMETER :: n = nbytes / KIND(n) + 1 1 Error: Function 'nbytes' in initialization expression at (1) must be an intrinsic or a specification function -- Summary: some simplifiers for elemental intrinsics missing; required for init expressions Product: gcc Version: 4.4.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: dfranke at gcc dot gnu dot org OtherBugsDependingO 29962,32834 nThis: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38718