I've had problems trying to run with observational nudging. This is what I've done so far.
I'm usig WRF 4.2.1, and ERA5 hourly data analysis.
Domain 1: 9km
Domain 2: 3km
Domain 3: 1km
Domain 4: 0.5km
Here is the &fdda options I'm using. I think maybe there is something wrong.
And here is the error using ./configure -D
- I created surface station data with my own script, so I've got little_r and OBS_DOMAINXX this way. little_r are read ok by obsgrid, and obs_domain are the same as obsgrid output. I tried to run RT_fdda_reformat_obsnud.pl. To make this files I convert local time to UTC 0, and use the units required in little_R.
- I run obsgrid and successfully got metoa_em and wrfsfdda files. So there is no problem here.
- then, I run real.exe and had no problem.
- When I start running WRF I get segmentation faults with no explanations, so I modeled different scenarios, always using ulimit -s unlimited:
1 - just analysis nudging using grid_fdda = 1 and grid_sfdda = 1 for every domain. Run without any problem.
2 - Analysis nuging + observational nudging. Get segmentation fault at the first timestep.
3 - Runing with mpi + omp. Same error.
4 - Running just the first domain. Same error.
5 - Runing in debug mode (./configure -D). Same error, but I don't understand what could be the problem.
6 - Running aplying a patch to module_dm.F. Same error. (https://forum.mmm.ucar.edu/phpBB3/viewtopic.php?f=45&t=346&p=1238&hilit=observation+nudging+segmentation#p1238)
I'm usig WRF 4.2.1, and ERA5 hourly data analysis.
Domain 1: 9km
Domain 2: 3km
Domain 3: 1km
Domain 4: 0.5km
Here is the &fdda options I'm using. I think maybe there is something wrong.
Code:
&fdda
grid_fdda = 1, 1, 1, 1,
gfdda_inname = "wrffdda_d<domain>",
gfdda_end_h = 164, 164, 164, 164,
gfdda_interval_m = 60, 60, 60, 60,
sgfdda_inname = "wrfsfdda_d<domain>",
sgfdda_end_h = 164, 164, 164, 164,
sgfdda_interval_m = 60, 60, 60, 60,
fgdt = 0, 0, 0, 0,
if_no_pbl_nudging_uv = 0, 0, 0, 0,
if_no_pbl_nudging_t = 0, 0, 0, 0,
if_no_pbl_nudging_q = 0, 0, 0, 0,
if_zfac_uv = 0, 0, 0, 0,
k_zfac_uv = 10, 10, 10, 10,
if_zfac_t = 0, 0, 0, 0,
k_zfac_t = 10, 10, 10, 10,
if_zfac_q = 0, 0, 0, 0,
k_zfac_q = 10, 10, 10, 10,
guv = 0.0003, 0.0003, 0.0003, 0.0003,
gt = 0.0003, 0.0003, 0.0003, 0.0003,
gq = 0.0003, 0.0003, 0.0003, 0.0003,
if_ramping = 1,
dtramp_min = 60.0,
io_form_gfdda = 2,
grid_sfdda = 1, 1, 1, 1,
io_form_sgfdda = 2,
guv_sfc = 0.0003, 0.0003, 0.0003, 0.0003
gt_sfc = 0.0003, 0.0003, 0.0003, 0.0003
gq_sfc = 0.0003, 0.0003, 0.0003, 0.0003
rinblw = 10.,10.,10.,10.,
obs_nudge_opt = 1,0,0,0,
max_obs = 1500000,
fdda_start = 0., 0., 0., 0.,
fdda_end = 164., 164., 164., 164.,
obs_nudge_wind = 1,1,1,1,
obs_coef_wind = 6.E-4,6.E-4,6.E-4,6.E-4,
obs_nudge_temp = 1,1,1,1,
obs_coef_temp = 6.E-4,6.E-4,6.E-4,6.E-4,
obs_nudge_mois = 1,1,1,1,
obs_coef_mois = 6.E-4,6.E-4,6.E-4,6.E-4,
obs_rinxy = 27.,18.,5.,2.,
obs_rinsig = 0.1,
obs_twindo = 0.5,0.5,0.5,0.5,
obs_ionf = 1, 2, 2, 2, 2,
obs_idynin = 1,
obs_dtramp = 40.,
obs_prt_freq = 1000, 1000, 1000, 180, 180,
obs_prt_max = 5,
obs_ipf_errob = .true.
obs_ipf_nudob = .true.
obs_ipf_in4dob = .true.
obs_ipf_init = .true.
/
Code:
d01 2019-01-01_03:00:00 Input data is acceptable to use:
d01 2019-01-01_03:00:00 Input data processed for aux input 4 for domain 1
d01 2019-01-01_03:00:00 Yes, this special data is acceptable to use: SFCFDDA FILE: SURFACE ANALYSES FOR NUDGING
d01 2019-01-01_03:00:00 Input data is acceptable to use:
d01 2019-01-01_03:00:00 Input data processed for aux input 9 for domain 1
d01 2019-01-01_03:00:00 Input data is acceptable to use:
d01 2019-01-01_03:00:00 Input data processed for aux input 10 for domain 1
OBS NUDGING: Reading new obs for time window TBACK = -0.500 TFORWD = 0.500 for grid = 1
opening first fdda obs file, fonc=01 inest= 1
ifon= 1
n= 1 unknown ob of type SYNOP
n= 2 unknown ob of type SYNOP
n= 3 unknown ob of type SYNOP
Saving index of first ob after end of current time window for nest = 1:
ob index = 3, time of ob = 1.0000 hrs, end of time window = 0.5000 hrs
****** CALL IN4DOB AT KTAU = 0 AND XTIME = 0.00: NSTA = 2 ******
*****NUDGING INDIVIDUAL OBS ON MESH # 1 WITH RINXY = 0.270E+02 KM, RINSIG = 0.100E+00 AND TWINDO (HALF-PERIOD) = 0.300E+02 MIN
NUDGING IND. OBS WINDS WITH GIV = 0.600E-03
NUDGING IND. OBS TEMPERATURE WITH GIT = 0.600E-03
NUDGING IND. OBS MOISTURE WITH GIQ = 0.600E-03
ABOVE THE SURFACE LAYER, OBS NUDGING IS PERFORMED ON PRESSURE LEVELS,
WHERE RINXY VARIES LINEARLY FROM 0.270E+02 KM AT THE SURFACE TO 0.540E+02 KM AT 500.00 MB AND ABOVE
IN THE SURFACE LAYER, WXY IS A FUNCTION OF DPSMX = 75.00 MB WITH DCON = 0.133E+00 - SEE SUBROUTINE NUDOB
FOR EFFICIENCY, THE OBS NUDGING FREQUENCY FOR MESH # 1 IS 1 CGM TIMESTEPS
d01 2019-01-01_03:00:00 Input data is acceptable to use:
Tile Strategy is not specified. Assuming 1D-Y
WRF TILE 1 IS 1 IE 30 JS 25 JE 36
WRF NUMBER OF TILES = 1
OBS NUDGING is requested on a total of 1 domain(s).
++++++CALL ERROB AT KTAU = 0 AND INEST = 1: NSTA = 2 ++++++
REPORTING OBS MASS-PT LOCS FOR NEST 1 AT XTIME= 0.0 MINUTES
FREQ=1000, MAX= 5 LOCS, NEWLY READ OBS ONLY, -999 => OBS OFF PROC
OBS# I J K OBS LAT OBS LON XLAT(I,J) XLONG(I,J) TIME(hrs) OBS STATION ID * I deleted the stations lat lon location
1 30.836 27.319 1.000 0.00
forrtl: error (65): floating invalid
Image PC Routine Line Source
wrf.exe 000000000D55956B Unknown Unknown Unknown
libpthread-2.27.s 0000150E46D578A0 Unknown Unknown Unknown
wrf.exe 000000000D6289DF Unknown Unknown Unknown
wrf.exe 00000000053C1B6C vspow_ 371 libmassv.f90
wrf.exe 0000000004D6F7C8 module_big_step_u 1061 module_big_step_utilities_em.f90
wrf.exe 000000000404A3DD solve_em_ 3159 solve_em.f90
wrf.exe 00000000038945FB solve_interface_ 122 solve_interface.f90
wrf.exe 0000000000583E17 module_integrate_ 329 module_integrate.f90
wrf.exe 00000000004067B6 module_wrf_top_mp 324 module_wrf_top.f90
wrf.exe 0000000000405C15 MAIN__ 29 wrf.f90
wrf.exe 0000000000405BC2 Unknown Unknown Unknown
libc-2.27.so 0000150E465D7B97 __libc_start_main Unknown Unknown
wrf.exe 0000000000405AAA Unknown Unknown Unknown