I have been using the ifc version 7.0 (Build 20021028Z) Fortran compiler on a Linux box running RedHat 7.3 (2.96-112) and with glibc 2.2.5-39. I have successfully compiled a large package for statistical analysis.
I have also used ifc to compile a parallel program for solving a large system of equations (rank up to 300.000.000). This program is based on a master- slave concept and uses MPI as message parsing. Here I ran into problems. At a certain point, all nodes have to deallocate some local vectors. The deallocation worked on the slave nodes (return status = 0), but on the master node, the return status from the call to deallocate is 492. The only explanation of the return status from deallocate in the documentation for ifc says that a positive value is returned if an error occur. Does anyone know what a return status of 492 means?
In order to overcome the problem, I have now upgraded ifc to version 7.1 (Build 20030412Z). But now I can not compile my statistical package anymore. The problem seems to be related to the use of modules. If a subroutine only referee to a subset of the variables specified in the module, I get the following message:
*Compiler Internal Error* : Please report to Intel Corporation
compilation aborted for dmu4v6.f90 (code 1)
If I specify the subset of variables actually refereed to in the subroutine by the only : xxx.yyy option for the use statement it compiles without any errors. Is that in agreement with the f95 standard or is it a bug in the compiler?
I have not yet had the time to try the ifc version 7.1 for the parallel program.