主题:CVF6.5支持F77吗
dingsheng1206
[专家分:0] 发布于 2010-06-23 14:59:00
我用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 楼
yrliu [专家分:750] 发布于 2010-06-28 08:22:00
[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 楼
dingsheng1206 [专家分:0] 发布于 2010-06-28 08:39:00
[quote]你的KERNEL.F是固定格式的,但你INCLUDE的東西是自由格式的明白:)[/quote]
怎么说include的东西是;自由的呢,我觉得是固定的啊,程序内容是从第7列开始写的,注释行的标志是C而不是!
麻烦你说清楚哦,谢谢了
13 楼
yeg001 [专家分:14390] 发布于 2010-06-28 10:41:00
那些f77代码写得很工整.
那你写的部分代码是用f90/95 写的吗? 如果是的话可以考虑用一个单独的.f文件做成module来调用这些f77代码.
因为Fortran默认编译的时候是根据文件扩展名来决定用什么格式进行编译的. 这就是Fortran背负的历史包袱.
14 楼
dingsheng1206 [专家分:0] 发布于 2010-06-28 11:13:00
[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 楼
yeg001 [专家分:14390] 发布于 2010-06-28 11:32:00
你的意思是你没有用f90/95写自己的代码, 对吧?
刚才看了一下你贴的代码, 不知道你是不是贴源码.
这个subroutine kernel(r,dx,hsml,w,dwdx) 前面似乎没有空6个格.
16 楼
yrliu [专家分:750] 发布于 2010-06-28 11:37:00
要是不介意,不如把源文件当作附件发上来,直接让人家调试调试,要不他们很难帮到你。估计还有些牛人都懒得回贴。
17 楼
cgl_lgs [专家分:21040] 发布于 2010-06-28 14:16:00
唉,是我的错,跟baidu知道里的另一个问题混了,这个问题是把kernel函数前的subroutine前再加上一个tab就行了。
18 楼
yrliu [专家分:750] 发布于 2010-06-28 14:35:00
[quote]唉,是我的错,跟baidu知道里的另一个问题混了,这个问题是把kernel函数前的subroutine前再加上一个tab就行了。[/quote]
貌似是这样啊,怪不得是那几个字 s u b r o,厉害
19 楼
dingsheng1206 [专家分:0] 发布于 2010-06-28 15:47:00
[quote]要是不介意,不如把源文件当作附件发上来,直接让人家调试调试,要不他们很难帮到你。估计还有些牛人都懒得回贴。[/quote]
真的谢谢你,在你们的帮助下我终于弄好了,
20 楼
dingsheng1206 [专家分:0] 发布于 2010-06-28 15:50:00
[quote]你的意思是你没有用f90/95写自己的代码, 对吧?
刚才看了一下你贴的代码, 不知道你是不是贴源码.
这个subroutine kernel(r,dx,hsml,w,dwdx) 前面似乎没有空6个格.[/quote]
谢谢你们,真的太激动太感动了,第一次调试别人坐的这么大的程序,真的要我全部放上来也很难,总共是十来个相互嵌套的。真的突然很的成就感,谢谢你们,
我来回复