The problem shown here applies to elemental functions in general, not only (elemental) intrinsics, see below for an example:
$> cat assign.f90 real :: a(3) = 0.0, b(2) = (/ 0.0, 0.1 /) a = COS(b) print *, a end $> gfortran-svn assign.f90 && ./a.out 1.000000 0.9950042 1.000000 $> ifort -warn all assign.f90 && ./a.out fortcom: Error: assign.f90, line 2: The shapes of the array expressions do not conform. [A] a = COS(b) ^ compilation aborted for assign.f90 (code 1) $> sunf95 -w4 assign.f90 && ./a.out a = COS(b) ^ "assign.f90", Line = 2, Column = 3: ERROR: The left and right hand sides of this array syntax assignment must be conformable arrays. f90comp: 4 SOURCE LINES f90comp: 1 ERRORS, 0 WARNINGS, 0 OTHER MESSAGES, 0 ANSI Same example as above with elemental function: $> cat assign.f90 real :: a(3) = 0.0, b(2) = (/ 0.0, 0.1 /) a = f(b) print *, a contains real elemental function f(x) real, INTENT(iN) :: x f = cos(x) end function end $> gfortran-svn assign.f90 && ./a.out 1.000000 0.9950042 1.000000 -- Summary: insufficient conformance check when assigning the result of an elemental function to an array Product: gcc Version: 4.3.0 Status: UNCONFIRMED Keywords: accepts-invalid Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: dfranke at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32002