So far all seems well. However, a place that can certainly cause problems is the representation of logical values. In principle, it is completely up to the compiler writer to chose how logical values are represented. What is even worse as far as C is concerned is that there is no logical type at all! In C, a numerical value of zero represents false and anything else represents true, but these are numeric data types, not logical types. On a VAX/VMS system, FORTRAN represents a logical value of false by an integer zero and true by an integer minus one; however, only the bottom bit is tested, so if an integer value of 2 were to be treated as a logical value, then it would be taken as false. C, on the other hand, would treat it as true.
CNF and F77 Mixed Language Programming -- FORTRAN and C