草庐IT

fortran77

全部标签

arrays - 在 Fortran 中分配时自动分配数组

我们最近发现我们正在对Fortran中的未分配数组进行赋值。GNUgfortran编译器没有发现错误,代码在OSX和Linux下都运行。但是,IBMPowerPC上出现相同的代码段错误。我的问题是,以下代码是否正确?似乎分配给array的数组在某些架构上会自动分配内存,而在其他架构上则不会。这里有具体的实现细节吗?代码是混合的C/Fortran代码:#includevoidassign_array_(doublex[],int*n);voidprint_array_();intmain(){intn,i;double*x;n=5;x=(double*)malloc(sizeof(dou

arrays - Fortran 中没有 Allocate() 的可变大小数组

有没有办法在Fortran中创建可变大小的数组在堆栈上?Allocate()对我不起作用,因为它将数组放在堆上。这可能会导致并行化问题(请参阅我的另一个问题:OpenMP:poorperformanceofheaparrays(stackarraysworkfine))。当然,一些智能内存管理可以解决这个问题,但是Fortran中的内存管理听起来很傻。基本上,我正在寻找与C语言中以下内容的Fortran等效项:scanf("%d",N);intmyarray[N];重申:我不想Integer,PARAMETER::N=100Integer,Dimension(N)::myarray因为

c++ - Fortran 中的 STL 类似物

基础:我有非常大的并行Fortran90/MPI程序,代表复杂的物理模型。我想为其添加新功能:例如,我需要组织消息队列,在某处引入合并排序并使用哈希表。问题:我自己知道如何编写哈希表、创建队列和代码归并排序,但我认为发明自行车不是一个好主意。问题:在这种情况下,Fortran大师应该怎么做?我应该从Fortran构建与C++类的绑定(bind)并使用STL在那里实现逻辑,还是您可以建议一些类似FortranSTL的库?谢谢。 最佳答案 Fortran中没有模板,因此没有STL。你可以试试FLIBS对于一些通用库。它一般使用trans

c++ - Fortran 77 代码到 C++ 的转换

是否有人将Fortran77代码的大型(我们的为550,000行)程序转换为C++?你遇到了什么陷阱?转换成功了吗?您是否使用过for_c(http://www.cobalt-blue.com/fc/fcmain.htm)之类的工具?生成的C++代码是明显快了还是慢了? 最佳答案 这增加了EvilTeach的建议。请记住,链接Fortran77和C/C++代码相当容易,因此您可以逐步转换应用程序的某些部分并将它们与旧部分链接在一起。如果您这样做,您将不得不考虑所有常见的fortran/c差异(行/列主要数组、数组索引等),但它会为您

c++ - ASCII数据导入: how can I match Fortran's bulk read performance in C++?

设置您好,我有用于读取ASCIIdouble数据的Fortran代码(问题底部的数据文件示例):programReadDatainteger::mx,my,mzdoubleprecision,allocatable,dimension(:,:,:)::charge!Openthefile'CHGCAR'open(11,file='CHGCAR',status='old')!Gettheextentofthe3Dsystemandallocatethe3Darrayread(11,*)mx,my,mzallocate(charge(mx,my,mz))!Bulkreadtheentire

c++ - 将 Fortran、C++ 与 R 集成

我的任务是用C++重写一个R函数来加速while循环。除了.Fortran()之外,所有的R代码都在Rcpp和Armadillo的帮助下重写了。我首先尝试使用Rinside,但正如Dirk所指出的那样,它以非常慢的速度工作。(数据经过R->C++->R->Fortran代价高昂)由于我不想用C++重写Fortran代码,反之亦然,通过将C++直接链接到Fortran来加速程序看起来很自然:R->C++->Fortran。//[[Rcpp::depends(RcppArmadillo)]]#includeusingnamespaceRcpp;extern"C"{Listf_(int*n,

python - 在 Python 中打包旧版 Fortran。可以使用 setuptools 和 numpy.distutils 吗?

我正在尝试为我所在领域的一些流行的Fortran代码制作python包分发。我希望它使用带有setup.py文件的最标准方法。相关问题对学习有帮助howtowrapFortranextensions.在使用这种方法时,我注意到在混合setuptools和numpy.distutils时会出现一些令人困惑的行为。将两者混合是不好的做法吗?截至2015年,似乎最好尽可能使用setuptools。但是,我想以与numpy.兼容的方式构建Fortran扩展,所以我想从numpy.distutils来获取Extension和setup。我正在使用以下基本方法:fromsetuptools.com

android - 找不到 com.google.android.gms :play-services:3. 1.59 3.2.25 4.0.30 4.1.32 4.2.40 4.2.42 4.3.23 4.4.52 5.0.77 5.0.89 5.2.08 6.1.11 6.1.71 6.5。 87

通过gradle引用播放服务停止了对我的工作-将其归结为-甚至我最初用作引用的示例也停止工作:https://plus.google.com/+AndroidDevelopers/posts/4Yhpn6p9icfFAILURE:Buildfailedwithanexception.*Whatwentwrong:Aproblemoccurredconfiguringproject':auth'.>Failedtonotifyprojectevaluationlistener.>Couldnotresolvealldependenciesforconfiguration':auth:co

c++ - 与现代 C++ 相比,现代 Fortran 有哪些优势?

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter寻求指导。关闭9年前.我正在尝试在Fortran和C++之间为科学计算应用程序做出决定。我不清楚Fortran在性能方面是否仍然优于其他语言。例如,我相信由于Fortran强制执行严格的别名,与C99之前的C相比,编译器可以进行更好的优化。我不确定C++如何适合这里。有什么指导吗? 最佳答案 我看了someofthest

c++ - 使用 gcc 链接 Fortran 和 C++ 二进制文件

我可以使用gcc在C和C++之间或C和Fortran之间分别使用g++或gfortran进行调用。但是,如果我尝试在C++和Fortran之间进行过程调用,我会在使用g++或gfortran进行编译时出错,因为它们都不知道对方需要的库。如何链接使用C++和Fortran编写的源代码的项目?$catprint_hi.f90subroutineprint_hi()bind(C)implicitnonewrite(*,*)"HellofromFortran."endsubroutineprint_hi$catmain.cpp#includeextern"C"voidprint_hi(void