https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91556
--- Comment #10 from Thomas Koenig <tkoenig at gcc dot gnu.org> --- Created attachment 46776 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=46776&action=edit Concept patch Here's what a patch could look like. With the test case, it yields multi.f90:2186:23: 2186 | call evolvePDF (x(0), q, f) | 1 ...... 2362 | call evolvePDF (momentum_fraction, GeV_scale, sea_pdf) | 2 Error: Type mismatch between argument passed at (1) and previous call at (2) (REAL(8)/REAL(16)) multi.f90:2192:26: 2192 | call evolvePDF (x(1), q, f) | 1 ...... 2362 | call evolvePDF (momentum_fraction, GeV_scale, sea_pdf) | 2 Error: Type mismatch between argument passed at (1) and previous call at (2) (REAL(8)/REAL(16)) multi.f90:2199:23: 2199 | call evolvePDF (x(1), q, f) | 1 ...... 2362 | call evolvePDF (momentum_fraction, GeV_scale, sea_pdf) | 2 Error: Type mismatch between argument passed at (1) and previous call at (2) (REAL(8)/REAL(16)) I suppose this would be a bit more helpful.