Call Fortran from C++
fortrancode.f
*****************************
subroutine fortfunc(ii,ff)
integer ii
real*4 ff
write(6,100) ii, ff
100 format('ii=',i2,' ff=',f6.3)
return
end
*****************************
cppcode.c
*****************************
#include <iostream>
using namespace std;
extern"C" {
void fortfunc_(int *ii, float *ff);
}
main()
{
int ii=5;
float ff=5.5;
fortfunc_(&ii, &ff);
return 0;
}
*****************************
compile as
*******************************************
gfortran -c fortrancode.f
g++ -c cppcode.c
g++ -o run fortrancode.o cppcode.o -lgfortran
*******************************************
or
*******************************************
f77 -c fortrancode.f
g++ -c cppcode.c
g++ -o run fortrancode.o cppcode.o -lg2c
*******************************************