Dynamic allocation in Fortran90 of a size larger than the core memory can cause the machine to go berserk. It seems that the runtime system is confused about who is allocating memory.
Some compilers allow the use of the ``$'' sign in variable names if you use special compiler flags. That is useful if one wants to access Fortran90 routines inside modules. We opted not to use this flag, but used another layer of Fortran90 wrapping, in order to be completely portable.
At a given time we had 7 people working on the C++/Fortran90 building blocks--too many cooks stirring the pot. The whole system was in a continuing state of flux, which made it hard to pinpoint problems. Specially, as some problems got fixed, others were introduced. Our recommendation for the future: do not develop Fortran90 code while writing C++ wrappers for it. Many steps had to be done over and over again. Moreover, always require the Fortran90 operators to pass the dot product test.