首页 文章
  • 5 votes
     answers
     views

    编译具有多个部分的Fortran程序

    我对Fortran和整个英特尔编译器都非常陌生(我使用基于Windows的英特尔编译器和没有Visual Studio集成的IMSL库,因此只能使用命令行) . 问题应该非常简单:我需要编译一个Fortran程序,它存储为四个不同的源代码部分 . 主程序(和一些子程序)存储在名为central.for的代码文件中,还有三个文件,我们称之为s1.for,s2.for和s3.for,每个文件只包含一个...
  • 0 votes
     answers
     views

    是否可以在运行时编译并将子例程作为输入传递给另一个子例程?

    是否可以在运行时编译用户定义的子例程并将其作为输入传递给另一个已在Fortran中编译的子例程?
  • 2 votes
     answers
     views

    派生类型声明中的错误:此上下文中(1)处的变量必须是常量

    我有一个在这样的模块中声明的派生类型: MODULE dmotifs TYPE :: PRM INTEGER, PRIVATE :: nsp=4,nrx=8,maxprx=4 REAL, PRIVATE :: cref=1e-6,tref=1 REAL, DIMENSION(nrx,maxprx) :: k REAL :: input END TYPE PRM C...
  • 3 votes
     answers
     views

    派生类型中的可变长度数组

    我主要使用Python进行科学编程,并且没有很多Fortran(90/95)经验 . 对于我的一个项目,我想定义一个派生类型,并为该类型重载一堆运算符 . 关键的是,我想将派生类型的变量之一变为可变长度的数组;至少,我需要在代码的不同部分使用两种不同的长度 . 如何才能最有效地实现这一目标并避免代码重复? 我的第一种方法是使用可分配的数组,但在整个代码中包含多个分配语句,包括重载的运算符 . 在M...
  • -1 votes
     answers
     views

    Fortran代码给出错误[关闭]

    我从一本书中学习了这个Fortran程序,该书基本上运行良好,以适应某些数据的测试并提供输出 . 代码及其实际结果/输出如下: real*4 x(50),xc(50,20),omega(50) integer ir(50) real*8 xx c This code tests goodness of fit. n=47 c The method of Bak, Nielsen, and Mads...
  • 2 votes
     answers
     views

    将复杂数组的实部传递给fortran中的子例程

    是否有可能将复杂数组的实部传递给Fortran中的子程序而不将实部存储在另一个数组中并传递给它?例如代替 Z = complex array; X = real(Z) call foo(X) 请执行下列操作 Z = complex array call foo(real(Z)) 这给了我一个编译错误!我正在使用intel编译器ifort .
  • 2 votes
     answers
     views

    使用gfortran 4.8.5处理时出现SIGFPE错误

    我正在使用在Ubuntu 16.04 LTS上使用gfortran版本4.8.5编译的计算流体动力学软件 . 该软件可以使用单精度或双精度以及-O3优化选项进行编译 . 由于我没有必要的计算资源来运行双精度CFD软件,我正在使用单精度和以下选项进行编译 ffpe-trap=invalid,zero,overflow 我在包含asin函数的代码行上收到SIGFPE错误 - INTEGER, PAR...
  • 1 votes
     answers
     views

    fortran写输出:一行中的所有变量

    抱歉, 我尝试用不同的格式(1.4e-12,10 ......)写一个file.dat whit很多列(11) 当我尝试ro编写代码时,我使用以下fortran命令: WRITE(7,*) id,t,a,e,inc,capom,omega,capm,mass,radius 但是原始文件中的每一行现在都是用多行写的 . 从: 1222221 0.0 10.0 0.0 3.1415927 0.0 ...
  • 1 votes
     answers
     views

    Fortran 90中子例程和函数中的参数/变量的INTENT的含义

    关于Fortran子程序中的变量 INTENT ,我有几个问题 . 例如,几周前,我发布了一个关于不同Fortran主题的问题(In Fortran 90, what is a good way to write an array to a text file, row-wise?),其中一个回复包括定义 tick 和 tock 命令的代码 . 我发现这些对我的代码运行有用 . 我在下面粘贴了 t...
  • 6 votes
     answers
     views

    将数据写入列中的文件(Fortran)

    我需要在Fortran 90中将一些数据写入文件 . 我应该如何使用 WRITE (*,*) input 将值分组在 columns 中? WRITE 总是在每次调用后放一个 new line ,这就是问题所在 . 代码示例: open (unit = 4, file = 'generated_trajectories1.dat', form='formatted') do time_nr=0...
  • 3 votes
     answers
     views

    Fortran:将列添加到文件中(即跳过不同数量的水平空格)

    我是Fortran的血腥初学者(f90),一些显然容易出问题导致严重的头痛......感谢您帮我解决这个问题: 我的代码运行循环,处理数据并将它们写入文件 . 我希望将这些数据写在同一文件的列中,直到循环结束 . OPEN (unit=11,file=filename // '.csv') WRITE(11,'(i4,A1,f10.6)') NUM4 , tab, NUMfloat10_6 CLO...
  • 0 votes
     answers
     views

    如何从多个文件中读取数据并写入单个文件的列

    我在Fortran中是全新的,我需要编写一些相对简单的代码 . 我有一些文件(各种文件,例如200个文件);特定节点的每个文件,通过一些简化,每个文件包含: T(i), X(i) 这些是我的输入,我希望有一个输出文件包含: T(i) X(i)1 X(i)2 ... X(i)n 问题是我无法将输出文件的不同列中的数据分开,它们在1列中相继出现 . 我的代码是: PROGRAM Output i...
  • 11 votes
     answers
     views

    使用gdb和gfortran进行调试 - FPE

    我正在调试我添加的更大的数字程序 . 它是用fortran90编写的,用gfortran编译(最新版本适用于Mac),我正在使用gdb进行调试(同样是Mac的最新版本) . 我的添加有一个错误,我试图找到它,这是明确的,因为运行该程序不会产生预期的结果 . 当我在gdb中运行它时,我在结尾处得到以下输出: Note: The following floating-point exceptions ...
  • 1 votes
     answers
     views

    使用数组值函数作为另一个函数的参数

    我已将问题从更复杂的f90代码转换为以下内容: module userfunctions implicit none contains function Function1(Argument,ArgumentSize) ! Input integer, intent(in) :: Argume...
  • 3 votes
     answers
     views

    在Fortran 90中打开多个文件

    我想打开10,000个文件,文件名从 abc25000 开始直到 abc35000 ,并将一些信息复制到每个文件中 . 我写的代码如下: PROGRAM puppy IMPLICIT NONE integer :: i CHARACTER(len=3) :: n1 CHARACTER(len=5) :: cnum CHARACTER(len=8) :: n2 loop1: do i = 250...
  • -2 votes
     answers
     views

    Fortran randomely在文件中写入数据

    如何在FORTRAN中编写文本或dat文件,如2D整数数组,每次输入一个值,如果在任何行中没有值,只需在开头插入,但如果存在某些值,则插入值的末尾 . 这种值的插入可以是随机的,即可以首先是行号100然后是80然后是101然后2.每行中的条目数也是不同的 . 我还需要在最后使用这个文件,但我认为这将很容易,因为需要逐行信息 . Edit (what he ment possibly) :: 如何在...
  • 1 votes
     answers
     views

    Fortran矩阵生成代码错误

    这个fortran代码应该从txt文件中的简单矩阵表中复制数据,然后根据每行和每列的先前等级计算等级和平均值 . 出于某种原因,我无法获得等级或平均值打印出来,它们显示为空白或0或星标 . 该程序在从txt文件打印矩阵表后运行时崩溃,它表示错误是访问冲突 - 所以根本没有多大帮助 . 到目前为止,我的代码是: program calculate1 real,dimension(:,:),alloc...
  • 0 votes
     answers
     views

    FORTRAN遇到过早的EOL

    ~~求助,见编辑4) 我在OSX上用Java创建一个输入文件,当我尝试运行读取输入文件的FORTRAN程序时,我在第一行遇到EOF: At line 37 of file ../fortran.f (unit = 5, file = 'input2.txt') Fortran runtime error: End of file 第37行开始的地方: open (5,file='input2.t...
  • 1 votes
     answers
     views

    Fortran中数组中某些元素的总和

    我有这样一个数组: 1717.531 1717.364 1716.725 1716.723 1716.536 1716.304 1716.221 1715.998 1715.799 1715.702 1715.648 1715.254 1715.186 1714.733 1714.532 1714.266 1714.223 1714.094 1713.943 1713.873 1713.803 1...
  • 3 votes
     answers
     views

    Fortran未明确引用'gplot_'

    在过去的几天里,我无法获得一些Fortran代码进行编译(请注意,我不是此代码的作者,我是从author's web page下载的 . 它是开源的) . 主程序名为multitaper.f95,它使用名为plot和spectra的模块,以及名为mwlib.a和gplot.a的库 . 为简单起见,我将multitaper.f95,mwlib.a,gplot.a,plot.mod和spectra.m...
  • 4 votes
     answers
     views

    fortran 90中的自动宽度整数描述符

    我想在fortran 90中使用自动整数宽度描述符 . 我提到Output formatting: too much whitespace in gfortran这个问题说我可以使用 I0 和 F0,0 来获得"auto"宽度 . 这是我的示例代码(符合GNU Fortran编译器): PROGRAM MAIN IMPLICIT NONE INTEGER :: i REAL ...
  • 6 votes
     answers
     views

    Fortran DO循环,警告仅使用整数

    我在我的Ubuntu 15.04系统上安装了gfortran . 在编译Fortran代码时,DO循环仅要求获取整数参数,而不是实数值或变量 . 这包括循环变量和步骤表达式 . 为什么它也不能采取真正的 Value 观呢? 以下是一个程序取自here,练习3.5的嵌套do循环部分 . program xytab implicit none !constructs ...
  • -2 votes
     answers
     views

    fortran中的错误括号错误

    以下行中的fortran中的错误括号错误(行中的行不一定相同) . P. S, - 我正在使用强制编译器 QWE(8)=(1.+5.*HILF+RWS(6)*(2*((RWS(6)**2-1)/(HILF1)-RWS(6)-HILF1) IF (ZWEIP .EQ. 2) S(47)=0.25+(HILF)/300 IF (ZWEIP .EQ. 4) S(47)=0.2 +(HILF)/500...
  • -2 votes
     answers
     views

    在Fortran中运行子例程时出错

    我将这些作为运行线性集成的程序的一部分,这是我的函数和子程序,这是问题的一部分 SUBROUTINE interpol(x,f,xd,fd) IMPLICIT NONE REAL::linterp EXTERNAL linterp REAL,DIMENSION(5)::x REAL,DIMENSION(5)::f REAL,DIMENSION(9)::xd REAL (KIND=8),DIMENS...
  • 2 votes
     answers
     views

    在NetCDF中沿着无限维编写标量变量

    我正在尝试将流体动力学模型的时间变量写入netcdf文件(无限维变量) . 我在Fortran90中附加了一个简化的代码示例,突出了我的问题 . 根据用户指定的输出间隔(本例中为10次),在模拟期间多次调用写入netcdf文件的子例程 . 我可以在第一次调用子例程时创建文件并添加属性 . 在后续的子程序调用期间,我无法将启动和计数变量设置为正确,以便将时间变量写入文件 . 这是错误,在编写模型时间...

热门问题