fortran90相关内容

具有更多参数和集成的函数

我有一个简单的问题,但我无法在任何地方找到解决方案.我必须集成一个函数(例如使用 Simpson 的规则子例程),但我必须将多个参数传递给我的函数:一个是我稍后要集成的变量,另一个只是来自不同的值我无法在函数内部执行的计算. 问题在于 Simpson 子例程只接受 f(x) 来执行积分,而不接受 f(x,y). 根据 Vladimir 的建议,我修改了代码. 下面的例子: 程序 ..
发布时间:2022-01-14 09:42:05 其他开发

无法通过自制软件安装 gfortran

我在尝试安装 gfortran 时收到此消息. ~$ brew install gfortran错误:没有可用的 gfortran 公式GNU Fortran 现在作为 GCC 的一部分提供,并且可以安装:酿造安装 gcc 我的问题是如何使用自制软件或端口安装 gfortran? 或 如果现在 GNU Fortran 是 GCC 的一部分,我如何使用 gcc 编译 fortran ..
发布时间:2022-01-14 09:38:19 其他开发

将大型数组写入fortran文件的最佳方法?文本与其他

我想知道将大型 fortran 数组(5000 x 5000 单精度实数)写入文件的最佳方法.我正在尝试保存数值计算的结果以供以后使用,因此它们不需要重复.根据计算,每个数字 5000 x 5000 x 4bytes 是 100 Mb,是否可以将其保存为只有 100Mb 的形式?有没有办法将 fortran 数组保存为二进制文件并将其读回以备后用? 我注意到将数字保存到文本文件会产生比所保存 ..
发布时间:2022-01-14 09:37:30 其他开发

如何调试 Fortran 90 编译错误“There is no specific subroutine for the generic 'foo' at (1)"?

我正在尝试使用 iso_c_bindings 模块将 Fortran 2003 绑定编写到 CUFFT 库,但是 cufftPlanMany 子例程(类似于 FFTW 库中的 sfftw_plan_many_dft)存在问题.p> 绑定本身如下所示: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ..

Fortran 中函数返回值的直接索引

是否有可能直接在函数的返回值上使用索引?像这样的: readStr()(2:5) 其中readStr() 是一个返回字符串或数组的函数.在许多其他语言中这是很有可能的,但是 Fortran 呢?我的示例中的语法当然无法编译.有没有其他语法可以使用? 解决方案 不,这在 Fortran 中是不可能的.但是,您可以更改您的函数以采用额外的索引数组来确定返回哪些元素.这个例子说明了这种可能性 ..
发布时间:2022-01-14 09:35:01 其他开发

传递字符串以在 Fortran 子例程中执行

在下面的子程序中,我想传递一个名为 str 的字符串变量.如果是'poly'、'gaus'、'slat',那么它有一个预定义的动作(fval =见下面的代码).我想让用户指定要使用的函数并将其作为字符串变量传递. 那是…… 如果 str = '3*cos(i*t)',那么我希望 fval 等于 3*cos(i*t).如何让 Fortran 将输入的字符串解释为由 Fortran 执行的 ..
发布时间:2022-01-14 09:34:48 其他开发

在 Fortran 中读取具有未知行数的文件

英雄我使用的新代码.我已经尝试过了,如果我先声明了它,它就可以工作,这不是我想要的.我需要知道总行数(n) 然后在我的模拟中使用该数字.但是,在变量声明中,我需要在读取数据之前减小 xy(n),如果这样做,代码将不会运行. 数据文件是两列随机模拟的正常数据 这样说吧 1 32 43 64 85 96 87 18 999 88 我尝试了以下代码来确定 n 但它不起作用! 程序读取 ..
发布时间:2022-01-14 09:34:15 其他开发

Fortran 意图(inout)与省略意图

良好的实践要求 Fortran 中的子例程参数每个都应具有指定的意图(即 intent(in)、intent(out) 或 intent(inout) 描述 这个问题): 子程序栏(a, b)真实的,意图(in)::a真实的,意图(输入)::bb = b + a... 但是,不指定意图是有效的 Fortran: 子程序栏(a, b)真实的,意图(in)::a真实的::bb = b + a.. ..
发布时间:2022-01-14 09:33:28 其他开发

循环变量文件名

我正在使用 Fortran 对拆分为多个文件的庞大数据集进行计算.文件的名称是: maltoLyo12per-reimage-set1.trajmaltoLyo12per-reimage-set2.trajmaltoLyo12per-reimage-set3.traj 我编写的计算代码如下: fileLoop: 做 j = 31, 34OPEN(unit=31,status='old',fi ..
发布时间:2022-01-14 09:33:09 其他开发

在 Fortran 90 程序中使用 do 循环读取 n 帧的不同行数?

有一个文件有 1000 帧.每帧包含不同数量的行.每行有两列整数.但是,我不知道每帧包含多少行.每一帧都由一个空行分隔.我想读取这些值并将它们存储在一个数组中.但是,我无法分配数组大小,因为我不知道每帧有多少行.所以,我有两个问题: 如何使用“do"循环读取 fortran90 程序中的不同行数?我无法使用“计数控制执行"循环,因为我不知道每帧中的确切行数. 如果我不能更早地分配数组的大小 ..
发布时间:2022-01-14 09:32:26 其他开发

Fortran 子例程返回错误值

嘿,我正在开发一个 fortran 程序,但遇到了一个奇怪的问题.当我尝试在调用特定子例程之前直接输出数组的一些值时,我得到了正确的值.然后我尝试在启动子程序时输出相同数组的一些值,它们为 0.我最终在子程序之后输出数组的值,并且这些值恢复到预期值.谁能帮我理解为什么?我的代码如下: 首先,在主函数中调用子程序,我想在写语句中输出值: if (iter .eq. 5) thenwrite( ..
发布时间:2022-01-14 09:32:15 其他开发

Fortran 数组无法在函数中返回:不是 DUMMY 变量

作为 Fortran 90 自由格式的新手,我真的很想知道为什么以下代码片段不起作用: 程序测试2隐式无!!!一个练习 f90 写作的程序.!定义双精度数据整数,参数 :: dp = kind(1.d0)实数(dp) :: a(3), b(3)整数 :: 我a = (/(i, i=1, 3)/)b = (/(i, i=1, 3)/)写 (*, *) m31tensorprod(a, b)包含函数 ..
发布时间:2022-01-14 09:31:45 其他开发

Fortran 中结果变量的用途是什么?

在 Fortran 中,有两种标准方法可以从函数返回结果.第一种是将函数的返回值赋给函数名. 函数 foo()整数 :: foo富 = 10结束函数 foo 在 Fortran 90 中标准化的第二种形式是通过“结果"变量. 函数 foo 结果(res)整数 :: res水库 = 10结束函数 foo 调用任一形式的函数都会返回值 10.我的问题是,Fortran 90 委员会引入结果变量 ..
发布时间:2022-01-14 09:30:59 其他开发

fortran中的函数,传入数组,接收数组

我有这个功能,如下图所示.它传入两个向量,每个向量具有三个值,并且应该传递一个具有三个值的向量.我这样调用函数: Fr = Flux(W(:,i),W(:,i+1)) 我通过弄乱代码、尝试纯函数和模块以及研究错误语句(我将在底部包含)意识到的是,fortran 正在读取我的函数 Flux,并认为输入向量是尝试从数组中调用一个条目.这是我对正在发生的事情的最佳猜测.我在实验室里四处询问,大多数人 ..
发布时间:2022-01-14 09:30:12 其他开发

Fortran SAVE 语句

我已经阅读了(英特尔的)语言参考文档中的 save 语句,但我不太了解它的作用.有人可以用简单的语言向我解释一下 save 语句包含在模块中的含义吗? 解决方案 原则上,当模块超出范围时,该模块的变量变得未定义——除非它们使用 SAVE 属性或 SAVE 声明使用声明.“未定义"意味着如果您再次使用该模块,则不允许您依赖具有先前值的变量-当您重新访问该模块时它可能具有先前的值,或者它可能没 ..
发布时间:2022-01-14 09:29:24 其他开发

定义返回数组的函数

我有以下代码: 程序 function_as_an_array隐式无整数:: 我整数,参数:: N=10真实*8:: x(N),y(N),f(N)做 i=1,Nx(i)=浮点数(i)结束做调用 func(f,N,x)打开(单位=20,文件='test.dat')做 i=1,Ny(i)=f(i)写(20,*) x(i),y(i)结束做关闭(20)停止结束程序 function_as_an_arr ..
发布时间:2022-01-14 09:28:13 其他开发

gfortran 不允许具有不同组件长度的字符数组

请看下面的例子 程序测试字符(10),尺寸(5)::模型=(/“feddes.swp",“jarvis89.swp",“jarvis10.swp",“pem.swp",“van.swp"/)结尾 返回如下错误: (1) 处的数组构造函数中的不同字符长度 (10/12) ifort 编译器没有错误.为什么 gfortran 会出现这种情况,有什么办法可以规避这个问题? 解决方 ..
发布时间:2022-01-14 09:28:06 其他开发