zoukankan      html  css  js  c++  java
  • [Redhat9.0]Models-3安装备忘录之LINUX篇

    [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.
    路漫漫其修远兮 吾将上下求索
  • 相关阅读:
    学习日记13、ajax同时提交from表单和多个参数
    学习日记12、list集合中根据某个字段进行去重复操作
    学习笔记11 EF查询相当于sql 中的 where in
    学习日记10、easyui编辑器combobox绑定数据的两种方式
    学习日记9、easyui控件两次请求服务器端问题
    学习日记8、根据身份证号获取生日和性别
    学习日记7、mvc +easyui datagrid excel上传
    学习日记6、easyui datagrid 新增一行,编辑行,结束编辑和删除行操作记录
    学习日记5、easyui datetimebox 和combobox设置默认值
    mac下设置redis开机自启
  • 原文地址:https://www.cnblogs.com/hbmlml/p/4231593.html
Copyright © 2011-2022 走看看