基于automatic installer的PALM model system 的安装

本文旨在介绍基于automatic installer的PALM model system (后面简称PALM) 在Linux 系统上的安装过程,PALM的详细信息参考PALM官网 。如下所示:

一. 安装方法:

PALM提供了三种安装方法:

  1. An automatic installer ,下载 palm_ installer,在终端输入bash palm_installer执行命令即可,功能全面,需要安装其他数据库。
  2. A simple manual installation method 需要手动输入多条命令,虽然不需要安装其他数据库,但simple 不需要安装netcdf库,而netcdf库主要就是美国大气协会研究开发的网络通用数据格式,后期处理的时候netcdf库能够处理复杂的数据, simple installation 是无法处理的,因此对于需要模拟复杂条件下的大气边界层流动,不建议采用此方法安装。
  3. An advanced manual installation method 高级版本安装,可以支持远程服务器的连接。
    本文主要介绍automatic installer安装方法。

二. Automatic installer所需安装条件:

1 The Bash-shell. 本文采用系统为Ubuntu 16.04
2 NetCDF 库,版本不低于3.6.4。该库的信息详见官网http://www.unidata.ucar.edu
3 FORTRAN 2003 编译器。本文采用Internet complier 2018 (for gfortran, 官方网站要求版本不低于 6.2.1, 之后会讲到,版本低于 6.2.1 仍能成功安装PALM)
4 Subversion, 在大部分Linux系统上已经集成
由于Ubuntu系统满足第1、3、4条件,所以仅需要安装Netcdf库,下面详细介绍该数据库的安装

三. 基于GNU Fortran compiler的 PALM automatic installer 安装

采用编译器即为GNU Fortran compiler 安装PALM,gfortran, netcdf库可以在Ubuntu 系统上使用APT工具安装,输入如下代码即可完成PALM安装的配置工作 (https://palm.muk.uni-hannover.de/trac/ticket/565#no1):

sudo apt-get install subversion cmake gfortran mpich libmpich-dev libnetcdff-dev netcdf-bin libfftw3-dev  libnetcdf-dev

然后输入

bash palm_installer

即可安装成功, 运行一个案例,输入

source /home/annie/.bashrc      #配置环境变量#
cd /home/annie/palm/current_version   # 回到palm工作文件夹#
palmrun -d example_cbl -a "d3#" -h "default" -X "4" -T "4"

显示如下

annie@ubuntu1:~/palm/current_version$ palmrun -d example_cbl -a "d3#" -h "default" -X "4" -T 4

*** palmrun  1.0 Rev: 3043 $ 
    will be executed.     Please wait ...

    Reading the configuration file... 
    Reading the I/O files... 

  *** INFORMATIVE: additional source code directory
      "/home/annie/palm/current_version/JOBS/example_cbl/USER_CODE" 
      does not exist or is not a directory.
      No source code will be used from this directory!

#------------------------------------------------------------------------# 
| palmrun  1.0 Rev: 3043 $           2018年 06月 29日 星期五 10:07:17 CST | 
|                                                                        | 
| called on:               ubuntu1                                       | 
| host identifier:         default (execute on IP: 127.0.0.1)            | 
| running in:              interactive run mode                          | 
| number of cores:         4                                             | 
| tasks per node:          4 (number of nodes: 1)                        | 
|                                                                        | 
| cpp directives:          -cpp -D__fftw -D__gfortran -D__parallel -DMPI | 
|                          _REAL=MPI_DOUBLE_PRECISION -DMPI_2REAL=MPI_2D | 
|                          OUBLE_PRECISION -D__netcdf                    | 
| compiler options:        -Ofast -ffree-line-length-none -I /usr/includ | 
|                          e -I /usr/include                             | 
| linker options:          -Ofast -ffree-line-length-none /usr/lib/x86_6 | 
|                          4-linux-gnu/libnetcdff.so /usr/lib/x86_64-lin | 
|                          ux-gnu/libfftw3.so                            | 
|                                                                        | 
| run identifier:          example_cbl                                   | 
| activation string list:  d3#                                           | 
#------------------------------------------------------------------------#

 >>> everything o.k. (y/n) ?  y

 ***  PALMRUN will now continue to execute on this machine

  *** creating executable and other sources for the local host
  *** nothing to compile for this run
  *** executable and other sources created

  *** changed to temporary directory: /home/annie/palm/current_version/tmp/example_cbl.23896

  *** providing INPUT-files:
  ----------------------------------------------------------------------------
  >>> INPUT: /home/annie/palm/current_version/JOBS/example_cbl/INPUT/example_cbl_p3d  to  PARIN
  *** INFORMATIVE: some optional INPUT-files are not present
  ----------------------------------------------------------------------------
  *** all INPUT-files provided 


  *** execution of INPUT-commands:
  ----------------------------------------------------------------------------
  >>> export ATP_ENABLED=1
  >>> export MPICH_GNI_BTE_MULTI_CHANNEL=disabled
  >>> ulimit -s unlimited
  ----------------------------------------------------------------------------


  *** execution starts in directory
      "/home/annie/palm/current_version/tmp/example_cbl.23896"
  ----------------------------------------------------------------------------

  *** execute command:
      "mpirun -n 4 ./palm" 

      ... reading environment parameters from ENVPAR      --- finished
      ... reading NAMELIST parameters from PARIN      --- finished
      ... creating virtual PE grids + MPI derived data types      --- finished
      ... checking parameters      --- finished
      ... allocating arrays      --- finished
      ... initializing with constant profiles      --- finished
      ... initializing statistics, boundary conditions, etc.      --- finished
      ... creating initial disturbances      --- finished
      ... calling pressure solver      --- finished
      ... initializing surface layer      --- finished
      --- leaving init_3d_model
      --- starting timestep-sequence

      [XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX]   0.0 left
      --- finished time-stepping
      ... calculating cpu statistics      --- finished

  ----------------------------------------------------------------------------
  *** execution finished 



 *** post-processing: now executing "mpirun -n 1 ./combine_plot_fields.x" ... 
 
 *** combine_plot_fields ***
     uncoupled run
 
 
     NetCDF output enabled
     no XY-section data available
 
     NetCDF output enabled
     no XZ-section data available
 
     no YZ-section data available
  
     no 3D-data file available


  *** execution of OUTPUT-commands:
  ----------------------------------------------------------------------------
  >>> [[ -f LIST_PROFIL_1D ]] && cat LIST_PROFIL_1D >> LIST_PROFILE
  >>> [[ -f LIST_PROFIL ]] && cat LIST_PROFIL >> LIST_PROFILE
  >>> [[ -f PARTICLE_INFOS/_0000 ]] && cat PARTICLE_INFOS/* >> PARTICLE_INFO
  ----------------------------------------------------------------------------


  *** saving OUTPUT-files:
  ----------------------------------------------------------------------------
  >>> OUTPUT: RUN_CONTROL  to
              /home/annie/palm/current_version/JOBS/example_cbl/MONITORING/example_cbl_rc.002

  >>> OUTPUT: HEADER  to
              /home/annie/palm/current_version/JOBS/example_cbl/MONITORING/example_cbl_header.002

  >>> OUTPUT: CPU_MEASURES  to
              /home/annie/palm/current_version/JOBS/example_cbl/MONITORING/example_cbl_cpu.002

  >>> OUTPUT: DATA_1D_PR_NETCDF  to
              /home/annie/palm/current_version/JOBS/example_cbl/OUTPUT/example_cbl_pr.002.nc

  >>> OUTPUT: DATA_1D_TS_NETCDF  to
              /home/annie/palm/current_version/JOBS/example_cbl/OUTPUT/example_cbl_ts.002.nc

  >>> OUTPUT: DATA_2D_XY_NETCDF  to
              /home/annie/palm/current_version/JOBS/example_cbl/OUTPUT/example_cbl_xy.002.nc

  >>> OUTPUT: DATA_2D_XZ_NETCDF  to
              /home/annie/palm/current_version/JOBS/example_cbl/OUTPUT/example_cbl_xz.002.nc

  >>> OUTPUT: DATA_2D_XZ_AV_NETCDF  to
              /home/annie/palm/current_version/JOBS/example_cbl/OUTPUT/example_cbl_av_xz.002.nc

  ----------------------------------------------------------------------------
  *** all OUTPUT-files saved 

你可能感兴趣的:(基于automatic installer的PALM model system 的安装)