回 帖 发 新 帖 刷新版面

主题:CVF6.5支持F77吗

我用CVF6.5调试f77程序时出错了,
报错如下,
--------------------Configuration: my practice - Win32 Debug--------------------
Compiling Fortran...
E:\Program Files\kernel.f
f90: Error: Illegal character in statement label field  [s]
f90: Error: Illegal character in statement label field  [u]
f90: Error: Illegal character in statement label field  [b]
f90: Error: Illegal character in statement label field  [r]
f90: Error: Illegal character in statement label field  [o]
f90: Error: First statement in file must not be continued
E:\Program Files\kernel.f(1) : Error: Syntax error, found END-OF-STATEMENT when expecting one of: ( % . = =>
subroutine kernel(r,dx,hsml,w,dwdx)   
--------------------------------------^
Error executing df.exe.
kernel.obj - 7 error(s), 0 warning(s)
这是什么问题啊,
版本的问题吗?不是说CVF编译器向下兼容的吗??谢谢哦

回复列表 (共22个回复)

11 楼

[quote]你的KERNEL.F是固定格式的,但你INCLUDE的東西是自由格式的明白:)[/quote]


这是他前面贴的include 的东西,怎么看出是自由格式还是固定格式呢?



c---------------------------------------------------------
c     Including file for parameters and constants used 
c     in the entire SPH software packages.
c---------------------------------------------------------

c     dim : Dimension of the problem (1, 2 or 3)
      integer dim
      parameter ( dim = 1)

c     maxn    : Maximum number of particles
c     max_interation : Maximum number of interaction pairs
      integer maxn,max_interaction
      parameter ( maxn    = 12000    ,
     &            max_interaction = 100 * maxn )

c     Parameters for the computational geometry,  
c     x_maxgeom : Upper limit of allowed x-regime 
c     x_mingeom : Lower limit of allowed x-regime 
c     y_maxgeom : Upper limit of allowed y-regime 
c     y_mingeom : Lower limit of allowed y-regime 
c     z_maxgeom : Upper limit of allowed z-regime 
c     z_mingeom : Lower limit of allowed z-regime 
      double precision x_maxgeom,x_mingeom,y_maxgeom,
     &                 y_mingeom,z_maxgeom,z_mingeom
      parameter ( x_maxgeom =  10.e0     ,
     &            x_mingeom = -10.e0     ,
  

12 楼

[quote]你的KERNEL.F是固定格式的,但你INCLUDE的東西是自由格式的明白:)[/quote]
怎么说include的东西是;自由的呢,我觉得是固定的啊,程序内容是从第7列开始写的,注释行的标志是C而不是!
麻烦你说清楚哦,谢谢了

13 楼

那些f77代码写得很工整.
那你写的部分代码是用f90/95 写的吗? 如果是的话可以考虑用一个单独的.f文件做成module来调用这些f77代码.
因为Fortran默认编译的时候是根据文件扩展名来决定用什么格式进行编译的. 这就是Fortran背负的历史包袱.

14 楼

[quote]那些f77代码写得很工整.
那你写的部分代码是用f90/95 写的吗? 如果是的话可以考虑用一个单独的.f文件做成module来调用这些f77代码.
因为Fortran默认编译的时候是根据文件扩展名来决定用什么格式进行编译的. 这就是Fortran背负的历史包袱.[/quote]
冒似懂你意思,先谢谢你哦,
我说清楚点吧,我是在看有关SPH的书,书上的程序是有F77写的,我是用CVF6.5调试的,而书上的个别句子不规范,比如, 
if (summation_density) then      
        call sum_density(ntotal+nvirt,hsml,mass,niac,pair_i,pair_j,w,
     &       itype,rho)    我就删掉了前期的if (summation_density) then  你意思我懂,可是我不是重新写一程序啊,我只是在里面删掉了错误,整个程序都不是我写的,
另外那个include也是书上附带的F77格式的,那个没问题我就没改它,而现在出错的kernel子程序我也没动过,哎麻烦你帮帮忙啊

15 楼

你的意思是你没有用f90/95写自己的代码, 对吧?
刚才看了一下你贴的代码, 不知道你是不是贴源码.
这个subroutine kernel(r,dx,hsml,w,dwdx) 前面似乎没有空6个格.

16 楼

要是不介意,不如把源文件当作附件发上来,直接让人家调试调试,要不他们很难帮到你。估计还有些牛人都懒得回贴。

17 楼

唉,是我的错,跟baidu知道里的另一个问题混了,这个问题是把kernel函数前的subroutine前再加上一个tab就行了。

18 楼

[quote]唉,是我的错,跟baidu知道里的另一个问题混了,这个问题是把kernel函数前的subroutine前再加上一个tab就行了。[/quote]


貌似是这样啊,怪不得是那几个字 s u b r o,厉害

19 楼

[quote]要是不介意,不如把源文件当作附件发上来,直接让人家调试调试,要不他们很难帮到你。估计还有些牛人都懒得回贴。[/quote]
真的谢谢你,在你们的帮助下我终于弄好了,

20 楼

[quote]你的意思是你没有用f90/95写自己的代码, 对吧?
刚才看了一下你贴的代码, 不知道你是不是贴源码.
这个subroutine kernel(r,dx,hsml,w,dwdx) 前面似乎没有空6个格.[/quote]
谢谢你们,真的太激动太感动了,第一次调试别人坐的这么大的程序,真的要我全部放上来也很难,总共是十来个相互嵌套的。真的突然很的成就感,谢谢你们,

我来回复

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