fortran如何调用julia?

使用julia调用fortran代码相对比较简单,只需要使用ccall就可以了。那么,如果反过来呢?怎么在fortran中调用julia的函数呢?

现在我有一个比较大的fortran的工程,想将它移植到julia上。现阶段打算逐步把函数都移动到julia上然后逐步测试。所以才有此一问。请问是否还有更好的思路?

官方文档是你的好伙伴:embedding Julia

移植Fortran个人不太推荐一开始就通过调用的方式来测试。调用在最后阶段框架基本搭好进行debug的时候可能有用,但如果原始的Fortran程序结构模块足够清晰的话,每一个部分函数单独的unit test就足够检查功能了;如果发现可以优化的部分,Julia和Fortran架构的差别可以启发你如何写出更Julian style的代码。

不同时期的Fortran代码风格差异也很大,如果你恰巧遇到了common block或者global variable满天飞的情况,那就会比较费时费力。个人经验,调用Fortran可以用,但对于譬如全局变量、常数等等会有很多一开始意想不到的小问题。

大工程更需要考虑移植需要考虑到的是假设能做,相较于直接调库最终的收益有多大。譬如偏底层的LAPACK和BLAS库,虽然有人设想过,但迄今为止依旧是使用成熟的Fortran库。

备案号:京ICP备17009874号-2