爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 272398|回复: 804

教程:WRF 3.9.1.1 在Ubuntu16.04 LTS 下的安装包括Chem kpp

  [复制链接]

新浪微博达人勋

发表于 2017-11-10 15:38:51 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 sunzy025 于 2021-8-21 15:43 编辑

教程:WRF 3.9.1.1 Ubuntu16.04 LTS 下的安装包括Chem kpp
本人是在64win7ubuntu16.04LTS双系统下成功的安装了WRF 3.9.1.1 (WPS, WRFV, WRFDA, WRF_Chem)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
首先先感谢 几位大神,以及我所参考的好多个帖子。吃水不忘挖井人,在此一一感谢。
小其其格及其帖子
ljh110011及其帖子
Lrxwisdom及其帖子
科研菜鸟(博客地址http://blog.sciencenet.cn/u/sanshiphy
南方黑芝麻糊(发自内心的感谢这位超级大神!!,耐心回答了我很多问题)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
所有软件的版本介绍
系统:Ubuntu 16.04 LTS(cat /etc/issue 查看)
WRFV3.9.1.1 WRFV3.9.1.1.TAR.gzWRFV3-Chem-3.9.1.TAR.gzWPSV3.9.1.TAR.gzWRFDA_V3.9.1.tar.gz WRFDomainWizard
NETCDF (NetCDF-C V4.4.1; NetCDF-FORTRAN V4.4.4)
HDF5: V1.8.18; NCL: V6.4.0
库函数:zlib: V1.2.10;Jasper: V1.900.1 (要是版本过高会不生成ungrid.exe, 也有解决办法,后文提到) ; PNG:V1.6.26;Libjpeg.v9a
gcc 5.4.0  g++ 5.4.0  gfortran 5.4.0
byacc.1.9.tar.Z  wgrib2.tgz  
所有的软件都已经打包了好了,也是给自己以后留一个备份。
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Win&Ubuntu双系统
/boot, LinuxUUniversal_USB_Installer一定要首先更新一下系统,并且把所有的package都修复啦!
sudo apt-get upgrade
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
安装编译工具
1)进入Ubuntu后,打开左侧ubuntuSoftware,查找新立得软件包管理器(synaptic,点击安装,然后等待自行完成。
2perl(version 5 or later) (perl –v)
3C shell(csh), Bourne shell (sh),这两个可以被tcsh兼容,所以只需安装tcsh
awk (which awk 若是usr/bin/awk返回,则说明OK)
4)接下来
apt-get install tcsh samba cpp m4 quota
tcsh --version
samba --version
cpp --version
m4 –version
检查是否成功
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
安装WRF编译工具
1)首先判断gccg++gfortran版本是否一致
gcc --version
g++ --version
gfortran –version
基本上gfortran是没有的,然后正常安装即可
apt-get install gfortran
之后再检查一遍这三个是否一样。Ubuntu16.04里面这三个都是5.4.0版本的。
2)根据小其其格的说法,需要重新连接一遍,不然会寻址不到。
【重新链接gccg++gfortran
1.建立备份文件夹:
mkdir /usr/bin/gccbackup
mkdir /usr/bin/g++backup
mkdir /usr/bin/gfortranbackup
2.先将原来的链接改名,终端输入:
mv /usr/bin/gcc /usr/bin/gccbackup
mv /usr/bin/g++ /usr/bin/g++backup
mv /usr/bin/gfortran /usr/bin/gfortranbackup
3.重新链接
ln -s /usr/bin/gcc-5 /usr/bin/gcc
ln -s /usr/bin/gfortran-5 /usr/bin/gfortran
ln -s /usr/bin/g++-5 /usr/bin/g++
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
安装NetCDF
NetCDF的安装需要有HDF5lib,而HDF5的安装需要先有zlibcurl。所以先要安装zlibcurl。本人将zlibcurl,  jpeg, png.  Jasper 一起安装了,并且建立了一个JASPER文件夹将这几个libinclude都放在一起,方便后期的环境设置。
打开synaptic,点击搜索,输入libjpeg8,然后libjpeg8-dbg/libjpeg8-dev选项,前面没有打钩的。双击打钩标记,标记后会变绿色,点击应用,然后安装。
同理输入glibc,然后就会看到结果有三个红点的glibc选项,也apply
同理输入grib2然后就会看到结果有libgrib2c-dev/libgrib2c0d选项,也apply
开始安装各个小东西
第一步解压,把下载好的都解压了,我这里是解压到/usr/local/src,安装完可以删除
tar -zxf zlib-1.2.10.tar.gz -C /usr/local/src
tar -zxf jpegsrc.v9a.tar.gz -C /usr/local/src
tar -zxf libpng-1.6.26.tar.gz -C /usr/local/src
tar -zxf jasper-1.900.1.zip -C /usr/local/src
接下来就是各种安装了
1.       zlib
cd /usr/local/src/zlib-1.2.10/
./configure --prefix=/usr/local/zlib
make
make check
make install
2.       curl
apt-get install curl
3.       jpeg-9a
cd /usr/local/src/ jpeg-9a
./configure --prefix=/usr/local/libjpeg
make
make install
4.       libpng
cd /usr/local/src/libpng-1.6.26
export LDFLAGS=-L/usr/local/zlib/lib
export CPPFLAGS=-I/usr/local/zlib/include
./configure --prefix=/usr/local/libpng
make
make install
5.       jasper-1.900.1
cd /usr/local/src/jasper-1.900.1
. /configure --prefix=/usr/local/jasper
make
make install
我安装的是1.9,因为高版本在后面可能出现不了ungrib.exe
根据科研菜鸟理论 高版本的Jasper需要修改jas_image.h文件
cd /usr/local/jasper/include/jasper/
gedit jas_image.h(找到bool inmem_; 将前面的“//“去掉)
配置环境变量
mkdir /usr/local/JASPER
mkdir /usr/local/JASPER/lib
mkdir /usr/local/JASPER/include
cp -r /usr/local/zlib/lib/* /usr/local/JASPER/lib
cp -r /usr/local/libpng/lib/* /usr/local/JASPER/lib
cp -r /usr/local/jasper/lib/* /usr/local/JASPER/lib
cp -r /usr/local/zlib/include/* /usr/local/JASPER/include
cp -r /usr/local/libpng/include/* /usr/local/JASPER/include
cp -r /usr/local/jasper/include/* /usr/local/JASPER/include
gedit ~/.bashrc
在最后添加下面路径指向:
#for zlib
export ZLIB_HOME=/usr/local/zlib
export LD_LIBRARY_PATH=$ZLIB_HOME/lib:$LD_LIBRARY_PATH
#for libpng
export ZLIB_HOME=/usr/local/libpng
export LIBPNGLIB=/usr/local/libpng/lib
export LIBPNGINC=/usr/local/libpng/include
#set JASPER
export JASPER=/usr/local/JASPER
export JASPERLIB=/usr/local/JASPER/lib
export JASPERINC=/usr/local/JASPER/include
保存后退出
source ~/.bashrc
要是保存不了,就 chmod 修改一下你的权限吧
(JASPER的两个文件夹下分别有15个和7个文件)
安装配置hdf5
tar-xf hdf5-1.8.18.tar -C /usr/local/src
cd /usr/local/src/hdf5-1.8.18
./configure --prefix=/usr/local/HDF5 --with-zlib=/usr/local/zlib
make (会有很多警告,但是不影响)
make check
make install
make check-install
时间稍长
gedit ~/.bashrc
在最后添加下面:
# for hdf5
export CPPFLAGS=-I$PRO_PATH/usr/local/HDF5/include
export LDFLAGS=-L$PRO_PATH/usr/local/HDF5/lib
export LD_LIBRARY_PATH=$PRO_PATH/usr/local/HDF5/lib
保存后退出。
source ~/.bashrc
安装NetCDF-C
tar -zxf netcdf-c-4.4.1.tar.gz -C /usr/local/src
cd /usr/local/src/netcdf-c-4.4.1/
export CPPFLAGS=-I/usr/local/HDF5/include
export LDFLAGS=-L/usr/local/HDF5/lib
export LD_LIBRARY_PATH=$/usr/local/HDF5/lib
./configure --prefix=/usr/local/NETCDF --disable-netcdf-4
make
make check
make install
然后安装好。
安装NetCDF -fortran
tar -xzf netcdf-fortran-4.4.4.tar.gz -C /usr/local/src
cd /usr/local/src/netcdf-fortran-4.4.4/
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/NETCDF/lib
export CPPFLAGS=-I/usr/local/NETCDF/include
export LDFLAGS=-L/usr/local/NETCDF/lib
./configure --prefix=/usr/local/NETCDF FC=gfortran
make
make check
make install
接着设置环境变量
gedit ~/.bashrc
在最后添加下列语句:
#for netcdf
export PATH=/usr/local/NETCDF/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/NETCDF/lib:$LD_LIBRARY_PATH
保存后退出
source ~/.bashrc
安装NCL
mkdir /usr/local/ncarg
tar -zxf ncl_ncarg-6.4.0.Linux_Debian8.6_x86_64_gnu492.tar.gz -C /usr/local/ncarg/
cd /usr/local/ncarg
gedit ~/.bashrc
在最后添加下列语句:
#for ncarg
Export NCARG_ROOT=/usr/local/ncarg
Export PATH=$NCARG_ROOT/bin:$PATH
Export MANPATH=$NCARG_ROOT/man:$MANPATH
Export DISPLAY=:0.0
export WRFIO_NCD_LARGE_FILE_SUPPORT=1(这一句用于WRF输出大数据)
保存后退出
source ~/.bashrc
检验NCL是否成功安装,新终端输入:
ncargversion
安装wgrib2
cd /usr/local
tar –zxvf wgrib2.tgz
cd grib2
export CC=gcc
export FC=gfortran
make
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
安装WRF
mkdir /home/yourname/model/
gedit ~/.bashrc
# for WRF
export JASPERLIB=/usr/local/JASPER/lib
export JASPERINC=/usr/local/JASPER/include
export NETCDF=/usr/local/NETCDF
source ~/.bashrc
tar -xzf WRFV3.9.1.1.TAR.gz -C /home/yourname/models
这时在/model出现了WRFV3的文件,进入WRFV3里面的arch文件夹,找到Config_new.pl文件,打开后,找到下面这句并做如下修改:
$I_really_want_to_output_grib2_from_WRF= "TRUE" ;
对应下面几行,找到并修改:
$sw_jasperlib_path= "/usr/local/JASPER/lib";
$sw_jasperinc_path= "/usr/local/JASPER/include";
保存后退出。
cd /home/yourname/models/WRFV3/
./configure
选择gcc、gfortran、serial那一行(第32项),输入:32,回车
在arch文件夹里面找到configure_new.defaults,打开,找到这一部分
#ARCH   x86_64 Linux, gfortran compiler withgcc  #serial smpar dmpar dm+sm
找到下面几行,做如下修改:
FORMAT_FIXED  =       -ffixed-form -cpp
FORMAT_FREE   =       -ffree-form -cpp -ffree-line-length-none
保存后退出。
在WRFV3目录下找到configure.wrf文件并打开,做如下修改:(同上)
FORMAT_FIXED  =       -ffixed-form -cpp
FORMAT_FREE   =       -ffree-form -cpp -ffree-line-length-none
保存后退出。
终端输入:
./compile em_real >&checkwrf.log
终端输入:
ls -ls main/*.exe
查看 main目录下若有 ndwon.exe\real.exe\wrf.exe\tc.exe,编译成功。若未编译成功,在 checkwrf.log中查看是否有 error,修正 error后,用./clean -a清除前次编译后,重新编译。
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
安装KPP
游客,如果您要查看本帖隐藏内容请回复
Flex
mkdir /usr/local/flex
cd /usr/local/flex
tar -xzf flex.tar.gz
cd flex-2.5.3
./configure --prefix=/usr/local/flex
make
make install
Yacc:
gzip -d byacc.1.9.tar.Z
mkdir /usr/local/yacc
tar -xf byacc.1.9.tar -C /usr/local/yacc
make
gedit ~/.bashrc
# for chem
export WRF_CHEM=1 (编译 WRF_Chem)
export WRF_KPP=1(安装 KPP,0 表示不安装 KPP,若不安装 KPP,下面的环境变量不需要设置)
export PATH=/usr/local/yacc:$PATH
export PATH=/usr/local/flex/bin:$PATH
export YACC='/usr/local/yacc/yacc -d'
export FLEX=/usr/local/flex/bin/flex
export FLEX_LIB_DIR=/usr/local/flex/lib
source ~/.bashrc
设置前利用 which flex 和 which yacc 查一下系统原来是否安装有 flex/yacc 其它版本。如果有,必须在 PATH 路径中加入自己安装的 flex/yacc 执行程序路径,如上面标黄部分所示。
WRF-Chem
tar –xzf WRFV3-Chem-3.9.1.TAR.gz -C /home/yourname/models/WRFV3
打开WRF-Chem下的arch文件夹,找到Config_new.pl,打开并做如下修改:(同WRF)
$I_really_want_to_output_grib2_from_WRF = "TRUE" ;
对应下面几行,找到并修改:
$sw_jasperlib_path = "/usr/local/JASPER/lib";
$sw_jasperinc_path = "/usr/local/JASPER/include";
保存后退出。
cd /home/yourname/models/WRFV3
./clean -a (删除以前的 WRF 编译)
./configure
./compileem_real >&checkwrf.log
ls -ls main/*.exe
查看 main 目录下若有 ndwon.exe\real.exe\wrf.exe\tc.exe,编译成功
若未编译成功,在 checkwrf.log 中查看是否有 error,修正 error 后,用./clean -a 清除前次编译后,重新编译.

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
安装WPS
WRFV3 和WPS 必须在同一个父目录下。
tar -xzf WPSV3.9.1.1.TAR.gz -C /home/yourname/models/
cd /home/yourname/models/WPS
打开WPS下的arch文件夹,找到configure.defaults,打开,找到这一部分:
#ARCH    Linux x86_64, gfortran  # serial serial_NO_GRIB2 dmpardmpar_NO_GRIB2
在这部分里面做如下修改:
COMPRESSION_LIBS   = -L/usr/local/JASPER/lib -ljasper -lpng -lpng16 -lz
COMPRESSION_INC = -I/usr/local/JASPER/include
FFLAGS      =-ffree-form -cpp -O-fconvert=big-endian-frecord-marker=4
F77FLAGS    =-ffixed-form -cpp -O -fconvert=big-endian-frecord-marker=4
保存后退出。
找到preamble文件,打开做如下修改:
WRF_DIR = /home/yourname/model/WRFV3
编辑环境信息
gedit ~/.bashrc
# for WPS
export JASPERLIB=/usr/local/JASPER/lib
export JASPERINC=/usr/local/JASPER/include
export LD_LIBRARY_PATH=/usr/local/jasper/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/local/libpng/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/local/zlib/lib:$LD_LIBRARY_PATH
source ~/.bashrc
./configure
./compile > checkwps.log
ls -ls *.exe
检查当前目录中/home/models/WPS是否有名为geogrid.exe\ungrib.exe\metgrid.exe的链接文件,若有,编译成功。
ls -ls util/*.exe
检查当前目录中是否有如下exe,编译成功:
avg_tsfc.exe g1print.exeheight_ukmo.exe mod_levs.exe
calc_ecmwf_p.exeg2print.exe int2nc.exe rd_intermediate.exe
若未编译成功,在checkwps.log 中查看是否有error,修正error 后,用./clean-a清除前次编译后,重新编译。
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
安装WRFDA
打开WRFDA下的arch文件夹,找到Config_new.pl,打开并做如下修改: $I_really_want_to_output_grib2_from_WRF = "TRUE" ;
对应下面几行,找到并修改:
$sw_jasperlib_path = "/usr/local/JASPER/lib";
$sw_jasperinc_path = "/usr/local/JASPER/include";
保存后退出。
终端输入:
cd /home/yourname/model/WRFDA
./configure wrfda
选择gcc、gfortran、serial那一行(第32项),输入:32,回车
gedit configure.wrf
做如下修改:
FORMAT_FIXED   =      -ffixed-form -cpp
FORMAT_FREE    =      -ffree-form -cpp-ffree-line-length-none
保存后退出。
./compile all_wrfvar >&checkwrfda.log
cd var/build
ls *.exe
看看有没有da_wrfvar.exe文件,并且全部可执行文件不显示红色,那么WRFDA安装成功。
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
安装WRFDomainWizard
首先安装java
1.官网下载JDK
2.解压缩,放到指定目录
sudo mkdir/usr/lib/jvm
sudo tar -zxvf  jdk-7u79-linux-x64.tar.gz -C /usr/lib/jvm
3.修改环境变量: 
sudo gedit ~/.bashrc
文件的末尾追加下面内容:
#set oracle jdkenvironment
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_60  ## 这里要注意目录要换成自己解压的jdk 目录
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH  
使环境变量马上生效
source ~/.bashrc
4.设置系统默认jdk 版本
sudo update-alternatives --install /usr/bin/java java/usr/lib/jvm/jdk1.7.0_79/bin/java 300  
sudo update-alternatives --install /usr/bin/javac javac/usr/lib/jvm/jdk1.7.0_79/bin/javac 300  
sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk1.7.0_79/bin/jar300   
sudo update-alternatives --install /usr/bin/javah javah/usr/lib/jvm/jdk1.7.0_79/bin/javah 300   
sudo update-alternatives --install /usr/bin/javap javap/usr/lib/jvm/jdk1.7.0_79/bin/javap 300   
然后执行:
sudo update-alternatives--config java
若是初次安装jdk,会有下面的提示     
   There is only one alternative in link group java (providing/usr/bin/java):
    /usr/lib/jvm/jdk1.7.0_60/bin/java
否者,选择合适的jdk
5.测试jdk
java –version
然后安装WRFDomainWizard
解压WRFDomainWizard.zip到/home/yourname/model下
终端输入:
cd /home/yourname/model/WRFDomainWizard
chmod +x run_DomainWizard
./run_DomainWizard
这样就出来一个图形界面 (你已经完全成功了)

感觉代码写的时候没啥事,到网页上之后,会有空格被吃掉的情况,大家一定要注意!!


2021.08.21补充:网盘里面的东西没有了,大家别下载了。切记!
QQ图片20171110162732.jpg

网盘地址.txt

48 Bytes, 阅读权限: 20, 下载次数: 494, 下载积分: 金钱 -5

全部软件下载

评分

参与人数 11金钱 +110 贡献 +11 收起 理由
珮瑶瑶 + 10
zjs434200 + 5 赞一个!
blisaiis + 2 很给力!
hurangzhi + 1 很给力!
Jillou娄 + 10 很给力!
西西 + 20 很给力!
禾臣 + 1 赞一个!
smart_abell + 10 + 1 很给力!
KIMO23 + 20 赞一个!
mofangbao + 20 + 10
balfulosa + 11 谢谢楼主分享

查看全部评分

本帖被以下淘专辑推荐:

密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-8-27 06:03:08 | 显示全部楼层
amy1997 发表于 2018-8-25 22:43
Netcdf.o: In function `f_netcdf':
Netcdf.c:(.text+0x548c): undefined reference to `nc_def_var_chunk ...

不出东西是么?
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2024-10-22 22:08:30 | 显示全部楼层
学习了,感谢。编译成功
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2024-10-20 19:49:10 | 显示全部楼层
非常非常非常非常非常好
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2024-7-11 11:19:46 | 显示全部楼层
学习一下,最近又看到个自动安装脚本,是wrf 4的版本的,https://github.com/yusufalizade/Install-WRF-Chem-4.5-and-KPP-on-Ubuntu/blob/main/Installation_of_WRF-Chem-4.5.sh
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2024-6-3 19:44:12 | 显示全部楼层
{:eb511:}
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2024-5-30 17:59:19 | 显示全部楼层
谢谢分享,学习到了很多
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2024-4-2 19:48:34 | 显示全部楼层
谢谢楼主,非常非常感谢
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2024-1-2 22:02:09 | 显示全部楼层
HAOHAO,谢谢。。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2023-10-15 13:02:25 | 显示全部楼层
谢谢大佬!
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2023-10-11 10:09:11 | 显示全部楼层
111111111111
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表