Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Fortran Fortan中include语句中的换行符_Fortran_Geany - Fatal编程技术网

Fortran Fortan中include语句中的换行符

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

我是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"
    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
工作。事实上,如果可能的话,考虑使用模块,而不是包含东西。