1. linux问题
1.1 miniconda问题
(1)许可证问题
问题:Connecting to repo.anaconda.com (repo.anaconda.com)|104.16.32.241|:443... connected. ERROR: cannot verify repo.anaconda.com's certificate, issued by ‘CN=E1,O=Let's Encrypt,C=US’:
解决:wget --no-check-certificate https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
1.2 内存问题
(1)并行运行多个wrf的时候,最大32核心却只能运行18核心,并且出现进程被Killed
解决:①扩大linux的物理内存
②当物理内存不能增加时,扩大linux中的swap交换内存,可以参考本人这篇文章https://blog.youkuaiyun.com/m0_60013472/article/details/139262302
2.WRF安装问题
2.1WPS安装问题
(1)找不到WRF
问题:No compiled WRF code found
解决:①先检查WRF是否安装好
②输入export WRF_DIR=../WRF/(WRF安装路径)
(2)相关依赖包有问题
问题:没有出现ungrib.exe并且报错fatal error: jasper/jasper.h: No such file or directory
解决:安装libjasper-dev库
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main" #更新源
sudo apt install libjasper-dev #安装库
2.1 WRF安装问题
(1)已经configure成功,在./compile em_real时却提示没有configure
问题:You must run the 'configure' script before running the 'compile' script!
Exiting...
解决:可能是编译器问题,WRF默认是gcc编译器,如果是intel编译器需要改代码,在./configure成功后输入以下命令:
vi configure.wrf,找到以下内容
DM_FC = mpif90 -f90=&(SFC)
DM_CC = mpicc -cc=&(SCC)
修改为以下代码,再./compile em_real
DM_FC = mpiifort
DM_CC = mpiicc
3.WRF运行问题
3.1WPS运行问题
(1)在运行metgrid.exe报错:The mandatory field TT was not found in any input data
解决:检查ungrid运行是否少输出时间,其实就是namelist.wps时间设置出错
3.2 WRF运行问题
3.2.1 ./real问题
(1)运行real报错:mismatch_landmask_ivgtyp
解决:静态的物理变量没有更新,将namelist.input中的surface_input_source = 3 改为1 ,即可运行,如果没有,手动添加
surface_input_source = 1,
选1是指土地利用类型和土壤类型数据的来源格式是WPS/geogrid,但在实际土地利用类型中会重新计算得到;
选2是其他模式产生的grib格式数据;
选3完全来自前处理WPS/geogrid。
(2)地理数据替换问题
问题: error in the grid%tsk,识别地理数据错误,但是WPS中顺利生成met文件
i,j= 1 1
grid%landmask= 0.00000000
grid%tsk, grid%sst, grid%tmn= 88.4474258 0.00000000 88.4474258
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE: <stdin> LINE: 3012
grid%tsk unreasonable
解决:仔细检查自己地理数据的index部分,确保经纬度(研究范围左下角,来源于gis)、分辨率和相关土地利用数字正确,采用gdal转化的数据设置wordsize=1
归根还是geogrid.exe没有生成好的结果,可以ncview查看
(3)不同网格的地理数据类型冲突
----------------- ERROR -------------------
namelist : NUM_LAND_CAT = 21
input files : NUM_LAND_CAT = 33 (from geogrid selections).
d03 2022-08-25_00:00:00 ---- ERROR: Mismatch between namelist and wrf input files for dimension NUM_LAND_CAT
NOTE: 1 namelist vs input data inconsistencies found.
-------------- FATAL CALLED ---------------
解决:检查WPS中的namelist.wps中的geog_data_res的路径调用,default默认调用modis,usgs_lake默认调用usgs,要保证所有的网格区域使用统一的地理数据类型,要么都是modis,要么都是usgs;或者修改相应地理数据的index的最大土地利用
(4)地理数据层数冲突
d01 2022-08-08_00:00:00 NetCDF error in ext_ncd_get_dom_ti.code INTEGER, line 83 Element JULDAY
d01 2022-08-08_00:00:00 mminlu = 'USGS'
d01 2022-08-08_00:00:00 input_wrf.F: SIZE MISMATCH: namelist num_metgrid_levels = 32
d01 2022-08-08_00:00:00 input_wrf.F: SIZE MISMATCH: input file BOTTOM-TOP_GRID_DIMENSION = 34
d01 2022-08-08_00:00:00 ---- ERROR: Mismatch between namelist and input file dimensions
NOTE: 1 namelist vs input data inconsistencies found.
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE: <stdin> LINE: 1301
NOTE: Please check and reset these options
-------------------------------------------
解决:把namelist.input中的num_metgrid_levels 改成32或34,与输入的met文件的层数保持一致,同样的参数,运行不同的时间段,比如2016年和2022年,就可能出现这个问题
3.2.2 ./wrf.exe问题
(1) 运行wrf报错:WOULD GO OFF TOP: KF_ETA_PARA I,J,DPTHMX,DPMIN 12 9 NaN 5000.00000
解决:积分过程应该是出现离散了,sf_surface_physics 不能设置为0
(2)并行运算中断但是也没报错
可能原因:一个linux中打开了过多wrf运行,导致内存不足,每个linux最多运行2个wrf
输入以下代码查看是否会输出cfl错误,如果有,则需要把时间步长调小一点,比如4*网格大小
grep -rn "cfl" rsl.*
(3)提示太多土地类型
错误:ghg_input available only for these radiation schemes: CAM, RRTM, RRTMG, RRTMG_fast
FATAL CALLED FROM FILE: <stdin> LINE: 2419
Warning: too many input landuse types
问题检查:检查顺序为1-2-3
①查看是否为WRF4.5及以后版本,如果是,建议换成4.3及以下版本
②检查namelist.wps中多层嵌套是否采用同一套分类体系,比如要么都是usgs33类,要么都是modis21类,不能混用
③检查自己制作的地理数据的index文件,其中最大的层数是否设置错误
(4)并行运算核数过多
问题:生产了多个rsl文件,报错:wrf main: calling open_r_dataset for wrfinput NetCDF error: No such file or directory NetCDF error in wrf_io.F90, line 1077
解决:查看自己并行运算的核数是否超过了虚拟机支持的核数以及超过电脑所支持的核数(逻辑处理器数量),减少并行核数或扩大虚拟机的linux最大核数
(5)URBPARM参数输入格式问题
问题:
问题1:
#11 0x607f743eb247 in ???
#12 0x607f73d8fdd1 in ???
#13 0x607f72e1326e in ???
#14 0x607f72e125f4 in ???
#15 0x7d5ad8a29d8f in __libc_start_call_main
at ../sysdeps/nptl/libc_start_call_main.h:58
#16 0x7d5ad8a29e3f in __libc_start_main_impl
at ../csu/libc-start.c:392
#17 0x607f72e12634 in ???
#18 0xffffffffffffffff in ???
问题2:
At line 2398 of file module_sf_urban.f90
Fortran runtime error: Bad integer for item 1 in list input列表输入中有一个无效的整数
解决:检查URBPARM.TBL文件,是否存在格式问题,只能是整数,比如:SW_COND: Air conditioning switch, 1=ON,要么1要么0;以及所有数字行的结尾没有任何符号
(6)namelist.input缺少部分参数
问题:-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE: <stdin> LINE: 2573
NOTE: 1 namelist settings are wrong. Please check and reset these options
解决:在 &domains下添加以下三行,时间步长一般为第一层网格分辨率*6
time_step = 45,
time_step_fract_num = 0,
time_step_fract_den = 1,
(7)城市冠层高度高于第一个模型级别
FATAL CALLED FROM FILE:<stdin> LINE: 779
ZDC + Z0C + 2m is larger than the 1st WRF level - Stop in subroutine urban - change ZDC and Z0C
解决:修改namelist.input文件的 “eta_levels” 的参数,确保第一个模型层的高度低于建筑的高度。
4.地理数据制作问题
(1)在wps/geogrid/src中运行./a.out报错
问题:说明文件存在问题,首先检查文件传输过程是否损坏
line 35 of file asciitowps,f90(unit =10,file ='/home/workstation/WBP/WPSeogrid/src/test.txt')
gfortran runtime error: End of file
损坏的文件重新上传(本工作室的文件上传到centos时,选择tar.gz压缩包,并且拖拽复制进centos,如果报错点击重试)
5.后处理图像问题
(1)生成的图像与实际的遥感的地理位置不正确,发生偏移
解决:检查图像对应的嵌套域的地理数据,①检查index文件,看经纬度是否与该地理数据在GIS中的左下角经纬度相同;看分辨率是否与原导出的遥感数据相同②检查地理数据,看地理数据的坐标系是否为WGS-1984,不是就需要修正
(2)图像彩图处理问题
fatal:CvtStringToCmap:Unable to convert string "pureblack" to ColorMap
warning:Error retrieving resource vcLevelPalette from args - Ignoring Arg
解决:修改fres@cnLevelSpacingF = 1 ;-- contour level spacing,代表每个色块之间的值间隔,可以调大或调小以适应不同参数