https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91556
--- Comment #5 from kargl at gcc dot gnu.org --- (In reply to kargl from comment #3) > (In reply to Jürgen Reuter from comment #2) > > (In reply to kargl from comment #1) > > > W(In reply to Jürgen Reuter from comment #0) > > > > Created attachment 46763 [details] > > > > Reproducer > > > > > > > > This is a rather recent regression, failing with r274920, and it had > > > > been > > > > still working with r274120. The compile error is: > > > > gfortran -c muli_remnant.f90 > > > > muli_remnant.f90:2186:34: > > > > > > > > 2186 | call evolvePDF (x(0), q, f) > > > > | 1 > > > > Error: Type mismatch in argument '_formal_0' at (1); passed REAL(8) to > > > > REAL(16) > > > > > > What are the declared types of x, q, and f? > > > What are the types of the dummy arguments of > > > evolvepdf()? > > > > The code is attached. > > The code is broken, and gfortran has told you. module kinds integer, parameter :: double = 8 ! 7..15 ! real64 ! c_double integer, parameter :: quadruple = 16 ! 19..33 ! real128 ! c_float128 integer, parameter :: default = quadruple end module kinds module pdf_builtin subroutine pdfnorm_scan (this) real(double) :: q, q2min, q2max real(double), dimension(-6:6) :: f real(double), dimension(0:2) :: x call evolvePDF (x(1), q, f) end subroutine pdfnorm_scan evolvepdf is called with REAL(8), REAL(8), REAL(8) subroutine proton_remnant_momentum_kind_pdf (this, GeV_scale, & momentum_fraction, lha_flavor, valence_pdf, sea_pdf, twin_pdf) real(default), intent(in) :: GeV_scale, momentum_fraction integer, intent(in) :: lha_flavor real(double), dimension(-6:6) :: pdf_array call evolvePDF (momentum_fraction, GeV_scale, pdf_array) end subroutine proton_remnant_momentum_kind_pdf evolvepdf is called with REAL(16), REAl(16), REAL(8) evolvepdf is not generic.