我在F90程序中使用了一些F77固定格式代码。我试图在我的主程序中包含这两种代码。以下是我如何安排我的代码:
标题文件:
File Name:include.inc
include 'module_variables.F90'
include 'message.F90'
include 'module_common_functions.f90'
include 'module_input_gdf.F90'
...
Relavant LAPACK文件
File Name: lapack.inc
include 'xerbla.f'
include 'strsm.f'
include 'slaswp.f'
include 'sgetrs.f'
include 'sgetrf.f'
...
现在我的主程序看起来像:
include 'lapack.inc'
include 'include.inc'
program MDL_HydroD
use module_variables
use module_write_files
use module_read_files
...
当我尝试使用ifort "MDL HydroD.F90"
编译主代码时,F77格式的文件会显示错误消息:
xerbla.f(1): error #5078: Unrecognized token '\' skipped
*> \brief \b XERBLA
---^
这是因为编译器正在读取注释部分(以*开头)。有没有什么方法可以在我的标题中使用这两种类型的fortran代码进行编译。
注意:我正在使用带有命令提示符的Intel Composer XE 2013。
答案 0 :(得分:3)
对于该编译器,存在编译器特定的指令(不是标准语言的一部分),允许您更改正在使用的源表单。
将相关指令放在include文件之前,然后将另一个指令放在include文件之后以切换源表单。也许:
!DEC$ NOFREEFORM
INCLUDE 'lapack.inc'
!DEC$ FREEFORM
有关详细信息,请参阅http://software.intel.com/en-us/node/466230。