work.pc file and parallel builds ================================ The work.pc file is used to store information about modules. This file is shared by all compilations and there is no concurrency at lower than the file level of granularity. This limits the ability to perform parallel makes. LDB variable display ==================== LDB does not update display variables when execution is continued after the stack frame context is modified. Use of commands such as "up" or "frame[n]" to modify the frame context must be followed by the "frame" command before execution is continued to work around this problem. The problem does not occur when LDB is run under the Data Display Debugger (ddd). A Simple Demangler ================== To help with demangling of entry points, a simple demangler, iccfilt, is supplied. Any text that you pipe through this will be checked for mangled names and any such names will be demangled. So, for example, you can pipe the output from nm through this to get demangled external names. You can also use it for unresolved error messages from the linker, etc. New Functionality and Issues ============================ . Fortran95 support. The Intel Fortran compiler supports all the features of ISO Fortran 95, plus extensions. . The Intel Fortran Compiler includes many popular extensions from other vendors' Fortran compilers, including VAX structures, CRAY pointers, Sun IEEE FLAGS functions, and timing functions such as ETIME and SECNDS. Please see the Programmer's Guide for more information on supported extensions. . Support for Streaming SIMD Extensions. There are 2 intrinsics implemented in the Intel Fortran Compiler to support the prefetch Streaming SIMD Extension. . mm_prefetch(R, I) REAL*4 R INTEGER I Prefetch the cache line containing R into the cache. Integer literal I selects the type of prefetch. I=0 == PREFETCHNTA I=1 == PREFETCHT0 I=2 == PREFETCHT1 I=3 == PREFETCHT2 . mm_prefetch(D, I) DOUBLE PRECISION D INTEGER I Prefetch the cache line containing D into the cache. Integer literal I selects the type of prefetch. I=0 == PREFETCHNTA I=1 == PREFETCHT0 I=2 == PREFETCHT1 I=3 == PREFETCHT2 Known Limitations ================= The following are known defects in the Intel Fortran Compiler, which might be fixed in a future Version. . VAX(tm) FORTRAN style structures. Older programs may use a feature introduced by Digital Equipment Corp.(tm) on the VAX FORTRAN product, often referred to as "VAX structures". This feature uses the keyword statements STRUCTURE, RECORD, UNION, and MAP. Vax structures are supported for compatibility with legacy code. ANSI FORTRAN-90 supplies an equivalent feature, derived types. Since support for Vax structures is intended to allow legacy code to compile, Vax structures are not supported in FORTRAN-90 modules, and you cannot use FORTRAN-90 style syntax in VAX structure declarations. This restriction may be lifted in a future release. . For example: PROGRAM MYPROG STRUCTURE /MYSTRUCT/ INTEGER(4),DIMENSION(10)::I END STRUCTURE RECORD /MYSTRUCT/ MYVAR END PROGRAM MODULE MYMOD STRUCTURE /MYSTRUCT/ INTEGER(4),DIMENSION(10)::I END STRUCTURE RECORD /MYSTRUCT/ MYVAR END MODULE You must either change the structure declaration to a FORTRAN-90 derived type, (this is the only option for MODULEs), or change the declaration of the array to use ANSI 1978 FORTRAN style syntax, such as INTEGER I(10) In some circumstances, calling a procedure with a VAX structure as a parameter may cause a compiler abort. . The GETLOG function in the portability library, which can be linked with the -Vaxlib switch, does not currently function properly. . The TREAD function in the portability library is currently not available. . The -d option (addition runtime diagnostics) is not currently functioning correctly. . Alignments are different when using assembled .asm files as compared to directly generated objects. . OpenMP applications: The -auto option should always be used when -openmp is specified, to ensure thread safety of local variables. . When the -auto option is used to compile programs with large arrays or other data structures, the stack size may need to be increased. For example, the shell command ulimit -s 16384 will increase the maximum stack size to 16384 Kbytes. Insufficient stack size can lead to a segmentation fault at run time. . Renaming a module entity on a USE statement to avoid a name clash with an entity from another module may not work correctly when the module containing the original entity is in a separate source file.