Jerry DeLisle noted in http://gcc.gnu.org/ml/fortran/2008-01/msg00142.html that it might be good to collect the bounds-checking code for intrinsics into a single function.
Hadn't been picked up in year, and I am not entirely sure this is a good idea: bounds checking is better inlined, avoiding the function call and where compiler heuristics for branch prediction can fully play their role (runtime_error being noreturn, it is marked as unlikely automatically).