【WRF运行第二期(Ubuntu)】ARWpost安装及错误总结

news2024/11/18 20:45:58

WRF运行第二期:ARWpost安装及错误总结

  • 1 ARWpost介绍
  • 2 ARWpost安装
    • 2.1 ARWpost_V3安装前准备
    • 2.2 安装ARWpost
    • 2.3 修改Makefile文件
    • 2.4 修改configure.arwp文件
    • 2.5 生成可执行文件EXE
      • 另:报错1-Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(4)/REAL(4)).
      • 另:报错2-f951: Fatal Error: Reading module ‘input_module.mod’ at line 1663 column 56: Unexpected EOF
      • 另:报错3-Fatal Error: Cannot open module file ‘output_module.mod’ for reading at (1): No such file or directory
      • 另:报错4-Error: Invalid character in name at (1) module_get_file_names.f:2.3:
    • 2.6 修改namelist.ARWpost
  • 参考

1 ARWpost介绍

ARWpost 是WRF模型后处理程序之一,用于将 WRF 结果转为 GrADS 或 Vis5D 可以辨识的数据格式的软件,就是WRF运行结束以后,把WRF的结果变成平时比较常用的数据格式。
使用ARWpost可对模拟数据进行分析、可视化和后续处理。

2 ARWpost安装

2.1 ARWpost_V3安装前准备

第一步:进入Build_WRF文件夹

cd Build_WRF

第二步:下载ARWpost_V3

下载ARWpost_V3的安装包有以下两种方式:

  • 方式1:利用Linux命令下载。
wget https://www2.mmm.ucar.edu/wrf/src/ARWpost_V3.tar.gz

终端界面如下:
在这里插入图片描述

  • 方式2:进入网站https://www2.mmm.ucar.edu/wrf/src/直接下载。

第三步:解压ARWpost安装包
解压ARWpost安装包并进入:

tar -zxvf ARWpost_V3.tar.gz
cd ARWpost

2.2 安装ARWpost

在WPS文件夹下,输入:

./configure

会出现如下选项:
在这里插入图片描述
还是选择gfortran,选择3,这样ARWpost的基本安装就完成了。

出现下述语句,表明ARWpost的基本安装就完成了:
在这里插入图片描述

2.3 修改Makefile文件

位置:\Build_WRF\ARWpost\src\Makefile

建议Linux不熟练的朋友直接去文件夹下面修改就行了,找个记事本打开
第19行:-L ( N E T C D F ) / l i b − I (NETCDF)/lib -I (NETCDF)/libI(NETCDF)/include -lnetcdf
修改为:-L ( N E T C D F ) / l i b − I (NETCDF)/lib -I (NETCDF)/libI(NETCDF)/include -lnetcdff -lnetcdf
保存并退出。
在这里插入图片描述

2.4 修改configure.arwp文件

位置:\Build_WRF\ARWpost\configure.arwp

建议Linux不熟练的朋友直接去文件夹下面修改就行了,找个记事本打开
第37行:CFLAGS = -m64
修改为:CFLAGS = -fPIC -m64

第38行:CPP = /lib/cpp -C -P -traditional
修改为:CPP = /lib/cpp -P -traditional

保存并退出
在这里插入图片描述

2.5 生成可执行文件EXE

文件修改结束以后,在ARWpost文件夹下输入:

cd /home/wanzhou/wrf/ARWpost
./compile

继续输入:

ls -ls *.exe

发现可执行文件ARWpost.exe。

这样,ARWpost就真正安装完成了

另:报错1-Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(4)/REAL(4)).

报错过程及解决方案可参见-Cannot compile ARWpost (successful configuration, but compilation has errors and no ARWpost.exe file is created)
在这里插入图片描述

终端报错界面如下:
在这里插入图片描述
解决方案: 修改文件configure.arwp,添加-fallow-argument-mismatch选项,如下:

FFLAGS          =       -ffree-form -O -fno-second-underscore -fconvert=big-endian -frecord-marker=4 -fallow-argument-mismatch

修改界面如下:
在这里插入图片描述
修改完成后,重新编译,终端界面如下:
在这里插入图片描述
但后续仍然报错,如下:f951: Fatal Error: Reading module ‘input_module.mod’ at line 1663 column 56: Unexpected EOF
在这里插入图片描述

另:报错2-f951: Fatal Error: Reading module ‘input_module.mod’ at line 1663 column 56: Unexpected EOF

终端报错界面如下:
在这里插入图片描述

另:报错3-Fatal Error: Cannot open module file ‘output_module.mod’ for reading at (1): No such file or directory

详细报错可参见-Compilation error ARWpost: no such file or directory error

终端报错界面如下:
在这里插入图片描述
解决方案: 解决 /usr/bin/ld:cannot find xxx 问题

另:报错4-Error: Invalid character in name at (1) module_get_file_names.f:2.3:

详细报错过程及解决方案参见-ARWpost编译错误,compile失败。

解决方案: 修改文件configure.arwp,添加-cpp选项,如下:
在这里插入图片描述

2.6 修改namelist.ARWpost

位置:\Build_WRF\ARWpost\namelist.ARWpost

打开文件以后,复制以下内容进行全覆盖:

&datetime
 start_date = '2021-10-15_00:00:00',
 end_date   = '2021-10-17_18:00:00',
 interval_seconds = 3600,
 tacc = 0,
 debug_level = 0,
/

&io
 input_root_name = '/home/请在这里输入自己的文件夹名/Build_WRF/WRF/test/em_real/wrfout_d01_2021-10-15_00:00:00'
 output_root_name = '/home/请在这里输入自己的文件夹名/Build_WRF/test_20211015'
 plot = 'all_list'
 fields = 'height,geopt,theta,tc,tk,td,td2,rh,rh2,umet,vmet,pressure,u10m,v10m,wdir,wspd,wd10,ws10,slp,mcape,mcin,lcl,lfc,cape,cin,dbz,max_dbz,clfr'
 output_type = 'grads' 
 mercator_defs = .true.
/
 split_output = .true.
 frames_per_outfile = 2


 plot = 'all'
 plot = 'list' 
 plot = 'all_list'
! Below is a list of all available diagnostics
 fields = 'height,geopt,theta,tc,tk,td,td2,rh,rh2,umet,vmet,pressure,u10m,v10m,wdir,wspd,wd10,ws10,slp,mcape,mcin,lcl,lfc,cape,cin,dbz,max_dbz,clfr'
 

&interp
 interp_method = 1,
 interp_levels = 1000.,975.,950.,925.,900.,875.,850.,825.,800.,750.,700.,650.,600.,550.,500.,450.,400.,350.,300.,250.,200.,150.,100.,
/
extrapolate = .true.

 interp_method = 0,     ! 0 is model levels, -1 is nice height levels, 1 is user specified pressure/height

 interp_levels = 1000.,975.,950.,925.,900.,875.,850.,825.,800.,750.,700.,650.,600.,550.,500.,450.,400.,350.,300.,250.,200.,150.,100.,
 interp_levels = 0.25, 0.50, 0.75, 1.00, 2.00, 3.00, 4.00, 5.00, 6.00, 7.00, 8.00, 9.00, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0,

里面有两处需要修改文件夹名的地方。

参考

1、CSDN博客-小白跑WRF第六天,安装ARWpost

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2166593.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算物理精解【3】- FORTRAN计算

文章目录 概述hello,world环境接收输入与输出 读取csv文件if and select case循环formatread,write formatread,write读写文件录入与读取数据文件定位csv 数组一维数组最小二乘法下标隐式循环 关系代数基本运算笛卡尔积投影选择 过程参数select case 和 过程module快排函数自定…

深度学习自编码器 - 分布式表示篇

序言 深度学习作为人工智能领域的重要分支,其核心在于表示学习( Representation Learning \text{Representation Learning} Representation Learning),尤其是分布式表示( Distributed Representation \text{Distribut…

【JUC并发编程系列】深入理解Java并发机制:高效并发背后的守护者(八、线程池的秘密)

文章目录 【JUC并发编程系列】深入理解Java并发机制:高效并发背后的守护者(八、线程池的秘密)1. 线程池基础知识1.1 什么是线程池1.2 为什么要使用线程池1.3 线程池使用场景1.4 线程池有哪些作用 2. 线程池基本用法2.1 线程池的创建方式2.2 线程池底层是如何实现复用…

前端vuex

需要共享的数据适合存储到vuex中 state基本使用 如果开启strict严格模式,直接修改上图的age会报错提示。不能在组件中直接修改state

“永辉优品”会是中国零售的答案吗?

投资者这么快就“看懂”名创优品的豪赌了? 9月25日,永辉超市继续一字涨停,而令人意外的是,名创优品也反弹近8%。 随着名创优品于9月23日晚间在港交所公告,以62.7亿人民币收购永辉超市29.4%的股权,两家公司…

数据科学的核心工具箱:全面解析pandas、matplotlib.pyplot与scipy.stats在复杂数据分析流程中的应用

在当今数据驱动的世界中,Python已成为数据分析和科学计算的首选语言。 而 pandas 、 matplotlib.pyplot 和 scipy.stats 这三个库则是数据科学家和分析师武器库中 的三把利剑。 1. pandas 数据处理的瑞士军刀 pandas 库是 Python数据分析 的基石,它…

Distilabel合成数据生成框架简明教程

Distilabel 是一个用于合成数据和 AI 反馈的框架,适用于需要基于经过验证的研究论文的快速、可靠和可扩展的管道的工程师。 NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 -…

SpringCloud~

帮你轻松入门SpringCloud~ 1 微服务概述 1.1什么是微服务 如idea中使用maven建立的一个个moudle,它具体是使用SpringBoot开发的一个小模块,专业的事交给专业的模块来做,每个模块完成一个具体的任务或功能。 1.2 什么是微服务架构 它将单一应用…

MyBatis 动态 SQL 使用指南

MyBatis 是一个流行的持久层框架,它通过 XML 或注解将接口方法与 SQL 映射在一起。动态 SQL 是 MyBatis 的一大特性,它使得构建灵活的查询变得简单。本文将通过一个 User 表的示例,介绍 MyBatis 中常用的动态 SQL 方法。 1. 什么是动态 SQL&…

飞驰云联亮相电子半导体数智化年会 获”数据交换领域最佳厂商”

2024年9月20日,“2024第二届电子半导体/智能制造数智化年会暨品牌出海论坛”于上海隆重开幕,Ftrans飞驰云联作为国内领先的数据安全交换厂商,应邀携半导体全场景产品和解决方案亮相此次峰会。会上进行了“智象奖”评选,Ftrans飞驰…

sql中的regexp与like区别

sql中的regexp与like区别 1、REGEXP2、LIKE3、区别与选择 💖The Begin💖点点关注,收藏不迷路💖 1、REGEXP 用途:高级字符串匹配,使用正则表达式。特点:灵活性强,能进行复杂模式匹配…

Java项目实战II基于Java+Spring Boot+MySQL的汽车销售网站(文档+源码+数据库)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 在数字化时…

【iOS】引用计数(一)

【iOS】引用计数 文章目录 【iOS】引用计数前言ARC与MRC什么是引用计数的机制内存管理的思考方式自己生成的对象非自己生成的对象不再需要自己持有就释放无法释放非自己持有的对象 autorelease小结 前言 笔者最近开始学习了一下有关于引用计数的内容,写这篇博客来简…

自动驾驶规划算法(一):A*算法原理和代码(c++与python)

1. A*算法简介 A*算法(A-star algorithm)诞生于1968年,由彼得哈特(Peter Hart)、尼尔森尼尔森(Nils Nilsson)和伯特拉波特(Bertram Raphael)三位计算机科学家提出。它的…

[机器学习]04-逻辑回归(python)-03-API与癌症分类案例讲解

逻辑回归(Logistic Regression) 的一API 介绍 关于如何配置模型中的优化器、正则化和惩罚项。 1. 逻辑回归 API 在 Scikit-learn 中,逻辑回归可以通过如下方式定义: from sklearn.linear_model import LogisticRegression ​ …

C嘎嘎入门篇:类和对象(1)

前言: 小编在之前讲述了C的部分入门基础,读者朋友一定要掌握好那些,因为C的学习和C有点不同,C的知识都是比较连贯的,所以我们学好了前面才可以学习后面的内容,本篇文章小编将会讲述C真正的入门篇&#xff1…

爬虫逆向学习(九):记录一个集cookie、请求参数、请求体、响应文本加密的站点反爬

此分享只用于学习用途,不作商业用途,若有冒犯,请联系处理 反爬前置信息 站点:aHR0cHM6Ly96d2Z3LmNxLmdvdi5jbi9pY2l0eS9pY2l0eS9lbmdpbmVlcmluZy9uYXZpZ2F0aW9u 接口:/icity/api-v2/cq.app.icity.engineering.Engine…

vue3组件通信(组合式API)

vue3组件通信(组合式API) vue3组件通信,采用组合式API。选项式API,参看官网 Vue3组件通信和Vue2的区别: 移出事件总线,使用mitt代替。 vuex换成了pinia。把.sync优化到了v-model里面了。把$listeners所…

fo-dicom开源库,深入理解项目的模块化设计

前言 DICOM(Digital Imaging and Communications in Medicine)是医学图像和相关信息的国际标准,广泛应用于医学影像领域。FO-DICOM是一个开源的DICOM库,提供了丰富的功能和模块,用于处理DICOM数据、实现DICOM网络通信…

16.面试算法-树的层次遍历与相关面试题

1. 树的层次遍历与相关面试题 1.1 层次遍历简介 广度优先在面试里出现的频率非常高,但是相对简单,题目也比较少,常见的题目也就七八道。 广度优先又叫层次遍历,基本过程如下: 层次遍历就是从根节点开始&#xff0c…