Ok, jadi saya berniat untuk membuat sticky post ini sebagai catatan error-error pada program WRF yang pernah saya hadapi dan bagaimana cara saya mengatasinya. Apa itu WRF? cek di sini. Motivasi utama saya bikin postingan ini karena pengalaman pribadi ketika ketemu error pada suatu program dan saya dapati solusinya dengan susah payah pada hari-hari yang lalu kemudian pada hari-hari selanjutnya saya dapati error yang sama tapi saya lupa bagaimana dulu cara saya mengatasinya...ini sangat menyebalkan dan membuang-buang waktu.
Postingan ini akan terus saya update selama saya masih berjelajah dengan software WRF ini.
Postingan ini akan terus saya update selama saya masih berjelajah dengan software WRF ini.
CASE #1
Pesan Error:
$ ./real.exe
--- WARNING: traj_opt is zero, but num_traj is not zero; setting num_traj to zero.
--- NOTE: sst_update is 0, setting io_form_auxinput4 = 0 and auxinput4_interval = 0 for all domains
--- NOTE: grid_fdda is 0 for domain 1, setting gfdda interval and ending time to 0 for that domain.
--- NOTE: both grid_sfdda and pxlsm_soil_nudge are 0 for domain 1, setting sgfdda interval and ending time to 0 for that domain.
--- NOTE: obs_nudge_opt is 0 for domain 1, setting obs nudging interval and ending time to 0 for that domain.
--- NOTE: bl_pbl_physics /= 4, implies mfshconv must be 0, resetting
Need MYNN PBL for icloud_bl = 1, resetting to 0
--- NOTE: RRTMG radiation is not used, setting: o3input=0 to avoid data pre-processing
--- NOTE: num_soil_layers has been set to 4
REAL_EM V3.8 PREPROCESSOR
DYNAMICS OPTION: Eulerian Mass Coordinate
alloc_space_field: domain 1 , 80509128 bytes allocated
Time period # 1 to process = 2017-06-01_00:00:00.
Total analysis times to input = 1.
-----------------------------------------------------------------------------
Domain 1: Current date being processed: 2017-06-01_00:00:00.0000, which is loop # 1 out of 1
configflags%julyr, %julday, %gmt: 2017 152 0.00000000
metgrid input_wrf.F first_date_input = 2017-06-01_00:00:00
metgrid input_wrf.F first_date_nml = 2017-06-01_00:00:00
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE: <stdin> LINE: 864
input_wrf.F: SIZE MISMATCH: namelist ide,jde,num_metgrid_levels= 54 37 40 ; input data ide,jde,num_metgrid_levels= 54 37 32
-------------------------------------------
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE: <stdin> LINE: 864
input_wrf.F: SIZE MISMATCH: namelist ide,jde,num_metgrid_levels= 54 37 40 ; input data ide,jde,num_metgrid_levels= 54 37 32
-------------------------------------------
STOP wrf_abort
Solusi:
Error ini disebabkan oleh perbedaan num_metgrid_levels pada namelist.input dan num_metgrid_levels pada met_em.*.nc kita. Oleh karena itu solusinya adalah dengan memperbaiki num_metgrid_levels pada namelist.input untuk disamakan dengan num_metgrid_levels pada file met_em.*.nc kita. Seperti pada screenshoot pesan error di atas, error ini ktia dapati saat menjalankan real.exe .
Jadi pertama kita cari dulu num_metgrid_levels yang terkandung pada file met_em.*.nc kita, pada kasus ini file met_em.d01.2017-06-01_00:00:00.nc . Caranya
$ ncdump -h met_em.d01.2017-06-01_00:00:00.nc | grep -i 'num_metgrid_levels'
num_metgrid_levels = 32 ;
float PRES(Time, num_metgrid_levels, south_north, west_east) ;
float GHT(Time, num_metgrid_levels, south_north, west_east) ;
float RH(Time, num_metgrid_levels, south_north, west_east) ;
float VV(Time, num_metgrid_levels, south_north_stag, west_east) ;
float UU(Time, num_metgrid_levels, south_north, west_east_stag) ;
float TT(Time, num_metgrid_levels, south_north, west_east) ;
Terlihat di situ dari command ncdump terlihat num_metgrid_levels yang sebenarnya adalah 32. Kemudian kita ubah file namelist.input pada WRF yaitu variabel num_metgrid_levels, sebagai contoh dari ini
menjadi ini
&domains
.
.
.
num_metgrid_levels = 40,
.
.
.
/
menjadi ini
&domains
.
.
.
num_metgrid_levels = 32,
.
.
.
/
Pada kasus saya, ini terjadi ketika saya memakai domain wizard untuk running program WPS dan entah kenapa file namelist.input keluaran dari domain wizard ini tidak cocok dengan met_em.*.nc keluaran domain wizard itu sendiri.
CASE #2
Pesan Error:
$ ./real.exe
--- WARNING: traj_opt is zero, but num_traj is not zero; setting num_traj to zero.
--- NOTE: sst_update is 0, setting io_form_auxinput4 = 0 and auxinput4_interval = 0 for all domains
--- NOTE: grid_fdda is 0 for domain 1, setting gfdda interval and ending time to 0 for that domain.
--- NOTE: both grid_sfdda and pxlsm_soil_nudge are 0 for domain 1, setting sgfdda interval and ending time to 0 for that domain.
--- NOTE: obs_nudge_opt is 0 for domain 1, setting obs nudging interval and ending time to 0 for that domain.
--- NOTE: bl_pbl_physics /= 4, implies mfshconv must be 0, resetting
Need MYNN PBL for icloud_bl = 1, resetting to 0
--- NOTE: RRTMG radiation is not used, setting: o3input=0 to avoid data pre-processing
--- NOTE: num_soil_layers has been set to 4
REAL_EM V3.8 PREPROCESSOR
DYNAMICS OPTION: Eulerian Mass Coordinate
alloc_space_field: domain 1 , 68959772 bytes allocated
Time period # 1 to process = 2017-06-01_00:00:00.
Total analysis times to input = 1.
-----------------------------------------------------------------------------
Domain 1: Current date being processed: 2017-06-01_00:00:00.0000, which is loop # 1 out of 1
configflags%julyr, %julday, %gmt: 2017 152 0.00000000
metgrid input_wrf.F first_date_input = 2017-06-01_00:00:00
metgrid input_wrf.F first_date_nml = 2017-06-01_00:00:00
d01 2017-06-01_00:00:00 Timing for input 0 s.
d01 2017-06-01_00:00:00 flag_soil_layers read from met_em file is 1
d01 2017-06-01_00:00:00 Turning off use of MAX WIND level data in vertical interpolation
d01 2017-06-01_00:00:00 Turning off use of TROPOPAUSE level data in vertical interpolation
Max map factor in domain 1 = 1.00. Scale the dt in the model accordingly.
Using sfcprs3 to compute psfc
Converged znw(kte) should be about 0.0 = -3.90789891E-03
z (m) = 0.0000000000000000
z (m) and dz (m) = 56.575875940427252 56.575875940427252
z (m) and dz (m) = 137.94396027414436 81.368084333717121
z (m) and dz (m) = 244.69885334585342 106.75489307170906
z (m) and dz (m) = 377.64062967947041 132.94177633361696
z (m) and dz (m) = 546.29320666454760 168.65257698507716
z (m) and dz (m) = 761.12152363369387 214.82831696914636
z (m) and dz (m) = 1016.1669128542145 255.04538922052060
z (m) and dz (m) = 2063.1328474187962 1046.9659345645816
z (m) and dz (m) = 3110.0987035559388 1046.9658561371425
z (m) and dz (m) = 4157.0648916797636 1046.9661881238246
z (m) and dz (m) = 5204.0311456449745 1046.9662539652113
z (m) and dz (m) = 6250.9974424252414 1046.9662967802669
z (m) and dz (m) = 7297.9634007915301 1046.9659583662883
z (m) and dz (m) = 8344.9295567094541 1046.9661559179249
z (m) and dz (m) = 9391.8958549878553 1046.9662982784007
z (m) and dz (m) = 10438.861937109888 1046.9660821220330
z (m) and dz (m) = 11485.828061230417 1046.9661241205288
z (m) and dz (m) = 12532.794041726534 1046.9659804961163
z (m) and dz (m) = 13579.760037977203 1046.9659962506703
z (m) and dz (m) = 14626.725843606109 1046.9658056289061
z (m) and dz (m) = 15673.691795079039 1046.9659514729292
z (m) and dz (m) = 16720.657603535445 1046.9658084564039
z (m) and dz (m) = 17767.623349189256 1046.9657456538146
z (m) and dz (m) = 18814.589037935595 1046.9656887463379
z (m) and dz (m) = 19861.558665558321 1046.9696276227241
dz (m) above fixed eta levels = 1046.9662084835613
namelist max_dz (m) = 1000.00000
namelist p_top (Pa) = 5000.00000
d01 2017-06-01_00:00:00 You need one of three things:
d01 2017-06-01_00:00:00 1) More eta levels to reduce the dz: e_vert
d01 2017-06-01_00:00:00 2) A lower p_top so your total height is reduced: p_top_requested
d01 2017-06-01_00:00:00 3) Increase the maximum allowable eta thickness: max_dz
d01 2017-06-01_00:00:00 All are namelist options
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE: <stdin> LINE: 6362
dz above fixed eta levels is too large
-------------------------------------------
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE: <stdin> LINE: 6362
dz above fixed eta levels is too large
-------------------------------------------
STOP wrf_abort
Solusi:
Well, pada pesan error dari real.exe sudah diberitahu solusinya sangat jelas. Tapi yah, terkadang kita menjadi sangat malas hanya untuk membaca beberapa baris pesan error. Sesuai yang di beritahukan pada pesan itu. Kita harus menambah variabel e_vert agar nilai dz tidak melebihi max_dz atau tidak melebihi batas maksimum eta level untuk grid vertikalnya (err, u know...dx, dy, dz...ini semua tentang resolusi grid dalam hal ini grid spasial vertikal yang tidak boleh lebih kasar daripada yang ditentukan). So, misal dalam kasus saya, saya ubah file namelist.input saya dari ini
&domains
.
.
.
e_vert = 28,
.
.
.
&domains
.
.
.
e_vert = 30,
.
.
.
CASE #3
Pesan Error:
$ ./wrf.exe
--- WARNING: traj_opt is zero, but num_traj is not zero; setting num_traj to zero.
--- NOTE: sst_update is 0, setting io_form_auxinput4 = 0 and auxinput4_interval = 0 for all domains
--- NOTE: grid_fdda is 0 for domain 1, setting gfdda interval and ending time to 0 for that domain.
--- NOTE: both grid_sfdda and pxlsm_soil_nudge are 0 for domain 1, setting sgfdda interval and ending time to 0 for that domain.
--- NOTE: obs_nudge_opt is 0 for domain 1, setting obs nudging interval and ending time to 0 for that domain.
--- NOTE: bl_pbl_physics /= 4, implies mfshconv must be 0, resetting
Need MYNN PBL for icloud_bl = 1, resetting to 0
--- NOTE: RRTMG radiation is not used, setting: o3input=0 to avoid data pre-processing
--- NOTE: num_soil_layers has been set to 4
WRF V3.8 MODEL
DYNAMICS OPTION: Eulerian Mass Coordinate
alloc_space_field: domain 1 , 49894828 bytes allocated
med_initialdata_input: calling input_input
Timing for processing wrfinput file (stream 0) for domain 1: 0.00788 elapsed seconds
INPUT LandUse = "MODIFIED_IGBP_MODIS_NOAH"
LANDUSE TYPE = "MODIFIED_IGBP_MODIS_NOAH" FOUND 33 CATEGORIES 2 SEASONS WATER CATEGORY = 17 SNOW CATEGORY = 15
INITIALIZE THREE Noah LSM RELATED TABLES
Skipping over LUTYPE = USGS
LANDUSE TYPE = MODIFIED_IGBP_MODIS_NOAH FOUND 20 CATEGORIES
INPUT SOIL TEXTURE CLASSIFICATION = STAS
SOIL TEXTURE CLASSIFICATION = STAS FOUND 19 CATEGORIES
Timing for Writing wrfout_d01_2017-06-01_00:00:00 for domain 1: 0.17287 elapsed seconds
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE: mediation_integrate.b LINE: 1955
med_latbound_in: error opening wrfbdy_d01 for reading. IERR = -1021
-------------------------------------------
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE: mediation_integrate.b LINE: 1955
med_latbound_in: error opening wrfbdy_d01 for reading. IERR = -1021
-------------------------------------------
Note: The following floating-point exceptions are signalling: IEEE_UNDERFLOW_FLAG IEEE_DENORMAL
STOP wrf_abort
Solusi:
Ini terjadi karena run_days/run_hours/run_minutes/run_seconds yang di deklarasikan di namelist.input tidak sesuai dengan yang ada pada wrfinput_*. Pada kasus ini wrfinput_d01 karena saya hanya ingin melakukan downscalling pada 1 timestep pada data grib2 GFS jadinya run_days/run_hours/run_minutes/run_seconds harus di deklarasikan menjadi 0. Jadi dari ini
&time_control
run_days = 0,
run_hours = 12,
run_minutes = 0,
run_seconds = 0,
.
.
.
&time_control
run_days = 0,
run_hours = 0,
run_minutes = 0,
run_seconds = 0,
.
.
.
Intinya, run_* ini harus sesuai dengan timestep pada wrfinput yang ingin running untuk simulasi berapa lama.
referensi:
http://forum.wrfforum.com/viewtopic.php?f=9&t=2781, diakses pada 11 Juni 2017
http://forum.wrfforum.com/viewtopic.php?f=6&t=5668, diakses pada 12 Juni 2017
http://forum.wrfforum.com/viewtopic.php?f=6&t=5668, diakses pada 12 Juni 2017
DYNAMICS OPTION: Eulerian Mass Coordinate
BalasHapusalloc_space_field: domain 1 , 463762388 bytes allocated
metgrid input_wrf.F first_date_input = 2019-03-17_00:00:00
metgrid input_wrf.F first_date_nml = 2019-03-17_00:00:00
d01 2019-03-17_00:00:00 Timing for input 0 s.
d01 2019-03-17_00:00:00 flag_soil_layers read from met_em file is 1
d01 2019-03-17_00:00:00 Turning off use of MAX WIND level data in vertical interpolation
d01 2019-03-17_00:00:00 Turning off use of TROPOPAUSE level data in vertical interpolation
Max map factor in domain 1 = 1.12. Scale the dt in the model accordingly.
Using sfcprs3 to compute psfc
d01 2019-03-17_00:00:00 flag value of flag_qnwfa is 0
d01 2019-03-17_00:00:00 No average surface temperature for use with inland lakes
Assume Noah LSM input
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE: LINE: 2947
grid%tsk unreasonable
-------------------------------------------
application called MPI_Abort(MPI_COMM_WORLD, 1) - process 0
solusinya gimana bang?