Linux系统下ROMS安装流程与例程运行
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安装流程与例程运行相关推荐
- linux系统下如何github,Linux系统下如何安装和使用GitHub
下面就来介绍一下Linux系统下如何安装和使用GitHub. 一.安装与配置 虽说Git 预装在所有 Mac 和 Linux 电脑中,但预装的 Git 无一例外都版本陈旧.所以,无论你是使用Mac , ...
- crypto安装_CryptoPP库在Linux系统下的安装与测试
CryptoPP库在Linux系统下的安装方法比较简单,具体如下: (1)解压源代码压缩包 unzip –a cryptopp700.zip 此处安装的CryptoPP库版本为7.0.0. (2)执行 ...
- linux系统下nginx安装目录和nginx.conf配置文件目录
linux系统下nginx安装目录和nginx.conf配置文件目录 1.查看nginx安装目录 输入命令 # ps -ef | grep nginx 返回结果包含安装目录 root 26 ...
- linux通过iso安装php,linux系统下怎么安装iso文件?
linux系统下怎么安装iso文件? 安装步骤: 1.在/mnt目录下,创建相应的iso文件夹,例如iso. 2.运行以下命令,挂载iso文件mount -o loop /home/tecmint/F ...
- Linux系统下detectron2安装(cuda11为例)
Linux系统下detectron2安装(cuda11为例) detectron2官方Requirements 1.Linux or macOS with Python ≥ 3.6(python版本需 ...
- linux系统下怎么安装.deb文件?
linux系统下怎么安装.deb文件? deb 是 ubuntu .debian 的格式. rpm 是 redhat .fedora .suse 的格式. 他们不通用(虽然可以转换一下). deb是d ...
- Linux 系统下Eclipse安装及使用
Linux 系统下Eclipse安装及使用 (我安装的eclipse为64位,如果需要32位的,自己去下载32位的eclipse) 安装的软件包有:jdk-8u231-linux-x64.tar.gz ...
- 在Linux系统下XAMPP安装与配置(可离线安装)
在Linux系统下XAMPP安装与配置(可离线安装) XAMPP网址:https://www.apachefriends.org/zh_cn/index.html 首先找到自己需要安装的版本下载地址( ...
- windows 访问linux中的mongodb,MongoDB的linux系统下的安装与连接
一 安装MongoDB的服务 下载Linux系统下的MongoDB安装包 上传压缩包到linux服务器中,解压到对应的安装目录下 mkdir /usr/local/mongodb tar -zxvf ...
- linux编译hashcat,Hashcat用户手册——hashcat在linux系统下的安装
前面我们已经说过hashcat在Window环境下的安装编译,今天我们就来聊一聊hashcat在Linux环境下的安装.总说安装确实有点无聊啊,但是大家忍耐一下把,安装好程序以后,大家就可以来聊一下h ...
最新文章
- Android----PopupWindow
- 升级SharePoint场的时候, 运行Configuration Wizard需要有什么顺序么?
- 转:读AD里特殊的属性in C#
- ASP.NET Core 2 学习笔记(三)中间件
- Python入门100题 | 第067题
- ASP.NET Core MVC 模型绑定用法及原理
- Fiori Elements - detail view layout analysis
- View的事件分发机制简述
- CommonJs、AMD 、CMD 前端开发模块化组合
- 4.7 ResNet CNN、tensorflow实现——python实战
- 如何将图片转化为base64编码格式显示
- 裁员潮下,工程师该何去何从?
- Filter过滤器详解
- OS - freeRTOS vs Linux
- 计算机专业一句话介绍自己,来聊聊,你会如何用一句话介绍自己的专业?
- TensorFlow实现mnist书写数字分类,出现please use urllib or similar directly错误。
- Android4.4电池管理
- 10分钟学计算机,电脑运行越来越慢?程序员大牛10分钟教你学会电脑瘦身
- python ai自动剪辑视频_你知道吗?Python也可以剪辑视频!
- 安卓逆向从入门到嗝屁之另一道CTF题目