fortran相关内容
我想将一个包含大量数据的矩阵逐行写入一个文件。例如,我有一个100 * 100的矩阵,我想在表单100 * 100的文件中。但是,它不起作用。以下是我的代码和一些说明。 N和M是大约数百个整数。 RECL预计的长度我设置文件,但在这里看起来这个命令不起作用。当N设为99 且M设为200时,输出为198行.Vec是双精度复数矩阵。我怎样才能输出维克原始格式N * M的值?我的编译命令是“ifort
..
我对模块内部的接口块的使用以及使用CONTAINS语句为模块内部的过程创建“显式接口”感到困惑。 我通常使用模块内的接口块编写过程。例如, MODULE ModExample INTERFACE SUBROUTINE Sumatory(a,b,c) IMPLICIT NONE INTEGER,INTENT(IN):: a INTEGER,INTENT(OUT):
..
在Fortran中我需要一个可变大小的数组。在C ++中,我会使用向量。所以我有一个函数如 $ b $ pre $ $ $ $ $ $ $ $ $ $ $ $整数函数append(n,数组,值)$ b $整数,指针,尺寸:) ::数组 整数,指针,维(:) :: tmp_arr 整数n if(size(array).eq。n)then allocate(tmp_arr(2 * siz
..
对我们fortran代码中的一个进行分析,有两个子程序占用了大部分的计算时间(22.1%和17.2%)。在每个程序中,约5%的时间花在分配和释放内存上。这些例程看起来像 MODULE foo CONTAINS SUBROUTINE bar( ...) ... IMPLICIT NONE ... REAL,ALLOCATABLE,DIMENSION(:, :)
..
我有一个由许多不同的.F和.h文件组成的FORTRAN源代码。我需要从它构建一个可执行文件,但是我遇到了一些问题。到目前为止我生成的makefile文件(这可能会产生错误,因为我刚接触到这个文件): #compiler FC = /usr/bin/gfortran-4.5 #编译标志 FCFLAGS = -g -c -fdefault-real-8 -fbacktrace -fn
..
在我目前的工作地点,有少数可能有两到三名员工添加和维护Fortran77代码的功能。当我第一次被雇用时,我简略地考虑过在我改变主意后不久就想要成为古代语言的流利人员。 这个结论来自多方面的原因。最初我承认陡峭的学习曲线把我推开了。 (直接关系到我的大多数程序经验都是用更高级的语言编写的,与Fortran不同的是,功能复杂,功能复杂,令人难以置信)。但是即使在我开始对语言进行一些简单的理解之后
..
我需要为这个项目做出贡献,我认为我应该谨慎行事首先了解源代码。 作为第一步,我想要显示各种源文件之间的相互依赖关系,即哪些源文件需要哪些模块。据我所知,自动化方法存在于其他语言,并产生一个图形,可以使用Graphviz构建。 但是有谁知道那里的软件可以为Fortran 90代码做这件事? [由于无处不在的FORTRAN 77,搜索interwebs的Fortran帮助是一个真正的
..
定义PI的动机是什么 PI = 4.D0 * DATAN(1.D0) 在Fortran 77代码中?我理解它是如何工作的,但是,理由是什么? 解决方案 此样式可确保ANY体系结构上的最大精度为在为PI分配一个值时使用。
..
我想从Python中的Fortran共享库中调用一些函数。我在网上找到了一些链接并阅读它们,根据我发现的,我应该这样做: libadd = cdll.LoadLibrary ('./libbin.so') 来加载共享对象。但是,此共享对象包含来自另一个共享库的一些符号。我阅读了cdll的帮助,但似乎无法同时加载多个共享对象文件。如何从Fortran库调用函数,这很可能是由英
..
我试图在Fortran中编写一个代码,该代码生成了以下输入1,2,3,并用重复生成了排列: 111 112 113 121 122 123 。 。 。 显然会有3 ^ 3 = 27(n ^ k)的组合。有没有人知道生成这样的算法的算法? 解决方案 以下是一个解决方案: $ p $ module perm_mod 包含 子程序print_permutat
..
我正在刷新openmp,并陷入了这个奇怪的境地。剃掉了一堆,我创建了这个最小的小案例,显示问题 b integer,parameter :: n = 10000000 integer :: i real :: x(n) do i = 1,n x(i)= 0.0d0 enddo 结束程序 不指定标志,gfortran 4.3.4在mac(10.6)上编译,程序正确执行。然而
..
我无法弄清楚这个“9999”在e20.8的前面,在这个Fortran写作声明的标签中是什么。 是否不涉及代码中的任何其他行。换句话说,在程序的其他地方没有标注9999的行。 write(11, '(9999e20.8)')(9999.0,i = 1,2 *(numant + numunique)) 我很混乱 - 我还没有找到谷歌网络搜索的答案,但我想我得到关于写入语句
..
g ++ - 我试图链接使用g ++生成的.o文件和使用gfortran生成的另一个.o文件。 c mycppcode.cpp 生成文件 mycppcode.o 和命令 gfortran -c myfortrancode.f 生成文件 myfortrancode.o 当我链接这两个文件得到一个输出文件 g ++ -O
..
我正在使用GFortran和CodeBlocks,但我遇到了有关模块和多个文件的问题。 i不断收到此错误: 致命错误:无法打开模块文件'mesh.mod' (1):没有这样的文件或目录 由于某些原因,GFortran没有构建“网格”。 mod'文件。 当我将所有代码放在一个.f90文件中时,不会发生这个问题。 $ b Bellow是发生此错误的代码示例。 p>
..
可能存在重复: $ b 我在Fortran 90中有这样的代码行: OVERN2 = 1.d + 0 / DBLE(FLOAT( NMODE2)) NMODE2 是一个整数, OVERN2 是一个 REAL * 8 。 你能请向我解释这条线是干什么的?我不明白 .d + 0 / 部分? ,如果您还可以将其翻译为C或任何其他更简单的语言。 解决
..
我有源代码,所以我知道第一个“块”是一个字符* 1名称(80)等字符数组。所以我从 $ b f = open(文件名,'rb') 字节= 80 name = struct.unpack('c'* bytes,f.read(bytes)) 和 name 是长度为80的长元组,由长度为1的字符串组成;其中的一些内容是十六进制字符串(例如, \x00 )。 解决方案大多
..
我想使用Fortran创建一个动态变量名称。 变量名将通过连接字符串和另一个字符串/整数获得。然后我想用这个变量名来存储一个值或者其他变量。 例如 $ pre> !赋值给2个变量 my_string = h my_integer = 1 !执行连接导致动态变量名h1 !将变量h1的值设置为另一个整数值 h1 = 5 解决方案 我想你想使用一个数据
..
在下面的fortran77代码中,有这个子程序定义 SUBROUTINE MSIRNS(D,NOBST,N,X,R ,RR,SURFT, ,INOBSI,ISUR,IDELTS,IRELPS, ,RNOBSI,RSUR,RDELTS,RRELPS, ,OBSD,*,*) $ b 最后两个参数的含义,星号是什么? 以及如何我可以调用函数吗? 我尝试了所有这些变体
..
我对Fortran来说是全新的,而且对编程来说很新颖。我正在尝试编写其他人编写的脚本。这给我一些问题。代码的上半部分是: C 打开直接访问输出文件('JPLEPH') C OPEN(UNIT = 12, 。FILE ='JPLEPH', 。ACCESS ='DIRECT', 。FORM ='UNFORMATTED', 。RECL = IRECSZ, 。STATUS ='NEW')
..
我正在编写一个程序,我将在两个主要情况下使用:1D和2D。通过外部文件读取来读取 ndim 维 read 我想在模块 param 中做。 我有各种矢量的声明,其大小取决于维度。所以显然我必须在我的主程序开始时计算这些大小。这样做的正确方法是什么? 模块尺寸 使用prec 使用参数$ b我想使用一个模块但是失败。 $ b隐式无 整型(int32),参数:: nip = 49!内点数 包
..