A Fortran subroutine is a C function with a void return type. A C procedure called as a function must return a value whose type corresponds to the type the Fortran program expects (except for character, complex, and double-complex data types). The table below shows this correspondence.
Fortran Type |
C Type |
integer |
int; |
integer*1 |
signed char; |
integer*2 |
short; |
integer*4 |
long int x; |
integer*8 x |
long long x; or _int64 |
logical |
int; |
logical*1 |
char; |
logical*2 |
short; |
logical*4x |
long int x; |
logical*8 |
long long x; or _int64 |
real |
float; |
real*r x |
float x; |
real*8 x |
double x; |
real*16 |
No equivalent |
double precision |
double; |
Example below shows Fortran code for a return value function called cfunct and the corresponding C routine.
Fortran code |
Corresponding C Routine |