我正在尝试编译一个用Fortran77编写的软件。我应该指出我对Fortran知之甚少,并且真的不想开始修改这个软件的代码-特别是当我'我不确定该软件的许可是什么,我不知道我是否能够重新分发我修改后的版本。代码在OSX和Windows上编译良好,使用g77编译器(相当容易)可用于这些系统。但是,我无法让它在我的Ubuntu发行版上运行,因为我似乎无法再获得适用于Ubuntu的g77,如果我尝试安装它的旧版本,它似乎会破坏我的整个GCC安装。我试过用gfortran和g95编译代码,但它对任何一个都不起作用:代码使用实变量作为循环索引(是的,我知道,这是个坏主意)。g95通过-freal
我尝试通过命名管道在某些Fortran进程之间建立通信。然而,考虑到即使是一个非常简单的玩具示例,我也会遇到麻烦。这是我的代码:programtestfifoimplicitnoneintegerstatuswrite(*,*)"hello"callflush()open(unit=11,file="MyNamedPipe",action='write',form='unformatted'$,iostat=status);close(11)write(*,*)"by"callflush()returnendprogramtestfifo如果我用普通文件运行它,它会工作:/fortra
我尝试通过命名管道在某些Fortran进程之间建立通信。然而,考虑到即使是一个非常简单的玩具示例,我也会遇到麻烦。这是我的代码:programtestfifoimplicitnoneintegerstatuswrite(*,*)"hello"callflush()open(unit=11,file="MyNamedPipe",action='write',form='unformatted'$,iostat=status);close(11)write(*,*)"by"callflush()returnendprogramtestfifo如果我用普通文件运行它,它会工作:/fortra
我在scicomp上遇到了这个问题这涉及计算总和。在那里,你可以看到c++和类似的fortran执行。有趣的是,我看到Fortran版本的速度提高了大约32%。我想,我不确定他们的结果,并试图重振局面。这是我运行的(非常轻微的)不同代码:C++#include#include#include#includeintmain(){constdoublealpha=1;std::cout.precision(16);std::complexsum=0;conststd::complexa=std::complex(1,1)/std::sqrt(2.);for(unsignedintk=1;k
我想在Windows上为Fortran项目(实际上是Fortran+C)创建DLL。当一个dll依赖于另一个dll时,我遇到了在Linux上没有遇到的麻烦。这是一个简短的例子:文件dll1.f90moduledll1implicitnonecontainssubroutinetest1write(*,*)"test1ok"endsubroutineendmodule文件dll2.f90moduledll2usedll1,only:test1implicitnonecontainssubroutinetest2calltest1endsubroutineendmodule文件main.f
我在AMDAthlon(tm)64X2双核处理器5200+×2上运行Ubuntu12.10(64位),Linux内核3.5.0-51-generic。我有GNUFortran(Ubuntu/Linaro4.7.2-2ubuntu1)4.7.2。我正在尝试将一些代码编译成32位可执行文件。我已经检查了我的系统上是否安装了所有需要的库(我在之前在32位计算机上编译的程序上运行了ldd,并下载了丢失的包)。我尝试运行$gfortranfoo.f-m32-L/lib/i386-linux-gnu,但出现以下错误:/usr/bin/ld:cannotfindcrt1.o:Nosuchfileor
我最近正在开发一个相当长的Fortran代码。我使用的编译器是Opensuse13.1(64位)上的gfortran4.8.1。但是,当我使用-O2或-O3选项编译代码时,我收到了很多关于“-Wmaybe-uninitialized”的警告。我设法将代码减少到最小的工作示例,如下所示。在main.f90中programmainusemodTestimplicitnonereal(kind=8),dimension(:,:),allocatable::outputreal(kind=8),dimension(:,:,:),allocatable::inputallocate(input(
我正在运行别人编写的Fortran77程序。我在Linux(Ubuntuv.16.04)上使用gfortran编译器(v5.4.0)。我不是Fortran、gcc或bash脚本的经验丰富的用户,所以我在这里挣扎。当我的程序完成运行时,我收到以下消息:注意:以下浮点异常正在发出信号:IEEE_DENORMAL我不得不查一下-我知道我的一些float需要“非正规”存储,这是一种非常小的数字的低精度形式(而不是将它们清零)。这些来自程序中不稳定的空气动力学计算——我在手写计算时看到了这一点。这些非正规数量不太可能显着影响我的结果,但为了尝试找出发生这种情况的位置/原因,我尝试使用以下错误选项
我希望能够在我的Fortran应用程序中调用网络功能。我的老板希望我用Fortran做所有事情,而不是使用C和Fortran。我们已经在Windows上使用PGI的Fortran编译器完成了该应用程序的一个版本。我们正在将它转移到Linux,我们可能会在其中使用他们的编译器。现在,我正在使用gfortran。我已经为这些网络调用创建了一个接口(interface),所有的东西都会编译和链接。下面的代码与我正在做的类似,只是接口(interface)和常量在一个模块中。PROGRAMMAININTEGER,PARAMETER::AF_INET=2INTEGER,PARAMETER::SO