When I moved my code to a new computer (and after changing from integer to integer*4 for ierr, size and rank) I get compile warnings (attached) and runtime errors (attached) for the data type of ierr, size and rank.
I have reduced the source code to just a few lines (attached).
I don't entirely understand the justification for considering integer*4 as not matching integer, without providing a more complete diagnosis.
integer*4 is non-standard. Better synonyms have been in Fortran for the last 20 years, more so now that Fortran2008 features are supported by most compilers. It is non-portable and you could break it even with the same compiler by changing compile line options.
Until recently, MPI wrapper compilation was not expected to check such things. Intel can reasonably claim value for the improved checks.