问题标签 [fortran90]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
arrays - 遍历 FORTRAN 字符数组
好的,我在使用以下 Fortran 90 代码时遇到了很多麻烦。程序测试人员应该创建一个名为 input 的字符数组,将所有条目初始化为空格字符,然后从用户那里获取一些字符串并将其存储在 input 中。getLength 函数应该返回函数中不是空格的最后一个索引;所以如果用户输入字符串“你好,你好吗?”,那么 getLength(input) 应该返回 11。它应该从给定数组的末尾开始工作,并标记第一个非空格字符出现的位置. 当我实际尝试运行它时,gfortran 说:“错误:在 (1) (REAL(4)/INTEGER(4)) 处返回函数 getLength 的类型不匹配。这是什么意思,我做错了什么,以及如何我应该修复它吗?提前致谢!
parsing - 从文本文件中将关键字后面的数字读入 Fortran 90 中的数组
我有很多这种格式的文本文件
我剪下的部分包含各种格式的其他各种数据。文件格式不一致(机器生成),唯一可以确定的是关键字 TURX 可能出现多次。如果它单独出现在一行上,那么接下来的几行将包含我需要提取到数组中的数字。最后一个数字将有一个空格,然后是一个正斜杠 (/)。然后我可以在之后的其他操作中使用这个数组。
如何在 fortran 中“搜索”或解析未知格式的文件,以及如何获得一个循环来获取其余数据?我对此真的很陌生,我必须使用fortran。谢谢。
string - 在 Fortran 中读取带空格的字符串
如果要从用户读取的字符串包含空格,则在 Fortran 中使用 read(asterisk, asterisk) 似乎不起作用。考虑以下代码:
如果用户输入字符串“Hello, my name is John Doe”,输入中只会存储“Hello”;忽略空格后的所有内容。我的假设是编译器假定“Hello”是第一个参数,而“my”是第二个参数,所以要捕获其他词,我们必须使用类似 read( , ) input1, input2, input3 ...等等。这种方法的问题是我们需要为每个输入创建大型字符数组,并且需要确切知道将输入多少个单词。有没有办法解决??某些功能实际上会读取整个句子、空格和所有内容?非常感谢!
fortran - Fortran 的彩色终端输出
我的程序将计算状态输出到终端并包含相当多的信息。如果可能的话,我想对文本的部分进行颜色编码。
通过参考本网站上的线程,我已经了解了如何在 Bash 和 C++ 中完成它。但是,我无法使用其中任何一个来在 Fortran(现代)中获得相同的结果。例如,我尝试了这个示例代码,我认为它应该可以工作:
我本来希望输出是“一种很棒的颜色是粉红色”,其中粉红色是粉红色。相反,我得到“一种很棒的颜色是 \033[95m 粉红色 \033[0m”。我不明白我错过了什么。
如果我将代码中的打印行替换为: CALL EXECUTE_COMMAND_LINE("echo 'A great color is \033[95m pink \033[0m.'") 那么我会得到所需的输出。但是我不想继续从我的代码中调用 echo 。有什么办法可以得到彩色输出?
谢谢!
fortran - 如何区分 Fortran 中的“堆栈”内存和动态内存?
假设我有一个foo()
调用routine 的routine bar(argument)
。Argument
可以是“堆栈上”的声明(与 C 平行),也可以是动态分配的。如何在内部查询bar()
内存argument
是用第一种还是第二种方法分配的?
binding - 如何使用 Fortran 90 中的 CUFFT?
如何在用Fortran 90编写的程序(使用GNU Compiler Colection 4.4.5 编译)中使用CUFFT 库(来自 nVidia 的 CUDA SDK 4.0.13),据我所知,它只有 C 绑定?gfortran
我对一维和二维 FFT 计算都感兴趣。
mpi - 将 MPI_Gatherv 用于 Fortran
这个问题遵循MPI_type_create_subarray 和 MPI_Gather上的现有线程。我的目标是使用 Fortran 90 中的 MPI_Type_Create_Subarray 和 MPI_Gatherv 将来自所有从属进程(数量为 4)的更大数组的子数组收集到主进程(rank=0)上的更大数组中。这将帮助我理解 MPI_Gatherv项目。以下是我的示例代码:
但是,执行此代码会导致forrtl: severe(174): SIGSEGV, segmentation fault occurred
.
似乎我试图指向一个在收集时尚未初始化或声明的数组的变量/位置。我尝试以多种方式进行调试,但徒劳无功。
提前谢谢了。
function - Fortran 90/95 中的函数接口
我有一个程序调用一个子程序,然后调用一个函数。Fortran 对函数类型声明的要求让我有些困惑。我已经在函数中声明了类型(即真正的函数 foo(...)),并且无论我是否在子例程声明部分中声明了该函数,程序都可以正常工作。
我的具体问题是,在子例程中声明该函数是否可能会导致将来出现意外行为?我也看到了接口块,想知道这是否也有必要。
更一般地说,我还对 Fortran 在“幕后”所做的事情以及为什么声明函数或使用接口块或多或少很重要感兴趣。
编辑:一些示例代码:
module - Fortran 模块中的格式语句
我有一个带有许多子例程的模块,这些子例程都使用相同的输出格式集。现在,我必须在每个子程序中声明格式。有没有办法在模块中声明它们以便所有子例程都可以访问它们?
linux - f77 中有多个无法识别的选项
我正在尝试编译一些由其他人开发的完整 Fortran 代码。makefile 引用 CC、F77 和 F90。我们的服务器上没有 F90,但如果事实证明确实需要它,我可能会要求它。
无论如何,我认为我已经适当地设置了环境变量(我所做的只是取消注释正确的行),所以我将文件cp'd到makefile,输入make并得到以下错误。
我不确定你们是否能够提供帮助,但不幸的是,由于许可问题,我认为我不适合在这里复制代码。无论如何,我不确定如何判断无法识别的选项是否是开发团队系统独有的,或者它们是否是由于我的系统的某些缺陷(即我应该让我的高贵系统管理员安装 f90),或者其他一些问题。我还应该承认,我对 Fortran 几乎一无所知,并且只使用过 make 和 cc,所以第三种可能性是我应该把责任转嫁给其他人,但我认为我团队中的任何人都不知道 Fortran . 一如既往,感谢您的帮助!