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 系统,功能比较强大,有比较完善的内容发布,还有内容静态化系统,还有就是它有自己独特的标签系统和模板系统.而模板系统也是其他 ...
随机推荐
- python获取当前季度或上一季度的起止日期
import datetime import calendar def get_quarter_date(quarter='current'): """ 获取当前季度或上 ...
- vue2的反向代理
// 在vue.config.js中的配置项配置 devServer: { proxy: { // 当我们的本地的请求 有/api的时候,就会代理我们的请求地址向另外一个服务器发出请求 '/api': ...
- IsNotEmpty和isNotBlank的区别
isNotEmpty和isNotBlank都是判断字符串非空首先查看isNotEmpty( )isNotEmpty判断是否为空(null或size=0),不为空就返回true StringUtils. ...
- MeterSphere中dubbo接口测试分享
一.域名解释 1.1.接口文档:UserAccountAssetServiceI.getUserAccountVirtualAsset UserAccountAssetServiceI(接口名,需要用 ...
- 其他6-break,continue,exit,return区别
break.continue.exit.return的区别 break 跳出整个循环语句 continue 跳过本次循环,进入下一次循环语句 exit n 退出当前shell,并返回状态值 retur ...
- nginx重启报错 nginx: [error] open() “/run/nginx.pid“ failed (2: No such file or directory)
原文: https://blog.csdn.net/CRMEB/article/details/120779362 nginx [error] open() "/usr/local/var/ ...
- kafka在阿里云上的配置
只需要改server.properties listeners=PLAINTEXT:// 内网的ip地址和9092端口advertised.listeners=PLAINTEXT://外网的ip的地 ...
- win10企业版在线转换成win10专业版
1.下载windows附件包,解压到C盘根目录 https://pan.baidu.com/s/19Zyrav9sriS9nFyJsM8ydQ 提取码:gsp6 2.运行命令 2.1.以管理员身份运行 ...
- WARN hdfs.DataStreamer: Caught exception
在向hdfs上传文件的时候,报了这么一个错: Exception in thread "main" java.lang.RuntimeException: org.apache.h ...
- 「postOI」Cross Swapping
题意 给出一个 \(n\times n\) 的矩阵 \(A\),你可以进行下述操作任意多次:指定整数 \(k\)(\(1\le k\le n\)),使 \(A_{ni}\) 与 \(A_{in}\) ...