这是一个关于CMAQ、WRF-Chem模型与机器学习的研究笔记
-O3 和 -O0 在 CMAQ 当中的选择
编译器的优化条件是CMAQ/WRF-Chem编译的重要因素,众所周知,-O0一般是用于debug,-O3一般是用于生产环境,这个是有CMAQ官方配置脚本支持的: https://github.com/USEPA/CMAQ/blob/main/config_cmaq.csh 第129-138行: #> Compiler Aliases and Flags setenv myFC mpifort setenv myCC pgcc setenv myLINK_FLAG # "-mp" openMP not supported w/ CMAQ setenv myFSTD "-O3" setenv myDBG "-O0 -g -Mbounds -Mchkptr -traceback -Ktrap=fp" setenv myFFLAGS "-Mfixed -Mextend -mcmodel=medium -tp px" setenv myFRFLAGS "-Mfree -Mextend -mcmodel=medium -tp px" setenv myCFLAGS "-O2" setenv extra_lib "" 其中,myCFLAGS "-O2"代表C编译器代码在编译环境当中使用O2级别,主要是因为,1、C 代码在 CMAQ 里占比小且不是瓶颈,2、O2 是"安全且有效"的平衡点,3、C 侧与 Fortran 侧通过 EXTERNAL 接口互相调用,优化越强、变换越激进,对接口边界附近行为的扰动面越大 ...