码迷,mamicode.com
首页 > 系统相关 > 详细

[Redhat9.0]Models-3安装备忘录之LINUX篇

时间:2015-01-18 12:59:45      阅读:481      评论:0      收藏:0      [点我收藏+]

标签:

[Redhat9.0]Models-3安装备忘录之MODELS-3篇(未完待续……)  

2010-01-26 11:32:54|  分类: Models-3|举报|字号 订阅

 
 
写在前面:不知道是因为版本还是机器的问题,总之smoke现在进入瓶颈阶段了,僵持了N久之后导师终于坚持不下去了,现在models-3只好暂时停止,真是可惜啊。现在主攻MM5,期望不要再出什么状况,时间不是我能耗的起的啊!
---------------------------------------------------------------------------------------------
----------------------------------------------上一篇:MM5---------------------------------------------

EDSS Root(没找到)
PAVE版本:PAVE2.1.2
MCIP版本:MCIP3.4.1
NetCDF版本:NetCDF3.5.1
IOAPI版本:IOAPI2.2
CVSROOT版本:CVS1.11.20
CMAQ版本:CMAQ4.3
SMOKE版本:SMOKE2.0
 
-----------------------------------------------我是PAVE的分界线---------------------------------------------
 
 
 

 -----------------------------------------------我是MCIP的分界线---------------------------------------------
 
目的:气象化学界面处理模块,将MM5输出数据转换为应用程序界面(I/O API)格式文件输入到化学输送模式CCTM中。
*我觉得这个不需要单独安装,好像在CMAQ中已经安装了,不知道正确与否。
-----------------------------------------------
1.解压M3DATA_MCIP32.tar.gz和mcip_v3.4.1.tar.gz,分别解压出data文件夹和MCIP3文件夹;
2.编辑Makefile文件,主要是修改路径与参数;

 
-----------------------------------------------我是NetCDF的分界线---------------------------------------------

目的:获得CMAQ所需要的库文件libnetcdf.a。
-----------------------------------------------
1.将netcdf-3.5.1在文件夹/usr/local/netcdf(便于管理,也与环境变量相符)解压出src目录;
2.在csh环境下进行安装、编译,在终端中输入以下语句:
   # setenv FC pgf90
   # setenv CC gcc
   # setenv FFLAGS  "-O2"
   # setenv CPPFLAGS  "-DNDEBUG  -DsunFortran"
3.# ./configure  --prefix=/usr/local/netcdf
4.# make
   # make test
   # make install--产生bin、include、bin、man目录,并于lib目录中编译出需要的libnetcdf.a文件;
5.# ln -s /usr/local/netcdf/lib/libnetcdf.a  /home/hdyl/MODELS3/lib/netCDF/Linux/libnetcdf.a
--CMAQ仅需要库文件libnetcdf.a,因此只要将编译得到的libnetcdf.a链接到CMAQ适当目录下即可,由于这些文件夹尚未建立,可能在后面安装CMAQ的时候链接会更方便一些,下面的IOAPI编译出的libioapi.a同理。
--源程序可以删掉,安装的貌似可以,保留也行。

-----------------------------------------------我是IO API的分界线---------------------------------------------

目的:为了获得CMAQ所需要的库文件libioapi.a。
-----------------------------------------------
1.解压ioapi_22.tar.gz到“/home/hdyl/ioapi_22”中;
2.在csh环境下安装、编译:
   # setenv BIN Linux2_i686pg(原来是:Linux2_x86pg,为了跟CMAQ中统一,就改了)
   # setenv CC gcc
   # cd ioapi_22
   # cp Makefile.nocpl Makefile
3.# vi Makeinclude.Linux2_i686pg--修改有关编译项(这个文件夹里所有的x86pg都改为i686pg):
--a.CC   = /usr/bin/gcc (可能要这样改,我原来的是这样的);
--b.OMPFLAGS、OMPLIBS为多CPU条件下的选项,在单CPU下应关闭(置空);
--c.FSFLAGS=--Msave,pgf90不能识别,关闭;
--d. 由于gcc不能识别COPTFLAGS中的-fast项,故关闭了COPTFLAGS和FOPTFLAGS中的-fast;
--e.对于ARCHFLAGS,选择没有-Msecond -underscore和-Mnosecond -underscore的选项。
4.# make--创建Linux2_i686pg目录,并在该目录中编译出libioapi.a文件;
5.# ln -s libioapi.a  /home/hdyl/MODELS3/lib/ioapi_22/libioapi.a (如果libioapi.a不在CMAQ目录下)。
--CMAQ仅需要库文件libioapi.a,因此原则上只要将该文件编译出,并置于CMAQ的适当目录下即可。
注意:如果当时安装IOAPI没有装在/home/hdyl/MODELS3/lib/ioapi_22中,则应该将安装目录下的fixed_src目录拷入到这个目录中。

-----------------------------------------------我是CVSROOT的分界线---------------------------------------------

目的:其实我也不是很清楚,好像是与服务器相关的吧。
-----------------------------------------------
1.解压cvs-1.11.20.tar.gz到/home/hdyl/CVSROOT;
2.设置环境变量;
3.# ./configure
   # make
   # make install

-----------------------------------------------我是CMAQ的分界线---------------------------------------------

*在csh环境下进行。
1.设置环境变量:
setenv M3HOME /home/hdyl/MODELS3
setenv M3MODEL $M3HOME/models
setenv M3LIB $M3HOME/lib
setenv M3DATA $M3HOME/data
setenv M3WORD $M3HOME/scripts
2.# cd $M3HOME--解压M3DATA.tar.gz产生$M3DATA目录及子目录;
3.创建$M3LIB及其子目录:
   # mkdir $M3LIB--后面类似;
   其中,将前述编译得到的libnetcdf.a和libioapi.a分别链接到$M3LIB/netCDF/Linux和$M3LIB/ioapi_22/Linux2_i686pg目录下。
   # ln -s /usr/local/netcdf/lib/libnetcdf.a  /home/hdyl/MODELS3/lib/netCDF/Linux/libnetcdf.a
   # ln -s libioapi.a  /home/hdyl/MODELS3/lib/ioapi_22/Linux2_i686pg/libioapi.a
*子目录pario、dynmem(没有创建)与并行计算有关。
4.# cd $M3HOME--解压MODELS.tar.gz$M3MODEL目录及其子目录;
5.# mkdir $3WORK
   # cd $M3WORK--解压SCRIPTS.tar.gz产生$M3WORK的子目录;
6.# cd $M3WORK/build
   # ./bldit.m3bld
7.# cd $M3WORK/stenex
   # ./bldit.se_noop.pgf  (单CPU计算);
   或 # ./bldit.se.pgf(并行计算)
   注意:修改这个文件内的路径以及编译器。  
8.编译执行JPROC、ICON、BCON、MCIP、CCTM(第一层的第一天)
    # cd $M3WORK/jproc
    # ./bldit.jproc.pgf---注意:修改这个文件内的路径(PGI、ioapi以及netCDF),下同;
    # ./run.jproc >&! jproc.log&
-----------------------------------------------
   # cd $M3WORK/icon
   # ./bldit.icon.pgf
      set FC = /usr/pgi/linux86/5.0/bin/pgf90
      set IOAPI = "${M3LIB}/ioapi_22/${BLD_OS}_i686pg -lioapi"
      set ICL_IOAPI = ${M3LIB}/ioapi_22/fixed_src
      set NETCDF = "${M3LIB}/netCDF/Linux -lnetcdf"
   # ./run.icon---注意:修改这个文件内的EXEC路径,改为:Linux2_i686pg,下同(可能还需要改别的);
-----------------------------------------------
   # cd $M3WORK/bcon
   # ./bldit.bcon.pgf
   # ./run.bcon >&! bcon.log&
-----------------------------------------------
   # cd $M3WORK/mcip2---MM5数据转换成为CCTM可处理的文件;
   # cd BLD
   # make
   # cp mcip.exe ../mcip.exe
   # ./run.mcip
-----------------------------------------------
在已经准备好气象、源排放文件后,运行CCTM:
(数据包括:MM5输出数据、SMOKE数据、JPROC、ICON、BCON数据)
   # $M3WORK/cctm
   # ./bldit.cctm.pgf
   # .run.cctm >&! cctm.log&
9.参考TUTUOIAL_PROCEDURE文件,计算第二天的coarse domain浓度场以及第一天和第二天的fine domain浓度场;
-----------------------------------------------
注意:
1.CMAQ的相关安装和运行均在cshell的环境中进行;
2.为保证编译得到的库文件libnetcdf.a、libioapi.a、libCVS.a等的相容性,在安装和编译时,应设置相同的编译环境变量setenv CC gcc,否则可能会JPROC可执行程序的非正常运行(挂置、无信息、结果输出)。
3.主要安装参考文件:README、TUTORIAL_PROCEDURE、CVS_NETCDF、IOAPI;
4.$M3HOME:
   a.data---输入输出的各类数据文件;
   b.lib---编译得到的各种库文件存放于此目录;
   c.models---模式以及机理的原程序文件; 
   d.scripts---工作目录,存放运行脚本和可执行文件。

-----------------------------------------------我是SMOKE的分界线---------------------------------------------

 安装过程参考manual中的帮助ch12
 
-------------------------安装-------------------------
1.版本为2.0,下载到的文件有:
   smoke.Linux2_x86ifc.tar.gz;smoke.nctox.data.tar.gz;smoke_install.csh;manual.zip(前两个不需要解压),为省事,可将这些文件放入/home/hdyl/smoke文件夹中,作为EDSS_ROOT,不需要解压;
2.在.cshrc中设置环境变量:
   setenv EDSS_ROOT /home/hdyl/smoke
   setenv SMK_HOME /home/hdyl/smoke--暂时不懂是做什么的;
3.# mkdir -p $EDSS_ROOT--(创建smoke文件夹)
4.# cd /home/hdyl/smoke
   # source smoke_install.csh--解压并安装SMOKE到EDSS_ROOT中。
*安装完后显示:subsys/smokev1/assigns:没有那个文件或目录;
  ——复制subsys/smoke/assigns到subsys/smokev1/assigns(不晓得有米用处,不过好像最终未用到)
 
-------------------------编译-------------------------
1.# cd $EDSS_ROOT/scripts
   # source platform--如无错误则不需要更新(我认为),并为EDSS_EXE设置环境变量;
   # echo $EDSS_OS,得出为Linux2--如果有错误再输入这个;
   *查询变量,# echo $变量。
    eg:# echo $EDSS_EXE,得出为Linux2_x86pg。
2.将IO/API的库文件放入:$EDSS_ROOT/subsys/ioapi/bin/$EDSS_EXE/libioapi.a;
*后期调试在此处一直有错误,所以,就在smoke文件夹中重新安装ioapi,步骤同前面的ioapi安装所讲一样,安装后需要将库文件与下面的datshift文件放入/home/hdyl/smoke/subsys/ioapi/bin/Linux2_x86pg中。
   将IO/API的工具datshift安装到:$EDSS_ROOT/subsys/ioapi/bin/$EDSS_EXE/datshift;--试验了一下,没看出有什么作用..==b;
   将NETCDF的库文件放入:$EDSS_ROOT/subsys/netcdf/bin/$EDSS_EXE/libnetcdf.a;
*按照指导手册与王老师留下来的文件夹可以看到存在一个ioapi_includes文件夹,但是由于不知道是怎么得到的,于是只好先创建/home/hdyl/smoke/subsys/ioapi_includes文件夹,并在其中将原ioapi文件夹中的以下文件拷入:
 ATDSC3.EXT
 CONST3.EXT
 FDESC3.EXT
 IODECL3.EXT
 NETCDF.EXT
 NOTICE.EXT
 PARMS3.EXT
 STATE3.EXT
 今天在/home/hdyl/smoke/subsys/ioapi/fixed_src中找到一致的文件,所以拷入ioapi_includes文件夹中。
3.如果有需要,则更新文件:--这一步我在运行后分别显示如下:
  • $EDSS_SUBSYS/edss_tools/setup/sysflags --TOOLS_ROOT:Undefined variable
  • $EDSS_SUBSYS/filesetapi/sysflags --FS_ROOT:Undefined variable
  • $SMKROOT/assigns/sysflags --source sysflags:MD_SRC:Undefined variable

3.# cd $SMKROOT/scripts/make--$SMKROOT代表的是/home/hdyl/smoke/subsys/smoke;

   # vi Makeall--编辑文件头,如果在前面已经编译过的可以选N;
*在运行过程中有存在如下错误:
 Makeit:Command not found.
 解决方案是将Makeall中的所有Makeit都改为./Makeit。
4.

[Redhat9.0]Models-3安装备忘录之LINUX篇

标签:

原文地址:http://www.cnblogs.com/hbmlml/p/4231593.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!