小鱼 发表于 2014-4-25 11:29:13

GFortran编译时的预处理问题

open(366,file = inpath(1:lenstr(inpath))//
   &    '/atmosphere/cloud.in',status='old',
   &    form='unformatted')
为什么运行之后出现

warning: missing terminating ' character
运行出来的.f文件显示

open(366,file = inpath(1:lenstr(inpath))                        
                                                                     1
Error: Syntax error in OPEN statement at (1)


请帮忙解决,谢谢!

楚香饭 发表于 2014-4-25 12:24:54

Syntax error 是写法不对。看起来像是格式,续行的问题。

我这里是OK的,如果你还是有问题,建议你在这几行代码上截个图。

小鱼 发表于 2014-4-25 20:54:56

chuxf 发表于 2014-4-25 12:24
Syntax error 是写法不对。看起来像是格式,续行的问题。

我这里是OK的,如果你还是有问题,建议你在这几 ...
F:\bug.png
open(366,file=inpath(1:lenstr(inpath))//'/atmosphere/cloud.in')
问题是运行后形成的.f ,只能显示open(366,file=inpath(1:lenstr(inpath))导致无法形成.c 文件

楚香饭 发表于 2014-4-25 20:59:23

什么叫只能显示 open(366,file=inpath(1:lenstr(inpath))

你为什么要形成 .c 文件?代码里明明是 cloud.in 文件啊

小鱼 发表于 2014-4-25 21:27:08

chuxf 发表于 2014-4-25 20:59
什么叫只能显示 open(366,file=inpath(1:lenstr(inpath))

你为什么要形成 .c 文件?代码里明明是 cloud.in ...

错了,是要形成.o文件。这个是从cloud.in文件里读取数据,.F文件运行时要先形成.f文件,再形成.o文件。可是.f文件出现上述问题,导致无法运行

楚香饭 发表于 2014-4-25 21:30:44

*.F 形成 *.o 这个过程你不用描述。我知道的。

你只要告诉我错误提示就可以了。

现在,你的Open语句是怎么样的?是否续行了?(因为你一开始给的代码续行了,后来又写成一行了)

最好提供 Open 语句上下10行代码的截图

小鱼 发表于 2014-4-25 21:35:47

chuxf 发表于 2014-4-25 21:30
*.F 形成 *.o 这个过程你不用描述。我知道的。

你只要告诉我错误提示就可以了。


不好意思,之前那个又修改了一下,是这个样子的,open执行不了,出现最开始的错误

楚香饭 发表于 2014-4-25 21:41:26

检查一下你的 inpath 是否定义为字符串了吧。

我这边都一切正常。要不你再提供一下错误的截图?

小鱼 发表于 2014-4-25 21:45:54

本帖最后由 小鱼 于 2014-4-25 21:47 编辑

chuxf 发表于 2014-4-25 21:41
检查一下你的 inpath 是否定义为字符串了吧。

我这边都一切正常。要不你再提供一下错误的截图? ...
atm/atm_hb.f:360.44:

      open(366,file=inpath(1:lenstr(inpath))                           
                                                                         1
Error: Syntax error in OPEN statement at (1)
make: *** Error 1

楚香饭 发表于 2014-4-25 22:00:37

能提供错误截图吗?

你的错误提示是
open(366,file=inpath(1:lenstr(inpath))      
有错,而代码里又是
open(366,file=inpath(1:lenstr(inpath))//'/atmosphere/cloud.in')

你确定是同一行?
页: [1] 2
查看完整版本: GFortran编译时的预处理问题