분류 전체보기
- 등간격 Time Series 자동으로 채워 넣는 방법 2022.03.18
- wrfout 생성되지 않을 때 2022.03.17
- WRF OBS-nudging 문제 2022.03.17
- WRF Nest start locations do not match 2022.03.17
- VPRM Time mismatching 문제 2022.03.17
- wrfchemi Time mismatching 문제 2022.03.17
- WPS landmask 깍두기 문제 2022.03.17
- D02 에 emiss 가 없음 (해결) 2022.03.17
- Registry.EM_COMMON 2022.03.17
- WRF nudging 방법 2022.03.17
등간격 Time Series 자동으로 채워 넣는 방법
wrfout 생성되지 않을 때
Wrfchemi_ 가 해당날짜에 없을 수 있다.
WRF OBS-nudging 문제
해결
http://mailman.ucar.edu/pipermail/wrf-users/2011/002486.html
아래와 같이 만들어 주면,
Ob too early 라는 메세지는 사라진다. In rsl.out.0000
그러나, n = 21 unknown ob of type FM-88 SATOB 는 여전히 남는다. 여튼 결과는 ws10m 가 별 변화가 없다.
Sounds like you have 2 issues:
1. OBSGRID.EXE is not writing output at the times you want
2. WRF-Chem is bombing when nudging
I posted a bit on problem 1 - I was misinterpreting the DOCs (or the
DOCs are misleading, depending on your viewpoint). See
http://mailman.ucar.edu/pipermail/wrf-users/2011/002424.html.
Basically, set &share::interval_seconds to match your input GRIB data
interval (must match the interval you ran METGRID.EXE with). This is
21600 if your GRIB files come every 6 hours.
Then make sure your little_r format files contain data every
&record7::intf4d (from your email, it looks sorta like you want to nudge
every 3 hours). The main point is that OBSGRID.EXE will look for a new
file every intf4d seconds, and will not look in a file that's already
been opened (from a previous interval).
I'm nearly certain that you must combine both your surface and upper-air
data into the same file, but that's pretty easy - you can just "cat"
them together.
I suggest you fix problem 1 first, so you have non-empty OBS_DOMAIN1??
files for the in-between hours, before addressing the bombing of WRF.
Bart Brashers
From: wrf-users-bounces at ucar.edu [mailto:wrf-users-bounces at ucar.edu] On
Behalf Of Chris Klich
Sent: Sunday, October 30, 2011 12:31 PM
Subject: [Wrf-users] Help with Obs Nudging Crash
Hi all, I have recently been trying to use obs-nudging with my WRF run.
I am currently running WRF-Chem version 3.2.1 due to a long-term project
and unable to upgrade to 3.3.
I currently have both upper air and surface data in little-r format
(separate however). I convert these files into the proper naming format
for OBSGRID, run obsgrid and move the files to the /run directory,
concatenate all the OBS_DOMAIN files into OBS_DOMAIN101, and then run
real.exe and wrf.exe. However, when OBSGRID runs, the output files are
every 3 hours, while my met_em files and observation files are every 6.
These 3 hour intermediate times (3, 9, 15, 21) are empty when the
OBS_DOMAIN and plotobs and qc files are outputted, while the normal
intervals of 0, 6, 12, 18 are several megabytes. Even in this case, I
had tried concatenating all files to OBS_DOMAIN101 and running WRF.
However, it seems the entire run finishes only when I use just upper air
data specifically. When I run using just surface obs or concatenating
surface to upper air, the run crashes, and it seems at a very random
time. When using just surface it crashed after about 12:49 into the
run, while running with the concatenated upper air/surface, it crashed
after about 3 days, 12:49. I can't seem to figure out what is causing
this. The end of my rsl.error.0000 file looks like:
Timing for main (dt=135.00): time 2008-05-20_12:45:13 on domain 1:
1.08750 elapsed seconds.
Timing for main (dt=135.00): time 2008-05-20_12:47:28 on domain 1:
1.05240 elapsed seconds.
OBS NUDGING: Reading new obs for time window TBACK = 12.125 TFORWD =
13.458
for grid = 1
OBS NUDGING: 1 previously read obs are now too old for the current
window a
nd have been removed.
****** CALL IN4DOB AT KTAU = 326 AND XTIME = 767.48: NSTA =
43 ****
**
++++++CALL ERROB AT KTAU = 326 AND INEST = 1: NSTA = 43 ++++++
OBS NUDGING FOR IN,J,KTAU,XTIME,IVAR,IPL: 1 10 326 767.48 3 3
rindx= 5.
3
OBS NUDGING FOR IN,J,KTAU,XTIME,IVAR,IPL: 1 10 326 767.48 4 4
rindx= 5.
3
OBS NUDGING FOR IN,J,KTAU,XTIME,IVAR,IPL: 1 10 326 767.48 1 1
rindx= 5.
3
OBS NUDGING FOR IN,J,KTAU,XTIME,IVAR,IPL: 1 10 326 767.48 2 2
rindx= 5.
3
Timing for main (dt=135.00): time 2008-05-20_12:49:43 on domain 1:
1.07960 elapsed seconds.
forrtl: error (78): process killed (SIGTERM)
Image PC Routine Line
Source
libc.so.6 00000033C34DD1E3 Unknown Unknown
Unknown
libopen-pal.so.0 00002B47160653DD Unknown Unknown
Unknown
libopen-pal.so.0 00002B471606213D Unknown Unknown
Unknown
libopen-pal.so.0 00002B471605555C Unknown Unknown
Unknown
libmpi.so.0 00002B4715B43AA8 Unknown Unknown
Unknown
libmpi.so.0 00002B4715B721AC Unknown Unknown
Unknown
wrf.exe 0000000001C64282 Unknown Unknown
Unknown
wrf.exe 0000000000F373F4 Unknown Unknown
Unknown
wrf.exe 00000000014F73B5 Unknown Unknown
Unknown
wrf.exe 0000000000E8EC4F Unknown Unknown
Unknown
wrf.exe 0000000000D8DB6D Unknown Unknown
Unknown
wrf.exe 000000000052ECDF Unknown Unknown
Unknown
wrf.exe 00000000004BC733 Unknown Unknown
Unknown
wrf.exe 00000000004BC6E7 Unknown Unknown
Unknown
wrf.exe 00000000004BC67C Unknown Unknown
Unknown
libc.so.6 00000033C341EC9D Unknown Unknown
Unknown
wrf.exe 00000000004BC579 Unknown Unknown
Unknown
In addition, when I use upper air data, I get thousands and thousands of
lines in my rsl.error.0000 file that read something like:
n= 9061 unknown ob of type FM-88 SATOB
Is this normal or is there an option I am missing where it will read
these correctly?
Any help for either of these problems would be greatly appreciated as I
need to figure this out ASAP.
I've also attached both namelist.input and namelist.oa for any help that
may provide.
Thank you.
--
Christopher Klich
Graduate Student
Florida State University
(908) 208-9743
Pasted from <http://mailman.ucar.edu/pipermail/wrf-users/2011/002486.html>
WRF Nest start locations do not match
2021년 1월 18일 월요일
오후 4:08
d01 2010-05-16_00:00:00 med_initialdata_input: calling input_input
i_parent_start from namelist.input file = 4
i_parent_start from gridded input file = 1
j_parent_start from namelist.input file = 7
j_parent_start from gridded input file = 1
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE: <stdin> LINE: 540
Nest start locations do not match: namelist.input vs gridded input file
-------------------------------------------
해결
Ncdump 를 이용해서, global attribute 를 수정해 줘야 한다.
http://nco.sourceforge.net/nco.html#ncatted-netCDF-Attribute-Editor
Ncatted 가 wrfinput_d0X 내의 global attributes 편집 가능하게 한다. 아래처럼
ncatted -a GRID_ID,global,m,i,2 wrfinput_d02
ncatted -a I_PARENT_START,global,m,i,4 wrfinput_d02
ncatted -a J_PARENT_START,global,m,i,7 wrfinput_d02
ncatted -a PARENT_GRID_RATIO,global,m,i,3 wrfinput_d02
ncatted -a DT,global,m,f,40.0 wrfinput_d02
ncatted -a PARENT_ID,global,m,i,1 wrfinput_d02
ncatted -a GRID_ID,global,m,i,3 wrfinput_d03
ncatted -a I_PARENT_START,global,m,i,32 wrfinput_d03
ncatted -a J_PARENT_START,global,m,i,20 wrfinput_d03
ncatted -a PARENT_GRID_RATIO,global,m,i,3 wrfinput_d03
ncatted -a DT,global,m,f,13.3333 wrfinput_d03
ncatted -a PARENT_ID,global,m,i,2 wrfinput_d03
VPRM Time mismatching 문제
d01 2010-05-15_00:00:00 open_aux_u : opening ./VPRM_input/archive/VPRM_input_d01 for reading. DATASET DATASET=AUXINPUT15
d01 2010-05-15_00:00:00 calling wrf_open_for_read_begin in open_u_dataset
d01 2010-05-15_00:00:00 calling insub in open_u_dataset
4 input_wrf: wrf_get_next_time current_date: 2010-05-15_00:00:00 Status = -102
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE: <stdin> LINE: 930
... Could not find matching time in input file
-------------------------------------------
application called MPI_Abort(MPI_COMM_WORLD, 1) - process 0
- Mediation_integrate.f90
CASE ( AUXINPUT15_ALARM )
CALL open_aux_u( grid, config_flags, stream, AUXINPUT15_ALARM, &
config_flags%auxinput15_inname, grid%auxinput15_oid, &
input_auxinput15, ierr )
CALL input_auxinput15 ( grid%auxinput15_oid, grid , config_flags , ierr )
CASE ( AUXINPUT15_ALARM )
IF ( grid%nframes(stream) >= config_flags%frames_per_auxinput15 ) THEN
CALL close_dataset ( grid%auxinput15_oid , config_flags , "DATASET=AUXINPUT15" )
grid%auxinput15_oid = 0
grid%nframes(stream) = 0
ENDIF
Pasted from <http://meteo.edu.vn/~trungnq/Download/Save_WRFCHEM_for_Sri/WRFV3/share/mediation_integrate.f90>
wrfchemi Time mismatching 문제
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE: <stdin> LINE: 930
... Could not find matching time in input file wrfchemi_d01_2016-05-02_00:00:00
-------------------------------------------
application called MPI_Abort(MPI_COMM_WORLD, 1) - process 0
Sol>
namelist.input 내 auxinput5_interval_m = 360 라인을 comment out 시킨다. 이 라인이 존재하면, 동일한 wrfchemi_d01_2016-05-02_00:00:00 파일에서 6시간 간격의 emission 시간을 찾는다. 없애면 default 로 매 파일 마다 매시간 데이터를 불러온다.
- VPRM input 읽을 때 문제
WPS landmask 깍두기 문제
해결
http://forum.wrfforum.com/viewtopic.php?f=10&t=347
WRF 매뉴얼 5-14의 Real Data Cases 를 읽어보라.
해결>>> SET input_from_file = T for each domain !!!!
D02 에 emiss 가 없음 (해결)
Wrfchemi_는 d01 d02 모두 링크 되어 있음
&time_control
input_from_file = .true.,.true.,
/
&bdy_control
specified = .true., .true.,
nested = .false.,.false.,
/
&chem
chem_opt = 16, 16,
chemdt = 30, 30,
chem_conv_tr = 0, 0,
chem_in_opt = 1, 1,
have_bcs_chem = .true., .true.,
kemit = 1,
io_style_emissions = 2,
emiss_opt = 16, 16,
emiss_inpt_opt = 16, 16,
bio_emiss_opt = 0, 0,
bioemdt = 30, 30,
phot_opt = 0, 0,
photdt = 30, 30,
depo_fact = 0.25, 0.25
gas_bc_opt = 0, 0,
gas_ic_opt = 0, 0,
D01 에는 ffdas가 적용됨.
한반도 농도가 너무 낮다. 한자리수…
서쪽 bc 는 380 임
.
&time_control
input_from_file = .true.,.true.,
/
&bdy_control
specified = .true., .true.,
nested = .false.,.false.,
/
&chem
chem_opt = 16, 16,
chemdt = 30, 30,
chem_conv_tr = 0, 0,
chem_in_opt = 1, 1,
have_bcs_chem = .true., .false.,
kemit = 1,
io_style_emissions = 2,
emiss_opt = 16, 16,
emiss_inpt_opt = 16, 16,
bio_emiss_opt = 0, 0,
bioemdt = 30, 30,
phot_opt = 0, 0,
photdt = 30, 30,
depo_fact = 0.25, 0.25
gas_bc_opt = 0, 0,
gas_ic_opt = 0, 0,
해결
&time_control
input_from_file = .true.,.false.,
/
&bdy_control
specified = .true., .false.,
nested = .false.,.true.,
/
&chem
chem_opt = 16, 16,
chemdt = 30, 30,
chem_conv_tr = 0, 0,
chem_in_opt = 1, 1,
have_bcs_chem = .true., .false.,
kemit = 1,
io_style_emissions = 2,
emiss_opt = 16, 16,
emiss_inpt_opt = 16, 16,
bio_emiss_opt = 0, 0,
bioemdt = 30, 30,
phot_opt = 0, 0,
photdt = 30, 30,
depo_fact = 0.25, 0.25
gas_bc_opt = 0, 0,
gas_ic_opt = 0, 0,
Registry.EM_COMMON
Registry.EM_COMMON
Wrf391
# Variables from WPS
#
state real u_gc igj dyn_em 1 XZ i1 "UU" "x-wind component" "m s-1"
state real v_gc igj dyn_em 1 YZ i1 "VV" "y-wind component" "m s-1"
# lsm State Variables
state real VEGFRA ij misc 1 - i024rhd=(interp_mask_field:lu_index,iswater)u=(copy_fcnm) "VEGFRA" "VEGETATION FRACTION" ""
# Velocities
#
# U Vel
state real u ikjb dyn_em 2 X \
i0rhusdf=(bdy_interp:dt) "U" "x-wind component" "m s-1"
state real ru ikj dyn_em 1 X - "MU_U" "mu-coupled u" "Pa m s-1"
registry.chem
# Additional variables for CO2 and GHG options
# The following variables are to run the VPRM model; The vegfra_vprm is for VPRM only and it's different than VEGFRA in wrfinput
state real - i{ghgv}jf vprm_in - - - - "VPRM input fields" ""
state real vegfra_vprm i{ghgv}jf vprm_in 1 - i{15}rh "VEGFRA_VPRM" " " " "
state real evi i{ghgv}jf vprm_in 1 - i{15}rh "EVI" " " " "
state real evi_min i{ghgv}jf vprm_in 1 - i{15}rh "EVI_MIN" " " " "
state real evi_max i{ghgv}jf vprm_in 1 - i{15}rh "EVI_MAX" " " " "
state real lswi i{ghgv}jf vprm_in 1 - i{15}rh "LSWI" " " " "
state real lswi_max i{ghgv}jf vprm_in 1 - i{15}rh "LSWI_MAX" " " " "
state real lswi_min i{ghgv}jf vprm_in 1 - i{15}rh "LSWI_MIN" " " " "
WRF nudging 방법
1) Set up the analysis nudging fdda namelist. Carefully read test/em_real/README.namelist file to understand the meaning of each namelist variable in the FDDA section, which is also listed below:
grid_fdda (max_dom) | Analysis nudging switch (1=on, 0=off) for each domain. The 3D analyses must be provided here in model horizontal and vertical coordinate space. Note that the nudging coefficient (e.g., guy, gt, gq) is used to effectively turn on or off analysis nudging for each variable. For example, gt must be set to 0.0 to turn off analysis nudging for 3D temperature if grid_fdda = 1 for a given domain. |
gfdda_inname | Analysis nudging input file name defined in Real |
gfdda_interval_m (max_dom) | Time interval (min) between analysis times. For example, set this parameter to 360 if you are using 6-hourly analyses. |
gfdda_end_h (max_dom) | Time (h) after model start time for last analysis used for 3D analyses nudging. For example, set this parameter to 24 if you are using 3D analyses ending at 24 h after initial time of forecast. |
io_form_gfdda | Analysis data io format (2=netCDF) |
fgdt (max_dom) | Calculation frequency (minutes) for analysis nudging (0=every step). We suggest you use this default value. |
if_no_pbl_nudging_uv (max_dom) | A switch to control nudging of u-component and v-component of wind in vertical (0=nudging of u and v in the PBL, 1=no nudging in the PBL). This switch is similar to INONBL(1) and INONBL(2) in MM5. |
if_no_pbl_nudging_t (max_dom) | A switch to control nudging of temperature in vertical (0=nudging of temp in the PBL, 1=no nudging in the PBL). This switch is similar to ININBL(3) in MM5. |
if_no_pbl_nudging_q (max_dom) | A switch to control nudging of water vapor mixing ratio (q) in vertical (0=nudging of q in the PBL, 1=no nudging of q in the PBL). This switch is similar to ININBL(4) in MM5. |
if_zfac_uv (max_dom) | A switch to control nudging of u-component and v-component of wind in vertical (0=nudge ua and v for all layers, 1=limit nudging to levels above or larger than k_zfac_uv). For example, model level 1 is always at the surface and say model level 15 is at 850 mb for your case, and below this level you wish to turn analysis nudging off for wind. You would ten set this parameter to 1 and the following parameter to 15. |
k_zfac_uv (max_dom) | Model level below which nudging is switched off for u and v. |
if_zfac_t (max_dom) | A switch to control nudging of temperature in vertical (0=nudge temperature for all layers, 1=limit nudging to levels above k_zfac_t). |
k_zfac_t (max_dom) | Model level below which nudging is switched off for temperature. |
if_zfac_q (max_dom) | A switch to control nudging of water vapor mixing ratio in vertical (0=nudge temperature for all layers, 1=limit nudging to levels above k_zfac_q). |
k_zfac_q (max_dom) | Model level below which nudging is switched off for q. |
guv (max_dom) | Nudging coefficient for u and v (sec-1) |
gt (max_dom) | Nudging coefficient for pot. temperature (sec-1) |
gq (max_dom) | Nudging coefficient for water vapor mixing ratio (sec-1) |
if_ramping | A switch to decide if nudging is ramped down linearly (0=nudging ends abruptly as a step function, 1=ramping nudging down linearly at end of period. |
dtramp_min | Duration of ramping down (min). Its sign determines how the ramping is done (60.0=ramping starts at last analysis time, -60.0=ramping ends at last analysis time). |
Since analysis nudging works for multiple domains within the same job, some of the namelist variables are defined in multiple columns, so that the user can choose a specific domain to apply analysis nudging. The following is an example that involves three domains in the same job, using 3D analysis nudging:
&fdda
grid_fdda = 1, 1, 1,
gfdda_inname = "wrffdda_d",
gfdda_end_h = 24, 24, 24,
gfdda_interval_m = 360, 360, 360,
fgdt = 0, 0, 0,
if_no_pbl_nudging_uv = 0, 0, 0,
if_no_pbl_nudging_t = 1, 1, 1,
if_no_pbl_nudging_q = 1, 1, 1,
if_zfac_uv = 1, 1, 1,
k_zfac_uv = 10, 10, 10,
if_zfac_t = 0, 0, 0,
k_zfac_t = 10, 10, 10,
if_zfac_q = 0, 0, 0,
k_zfac_q 10, 10, 10,
guv = 0.0003, 0.0003, 0.0003,
gt = 0.0003, 0.0003, 0.0003,
gq = 0.0003, 0.0003, 0.0003,
if_ramping = 1,
dtramp_min = 60.0,
io_form_gfdda = 2,
/
2) Run real using the above namelist which is also used in WRF in the next step. When namelist variables grid_fdda, gfdda_end_h, and gfdda_interval_m are properly set, run real.exe to create FDDA input files (e.g., wrffdda_d01, wrffdda_d02, etc. if max_dom > 1). This example indicates that Real will create analysis files for all three domains (if max_dom = 3), and the format of the FDDA file is in NETCDF (i.e., io_form_gfdda = 2). The last analysis time is 24 hours, and the analysis interval is 6 hours. The rest of the namelist variables are not required for program Real.
3) Run WRF after the above namelist has been defined properly. For example, the above namelist indicates that analysis nudging is turned on for all three domains, with identical nudging coefficients for u, v, theta, and q for all three domains, but within the PBL the analysis nudging for temperature and moisture fields are turned off for all three domains. Note that nudging for each variable is controlled by the nudging coefficient value. It is not recommended that nudging after a pre-forecast period be abruptly turned off since this can create noise, so the example also indicates that analysis nudging is ramped down for a period of 60 minutes, starting from hour 24 and ending at hour 25. Analysis nudging is completely turned off at hour 25. The example further indicates that analsyis nudging for wind is turned off with the 'zfac' option within the lowest 10 model layers for all three domains, regardless of the if_no_pbl_nudging_uv switch. If both zfac and if_no_pbl_nudging_uv are turned on, nudging will be set to zero through at least the lowest 10 vertical layers, and higher if the PBL height is larger than the height of the 10th model layer above the surface.
The equations and further details of analysis nudging can be found in Stauffer and Seaman (1990) and Stauffer et al. (1991). The latter paper introduces surface analysis nudging, which can take advantage of higher temporal resolution gridded surface analyses (e.g., hourly or 3-hourly) than the 3D analyses (e.g., 6-hourly or 12-hourly), and the former are applied within the model diagnosed PBL. This separate capability for higher temporal resolution surface analysis nudging will be avaialable in a future release of WRF. Some typical applications of analysis nudging as part of a muti-scale FDDA strategy, including observation nudging, can be found in Stauffer and Seaman (1994), Seaman et al. (1995), Stauffer et al. (2000), Tanrilulu et al. (2000), Otte et al. (2001), Leidner et al. (2001), Deng et al. (2004), Deng and Stauffer (2006), and many others.
REFERENCES:
Deng, A. N. L. Seaman, G. K. Hunter, and D. R. Stauffer, 2004: Evaluation of inter-regional transport using the MM5/SCIPUFF system. J. Appl. Meteor., 43, 1864-1886.
Deng, A., and D. R. Stauffer, 2006: On improving 4-km mesoscale model simulations. J. Appl. Meteor. and Climat., 45, 361-381.
Leidner, S. M., D. R. Stauffer, and N. L. Seaman, 2001: Improving California coastal zone numerical weather prediction by dynamic initialization of the marine layer. Mon. Wea. Rev., 129, 275-294.
Otte, T. L., N. L. Seaman, and D. R. Stauffer, 2001: A heuristic study on the importance of anisotropic error distributions in data assimilation. Mon. Wea. Rev., 129, 766-783.
Seaman, N. L, D. R. Stauffer, and A. M. Lario-Gibbs, 1995: A multi-scale four-dimensional data assimilation system applied in the San Joaquin Valley during SARMAP: Part I: Modeling design and basic performance characteristics. J. Appl. Meteor., 34, 1739-1761.
Stauffer, D. R., and N. L. Seaman, 1990: Use of four-dimensional data assimilation in a limited-area mesoscale model. Part I: Experiments with synoptic-scale data. Mon. Wea. Rev., 118, 1250-1277.
Stauffer, D. R., N. L. Seaman, and F. S. Binkowski, 1991: Use of four-dimensional data assimilation in a limited-area mesoscale model. Part II: Effects of data ssimilation within the planetary boundary layer. Mon. Wea. Rev., 119, 734-754.
Stauffer, D. R., and N. L. Seaman, 1994: On multi-scale four-dimensional data assimilation. J. Appl. Meteor., 33, 416-434.
Tanrikulu, S., D. R. Stauffer, N. L. Seaman, and A. J. Ranzieri, 2000: A field-coherence technique for meteorological field-program design for air-quality studies. Part II: Evaluation in the San Joaquin Valley. J. Appl. Meteor., 39, 317-334.