老师要求我们编译几个fortran程序,源代码后缀是 .f 不知道应该选用什么编辑器

老师要求我们编译几个fortran程序,源代码后缀是 .f 不知道应该选用什么编辑器,第1张

f90 是新的自由格式的fortran代码 fortran 90

f 是采用固定格式的fortran代码fortran 77,有一定的区别,但都能达到相同的目的。

fortran 90是由fortran77发展而来了,增加了一些功能,更加方便。

用哪种编译器都可以,因为f是低级版本的fortran文档,一般高级都支持低级,这个应该没有问题。

如果写程序时语法绝对的严格,那么不同之处就很少了,但如果语句较为随意那区别就大了,

比如以下就是几条(太多了,随便说几个而已,且pgf90和f90对语句要求很相近):

1 子程序被调用时,如果变量没有被定义为save型时,如果第二次调用没有初始化就参与计算会出错说being used without being defined(pgf90就会自动save而不会报错)

2 打印格式要求严格,最好要 '(f83)','(i3)'之类的,且用一个format语句最好

3 allocate一个数组之后,如果没有deallocate就再次allocate就会报错,deallocate的时候如果deallocate(array(m,n))也会报错,要deallocate(array),即不能给定维数

5 x=(/a,b,c,d/)时,a,b,c,d要么都是实数(要有小数点),要么都是整数(不出现小数点)

6 对于数组求最大值(最小值)所在位置,只能用

maxwind=00

do i=m1,m2

do j=n1,n2

xmw=sqrt(u(i,j)2+v(i,j)2)

if(xmw>maxwind) then

maxwind=xmw; xiw=float(i);xjw=float(j)

endif

enddo

enddo

而不能用

maxwind=maxval(sqrt(u(m1:m2,n1:n2)2+v(m1:m2,n1:n2)2))

do i=m1,m2

do j=n1,n2

xmw=sqrt(u(i,j)2+v(i,j)2)

if(xmw=maxwind) then

xiw=float(i);xjw=float(j)

exit

endif

enddo

enddo

pgf90就可以,可能是ifort计算精度默认太高的原因

str=''

read(1,10,end=15)str

1:代表文件

10 代表读入格式

10 format的 语句这一句就是他使用的读入格式

end = 15 表示

遇文件尾部则跳转 15 这个语句标号执行

这是一个格式语句。

它表示先输出5个空格(5X)

然后输出 ''

然后换行(/)

再输出5个空格(5X)

然后输出“NON E POSSIBILIE L ESTRAPOLAZIONE DELIA CURVA MOT”

也就是:

NON E POSSIBILIE L ESTRAPOLAZIONE DELIA CURVA MOT

是的,你说对了。/表示换行

=============================

问题补充:

如果待读入的数据是:

593613748e+001 ,781299428e+001 , 0 , 1 , 1 , 1 ,000000000e+000

593613748e+001 ,781299428e+001 , 0 , 1 , 1 , 1 ,000000000e+000

则后果是

Q= 5936138

THP= 0

QG= 8129943

THG= 0

DXGR=5936138

DERV=0

DXPR=8129943

下面的两句应该是一样的。

建议:

5001 FORMAT(8(8F106/),6F106)

I代表整数,A代表的是字符串,你的问题中的20A应该改成A20,I、A后面的数字表示整数和字符串的限定长度。

这说明myid是两位整数,numprocs是一位整数,processor_name

是个长度不超过20个字符的字符串,这三个变量都会在这个输出语句前面赋值的。

write

(,10)这里的10就代表输出格式,它的形式下面有限定的10

FORMAT('hello

world!process',I2,'of',I1,'on',A20)。

这里的方式已经是最简捷的了。

以上就是关于老师要求我们编译几个fortran程序,源代码后缀是 .f 不知道应该选用什么编辑器全部的内容,包括:老师要求我们编译几个fortran程序,源代码后缀是 .f 不知道应该选用什么编辑器、用intel fortran 编写fortran程序时的书写格式与fortran90有什么不同、fortran read和format语句等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/10164195.html

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

发表评论

登录后才能评论

评论列表(0条)

保存