I don't know if anyone else uses it, but ifort is unhappy with a recent<div>change in timings.F. Line 297 passes a null() to an argument which is</div><div>a pointer to a structure in a subroutine that's a module procedure,</div>
<div>and ifort doesn't deal with it properly. I don't see anything wrong with the</div><div>code, so I'd call it a compiler bug (which the latest ifort 12.1.x and 13.0.x </div><div>compilers also have). I can't think of a clean solution to fix this. One possibility is</div>
<div>to replace (or add to) the default_value argument with a default_null logical </div><div>argument, or to have timestop() create an actual variable</div><div> type(dict_i4tuple_callstat_type), pointer :: t_null => null()</div>
<div>and pass that instead. Neither seems nice, but if you want to support</div><div>intel compilers, I don't have a better idea.</div><div><br></div><div> Noam</div><div><br></div><div><br></div><div><div>mpif90 -c -I/usr/local/usp/PETtools/CE/pkgs/fftw-3.2.2/include -D__INTEL -D__FFTSG -D__parallel -D__BLACS -D__SCALAPACK -D__FFTW3 -O3 -xHost -heap-arrays 64 -funroll-loops -fpp -free -D__COMPILE_ARCH="\"Linux-x86-64-intel-MKL-diamond\"" -D__COMPILE_DATE="\"2012-12-19-09:17:15\"" -D__COMPILE_HOST="\"diamond04\"" -D__COMPILE_REVISION="\"12581\"" -D__SHORT_FILE__="\"timings.F\"" /usr/local/u/noamb/src/work/CP2K/cp2k/cp2k/makefiles/../src/timings.F</div>
<div>/usr/local/u/noamb/src/work/CP2K/cp2k/cp2k/makefiles/../src/timings.F(297): error #6284: There is no matching specific function for this generic function reference. [DICT_GET]</div><div> c_stat => dict_get(timer_env%callgraph, routine_tuple, default_value=Null())</div>
<div>-----------------^</div><div>/usr/local/u/noamb/src/work/CP2K/cp2k/cp2k/makefiles/../src/timings.F(297): error #6678: When the target is an expression it must deliver a pointer result. [DICT_GET]</div><div> c_stat => dict_get(timer_env%callgraph, routine_tuple, default_value=Null())</div>
<div>-----------------^</div><div>compilation aborted for /usr/local/u/noamb/src/work/CP2K/cp2k/cp2k/makefiles/../src/timings.F (code 1)</div><div>make[1]: *** [timings.o] Error 1</div><div>make[1]: Leaving directory `/usr/local/u/noamb/src/work/CP2K/cp2k/cp2k/obj/Linux-x86-64-intel-MKL-diamond/popt'</div>
<div>make: *** [build] Error 2</div></div><div><br></div>