我使用的是python3,最近我能够为某些类型的优化问题接口一个FORTRAN解算器(感谢这里关于堆栈溢出的eryksun)。在
一个小问题是python笔记本(jupyter)中的解算器输出没有显示出来。请注意,解算器返回正确的解,但它不显示其进度或任何消息。不过,如果从julia笔记本调用相同的FORTRAN解算器,我可以在julia笔记本中看到输出。解算器输出/消息只是stdout的FORTRAN write()语句。在
例如,以下是julia笔记本显示的:
Hello World from Wrapper!
Iter: 0 Nfun: 1 f1(x) = 24.20000 Eps = 116.4338
Iter: 1 Nfun: 2 f1(x) = 24.20000 Eps = 48.68118
Iter: 2 Nfun: 3 f1(x) = 6.307350 Eps = 7.505725
Iter: 3 Nfun: 4 f1(x) = 6.307350 Eps = 4.854666
Iter: 4 Nfun: 5 f1(x) = 3.580435 Eps = 0.1099409
Iter: 5 Nfun: 6 f1(x) = 3.580435 Eps = 0.8368376E-01
.....
解算器将所需的文件输出编号作为参数。对于FORTRAN,这是stdout的6。当我从python和julia调用解算器时,我将这个参数设置为6。在
这似乎与jupyter中的内核(python vs.julia)有关,但我找不到一个简单直接的方法来查看这个输出,这对于调试和验证目的至关重要。在
有什么提示或建议吗?在
提前谢谢你!在
下面是调用FORTRAN解算器的代码-它有31个参数。 参数num_outcalls(设置为6)和disp(对于详细模式,设置为3)。FORTRAN是加载的FORTRAN库“解算器”_lib.so公司““
^{pr2}$
目前没有回答
相关问题 更多 >
编程相关推荐