热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

一个Linux小白安装WRFCMAQ的总结

由于MEGANmodel的前期配置环境需求:LinuxUnixoperatingsystem、cshsdscriptinglanguage、Fortran90complier、ne

由于MEGAN model的前期配置环境需求:

Linux/Unix operating system、csh/sd scripting language、Fortran90 complier、netcdf3.6 or greater、ioapi3.1、MCIP3.6(或者CMAQ)

Ubuntu 18.04(Ubuntu是一个以桌面应用为主的开源GNU/Linux操作系统,基于Debian GNU/Linux)

安装前后遇到了很多的问题,中间也很有幸在网上查阅了很多的前辈们的资料,借此机会将安装过程中遇到的问题与解决方法,以及自己的一些心得总结一下,总结一下,如有不到之处,还请指正。

1、Ubuntu重置之后之后需要重新安装一些文件包:

sudo apt update

sudo apt install build-essential

sudo apt-get install csh

sudo apt-get install m4

sudo apt-get install build-essential

sudo apt-get install libstdc++5

sudo apt-get install alien

sudo apt-get install g++-multilib

sudo apt-get install gfortran

sudo apt-get install csh

下边将主要的安装过程列举一下:

https://blog.csdn.net/toby54king/article/details/78980365

前期主要参考该博主的方法安装Netcdf-C,Netcdf-fortran;采用的基于本地文件包的安装。

相对来说,HDF5对netcdf的支持安装,比较简单,但是需要注意的是,这里没有安装netcdf—C++(关于安装方法下面介绍), HDF4对netcdf的支持安装比较难,但是该链接中的方法很有效,在安装过程中遇到的主要问题基本都可以得到解决,中间涉及到jpegsrc的安装和sudo apt-get install libtools, sudo apt-get install byacc等等。

CMAQ的安装要点:

http://www.linuxdiyf.com/linux/13235.html

https://blog.csdn.net/oZuoYu123/article/details/90285971#commentBox

1.这里需要说一下,NETCDF-fortran的安装并没有必须安装crul,这里就没有安装curl;还有帖子说编译器版本的问题,我用的Ubuntu18.04版本下的编译器版本为:

 技术图片

安装zlib、hdf5,netcdf-c,netcdf-c++,netcdf-fortran的库版本见课题组硬盘CMAQv5.0.2.安装好之后记得配置环境。

检查nc-config –all, nf-config --all

 技术图片

2.安装mpich,记得配置环境。

3.安装ioapi,这一步遇到了很多的问题。

http://blog.sciencenet.cn/blog-200199-1050897.html

安装之后放在桌面(Linux下的路径为/mnt/c/Users/Mahone/Desktop),在这里有一个疑问就是下面在指定BASEDIR路径的时候,上述路径/mnt/c/Users/Mahone/Desktop不能识别。

所以在处理的时候,先定位在home/Mahone/文件夹下边

cd /home/mahone

创建一个新文件家ioapi31

mkdir ioapi31

然后把ioapi-3.1.tar.gz复制到/home/Mahone

cd /mnt/c/Users/mahone/Desktop

cp -r ioapi-3.1.tar.gz home/mahone/ioapi31

然后可以看到

 技术图片

然后解压

tar -xzvf ioapi-3.1.tar.gz

2、设置环境变量BIN和建立安装子目录

下边就是安装步骤一步来:

在ioapi31文件下创建Linux2_x86_64

mkdir ioapi31/Linux2_x86_64

vim ~/.bashrc

 技术图片

export BIN=Linux2_x86_64

source ~/.bashrc

3、修改ioapi目录下的Makefile

本帖介绍的是nocpl的安装方式,需要用到Makefile.nocpl

  cd ioapi31/ioapi

  cp Makefile.nocpl Makefile

  vim Makefile  

  # 修改BASEDIR如下:

BASEDIR    =/home/mahone/ioapi31

 保存修改后的Makefile

4、修改ioapi目录下的Makeinclude.Linux2_x86_64

  vim Makeinclude.Linux2_x86_64

  4.7以上版本的gfortran可能会出现不兼容问题,因此需要删除或注释掉ARCHFLGS一项中的-DNEED_ARGS=1

  保存修改后的Makeinclude.Linux2_x86_64

5、安装

  sudo make

  查看Linux2_x86_64中是否有libioapi.a

  如果没安装成功,在ioapi中运行make clean,修改后重新make

 技术图片

编译成功~

但是这里遇到的问题是:在安装ioapi的时候,在/usr/local/下怎么也安装不上,但是同样的方法在/home/mahone/(系统路径)下可以安装成功。原因不是很明白……..

6. 编译安装CMAQ

下边是在

 技术图片

在csh下输入cd $M3LIB提示M3LIB变量未定义,但是在bash下,cd $M3LIB 会直接进入,输入pwd会提示路径为/root。

然后在chs下:setenv M3LIB /root;

cd $M3LIB

7、编译MCIP

https://www.cnblogs.com/hbmlml/p/4311189.html参考

之前一直在这里卡着,因为前边的配置不对,导致对这个下边Makefile一直存在疑问。

sudo vim Makefile

 技术图片

到这里就编译成功了

8、下边的安装就按照说明就行了 基本没啥问题。

安装到此结束。

关于blas、lapack、cblas在Ubuntu上的安装参考了一下,

https://blog.csdn.net/weixin_34365417/article/details/91218579主要是上述两位对编译 lapack以及lapacke中,修改make.inc文件讲的很模糊。

WRF安装:先获得权限 Ubuntu终端输入sudo su

下载安装包:http://www2.mmm.ucar.edu/wrf/src/ 例如: WRFV3.9.TAR.gz最新版本

在/usr/local/下解压 tar -xzvf WRFV3.9.TAR.gz

进入WRFV3目录:cd WRFV3

设置NETCDF环境变量:export netcdf=/usr/local/netcdf/

然后执行命令:一定要要获得权限或者以管理员的身份运行: sudo ./configure

 技术图片

根据自己的电脑配置信息及安装的编译器,选择35 GNU(gfortran/gcc);1basic.

./compile +case

./comile em_real >& error.log

安装时遇到的问题:在Ubuntu18.01下试安装了3.1;3.3;3.6;3.9等好几个版本,都无法安装成功,也参考了许多的网上教程。

http://bbs.06climate.com/forum.php?mod=viewthread&tid=3202

https://xg1990.com/blog/archives/190

http://www.doc88.com/p-1716023013624.html

http://www.docin.com/p-707231569.html

----------------------------------------------------------------------------------------------------------------------

检查gcc和gfortran的版本,以及安装路径

gcc -v

 技术图片

gfortran -version

which gcc

which gfortran

----------------------------------------------------------------------------------------------------------------------

检查netcdf的安装:

ncdump

 技术图片

说明Ubuntu下编译器是gcc和gfortran,这个关系到WRF./configure时候编译器的选择;

 技术图片

关于每个选项https://xg1990.com/blog/archives/190介绍:

每一个选项的前半部分通常是在描述编译器与运行环境,根据计算机实际情况选择即可。后半部分是并行选项:

serial 表示串行计算;

smpar 表示内存共享并行计算(shared memory option),即使用openMP,大部分多核电脑都支持这项功能;

dmpar 表示分布式并行计算(distributed memory option),即使用MPI 进行并行计算,主要用在计算集群,单个电脑就没必要用了;

dm+sm 表示同时使用openMP与MPI两种并行方式. 根据实际需要选择即可,最保险的方法就是选择 serial,不过这样编译出来的程序运行最慢

选择完编译选项后,会出现提示选择嵌套选项,一般就选 basic 选项即可:1

--------------------------------------以上不出现错误提示即为成功-----------------------------------------

./compile + case

case 有很多;   ./compile em_real >&error.log, 后边是把安装的日志,错误提示输入到error.log文件中。

 技术图片

--------------------------

WRF(WRFV4.0.TAR.gz)的安装:可以发现WRFV4.0在本电脑可以成功安装,因该是WRF版本和netcdf及其编译器版本之间的不兼容的问题。

 技术图片

至此,WRF安装成功~

安装WPS,官网给出了详细的安装流程

https://blog.csdn.net/ESA_DSQ/article/details/78228678#4-%E7%BC%96%E8%AF%91wrf

安装时需要注意的问题:

1、安装依赖包的zlib,libpng,jasper要安装在同一个目录下,比如:

2、WRF编译器选择的问题,本次安装用的是gfortran安装所以在./configure选用的是32-serial(这里一开始安装的时候选择的是34、35都试过了,但是在安装WPS的时候没通过),所以在安装WPS的时候也要选择./configure 1-serial;

3、环境设置,各个安装依赖包的路径要设置对。

欢迎相互交流~

---------------------------------------------------------撒花-------------------------------------------------------

一个Linux小白安装WRF-CMAQ的总结


推荐阅读
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 本文介绍了指针的概念以及在函数调用时使用指针作为参数的情况。指针存放的是变量的地址,通过指针可以修改指针所指的变量的值。然而,如果想要修改指针的指向,就需要使用指针的引用。文章还通过一个简单的示例代码解释了指针的引用的使用方法,并思考了在修改指针的指向后,取指针的输出结果。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有