请选择 进入手机版 | 继续访问电脑版
爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4311|回复: 10

WRF3.8.1安装问题求助~

[复制链接]

新浪微博达人勋

发表于 2017-9-19 08:03:18 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 逸儿~~ 于 2017-9-19 11:52 编辑

在compile(dm+sm) WRF3.8.1时遇到以下问题:
make[2]: Entering directory `/home1/04310/bianqy/wrf3_8_1/WRFV3/external/io_int'
if [ -f ../../frame/pack_utils.o -a -f ../../frame/clog.o ] ; then \
  ifort -ip -fp-model precise -w -ftz -align all -fno-alias -FR -convert big_endian     -I../ioapi_share -o diffwrf diffwrf.f \
        ../../frame/pack_utils.o ../../frame/module_internal_header_util.o ../../frame/module_driver_constants.o ../../frame/module_machine.o ../../frame/module_wrf_error.o ../../frame/wrf_debug.o -L/home1/04310/bianqy/wrf3_8_1/WRFV3/external/esmf_time_f90 -lesmf_time libwrfio_int.a ; \
fi
../../frame/module_wrf_error.o: In function `wrf_message_':
module_wrf_error.f90:(.text+0x1d): undefined reference to `__kmpc_global_thread_num'
module_wrf_error.f90:(.text+0x3a): undefined reference to `__kmpc_master'
module_wrf_error.f90:(.text+0x12c): undefined reference to `__kmpc_end_master'
../../frame/module_wrf_error.o: In function `wrf_message2_':
module_wrf_error.f90:(.text+0x15a): undefined reference to `__kmpc_global_thread_num'
module_wrf_error.f90:(.text+0x16b): undefined reference to `__kmpc_master'
module_wrf_error.f90:(.text+0x1c1): undefined reference to `__kmpc_end_master'
../../frame/module_wrf_error.o: In function `wrf_check_error_':
module_wrf_error.f90:(.text+0x200): undefined reference to `__kmpc_global_thread_num'
module_wrf_error.f90:(.text+0x381): undefined reference to `__kmpc_master'
module_wrf_error.f90:(.text+0x48a): undefined reference to `__kmpc_end_master'
module_wrf_error.f90:(.text+0x57d): undefined reference to `__kmpc_master'
module_wrf_error.f90:(.text+0x694): undefined reference to `__kmpc_end_master'
module_wrf_error.f90:(.text+0x6c6): undefined reference to `__kmpc_master'
module_wrf_error.f90:(.text+0x7bf): undefined reference to `__kmpc_end_master'
module_wrf_error.f90:(.text+0x7e5): undefined reference to `__kmpc_master'
module_wrf_error.f90:(.text+0x8eb): undefined reference to `__kmpc_end_master'
module_wrf_error.f90:(.text+0x91f): undefined reference to `__kmpc_master'
module_wrf_error.f90:(.text+0x973): undefined reference to `__kmpc_end_master'
module_wrf_error.f90:(.text+0xa38): undefined reference to `__kmpc_master'
module_wrf_error.f90:(.text+0xa84): undefined reference to `__kmpc_end_master'
module_wrf_error.f90:(.text+0xac7): undefined reference to `__kmpc_master'
module_wrf_error.f90:(.text+0xb16): undefined reference to `__kmpc_end_master'
module_wrf_error.f90:(.text+0xb2e): undefined reference to `__kmpc_master'
module_wrf_error.f90:(.text+0xb82): undefined reference to `__kmpc_end_master'
../../frame/module_wrf_error.o: In function `wrf_error_fatal_':
module_wrf_error.f90:(.text+0xc10): undefined reference to `__kmpc_global_thread_num'
module_wrf_error.f90:(.text+0xc7d): undefined reference to `__kmpc_master'
module_wrf_error.f90:(.text+0xdaa): undefined reference to `__kmpc_end_master'
module_wrf_error.f90:(.text+0xdd4): undefined reference to `__kmpc_master'
module_wrf_error.f90:(.text+0xedd): undefined reference to `__kmpc_end_master'
module_wrf_error.f90:(.text+0xf07): undefined reference to `__kmpc_master'
module_wrf_error.f90:(.text+0x1037): undefined reference to `__kmpc_end_master'

module_wrf_error.f90:(.text+0xf07): undefined reference to `__kmpc_master'
module_wrf_error.f90:(.text+0x1037): undefined reference to `__kmpc_end_master'
module_wrf_error.f90:(.text+0x1076): undefined reference to `__kmpc_master'
module_wrf_error.f90:(.text+0x10ca): undefined reference to `__kmpc_end_master'
module_wrf_error.f90:(.text+0x110b): undefined reference to `__kmpc_master'
module_wrf_error.f90:(.text+0x115a): undefined reference to `__kmpc_end_master'
module_wrf_error.f90:(.text+0x1176): undefined reference to `__kmpc_master'
module_wrf_error.f90:(.text+0x11ca): undefined reference to `__kmpc_end_master'
../../frame/module_wrf_error.o: In function `wrf_error_fatal3_':
module_wrf_error.f90:(.text+0x125d): undefined reference to `__kmpc_global_thread_num'
module_wrf_error.f90:(.text+0x12cd): undefined reference to `__kmpc_master'
module_wrf_error.f90:(.text+0x13e0): undefined reference to `__kmpc_end_master'
module_wrf_error.f90:(.text+0x14d7): undefined reference to `__kmpc_master'
module_wrf_error.f90:(.text+0x1602): undefined reference to `__kmpc_end_master'
module_wrf_error.f90:(.text+0x1638): undefined reference to `__kmpc_master'
module_wrf_error.f90:(.text+0x1763): undefined reference to `__kmpc_end_master'
module_wrf_error.f90:(.text+0x1789): undefined reference to `__kmpc_master'
module_wrf_error.f90:(.text+0x18b9): undefined reference to `__kmpc_end_master'
module_wrf_error.f90:(.text+0x18ed): undefined reference to `__kmpc_master'
module_wrf_error.f90:(.text+0x1941): undefined reference to `__kmpc_end_master'
module_wrf_error.f90:(.text+0x19fc): undefined reference to `__kmpc_master'
module_wrf_error.f90:(.text+0x1a48): undefined reference to `__kmpc_end_master'
module_wrf_error.f90:(.text+0x1a93): undefined reference to `__kmpc_master'
module_wrf_error.f90:(.text+0x1ae2): undefined reference to `__kmpc_end_master'
module_wrf_error.f90:(.text+0x1afa): undefined reference to `__kmpc_master'
module_wrf_error.f90:(.text+0x1b4e): undefined reference to `__kmpc_end_master'
make[2]: [diffwrf] Error 1 (ignored)
make[2]: Leaving directory `/home1/04310/bianqy/wrf3_8_1/WRFV3/external/io_int'
make[1]: Leaving directory `/home1/04310/bianqy/wrf3_8_1/WRFV3'


我的编译器是:Intel(R) Fortran Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 17.0.4.196 Build 20170411
环境变量设置如下:
# #NETCDF bianbian ##
export NETCDF=/opt/apps/intel17/netcdf/4.3.3.1/x86_64
export PATH=$PATH:$NETCDF/bin
export MANPATH=$MANPATH:$NETCDF/share/man
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$NETCDF/lib
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$NETCDF/lib/pkgconfig

## HDF5 bianbian ##
export HDF5=/opt/apps/intel17/hdf5/1.8.16/x86_64
export PATH=$PATH:$HDF5/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HDF5/lib


## LAPACK bianbian ##
export LAPACK=/home1/04310/bianqy/program/software/lapack/3.5.0/0
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$LAPACK/lib

## CURL bianbian ##
export CURL=/home1/04310/bianqy/starset/software/curl/7.50.1/2b75c2844a82e4a8e92b409ec468205cf65223db
export PATH=$PATH:$CURL/bin
export MANPATH=$MANPATH:$CURL/share/man
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CURL/lib
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$CURL/lib/pkgconfig

## WRF bianbian ##
export WRFIO_NCD_LARGE_FILE_SUPPORT=1


在网上搜索到以下答案:
答案一: https://software.intel.com/en-us ... nology/topic/515165
Your link step (assuming it is driven by ifort or icc) needs -openmp flag to include the libiomp5 in the library search path.  It looks like you compiled for hybrid MPI/OpenMP but linked for MPI alone.
The stuff you posted is rather confusing.  It might help if you would post the parts you actually want to use, and explain any deviations from the specific advice about WRF posted by Intel.  Admittedly, the advice seems to be over 3 years old.
It's correct that mpif90 -fc=ifort is the same as mpiifort and so on, provided that you don't have some other mpif90 on your PATH.
If your reference to SLES11 means that you aren't using Intel MPI, a forum specific to WRF might be more helpful.

答案二: http://mailman.ucar.edu/pipermail/wrf-users/2014/003390.html
I guess nobody have tried the newest compiler yet, and the existingconfigs need to be adjusted. The __kmpc_* stuff is Intel's threadingruntime or something related. You can "nm | grep" Intel's librariesfor this symbol and link the right library, or it should also bepossible to achieve the same result with properly placed -openmpflags.

在compile时我选的dm+sm,两个答案都说与openmp有关,但是自己还是不知道怎么修改(ㄒoㄒ)/~~~
请各位大神指教!!非常感谢!!






configure.wrf文件如下:
# 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=$(WRF_EM_CORE) \
           -DNMM_CORE=$(WRF_NMM_CORE) -DNMM_MAX_DIM=2600 \
           -DCOAMPS_CORE=$(WRF_COAMPS_CORE) \
           -DDA_CORE=$(WRF_DA_CORE) \
           -DEXP_CORE=$(WRF_EXP_CORE)

#### 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    Linux x86_64 ppc64le i486 i586 i686, ifort compiler with icc  (dmpar)
#
#        By default, some files are compiled without optimizations to speed up compilation. Removing
#        respective makefile rules in the end of this file will result in longer compilation time, and, possibly
#        Out Of Memory messages, but might produce binaries which are substantially faster.
#
#        Please visit http://www.intel.com/support/performancetools/sb/cs-028607.htm
#        for latest info on how to build WRF with Intel compilers.
#
#        If you got Out Of Memory message, there are several options:
#          1. Check your memory limits (ulimit -a), possibly increasing swap partitions size.
#          2. Remove any debugging flags (-g, -check, -traceback).
#          3. Force the problematic file to be compiled with less optimizations (see examples at the
#             end of this file), try -no-ip compiler flag.
#
#        This configuration is aimed at accuracy. To improve performance (at the expence of accuracy) you might
#        consider removing '-fp-model precise' flag from FCBASEOPTS. This enables non value-safe optimizations.
#        Another option is to add '-ftz' flag, which flushes denormal results to zero when the application is in
#        the gradual underflow mode. It may improve performance if the denormal values are not critical to the
#        behavior of your workload. To further improve performance, add suitable vectorization options for your
#        processor to FCOPTIM (see ifort manpage).
#
#        If you have Intel MPI installed and wish to use instead, make the
#        following changes to settings below:
#        DM_FC  = mpiifort
#        DM_CC  = mpiicc
#        and source bin64/mpivars.sh file from your Intel MPI installation
#        before the build.
#
#        Suggestions for timing improvements from Craig Mattocks
#
#CFLAGS_LOCAL    =       -w -O3 -ip -fp-model precise -w -ftz -align all -fno-alias $(FORMAT_FREE) $(BYTESWAPIO) #-xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -no-multibyte-chars
#LDFLAGS_LOCAL   =       -ip -fp-model precise -w -ftz -align all -fno-alias $(FORMAT_FREE) $(BYTESWAPIO) #-xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -align all -fno-alias -fno-common
#FCBASEOPTS_NO_G =       -w -ip -fp-model precise -w -ftz -align all -fno-alias $(FORMAT_FREE) $(BYTESWAPIO) #-xHost -fp-model fast=2 -no-heap-arrays -no-prec-div -no-prec-sqrt -ftz -align all -fno-alias -fno-common $(FORMAT_FREE) $(BYTESWAPIO)

DESCRIPTION     =       INTEL ($SFC/$SCC)
DMPARALLEL      =        1
OMPCPP          =        -D_OPENMP
OMP             =        -openmp -fpp -auto
OMPCC           =      -openmp -fpp -auto
SFC             =       ifort
SCC             =       icc
CCOMP           =       icc
DM_FC           =       mpif90 -f90=$(SFC)
DM_CC           =       mpicc -cc=$(SCC) -DMPI2_SUPPORT
FC              =       time $(DM_FC)
CC              =       $(DM_CC) -DFSEEKO64_OK
LD              =       $(FC)
RWORDSIZE       =       $(NATIVE_RWORDSIZE)
PROMOTION       =       -real-size `expr 8 \* $(RWORDSIZE)` -i4
ARCH_LOCAL      =       -DNONSTANDARD_SYSTEM_FUNC  -DWRF_USE_CLM
CFLAGS_LOCAL    =       -w -O3 -ip #-xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -no-multibyte-chars
LDFLAGS_LOCAL   =       -ip #-xHost -fp-model fast=2 -no-prec-div -no-prec-sqrt -ftz -align all -fno-alias -fno-common
CPLUSPLUSLIB    =      
ESMF_LDFLAG     =       $(CPLUSPLUSLIB)
FCOPTIM         =       -O3
FCREDUCEDOPT        =       $(FCOPTIM)
FCNOOPT                =       -O0 -fno-inline -no-ip
FCDEBUG         =       # -g $(FCNOOPT) -traceback # -fpe0 -check noarg_temp_created,bounds,format,output_conversion,pointers,uninit -ftrapuv -unroll0 -u
FORMAT_FIXED    =       -FI
FORMAT_FREE     =       -FR
FCSUFFIX        =
BYTESWAPIO      =       -convert big_endian
FCBASEOPTS_NO_G =       -ip -fp-model precise -w -ftz -align all -fno-alias $(FORMAT_FREE) $(BYTESWAPIO) #-xHost -fp-model fast=2 -no-heap-arrays -no-prec-div -no-prec-sqrt -fno-common
FCBASEOPTS      =       $(FCBASEOPTS_NO_G) $(FCDEBUG)
MODULE_SRCH_FLAG =     
TRADFLAG        =      -traditional
CPP             =      /lib/cpp -P
AR              =      ar
ARFLAGS         =      ru
M4              =      m4
RANLIB          =      ranlib
RLFLAGS                =        
CC_TOOLS        =      $(SCC)

###########################################################
######################
# POSTAMBLE

FGREP = fgrep -iq

ARCHFLAGS       =    $(COREDEFS) -DIWORDSIZE=$(IWORDSIZE) -DDWORDSIZE=$(DWORDSIZE) -DRWORDSIZE=$(RWORDSIZE) -DLWORDSIZE=$(LWORDSIZE) \
                     $(ARCH_LOCAL) \
                     $(DA_ARCHFLAGS) \
                      -DDM_PARALLEL \
                       \
                      -DNETCDF \
                      -DPNETCDF \
                       \
                       \
                       \
                       \
                      -DHDF5 \
                       \
                       \
                       \
                       \
                      -DUSE_ALLOCATABLES \
                      -DGRIB1 \
                      -DINTIO \
                      -DKEEP_INT_AROUND \
                      -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=$(WRF_NMM_CORE)
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=$(WRF_NMM_CORE)

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/opt/apps/intel17/netcdf/4.3.3.1/x86_64/lib -lnetcdff -lnetcdf  -L$(WRF_SRC_ROOT_DIR)/external/io_pnetcdf -lwrfio_pnf -L/opt/apps/intel17/impi17_0/pnetcdf/1.8.1/lib -lpnetcdf   -L/opt/apps/intel17/hdf5/1.8.16/x86_64/lib -lhdf5_fortran -lhdf5 -lm -lz

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      =    /opt/apps/intel17/netcdf/4.3.3.1/x86_64
HDF5PATH        =    /opt/apps/intel17/hdf5/1.8.16/x86_64
WRFPLUSPATH     =   
RTTOVPATH       =   
PNETCDFPATH     =    /opt/apps/intel17/impi17_0/pnetcdf/1.8.1

bundled:  io_only
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  \
          wrf_ioapi_includes wrfio_grib_share wrfio_grib1 wrfio_int fftpack


######################
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) " 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)" CFLAGS_LOCAL="$(CFLAGS_LOCAL)" 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)" CPP="$(CPP)" CPPFLAGS="$(CPPFLAGS)" RM="$(RM)" )

atm_ocn :
        ( cd $(WRF_SRC_ROOT_DIR)/external/atm_ocn ; \
          make $(J) CC="$(SCC)" CFLAGS="$(CFLAGS) " RM="$(RM)" RANLIB="$(RANLIB)" \
          CPP="$(CPP)" CPPFLAGS="$(CPPFLAGS)" \
          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) $(TRADFLAG) > $*.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) $(TRADFLAG) > $*.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


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

新浪微博达人勋

发表于 2017-9-19 08:09:42 | 显示全部楼层
贴上configure.wrf看看
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-9-19 08:58:59 | 显示全部楼层
andrewsoong 发表于 2017-9-19 08:09
贴上configure.wrf看看

贴好啦,师兄~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-9-19 11:24:13 | 显示全部楼层

OMPCPP          =       # -D_OPENMP
OMP             =       # -openmp -fpp -auto
OMPCC           =       # -openmp -fpp -auto
这个为啥注释掉了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-9-19 11:54:13 | 显示全部楼层
andrewsoong 发表于 2017-9-19 11:24
OMPCPP          =       # -D_OPENMP
OMP             =       # -openmp -fpp -auto
OMPCC           ...

额,贴错了,帖子中已改正~ 这个应该是没注释掉的~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-9-19 12:01:42 | 显示全部楼层
逸儿~~ 发表于 2017-9-19 11:54
额,贴错了,帖子中已改正~ 这个应该是没注释掉的~

CC_TOOLS        =      gcc
改一下这个试试
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-9-20 10:35:37 | 显示全部楼层
andrewsoong 发表于 2017-9-19 12:01
CC_TOOLS        =      gcc
改一下这个试试

还是不行呢,同样的错误~~~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-9-20 11:12:17 | 显示全部楼层
逸儿~~ 发表于 2017-9-20 10:35
还是不行呢,同样的错误~~~

刚看到你的Intel是2017,可能有不兼容了。还有就是2017开始mpicc不等于mpiicc
DM_FC           =       mpif90 -f90=$(SFC)
DM_CC           =       mpicc -cc=$(SCC) -DMPI2_SUPPORT
你这里要改了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-9-20 12:16:08 | 显示全部楼层
andrewsoong 发表于 2017-9-20 11:12
刚看到你的Intel是2017,可能有不兼容了。还有就是2017开始mpicc不等于mpiicc
DM_FC           =        ...

师兄,我刚刚只选dm编译了一下,能够正常安装好~ 只有dm+sm时才出错,可能不是Intel的问题,应该是sm相关的有问题~~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-5-22 16:31:20 | 显示全部楼层
正在学习中,不知道怎么下载
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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