Win7用什么软件可以运行Fortran90程序

Win7用什么软件可以运行Fortran90程序,第1张

Fortran90是语言版本。就好像英式英语,美式英语。这样的概念。

你所说的能否运行,是编译器的事情。

编译器,就好像金山词霸的概念一样。

电脑上有很多英式英语的软件,比如金山词霸,灵格斯词典,QQ词典等等。他们支持的 *** 作系统不完全相同。

同样的,全球支持 Fortran90 语法的编译器,保守估计有大约20个。主流的有 Intel Fortran,PGI Fortran,Sliverfrost Ftn95,NAGFortran 等等。每一种 Fortran90 的编译器,其适用的 *** 作系统和平台也不完全相同。

单纯说 Fortran90,不能说明是哪个编译器。更不能说明该编译器支持什么 *** 作系统。

这就好像问:“美式英语在win7中能运行吗?”,这样的提法就有问题。

因此,需要你具体的告知,你使用的什么品牌,什么版本的编译器?请注意,Fortran90不是品牌,也不是编译器版本。

出现这种情况一般原因是程序不严谨,比如说定义数组之后没有初期化,判断俩实数是否相等,用了一些不通用的函数(各个版本的编译器都可能会有一些独特的函数),数值精度不统一等等。输入数据也可能造成这种影响,比如说4.0和4.0d0在计算机看来是两个不同的数。

就算是同一个编译器编译的程序,在不同电脑上跑甚至在相同电脑跑结果都可能不相同。这又涉及到CPU位数的问题了。

避免此类情况发生的时候,写代码要养成良好的习惯。定义real的时候顺便明确一下kind,定义数组之后马上就初始化一下,判断两实数是否相等不要直接判断,输入数据的时候要考虑到输入数据的类型等等

program main

implicit none

character(len=100)::chr

integer(8)::N,k,i

write(*,*)'请输入一个整数:'read(*,*)N

if(IsPalindrome(N)) then

write(*,*)N,"是回文数"

else

write(*,*)N,"不是回文数"

endif

write(*,*)'输出完成!'

read(*,*)

contains

function IsPalindrome(N)result(p)

implicit none

integer(8),intent(in)::N

integer(8)::i,k

logical(1)::p

character(len=100)::chr

p=.true.

write(chr,"(I100)")N

chr=adjustl(chr)

k=len_trim(chr)

do i=1,k/2,1

if(chr(i:i)/=chr(k-i+1:k-i+1))then

p=.false.

exit

endif

enddo

end function IsPalindrome

end


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11559107.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存