分享到:
发表于 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 编译器的命令(例如gfortran, ifort, mpif90, mpiifort, ... )。 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_O1, OBJECTS_O2, OBJECTS_O3,OBJECTS_IN -O1默认情况下会编译多个对象-O2。这些对象列表在/path/to/vasp.XXX/src/.objects文件中通过变量指定:SOURCE_O1, SOURCE_O2, SOURCE_IN。 要完全否决默认设置(例如特殊-O1规则),您可以使用以下结构: SOURCE_O1 = OBJECTS_O1 = ..你的对象列表..
|
|
楼主热贴
个性签名:宝禄计算
|