The following is non-standard and the compiler should probably generate a warning/error with '-pedantic -std=f95' MODULE TEST TYPE tt INTEGER :: I END TYPE tt PUBLIC :: try PRIVATE :: tt CONTAINS SUBROUTINE try(A) TYPE(tt) :: A END SUBROUTINE try END MODULE TEST END
Confirmed. Intel says: "Dummy argument A of procedure TRY cannot have a type that is PRIVATE".
Error: 'a' is a PRIVATE type and cannot be a dummy argument of 'try', which is PUBLIC at (1) Fixed in 4.1.0.