MATLAB: Do I receive a calling convention error when calling a Fortran function from a C S-Function with Simulink

cmsvcsimulink

I have a legacy Fortran function that I am using from Simulink via a S-Function wrapper. When I debug it using Visual Studio, MSVC gives me the following error about calling conventions.
Debug Error!
The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention.

Best Answer

The error message indicates that there is a calling convention mismatch.
A workaround is to try placing a __stdcall or __fastcall statement (depending on the compiler) between the "extern type" and the function name in the function prototype in the c-file.