主题:Fortran编译问题
applewu
[专家分:0] 发布于 2010-08-31 10:27:00
请问,在CVF中能够编译运行,但用gfortran通过Makefile却出现如下问题:
'x' argument of 'secnds' intrinsic at (1) must be of kind 4
不知道如何解决,望大家提出宝贵意见,谢谢!
回复列表 (共12个回复)
沙发
jstzhurj [专家分:4680] 发布于 2010-08-31 10:47:00
参数x的定义问题。
板凳
applewu [专家分:0] 发布于 2010-08-31 11:00:00
tstart=secnds(0.)
1
Error: 'x' argument of 'secnds' intrinsic at (1) must be of kind 4
从错误提示本身来看是参数定义问题,但改了多次还是不成,不知道如何去修正这个
错误,急死人了
3 楼
jstzhurj [专家分:4680] 发布于 2010-08-31 11:26:00
REAL(KIND=4) X 不工作么?
4 楼
applewu [专家分:0] 发布于 2010-08-31 12:32:00
REAL(KIND=4) X 如何加,本人初学Fortran,不甚理解,如果这样:
REAL(KIND=4) X
X=0.0
tstart=secnds(X),报错为:
Error: 'x' argument of 'secnds' intrinsic at (1) must be a scalar
secnds是关于时间的一个函数吧?
5 楼
asymptotic [专家分:16630] 发布于 2010-08-31 12:35:00
Secnds 并非 Fortran 标准规定的子程序,Intel Visual Fortran 编译器 IFPORT 中定义,Compaq Visual Fortran 中也有。
6 楼
applewu [专家分:0] 发布于 2010-08-31 13:01:00
你的意思是说用gfortran是编译不通过的,不管Makefile如何改。除了修改代码外,只
能在CVF或IVF下运行。(这些代码以前确实是在CVF下运行的,我想在Linux下运行,所
以想用gfortran)
7 楼
f2003 [专家分:7960] 发布于 2010-08-31 13:12:00
用intel fortran for Linux
8 楼
applewu [专家分:0] 发布于 2010-08-31 13:35:00
intel visual fortran for linux有免费使用的没,以前申请一个只能使用一个月
9 楼
f2003 [专家分:7960] 发布于 2010-08-31 16:45:00
一个月之后继续试用。
像这种取时间、测时间段的函数,随便找个替代物根本不影响程序本身。没有比这个更容易移植的东西了。
还有,
REAL(KIND=4) X
X=0.0
tstart=secnds(X),报错为:
Error: 'x' argument of 'secnds' intrinsic at (1) must be a scalar
难道那样声明还不是标量?你声明到其他程序单元里去了吧?
program main
real(kind=4) :: x
x=0.0
print *, secnds(x)
end program main
结果
5717.0190
用gfortran和intel fortran都能编译运行。
10 楼
applewu [专家分:0] 发布于 2010-09-01 10:04:00
没有声明到其他程序里面去呀,还是报错……是不是gfortran版本不够新呀?
我来回复