fortran相关内容

在 Fortran 90 中模拟命名空间

Fortran 90 最麻烦的问题之一是缺少命名空间.在上一个问题中“你如何使用 Fortran 90 模块数据" 来自 Pete,已经讨论了 USE 在 Python 中表现得像“从模块导入 *"的主要问题:在模块中声明为公共的所有内容都按原样导入到导入模块的范围内.没有前缀.这使得在阅读一些代码时非常非常难以理解给定标识符的来源以及给定模块是否仍在使用. 在我上面链接的问题中讨论的一个可 ..
发布时间:2022-01-14 10:22:38 其他开发

如何将一个巨大的矩阵逐行写入文件(fortran 90)

我想将包含大量数据的矩阵逐行写入文件.例如,我有一个 100*100 的矩阵,我想在文件中以 100*100 的形式拥有它.但是,它不起作用.以下是我的代码和一些描述.N 和 M 是大约数百个整数.RECL 是我设置文件的预期长度,但这里似乎这个命令不起作用.当 N 设置为 99 时,输出为 198 行M 设置为 200. Vec 是双精度复数矩阵.如何输出 Vec 的值并保持其原始格式 N*M? ..
发布时间:2022-01-14 10:22:28 其他开发

gcc 的 asm volatile 是否等同于递归的 gfortran 默认设置?

我只是在 C++ 和 Fortran 中使用递归函数,我意识到 Fortran 中的简单递归函数几乎是与其等效的 C++ 函数一样快.现在,在进入这个之前,我知道这里有类似的问题,特别是: 为什么要添加程序集注释导致生成的代码发生如此巨大的变化? asm的工作volatile (“" : : : “记忆") 等效于 gfortran 中的 asm volatile 然而,我有点更具 ..
发布时间:2022-01-14 10:22:21 C/C++开发

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

我在我的 Ubuntu 15.04 系统上安装了 gfortran.在编译 Fortran 代码时,DO 循环要求只接受整数参数,而不是实数值或变量.这包括循环变量和步骤表达式.为什么它也不能取真实值? 下面的程序摘自这里,小节的练习3.5 嵌套的do循环. 程序 xytab隐式无! 为从 1 到 2 的 x 值构建一个 z=x/y 表,并且!y 从 1 到 4,步长为 0.5实数 :: ..
发布时间:2022-01-14 10:22:11 其他开发

Cholesky 分解 ScaLapack 错误

我收到以下错误,我不知道为什么. { 1, 1}: 在进入 PDPOTRF 参数号 2 时具有非法值{ 1, 0}:进入 PDPOTRF 参数编号 2 时具有非法值{ 0, 1}:进入 PDPOTRF 参数编号 2 时具有非法值{ 0, 0}:进入 PDPOTRF 参数编号 2 时具有非法值信息 我知道错误消息的含义,但我尽可能遵循网络上可用的过时文档,并尝试从网络上的工作示例代码中拼凑出并行 ..
发布时间:2022-01-14 10:22:00 C/C++开发

指向派生类型子例程的 Fortran 过程指针

在 Fortran 中,我需要一个派生类型内的过程指针,它可以指向多个子例程之一.这个问题似乎在 SO 上很常见: Fortran 将过程保存为派生类型中的属性 Fortran 2003 中的类型绑定过程重载 没有匹配的具体此类型绑定的通用子程序调用的子程序 带有过程参数的通用类型绑定过程 类型绑定过程作为参数 仅举几例.functions 这个问题的答案在第一 ..
发布时间:2022-01-14 10:21:51 其他开发

创建 FORTRAN 生成文件

我有一个由许多不同的 .F 和 .h 文件组成的 FORTRAN 源代码.我需要从中构建一个可执行文件,但我遇到了一些问题.到目前为止我制作的makefile(可能有错误,因为我是新手)是: # 编译器FC =/usr/bin/gfortran-4.5# 编译标志FCFLAGS = -g -c -fdefault-real-8 -fbacktrace -fno-align-commons# 链 ..
发布时间:2022-01-14 10:21:42 其他开发

为什么 gcc 数学库效率这么低?

当我将一些 fortran 代码移植到 c 时,令我惊讶的是,使用 ifort(intel fortran 编译器)编译的 fortran 程序和使用 gcc 编译的 c 程序之间的大部分执行时间差异来自三角函数的评估函数(sin、cos).这让我感到惊讶,因为我曾经相信这个 answer 解释的内容,正弦和余弦等函数是在微处理器内部的微码中实现的. 为了更明确地发现问题,我在 fortra ..
发布时间:2022-01-14 10:21:36 其他开发

BLAS dgemm 中 LDA 参数的目的?

Fortran 参考实现文档指出: * LDA - 整数.* 在入口处,LDA 指定 A 的第一个维度,如声明的那样* 在调用(子)程序中.当 TRANSA = 'N' 或 'n' 时* LDA 必须至少为 max( 1, m ),否则 LDA 必须在* 最小最大值(1,k).* 退出时不变. 但是,给定 m 和 k,我不应该能够推导出 LDA 吗?什么时候允许 LDA 大于 n(或 k)? ..
发布时间:2022-01-14 10:21:26 其他开发

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

我正在尝试在 Fortran 和 C++ 之间为科学计算应用程序做出决定.我不清楚 Fortran 在性能方面是否仍然优于其他语言.例如,我相信由于 Fortran 强制执行严格的别名,与 C99 之前的 C 相比,编译器可以进行更好的优化.我不确定 C++ 如何适合这里. 有什么指导吗? 解决方案 我看了 一些最新的 Fortran 标准中的东西,坦率地说,我印象深刻.20 年前我 ..
发布时间:2022-01-14 10:21:14 C/C++开发

C++ 中未读取科学的“d"符号

我需要读取一个数据文件,其中的数字以如下格式写入: 1.0d-05 C++ 似乎无法识别这种科学记数法!关于如何读取/转换这些类型的数字有什么想法吗? 我需要数字(即 double/float)而不是字符串.也许已经有一个类/头来管理这种格式,但我找不到它. 解决方案 Fortran 程序生成的文件报告 双精度数(科学计数法) 使用字母 D 而不是 E. 所以你的选择是: ..
发布时间:2022-01-14 10:20:56 C/C++开发

如何知道我们在 Fortran 77 中达到了 EOF?

所以假设我有以下子程序: 子程序 foo(a_date)字符*10 dummy, a_date打开(单位=1,文件='ifile.txt',状态='旧')读取(1, 100) 虚拟100格式(A10)a_date = 虚拟返回结尾 它只从文件中读取一行.但我想递归地阅读所有的行.因此,当我在主程序中递归调用子程序时,在达到 EOF 后出现错误.那么有没有办法阻止它,以便程序知道我何时到达EO ..
发布时间:2022-01-14 10:20:34 其他开发

fortran 复杂到真正的 fftw 问题

我目前正在做一个需要实现傅立叶变换和逆变换的项目.我正在测试我从在线示例修改的程序;打印或写入命令通常用于调试目的: 程序 testit包括“fftw3.f"双复出!,在真实的参数(N=100)尺寸输入(N),输出(N)整数*8 p,p2整数 i,j真正的 x真实的事实写(*,*)“数据中的东西"OPEN(UNIT=12, FILE="input.txt", ACTION="write", S ..
发布时间:2022-01-14 10:20:28 其他开发

不尊重精度

我将 Visual Studio (2010 SP1) 与 Fortran IMSL (2011) 一起使用,但我无法获得正确的精度: 程序证明使用,内在 :: iso_fortran_env隐式无整数,参数 :: ikind=selected_real_kind(p=8, r=99)真实(种类=ikind)::a=0.79真实(真实64)::b = 0.79真实(种类=16)::c=0.79实 ..
发布时间:2022-01-14 10:20:03 其他开发

Fortran 精确处理大实数

当我运行下面的代码时,我得到的输出是 6378136.5 而不是 6378136.3 程序测试隐式无真实*8 半径半径 = 6378136.3打印*,半径结尾 我已阅读此其他链接(Fortran 中实数的精度问题) 但它没有解释如何解决这个问题. 解决方案 发生这种情况的原因不是因为您使用的变量缺乏精度,而是因为您使用单精度数初始化了该值. 看看 这个答案一个很好的解释,以及一个 ..
发布时间:2022-01-14 10:19:53 其他开发

Fortran:从文本文件中读取和打印二维数组

我正在尝试读取一个 3x3 数组并将其打印出来,但出现了行尾错误: 文本文件包含以下数组: 1 2 34 5 67 8 9 这是我的代码: program myfile隐式无!声明变量整数 i,j!real, 维度(1:3,1:3) :: A整数,参数 :: M = 3, N = 3真实的,维度(1:M,1:N)::A!打开和读取数据打开(单位=10,文件='test_file_col ..
发布时间:2022-01-14 10:19:32 其他开发

Fortran 新手,关于写入文件的问题

我对 Fortran 完全陌生,对编程也很陌生.我正在尝试编译其他人编写的脚本.这给我带来了一些问题.代码的上半部分是: CC 打开直接访问输出文件 ('JPLEPH')C打开(单位 = 12,.文件 = 'JPLEPH',.访问 = '直接',.FORM = '未格式化',.RECL = IRECSZ,.状态='新')CC 读取和写入星历数据记录(GROUP 1070).C呼叫 NXTGRP( ..
发布时间:2022-01-14 10:19:16 其他开发

打印语句中引号中的字符

fortran-95 中 datetime 子例程的文档提供了有关数据和时间使用的示例.代码如下: 程序 test_time_and_date字符(8) :: 日期字符(10)::时间字符(5)::区域整数,维度(8)::值!使用关键字参数调用 date_and_time(日期、时间、区域、值)调用 date_and_time(DATE=date,ZONE=zone)调用 date_and_ti ..
发布时间:2022-01-14 10:18:56 其他开发