- 积分
- 17196
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2012-2-16
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 sywyx 于 2013-12-1 08:13 编辑
提示:PC机需要联接互联网
操作系统:UBUNTU 12.04
FORTRAN编译器:gfortran 4.6
安装命令:apt-get install gfortran
C编译器:gcc 版本 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)
安装命令:linux系统自带
几个常用linux命令:
定位文件:locate libm.a (假设要找:libm.a)
以管理员身份打开文件夹:sudo nautilus
以管理员身份打开终端:sudo su
NETCDF安装
版本:netcdf-4.1.3
tar -xvf netcdf-4.1.3.tar.gz
./configure --disable-dap --disable-netcdf-4 --prefix=/usr/local/netcdf FC=gfortran
make
make install
配置环境变量:
vi /root/.bashrc
加入:
export NETCDF=/usr/local/netcdf
export PATH=$PATH:$NETCDF/bin:$NETCDF/include:$NETCDF/lib
export MANPATH=$MANPATH:$NETCDF/share/man
(注:该处参考气象家园的方法_西西同学)
source /root/.bashrc
检查是否成功:
ncdump
出现:
ncdump [-c|-h] [-v ...] [[-b|-f] [c|f]] [-l len] [-n name] [-p n[,n]] [-k] [-x] [-s] [-t] [-w] file
[-c] Coordinate variable data and header information
[-h] Header information only, no data
[-v var1[,...]] Data for variable(s) <var1>,... only
[-b [c|f]] Brief annotations for C or Fortran indices in data
[-f [c|f]] Full annotations for C or Fortran indices in data
[-l len] Line length maximum in data section (default 80)
[-n name] Name for netCDF (default derived from file name)
[-p n[,n]] Display floating-point values with less precision
[-k] Output kind of netCDF file
[-x] Output XML (NcML) instead of CDL
[-s] Output special (virtual) attributes
[-t] Output time data as date-time strings
[-w] Without client-side caching of variables for DAP URLs
file Name of netCDF file
netcdf library version 4.1.3 of Nov 22 2013 22:36:15 $
说明成功!
NCL安装
版本:ncl_ncarg-6.1.2.Linux_Debian6.0_i686_nodap_gcc445
tar -xvf ncl_ncarg-6.1.2.Linux_Debian6.0_i686_nodap_gcc445.tar.gz
该命令形成bin、include和lib文件夹,将其拷贝到:/usr/local/ncl目录(注:ncl是自己建立的)
配置环境变量:
vi /root/.bashrc
加入:
export NCARG_ROOT=/usr/local/ncl
export NCARG_LIB=/usr/local/ncl/lib
export NCARG_INC=/usr/local/ncl/include
export PATH=/usr/local/ncl/bin:$PATH
source /root/.bashrc
检查是否成功:
ncl
出现:
Copyright (C) 1995-2013 - All Rights Reserved
University Corporation for Atmospheric Research
NCAR Command Language Version 6.1.2
The use of this software is governed by a License Agreement.
See http://www.ncl.ucar.edu/ for more details.
ncl 0>
说明成功!
zlib libpng jasper lapack blas安装
apt-get install zlib1g-dev
或
tar –zxvf zlib-1.2.8.tar.gz
./configure --prefix=/usr/local/zlib
make
make install
tar –zxvf libpng-1.6.6.tar.gz
./configure --prefix=/usr/local/libpng
make
make install
unzip jasper-1.900.1.zip
./configure --prefix=/usr/local/jasper
make
make install
注意:以前要求上面的3个文件按顺序安装!
tar –zxvf lapack-3.5.0.tgz
在解压后的lapack-3.5.0目录下面有一个make.inc.example文件,将其改为make.inc。
如果是gfortran的编译器,则基本不需要修改这个文件。
把makefile文件中的:
lib: lapacklib tmglib
#lib: blaslib variants lapacklib tmglib
改为:
#lib: lapacklib tmglib
lib: blaslib variants lapacklib tmglib
终端输入(在lapack-3.5.0目录下):
make
然后把文件夹下面的liblapack.a,librefblas.a,libtmglib.a三个库拷贝到/usr/lib。
BLAS的全称是Basic Linear Algebra Subprograms,主要用于向量和矩阵计算的高性能数学库,本身是用Fortran写的。
tar –zxvf blas.tgz
根据系统修改make.inc和Makefile
make
生成blas_LINUX.a文件
配置环境变量:
vi /root/.bashrc
加入:
JASPER=/usr/local/jasper;export JASPER
JASPERLIB=/usr/local/jasper/lib;export JASPERLIB
JASPERINC=/usr/local/jasper/include;export JASPERINC
ZLIB=/usr/local/zlib;export ZLIB
ZLIBLIB=/usr/local/zlib/lib;export ZLIBLIB
ZLIBINC=/usr/local/zlib/include;export ZLIBINC
export BLAS=/usr/local/blas
export LAPACK=/usr/local/lapack
#注:安装WRF还需要加入下面配置
export WRFIO_NCD_LARGE_FILE_SUPPORT=1
source /root/.bashrc
apt-get install csh
apt-get install m4
WRFV3.5.1.TAR.gz、WPSV3.5.1.TAR.gz和WRFDA_V3.5.1.tar.gz拷贝到同一目录下,并解压形成三个文件夹:
tar -xvf WRFV3.5.1.TAR.gz
tar -xvf WPSV3.5.1.TAR.gz
tar -xvf WRFDA_V3.5.1.tar.gz
ls -l
---------------------------------------------------------------------------
drwxr-xr-x 7 6840 kmem 4096 11月 26 13:59 WPS
-rw-r--r-- 1 root root 560948 11月 17 11:02 WPSV3.5.1.TAR.gz
drwxr-xr-x 16 19974 69257 4096 11月 26 16:20 WRFDA
-rw-r--r-- 1 root root 66483774 11月 26 09:08 WRFDA_V3.5.1.tar.gz
drwxr-xr-x 17 6840 kmem 4096 11月 26 11:01 WRFV3
-rw-r--r-- 1 root root 38997831 11月 17 11:05 WRFV3.5.1.TAR.gz
WRFV3.5.1安装
./configure
选项说明:
serial means single processor 单核
smpar means Symmetric Multi-Processing/Shared Memory Parallel (OpenMP) 多核
dmpar means Distributed Memory Parallel (MPI) 分布式计算
dm+sm means Distributed Memory with Shared Memory 多核+分布式计算
选择:gfortran、gcc、serial这一组
接下来出现:探测C、FORTRAN编译器和测试NETCDF的提示信息
开始执行编译命令:
./compile em_real >& wrf_compile.log
wrf_compile.log文件中没有出现“错误”提示
WRFV3/main# ls -l
总用量 156428
-rw-r--r-- 1 6840 kmem 5477 9月 2 2011 convert_em.F
-rw-r--r-- 1 6840 kmem 39702 8月 10 11:30 depend.common
-rw-r--r-- 1 6840 kmem 11092 12月 6 2011 ideal_em.F
-rw-r--r-- 1 6840 kmem 61627 12月 6 2011 ideal_nmm.F
-rw-r--r-- 1 root root 31384012 11月 26 11:25 libwrflib.a
-rw-r--r-- 1 6840 kmem 2562 12月 1 2012 Makefile
-rw-r--r-- 1 root root 3528286 11月 26 11:24 module_initialize_real.mod
-rw-r--r-- 1 6840 kmem 21561 4月 28 2013 module_wrf_top.F
-rw-r--r-- 1 root root 9249 11月 26 11:23 module_wrf_top.f90
-rw-r--r-- 1 root root 3033438 11月 26 11:23 module_wrf_top.mod
-rw-r--r-- 1 root root 12588 11月 26 11:23 module_wrf_top.o
-rw-r--r-- 1 6840 kmem 101460 1月 28 2013 ndown_em.F
-rw-r--r-- 1 root root 80579 11月 26 11:24 ndown_em.f90
-rw-r--r-- 1 root root 158356 11月 26 11:24 ndown_em.o
-rwxr-xr-x 1 root root 23682511 11月 26 11:25 ndown.exe
-rw-r--r-- 1 6840 kmem 36624 4月 28 2013 nup_em.F
-rw-r--r-- 1 root root 23775 11月 26 11:24 nup_em.f90
-rw-r--r-- 1 root root 32404 11月 26 11:24 nup_em.o
-rwxr-xr-x 1 root root 23351361 11月 26 11:25 nup.exe
-rw-r--r-- 1 6840 kmem 56972 3月 27 2012 real_em.F
-rw-r--r-- 1 root root 44823 11月 26 11:25 real_em.f90
-rw-r--r-- 1 root root 73848 11月 26 11:25 real_em.o
-rwxr-xr-x 1 root root 23567563 11月 26 11:25 real.exe
-rw-r--r-- 1 6840 kmem 61620 6月 18 00:18 real_nmm.F
-rw-r--r-- 1 6840 kmem 80126 2月 29 2012 tc_em.F
-rw-r--r-- 1 root root 57708 11月 26 11:24 tc_em.f90
-rw-r--r-- 1 root root 142240 11月 26 11:25 tc_em.o
-rwxr-xr-x 1 root root 23433628 11月 26 11:25 tc.exe
-rw-r--r-- 1 6840 kmem 44894 9月 2 2011 wrf_ESMFMod.F
-rwxr-xr-x 1 root root 26884395 11月 26 11:23 wrf.exe
-rw-r--r-- 1 6840 kmem 951 3月 28 2010 wrf.F
-rw-r--r-- 1 root root 186 11月 26 11:23 wrf.f90
-rw-r--r-- 1 root root 1640 11月 26 11:23 wrf.o
-rw-r--r-- 1 6840 kmem 85396 9月 2 2011 wrf_SST_ESMF.F
WPSV3.5.1安装
./configure
在配置选项中选13
形成configure.wps文件
修改后的configure.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 Linux i486 i586 i686, gfortran (serial)
#
#
COMPRESSION_LIBS = -L/usr/local/jasper/lib -ljasper -lpng -lz
COMPRESSION_INC = -I/usr/local/jasper/include
FDEFS = -DUSE_JPEG2000 -DUSE_PNG
SFC = gfortran
SCC = gcc
DM_FC = mpif90 -f90=gfortran
DM_CC = mpicc -cc=gcc
FC = $(SFC)
CC = $(SCC)
LD = $(FC)
FFLAGS = -ffree-form -O -fconvert=big-endian -frecord-marker=4
F77FLAGS = -ffixed-form -O -fconvert=big-endian -frecord-marker=4
FCSUFFIX =
FNGFLAGS = $(FFLAGS)
LDFLAGS =
CFLAGS =
CPP = /usr/bin/cpp -C -P -traditional
CPPFLAGS = -D_UNDERSCORE -DBYTESWAP -DLINUX -DIO_NETCDF -DBIT32 -DNO_SIGNAL
RANLIB = ranlib
########################################################################################################################
#
# 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
以上是完整文件,注意下面两条语句:
COMPRESSION_LIBS = -L/usr/local/jasper/lib -ljasper -lpng -lz
COMPRESSION_INC = -I/usr/local/jasper/include
其中libpng和libzib库文件是从/usr/local/libpng和/usr/local/zlib文件夹下找到,直接手工考到/usr/local/jasper/lib文件夹下的。
同时,把/usr/local/libpng文件夹下的include子目录拷贝到/usr/local/jasper文件夹下。
./compile >& wps_compile.log
wps_compile.log文件中没有出现“错误”提示
WPS相关的.exe文件形成
WRFDA_V3.5.1安装
./configure wrfda
./compile all_wrfvar >& wrfvar_compile.log
wrfvar_compile.log文件中没有出现“错误”提示
相关的.exe文件形成
RIP4安装
对于RIP4安装,我在2011年初的那次努力就是以失败告终的!
http://mnmuc.org/thread-610-1-1.html
这是当时在“Meteorological Numerical Model Union of China (MNMUC) 中国气象数值模式联盟”网站上寻求帮助的贴子。
时隔数年,我在这次努力中也用了将近3天的时间。
其实,我SURFER和GRADS用得挺好,但问题不解决,心里总是放不下。
Cairo是一个2D图形库。http://cairographics.org/download/
RIP4安装必须先安装Cairo,命令如下:
apt-get install libcairo2-dev
./configure
修改configure.rip
# configure.rip
#
# 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
NETCDFLIB = -L${NETCDF}/lib -lnetcdf -lnetcdff
NETCDFINC = -I${NETCDF}/include
NCARGLIBS = -L${NCARG_ROOT}/lib -lncarg -lcgm -lncarg_gks -lncarg_c -L/usr/lib/i386-linux-gnu -lX11 -lm
#### Architecture specific settings ####
# Settings for PC Linux i486 i586 i686 x86_64, gfortran compiler
#
FC = gfortran
FFLAGS = -I. -fcray-pointer -fconvert=big-endian -frecord-marker=4
CCFLAGS = -I. -DLITTLE -DUNDERSCORE -c
LDFLAGS =
LOCAL_LIBS = -L/usr/X11R6/lib -lX11 -lf2c -L/usr/lib/gcc/i686-linux-gnu/4.6 -lgcc -lgfortran -lcairo -lfreetype
###########################################################
#
# 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) $(CCFLAGS) $(CFLAGS) -c $<
.f.o:
$(FC) $(FFLAGS) -c $*.f
.f90.o:
$(RM) $@ $*.mod
$(CP) $< $*.f
$(FC) $(FFLAGS) -c $*.f
$(RM) $*.f
.F90.o:
$(RM) $@ $*.mod
$(CPP) $(CCFLAGS) $(FDEFS) $< > $*.f
$(FC) $(FFLAGS) -c $*.f ${NETCDF_INC}
$(RM) $*.f
以上是完整文件,注意下面这条语句:
NETCDFLIB = -L${NETCDF}/lib -lnetcdf -lnetcdff
后面的-lnetcdff,是手工加上的,这就是关键。
./compile >& rip4_compile.log
rip4_compile.log文件中没有出现“错误”提示
ls -l
总用量 1636
drwxr-xr-x 2 6840 kmem 4096 11月 27 08:52 arch
-rw-r--r-- 1 6840 kmem 11398 10月 4 12:15 CHANGES
-rwxr-xr-x 1 6840 kmem 658 2月 27 2009 clean
-rw-r--r-- 1 6840 kmem 5008 1月 11 2011 color.tbl
-rwxr-xr-x 1 6840 kmem 1282 10月 15 2008 compile
-rwxr-xr-x 1 6840 kmem 4257 10月 15 2008 configure
-rw-r--r-- 1 root root 1912 11月 27 09:25 configure.rip
-rw-r--r-- 1 root root 1858 11月 27 08:53 configure.rip~
-rw-r--r-- 1 root root 1807 11月 22 09:16 configure.rip4
drwxr-xr-x 2 6840 kmem 4096 11月 22 09:15 Doc
-rw-r--r-- 1 6840 kmem 30200 7月 10 2007 eta_micro_lookup.dat
-rw-r--r-- 1 6840 kmem 14104 3月 19 2008 Makefile
-rw-r--r-- 1 6840 kmem 347079 7月 10 2007 psadilookup.dat
-rw-r--r-- 1 6840 kmem 4028 3月 31 2012 README
lrwxrwxrwx 1 root root 7 11月 27 09:34 rip -> src/rip
-rw-r--r-- 1 root root 15225 11月 27 09:34 rip4_compile.log
lrwxrwxrwx 1 root root 11 11月 27 09:34 ripcomp -> src/ripcomp
lrwxrwxrwx 1 root root 10 11月 27 09:34 ripcut -> src/ripcut
lrwxrwxrwx 1 root root 13 11月 27 09:34 ripdp_mm5 -> src/ripdp_mm5
lrwxrwxrwx 1 root root 16 11月 27 09:34 ripdp_wrfarw -> src/ripdp_wrfarw
lrwxrwxrwx 1 root root 16 11月 27 09:34 ripdp_wrfnmm -> src/ripdp_wrfnmm
lrwxrwxrwx 1 root root 13 11月 27 09:34 ripinterp -> src/ripinterp
lrwxrwxrwx 1 root root 11 11月 27 09:34 ripshow -> src/ripshow
drwxr-xr-x 2 6840 kmem 4096 11月 22 09:15 sample_infiles
lrwxrwxrwx 1 root root 12 11月 27 09:34 showtraj -> src/showtraj
drwxr-xr-x 2 6840 kmem 12288 11月 27 09:34 src
-rw-r--r-- 1 6840 kmem 1123389 7月 10 2007 stationlist
lrwxrwxrwx 1 root root 11 11月 27 09:34 tabdiag -> src/tabdiag
lrwxrwxrwx 1 root root 11 11月 27 09:34 upscale -> src/upscale
-rw-r--r-- 1 root root 55557 11月 26 18:38 wps_compile.log~
配置环境变量:
vi /root/.bashrc
加入:
export RIP_ROOT=/usr/local/RIP4
export PATH=$RIP_ROOT:$PATH
source /root/.bashrc
结语
感谢气象家园。
感谢各位气象同仁,你们曾经的努力对于我找到解决问题的方法非常重要,更重要的是你们努力解决问题的精神,是你们鼓舞了我。
感谢UBUNTU,和为此努力和付出的人们。
感谢gfortran,我真的不想再去盗版PGI;感谢ifort(intel),因为如果gfortran用不好,ifort是一个选择。
感谢gcc。
向微软表示歉意,因为我使用的VC++ 6.0 是盗版的,而我又实在离不开C++。
|
评分
-
查看全部评分
|