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

FATAL ERROR real.exe : Could not find level above ground

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
Hi all,

I was running a simulation with WRF 4.1.5 using the aerosol-aware Thompson scheme but realized that something was wrong with real because I was not getting the QNWFA2D variable in the wrf boundary files, and then it was always 0 in the output.

Before testing again real.exe, I changed two constants regarding that variable in the dyn_em/module_initialize_real.F and in the phys/module_mp_thompson.F, that was automatically fixed in WRF version 4.3:
After changing those constants, I recompile my wrf and all the log files indicate that it was done successfully. Attached are my modules files, originally from version 4.1.5, and where I changed just a constant in a line of the code (repeated in both files).

However, now I am unable to succeed in running real.exe. This is the message that I am getting at the very beginning, with the first met_em file:

taskid: 0 hostname: r036c01s01
module_io_quilt_old.F 2931 T
Ntasks in X 12 , ntasks in Y 15
Parent domain
ids,ide,jds,jde 1 443 1 313
ims,ime,jms,jme -4 44 -4 28
ips,ipe,jps,jpe 1 37 1 21
DYNAMICS OPTION: Eulerian Mass Coordinate
alloc_space_field: domain 1 , 106637928 bytes allocated
d01 2020-01-01_00:00:00 Yes, this special data is acceptable to use: OUTPUT FROM METGRID V4.1
d01 2020-01-01_00:00:00 Input data is acceptable to use:
metgrid input_wrf.F first_date_input = 2020-01-01_00:00:00
metgrid input_wrf.F first_date_nml = 2020-01-01_00:00:00
d01 2020-01-01_00:00:00 Timing for input 4 s.
d01 2020-01-01_00:00:00 flag_soil_layers read from met_em file is 1
Max map factor in domain 1 = 1.06. Scale the dt in the model accordingly.
d01 2020-01-01_00:00:00 Using Thompson_aerosol_aware so using QNWFA monthly climo arrays to create QNWFA_now
Using sfcprs to compute psfc
-------------- FATAL CALLED ---------------
application called MPI_Abort(MPI_COMM_WORLD, 1) - process 0

Following some forum posts, I have checked my met_em files, the PSFC data, and I even download again ERA5 data, ungrib (separately SL and PL) and then metgrid again to compare and give it a try, but it does not work.

Although having the missing QNWFA2D variable in my wrf boundary files, I was able to run real with no problem, and it never gave me an error. Now it seems something is messed up after the new compilation.

I attach here my namelist.input, and the modified Fortran modules (I have not succeeded in uploading a met_em zip file).

I would appreciate any help.

Thank you so much in advance,



  • module_mp_thompson.F
    205.6 KB · Views: 33
  • module_initialize_real.F
    381.8 KB · Views: 34
  • namelist.input
    6.3 KB · Views: 42
I don't think anything is wrong in your modified code (module_initialize_real.F). This is also the code that may affect real.exe. The other you modified, module_mp_thmpson.F, only affects wrf.exe and it has no impact on real.exe.
Based on the above thinking, I am suspicious that this is an issue related to your machine environment settings. To do a quick test, you may rerun the codes that have no modification and see how it works.
Anyway, about the aerosol-aware Thompson scheme, as I told you in my previous post, we are working to fix the problems in this scheme. At present, please try to avoid using it.
Ming Chen,

You are right, there was a problem with the machine.
Now, this is solved and I finally was able to run real.exe successfully. The confusion came through the error message that the log files displayed, which indicated that the met_em files were probably wrong or corrupted, but they are correct.

Thank you so much.

Thanks for the update. I am glad to know this is a machine issue instead of a code issue.