http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47463
--- Comment #6 from Tobias Burnus <burnus at gcc dot gnu.org> 2011-01-31 11:03:31 UTC --- (In reply to comment #5) > hydro_flow.f90:55.13: > call this%init(st, gr) > 1 > Error: Found no matching specific binding for the call to the GENERIC > 'init' at (1) That matches Cray's ftn (cf. comment 1): call this%init(st, gr) ^ ftn-389 crayftn: ERROR INIT_PARAMS, File = hydro_flow.f90, Line = 55, Column = 14 No specific match can be found for the generic subprogram call "INIT". > Changing this generic call to the corresponding specific type-bound procedure, I assume s/this%init/this%init_comps/ in that line. With Crayftn I then get the following, which looks at a glance like a bug in crayftn, though I have not checked it: procedure :: init_comps ^ ftn-1130 crayftn: ERROR HYDRO_FLOW, File = hydro_flow.f90, Line = 21, Column = 19 "INIT_COMPS" is specified as a procedure-name in a type bound procedure statement. It must be a module procedure or an external procedure with an explicit interface. subroutine init_comps (this, st, gr) ^ ftn-575 crayftn: ERROR HYDRO_FLOW, File = hydro_flow.f90, Line = 66, Column = 14 "INIT_COMPS" has been used as a subroutine, therefore it must not be declared as a module procedure subroutine. > I get: [ Some gfortran error message, completely different from Crays] > And the same without type-binding: > call init_comps(this, st, gr) > Error: Type mismatch in argument 'this' at (1); passed CLASS(flow_t) to > CLASS(grid_t) That version works with Crayftn. It then compiles hydro_flow.f90 - and stops in hydro_recon.f90 (line 31) for "fl%n" as '"N" is not a component of derived type "FLOW_T"'