ROMS 编译upwelling.h
ROMS 编译upwelling.h
学习海洋模式ROMS的第2步:编译upwelling.h
【暂时还没有用上超算,先在自己电脑的虚拟机上编译一个简单的】
操作系统版本:Ubuntu18.04 64
ROMS版本:1030
1. 准备阶段
1.1 安装netcdf4
我参考的教程是https://blog.csdn.net/qq_31831923/article/details/103479374
按照上面的一步一步完成,亲测没啥问题
这个教程也比较详细
https://blog.csdn.net/qq_35906473/article/details/90138347
ps. 虚拟机如果连不上网,解决方法:
左上角 --> 管理 --> 虚拟机设置 --> 网络适配器 --> 桥接模式
1.2 修改关键文件内的信息
以下方法是针对单线程编译的
首先,修改/ROMS目录下makefile文件里的
①header路径(就是Include文件夹路径,里面有一堆.h文件)
②编译器名(gfortran)
其次,/ROMS/Compilers目录下的Linux_gfortran.mk【这个我没改过】
如果已经安装了netcdf4,那Linux_gfortran.mk基本不用改
2. 开始编译
>>> cd /home/joeyxu/ROMS
>>> make
运行成功后界面会弹出一大堆东西,大约需要3min,同时在makefile所在的文件夹下生成了一个可执行文件romsG
这里如果不确定哪个是新生成的可执行文件,可以通过下面的语句查看当前路径下所有文件/文件夹的生成时间,最新生成的那个就是了
>>> ls -ltrh
可执行文件生成成功后,到/ROMS/External下找到文件roms_upwelling.in,注意到External文件夹下还有一个文件varinfo.dat,这个文件接下来也要用
把roms_upwelling.in拷贝到makefile所在的文件夹
>>> cp roms_upwelling.in /home/joeyxu/ROMS
>>> vim roms_upwelling.in #修改roms_upwelling.in
roms_upwelling.in中有一个参数是varinfo.dat的路径,原本的值是不能用的,需要改成在自己虚拟机里的实际路径
改完之后,在命令行输入:
>>> ./romsG < roms_upwelling.in
回车,弹出一堆值,需要较长的运行时间。
以上就算是upwelling.h编译成功了。
!!!注意事项!!!
我第一次编译的时候,输入make,回车后出现了一行rm -f -r什么什么的,就一两行。我刚开始以为是makefile里的参数设置错了,检查了一遍发现不是参数设置的问题,回想起来是我make了两遍。
解决方案:
>>> make clean
>>> make #重来一次
仅供参考,如果有其他的原因,欢迎讨论。
接下来可能会更新并行版的编译过程~~~
ROMS 编译upwelling.h相关推荐
- 【已解决】ORB_SLAM2 编译 ./build_ros.h错误
编译 ./build_ros.h 出的错基本就是与这差不多的,方法相同,定位相关的库,然后移动位置,更改cmkelist.txt文件即可 我这里因为ORB_SLAM2用的opencv3,我装的也是op ...
- linux下gcc编译conio.h问题
ubuntu下编译遇到 conio.h找不到文件的问题, conio.h非标准库,在windows平台可以,在linux平台用curses.h,ubuntu下通过sudo apt-get insta ...
- catkin_make编译时fatal error: ###_msgs/***.h: 没有那个文件或目录
我们经常在GitHub上copy一些功能包,放到自己的工作空间里就编译,然而编译出现了问题,说没有文件或目录. 你有没有想过在编译A包时,A包有调用B包的头文件,然而我B包还没编译,还没生成头文件. ...
- c语言错误c1010怎么办,fatal error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include stdafx.h...
一.概念: 1.预编译:就是编译器首先编译某个文件(称为预编译头文件),然后将这个编译结果保存起来,之后如果有其他源文件include了这个"预编译头文件"的时候,则自动从这个编译 ...
- error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include stdafx.h”
fatal error C1010: 在查找预编译头时遇到意外的文件结尾.是否忘记了向源中添加"#include "stdafx.h (2011-09-08 22:17:50) 错 ...
- ifndef/define/endif——主要目的是防止头文件的重复包含和编译
原文:http://www.jb51.net/article/100939.htm 原文:https://blog.csdn.net/abc5382334/article/details/180527 ...
- Android JNI开发生成.h头文件问题(转)
在JNI开发中,首先要将建立的anroid类编译成.h文件,编译用到命令javah,由于第一次用,以前对java的编译过程也不怎么了解,所以走了好多弯路,网络没有对这一步的详细介绍,这里讲一下: 通过 ...
- 关于头文件是否参与编译的讨论
一.文章来由 写项目的时候发现了这个问题,又是一个比较底层的问题,首先说明,这篇文章只是我根据查阅的资料和做的实验提出的一个讨论,并不一定就是正确答案.因为这个问题网上众说纷纭,我很欢迎大家参与这个讨 ...
- 利用pre-compiled headers技术以加速编译速度(一)
<初见pre-compiled headers技术> 过去我们撰写C/C++程序时,每个档案都必须利用编译器指令 #include 引入许多的系统标头文件才能够使程序顺利编译,接着经由连结 ...
- ndk+opencv安装+各种错误分析(新版安装,编译不需要Cygwin 和Sequoyah了)
鼓捣了两三天,终于成功算跑通了一个简单的程序.下面说说具体的安装: 因为从同学那里拷过来的eclipse 就有adt cdt 的插件.所以这两个就不用再安装了.(需要的话自己安装) 具体说下安装过程: ...
最新文章
- R语言使用table1包绘制(生成)三线表、使用单变量分列构建三线表、设置transpose参数转置三线表、变量作为列,子组(strata)作为行
- 65条最常用正则表达式
- mysql能安装的版本下载失败_mysql 安装失败 每次都安装失败 每个版本都失败
- 国外的幼儿数学竟然这样出题?来测测你的孩子都会做吗?
- 欧拉回路基本概念+判断+求解
- python 服务器框架_python 服务器框架
- windows 根据进程id获得进程名称 C++
- 浅尝JQ AJAX
- Activiti的历史记录级别
- python 匹配段落_python格式化段落
- 拓端tecdat|R语言markov switching model马尔可夫转换模型研究商业周期
- latex table 表格 文字太长 自动换行
- 重邮第八届ACM大赛-预赛题解报告
- 【Unity3D】摇杆
- 亿级用户下的新浪微博平台架构
- 计算机主板自动重启,电脑开机后自动重启,详细教您电脑开机后自动重启如何解决...
- ImportError: attempted relative import with no known parent package
- discuz配置阿里云企业邮箱smtp方法
- coredns服务器配置
- 网站锚点执行平滑滚动