The code written in C++ with LapackE and MPI libraries compiles and runs great on Windows where I use GNU C++ 4.9.2.
Migrating that code to Linux (CentOS) server fails to compile! The GNU C++ on Linux machine is 4.4.7. I used identical LapackE header files in both cases. MPI works well on the Linux machine.
Upon inspection of preprocessor output files on both machines, I can relate the error messages to following situations where complex declarations in the original code were replaced by _Complex. Here is an example of a declaration of a complex dynamic array HAMILTONIAN that has problem when compiled on Linux:
IN THE ORIGNIAL SOURCE: lapack_complex_double* HAMILTONIAN;
IN THE WINDOWS PREPROC. FILE (works well): _lapack_complex_double* HAMILTONIAN;
IN THE LINUX PREPROC. FILE (fails to compile): double _Complex* HAMILTONIAN;
Could this be problem related to different versions of GCC?
I've tried #define _Complex complex but it's didn't help in the end.
Some reported problem with interoperability of C99 _Complex and C++ complex: possible similar problem.
Please help. Thanks!