1、注册

获得源码的第一步是去官网注册,人工审核大概需要一天的时间。

ROMS> start

2、准备工作

2.1 安装HDF5

下载安装包:以1.8.10版本为例

HDF5 1.8.10 Source Code

解压后进入控制台,移动到压缩包所在目录,输入以下指令完成安装,这里要记得安装的位置。注意,有时make不成功需要先运行make clean,再重新make。

./configure --prefix=/usr/local/hdf5 # 指定安装路径makemake check    # 验证安装是否成功make install

2.2 安装NetCDF4

2.2.0 安装依赖库

依赖库主要有三个:

numpy

cftime

HDF5

刚才已安装HDF5,剩下两个按照网上的教程,可以去下载wheel文件安装。

另一个省事的办法:直接在ubuntu控制台输入numpy、cftime,在未安装该库时控制台会给出对应的安装指令。

NetCDF不版本的安装有些区别,旧版的相对比较简单。如果没有特殊需求推荐安装旧版,如果后续demo运行有误则可尝试安装新版。

2.2.1安装旧版(4.3.1之前的版本)

下载链接:

https://pypi.org/project/netCDF4/%23files

最简单的办法是输入以下指令:

pip install netCDF4

该指令可以直接从官网复制。

2.2.2安装新版

下载链接:

NetCDF: Building the NetCDF-4.2 and later Fortran libraries

新版需要分别编译和安装c文件和fortran文件。首先解压c文件的压缩包,阅读其中的INSTALL.md文件,可知编译NetCDF-c之前需要先编译zlib和HDF5两个库,HDF5前文已经提到,zlib似乎时ubuntu自带的,没有的话可以输入:

sudo apt-get install -y zlib* 

然后在控制台进入netcdf-c解压产生的文件夹中,输入以下指令

CPPFLAGS=-I/home/username/local/include LDFLAGS=-L/home/username/local/lib ./configure --prefix=/home/username/local
make check install

HDF5、zlib、szip的头文件库文件的位置应该根据实际情况修改,不一定都是以上写的位置。prefix后写的安装位置最好也修改到一个便于管理的位置。

netcdf-fortran部分的编译与安装步骤如下,这一部分也可以在官网找到

1、找到netCDF-c的安装路径,我设置为:

NCDIR=/usr/local

2、设置Fortran和c编译器(确认编译器的指令:which gcc; which gfortran)

CC=gcc
FC=gfortran

3、安装netCDF-F

NFDIR=/usr/local #安装路径
CPPFLAGS=-I${NCDIR}/include LDFLAGS=L${NCDIR}/lib \
./configure --prefix=${NFDIR}
make check
make install #如果出现权限的报错,则在前面加sudo

3、安装ROMS

输入以下指令安装mpich2


sudo apt-get -y install mpich 

输入以下指令即可获得ROMS源码,提醒linux使用不熟练的同学:mkdir之前应先cd进入事先准备好的文件夹,建议将ROMS下载至指定文件夹便于以后的管理。

sudo apt-get install subversionmkdir myROMScd myROMS# 默认下载到当前文件夹, 更改username为自己官网注册的,并输入密码
svn checkout --username username https://www.myroms.org/svn/src/trunk# 或者指定文件夹(ROMS_dir)
svn checkout --username username https://www.myroms.org/svn/src/trunk ROME_dir

4、Upwelling例程运行

以upwelling(上翻流)为例验证安装结果。

4.1新建目录

新建文件夹并将以下三个文件复制到相应的目录,直接复制粘贴就行。有些版本的ROMS里build_roms.sh的后缀为bash。

# 在与刚才安装的trunk的同级目录新建Projects文件夹,用于存放ROMS的各种应用
mkdir Projects
cd Projects
# 在Projects文件夹下建立Upwelling文件夹
mkdir Upwelling
cd Upwelling
# 复制所需的文件到Upwelling文件夹
trunk/ROMS/External/roms_upwelling.in
trunk/ROMS/Include/upwelling.h
trunk/ROMS/Bin/build_roms.sh
trunk/ROMS/External/varinfo.dat

4.2变量设置

1、修改build_roms.sh

将build_roms.sh原有对应位置的内容替换为以下代码

# ROMS根目录和Upwelling路径
export  MY_ROOT_DIR=${HOME}/apps/myROMS
export  MY_PROJECT_DIR=${MY_ROOT_DIR}/Projects/Upwelling
export  MY_ROMS_SRC=${MY_ROOT_DIR}/trunk # trunk目录
#export  MY_CPP_FLAGS=     # 注释掉MY_CPP_FLAGS变量
export  USE_MPI=on
export  USE_MPIF90=on   # 使用MPI分布式内存的并行方式
export  which_MPI=mpich2   # MPI的发行版选择mpich2
export  FORT=gfortran    # Fortran编译器选择gfortran
export  USE_NETCDF4=on    # 使用NETCDF4作为IO
export USE_MY_LIBS=yes     # 由于使用了第三方库,需要打开这个开关

2、修改my_build_paths.sh

打开myROMS/trunk/Compilers/my_build_paths.sh找到 USE_MPIF90 部分,根据使用的编译器(本文用gfortran)以及MPI 发行版(本文为mpich2)修改对应行的 MPI_ROOT(mpich2 安装路径可以使用 whihc mpirun 指令查看)。

找到USE_NETCDF4 部分,根据编译器(gfortran)、以及是否并行 (IO),修改 NETCDF 变量的路径(NETCDF 的路径可以用 which nf-config 或 which ncdump 指令查看)。

如果这三步存在错误,运行时会出现以下错误:

4.3编译安装

直接运行脚本即可安装
./build_roms.sh
./build_roms.sh -j 4 #或者使用多线程编译

这个过程比较久,结束后生成romsM文件即为成功。附一张运行过程中的图:

4.4模式运行

1、修改VARNAME等参数

在romsM文件所在目录,修改roms_upwelling.in文件,把VARNAME设置为varinfo.dat文件夹所在的位置,/home/我的用户名/myROMS/trunk/ROMS/External/varinfo.dat,修改运行核数为4(也可以不改):

VARNAME = /home/我的用户名/myROMS/trunk/ROMS/External/varinfo.dat
NtileI  = 2
NitleJ  = 2
#NtileI*NtileJ=4

2、运行mpirun

用mpirun指令运行roms:

mpirun -np 4 ./romsM roms_upwelling.in

结果为:

注意,可能是由于设置了多核的原因,运行以下指令会出错

./romsM roms_upwelling.in

成功运行后,文件夹中多了roms_avg.nc  roms_dia.nc  roms_his.nc  roms_rst.nc这些文件。

5、Reference

HDF5

HDF5 1.8.10 Source Code

Linux安装hdf5_yaoyz105-CSDN博客_hdf5安装

NETCDF4

netCDF4 · PyPI

cftime · PyPI

linux下netCDF4安装笔记_domotokoi的博客-CSDN博客_linux netcdf4安装

NetCDF: Building the NetCDF-4.2 and later Fortran librarieshttps://docs.unidata.ucar.edu/netcdf-c/current/building_netcdf_fortran.html

ROMS

ROMS海洋模式安装攻略 - 知乎

ROMS区域海洋模式的安装和运行_islandowner2017的博客-CSDN博客_roms模式

ROMS 编译upwelling.h_joseph_hsu的博客-CSDN博客

Linux系统下ROMS安装流程与例程运行相关推荐

  1. linux系统下如何github,Linux系统下如何安装和使用GitHub

    下面就来介绍一下Linux系统下如何安装和使用GitHub. 一.安装与配置 虽说Git 预装在所有 Mac 和 Linux 电脑中,但预装的 Git 无一例外都版本陈旧.所以,无论你是使用Mac , ...

  2. crypto安装_CryptoPP库在Linux系统下的安装与测试

    CryptoPP库在Linux系统下的安装方法比较简单,具体如下: (1)解压源代码压缩包 unzip –a cryptopp700.zip 此处安装的CryptoPP库版本为7.0.0. (2)执行 ...

  3. linux系统下nginx安装目录和nginx.conf配置文件目录

    linux系统下nginx安装目录和nginx.conf配置文件目录 1.查看nginx安装目录 输入命令 # ps  -ef | grep nginx 返回结果包含安装目录 root      26 ...

  4. linux通过iso安装php,linux系统下怎么安装iso文件?

    linux系统下怎么安装iso文件? 安装步骤: 1.在/mnt目录下,创建相应的iso文件夹,例如iso. 2.运行以下命令,挂载iso文件mount -o loop /home/tecmint/F ...

  5. Linux系统下detectron2安装(cuda11为例)

    Linux系统下detectron2安装(cuda11为例) detectron2官方Requirements 1.Linux or macOS with Python ≥ 3.6(python版本需 ...

  6. linux系统下怎么安装.deb文件?

    linux系统下怎么安装.deb文件? deb 是 ubuntu .debian 的格式. rpm 是 redhat .fedora .suse 的格式. 他们不通用(虽然可以转换一下). deb是d ...

  7. Linux 系统下Eclipse安装及使用

    Linux 系统下Eclipse安装及使用 (我安装的eclipse为64位,如果需要32位的,自己去下载32位的eclipse) 安装的软件包有:jdk-8u231-linux-x64.tar.gz ...

  8. 在Linux系统下XAMPP安装与配置(可离线安装)

    在Linux系统下XAMPP安装与配置(可离线安装) XAMPP网址:https://www.apachefriends.org/zh_cn/index.html 首先找到自己需要安装的版本下载地址( ...

  9. windows 访问linux中的mongodb,MongoDB的linux系统下的安装与连接

    一 安装MongoDB的服务 下载Linux系统下的MongoDB安装包 上传压缩包到linux服务器中,解压到对应的安装目录下 mkdir /usr/local/mongodb tar -zxvf ...

  10. linux编译hashcat,Hashcat用户手册——hashcat在linux系统下的安装

    前面我们已经说过hashcat在Window环境下的安装编译,今天我们就来聊一聊hashcat在Linux环境下的安装.总说安装确实有点无聊啊,但是大家忍耐一下把,安装好程序以后,大家就可以来聊一下h ...

最新文章

  1. Android----PopupWindow
  2. 升级SharePoint场的时候, 运行Configuration Wizard需要有什么顺序么?
  3. 转:读AD里特殊的属性in C#
  4. ASP.NET Core 2 学习笔记(三)中间件
  5. Python入门100题 | 第067题
  6. ASP.NET Core MVC 模型绑定用法及原理
  7. Fiori Elements - detail view layout analysis
  8. View的事件分发机制简述
  9. CommonJs、AMD 、CMD 前端开发模块化组合
  10. 4.7 ResNet CNN、tensorflow实现——python实战
  11. 如何将图片转化为base64编码格式显示
  12. 裁员潮下,工程师该何去何从?
  13. Filter过滤器详解
  14. OS - freeRTOS vs Linux
  15. 计算机专业一句话介绍自己,来聊聊,你会如何用一句话介绍自己的专业?
  16. TensorFlow实现mnist书写数字分类,出现please use urllib or similar directly错误。
  17. Android4.4电池管理
  18. 10分钟学计算机,电脑运行越来越慢?程序员大牛10分钟教你学会电脑瘦身
  19. python ai自动剪辑视频_你知道吗?Python也可以剪辑视频!
  20. 安卓逆向从入门到嗝屁之另一道CTF题目

热门文章

  1. CSS特效——图片扫描
  2. 在家佛弟子对待工作的态度——世俗八正道
  3. 2022-2027年中国星级酒店市场竞争态势及行业投资前景预测报告
  4. SpringBoot+websocket实现私聊和群聊(可以发送文字和图片)
  5. 基于区块链的融合通信初探(一)
  6. Android/IOS/Web跳转第三方QQ指定QQ号的聊天框,实现陌生人聊天
  7. 【推荐系统->统计学】辛普森悖论(Simpson‘s paradox)
  8. 网站备案常见词汇解释汇总
  9. 关于哪些信息是个人隐私信息
  10. 毕业即失业,转行软件测试的辛酸泪只有自己知道