[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.

时间: 2024-08-04 14:25:41

[Redhat9.0]Models-3安装备忘录之LINUX篇的相关文章

[Redhat9.0]Models-3安装备忘录之序曲

----------------------------------------------GAME START--------------------------------------------- 无奈无奈,相当之无奈,在将近两个月后我又要重新进行Models-3的安装,好吧,这次是我一个人,其实,我不是一个人在奋斗,加油!!! -----------------------------------------------我是无知的分界线--------------------------

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

http://blog.163.com/hdyl_8603/blog/static/34622429200911134524497/ Linux版本:Redhat9.0 -----------------------------------------------我是Linux的分界线--------------------------------------------- 首先,在我的小本本上彻底的装了一次Linux系统,再也不用双启动了,不过可惜的是硬盘空间小了点,只有28G,不过也应该可以

安装PostgreSQL数据库(Linux篇) [转]

from marsprj 0.编译环境 Linux: CentOS 5.5 gcc: 4.1.2 1. 安装PostgreSQL 1) 解压postgresql-9.1.7.tar.bz2 #tar jxvf postgresql-9.1.7.tar.bz2 2) 进入解压后的postgresql-9.1.7目录 #cd postgresql-9.1.7 3) 编译postgresql源码 #./configure --prefix=/opt/pgsql-9.1.7 #make #make in

luogu P1120 小木棍 [数据加强版]

二次联通门 : luogu P1120 小木棍 [数据加强版] /* luogu P1120 小木棍 [数据加强版] 暴搜 + 剪枝 枚举可能的长度 挨个检查答案 二分显然正确性不能保障 搜索时从最大的开始找 放上当前木棍后的长度比枚举的长度要大, 则退出 若当前的长度与当前扫到的木棍长度相同, 或是还需要的长度与枚举的长度相同,则退出 若当前的木棍不符合要求, 则后面与它长度相同的木棍都不行 */ #include <algorithm> #include <iostream>

概率法求解三阶幻方[C语言]

#include <stdio.h> #include <string.h> int in[9]={1,2,3,4,5,6,7,8,9}; int s[9]; int re[3][3]; int sum(int su[]) { int i,re=0; for(i=0;su[i];i++) re+=su[i]; return re; } int main() { int i,j,k,count=0; memset(s,0,sizeof(s)); int SUM = sum(in);

Sonar6.0基于centos7.2安装与使用(一)

Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从多个维度检测代码质量 ,通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十几种编程语言的代码质量管理与检测. 一.安装版本及下载地址  Sonarqube版本:6.0 sonar-runner版本:sonar-runner-dist-2.4 汉化包版本:sonar-l10n-zh-plugin-1.8.jar 数据库版本:MySQL-5.6.32 操作系统

nodejs+express4.0+mongodb安装方法 for Linux, Mac

废话不多说 1:下载nodejs包 下载地址如下:http://www.nodejs.org/download/ 下载source code版本需要解压后到其目录执行./configure,然后make && make install; 而binaries的tar.gz解压后即可. 2:下载mongodb 下载地址如下:http://www.mongodb.org/downloads 而binaries的tar.gz解压后即可. 3:配置环境变量 cd ~:此目录下有个.bash_prof

ORACLE LINUX 6.3 + ORACLE 11.2.0.3 RAC + VBOX安装文档

ORACLE LINUX 6.3 + ORACLE 11.2.0.3 RAC + VBOX安装文档 2015-10-21 12:51 525人阅读 评论(0) 收藏 举报  分类: Oracle RAC 版权声明:本文为博主原创文章,未经博主允许不得转载. VBOX + Oracle Linux 6U3 + ORACLE 11.2.0.3.0 RAC 安装 环境: 虚拟机          VIRTUAL BOX OS                ORACLE LINUX 6.3_X86_64

Hadoop2.2.0多节点分布式安装及测试

众所周知,hadoop在10月底release了最新版2.2.很多国内的技术同仁都马上在网络上推出了自己对新版hadoop的配置心得.这其中主要分为两类: 1.单节点配置 这个太简单了,简单到只要懂点英语,照着网上说的做就ok了.我这里不谈这个,有兴趣的童鞋可以自己去问度娘和谷哥- 2.多节点配置 这个就是我要重点说明的,老实说网络上说的的确是多节点,但不是真正的分布式部署- 我们为什么要用hadoop?因为hadoop是一个分布式系统基础架构,我们可以在不了解分布式底层细节的情况下,开发分布式