wrf -cmaq安装及wrf运行代码分享

#安装文件自行获取

#注意用户身份,不要在root用户下

#设置环境变量

vi ~/bashrc

export data4smoke=~/models/data4smoke
export models=~/models_inst
export BASEDIR=$IOAPIROOT
export BIN='Linux2_x86_64ifort' 
export CPLMODE='nocpl'

export CC=icc

export CXX=icpc

export FC=ifort

export F90=ifort

export F77=ifort

export TOOLS=/home/cmaq/models/tools

#netcdf

export NETCDF=$TOOLS/netCDF44intel

export PATH=${NETCDF}/bin:$PATH

export INCLUDE=${NETCDF}/include:${INCLUDE}
export LD_LIBRARY_PATH=${NETCDF}/lib:${LD_LIBRARY_PATH}

export LDFLAGS=-L${NETCDF}/lib

export CPPFLAGS=-I${NETCDF}/include

#mpich

export MPI=$TOOLS/mpi

export PATH=${MPI}/bin:$PATH
#jasper

export JASPERLIB=$TOOLS/netCDF44intel/lib

export JASPERINC=$TOOLS/netCDF44intel/include
#WRF-WPS安装

export Build_WRF=/home/cmaq/models/Build_WRF

export WRFIO_NCD_NO_LARGE_FILE_SUPPORT=1

export WRF_EM_CORE=1

创建文件

mkdir -p $models
mkdir -p $TOOLDIR
mkdir -p $NCROOT
mkdir -p $IOAPIROOT

#先安装netcdf与ioapi

#netcdf

mkdir -p $data4smoke/tools/netcdf
tar -xzvf $data4smoke/tools/netcdf-4.4.1.1.tar.gz -C $data4smoke/tools/netcdf
tar -xzvf $data4smoke/tools/netcdf-fortran-4.4.4.tar.gz -C $data4smoke/tools/netcdf
cd $data4smoke/tools/netcdf/netcdf-4.4.1.1
./configure --prefix=$NCROOT CC="icc" --disable-dap --disable-netcdf-4 --disable-shared
make
make install

cd $data4smoke/tools/netcdf/netcdf-fortran-4.4.4
./configure --prefix=$NCROOT FC="ifort" CC="icc" CXX="icpc" CPPFLAGS="-I/home/cmaq/models/tools/netCDF44intel/include" --disable-shared

make
make install

#ioapi
mkdir -p $IOAPIROOT
tar -xzvf $data4smoke/tools/ioapi-3.2.tar.gz -C $IOAPIROOT

mkdir -p $BASEDIR/$BIN
cp $NCROOT/lib/libnetcdf*.a $BASEDIR/$BIN

cd $BASEDIR
cp Makefile.template Makefile
vi Makefile

:set nu
133 134 141

#BIN=

#BASEDIR

NCFLIBS= -lnetcdff -lnetcdf

cd $BASEDIR/ioapi
vi Makeinclude.Linux2_x86_64ifort
:set nu
25 26 27 28

采用-qopenmp


cd $BASEDIR
make
cd $BASEDIR/Linux2_x86_64ifort
ls jul2greg datshift juldate libioapi.a

#zlib
tar -zxvf $basement/zlib-1.2.11.tar.gz -C $TOOLS
cd $TOOLS/zlib-1.2.11
./configure --prefix=$TOOLS/netCDF44intel
make
make install

#libpng
tar -zxvf $basement/libpng-1.6.37.tar.gz -C $TOOLS
cd $TOOLS/libpng-1.6.37
./configure --prefix=$TOOLS/netCDF44intel LDFLAGS=-L${NETCDF}/lib CPPFLAGS=-I${NETCDF}/include
make
make install

#jasper
tar -zxvf $basement/jasper-1.900.1.tar.gz  -C $TOOLS
cd $TOOLS/jasper-1.900.1
./configure --prefix=$TOOLS/netCDF44intel
make
make install

#mpich
tar -zxvf $basement/mpich-3.4.2.tar.gz -C $TOOLS
cd $TOOLS/mpich-3.4.2

unset F90
unset  F90FLAGS
### CC=icc CXX=icc FC=ifort CPP='icpc -E' CPPFLAGS='-fPIC' ./configure --prefix=/home/cmaq/models/tools/LIBRARIES/mpich --with-device=ch3
CC=icc CXX=icc FC=ifort CPP='icpc -E' CPPFLAGS='-fPIC' ./configure --prefix=$TOOLS/mpich34 --with-device=ch3
#/configure --prefix=$TEST/mpich34 --with-device=ch3
make -j4
make install

tar -zxvf $basement/WRFV3.8.TAR.gz -C $Build_WRF
cd $Build_WRF/WRFV3
./configure 
15 
1
./compile em_real &>compile.log
cd /main
ls *.exe

tar -zxvf $basement/WPSV3.8.TAR.gz -C $Build_WRF
cd $Build_WRF/WPS
./configure
19
./compile >& compile.log
tail -f compile.log
ls *.exe

#运行WRF-WPS

cd /home/cmaq/models/WRF/WPS
ln -sf geogrid/GEOGRID.TBL.ARW ./GEOGRID.TBL
ln -sf metgrid/METGRID.TBL.ARW ./METGRID.TBL
ln -sf ungrib/Variable_Tables/Vtable.GFS ./Vtable
vi namelist.wps
 geog_data_path = '/home/cmaq/models/Build_WRF/data/geog', #注意路径设置,之前这里出错

cd /home/cmaq/models/Build_WRF/scripts
cp autorun_wrf.csh autorun_wrf.bat.csh
vi ./autorun_wrf.csh

output_dir=/home/cmaq/models/Build_WRF/data/wrfout
wps_dir=/home/cmaq/models/Build_WRF/WPS
wrf_dir=/home/cmaq/models/Build_WRF/WRFV3/run
./link_grib.csh /home/cmaq/models/Build_WRF/data/FNL/fnl*
##根据电脑核数修改对应运行核数
./autorun_wrf.sh

#安装cmaq

vi ~/.bashrc

export CMAQ_HOME=/home/cmaq/models/CMAQ/CMAQ-5.2
export CMAQ_LIB=$CMAQ_HOME/lib
export CMAQ_DATA=$CMAQ_HOME/data
export I_MPI_SHM_LMT=shm
ulimit -s unlimited

source ~/.bashrc

vi bldit_project.csh
set CMAQ_HOME = /home/cmaq/models/CMAQ/CMAQ-5.2
./bldit_project.csh

vi config_cmaq.csh
setenv CMAQ_HOME /home/cmaq/models/CMAQ/CMAQ-5.2

 setenv IOAPI_MOD_DIR   /home/cmaq/models/CMAQ/CMAQ-5.2/lib/ioapi/Linux2_x86_64ifort
 setenv IOAPI_INCL_DIR  /home/cmaq/models/CMAQ/CMAQ-5.2/lib/ioapi/ioapi/fixed_src
 setenv IOAPI_LIB_DIR   /home/cmaq/models/CMAQ/CMAQ-5.2/lib/ioapi/Linux2_x86_64ifort
 setenv NETCDF_LIB_DIR  /home/cmaq/models/CMAQ/CMAQ-5.2/lib/netcdf/lib
 setenv NETCDF_INCL_DIR /home/cmaq/models/CMAQ/CMAQ-5.2/lib/netcdf/include
 setenv MPI_LIB_DIR     /home/cmaq/models/CMAQ/CMAQ-5.2/lib/mpi/lib

#setenv myLINK_FLAG ""  ### ########运行采用mpich,不用openmpi,这里这个命令出错了
setenv myLINK_FLAG "-fopenmp"  ##最新一次在这里用fopenmp参数运行没出错,其他参数出问题了,错误显示问icon编译时显示未定义xxx函数
setenv myLINK_FLAG "-qopenmp"  ### 用qopenmp也没问题
#setenv myLINK_FLAG "-openmp"

 #setenv extra_lib "-lcurl"
        setenv extra_lib ""

setenv netcdf_lib "-lnetcdff -lnetcdf" 
setenv pnetcdf_lib ""#"-lpnetcdf" 

setenv CMAQ_LIB    /home/cmaq/models/CMAQ/CMAQ-5.2/lib 
setenv PNETCDF_DIR "" #$CMAQ_LIB/pnetcdf 
setenv IOAPI_DIR   /home/cmaq/models/CMAQ/CMAQ-5.2/lib/ioapi/Linux2_x86_64ifort

 #    ln -s $MPI_LIB_DIR $MPI_DIR
 #if (   -e $MPI_DIR  ) rm -rf $MPI_DIR

#    mkdir $IOAPI_DIR(这一段路径有问题,而且不需要链接)
#    ln -s $IOAPI_MOD_DIR  $IOAPI_DIR/modules
#    ln -s $IOAPI_INCL_DIR $IOAPI_DIR/include_files
#    ln -s $IOAPI_LIB_DIR  $IOAPI_DIR/lib
if ( ! -e $IOAPI_DIR/libioapi.a ) then(libioapi.a就在$IOAPI_DIR这个路径下,不需要加lib)
if ( ! -e $IOAPI_DIR/m3utilio.mod ) then(m3utilio.mod就在$IOAPI_DIR这个路径下,不需要加modules)


在tcsh 进行source             ####之前碰到找不到intel就是这个问题
设置完后执行以下命令:source config_cmaq.csh intel(采用intel编译器)

### 编译CMAQ模式所有模块都需要: source config_cmaq.csh intel, 保持前后一致。###

cd /home/cmaq/models/CMAQ/CMAQ-5.2/PREP/icon/scripts

vi bldit_icon.csh

set xLib_1     = ioapi/Linux2_x86_64ifort
set xLib_2     = ioapi/ioapi/fixed_src
set xLib_4     = ioapi/Linux2_x86_64ifort
./bldit_icon.csh intel |& tee build_icon.log
###执行完后生成ICON_v52_profile.exe即为编译成功


cd  /home/cmaq/models/CMAQ/CMAQ-5.2/PREP/bcon/scripts
vi bldit_bcon.csh
#### 修改ioapi相关库文件路径
set xLib_1     = ioapi/Linux2_x86_64ifort
set xLib_2     = ioapi/ioapi/fixed_src
set xLib_4     = ioapi/Linux2_x86_64ifort

./bldit_bcon.csh intel |& tee build_bcon.log   ###执行完后生成BCON_v52_profile.exe即为编译成功

/home/cmaq/models/CMAQ/CMAQ-5.2/PREP/mcip/src
vi Makefile
FFLAGS = -qopenmp -fpp -auto $(myFRFLAGS) -I$(NETCDF_DIR)/include -I$(IOAPI_INCL_DIR) -I$(IOAPI_DIR)
LIBS   = -L$(IOAPI_DIR) $(ioapi_lib) \                #注意这里的反斜杠\
source ../../../config_cmaq.csh intel      
make | & tee make.log
cd /home/cmaq/models/CMAQ/CMAQ-5.2/PREP/mcip/src
### 生成.exe即为编译成功

cd /home/cmaq/models/CMAQ/CMAQ-5.2/CCTM/scripts
vi bldit_cctm.csh
echo "lib_1       ioapi/Linux2_x86_64ifort;"                                 >> $Cfile
echo "lib_2       ioapi/ioapi/fixed_src;"                                    >> $Cfile
echo "lib_4       ioapi/Linux2_x86_64ifort;"                                 >> $Cfile
####这里要注意中英文标点字符与空格
### 修改对应的机制
  set Mechanism = cb6r3_ae6_aq
 #set Mechanism = cb05tucl_ae6_aq
 #set Mechanism = cb05e51_ae6_aq 
./bldit_cctm.csh intel |& tee build_cctm.log
### 执行完后生成CCTM*.exe即为编译成功。
 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值