WRF rsl.out文件研究
本文翻译自https://www2.mmm.ucar.edu/wrf/users/FAQ_files/FAQ_wrf_runtime.html
Q1 我应该使用几个处理器来运行wrf.exe?
A1 经验法则是,使用的处理器数量最少应基于最大大小的那个domain,而使用的处理器数量最多应基于最小的domain。例如,假设您有2个domain,并且domain 01是200x200 grid spaces,而domain 02是300x300 grid spaces。您可以用来大致估计大量处理器的数学运算的公式:
最大处理器数量:
(200/25)*(200/25)= 64个处理器
最小处理器数量:
(300/100)*( 300/100)= 9个处理器
这意味着您应该在9到64个处理器之间使用此处理器。
使用过多处理器的问题在于,当您使用多个处理器时,将根据所使用的处理器数量将域划分为正方形。但是,这些正方形中的每个正方形也具有halo 区(或从每个边界向内的一定数量的网格空间),可为靠近边界的区域获得相邻的计算结果。如果使用过多的处理器,则每个平方会变得小于光环的大小,这会引起问题。
Q2 如果我想查看特定程序的执行方式,是否可以在该程序中添加“ stop”语句?
A2 终止模型的正确方法是使用对wrf_error_fatal的 WRF调用。如果将其“ grep”到目录WRFV3 / phys中,则将看到其用法。这应该杀死所有处理器上的模型。
Q3 rsl *文件中的ims,jms,kms,ips,jps,kps等变量是什么意思?
NDOWN_EM V4.1.4 PREPROCESSOR
*************************************
Parent domain
ids,ide,jds,jde 1 751 1 721
ims,ime,jms,jme 577 632 678 726
ips,ipe,jps,jpe 584 625 685 721
*************************************
A3 im, jm是用于包含 communication domain(halo 区)的分解domain -"m" 表示每个分布式内存处理器上的内存大小。ip, jp是分解domain的物理尺寸,不包括halo区。"p" 仅是每个分布式存储处理器上的计算domain的大小。
Q4 在使用嵌套网格运行“ hold-suarez”理想化案例时,我发现初始化域2时,domain 1的网格(XLONG和XLAT)在domain2所在的区域中发生了变化。为什么会这样?
A4 造成这种情况的部分原因可能是,当您运行理想化案例时,没有嵌套的输入。因此,模型会插值从粗略域到嵌套的所有内容,包括纬度和经度。如果将feedback设置为1,则将导致嵌套数据覆盖嵌套区域中的粗略域,包括XLAT和XLONG。这是必要的,因为从嵌套中计算出的值正在替换粗糙的域值(例如,由于辐射)。除非插值真的很差,否则奇数比应该做得很好,因为在嵌套域和粗糙域上存在重叠的网格。对于均匀比率,由于没有同位网格,因此在打开反馈时将进行一些平均。
Q5 运行WRF的最低合理eta层次是多少?
A5 通常,第二完整层次应设置为0.993-0.996。
Q6 如何使用辅助文件输出除wrfout中的变量以外的变量?
A6 您将需要在Registry.EM_COMMON中添加这些变量,然后通过添加以下示例选项来重新编译和修改namelist.input:
auxhistN_outname =“ rainfall_d ”
auxhistN_interval = 10,
frames_per_auxhistN =
1000,1000 io_form_auxhistN = 2
注意:N为您的额外输出变量的流号。
Q7 在WRF中设置'quilting'的目的是什么?
A7 在没有quilting的情况下,使用常规的netCDF,头处理器将收集并写出数据。使用quilting时,将保留N个处理器以进行数据收集(在头处理器写入时)。对于大量网格点,这可以缩短墙钟时间。
Q8 段错误的最常见原因是什么?
A8 段错误错误通常意味着存在内存问题。尝试键入以下命令之一以查看是否有帮助:
- setenv MP_STACK_SIZE 64000000(OMP_STACKSIZE)
2.如果使用的是csh或tcsh,请尝试以下操作:limit stacksize unlimited
3.如果使用的是sh或bash,请使用以下命令:ulimit -s unlimited
这可能无法解决您的问题,但是默认堆栈大小通常很小,并且可能由于内存不足而导致段错误。
如果模型在运行开始时就出现故障,则通常可能意味着输入数据有问题。确保检查您的met_em *文件以查看是否在各种变量中发现了奇怪的地方。
Q9 时间序列变量的输出格式是什么?
A9 时间序列的默认输出格式是一个简单的文本文件,每个域一个站点。
Q10 由于非常大的垂直速度,我遇到了CFL错误。如何克服这些错误?
A10 首先尝试减少时间步长。有时这可行,但并非总是如此。您可以尝试的另一件事是在运行real之前,在namelist的&domains部分中添加smooth_cg_topo = .true.。如果CFL沿边界区域发生,则可以平滑模型地形以匹配行驶数据随附的低分辨率地形。如果CFL发生在复杂的地形附近,则可以尝试将epssm = 0.2(最大为0.5)设置为无效。
Q11 运行real.exe时出现以下错误消息:
frame / module_domain.f:无法分配
grid%xkmhd(sm31:em31,sm32:em32,sm33:em33)
可能是什么原因?
A11 1)您的计算机没有足够的内存来在您的域上运行real.exe
2)如果您的计算机具有足够的内存和多个CPU,但是单个CPU无法访问所有内存,则需要使用dmpar(MPI)构建WRF选项并在多个处理器上运行它(mpirun -np N real.exe,其中N > 1)以利用更多的可用内存(请参阅问题1)。
Q12 我已经正确安装了共享库,但是计算机在运行时找不到它们。如何在运行时找到共享库?
A12 Unix操作系统通常查看环境变量LD_LIBRARY_PATH来搜索库路径中的目录。尝试发出这些命令:
echo $LD_LIBRARY_PATH
如果路径不包括在/ usr / local / lib目录,然后(在KSH,例如),键入:
export LD_LIBRARY_PATH = “$ LD_LIBRARY_PATH:在/ usr / local / lib目录”
你可以把这个在您的登录脚本中,这样您就不必每次都发出此命令。
Q13 如何在特定物理学中输出局部变量?
A13 输出例程将看不到局部变量。您将需要在wrfout文件中看到的变量声明为注册表中的状态变量。然后,这些变量将可用于resolve_em.F,它调用microphysics_driver。您将需要将新变量传递给驱动程序,然后传递给驱动程序中调用的物理方案。这些状态变量应声明为“ OUT”变量,并按补丁尺寸(ime,jme)进行标注。然后,您需要使用需要输出的字段来填充这些数组。看一下我们的WRF教程中的演讲,您可能会发现一些更有用的信息:
Registry and Examples
Q14 尝试运行理想化案例时,如何通过namelist关闭科里奥利力?
A14 不幸的是,namelist没有为此设置的选项。但是,您可以在module_initialize_(ideal_case).F文件中设置grid%f = 0(使用该文件作为您选择的理想情况。然后保存该文件并重新编译代码。您将不需要 'clean -a' 或需要在重新编译之前重新configure。只需简单地重新编译即可,并且编译应该很快,因为它只是在构建此例程。
Q15 我试图以GRIB2格式写入wrfout文件,但glibc检测到损坏的内存错误。我该如何解决?
A15 此选项仅适用于32位系统。它在某些64位系统上失败,不幸的是,这尚未开发。
Q16 我的湿度变量为负。我怎样才能解决这个问题?
A16 您可以使用namelist选项mp_zero_out删除负的潮湿变量。众所周知,负水分不会影响模型集成。使用moist_adv_opt = 1选项将使湿度变量保持正值。
Q17 为什么在模型正常运行时没有任何错误没有生成我的wrfout和/或wrfrst文件?
A17 这可能是因为您的wrfout / wrfrst文件太大(即大于2GB)。在构建WRF之前,使用以下命令来启用netCDF大文件支持(示例在csh中):
setenv WRFIO_NCD_LARGE_FILE_SUPPORT 1
Q18 在我的namelist中,用于打印obs信息的选项设置为true,但是当我检查rsl文件时,找不到关于观察性推挤的任何信息。为什么是这样?
A18 尝试在namelist的&time_control部分中添加以下内容:
auxinput11_interval_s =
180、180、180、180、180、180 auxinput11_end_h = 6,6,6,6,6
并更改适合您情况的值。这里的间隔应小于obs文件中的数据间隔。
Q19 如何更改自动分解,但使用自己的选项进行domain分解?
A19 该namelist选项nproc_x和nproc_y可以用来这样做,如果你有dmpar编译。如果使用OpenMP编译,则可以使用numtiles选项。
Q20 当我运行real.exe时,我在grid%tmn中遇到了错误,但是可以正常运行。应该忽略吗?
A20 检查您的输出,看看tmn是否用合理的值填充。这可能是由于tmn(在具有低分辨率[1度]数据的土工格栅中计算出的)与来自高分辨率数据(例如30秒)的地面掩模不匹配而触发的。
Q21 如何定义小于1秒的时间步长?
A21 您将需要在&domains部分中使用以下所有三个namelist选项:
time_step = 0,
time_step_fract_num = 1,
time_step_fract_den = 3,
以上示例将时间步长设置为1/3秒。
Q22 我正在使用GFS输入数据,并收到以下错误:
-----------------错误-------------------
>namelist:num_metgrid_soil_levels = 4
>输入文件:NUM_METGRID_SOIL_LEVELS = 0(来自met_em文件)。
> --------------致命调用---------------
>从文件中致命调用: LINE:695
>名称清单与全局属性NUM_METGRID_SOIL_LEVELS不匹配
> -------------------------------------- -----
是什么原因引起的?
A22 如果您在WRFV3.6.1或更早版本中使用GFS初始条件,并且开始日期为2015年1月7日或更晚,那么您将需要使用新的Vtable,因为GFS从1/7/15开始更新了其所有数据。您可以在此处找到更新的Vtable 。有关GFS数据更新的其他信息,请单击此处。
您将需要将此Vtable复制到WPS / ungrib / Variable_Tables /目录中,并将其命名为Vtable.GFS(这将覆盖以前的GFS Vtable)。之后,您需要返回WPS /目录并重新运行ungrib.exe。在运行ungrib.exe之前,您需要链接到新的Vtable:
ln -sf ungrib / Variable_Tables / Vtable.GFS Vtable
一旦确定WPS /目录中的“ Vtable”文件是* NEW * Vtable.GFS,就可以运行ungrib.exe,然后运行metgrid.exe,然后转到WRFV3 /目录,链接到您的met_em *文件并运行real.exe。您可以通过发出以下命令来验证met_em *文件中的土壤含量是否为4:
ncdump -h met_em.d01 *
其中“ *”仅代表您的met_em文件之一。
您应该看到类别(朝下)NUM_METGRID_SOIL_LEVELS = 4 。
Q23 为什么即使启用正定对流方案,QVAPOR仍为负?
A23 负值很小,四舍五入。正定方案无法摆脱如此小的值。
Q24 是什么引起以下错误:
ERROR: troubles, could not find trapping x locations
A24 当您的p_top_requested太高(即,大气层太低)时,通常会看到这种情况。尝试将其设置回默认值(= 5000),看看是否有帮助。如果您的域设置不佳,有时会经常看到此错误。有关设置您的域(和嵌套域)的
最佳实践,请参阅我们的WRF教程:WRF中的最佳实践嵌套中的这些讲座。
Q25 是什么引起以下错误:
ERROR: dz above fixed eta levels is too large
A25 当您将p_top_requested设置得太低(即,大气层太高)时,通常会看到这种情况。尝试将其设置回默认值(= 5000),看看是否有帮助。
Q26 我正在尝试使用与原始运行不同的历史记录间隔来运行重新启动,但是在旧的间隔时间我仍会得到输出。我该如何纠正?
A26 在namelist的&time_control部分中,添加以下行:
override_restart_timers = .true。
Q27 如何估算运行时间?
A27 在某些计算机上,您始终可以从输出文件中找到作业所需的CPU和时钟时间。在其他机器(例如Linux机器)上,您可以通过查看生成第一个和最后一个wrfout文件的时间来估计墙钟时间。两者之间的差异是对工作所需的墙钟时间的粗略估计。
[Wrf-users] Max number of CPUs for WRF
http://mailman.ucar.edu/pipermail/wrf-users/2012/002670.html
WRF rsl.out文件研究的更多相关文章
- JIRA 破解文件研究(Win 7环境)
最近再次回来研究 Win 7 下的 JIRA,按网上的很多方法去尝试,竟然无法正常安装! 经过几次的弯路尝试,终究还是成功了. 嗯,有必要总结一下: 发觉网上的很多破解方法都太老!不管是什么原因,在6 ...
- JVM虚拟机Class类文件研究分析
前言 为了研究Class文件,先编写一个最简单的代码: package com.courage; public class T0100_ByteCode01 { } 之所以说最简单,是因为这个类里面任 ...
- 关于makefile文件研究
makefile文件采用依赖倒推的模式进行编译. 主要由以下几步构成: 1 申明 2 default 默认生成的对象 3 TARGET 链接过程 4 cpp 编译过程 5 生成一个version.h文 ...
- js上传文件研究
https://github.com/shengulong/javascript-file-upload
- iOS 关于文件的操作
最近做东西,遇到了使用文件方面的问题,花了点时间把文件研究了一下! 一 关于文件路径的生成 我用的方法是: -(NSString*)dataFilePath { NSArray * paths = ...
- WRF 安装备忘
▶ n 年前在笔记本上安装 WRF 的一个过程 ● 安装 cpp,csh,m4,quota,samba # apt-get install cpp csh m4 quota samba ● 网上教程有 ...
- 数据处理之PostgreSQL过程语言学习
前段时间,公司更换新的PostgreSQL数据集市的系统过程中,自己下载了postgresqlAPI的pdf文件研究了一下PostgreSQL数据集市.发现使用PostgreSQL过程语言可以大大加快 ...
- Xcode的command+shift+o是一个不错的工具
一,经历 1.在向UITextField中输入图片的时候,可以使用 NSAttributedString 添加,但是很难找到能够返回NSAttributedString对象的方法. 2.通过comma ...
- JQuery zoom插件学习
jquery zoom是一款图片放大插件,经常用在商城商品页面里. 使用JQuery zoom插件,除了需要引入JQuery.js外,还要引入JQuery.zoom.js文件及jqzoom.css文件 ...
- (转)dedecms代码详解 很全面
dedecms代码研究(1)开篇dedecms 相信大家一定都知道这个cms 系统,功能比较强大,有比较完善的内容发布,还有内容静态化系统,还有就是它有自己独特的标签系统和模板系统.而模板系统也是其他 ...
随机推荐
- string str = string.Empty也会出错?
如题 为什么会出现这种情况?大佬解释一下.
- 奇迹网站编辑保存的时候提示Access is denied
出现上面这个情况 只有在IIS模式下运行奇迹MU网站系统才会出现这个问题. 解决办法: 给网站目录赋予everyone权限 1.在网站目录右键属性 2在文件夹属性界面,点击"安全" ...
- java学习日记20230301-API文档
JAVA API java application programming interinterface 应用程序编程接口,是java提供的基本编程接口 在线文档:https://www.matoo ...
- 学编程很盲目?不会代码?你可以来瞧瞧这本。是一本难得的Python 入门手册。
Python语言及其应用,pdf高清免费下载地址 获取码:d414 内容简介 · · · · · · 本书介绍Python 语言的基础知识及其在各个领域的具体应用,基于最新版本3.x.书中首先介绍了 ...
- 档案系统区块链集成 leveldb.net集成
leveldb.net工作原理:leveldb为键值对数据库,具有增加,删除,查询功能,利用加密链式结构存储和查询数据. 区块(block):在区块链技术中,数据以电子记录的形式被永久储存下来,存放这 ...
- C语言联合体(共用体)使用方法及大小计算
作者的话 本文介绍联合体的定义.如何使用联合体,包括联合体的声明.联合体变量创建.联合体内存使用,以及联合体大小的计算,最后附上用联合体判断当前环境是大端还是小端的方法. 联合体的定义 联合体,又叫共 ...
- 查询redis路径,清除redis缓存
查询redis路径 1.执行ps -ef | grep redis 命令,结果如下(记住PID) 2.执行ps -u 系统用户名,进一步确定进程id, 我这里的系统用户名是root,执行ps -u r ...
- rabbitmq的Exchange类型案例
一.direct(将消息转发到指定Routing key的Queue上,Routing key的解析规则为精确匹配) publish代码 consumer代码,绑定了另一个队列 优先启动publish ...
- HIVE- concat方法
(1)concat_ws() select user ,concat_ws(';' , collect_set(cast(amt as string))) as amt from table grou ...
- 【电路理论】Flyback dc-dc convertor 反激式dc-dc变换器
最近在学dc-dc电源时,遇到Flyback电路的,感觉云里雾里,不太明白,四处翻阅,方才有所理解,记录一下 一般Flyback convertor的拓扑如下 认为,当VT导通时,原边变压器储能,由于 ...