jjzjj

c++ - 从 C++ 拦截 Fortran STOP

我准备了一个旧版Fortran库的C++接口(interface)。遗留库中的一些子例程遵循丑陋但可用的状态代码约定来报告错误,我使用此类状态代码从我的C++代码中抛出一个可读的异常:它工作得很好。另一方面,有时遗留库调用STOP(终止程序)。即使病情是可以恢复的,它也经常这样做。我想从C++中捕获这个STOP,到目前为止我还没有成功。下面的代码很简单,但恰好代表了手头的问题:Fortran遗留库fmodule.f90:modulefmoduleuseiso_c_bindingcontainssubroutinefsub(x)bind(c,name="fsub")real(c_doub

c++ - 是否有如此出色的 C 编译器,以至于 fortran 正在成为一种多余的语言?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭11年前。只是想知道,因为我一直认为Fortran用于super计算。但是,我经常听说C编译器可以使C与Fortran一样快,那么它的使用是否受到限制?此外,如果这是真的,那么最快的C编译器是什么?提前致谢。

c++ - C++ 中 Fortran 风格的多维数组

是否有一个C++库提供Fortran风格的多维数组,支持切片、作为过程参数传递和体面的文档?我调查了blitz++但它死了! 最佳答案 我强烈建议Armadillo:ArmadilloisaC++linearalgebralibrary(matrixmaths)aimingtowardsagoodbalancebetweenspeedandeaseofuse它是一个C++模板库:Adelayedevaluationapproachisemployed(atcompile-time)tocombineseveraloperations

c++ - Scala等与C/C++/Fortran的性能比较?

我想知道是否有任何可靠的“现代”多线程专用语言之间的性能比较,例如scala和“经典”“低级”语言,如C、C++、Fortran,使用并行库,如MPI、Posix甚至Open-MP。欢迎任何链接和建议。 最佳答案 假设Java以及Scala可以调用外部库,并且假设那些高度特化的外部库将完成大部分工作,那么只要使用相同的库,性能是相同的。除此之外,任何此类比较本质上都是没有意义的。Scala代码在具有运行时优化的虚拟机上运行。这种优化可以插入长时间运行的程序比使用其他语言编译的程序具有更高的性能——或者不是。这取决于用每种语言编写的具

c++ - Fortran 和 C++ 计算的值之间的差异

我敢说Fortran和C++计算的数值会更加相似。然而,从我的经历来看,结果是计算出的数字在小数位数太少后开始出现分歧。在将一些遗留代码从前一种语言移植到后一种语言的过程中,我遇到了这个问题。原始Fortran77代码...INTEGERM,ROUNDDOUBLEPRECISIONNUMERATOR,DENOMINATORM=2ROUND=1NUMERATOR=5./((M-1+(1.3**M))**1.8)DENOMINATOR=0.7714+0.2286*(ROUND**3.82)WRITE(*,'(F20.15)')NUMERATOR/DENOMINATORSTOP...输出0.

Fortran在许多文件中拆分数据并进行一些处理

我想将文本文件拆分并保存在许多文件中,并为每个文件执行一些计算并获得结果。我编写了此代码,但是它仅在一个文件中进行代码。我很高兴有人帮助我。rogramsplitimplicitnoneinteger::n1,i,k,jparameter(n1=52017)real*8::bjd1,bjd(n1),phase(n1),flux(n1),errflux(n1),bjd2,sumation,aveopen(1,file="myfile.txt")doi=1,n1read(1,*)bjd(i),phase(i),flux(i),errflux(i)enddoclose(1)bjd1=(bjd(1)+

c++ - 将 char 数组从 C++ 传递到 Fortran

我在将char数组从C++传递到Fortran(f90)时遇到问题。这是我的C++文件,“cmain.cxx”:#includeusingnamespacestd;extern"C"intftest_(char(*string)[4]);intmain(){charstring[2][4];strcpy(string[0],"abc");strcpy(string[1],"xyz");cout这是我的Fortran文件“ftest.f90”:SUBROUTINEFTEST(string)CHARACTER*3string(2)CHARACTER*3expected(2)dataexpe

ios - 是否可以为 iPad 编译 Fortran 代码?

我有一个用Fortran77编写的应用程序,需要它在iPad上运行。这可能吗?我宁愿不必在objective-c中重写这段代码,因为有很多复杂的计算,我担心我会遇到一些精度问题。另外,我没有时间重写它。 最佳答案 使用FortrantoCtranslater,然后你可以用Xcode为iPad编译C代码。 关于ios-是否可以为iPad编译Fortran代码?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.c

FORTRAN错误5082

我在Fortran中很新。我想编译这个Fortran,我认为90???代码。我正在与Intel编译器一起使用VisualStudio。以下代码给我一个错误5082。我绝对不知道为什么。就像字面上没有线索。请,请帮忙。integerfunctionDub(n)integernDub=2*nreturnendprogramSubroutinesimplicitnone!Variablesintegernn=5!BodyofSubroutineswrite(*,*)nDub(n)write(*,*)'PressEntertoExit'read(*,*)stopendprogramSubroutine

形状固有功能在Fortran中

我正在玩shape()Fortran中的固有功能:programtestinteger,dimension(5,3)::Ainteger,dimension(2)::ShapeAShapeA=shape(A)print*,ShapeA(1)print*,ShapeA(2)endprogramtest我了解shape函数返回包含数组长度和宽度的2个元素向量A。在上述代码中,输出的输出shape(A)被传递给预定义的变量ShapeA。然后是内容ShapeA被打印出来,即5和3。我想找到一种参考输出内容的方法shape(A)不必将其分配给中间变量ShapeA.这将类似于matlabsize启用这样的