爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 8539|回复: 14

IBM高性能计算机AIX7.1.0.0(普通用户)+WRF3.5.1安装作业

[复制链接]

新浪微博达人勋

发表于 2013-12-21 17:31:27 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 sywyx 于 2014-4-17 09:50 编辑

IBM_大型机のAIX_7.1.0.0(普通用户)+WRF3.5.1安装作业

普通用户 {:soso_e173:}

无外网联接:依靠FTP导入数据

查看操作系统命令:
oslevel
7.1.0.0
在普通用户根目录下创建.profile文件,内容如下:
PATH=/usr/bin:/bin:/etc:/usr/sbin:/usr/ucb:/opt/freeware/bin/gcc:/usr/bin/X11:/sbin:/usr/X11R6/bin:/usr/vac/bin:/usr/vacpp/bin:/usr/lpp/mmfs/bin:/opt/xcat/bin:/opt/freeware/bin:/usr/local/bin.
export NCARG_ROOT=/sya/u/app/ncl-6.1.2
export NCARG_LIB=/sya/u/app/ncl-6.1.2/lib
export NCARG_INC=/sya/u/app/ncl-6.1.2/include
export NETCDF=/sya/u/app/netcdf-4.1.3
export NETCDFLIB=/sya/u/app/netcdf-4.1.3/lib
export NETCDFINC=/sya/u/app/netcdf-4.1.3/include
export PNETCDF=/sya/u/app/pnetcdf
export JASPER=/sya/u/app/jasper-1.900.1
export JASPERLIB=/sya/u/app/jasper-1.900.1/lib
export JASPERINC=/sya/u/app/jasper-1.900.1/include
export ZLIB=/sya/u/app/zlib-1.2.5
export ZLIBLIB=/sya/u/app/zlib-1.2.5/lib
export ZLIBINC=/sya/u/app/zlib-1.2.5/include
export PHDF5=/sya/u/app/hdf5-1.8.8
export PHDF5LIB=/sya/u/app/hdf5-1.8.8/lib
export PHDF5INC=/sya/u/app/hdf5-1.8.8/include
export BLAS=/sya/u/app/blas
export LAPACK=/sya/u/app/lapack-3.4.2
export WRF=1
export WRF_EM_CORE=1
export WRF_EM_NEST=1
export WRFIO_NCD_LARGE_FILE_SUPPORT=1
export IBM_REDUCE_BUG_WORKAROUND=1
export WRF_DA_CORE=1
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/sya/u/app/jasper-1.900.1/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/sya/u/app/netcdf-4.1.3/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/sya/u/app/ncl-6.1.2/supplibs/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/sya/u/app/hdf5-1.8.8/lib
export OBJECT_MODE=64
export LDFLAGS="-L/usr/local/lib64"
export CFLAGS="-I/usr/local/include"
export YACC="yacc -d"
export GADDIR=~/grads/data
MANPATH=$MANPATH:/usr/lpp/LoadL/scheduler/full/man:/opt/xcat/man
export PATH MANPATH
export EDITOR=/usr/bin/vi
if [ -a ~/.kshrc ]
then
export ENV="~/.kshrc"
fi
if [ `basename $SHELL` = "ksh" -o `basename $SHELL` = "ksh93" ]
then
if [ `id -u` -eq 0 ]
then
export PS1='[$LOGNAME@'`hostname`' $PWD]#'
else
export PS1='[$LOGNAME@'`hostname`' $PWD]$'
fi
set -o vi
fi
if [ `basename $SHELL` = "bash" ]
then
export PS1='[\u@\h \w]\$'
fi
#export WORKDIR=
export OBJECT_MODE=64
export PATH=.:/sya/u/app/grads/bin:/sya/u/app/bin:$NCARG_ROOT/bin:$NETCDF/bin:$PATH
export PATH=/sya/u/app/wgrib2/bin:$PATH
alias vi='vim'
alias g1='cd /sya/g1/wrf'
alias research='cd /sya/g1/wrf/research'
export PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'
export PATH=/sya/u/app/nco/bin:$PATH
export MANPATH=$MANPATH:/sya/u/app/nco/share/man
export LD_LIBRARY_PATH=/sya/u/app/udunits/lib:/sya/u/wrf/bin:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/opt/freeware/lib:$LD_LIBRARY_PATH
注:/sya/u/app为AIX系统一些应用软件(NETCDF,NCL,JASPER等)存放路径,为系统预先配置
使配置生效:
. /sya/u/wangyx/.profile

WRFV3安装
官网指示:
WRF Model Version 3.5.1 : Known Problems and Fixes
Nesting with 1:2 ratio:
Problem: There is a problem with nest ratio of 1:2.
Solution: We are working on resolving the problem.
Grell-Freitas Cumulus Scheme (new in V3.5):
Problem: There are 2 bugs found in one of the physics files. One bug is related to erroneous use of a computed tendency that will subsequently impact the computed rainfall rates, and the other bug
is related to the forcing calculation.
Solution: Replace WRFV3/phys/module_cu_gf.F with a "corrected file" and then recompile the code. There is no need to do a 'clean -a' or to reconfigure.
Compilation Problems (added 11/5/2013):
Problem: There are certain compilers that have a problem with the way a couple of the calculations were written in the code for files "module_bl_mynn.F" and "module_radiation_driver.F", causing WRF
to encounter errors during compilation.
Solution: Replace WRFV3/phys/module_bl_mynn.F with a "corrected file" and replace WRFV3/phys/module_radiation_driver.F with a corrected file and then recompile the code.
Restart Failure when Using Sea-Ice Options (added 11/5/2013):
Problem: When using certain sea-ice options (namelist options: SEAICE_ALBEDO_OPT=2; SEAICE_THICKNESS_OPT=1; SEAICE_SNOWDEPTH_OPT=1) restarts were failing.
Solution: Replace WRFV3/Registry/Registry.EM_COMMON with a "corrected file" and then recompile the code. You will have to do a 'clean -a' and then reconfigure and recompile the code for this
correction to work.
注:带"*.*"号处有连接,可点击下载
修改arch/config_new.pl
#!/usr/bin/perl
#
# Configuration script for WRF prototype code
#
# Be sure to run as ./configure (to avoid getting a system configure command by mistake)
#
select((select(STDOUT), $|=1)[0]);
$sw_perl_path = perl ;
$sw_netcdf_path = "/sya/u/app/netcdf-4.1.3";
$sw_pnetcdf_path = "/sya/u/app/pnetcdf";
$sw_phdf5_path="/sya/u/app/hdf5-1.8.8";
$sw_jasperlib_path="/sya/u/app/jasper-1.900.1/lib";
$sw_jasperinc_path="/sya/u/app/jasper-1.900.1/include";
$sw_esmflib_path="";
$sw_esmfinc_path="";
$sw_ldflags="";
$sw_compileflags="";
$sw_opt_level="";
$sw_rwordsize="\$\(NATIVE_RWORDSIZE\)";
$sw_rttov_flag = "" ;
$sw_rttov_inc = "" ;
$sw_crtm_flag = "" ;
$sw_4dvar_flag = "" ;
$sw_wavelet_flag = "" ;
以上为文件截选
其中
$sw_netcdf_path = "/sya/u/app/netcdf-4.1.3";
$sw_pnetcdf_path = "/sya/u/app/pnetcdf";
$sw_phdf5_path="/sya/u/app/hdf5-1.8.8";
$sw_jasperlib_path="/sya/u/app/jasper-1.900.1/lib";
$sw_jasperinc_path="/sya/u/app/jasper-1.900.1/include";
为修改部分
修改configure.wrf
##############################################################################
LIBWRFLIB = libwrflib.a

#### Architecture specific settings ####
# Settings for AIX xlf compiler with xlc  (dm+sm)
#
DMPARALLEL      =       # 1
OMPCPP  = # -D_OPENMP
OMP  = # -qsmp=noauto
OMPCC  = # -qsmp=noauto
SFC  =       xlf90_r
SCC  =       cc_r
SC99  = c99_r
CCOMP  =       cc_r
DM_FC  = mpxlf90_r
DM_CC  =       mpcc_r -DMPI2_SUPPORT
FC              =       timex $(DM_FC)
CC              =       $(DM_CC) -DFSEEKO64_OK
LD  = $(FC)
RWORDSIZE       =       $(NATIVE_RWORDSIZE)
PROMOTION       =        -qrealsize=$(RWORDSIZE) -qintsize=4
ARCH_LOCAL      =       -DNONSTANDARD_SYSTEM_SUBR -DNATIVE_MASSV -DWRF_USE_CLM
CFLAGS_LOCAL    =       -DNOUNDERSCORE
LDFLAGS_LOCAL   =       -lmass -lmassv
CPLUSPLUSLIB    =       -lC
ESMF_LDFLAG     =       $(CPLUSPLUSLIB)
# -qhot commented out in 3.0.1.1 release because of reported problems with
# model results under certain configurations. Use at your own risk.
FCOPTIM  =       -O3 # -qhot
FCREDUCEDOPT =       -O2
FCNOOPT  =       -qnoopt
FCDEBUG         =       # -g $(FCNOOPT) -qfullpath
FORMAT_FIXED    =       -qfixed
FORMAT_FREE     =       -qfree=f90
FCSUFFIX        =       -qsuffix=f=f90
BYTESWAPIO      =      
FCBASEOPTS_NO_G =       -w -qspill=81920 -qmaxmem=-1 $(FORMAT_FREE) $(BYTESWAPIO)  #-qflttrap=zerodivide:invalid:enable -qsigtrap -C # -qinitauto=7FF7FFFF
FCBASEOPTS      =       $(FCBASEOPTS_NO_G) $(FCDEBUG)
MODULE_SRCH_FLAG =     
TRADFLAG        =      
CPP             =       /lib/cpp -C -P
AR              =       ar
ARFLAGS         =       ru
M4   =       m4 -B 14000
RANLIB   =       ranlib
CC_TOOLS        =       cc
###########################################################
######################
下面4个‘#’为修改过程添加
DMPARALLEL      =       # 1
OMPCPP  = # -D_OPENMP
OMP  = # -qsmp=noauto
OMPCC  = # -qsmp=noauto

./compile em_real 2>error 1>out 成功, error无"fail"字符串,形成有关.exe文件

WPS安装
# configure.wps
#
# This file was automatically generated by the configure script in the
# top level directory. You may make changes to the settings in this
# file but be aware they will be overwritten each time you run configure.
# Ordinarily, it is necessary to run configure once, when the code is
# first installed.
#
# To permanently change options, change the settings for your platform
# in the file arch/configure.defaults, the preamble, and the postamble -
# then rerun configure.
#
.SUFFIXES: .F .f .c .o
SHELL            =       /bin/sh
NCARG_LIBS  = -L$(NCARG_ROOT)/lib -lncarg -lncarg_gks -lncarg_c \
    -L/usr/X11R6/lib -lX11
NCARG_LIBS2  = # May be overridden by architecture specific value below
FDEFS   = -DUSE_JPEG2000 -DUSE_PNG
# Listing of options that are usually independent of machine type.
# When necessary, these are over-ridden by each architecture.
ARFLAGS   =
PERL   = perl
RANLIB   = echo
WRF_DIR   = ../WRFV3
WRF_INCLUDE     =       -I$(WRF_DIR)/external/io_netcdf \
                        -I$(WRF_DIR)/external/io_grib_share \
                        -I$(WRF_DIR)/external/io_grib1 \
                        -I$(WRF_DIR)/external/io_int \
                        -I$(WRF_DIR)/inc \
                        -I$(NETCDF)/include
WRF_LIB         =       -L$(WRF_DIR)/external/io_grib1 -lio_grib1 \
                        -L$(WRF_DIR)/external/io_grib_share -lio_grib_share \
                        -L$(WRF_DIR)/external/io_int -lwrfio_int \
                        -L$(WRF_DIR)/external/io_netcdf -lwrfio_nf \
                        -L$(NETCDF)/lib -lnetcdff -lnetcdf
#### Architecture specific settings ####
COMPRESSION_LIBS =  # intentionally left blank, fill in COMPRESSION_LIBS below
COMPRESSION_INC  =  # intentionally left blank, fill in COMPRESSION_INC below
#
#   Settings for AIX       (dmpar)
#
#
COMPRESSION_LIBS    = -L/sya/u/app/jasper-1.900.1/lib -ljasper \
                      -L/sya/u/app/png-1.5.4/lib -lpng \
                      -L/sya/u/app/zlib-1.2.5/lib -lz
COMPRESSION_INC     = -I/sya/u/app/jasper-1.900.1/include \
                      -I/sya/u/app/png-1.5.4/include \
                      -I/sya/u/app/zlib-1.2.5/include
FDEFS               = -DUSE_JPEG2000 -DUSE_PNG
NCARG_LIBS          =
NCARG_LIBS2         = -L/usr/local/lib64/r4i4 -lncarg -lncarg_gks -lncarg_c \
                      -L/usr/X11R6/lib -lX11 -lpng -lz
SFC                 = xlf90_r
SCC                 = cc
DM_FC               = mpxlf90_r
DM_CC               = mpcc_r
FC                  = $(DM_FC)
CC                  = $(DM_CC)
LD                  = $(FC)
AR                  = ar
FFLAGS              = -qfree=f90
F77FLAGS            = -qfixed
FCSUFFIX            = -qsuffix=f=f90
FNGFLAGS            = $(FFLAGS)
LDFLAGS             =
CFLAGS              =
CPP                 = /usr/lib/cpp -C -P
CPPFLAGS            = -DAIX -DIBM4 -DIO_NETCDF -DIO_BINARY -DIO_GRIB1 -DBIT32 -D_MPI
ARFLAGS             =
########################################################################################################################
#
# Macros, these should be generic for all machines
LN  = ln -sf
MAKE  = make -i -r
RM  =  /bin/rm -f
CP  =  /bin/cp
AR  = ar ru
.IGNORE:
.SUFFIXES: .c .f .F .o
# There is probably no reason to modify these rules
.c.o:
$(RM) $@
$(CC) $(CPPFLAGS) $(CFLAGS) -c $<
.f.o:
$(RM) $@ $*.mod
$(FC) $(F77FLAGS) -c $< $(WRF_INCLUDE)
.F.o:
$(RM) $@ $*.mod
$(CPP) $(CPPFLAGS) $(FDEFS) $(WRF_INCLUDE) $< > $*.f90
$(FC) $(FFLAGS) -c $*.f90 $(WRF_INCLUDE)
# $(RM) $*.f90

WRFDA安装
修改arch/config_new.pl
#!/usr/bin/perl
#
# Configuration script for WRF prototype code
#
# Be sure to run as ./configure (to avoid getting a system configure command by mistake)
#
select((select(STDOUT), $|=1)[0]);
$sw_perl_path = perl ;
$sw_netcdf_path = "/sya/u/app/netcdf-4.1.3";
$sw_pnetcdf_path = "/sya/u/app/pnetcdf";
$sw_phdf5_path="/sya/u/app/hdf5_para";
$sw_jasperlib_path="/sya/u/app/jasper-1.900.1/lib";
$sw_jasperinc_path="/sya/u/app/jasper-1.900.1/include";
$sw_esmflib_path="";
$sw_esmfinc_path="";
$sw_ldflags="";
$sw_compileflags="";
$sw_opt_level="";
$sw_rwordsize="\$\(NATIVE_RWORDSIZE\)";
$sw_rttov_flag = "" ;
$sw_rttov_inc = "" ;
$sw_crtm_flag = "" ;
$sw_4dvar_flag = "" ;
$sw_wavelet_flag = "" ;
$WRFCHEM = 0 ;
$sw_os = "ARCH" ;           # ARCH will match any
$sw_mach = "ARCH" ;         # ARCH will match any
$sw_wrf_core = "" ;
$sw_da_core = "-DDA_CORE=\$\(WRF_DA_CORE\)" ;
$sw_nmm_core = "-DNMM_CORE=\$\(WRF_NMM_CORE\)" ;
$sw_em_core = "-DEM_CORE=\$\(WRF_EM_CORE\)" ;
$sw_exp_core = "-DEXP_CORE=\$\(WRF_EXP_CORE\)" ;
$sw_coamps_core = "-DCOAMPS_CORE=\$\(WRF_COAMPS_CORE\)" ;
$sw_dmparallel = "" ;
$sw_ompparallel = "" ;
$sw_stubmpi = "" ;
$sw_usenetcdff = "" ;    # for 3.6.2 and greater, the fortran bindings might be in a separate lib file
$sw_time = "" ;          # name of a timer to time fortran compiles, e.g. timex or time
$sw_ifort_r8 = 0 ;
$sw_hdf5 = "-lhdf5 -lhdf5_hl";
$sw_zlib = "-lz";
$sw_dep_lib_path = "";
$sw_gpfs_path = "";
$sw_gpfs_lib  = "-lgpfs";
以上为文件截选
其中
$sw_netcdf_path = "/sya/u/app/netcdf-4.1.3";
$sw_pnetcdf_path = "/sya/u/app/pnetcdf";
$sw_phdf5_path="/sya/u/app/hdf5_para";
$sw_jasperlib_path="/sya/u/app/jasper-1.900.1/lib";
$sw_jasperinc_path="/sya/u/app/jasper-1.900.1/include";
为修改部分

$./configure wrfda    ( 选择安装三维变分同化 )
$./configure 4dvar   ( 选择安装四维变分同化 )

下面需要修改:
# configure.wrf
#
# This file was automatically generated by the configure script in the
# top level directory. You may make changes to the settings in this
# file but be aware they will be overwritten each time you run configure.
# Ordinarily, it is necessary to run configure once, when the code is
# first installed.
#
# To permanently change options, change the settings for your platform
# in the file arch/configure.defaults then rerun configure.
#
SHELL           =       /bin/sh
DEVTOP          =       `pwd`
LIBINCLUDE      =       .
.SUFFIXES: .F .i .o .f90 .c
#### Get core settings from environment (set in compile script)
#### Note to add a core, this has to be added to.
COREDEFS = -DEM_CORE=1 \
           -DNMM_CORE=0 -DNMM_MAX_DIM=2600 \
    -DCOAMPS_CORE=0 \
    -DDA_CORE=1 \
           -DEXP_CORE=0
#### Single location for defining total number of domains.  You need
#### at least 1 + 2*(number of total nests).  For example, 1 coarse
#### grid + three fine grids = 1 + 2(3) = 7, so MAX_DOMAINS=7.
MAX_DOMAINS = 21
#### DM buffer length for the configuration flags.
CONFIG_BUF_LEN = 65536
#### Size of bitmasks (in 4byte integers) of stream masks for WRF I/O
MAX_HISTORY = 25
IWORDSIZE = 4
DWORDSIZE = 8
LWORDSIZE = 4
##############################################################################
#### The settings in this section are defaults that may be overridden by the
#### architecture-specific settings in the next section.  
##############################################################################
##############################################################################
#### NOTE:  Do not modify these default values here.  To override these
####        values, make changes after "Architecture specific settings".  
##############################################################################
#### Native size (in bytes) of Fortran REAL data type on this architecture ####
#### Note:  to change real wordsize (for example, to promote REALs from
####        4-byte to 8-byte), modify the definition of RWORDSIZE in the
####        section following "Architecture specific settings".  Do not
####        change NATIVE_RWORDSIZE as is it architecture-specific.  
NATIVE_RWORDSIZE = 4
#### Default sed command and script for Fortran source files ####
#SED_FTN = sed -f $(WRF_SRC_ROOT_DIR)/arch/standard.sed
SED_FTN = $(WRF_SRC_ROOT_DIR)/tools/standard.exe
# Hack to work around $(PWD) not changing during OSF1 build.  
# $(IO_GRIB_SHARE_DIR) is reset during the OSF1 build only.  
IO_GRIB_SHARE_DIR =
#### ESMF switches                 ####
#### These are set up by Config.pl ####
# switch to use separately installed ESMF library for coupling:  1==true
ESMF_COUPLING       = 0
# select dependences on module_utility.o
ESMF_MOD_DEPENDENCE = $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90/module_utility.o
# select -I options for external/io_esmf vs. external/esmf_time_f90
ESMF_IO_INC         = -I$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90
# select -I options for separately installed ESMF library, if present
ESMF_MOD_INC        =  $(ESMF_IO_INC)
# select cpp token for external/io_esmf vs. external/esmf_time_f90
ESMF_IO_DEFS        =
# select build target for external/io_esmf vs. external/esmf_time_f90
ESMF_TARGET         = esmf_time
# ESMFINCLUDEGOESHERE

#### NETCDF4 pieces
NETCDF4_IO_OPTS = -DUSE_NETCDF4_FEATURES -DWRFIO_NCD_LARGE_FILE_SUPPORT
GPFS            =
CURL            =
HDF5            =
ZLIB            =
DEP_LIB_PATH    =
NETCDF4_DEP_LIB = $(DEP_LIB_PATH) $(HDF5) $(ZLIB) $(GPFS) $(CURL)
# NETCDF4INCLUDEGOESHERE

##############################################################################
LIBWRFLIB = libwrflib.a

#### Architecture specific settings ####
# Settings for AIX xlf compiler with xlc  (dm+sm)
#
DMPARALLEL      =   #     1
OMPCPP  =  # -D_OPENMP
OMP  =  # -qsmp=noauto
OMPCC  =  # -qsmp=noauto
SFC  =       xlf90_r
SCC  =       cc_r
SC99  = c99_r
CCOMP  =       cc_r
DM_FC  = mpxlf90_r
DM_CC  =       mpcc_r -DMPI2_SUPPORT
FC              =       timex $(DM_FC)
CC              =       $(DM_CC) -DFSEEKO64_OK
LD  = $(FC)
RWORDSIZE       =       8
PROMOTION       =        -qrealsize=$(RWORDSIZE) -qintsize=4
ARCH_LOCAL      =       -DNONSTANDARD_SYSTEM_SUBR -DNATIVE_MASSV -DWRF_USE_CLM
CFLAGS_LOCAL    =       -DNOUNDERSCORE
LDFLAGS_LOCAL   =       -lmass -lmassv
CPLUSPLUSLIB    =       -lC
ESMF_LDFLAG     =       $(CPLUSPLUSLIB)
# -qhot commented out in 3.0.1.1 release because of reported problems with
# model results under certain configurations. Use at your own risk.
FCOPTIM  =       -O3 # -qhot
FCREDUCEDOPT =       -O2
FCNOOPT  =       -qnoopt
FCDEBUG         =       # -g $(FCNOOPT) -qfullpath
FORMAT_FIXED    =       -qfixed
FORMAT_FREE     =       -qfree=f90
FCSUFFIX        =       -qsuffix=f=f90
BYTESWAPIO      =      
FCBASEOPTS_NO_G =       -w -qspill=81920 -qmaxmem=-1 $(FORMAT_FREE) $(BYTESWAPIO)  #-qflttrap=zerodivide:invalid:enable -qsigtrap -C # -qinitauto=7FF7FFFF
FCBASEOPTS      =       $(FCBASEOPTS_NO_G) $(FCDEBUG)
MODULE_SRCH_FLAG =     
TRADFLAG        =      
CPP             =       /lib/cpp -C -P
AR              =       ar
ARFLAGS         =       ru
M4   =       m4 -B 14000
RANLIB   =       ranlib
CC_TOOLS        =       cc
###########################################################
######################
# POSTAMBLE
FGREP = fgrep -iq
ARCHFLAGS       =    $(COREDEFS) -DIWORDSIZE=$(IWORDSIZE) -DDWORDSIZE=$(DWORDSIZE) -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=$(LWORDSIZE) \
                     $(ARCH_LOCAL) \
                     $(DA_ARCHFLAGS) \
                      -DDM_PARALLEL \
                       \
                      -DNETCDF \
                      -DPNETCDF \
                       \
                      -DGRIB2 \
                       \
                       \
                       \
                       \
                       \
                      -DUSE_ALLOCATABLES \
                      -DGRIB1 \
                      -DINTIO \
                      -DLIMIT_ARGS \
                      -DCONFIG_BUF_LEN=$(CONFIG_BUF_LEN) \
                      -DMAX_DOMAINS_F=$(MAX_DOMAINS) \
                      -DMAX_HISTORY=$(MAX_HISTORY) \
        -DNMM_NEST=$(WRF_NMM_NEST)
CFLAGS          =    $(CFLAGS_LOCAL) -DDM_PARALLEL  \
                      -DMAX_HISTORY=$(MAX_HISTORY) -DNMM_CORE=0
FCFLAGS         =    $(FCOPTIM) $(FCBASEOPTS)
ESMF_LIB_FLAGS  =   
# ESMF 5 -- these are defined in esmf.mk, included above
ESMF_IO_LIB     =    -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
ESMF_IO_LIB_EXT =    -L$(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 -lesmf_time
INCLUDE_MODULES =    $(MODULE_SRCH_FLAG) \
                     $(ESMF_MOD_INC) $(ESMF_LIB_FLAGS) \
                      -I$(WRF_SRC_ROOT_DIR)/main \
                      -I$(WRF_SRC_ROOT_DIR)/external/io_netcdf \
                      -I$(WRF_SRC_ROOT_DIR)/external/io_int \
                      -I$(WRF_SRC_ROOT_DIR)/frame \
                      -I$(WRF_SRC_ROOT_DIR)/share \
                      -I$(WRF_SRC_ROOT_DIR)/phys \
                      -I$(WRF_SRC_ROOT_DIR)/chem -I$(WRF_SRC_ROOT_DIR)/inc \
                      -I$(NETCDFPATH)/include \
                     
REGISTRY        =    Registry
CC_TOOLS_CFLAGS = -DNMM_CORE=0
LIB_BUNDLED     = \
                      $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5/libfftpack.a \
                      $(WRF_SRC_ROOT_DIR)/external/io_grib1/libio_grib1.a \
                      $(WRF_SRC_ROOT_DIR)/external/io_grib_share/libio_grib_share.a \
                      $(WRF_SRC_ROOT_DIR)/external/io_int/libwrfio_int.a \
                      $(ESMF_IO_LIB) \
                      $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a \
                      $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o \
                      $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o
LIB_EXTERNAL    = \
                      -L$(WRF_SRC_ROOT_DIR)/external/io_netcdf -lwrfio_nf -L/sya/u/app/netcdf-4.1.3/lib -lnetcdff -lnetcdf  -L$(WRF_SRC_ROOT_DIR)/external/io_pnetcdf -lwrfio_pnf -L/sya/u/app/pnetcdf/lib -lpnetcdf -L$(WRF_SRC_ROOT_DIR)/external/io_grib2 -lio_grib2 -L/sya/u/app/jasper-1.900.1/lib -ljasper
LIB             =    $(LIB_BUNDLED) $(LIB_EXTERNAL) $(LIB_LOCAL) $(LIB_WRF_HYDRO)
LDFLAGS         =    $(OMP) $(FCFLAGS) $(LDFLAGS_LOCAL)
ENVCOMPDEFS     =   
WRF_CHEM = 0
CPPFLAGS        =    $(ARCHFLAGS) $(ENVCOMPDEFS) -I$(LIBINCLUDE) $(TRADFLAG)
NETCDFPATH      =    /sya/u/app/netcdf-4.1.3
PNETCDFPATH     =    /sya/u/app/pnetcdf
bundled:  io_only fftpack
external: io_only $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a gen_comms_rsllite module_dm_rsllite $(ESMF_TARGET)
io_only:  esmf_time wrfio_nf wrfio_pnf wrfio_grib2 wrf_ioapi_includes wrfio_grib_share wrfio_grib1 wrfio_int

######################
externals: io_only bundled external
gen_comms_serial :
( /bin/rm -f $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c )
module_dm_serial :
( if [ ! -e module_dm.F ] ; then /bin/cp module_dm_warning module_dm.F ; cat module_dm_stubs.F >> module_dm.F ; fi )
gen_comms_rsllite :
( if [ ! -e $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c ] ; then \
          /bin/cp $(WRF_SRC_ROOT_DIR)/tools/gen_comms_warning $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c ; \
          cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/gen_comms.c >> $(WRF_SRC_ROOT_DIR)/tools/gen_comms.c ; fi )
module_dm_rsllite :
( if [ ! -e module_dm.F ] ; then /bin/cp module_dm_warning module_dm.F ; \
          cat $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/module_dm.F >> module_dm.F ; fi )
wrfio_nf :
( cd $(WRF_SRC_ROOT_DIR)/external/io_netcdf ; \
          make $(J) NETCDFPATH="$(NETCDFPATH)" RANLIB="$(RANLIB)" CPP="$(CPP)" \
          CC="$(SCC)" CFLAGS="$(CFLAGS)" \
          FC="$(SFC) $(PROMOTION) $(OMP) $(FCFLAGS)" TRADFLAG="$(TRADFLAG)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" )
wrfio_pnf :
( cd $(WRF_SRC_ROOT_DIR)/external/io_pnetcdf ; \
          make $(J) NETCDFPATH="$(PNETCDFPATH)" RANLIB="$(RANLIB)" CPP="$(CPP) $(ARCHFLAGS)" \
          FC="$(FC) $(PROMOTION) $(OMP) $(FCFLAGS)" TRADFLAG="$(TRADFLAG)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" )
wrfio_grib_share :
( cd $(WRF_SRC_ROOT_DIR)/external/io_grib_share ; \
          make $(J) CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" \
          FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) $(FCSUFFIX)" TRADFLAG="$(TRADFLAG)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" archive)
wrfio_grib1 :
( cd $(WRF_SRC_ROOT_DIR)/external/io_grib1 ; \
          make $(J) CC="$(SCC)" CFLAGS="$(CFLAGS)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" \
          FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) $(FCSUFFIX)" TRADFLAG="$(TRADFLAG)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" archive)
wrfio_grib2 :
( cd $(WRF_SRC_ROOT_DIR)/external/io_grib2 ; \
          make $(J) CC="$(SCC)" CFLAGS="$(CFLAGS) -I/sya/u/app/jasper-1.900.1/include" RM="$(RM)" RANLIB="$(RANLIB)" \
          CPP="$(CPP)" \
          FC="$(SFC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) $(FCSUFFIX)" TRADFLAG="-traditional" AR="$(AR)" ARFLAGS="$(ARFLAGS)" \
          FIXED="$(FORMAT_FIXED)" archive)
wrfio_int :
( cd $(WRF_SRC_ROOT_DIR)/external/io_int ; \
          make $(J) CC="$(CC)" RM="$(RM)" RANLIB="$(RANLIB)" CPP="$(CPP)" \
          FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) $(OMP)" FGREP="$(FGREP)" \
          TRADFLAG="$(TRADFLAG)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" ARCHFLAGS="$(ARCHFLAGS)" all )
esmf_time :
( cd $(WRF_SRC_ROOT_DIR)/external/esmf_time_f90 ; \
          make $(J) FC="$(SFC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" \
          CPP="$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc -I. $(ARCHFLAGS) $(TRADFLAG)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" )
fftpack :
( cd $(WRF_SRC_ROOT_DIR)/external/fftpack/fftpack5 ; \
          make $(J) FC="$(SFC)" FFLAGS="$(PROMOTION) $(FCDEBUG) $(FCBASEOPTS)" RANLIB="$(RANLIB)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" )
atm_ocn :
( cd $(WRF_SRC_ROOT_DIR)/external/atm_ocn ; \
          make $(J) CC="$(SCC)" CFLAGS="$(CFLAGS) " RM="$(RM)" RANLIB="$(RANLIB)" \
          CPP="$(CPP)" \
          FC="$(DM_FC) $(PROMOTION) -I. $(FCDEBUG) $(FCBASEOPTS) $(FCSUFFIX)" TRADFLAG="-traditional" AR="$(AR)" ARFLAGS="$(ARFLAGS)" \
          FIXED="$(FORMAT_FIXED)" )
$(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a :
( cd $(WRF_SRC_ROOT_DIR)/external/RSL_LITE ; make $(J) CC="$(CC) $(CFLAGS)" \
          FC="$(FC) $(FCFLAGS) $(OMP) $(PROMOTION) $(BYTESWAPIO)" \
          CPP="$(CPP) -I. $(ARCHFLAGS) $(OMPCPP) $(TRADFLAG)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" ;\
          $(RANLIB) $(WRF_SRC_ROOT_DIR)/external/RSL_LITE/librsl_lite.a )
######################
# Macros, these should be generic for all machines
LN = ln -sf
MAKE = make -i -r
RM =  rm -f

# These sub-directory builds are identical across all architectures
wrf_ioapi_includes :
( cd $(WRF_SRC_ROOT_DIR)/external/ioapi_share ; \
          $(MAKE) NATIVE_RWORDSIZE="$(NATIVE_RWORDSIZE)" RWORDSIZE="$(RWORDSIZE)" AR="$(AR)" ARFLAGS="$(ARFLAGS)" )
wrfio_esmf :
( cd $(WRF_SRC_ROOT_DIR)/external/io_esmf ; \
          make FC="$(FC) $(PROMOTION) $(FCDEBUG) $(FCBASEOPTS) $(ESMF_MOD_INC)" \
          RANLIB="$(RANLIB)" CPP="$(CPP) $(POUND_DEF) " AR="$(AR)" ARFLAGS="$(ARFLAGS)" )
# There is probably no reason to modify these rules
.F.i:
$(RM) $@
$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.F > $@
mv $*.i $(DEVTOP)/pick/$*.f90
cp $*.F $(DEVTOP)/pick
.F.o:
$(RM) $@
$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $(OMPCPP) $*.F  > $*.bb
$(SED_FTN) $*.bb | $(CPP) > $*.f90
$(RM) $*.b $*.bb
@ if echo $(ARCHFLAGS) | $(FGREP) 'DVAR4D'; then \
          echo COMPILING $*.F for 4DVAR ; \
          $(WRF_SRC_ROOT_DIR)/var/build/da_name_space.pl $*.f90 > $*.f90.tmp ; \
          mv $*.f90.tmp $*.f90 ; \
        fi
$(FC) -o $@ -c $(FCFLAGS) $(OMP) $(MODULE_DIRS) $(PROMOTION) $(FCSUFFIX) $*.f90
        
.F.f90:
$(RM) $@
$(SED_FTN) $*.F > $*.b
$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b  > $@
$(RM) $*.b
.f90.o:
$(RM) $@
$(FC) -o $@ -c $(FCFLAGS) $(PROMOTION) $(FCSUFFIX) $*.f90
setfeenv.o : setfeenv.c
$(RM) $@
$(CCOMP) -o $@ -c $(CFLAGS) $(OMPCC) $*.c
.c.o:
$(RM) $@
$(CC) -o $@ -c $(CFLAGS) $*.c
# A little more adventurous.  Allow full opt on
# mediation_integrate.o \
# shift_domain_em.o \
# solve_em.o  <-- gets a little kick from SOLVE_EM_SPECIAL too, if defined
# mediation_feedback_domain.o : mediation_feedback_domain.F
# mediation_force_domain.o : mediation_force_domain.F
# mediation_interp_domain.o : mediation_interp_domain.F
# compile these without high optimization to speed compile
mediation_integrate.o : mediation_integrate.F
track_driver.o : track_driver.F
convert_nmm.o : convert_nmm.F
init_modules_em.o : init_modules_em.F
input_wrf.o : input_wrf.F
module_io.o : module_io.F
module_comm_dm.o : module_comm_dm.F
module_comm_dm_0.o : module_comm_dm_0.F
module_comm_dm_1.o : module_comm_dm_1.F
module_comm_dm_2.o : module_comm_dm_2.F
module_comm_dm_3.o : module_comm_dm_3.F
module_comm_nesting_dm.o : module_comm_nesting_dm.F
module_configure.o : module_configure.F
module_dm.o : module_dm.F
module_domain.o : module_domain.F
module_domain_type.o : module_domain_type.F
module_alloc_space_0.o : module_alloc_space_0.F
module_alloc_space_1.o : module_alloc_space_1.F
module_alloc_space_2.o : module_alloc_space_2.F
module_alloc_space_3.o : module_alloc_space_3.F
module_alloc_space_4.o : module_alloc_space_4.F
module_alloc_space_5.o : module_alloc_space_5.F
module_alloc_space_6.o : module_alloc_space_6.F
module_alloc_space_7.o : module_alloc_space_7.F
module_alloc_space_8.o : module_alloc_space_8.F
module_alloc_space_9.o : module_alloc_space_9.F
module_tiles.o : module_tiles.F
module_fddaobs_rtfdda.o : module_fddaobs_rtfdda.F
module_initialize.o : module_initialize.F
module_physics_init.o : module_physics_init.F
module_initialize_b_wave.o : module_initialize_b_wave.F
module_initialize_hill2d_x.o : module_initialize_hill2d_x.F
module_initialize_quarter_ss.o : module_initialize_quarter_ss.F
module_initialize_real.o : module_initialize_real.F
module_initialize_real.o: module_initialize_real.F
module_initialize_squall2d_x.o : module_initialize_squall2d_x.F
module_initialize_squall2d_y.o : module_initialize_squall2d_y.F
module_initialize_scm_xy.o : module_initialize_scm_xy.F
module_integrate.o : module_integrate.F
module_io_mm5.o : module_io_mm5.F
module_io_wrf.o : module_io_wrf.F
module_si_io.o : module_si_io.F
module_wps_io_arw.o : module_wps_io_arw.F
module_state_description.o : module_state_description.F
output_wrf.o : output_wrf.F
solve_interface.o : solve_interface.F
start_domain.o : start_domain.F
start_em.o : start_em.F
wrf_bdyin.o : wrf_bdyin.F
wrf_bdyout.o : wrf_bdyout.F
wrf_ext_read_field.o : wrf_ext_read_field.F
wrf_ext_write_field.o : wrf_ext_write_field.F
wrf_fddaobs_in.o : wrf_fddaobs_in.F
wrf_histin.o : wrf_histin.F
wrf_histout.o : wrf_histout.F
wrf_inputin.o : wrf_inputin.F
wrf_inputout.o : wrf_inputout.F
wrf_restartin.o : wrf_restartin.F
wrf_restartout.o : wrf_restartout.F
wrf_tsin.o : wrf_tsin.F
nl_get_0_routines.o : nl_get_0_routines.F
nl_get_1_routines.o : nl_get_1_routines.F
nl_set_0_routines.o : nl_set_0_routines.F
nl_set_1_routines.o : nl_set_1_routines.F
mediation_integrate.o \
track_driver.o \
convert_nmm.o \
init_modules_em.o \
module_dm.o \
module_fddaobs_rtfdda.o \
module_initialize.o \
module_initialize_b_wave.o \
module_initialize_hill2d_x.o \
module_initialize_quarter_ss.o \
module_initialize_real.o \
module_initialize_squall2d_x.o \
module_initialize_squall2d_y.o \
module_initialize_scm_xy.o \
module_integrate.o \
module_io_mm5.o \
module_io_wrf.o \
module_si_io.o \
module_wps_io_arw.o \
module_tiles.o \
output_wrf.o \
solve_interface.o \
start_domain.o \
start_em.o \
wrf_fddaobs_in.o \
wrf_tsin.o :
$(RM) $@
$(SED_FTN) $*.F > $*.b
$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $(OMPCPP) $*.b  > $*.f90
$(RM) $*.b
@ if echo $(ARCHFLAGS) | $(FGREP) 'DVAR4D'; then \
          echo COMPILING $*.F for 4DVAR ; \
          $(WRF_SRC_ROOT_DIR)/var/build/da_name_space.pl $*.f90 > $*.f90.tmp ; \
          mv $*.f90.tmp $*.f90 ; \
        fi
if $(FGREP) '!$$OMP' $*.f90 ; then \
          if [ -n "$(OMP)" ] ; then echo COMPILING $*.F WITH OMP ; fi ; \
   $(FC) -c $(PROMOTION) $(FCNOOPT) $(FCBASEOPTS) $(MODULE_DIRS) $(FCSUFFIX) $(OMP) $*.f90 ; \
        else \
          if [ -n "$(OMP)" ] ; then echo COMPILING $*.F WITHOUT OMP ; fi ; \
   $(FC) -c $(PROMOTION) $(FCNOOPT) $(FCBASEOPTS) $(MODULE_DIRS) $(FCSUFFIX) $*.f90 ; \
        fi
#solve_em.o :
# $(RM) $@
# $(SED_FTN) $*.F > $*.b
# $(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $*.b  > $*.f90
# $(RM) $*.b
# $(FC) -o $@ -c $(FCFLAGS) $(MODULE_DIRS) $(PROMOTION) $(FCSUFFIX) $(SOLVE_EM_SPECIAL) $(OMP) $*.f90
module_sf_ruclsm.o : module_sf_ruclsm.F
module_sf_ruclsm.o :
$(RM) $@
$(SED_FTN) $*.F > $*.b
$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $(OMPCPP) $*.b  > $*.f90
$(RM) $*.b
if $(FGREP) '!$$OMP' $*.f90 ; then \
          echo COMPILING $*.F WITH OMP ; \
          if [ -n "$(OMP)" ] ; then echo COMPILING $*.F WITH OMP ; fi ; \
   $(FC) -c $(PROMOTION) $(FCREDUCEDOPT) $(FCBASEOPTS) $(MODULE_DIRS) $(FCSUFFIX) $(OMP) $*.f90 ; \
        else \
          if [ -n "$(OMP)" ] ; then echo COMPILING $*.F WITHOUT OMP ; fi ; \
   $(FC) -c $(PROMOTION) $(FCREDUCEDOPT) $(FCBASEOPTS) $(MODULE_DIRS) $(FCSUFFIX) $*.f90 ; \
        fi
# compile without OMP
input_wrf.o \
module_domain.o \
module_domain_type.o \
module_physics_init.o \
module_io.o \
wrf_bdyin.o \
wrf_bdyout.o \
wrf_ext_read_field.o \
wrf_ext_write_field.o \
wrf_histin.o \
wrf_histout.o \
wrf_inputin.o \
wrf_inputout.o \
wrf_restartin.o \
wrf_restartout.o \
module_state_description.o \
module_alloc_space.o \
module_alloc_space_0.o \
module_alloc_space_1.o \
module_alloc_space_2.o \
module_alloc_space_3.o \
module_alloc_space_4.o \
module_alloc_space_5.o \
module_alloc_space_6.o \
module_alloc_space_7.o \
module_alloc_space_8.o \
module_alloc_space_9.o \
module_comm_dm.o \
module_comm_dm_0.o \
module_comm_dm_1.o \
module_comm_dm_2.o \
module_comm_dm_3.o \
module_comm_nesting_dm.o \
module_configure.o :
$(RM) $@
$(CPP) -I$(WRF_SRC_ROOT_DIR)/inc $(CPPFLAGS) $(OMPCPP) $*.F  > $*.bb
$(SED_FTN) $*.bb | $(CPP) > $*.f90
@ if echo $(ARCHFLAGS) | $(FGREP) 'DVAR4D'; then \
          echo COMPILING $*.F for 4DVAR ; \
          $(WRF_SRC_ROOT_DIR)/var/build/da_name_space.pl $*.f90 > $*.f90.tmp ; \
          mv $*.f90.tmp $*.f90 ; \
        fi
$(RM) $*.b $*.bb
$(FC) -c $(PROMOTION) $(FCSUFFIX) $(FCNOOPT) $(FCBASEOPTS) $(MODULE_DIRS) $*.f90

下面4个‘#’为修改过程添加
DMPARALLEL      =       # 1
OMPCPP  = # -D_OPENMP
OMP  = # -qsmp=noauto
OMPCC  = # -qsmp=noauto

$./compile all_wrfvar >& compile.out
$ls -ls var/build/*.exe var/obsproc/*.exe

共有 44 executables, 包括 da_wrfvar.exe

ARWpost安装

# configure.arwp
#
# This file was automatically generated by the configure script in the
# top level directory. You may make changes to the settings in this
# file but be aware they will be overwritten each time you run configure.
# Ordinarily, it is necessary to run configure once, when the code is
# first installed.
#
# To permanently change options, change the settings for your platform
# in the file arch/configure.defaults, the preamble, and the postamble -
# then rerun configure.
#
.SUFFIXES: .F90 .f90 .F .f .c .o
SHELL            =       /bin/sh
# Listing of options that are usually independent of machine type.
# When necessary, these are over-ridden by each architecture.
ARFLAGS   =
PERL   = perl
RANLIB   = echo
#### Architecture specific settings ####
# Settings for AIX
#
FC  = xlf90_r
FFLAGS  = -qfree=f90
F77FLAGS = -qfixed
FNGFLAGS = $(FFLAGS)
LDFLAGS  =
CC  = cc
CFLAGS  =
CPP  = /usr/lib/cpp -C -P
CPPFLAGS = -DIO_NETCDF -DIO_GRIB1 -DIO_BINARY -DRECL4
###########################################################
#
# Macros, these should be generic for all machines
LN  = ln -sf
MAKE  = make -i -r
RM  =  /bin/rm -f
CP  =  /bin/cp
AR  = ar ru

.IGNORE:
.SUFFIXES: .c .f90 .F90 .f .F .o
# There is probably no reason to modify these rules
.c.o:
$(RM) $@
$(CC) $(CPPFLAGS) $(CFLAGS) -c $<
.f90.o:
$(RM) $@ $*.mod
$(CP) $< $*.f
$(FC) $(FFLAGS) -I${NETCDF}/include -c $*.f
$(RM) $*.f
.F90.o:
$(RM) $@ $*.mod
$(CPP) $(CPPFLAGS) $(FDEFS) $< > $*.f
$(FC) $(FFLAGS) -I${NETCDF}/include -c $*.f
$(RM) $*.f

一些基本UNIX安装命令可参考:
UBUNTU12.04+WRFV3.5.1安装作业,献给在WRF革命过程中被虐和自虐的亲们



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

新浪微博达人勋

 楼主| 发表于 2013-12-21 17:34:18 | 显示全部楼层
本帖最后由 sywyx 于 2013-12-24 14:59 编辑

提交作业卡相关事项:

LoadLeveler  --------------------  作业管理

Introduction to LoadLevelerIntroduction

This tutorial provides an introduction to IBM's batch scheduling system - LoadLeveler. The Institute uses the Maui Scheduler instead of the default LoadLeveler scheduler. The Maui Scheduler is a backfill scheduler, which means it schedules a time for jobs requiring a large number of processors first, and then uses smaller jobs to fill in the gaps created by reserving a time for the large job. Jobs using an accurate wall clock time limit can be scheduled promptly. The Maui Scheduler also uses "fair-share" when scheduling jobs. Groups requesting to use the machine will get a higher priority when jobs are scheduled up to their fair-share and a lower priority when their jobs exceed their fair-share. Fair-share is based on the number of Service Units that each group has been awarded.

I. Overview of LoadLevelerLoadLeveler is a batch scheduling system available from IBM for the SP, Power4 and workstation clusters for submitting serial and parallel jobs. LoadLeveler matches job requirements with the machine resources. These job requirements are specified in a job command file.
The collection of computers available for job scheduling with LoadLeveler is called a pool. This term should not be confused with node pools discussed in the POE tutorial. LoadLeveler pools may consist of all the nodes on a machine or only a subset. On our machine, the LoadLeveler pool consists of all the batch nodes. Every machine in a pool has a LoadLeveler daemon running on it.
II. Queue DefinitionLoadleveler is used on the Institute's IBM SP, and on the Institute's IBM Power4.
II-A. IBM SP Queue Definition
Currently, there are two SPs.
The SP consists of 74 WinterHawk+ nodes, 11 NightHawk nodes, 4 NightHawk nodes for interactive use and 4 additional Winterhawk+ nodes for file servers. Among the 74 WinterHawk+ nodes, each node has 4 processor (375 MHz, Pwr3). 13 of the nodes have 8 GB memory. 62 of the nodes have 4 GB memory. Among the 15 NightHawk nodes, each node has 4 processors (222 MHz, pwr3) sharing 16 GB memory.
The following table summarizes the queues on the SP.
Queue
Description
q1
The default queue on the WinterHawk+ nodes. For this queue, you do not have to specify a queue (i.e. #@ class = q1) in your command file. All but 14 nodes have 4 GB, the remaining 14 nodes have 8 GB of memory. The maximum ConsumableMemory is 3.5 GB and 7.5 GB (some of the memory is reserved for the operating system.) Some of the nodes are configured so that the maximum wall clock time is 24 hours, the remaining nodes have a maximum wall clock time of 150 hours. Jobs requiring no more than 24 hours will run on all the nodes. The jobs that require more than 24 hours will run only on nodes set up specifically for longer running jobs. Type llavail to get information on the current availability, including number of nodes set aside for short jobs. To use the larger memory WinterHawk+ nodes request consumable memory greater than 3.5 GB per node. For example, for a single process job #@ resources = ConsumableMemory(4000) will schedule the job on the larger memory WinterHawk+ node. If you ask for more than one task per node and the total memory per node is greater than 3.5 GB per node, the job will go to the larger memory nodes.
nighthawk
For the NightHawk nodes. To use this queue, add #@ class = nighthawk to your command file. Please do not use these nodes unless you have large memory requirements. The maximum ConsumableMemory is 15.5 GB. The maximum wall clock time is 300 hours. However, only 7 nodes are set up to handle 300 hour jobs. The other nodes are reserved for jobs requesting at most 150 hours. Before you submit jobs, load the nhloadl module (module add nhloadl). To then use the other queues, unload this module (module delete nhloadl)

Note: The wall_clock_limit specified in the script is the maximum wall clock time of each process. For example with 4 processors and a 10 hour limit, a perfectly balanced job that uses 100% of the processors will use a total of 40 CPU-hours.

To submit jobs that use commercial software that uses a license manager (e.g. matlab, hypermesh), You need to specify the Ethernet feature in your command file. The nodes with the Ethernet feature are
· All of the NightHawk nodes.
· All of the interactive nodes.
· Nodes reserved for jobs running 24 hours or less.
There are no Ethernet nodes for jobs requesting more than 24 hours.
LoadLeveler uses a "backfill" scheduler, which means smaller jobs are used to fill in gap between larger jobs. By specifing the accurate wall clock time limits, you help LoadLeveler schedule your jobs promptly.
II-B. IBM Power4 Queue Definition
There is one queue for the IBM Power4. For more information, see the IBM Power4 Quickstart Guide.
Note: The maximum number of jobs that a person can have in the queue on the IBM Power4 is 32.
III. Basic Tasks
The following tasks are discussed:
· Creating a Command File
· Submitting a Job
· Monitoring a Job's Status
· Holding and Releasing a Job
· Displaying a Machine's Status
· Canceling a Job
Creating a Command File
As stated above, all LoadLeveler jobs must be submitted with a command file. This file resembles a shell script and specifies information such as executable name, class, resource requirements, input/output files, number of processors required, and job type. An example is: test1.cmd. The following example uses an input file test1.in. Use an input file if you need to use the command line to enter input to the program. If your program requires no command line input delete the line
#@ input =test1.in
from the below example.

#!/bin/csh
# Note: That the above line is needed if C shell commands follow
#       the @queue command, as is the case below.
#
#@ initialdir = /homes/sp1/user_name/Loadleveler_examples
#@ input      = test1.in
#@ output     = test1.out
#@ error      = test1.err
#@ wall_clock_limit = 10:00:00
#@ resources = ConsumableMemory(500)
#@ queue
test1
echo job done

The following rules apply to job command files:
· Statements begin with #@
· Statements such as #@ class = nighthawk or #@ requirements = (Memory > 4096 need to be placed before the #@ queue statement.
· You need to specify the maximum amount of memory per process. In the above examle, 500 MB of memory is requested.
· Comment lines begin with a #
· keywords are case insensitive
· The job command file may be given any name, but it is common to add the suffix ".cmd"
For all the queues, you are required to specify the maximum amount of wall clock time in your command file. Jobs not specifying a wall clock time limit will be rejected.
You need to specify the maximum amount of memory per process that your job requires. To request 500 MB of memory per process, use
#@ resources = ConsumableMemory(500)
to your command file. ConsumableMemory is per process, so if you are running two tasks per node and requesting 500 MB of ConsumableMemory, you are really asking for 1000 MB of memory per node.
Submitting a Job
To submit jobs, simply type: llsubmit 'name of command file'
i.e. llsubmit test1.cmd
Loadleveler will respond with:
llsubmit: The job "sp81css0.msi.umn.edu.672" has been submitted.
The first part of this - sp81css0 (node 81 using css0 i.e. SP switch interface) - is the name of the machine that submitted the job, and the second part - 672 - counts the number of jobs submitted from sp81.
Monitoring a Job's Status
Our prefered command for monitoring jobs is showq ( A Maui Scheduler command). It displays active jobs, idle jobs and non-queued jobs.

runesha@sp65 [~] % showq
ACTIVE JOBS ---------- JOBNAME USERNAME STATE PROC REMAINING STARTTIME

sp81css0.114704.0  umemoto    Running     8     1:03:33  Tue Jul 16 12:57:21
sp81css0.114722.0    tyler    Running     1     1:57:59  Tue Jul 16 14:51:47
sp81css0.114616.0    duany    Running    16     4:24:50  Mon Jul 15 19:18:38
sp81css0.114196.0 mcgrathm    Running     4  1:01:35:27  Sun Jul 14 16:29:15
sp83css0.223993.0  khchang    Running     1  1:02:11:17  Thu Jul 11 11:05:05
...

   100 Active Jobs     293 of  312 Processors Active (93.91%)
                        74 of   78 Nodes Active      (94.87%)

IDLE JOBS ---------- JOBNAME USERNAME STATE PROC WCLIMIT QUEUETIME
sp83css0.226796.0  druguet       Idle    28    10:00:00  Tue Jul 16 13:58:08
sp81css0.114696.0 fagernes       Idle     9    23:00:00  Tue Jul 16 11:54:59
sp83css0.226743.0 seethara       Idle    16    12:00:00  Tue Jul 16 00:09:05
sp81css0.114679.0     olaf       Idle     1  1:00:00:00  Tue Jul 16 09:48:53
sp83css0.226810.0    tyler       Idle     1  1:00:00:00  Tue Jul 16 14:52:56
...

47 Idle Jobs
NON-QUEUED JOBS -------- JOBNAME USERNAME STATE PROC WCLIMIT QUEUETIME
sp83css0.207270.0   elorin  BatchHold    32    20:00:00  Tue Jun  4 14:55:14
sp83css0.201907.0  pradeep  BatchHold    64    21:00:00  Mon May 20 09:58:17
  sp81css0.90952.0  pkiprof  BatchHold     4  6:06:00:00  Thu May 23 10:42:32
sp81css0.114705.0     jjyi       Idle     1  1:12:00:00  Tue Jul 16 13:09:23
...

Total Jobs: 180   Active Jobs: 100   Idle Jobs: 47   Non-Queued Jobs: 33      
To view only your own jobs: For example to view jobs owned by runesha:
runesha@sp65 [~] % showq | grep runesha  
Holding and Releasing a Job
Jobs may be put on hold using the llhold command by typing llhold job_id (i.e., sp81css0.672). Jobs can be released using the "-r" option: llhold -r job_id. As with the llprio command, llhold applies only to jobs in the queue.
Displaying a Machine's Status
You can display the status of the SP. You can often use this information to customize the size of your job so that it runs immediately. The two commands llavail and showbf are extremely useful. The command llavail summarizes the number of processors available on the nodes. For example,
sp68 [~] % llavail
                      CPUs
     Class   #Nodes  Avail
        q1       36      0
                 10      1
                  7      2
                  9      3

nighthawk         8      0
                  3      2
                  1      3
                  3      4

shows that in the default queue (q1), 10 nodes have 1 processor available, 7 nodes have 2 processors, and 9 nodes have three processors available. No nodes currently have all 4 processors available. On the NightHawk nodes, 2 nodes have 2 processors available, 4 nodes have 3 processors available, and 3 nodes have all 4 processors available.
The showbf command can be used to give some indications as to how long these processors are available. For example,
sp68 [~] % showbf
backfill window (user: 'user01' group: 'user01' partition: ALL) Thu Feb  8 09:50:56

92 procs available for    4:01:01:27
73 procs available with no timelimit
Shows that all the available processors can be used for up to 4 days, one hour, 1 minute and 27 seconds.
Therefore, if you submit a job requesting 10 nodes with one task per node, and specifying a walltime of 4 days, this job will run immediately. This is just one example of a configuration that would run immediately.
For information on the NightHawk nodes, use the showbf -m '>8000' command. This command asks for information on the nodes which have more than 8000 MB of memory available, which are the NightHawk nodes. For example,
sp68 [~] % showbf -m '>8000'
backfill window (user: 'schaudt' group: 'tech' partition: ALL) Thu Feb  8 09:56:00

20 procs available for    4:00:56:23
  1 proc available with no timelimit
Used with the llavail command, a job requesting 7 nodes using two tasks per node and less thatn 4 days of walltime, will run immediately.
Canceling a Job
The llcancel command cancels running or queued jobs. Simply type llcancel job_id to cancel a job where job_id is say sp81css0.672. There are options to cancel jobs by user id, host name, or process id. Of course, only the LoadLeveler System Administrator can cancel other people's jobs. Type man llcancel for more information.
IV. Advanced Tasks
The following advanced tasks are discussed:
· Using the Command File like a Unix Shell
· Submitting Parallel MPI Jobs
· Submitting Parallel OpenMP Jobs
· Submitting Multiple Jobs
· Submitting Multiple Jobs with Dependency
· How node_usage Options Affect Charging of CPU Time
· How to Request a Dedicated Node for a Serial Job
Using the Command File like a Unix Shell
Suppose one needed to do some "pre-execution" set up work, for instance, copying input files to to a scratch directory. This can be done with the command file, just as you would with a an ordinary Unix shell file. Consider the following example:


#!/bin/csh
#
#@ initialdir = /homes/sp1/user_name/Loadleveler_examples
#@ input      = test2.in
#@ output     = test2.out
#@ error      = test2.err
#@ wall_clock_limit = 10:00:00
#@ resources = ConsumableMemory(500)
#@ queue
# Beginning of script commands
cp /homes/sp1/user_name/Loadleveler_examples/test2.in  /scratch/user_name/test2.in
cp /homes/sp1/user_name/Loadleveler_examples/test2  /scratch/user_name/test2
/scratch/user_name/test2
cp /scratch/user_name/test2.out /homes/sp1/user_name/Loadleveler_examples/test2.out
cp /scratch/user_name/test2.err /homes/sp1/user_name/Loadleveler_examples/test2.err
rm  /scratch/user_name/test2
rm  /scratch/user_name/test2.in
rm  /scratch/user_name/test2.out
rm  /scratch/user_name/test2.err
echo job done
In this example, the user's input file is copied to scratch space on the executing host before execution. This saves the performance cost of accessing the input file over the network (local disk is more efficient). The job is then run, output copied back and finally, cleanup of the scratchspace is performed. This command file copies the input file to a scratch directory on the executing host, executes the job, copies the output files back, and then removes all the files on scratch. By doing this pre-execution work, the performance cost of accessing the input file over the network is saved. Using the local disk space is more effiecient.
Submitting Parallel (OpenMP) Jobs
Here is an example of an OpenMP LoadLeveler submission script:
#!/bin/csh
#@ initialdir = /homes/sp1/user_name/Loadleveler_examples
#@ job_type     = parallel
#@ output       = test.out
#@ error        = test.err
#@ wall_clock_limit = 10:00:00
#@ resources = ConsumableMemory(500)
#@ node = 1
#@ tasks_per_node = 2
#@ node_usage = shared
#@ queue
setenv OMP_NUM_THREADS 2
a.out < input
This script will alllow you to run the job using 2 CPUs on a single node.
The essential commands for OpenMP jobs are job_type and tasks_per_node . Since OpenMP is a shared memory parallel paradigm, the job can only be run on a single node, which requires node = 1.
Submitting Parallel (MPI) Jobs
Here is an example of an MPI Loadleveler submission script:
#!/bin/csh
#@ output       = test.out
#@ error        = test.err
#@ job_type     = parallel
#@ wall_clock_limit = 10:00:00
#@ resources = ConsumableMemory(500)
#@ network.MPI = css0,shared,US
#@ blocking = unlimited
#@ total_tasks = 4
#@ node_usage = shared
#@ queue
/home/sp1/user_name/a.out
The above commend file requests a total of 2000MB of memory (500 MB times 4 tasks ).
The following Loadleveler kewords are used for MPI LoadLeveler submission scripts:
· network - specifies communication protocols, adapters, and their characteristics. The syntax is:
network.protocol = network_type[,usage][,mode]
For an MPI job with communication across the SP switch where processes can share the switch in User Space mode, network will be specified in the job command file as
network.MPI = css0,shared,US
Note that in the previous versions of LoadLeveler, it was not possible to use the switch in User Space mode with multiple processes from the same job step or different job steps communicating across the switch at the same time. The network specification example given above allows tasks from different job steps to share the switch. The shared option is the default. Thus
network.MPI = css0,shared,US
is equivalent to
network.MPI = css0,,US
The second option for usage is not_shared. However, if a user specifies the not-shared option, then only tasks from the same job step can communicate across the switch. In effect, a user using the switch not-shared option in User-Space mode prevents other communicating parallel jobs from being scheduled to the same nodes although serial jobs may still be scheduled.
· node - specifies the minimum and maximum number of nodes requested by a job step. The syntax is
node = [min][,max]
where min is the minimum and max is the maximum. The default value for min is 1. The default value for max is the min value. You may specify just one of min and max. For example
node =6,12
for a range of 6 to 12 nodes
and
node = ,14
for a maximum of 14 nodes.
Both min and max may have the same value, for example
node = 6,6
means the job will run on exactly 6 nodes. In this case, you can also just specify a single value, that is
node = 6
· node_usage - specifies whether this job step shares nodes with other job steps. The syntax is
node_usage = shared | not_shared
If set to shared (which is the default), the nodes can be shared with other tasks from other job steps. If set to not_shared, no other job steps are scheduled on this node. It is IMPORTANT to note that in not_shared mode, you ware CHARGED 4 times the wall_clock, as explained below under How node_usage Options Affect Charging of CPU Time . In shared mode, you are charged CPU time accumulated over the number of CPUs used.
· total_tasks - specifies the total number of tasks of a parallel job you want to run on all available nodes. If possible, use tasks_per_node instead. There can be problems scheduling jobs when total_tasks is used This keyword is used together with the node keyword. A single value must be specified for the node keyword. This keyword can not be used with the tasks_per_node keyword in the same job step.
Note that this keyword applies to the job step in which it is specified. If you are using the same command file for multiple job steps, specify this keyword (or the tasks_per_node keyword which is described above) for each job step. The syntax is
total_tasks = number
where number is the total number of tasks you want to run. For example, to run 3 tasks on each of 7 available nodes for a total of 21 tasks, include the following in your command file:
node = 7
total_tasks = 21
For uneven distribution of tasks per node, LoadLeveler allocates tasks on the nodes in a round-robin fashion. For example, for 5 tasks on 3 nodes, two tasks will run on each of the first two nodes and 1 task will run on the third node.
Submitting Multiple Jobs
A single command job file can be used to submit multiple jobs by using multiple #@queue statements. This is particularly useful if the same is used with multiple jobs that have different input and output files.
An example command file is:
#!/bin/csh
#@ initialdir = /homes/sp1/user_name/Loadleveler_examples
#@ executable = test
#@ input      = test1.in
#@ output     = test1.out
#@ error      = test1.err
#@ wall_clock_limit = 10:00:00
#@ resources = ConsumableMemory(500)
#@ queue
#@ executable = test
#@ input      = test2.in
#@ output     = test2.out
#@ error      = test2.err
#@ wall_clock_limit = 15:00:00
#@ resources = ConsumableMemory(500)
#@ queue
#@ executable = test
#@ input      = test3.in
#@ output     = test3.out
#@ error      = test3.err
#@ wall_clock_limit = 10:00:00
#@ resources = ConsumableMemory(500)
#@ queue
Submitting Multiple Jobs with Dependency
A useful extension to the multiple job script described above is when the some of the jobs depend on the outcome of other jobs. For example, assuming in our 3 job step example above, we want (i) job step 2 to run after job step 1 and (ii) job step 3 to run after job step 2, the command file can be modified as follows:
An example command file is:
#!/bin/csh
#@ step_name = step1
#@ initialdir = /homes/sp1/user_name/Loadleveler_examples
#@ executable = test
#@ input      = test1.in
#@ output     = test1.out
#@ error      = test1.err
#@ wall_clock_limit = 10:00:00
#@ resources = ConsumableMemory(500)
#@ queue
#@ step_name = step2
#@ dependency = step1 == 0
#@ executable = test
#@ input      = test2.in
#@ output     = test2.out
#@ error      = test2.err
#@ wall_clock_limit = 20:00:00
#@ resources = ConsumableMemory(500)
#@ queue
#@ step_name = step3
#@ dependency = step2 == 0
#@ executable = test
#@ input      = test3.in
#@ output     = test3.out
#@ error      = test3.err
#@ wall_clock_limit = 10:00:00
#@ resources = ConsumableMemory(500)
#@ queue
Please note the different input file names in the dependency example above. One can also use one input file for a multi-step job, however, the single input file must contain the inputs for all job steps (duplicate data if all job steps use the same data).
How node_usage Options Affect Charging of CPU Time
There are 4 CPUs per node of the SP. For effective usage of the machine, it is desirable to have up to four tasks per node. Thus the default setting for node_usage is shared. It is however recognised that for some applications, for example large-memory serial jobs and shared-memory multi-threaded (via directives or pthreads) jobs or even MPI jobs, a user may want to have a node exclusively to himself. This is where the node_usage option not_shared becomes useful. However, using this option is not without a price. To avoid system abuse and to ensure that the option is used only when necessary, a user that chooses to use the option will be CHARGED 4 times the wall-clock usage.
How to Request a Dedicated Node for a non-MPI (e.g. Serial or Shared-Memory Multi-threaded) Job
The LoadLeveler keyword node_usage can be used by a user to ensure that a node is not shared with another user by setting node_usage to not_shared. However, since the node_usage keyword is reserved only for job type parallel, that is with the keyword job_type set to parallel (parallel in this sense refers to MPI jobs), running a serial or shared-memory multi-threaded job with node_usage set to not_shared also demands setting job_type to parallel even though the job is not MPI parallel. The example script below shows how to run a serial job called serial_exec where the node assigned by LoadLeveler will be used in dedicated mode:
#!/bin/csh
#@ output       = serial_out.$(jobid)
#@ error        = serial_err.$(jobid)
#@ job_type     = parallel
#@ wall_clock_limit = 10:00:00
#@ resources = ConsumableMemory(500)
#@ node = 1
#@ tasks_per_node = 1
#@ node_usage = not_shared
#@ queue
/home/sp1/user_name/serial_exec
VERY IMPORTANT: Use a node in dedicated mode only when you need it because you will be charged 4 times the wall-clock, as explained under How node_usage Options Affect Charging of CPU Time above.


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

新浪微博达人勋

 楼主| 发表于 2013-12-21 17:52:02 | 显示全部楼层
本帖最后由 sywyx 于 2013-12-24 21:56 编辑

-------- wrf.cmd ---------------------

# @ environment = COPY_ALL
# @ shell = /bin/bash
# @ notification = never
# @ checkpoint = no
# @ job_type = parallel
# @ class = normal
# @ comment=WRF
# @ output = wrf.out
# @ error = wrf.err
# @ node = 2
# @ tasks_per_node = 32
# @ node_usage = shared
# @ network.MPI = sn_all,not_shared,US,HIGH
# @ wall_clock_limit = 06:00:00 06:00:00
# @ queue
time poe ./wrf.exe
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-12-24 22:43:09 | 显示全部楼层
[wangyx@sya05n01 ~/wyx/WRFV3/test/em_real]$llq
Id                       Owner      Submitted   ST PRI Class        Running On
------------------------ ---------- ----------- -- --- ------------ -----------
sya05n01.8718.0          wangyx     12/24 13:34 R  50  normal       sya01n21   
sya01n01.34043.0         wrf        12/24 13:56 R  30  normal       sya05n16   
sya05n01.8723.5          wrf        12/24 14:05 R  30  normal       sya04n21   
sya05n01.8723.2          wrf        12/24 14:05 NR 30  normal                  
sya05n01.8723.4          wrf        12/24 14:05 C  30  normal                  
sya05n01.8723.1          wrf        12/24 14:05 C  30  normal                  
sya05n01.8723.3          wrf        12/24 14:05 C  30  normal                  
sya05n01.8723.0          wrf        12/24 14:05 C  30  normal                  

3 job step(s) in queue, 0 waiting, 0 pending, 3 running, 0 held, 0 preempted
[wangyx@sya05n01 ~/wyx/WRFV3/test/em_real]$date
Tue Dec 24 14:28:25 GMT 2013
[wangyx@sya05n01 ~/wyx/WRFV3/test/em_real]$llq
Id                       Owner      Submitted   ST PRI Class        Running On
------------------------ ---------- ----------- -- --- ------------ -----------
sya05n01.8718.0          wangyx     12/24 13:34 R  50  normal       sya01n21   
sya01n01.34043.0         wrf        12/24 13:56 R  30  normal       sya05n16   
sya05n01.8723.5          wrf        12/24 14:05 R  30  normal       sya04n21   
sya05n01.8723.2          wrf        12/24 14:05 NR 30  normal                  
sya05n01.8723.4          wrf        12/24 14:05 C  30  normal                  
sya05n01.8723.1          wrf        12/24 14:05 C  30  normal                  
sya05n01.8723.3          wrf        12/24 14:05 C  30  normal                  
sya05n01.8723.0          wrf        12/24 14:05 C  30  normal                  

3 job step(s) in queue, 0 waiting, 0 pending, 3 running, 0 held, 0 preempted
[wangyx@sya05n01 ~/wyx/WRFV3/test/em_real]$llq
Id                       Owner      Submitted   ST PRI Class        Running On
------------------------ ---------- ----------- -- --- ------------ -----------
sya01n01.34043.0         wrf        12/24 13:56 R  30  normal       sya05n16   
sya05n01.8724.3          wrf        12/24 14:36 R  30  normal       sya02n13   
sya05n01.8724.4          wrf        12/24 14:36 NQ 30  normal                  
sya05n01.8724.5          wrf        12/24 14:36 NQ 30  normal                  
sya05n01.8724.2          wrf        12/24 14:36 NR 30  normal                  
sya05n01.8724.1          wrf        12/24 14:36 C  30  normal                  
sya05n01.8724.0          wrf        12/24 14:36 C  30  normal                  

4 job step(s) in queue, 0 waiting, 0 pending, 2 running, 2 held, 0 preempted
[wangyx@sya05n01 ~/wyx/WRFV3/test/em_real]$date
Tue Dec 24 14:37:31 GMT 2013
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-12-24 22:45:03 | 显示全部楼层
-------------------------- wrf.err ----------------------------
ATTENTION: 0031-408  64 tasks allocated by Resource Manager, continuing...
starting wrf task  35  of  64
starting wrf task  37  of  64
starting wrf task  38  of  64
starting wrf task  39  of  64
starting wrf task  40  of  64
starting wrf task  42  of  64
starting wrf task  44  of  64
starting wrf task  45  of  64
starting wrf task  47  of  64
starting wrf task  48  of  64
starting wrf task  49  of  64
starting wrf task  51  of  64
starting wrf task  54  of  64
starting wrf task  55  of  64
starting wrf task  58  of  64
starting wrf task  59  of  64
starting wrf task  60  of  64
starting wrf task  62  of  64
starting wrf task  63  of  64
starting wrf task  32  of  64
starting wrf task  33  of  64
starting wrf task  34  of  64
starting wrf task  43  of  64
starting wrf task  46  of  64
starting wrf task  50  of  64
starting wrf task  52  of  64
starting wrf task  53  of  64
starting wrf task  56  of  64
starting wrf task  57  of  64
starting wrf task  61  of  64
starting wrf task  36  of  64
starting wrf task  41  of  64
starting wrf task  4  of  64
starting wrf task  5  of  64
starting wrf task  6  of  64
starting wrf task  7  of  64
starting wrf task  8  of  64
starting wrf task  9  of  64
starting wrf task  13  of  64
starting wrf task  15  of  64
starting wrf task  17  of  64
starting wrf task  19  of  64
starting wrf task  20  of  64
starting wrf task  21  of  64
starting wrf task  22  of  64
starting wrf task  24  of  64
starting wrf task  25  of  64
starting wrf task  27  of  64
starting wrf task  31  of  64
starting wrf task  0  of  64
starting wrf task  1  of  64
starting wrf task  2  of  64
starting wrf task  12  of  64
starting wrf task  14  of  64
starting wrf task  26  of  64
starting wrf task  28  of  64
starting wrf task  30  of  64
starting wrf task  3  of  64
starting wrf task  10  of  64
starting wrf task  11  of  64
starting wrf task  16  of  64
starting wrf task  18  of  64
starting wrf task  23  of  64
starting wrf task  29  of  64

real        55m34.606s
user        0m0.226s
sys        0m0.278s
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-12-24 22:47:29 | 显示全部楼层
----------------- rsl.out.0060 -----------------------------------------

taskid: 60 hostname: sya01n17
Namelist logging not found in namelist.input. Using registry defaults for variables in logging.
  Ntasks in X  8 , ntasks in Y  8
--- WARNING: traj_opt is zero, but num_traj is not zero; setting num_traj to zero.
--- NOTE: sst_update is 0, setting io_form_auxinput4 = 0 and auxinput4_interval = 0 for all domains
--- NOTE: sst_update is 0, setting io_form_auxinput4 = 0 and auxinput4_interval = 0 for all domains
--- NOTE: sst_update is 0, setting io_form_auxinput4 = 0 and auxinput4_interval = 0 for all domains
--- NOTE: grid_fdda is 0 for domain      1, setting gfdda interval and ending time to 0 for that domain.
--- NOTE: both grid_sfdda and pxlsm_soil_nudge are 0 for domain      1, setting sgfdda interval and ending time to 0 for that domain.
--- NOTE: obs_nudge_opt is 0 for domain      1, setting obs nudging interval and ending time to 0 for that domain.
--- NOTE: grid_fdda is 0 for domain      2, setting gfdda interval and ending time to 0 for that domain.
--- NOTE: both grid_sfdda and pxlsm_soil_nudge are 0 for domain      2, setting sgfdda interval and ending time to 0 for that domain.
--- NOTE: obs_nudge_opt is 0 for domain      2, setting obs nudging interval and ending time to 0 for that domain.
--- NOTE: grid_fdda is 0 for domain      3, setting gfdda interval and ending time to 0 for that domain.
--- NOTE: both grid_sfdda and pxlsm_soil_nudge are 0 for domain      3, setting sgfdda interval and ending time to 0 for that domain.
--- NOTE: obs_nudge_opt is 0 for domain      3, setting obs nudging interval and ending time to 0 for that domain.
bl_pbl_physics /= 4, implies mfshconv must be 0, resetting
--- NOTE: num_soil_layers has been set to      4
WRF V3.5.1 MODEL
  *************************************
  Parent domain
  ids,ide,jds,jde  1 115 1 106
  ims,ime,jms,jme  51 78 86 111
  ips,ipe,jps,jpe  58 71 93 106
  *************************************
DYNAMICS OPTION: Eulerian Mass Coordinate
    alloc_space_field: domain  1 ,  16123324  bytes allocated
   med_initialdata_input: calling input_input
INPUT LandUse = "USGS"
  LANDUSE TYPE = "USGS" FOUND 33  CATEGORIES 2  SEASONS WATER CATEGORY =  16  SNOW CATEGORY =  24
INITIALIZE THREE Noah LSM RELATED TABLES
  *************************************
  Nesting domain
  ids,ide,jds,jde  1 211 1 202
  ims,ime,jms,jme  96 141 167 207
  ips,ipe,jps,jpe  106 131 177 202
  INTERMEDIATE domain
  ids,ide,jds,jde  30 105 26 98
  ims,ime,jms,jme  57 85 77 103
  ips,ipe,jps,jpe  67 75 87 100
  *************************************
d01 2013-08-15_18:00:00  alloc_space_field: domain  2 ,  39639508  bytes allocated
d01 2013-08-15_18:00:00  alloc_space_field: domain  2 ,  3263544  bytes allocated
d01 2013-08-15_18:00:00 *** Initializing nest domain # 2 from an input file. ***
d01 2013-08-15_18:00:00 med_initialdata_input: calling input_input
INPUT LandUse = "USGS"
  LANDUSE TYPE = "USGS" FOUND 33  CATEGORIES 2  SEASONS WATER CATEGORY =  16  SNOW CATEGORY =  24
INITIALIZE THREE Noah LSM RELATED TABLES
INPUT LandUse = "USGS"
  LANDUSE TYPE = "USGS" FOUND 33  CATEGORIES 2  SEASONS WATER CATEGORY =  16  SNOW CATEGORY =  24
INITIALIZE THREE Noah LSM RELATED TABLES
INPUT LandUse = "USGS"
  LANDUSE TYPE = "USGS" FOUND 33  CATEGORIES 2  SEASONS WATER CATEGORY =  16  SNOW CATEGORY =  24
INITIALIZE THREE Noah LSM RELATED TABLES
  Tile Strategy is not specified. Assuming 1D-Y
WRF TILE   1 IS     58 IE     71 JS     93 JE    106
WRF NUMBER OF TILES =   1
  *************************************
  Nesting domain
  ids,ide,jds,jde  1 352 1 352
  ims,ime,jms,jme  167 231 299 357
  ips,ipe,jps,jpe  177 220 309 352
  INTERMEDIATE domain
  ids,ide,jds,jde  58 180 48 170
  ims,ime,jms,jme  109 142 143 175
  ips,ipe,jps,jpe  119 132 153 172
  *************************************
d02 2013-08-15_18:00:00  alloc_space_field: domain  3 ,  79181416  bytes allocated
d02 2013-08-15_18:00:00  alloc_space_field: domain  3 ,  4676496  bytes allocated
d02 2013-08-15_18:00:00 *** Initializing nest domain # 3 from an input file. ***
d02 2013-08-15_18:00:00 med_initialdata_input: calling input_input
INPUT LandUse = "USGS"
  LANDUSE TYPE = "USGS" FOUND 33  CATEGORIES 2  SEASONS WATER CATEGORY =  16  SNOW CATEGORY =  24
INITIALIZE THREE Noah LSM RELATED TABLES
INPUT LandUse = "USGS"
  LANDUSE TYPE = "USGS" FOUND 33  CATEGORIES 2  SEASONS WATER CATEGORY =  16  SNOW CATEGORY =  24
INITIALIZE THREE Noah LSM RELATED TABLES
INPUT LandUse = "USGS"
  LANDUSE TYPE = "USGS" FOUND 33  CATEGORIES 2  SEASONS WATER CATEGORY =  16  SNOW CATEGORY =  24
INITIALIZE THREE Noah LSM RELATED TABLES
  Tile Strategy is not specified. Assuming 1D-Y
WRF TILE   1 IS    106 IE    131 JS    177 JE    202
WRF NUMBER OF TILES =   1
  Tile Strategy is not specified. Assuming 1D-Y
WRF TILE   1 IS    177 IE    220 JS    309 JE    352
WRF NUMBER OF TILES =   1
d01 2013-08-16_18:00:00 wrf: SUCCESS COMPLETE WRF
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-2-11 11:59:28 | 显示全部楼层
正是我现在最需要的!大赞!感谢!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-3-28 15:00:02 | 显示全部楼层
sywyx 发表于 2013-12-24 22:47
----------------- rsl.out.0060 -----------------------------------------

taskid: 60 hostname: sya ...

你好,我在最后一步./wrf.exe中紧接着各种“note”出现了如下错误:
--- WARNING: traj_opt is zero, but num_traj is not zero; setting num_traj to zero.
--- NOTE: sst_update is 0, setting io_form_auxinput4 = 0 and auxinput4_interval = 0 for all domains
--- NOTE: sst_update is 0, setting io_form_auxinput4 = 0 and auxinput4_interval = 0 for all domains
--- NOTE: grid_fdda is 0 for domain      1, setting gfdda interval and ending time to 0 for that domain.
--- NOTE: both grid_sfdda and pxlsm_soil_nudge are 0 for domain      1, setting sgfdda interval and ending time to 0 for that domain.
--- NOTE: obs_nudge_opt is 0 for domain      1, setting obs nudging interval and ending time to 0 for that domain.
--- NOTE: grid_fdda is 0 for domain      2, setting gfdda interval and ending time to 0 for that domain.
--- NOTE: both grid_sfdda and pxlsm_soil_nudge are 0 for domain      2, setting sgfdda interval and ending time to 0 for that domain.
--- NOTE: obs_nudge_opt is 0 for domain      2, setting obs nudging interval and ending time to 0 for that domain.
bl_pbl_physics /= 4, implies mfshconv must be 0, resetting
--- NOTE: num_soil_layers has been set to      4
error:  No GPUS present:             0
Floating point exception

你知道怎么解决吗?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-4-12 13:30:49 | 显示全部楼层
刚好需要用,前来学习,感谢。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-12-9 10:16:50 | 显示全部楼层
谢谢分享!!!!!!
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

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

本版积分规则

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

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

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