fortran90相关内容
我是Fortran的新手.给了我一个应该在Fortran 90中使用的文件,但该文件是使用Lahey Fujitsu编译器进行编译的(稀疏文档指出应使用lf95 filename.f -out compiled_name @imsllf95.cmd进行编译).但是,有些行用c进行了注释,据我所知,这是在Fortran 77中进行注释的方式.此外,矩阵的声明类似于REAL*8, DIMENSION(
..
这是数据的写入方式(它是浮点数的二维矩阵.我不确定大小). open(unit=51,file='rmsd/'//nn_output,form='unformatted',access='direct',status='replace',& recl=Npoints*sizeofreal) !a bunch of code omitted write(51,rec=i
..
Fortran 90模块是e灭的生物.我使用(单一)模块已经有一段时间了,并且取得了一些成功(使用Intel Visual Fortran和Visual Studio 2010进行编译).然后,我编写了另一个模块,并尝试在另一个函数中使用它,然后收到此错误: error #7002: Error in opening the compiled module file. Check INC
..
我想像下面的代码那样,将x值作为x:-50〜50和y:-50〜50范围内的坐标来计算. program test implicit none ! --- [local entities] real*8 :: rrr,th,U0,amp,alp,Ndiv real*8 :: pi,alpR,NR,Rmin,Rmax,z
..
我有一个Fortran 90程序,其结构如下所示. subroutinne A中的步骤compute the 2D array myMatrix(1:N,1:N)很昂贵.它仅取决于全局变量N,并且只需要计算一次. “其他步骤"指的是“其他步骤".子例程中的值不会更改myMatrix的值.当前,只要调用子例程,就会计算myMatrix. 是否有一种方法可以编写二维数组myMatrix仅计算一次
..
以下代码在Linux系统上使用pgf90进行编译时会产生分段错误,而当我在Windows上使用Intel Visual FORTRAN时,该代码会成功运行. program main implicit none integer:: a(3), b(3) ,c(3) a=[3, 4, 5] b=[1, 2, 3] call sub(a,b,c) write(*,*)'a+b = ',c
..
我是Fortran编程领域的新手,在测试了一些程序之后,我已经对如何编写程序有了感觉.现在,我正在尝试使用更困难的程序,但遇到了一个我自己无法解决的问题.我已经用谷歌搜索了这个问题,但是找不到合适的答案... 所以我想也许会有一两个Fortran程序员可以帮助我解决这个问题. 该程序非常简单,只需将两个矩阵彼此相乘即可.我试图编写一个函数来执行任务,并将结果矩阵返回给调用者. 为了使程序更具
..
搜索没有任何结果之后,我想问一个问题,关于包含可选参数的子例程以及编译器如何处理它们(运行时/编译时).考虑下面的示例程序. module CONTAINS_ABC contains subroutine ABC( a, b, c) implicit none real, intent(in) :: a real, intent(in),
..
我可以使用Fortran 95编译器来编译Fortran 90文件吗? Fortran 95似乎有很多东西,但Fortran 90似乎没有. 解决方案 这个可以: NAGWare f95编译器5.1版 另请参阅: 活动页面的Fortran资源列表 Michel Olagnon的Fortran 90列表
..
如何在Fortran或/和C中对包括贝塞尔函数的方程式进行数值从"0"到"infinity"的积分? 我在matlab中做过,但对于较大的输入并没有正确的规定后,贝塞尔函数给出了完全错误的结果(在Matlab中存在限制) 解决方案 您几乎可以使用google并找到许多用C实现的Bessel函数. http://www.atnf.csiro.au /computing/software
..
问题 考虑以下代码: program example implicit none integer, parameter :: n_coeffs = 1000 integer, parameter :: n_indices = 5 integer :: i real(8), dimension(n_coeffs) :: coeff integer, dimen
..
有人可以举例说明什么是Fortran中的零索引数组.我没有从互联网上获得任何内容. 解决方案 一个零索引数组是一个索引源为ZERO的数组.这意味着数组的第一个元素由索引0引用. Fortran数组在声明时默认从索引1开始 INTEGER, DIMENSION(3) :: v 在这里,符号v表示大小为3的一维数组,其中包含元素v(1),v(2)和v(3). 但是, Fo
..
例如,我想以1为增量从1循环到500.但是,对于每8个循环,我都希望跳过接下来的18个循环(将do变量增加18).我该怎么办? 我的代码是: event = 0 do i = 1,500,2 event = event + 1 if (event .eq. 8) then i = i + 18 event = 0 endi
..
假设我使用的是实数变量x.我想指定为一个字符,以便可以根据do循环中x的值使用它来打印不同的文件名. 我现在的代码是: program test_print real*8:: x character*40:: chr_x x=1.d0 do i=1,6 write(chr_x
..
如何格式化字符串以使其具有恒定宽度并且左对齐?有Aw格式器,其中w表示所需的字符输出宽度,但是如果w > len(characters),它将加空格,而不是附加空格. 当我尝试 44 format(A15) print 44, 'Hi Stack Overflow' 我知道 > Hi Stack OverflowHi Stack Ov
..
我正在用vim编辑一个fortran90代码.请注意,我正在使用* .f90文件,而不是* .f. vim不会将第72列之外的任何内容都识别为合法代码.这是一个令人讨厌的问题,因为如果在第50列处打开了引号,但直到第80列才关闭引号,则vim会将以下所有行着色为同一引号的一部分.如果我使用的是旧的fortran77文件,这将是有道理的,但我显然不是.有什么方法可以说服vim识别超出第72列的代码?
..
我想知道Fortran中是否有类似的东西.当然,此示例不会编译,但我认为您可以理解. program test character(1):: sub sub='A' call sub sub='B' call sub end program subroutine A print*,'OK! A' end subroutine A sub
..
我正在尝试阅读一些Fortran代码,但无法确定%(百分号)的作用. 它像这样的一行: x = a%rho * g * (-g*a%sigma + m%gb * m%ca * (1.6 * a%rho+g)) 它是做什么的? 解决方案 在Fortran 90中,它们允许您创建类似于C ++的结构.它基本上充当点(.)运算符. 来自 http://www.lahe
..
当发生异常时,我想异常终止我的程序.现在,当发生异常时,将调用带有解释性语句的write语句,然后调用stop语句. 我正在使用idb(intel调试器)调试程序,当发生异常时,我会收到write语句,但idb会将程序视为正常终止.我希望当异常发生时程序会异常终止,以便我可以在发生异常的地方使用backtrace查找内存. 我尝试更改stop 1中的stop,以便返回非零值,但这不起作
..
所以我正在做2个链接到主程序的模块.第一个定义了所有变量,第二个定义了函数. Module1: module zmienne implicit none integer, parameter :: ngauss = 8 integer, parameter :: out_unit=1000 integer, parameter :: out_unit1=1001 intege
..