compiler=${compiler:=mpifort}假如我解压了一个GETM的源码压缩包,解压后的文件路径是~/code-master,即鼠标点进code-master就能看见源码相关文件,那么这条指令该怎么改?
时间: 2024-12-24 15:22:03 浏览: 6
如果你解压了 GETM 的源码压缩包,并且解压后的文件路径是 `~/code-master`,你需要将 `GETM_BASE` 变量设置为这个新的路径。具体来说,你可以将 `GETM_BASE` 变量改为:
```sh
GETM_BASE=${GETM_BASE:=~/code-master}
```
同时,确保其他相关的路径也进行了相应的调整,例如 `GOTM_BASE` 和 `FABM_BASE`,如果它们也在同一个目录下的话。以下是完整的脚本示例:
```sh
#!/bin/sh
# 设置代码路径
GETM_BASE=${GETM_BASE:=~/code-master}
GOTM_BASE=${GOTM_BASE:=~/code-master/gotm/code}
FABM_BASE=${FABM_BASE:=~/code-master/fabm/code}
# 指定编译器
compiler=${compiler:=mpifort}
# 指定坐标系
coordinate=${coordinate:=Cartesian}
# 指定安装路径
install_prefix=${install_prefix:=`pwd`}
# 并行计算,静态编译,需要修改dimensions.h(dx dz)
# 相应保证收敛,需要修改vv_momentum_3d.F90(dt)
# 链接include下的dimensions.h和3d下的vv_momentum_3d.F90,以及余流计算文件
cp -rf ./vv_momentum_3d.F90 $GETM_BASE/src/3d
cp -rf ./dimensions.h $GETM_BASE/include
cp -rf ./residual.F90 $GETM_BASE/src/3d
# 编译
mkdir -p $compiler
cd $compiler
cmake -Wno-dev $GETM_BASE/src \
-DCMAKE_INSTALL_PREFIX=$install_prefix \
-DGETM_EMBED_VERSION=ON \
-DGETM_USE_FABM=ON \
-DGOTM_BASE=$GOTM_BASE \
-DFABM_BASE=$FABM_BASE \
-DCMAKE_Fortran_COMPILER=$compiler \
-DGETM_COORDINATE_TYPE=$coordinate \
-DGETM_FLAGS=-DSLICE_MODEL\
-DGETM_USE_STATIC=ON \
-DGETM_USE_PARALLEL=ON
cd ..
# build
np=-j8
cd $compiler
make $np install
cd ..
# 移动可执行文件
mv -rf $compiler
rm -rf $install_prefix/bin
```
这样,脚本中的路径就会指向你解压后的源码目录。
阅读全文