Scheduled Downtime
On Friday 21 April 2023 @ 5pm MT, this website will be down for maintenance and expected to return online the morning of 24 April 2023 at the latest

bad soil moisture

basit

New member
Hi there,
In the metgrid.log i am getting the following:
INFORM: Couldn't find SOILM000 at level 200100.000000 to fill level 0.000000 of SOILM.
I ignored it, and ran real.exe. I got the boundary and initial condition file successfully generated but in the rsl.0000, i got the following error/warning for the left bottom corner block from i = 1.. 68 and j= 1 .. 67
Noah -> Noah: bad soil moisture at i,j = 27 27 -5.56425948E-04 -3.79280275E-04 1.59310978E-02 9.53932032E-02 01/01/2000

Just wondering, if it is something i need to worry about?

Cheers,
Basit
 
Hi Basit,
It may be something to be concerned about. What type of input data are you using? If you happen to be using ERA5 data, are you also using the "invariant" file when processing through ungrib? See How to Process ERA5 Data for reference.
 
Hi Kwerner,

Thank you very much indeed for the response.
I am using ERA5 data to force wrf. I implemented the suggested tip, but when i run metgrid.exe, i get the following error:

Processing domain 1 of 2
ERA5_INVARIANT
Processing 2024-03-14_00
PL
SFC
ERROR: Cannot combine time-independent data with time-dependent data for field LANDSEA.mask
--------------------------------------------------------------------------
MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_WORLD
with errorcode 0.

NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on

exactly when Open MPI kills them.
--------------------
Following is my namelist.wps:

&share
wrf_core = 'ARW',
max_dom = 2,
start_date = '2024-03-14_00:00:00','2024-03-14_00:00:00',
end_date = '2024-04-17_21:00:00','2024-04-17_21:00:00',
interval_seconds = 10800,
io_form_geogrid = 2,
/
&geogrid
parent_id = 1, 1,
parent_grid_ratio = 1, 3,
i_parent_start = 1, 330,
j_parent_start = 1, 300,
e_we = 780, 673,
e_sn = 720, 673,
geog_data_res = 'modis_landuse_20class_30s_with_lakes+30s','modis_landuse_20class_30s_with_lakes+30s',
dx = 9000,
dy = 9000,
map_proj = 'lambert',
ref_lat = 17.00, !24.00,
ref_lon = 46.00, !54.00,
truelat1 = 10.0,
truelat2 = 24.0,
stand_lon = 46.0,
geog_data_path = '/scratch/access/bak8122/geog/WPS_GEOG'
/
&ungrib
out_format = 'WPS',
prefix = 'SFC',
/
&metgrid
constants_name = 'ERA5_INVARIANT'
fg_name = 'PL','SFC',
io_form_metgrid = 2,
/

I tried two Vtables Vtable.ERA-interim.pl and Vtable.ECMWF, but both gives the same error.
I also removed the LANDSEA parameter from the vtable. Still no luck.

I would greatly appreciate if you could help with further advise to fix this.
Many thanks
Basit
 
Hi Kwerner,

Thank you very much indeed for the response.
I am using ERA5 data to force wrf. I implemented the suggested tip, but when i run metgrid.exe, i get the following error:

Processing domain 1 of 2
ERA5_INVARIANT
Processing 2024-03-14_00
PL
SFC
ERROR: Cannot combine time-independent data with time-dependent data for field LANDSEA.mask
--------------------------------------------------------------------------
MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_WORLD
with errorcode 0.

NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on

exactly when Open MPI kills them.
--------------------
Following is my namelist.wps:

&share
wrf_core = 'ARW',
max_dom = 2,
start_date = '2024-03-14_00:00:00','2024-03-14_00:00:00',
end_date = '2024-04-17_21:00:00','2024-04-17_21:00:00',
interval_seconds = 10800,
io_form_geogrid = 2,
/
&geogrid
parent_id = 1, 1,
parent_grid_ratio = 1, 3,
i_parent_start = 1, 330,
j_parent_start = 1, 300,
e_we = 780, 673,
e_sn = 720, 673,
geog_data_res = 'modis_landuse_20class_30s_with_lakes+30s','modis_landuse_20class_30s_with_lakes+30s',
dx = 9000,
dy = 9000,
map_proj = 'lambert',
ref_lat = 17.00, !24.00,
ref_lon = 46.00, !54.00,
truelat1 = 10.0,
truelat2 = 24.0,
stand_lon = 46.0,
geog_data_path = '/scratch/access/bak8122/geog/WPS_GEOG'
/
&ungrib
out_format = 'WPS',
prefix = 'SFC',
/
&metgrid
constants_name = 'ERA5_INVARIANT'
fg_name = 'PL','SFC',
io_form_metgrid = 2,
/

I tried two Vtables Vtable.ERA-interim.pl and Vtable.ECMWF, but both gives the same error.
I also removed the LANDSEA parameter from the vtable. Still no luck.

I would greatly appreciate if you could help with further advise to fix this.
Many thanks
Basit
I assume your ERA5 Forcing data contains LANDSEA parameter.
As is known,LANDSEA parameter is the "invariant" when you processed in metgrid.
 
Hi haiqingsong
As i mentioned in the previous message, i tried both, with and without LANDSEA in the Vtable but still getting the same error. So, it looks like this is not the issue.
 
Hi,
First, can you try ungribbing the pressure level data and the surface data all together (like it mentions in How to Process ERA5 Data)? After that, can you try using the invariant data again with LANDSEA removed from Vtable.ECMWF and let me know what happens? Thanks!
 
Hi Kwerner,
I did exactly what you said as follows,

1. Ungribbed both pressure level and surface data together.
2. removed LADSEA from Vtable.ECMWF
3. Made sure ERA5_INVARIANT is in the working directory
3. Added the following line in the &metgrid
constants_name = 'ERA5_INVARIANT'
4. ran metgrid.exe

Following is the error that metgrid.exe produced on the very first time interval.
(base) bak8122@login1:/scratch/bak8122/wrf-model-system/WPS$ ./metgrid.exe
Processing domain 1 of 2
ERA5_INVARIANT
Processing 2024-03-14_00
FILE

ERROR: Cannot combine time-independent data with time-dependent data for field LANDSEA.mask
--------------------------------------------------------------------------
MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_WORLD
with errorcode 0.

NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on
exactly when Open MPI kills them.
--------------------------------------------------------------------------

If i comment out constants_name = 'ERA5_INVARIANT'
then everything goes normal.

Please advise,

Thanks
Basit
 
Hi,
Thanks for the reply, I am getting ERA5 data from Copernicus ECMWF.

Cheers,
basit

So I have had issues with Copernicus ERA data before and found it needed different steps from the link that @kwerner posted.
But in general they are the same.

I've uploaded a document talking about this method that I've utilized.

The only difference that I vaguely remember is I needed to different namelist.wps or I have to change the ungrib step twice to have the pressure and surface files seperated.

Hope this helps and if @kwerner has any other suggestions take theirs because they are the experts, i'm just a user.
 

Attachments

  • WRF_Initialization_ERA5.pdf
    1.1 MB · Views: 6
So I have had issues with Copernicus ERA data before and found it needed different steps from the link that @kwerner posted.
But in general they are the same.

I've uploaded a document talking about this method that I've utilized.

The only difference that I vaguely remember is I needed to different namelist.wps or I have to change the ungrib step twice to have the pressure and surface files seperated.

Hope this helps and if @kwerner has any other suggestions take theirs because they are the experts, i'm just a user.
@kwerner

Would you like me to write up a tutorial similar to the one you have for RDA ERA5 or would you want to do it since it can be posted in FAQ?
 
Would you like me to write up a tutorial similar to the one you have for RDA ERA5 or would you want to do it since it can be posted in FAQ?
I haven't looked closely at the .pdf you attached above, but if that seems to be working for users, I could just attach it to the existing FAQ.
 
Hi,
The method described in the pdf also did not work and i am getting the same error. As a matter of fact i have been using this method that is ungrib surface and pressure level data separately and then combine it when running metgrid.exe. It actually gives the same result/output so as the error. so still no luck.
Cheers,
basit
 
Hi,
The method described in the pdf also did not work and i am getting the same error. As a matter of fact i have been using this method that is ungrib surface and pressure level data separately and then combine it when running metgrid.exe. It actually gives the same result/output so as the error. so still no luck.
Cheers,
basit
Let me make a list of all the data that needs to be downloaded through Copernicus at each level and see if that's the problem.

Pressure:
. Variables List:

divergence
fraction_of_cloud_cover
geopotential
ozone_mass_mixing_ratio
potential_vorticity
relative_humidity
specific_cloud_ice_water_content
specific_cloud_liquid_water_content
specific_humidity
specific_rain_water_content
specific_snow_water_content
temperature
u_component_of_wind
v_component_of_wind
vertical_velocity
vorticity

2. Heights List:

10
20
30
50
70
100
125
150
175
200
225
250
300
350
400
450
500
550
600
650
700
750
775
800
825
850
875
900
925
950
975
1000

3. Times List:
00:00
01:00
02:00
03:00
04:00
05:00
06:00
07:00
08:00
09:00
10:00
11:00
12:00
13:00
14:00
15:00
16:00
17:00
18:00
19:00
20:00
21:00
22:00
23:00


Surface:
10m_u_component_of_wind
10m_v_component_of_wind
2m_dewpoint_temperature
2m_temperature
land_sea_mask
mean_sea_level_pressure
sea_ice_cover
sea_surface_temperature
skin_temperature
snow_density
snow_depth
soil_temperature_level_1
soil_temperature_level_2
soil_temperature_level_3
soil_temperature_level_4
surface_pressure
volumetric_soil_water_layer_1
volumetric_soil_water_layer_2
volumetric_soil_water_layer_3
volumetric_soil_water_layer_4
 
@William.Hatheway The era5 download scripts for sfc and pl are copied below,


import cdsapi
c = cdsapi.Client()
c.retrieve(
'reanalysis-era5-single-levels',
{
'product_type': 'reanalysis',
'variable': [
'10m_u_component_of_wind',
'10m_v_component_of_wind',
'2m_dewpoint_temperature',
'2m_temperature',
'land_sea_mask',
'mean_sea_level_pressure',
'sea_ice_cover',
'sea_surface_temperature',
'skin_temperature',
'snow_depth',
'soil_temperature_level_1',
'soil_temperature_level_2',
'soil_temperature_level_3',
'soil_temperature_level_4',
'surface_pressure',
'volumetric_soil_water_layer_1',
'volumetric_soil_water_layer_2',
'volumetric_soil_water_layer_3',
'volumetric_soil_water_layer_4',
],
'year': '2024',
'month': [
'04',
],
'day': [
'01', '02', '03',
'04', '05', '06',
'07', '08', '09',
'10', '11', '12',
'13', '14', '15',
'16', '17', '18',
],
'time': [
'00:00', '03:00', '06:00',
'09:00', '12:00', '15:00',
'18:00', '21:00',
],
'area': [
50, 0, -20,
100,
],
'format': 'grib',
},
'era5_SFC_20240401-18.grib')

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Era5 pressure level
----------------------

import cdsapi
c = cdsapi.Client()
c.retrieve(
'reanalysis-era5-pressure-levels',
{
'product_type': 'reanalysis',
'variable': [
'geopotential', 'relative_humidity', 'specific_humidity',
'temperature', 'u_component_of_wind', 'v_component_of_wind',
],
'pressure_level': [
'1', '2', '3',
'5', '7', '10',
'20', '30', '50',
'70', '100', '125',
'150', '175', '200',
'225', '250', '300',
'350', '400', '450',
'500', '550', '600',
'650', '700', '750',
'775', '800', '825',
'850', '875', '900',
'925', '950', '975',
'1000',
],
'year': '2024',
'month': '03',
'day': [
'20','21', '22',
],
'time': [
'00:00', '03:00', '06:00',
'09:00', '12:00', '15:00',
'18:00', '21:00',
],

'format': 'grib',
'area': [
50, 0, -20,
100,
],
},
'era5_PL_20240320-22.grib')
 
@basit

I think I see the problem.

The dates for each one are different.

Pressure is from
2024-03-20 to 2024-03-22

Surface is from
2024-04-01 to 2024-04-18

So the data is truly missing and that is why you are having issues i think.

Both the pressure and surface times need to be the exact same.
 
@William.Hatheway Sorry there is some misunderstanding, It is a month long data that i have downloaded, since pl are large files so i downloaded only 3 days in each pl file whereas sfc data was downloaded for 18 days in each grib file. There is no difference in the total length of all the data files and if do not activate constants_name = 'ERA5_INVARIANT', everything goes normal.
 
Top