回 帖 发 新 帖 刷新版面

主题:Fortran编译问题

请问,在CVF中能够编译运行,但用gfortran通过Makefile却出现如下问题:

 'x' argument of 'secnds' intrinsic at (1) must be of kind 4

不知道如何解决,望大家提出宝贵意见,谢谢!

回复列表 (共12个回复)

沙发


参数x的定义问题。

板凳


      tstart=secnds(0.)
                    1
Error: 'x' argument of 'secnds' intrinsic at (1) must be of kind 4

从错误提示本身来看是参数定义问题,但改了多次还是不成,不知道如何去修正这个

错误,急死人了

3 楼


REAL(KIND=4) X 不工作么?

4 楼


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 楼

Secnds 并非 Fortran 标准规定的子程序,Intel Visual Fortran 编译器 IFPORT 中定义,Compaq Visual Fortran 中也有。

6 楼

你的意思是说用gfortran是编译不通过的,不管Makefile如何改。除了修改代码外,只

能在CVF或IVF下运行。(这些代码以前确实是在CVF下运行的,我想在Linux下运行,所

以想用gfortran)

7 楼

用intel fortran for Linux

8 楼


intel visual fortran for linux有免费使用的没,以前申请一个只能使用一个月

9 楼

一个月之后继续试用。

像这种取时间、测时间段的函数,随便找个替代物根本不影响程序本身。没有比这个更容易移植的东西了。

还有,

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 楼

没有声明到其他程序里面去呀,还是报错……是不是gfortran版本不够新呀?

我来回复

您尚未登录,请登录后再回复。点此登录或注册