#1480: Catastrophic test failures with Intel 11 ------------------------------------+--------------------------------------- Reporter: hinder | Owner: Type: defect | Status: new Priority: blocker | Milestone: ET_2013_11 Component: EinsteinToolkit thorn | Version: development version Resolution: | Keywords: ------------------------------------+---------------------------------------
Comment (by rhaas):
It turns out to be quite difficult to come up with a way that compiles (quickly) and runs (correcly, quickly) with intel 11, 12, 13 and gfortran (the later never being a problem) .
I have now tried: * Fortran 90 pointers * Cray pointers * nested subroutines * CCTK_PASS_FTOF * explicit if statements in inner loops
It turns out that only "explicit if statements in inner loops" lets me compile the Reconstruction driver routines (which is where the catastrophy happened) compile with intel 13 and also intel 11.
The attached patch replaces the use of Fortran pointers in the reconstruction drivers for PPM, PPM-MHD, WENO, MP5, ENO with explicit if statements in the second (of three nested) loops. For some reason that I do not understand the compiler does not die compiling TVDReconstruct with the (much nicer) construct using nested subroutines.
The code compiles and runs using intel 11 and 12 (zwicky) as well as intel 13 (stampede, bethe) and gfortran 4.8 (my workstation).
Ok to apply?