fortran相关内容

两个字符串的连接不起作用

我有下面的代码,但它不起作用: 字符* 260 xx,yy,zz xx ='A' yy ='B' zz = xx // yy 当我在Visual Studio中调试代码时, 变量 xx 包含'A' 变量 yy 包含'B' 变量 zz 包含'A' 为什么不是 zz 包含'AB'? 解决方案 您定义 xx 长度为260个字符 ..
发布时间:2018-03-16 17:01:10 其他开发

从Julia调用Fortran函数,返回一个数组:未知函数,segfault?

我想从Julia的Fortran库中调用函数。在这种情况下,我有一个函数 eye ,它接受一个I​​nteger,并返回一个二维整数数组。 $ gfortran -shared -fPIC -o matrix_routines.so matrix_routines.f90编译为共享库 之后我试图从交互式的Julia解释器中调用它(名字从 nm ): julia> ..
发布时间:2018-03-16 17:01:05 其他开发

在被调用的子例程/函数中,强制Fortran中的intent(in)声明变量也是常量

在一个子程序或函数中,输入变量可以用intent(in)定义,并且编译器确保在子程序中该变量不能被改变。只要变量被传递(通过引用)到另一个子例程,该子例程就能够在没有编译器警告的情况下更改变量。 这是用gfortran测试过的代码: program Test 整数i i = 21!一半是真的 call test(i) write(*,*)“21 expected,but is ..
发布时间:2018-03-16 17:01:02 其他开发

为什么我的32位Fortran / C DLL不能在MSYS2中编译?

我试图使用gcc(5.3。)在MSYS2( msys2-x86_64-20160205 )中的64位Windows 7上编译具有混合Fortran / C代码的DLL。 0)。我想编译它32位。 (如果省略 -m32 标志并将其编译为64位,那么它工作得很好。) 因为我对这类事情没有经验,所以我可能会犯一些非常愚蠢的错误......所以我提前道歉! 我看起来像砖墙我已经成功(我认为)安 ..
发布时间:2018-03-16 17:00:57 C/C++开发

康柏视觉fortran和gfortran之间的Fortran 90差异

这可能是一个具体问题,但我认为它与这两种编译器(Compaq visual Fortran Optimizing Compiler Version 6.5和minGW)如何处理内存有关。我想了解在Fortran 90中使用指针的最佳做法(我必须使用它)。下面是一个示例代码,它应该可以通过gfortran编译器的一个警告“开箱即用”:“赋值函数出现在赋值的RHS上”,并且没有其他编译器的警告。 ..
发布时间:2018-03-16 17:00:51 其他开发

if语句中的错误需要标量逻辑表达式

在一个子程序中,我尝试创建一个语句,但是只有当我直接输入一个数字时它才会起作用,只要我用变量替换数字,它就会给出错误: ||错误:IF子句需要标量LOGICAL表达式| 在这个例子中,var是一个介于0和1之间的实数。 if(var%type3 test = 1 end if 有人可能知道我们做错了什么。因为这个错误并没有给我们提供任何线 ..
发布时间:2018-03-16 17:00:45 其他开发

接口不匹配 - 高阶函数

我试图在Fortran中“复制”更高阶的函数。 模块rk4 包含 纯函数f(t,x)结果(fx) 实数,维(1),意图(in):: x 实数,意图(in):: t 实数,维(1):: fx fx = x 结束函数f 函数step(x,f,dt)result(xn) real,intent(in):: dt real,intent(in),dimen ..
发布时间:2018-03-16 17:00:43 其他开发

在Fortran中实现一组队列的简单方法?

假设我需要在一个过程中实现至少5个队列,每个队列都来自不同的定义类型。如何以简单和短的方式来实现这一点? 另一种看待这个问题的方式是我找到的方式:在Fortran中定义我自己的结构之后,我不得不用C ++编写程序,然后我看到使用模板是多么容易......现在,我想用我的母语也是一样...... 似乎知识不是总是很舒服 非常感谢! 解决方案 模板,有 Pyf95 ++ 。它为Fo ..
发布时间:2018-03-16 17:00:42 其他开发

在Fortran模块中生成随机数

现在我面临的问题是,在一个模块中,使用种子生成随机数用于函数循环,但每次调用该函数时,都会使用相同的随机数(因为种子显然是相同的),但是它假设它必须继续这个系列,或者至少它在调用之间必须是不同的。一种解决方案可能是主程序为模块提供了一个新的种子,但我认为这可能是另一个优雅的解决方案。 我使用 Mersenne Twister 生成器,由许多人建议。 新增 我的模块中的函数(它是一个函 ..
发布时间:2018-03-16 17:00:31 其他开发

文本文件的行数

我试图创建一个接受文件名的函数(即“data.txt”)并产生该文件的行数。 data.txt: 24 42 45 54 67 76 89 98 12 21 99 99 33 33 下面这段代码是我尝试构建一个函数,文件名“data.txt”并产生文件的行数。代码的第一部分(第1-12行)定义了函数,第二部分(第14-19行)是我在程序中调用函数 ..
发布时间:2018-03-16 17:00:28 其他开发

在Fortran90 +中使用可分配组件进行二进制读/写数据类型

保存样本数据的变量 save 的二进制快照的最佳方法是什么在下面的类型? 程序save_it 核心 整数,维度(8): :indx 结束类型核心 类型示例 integer :: a real * 8,dimension(:),allocatable :: b 类型核心),维(:),allocatable :: c 结束类型示例 !这里是 类型(示例):: save ..
发布时间:2018-03-16 17:00:19 其他开发

fortran:等待打开一个文件,直到被另一个应用程序关闭

我有一个fortran代码,需要读取一系列ascii数据文件(全部大约25 Gb)。基本上,代码打开给定的ascii文件,读取信息并使用它来执行一些操作,然后关闭它。然后打开另一个文件,读取信息,执行一些操作并再次关闭它。其余的ascii文件等。 总的来说,每次完整的运行大约需要10小时。我通常需要使用不同的参数运行多个独立的计算,我所做的是按顺序运行每个独立的计算,以便最后如果我有10个独 ..
发布时间:2018-03-16 17:00:09 其他开发

“DATA INT /'STRING'/”与gfortran编译时出现问题

我有一些旧的(〜1995)遗留Fortran代码,它是用g77编译器编译的,并且在gfortran上失败。 问题出现在以下几行(不兼容的类型转换,字符转换为整数): pre $ $ $ $ c $ INT $ CKYAN DATA CKYAN /'KYAN'/ 变量CKYAN仅作为触发器使用一次: IF(IWVTX.EQ.CKYAN)THEN CALL FDCVERTE ..
发布时间:2018-03-16 17:00:06 其他开发

是否有可能让isnan()在gfortran -O3 -ffast-math中工作?

我想用gfortran编译一个程序,并启用 -O3 -ffast-math ,因为它提供了很好的性能提升。我很困惑,gfortran的 isnan()抓住了一些NaN,但不是全部。阅读后 检查双精度(或浮点数)是否是C ++中的NaN 可能导致依赖于 IEEE的确切实现的程序的错误输出或ISO规则/数学函数的规范。 根据gcc 4.7.2的手册页。那么如果数字不是按照IEEE标 ..
发布时间:2018-03-16 17:00:03 其他开发

在Fortran中实现匿名函数

这个问题是我以前的问题的继承者实现最小化方法。在当前的问题中,我简化了我的问题,这里是示例MATLAB代码。我想在Fortran中实现它。 %Script script1.m clear vars; 关闭所有; clc; $ b $ fun1 = @(x1,x2)3 * x1 ^ 2 + 4 * x2 ^ 2 + 5 * x1 + 6 * x2 + 10; lower ..
发布时间:2018-03-16 16:59:58 其他开发

在单元5或6上打开文件

OPEN(5,FILE =')在Fortran代码片段中进行读写操作WKDAT.dat',STATUS ='OLD') OPEN(6,FILE ='WKLST.dat',STATUS ='UNKNOWN') 我知道默认情况下,单元号5用于从键盘输入,单元号6用于显示在屏幕上。也可以使用 * 。 但是在上面提到的Fortran代码中,单元号为5,文件名给出“WKDAT. ..
发布时间:2018-03-16 16:59:55 其他开发

元素矩阵乘法的并行化

我目前正在优化部分代码,因此需要执行一些基准测试。 我有 NxN - 矩阵 A 和 T ,并且希望将它们相乘并将结果保存在 A “,即 A = A * T 。由于这段代码不是可并行化的,我把这个任务扩展到了 $ $ $ OMP PARALLEL do j = 1,N do i = 1,N A(i,j)= T(i,j)* A(i,j) end do end do !$ OMP ..
发布时间:2018-03-16 16:59:52 其他开发

OPENMP F90 / 95嵌套DO循环 - 与串行实现相比,问题得到改善

我做了一些搜索,但找不到与我的问题有关的任何内容(对不起,如果我的问题是多余的!)。无论如何,正如标题所述,我无法改进我的代码的串行实现。我需要并行化的代码片段如下所示(这是使用OpenMP的Fortran90): do n = 1,lm do m = 1,jm do l = 1,im sum_u = 0 sum_v = 0 sum_t = 0 do k = 1,l ..
发布时间:2018-03-16 16:59:47 其他开发