Fortran Fortan中include语句中的换行符
我是Fortran新手,正在尝试运行一个不是我自己的代码。当我键入存储模块的目录时,目录太长,我必须中断该行。然而,当我尝试这样做时,出现了一个错误 我正在Windows中使用Geany处理Fortran 我正在尝试运行的代码:Fortran Fortan中include语句中的换行符,fortran,geany,Fortran,Geany,我是Fortran新手,正在尝试运行一个不是我自己的代码。当我键入存储模块的目录时,目录太长,我必须中断该行。然而,当我尝试这样做时,出现了一个错误 我正在Windows中使用Geany处理Fortran 我正在尝试运行的代码: include "G:\My Drive\06. Projects\02. CA_Spain\8. Replications\lmr_red_final\estimation_ed2_no_growth\src\model\params.f90" inc
include "G:\My Drive\06. Projects\02. CA_Spain\8. Replications\lmr_red_final\estimation_ed2_no_growth\src\model\params.f90"
include "G:\My Drive\06. Projects\02. CA_Spain\8. Replications\lmr_red_final\estimation_ed2_no_growth\src\output.f90"
include "G:\My Drive\06. Projects\02. CA_Spain\8. Replications\lmr_red_final\estimation_ed2_no_growth\src\glob.f90"
include "G:\My Drive\06. Projects\02. CA_Spain\8. Replications\lmr_red_final &
\estimation_ed2_no_growth\src\optimization\objective_function_mod.f90"
include "G:\My Drive\06. Projects\02. CA_Spain\8. Replications\lmr_red_final\estimation_ed2_no_growth\src\optimization\optimization_mod.f90"
include "G:\My Drive\06. Projects\02. CA_Spain\8. Replications\lmr_red_final\estimation_ed2_no_growth\src\optimization\data_statistics_mod.f90"
program Msw
use params
use output
use glob
use objective_function_mod
use optimization_mod
use data_statistics_mod
...
这就是出现的错误:
- main_serial.f90:4:0:
- include "G:\My Drive\06. Projects\02. CA_Spain\8. Replications\lmr_red_final &
- Error: Unclassifiable
- statement at (1) main_serial.f90:5:1:
- \estimation_ed2_no_growth\src\optimization\objective_function_mod.f90"
- 1
- Error: Invalid character in name at (1)
包含行可能无法继续,因此不能以这种方式拆分字符文件名 相反,您应该找到一种缩短文件路径引用的方法,或者(不可移植地)允许编译器接受更长的行。缩短文件路径可能涉及重命名/移动文件、创建文件系统链接或使用编译器搜索路径 从Fortran 2018(第6.4页)开始: 包含行应出现在可出现语句的单个源行上
在l和&之间引入了一个空格。但这不应导致语法错误。你的编译器是什么?您运行哪个编译器命令?或者在出现错误之前单击什么?一般建议,不要在include语句中使用完全限定路径,请通过编译器的
-I
(或等效)选项进行处理。为什么首先要在这里使用include语句,为什么不先编译文件(可能是包含模块的文件?)并通过Makefile处理依赖项/链接。感谢您的评论,我不知道这样做是不可能的。您知道如何更改cwd并使用include从中引用其余文件夹,或者有任何示例吗?谢谢,我不知道你不能这样越界。是否有您在最后指出的可能解决方案的参考,特别是关于“创建文件系统链接”的参考。文件系统的事情将取决于您的操作系统/文件系统,但您可以创建符号链接(或等效链接)。然而,我确实建议,正如其中一条评论所说,使用编译器标志,如-I
,以便包含目标函数.f90
工作。事实上,如果可能的话,考虑使用模块,而不是包含东西。