我可以: 邀请好友来看>>
ZOL论坛 > 技术论坛 > 服务器综合讨论论坛 > 编译器选项
帖子很冷清,卤煮很失落!求安慰
返回列表
签到
手机签到经验翻倍!
快来扫一扫!

编译器选项

17浏览 / 0回复

宝禄,计算

宝禄,计算

0
精华
36
帖子

等  级:Lv.5
经  验:3548
  • Z金豆: 396

    千万礼品等你来兑哦~快点击这里兑换吧~

  • 城  市:北京
  • 注  册:2023-04-10
  • 登  录:2023-09-26
  • 一举成名
  • 初领任务
发表于 2023-06-02 16:17:00
电梯直达 确定
楼主

编译器选项

编译器选项由设置编译器和编译器标志的编译器变量指定。Fortran 编译器将被调用为:

$(FC) $(FREE) $(FFLAGS) $(OFLAG) $(INCS)

 

内容

· 1个编译器变量

· 1.1FC

· 1.2FCL

· 1.3OFLAG

· 1.4FFLAGS

· 1.5OFLAG_IN

· 1.6DEBUG

· 1.7INCS

· 1.8FREE

· 1.9MPI + OpenMP 并行化

· 2个特殊规则

· 2.1FFLAGS_x

· 2.2OFLAG_x

· 2.3INCS_x

· 2.4相关文章

编译器变量

FC

调用 Fortran 编译器的命令(例如gfortranifortmpif90mpiifort, ... )。

FCL

调用链接器的命令。在多数情况下:

FCL=$(FC) [+ 一些选项]

OFLAG

一般优化级别(默认值OFLAG=-O2:)。

FFLAGS

额外的编译器标志。例如,要启用调试,可以添加以下行:

FFLAGS+=-g

OFLAG_IN

(默认值:)-O2在绝大多数mak-e-file.include文件中设置了这个变量:

OFLAG_IN=$(OFLAG)

DEBUG

编译主程序 (main.F) 的优化级别,通常为:

DEBUG=-O0

INCS

使用此变量指定要包含在以下意义上的对象:

INCS=-I/path/to/directory-with-files-to-be-included

FREE

指定您的 Fortran 编译器接受自由格式源代码布局所需的选项,而没有行长度限制。例如:

· 使用英特尔的 Fortran 编译器:

FREE=-free -names 小写

· 使用 gfortran:

FREE=-ffree-form -ffree-line-length-none

MPI + OpenMP 并行化

要编译支持 OpenMP 的 VASP,请将以下内容添加到文件中的预编译器标志列表中mak-e-file.include

CPP_OPTIONS += -D_OPENMP

此外,您必须将一些特定于编译器的选项添加到调用 Fortran 编译器的命令(有时还添加到链接器)。

例如,使用英特尔工具链(ifort + 英特尔 MPI)时:

FC = mpiifort -qopenmp

特殊规则

当前src/mak-e-file包含一组配方,以允许在不同优化级别编译对象,而不是 指定的一般级别OFLAG。在这些秘籍中,编译器将被调用为:

$(FC) $(FREE) $(FFLAGS_x) $(OFLAG_x) $(INCS_x)

其中x代表:1、2、3 或 IN。

FFLAGS_x

默认值:FFLAGS_x=$(FFLAGS)对于 x=1、2、3 和 IN。

OFLAG_x

默认值:(OFLAG_x=-Ox对于 x=1、2、3)和OFLAG_IN=-O2

INCS_x

默认值:INCS_x=$(INCS)对于 x=1、2、3 和 IN。

根据这些配方编译的对象必须通过变量指定:OBJECTS_O1OBJECTS_O2OBJECTS_O3,OBJECTS_IN

-O1默认情况下会编译多个对象-O2。这些对象列表在/path/to/vasp.XXX/src/.objects文件中通过变量指定:SOURCE_O1SOURCE_O2SOURCE_IN

要完全否决默认设置(例如特殊-O1规则),您可以使用以下结构:

SOURCE_O1 =

OBJECTS_O1 = ..你的对象列表..

 


高级模式
论坛精选大家都在看24小时热帖7天热帖大家都在问最新回答

针对ZOL论坛您有任何使用问题和建议 您可以 联系论坛管理员查看帮助  或  给我提意见

快捷回复 APP下载 返回列表