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

Real.exe will not run, exits with "...geogrid data does not have valid dominant land use data" error code

This post was from a previous version of the WRF&MPAS-A Support Forum. New replies have been disabled and if you have follow up questions related to this post, then please start a new thread from the forum home page.


New member
Hello everyone,

I have been trying to run real.exe with a new LULC dataset that I have previously been able to use within WRF and it is running into an issue this time around. WPS successfully runs without any errors (see attached geogrid and metgrid logs) and produces the relevant met_em and geo_em files that I need to run real.exe. When I run real.exe (after all relevant .TBL files have been modified to include the new LULC dataset, which I had previously completed in order to complete the previous simulations using this LULC dataset) it crashes at the first time step, in the first domain with the error "You have set surface_input_source = 3, but your geogrid data does not have valid dominant land use data." I have checked he LU_INDEX data from the geo_em and met_em files and both are valid and identical to what I had in my previous met_em and geo_em files from my other simulations. I have had numerous issues incorporating this LULC dataset into WRF before, but this is a new one that I cannot wrap my head around nor find a solution for within the help forums. Attached are all of my log files, a sample binary file from the LULC dataset (converted from GeoTIFF using Q-GIS) and relevant index file, a sample met_em and geo_em file, and my namelists from WPS and WRF. Any help that anyone can provide would be much appreciated, thanks!


    8.6 MB · Views: 33
  • namelist.wps
    1.5 KB · Views: 35
  • namelist.input
    4.4 KB · Views: 39
    22.1 MB · Views: 28
  • rsl.out.0001.log
    114.7 KB · Views: 28
  • index.txt
    430 bytes · Views: 32
    1.2 KB · Views: 31
  • metgrid.log
    1.2 MB · Views: 31
  • geogrid.log
    47.4 KB · Views: 33
I looked at your geo_em and met-em files. I did see valid lu_index in those files. So the error message is confusing. Looking into the code dyn_em/module_initialize_real.F, this error is produced in the pice of code below:
2983          IF ( grid%lu_index(i_valid,j_valid) .GT. 0.5 ) THEN
2984             DO j = jts, MIN(jde-1,jte)
2985                DO i = its, MIN(ide-1,ite)
2986                   IF ( skip_middle_points_t ( ids , ide , jds , jde , i , j , em_width , hold_ups ) ) CYCLE
2987                   grid%ivgtyp(i,j) = NINT( grid%lu_index(i,j) )
2988                   grid%vegcat(i,j) = grid%ivgtyp(i,j)
2989                END DO
2990             END DO
2991          ELSE
2992             WRITE ( a_message , * ) 'You have set surface_input_source = 3,'//&
2993                                     ' but your geogrid data does not have valid dominant land use data.'
2994             CALL wrf_error_fatal ( a_message )
2995          END IF

Please print the index i_valid,j_valid, and lu_index(i_valid,j_valid). I am suspicious that something may be wrong in lu_index(i_valid,j_valid). Please keep me updated about the issue.
Sorry that took a while, I tried recompiling WRF to see if that was the issue and I ran into some errors doing that. Got it all working and printed out those values, which are:

i_valid = 45
j_valid = 1
grid%lu_index = 0.000000

That should be for the first domain which is what is crashes on. After recompiling it is still giving me the same error and crashing at the same point, so that had no impact on the issue.
The value of LU_INDEX shouldn't be zero. This is why the model complains that the variable is out of range.
I just re-check your met_em data. I found that lu_index has different values over the ocean. it is either 1 or 0. Note that you should set lu_index to a same, specific value over the water (ocean and lake), and this value shouldn't be zero.
Thank you so much for your help. I put "missing_value = 0" into the index file and it ran without any issues. I was using an old(er) modified index file that I thought worked, but I guess it was old enough that I had modified it to include the missing value line and forgot about it. Again, thank you for the help, it's all working now!