Your program wouldn't compile for me even when I corrected the other error in its common statement and added a print statement (to see what it would do at run time if it ever got that far) and an end statement. Also my version of Intel Fortran has a differently worded syntax for checking bounds. Hence my results:
miro[~]$ cat badrank.f90
common/aaa/ a,b,c
a = 1
b = 2
c = 10
d = a(1) + a(3)
print *,d
end
miro[~]$ ifort -check nobounds badrank.f90
badrank.f90(5): error #6416: This COMMON scalar or array is invalid in this context. [A]
----^
compilation aborted for badrank.f90 (code 1)
miro[~]$
Also, you had a rank mismatch not a type mismatch. "Type" in this context is real, integer or complex. (Other possibilities exist but not in this program.) Remember that programs like yours that violate the (appropriate version of the) Fortran standard but still run may do ANYTHING at run-time. I would suggest fixing your program rather than hoping that you can make one compiler permit a non-standard program that you say Intel Fortran aka ifort permits but I found that it didn't. However my version of that has no "/check: bound" option. I used -check nobound above but I got the same results with -check bound. (I use ifort in a Linux system. You didn't say what operating system you used.)