
你的想法,叫做 “混合编程”,简称“混编”。
混编有多种方式,一般有:
1直接调用 C 编译后的 exe
2通过 DLL
3通过静态 lib
4通过编译器直接链接Fortran和C的obj
不管是 Fortran 还是 C 的语法,通常不会规定混编的具体内容。这些内容,是不同的编译器自行规定的。(至少绝大多数是)
所以,具体的 *** 作,也因你选择的编译器产品,因你选择的混编方式,而有较大的不同。
所以,我建议你:
1阅读你使用的 C 编译器和 Fortran 编译器的帮助文档,查看其中关于混合编程(mix-language)的章节。
2如果你阅读英文帮助有困难,至少告知你使用何种 C编译器,何种 Fortran 编译器。打算采用何种混编方式。
你好,我也遇到过这个问题,刚刚解决了。出错的原因在于你写subroutine的时候,有一些引用的参数,而你在CALL 这个SUBROUTINE时,参数与子程序写的参数不统一,如:
CALL CONSTRUCT_X(Mloc,Mloc1,Nloc,DX,U,DelxU,UxL,UxR,Kappa)
。。。。。。
SUBROUTINE CONSTRUCT_X(M,M1,N,DX,Vin,Din,OutL,OutR,Kappa,D2X)
我的是这样的,subroutine里加了一个变量D2X,而call 时没有对应修改,所以出错,直接把call语句修改一下就ok了,改成:
CALL CONSTRUCT_X(Mloc,Mloc1,Nloc,DX,U,DelxU,UxL,UxR,Kappa,D2X)
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)