In this set of modules, the definition of hash_key_eq is not known to module linsys_util, even though it uses the module that defines the type. Apparently it is trying to get the definition through linsystype_mod, instead of hash_eq_mod, and thinks it should be private. If the order of the use statements in linsys_util is reversed, the problem goes away. The error message is:
[EMAIL PROTECTED]> gfortran -c bug071204.f90 bug071204.f90:19.17: type(hash_key_eq) :: eqn_gid 1 Error: Derived type 'hash_key_eq' at (1) is being used before it is defined This is a new bug: it occurs with version 4.3.0 20071204, but did not occur with version 4.3.0 20071023. -- Summary: derived type definition not found Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: william dot mitchell at nist dot gov http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34339