https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95053
--- Comment #19 from Bill Seurer <seurer at linux dot vnet.ibm.com> --- There's some stuff above this in the module but this is the part that shows the error and I think it contains all the declarations. subroutine Z() real(r8) :: cld(99,99) real(r8) cldeps parameter (cldeps = 0.0_r8) real(r8) asort(99) if (cldeps > 0) then asort(1) = 1.0_r8-(floor(cld(1,7)/cldeps)*cldeps) endif return end subroutine Z 15 | asort(1) = 1.0_r8-(floor(cld(1,7)/cldeps)*cldeps) | 1 Error: Division by zero at (1)