The following is non-standard and the compiler should probably generate a warning/error with '-pedantic -std=f95', but does not do so with gcc version 4.3.0 20080103 (experimental) [trunk revision 131300] (GCC)
MODULE M1 IMPLICIT NONE TYPE T1 INTEGER :: I END TYPE T1 INTERFACE ASSIGNMENT(=) MODULE PROCEDURE S1 END INTERFACE CONTAINS SUBROUTINE S1(I,J) TYPE(T1), INTENT(OUT) :: I(2) TYPE(T1), INTENT(IN) :: J(2) I%I=-J%I END SUBROUTINE S1 END MODULE M1 USE M1 TYPE(T1) :: I(2),J(2) I(:)%I=1 WHERE (I(:)%I>0) J=I END WHERE END -- Summary: ice on where / ASSIGNMENT(=) Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jv244 at cam dot ac dot uk http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34661