Based on past forum topics, I suppose unexpected internal compiler errors (ICE) has been a problem with any upgrade with past versions of Intel compilers, but this was a first for me. I recently upgraded to Fortran Compiler XE 2013 from XE 2011 and code that has worked without errors for nearly 15 years in Compaq Visual Fortran as well as Intel Fortran 9 and XE 2011 started giving an internal compiler error (ICE C00005). Based on previous Steve Lionel's responses to similar errors on many posts in this forum and the fact that this code has worked without errors in previous versions, I figured it is a compiler bug and attempted several code tweaks such as removing/inserting comment lines, creating code listings, etc. After many failed attempts at such code tweaks, I hit upon a USE statement that did not have a ONLY keyword; I modified the statement to have the ONLY keyword to only access the needed entities from the module and voila, the ICE disappeared! That is,
USE MyModName, ONLY : PublicVar1, PublicVar2
Owing to the proprietary aspect, I can't post the exact code here. But I'll try to isolate and simplify the code and submit to Intel Premier Support and they can hopefully fix the issue in one of the future updates to Compiler XE 2013.
For those of you who can't turn the "ship around" and can't wait through the Intel update cycle for bug fixes, the above information is just to let you know minor code changes - note they could be anything, not necessarily USE statements - might help you get around this issue. In my case, my preference is always to include the ONLY keyword on all USE statements and there was a silver lining after all. I understand it may not be the case always.
Separately though, it is distressing to come across such compiler bugs. I can understand if they were to happen with the newer Fortran 2003/2008 features, but not with fairly standard Fortran 90/95 that has been handled since the days of Digital Fortran circa late 90s. Can any of the Intel staff shed some detail on what's commonly the root cause of such regressions in their compiler versions?