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 failing in compute_mesh ( MPASPECT), missing required namelist variables?

sdurski

New member
What variables specifically need to be in namelist.input for real.exe to execute when compiled for parallelization (dm) ?

I am trying to use real.exe in WRF 4.5, with mpi paralellization(mpt) and an intel compiler.

In my case real.exe seems to read in all the variables in &domain and &namelist_quilt just fine, but balks in compute_mesh because it is passing

compute_mesh(ntasks_local-num_io_tasks=0,n_x=0,n_y=0)

all zeros.
This leads to an error in compute_mesh when called from module_dm of the form

MPASPECT: UNABLE TO GENERATE PROCESSOR MESH. STOPPING.

I'm guessing the tasks, and n_x and n_y need to be other than zero but am not clear on if there should be values in my namelist that are written to these.

I've scrutinized my namelist for missing variables, or multiple values being supplied for single valued variables but must be missing something

At the point of fatal error in the execution, as far as I can tell, these are the only two parts of my namelist.input that have been read in.

&domains
time_step = 60,
time_step_fract_num = 0,
time_step_fract_den = 1,
max_dom = 2,
e_we = 740, 1528,
e_sn = 310, 427,
e_vert = 60, 60,
dzstretch_s = 1.1,
p_top_requested = 5000,
num_metgrid_levels = 38,
num_metgrid_soil_levels = 4,
dx = 0.09,
dy = 0.09,
grid_id = 1, 2,
parent_id = 0, 1,
i_parent_start = 1, 117,
j_parent_start = 1, 115,
parent_grid_ratio = 1, 3,
parent_time_step_ratio = 1, 3,
feedback = 0,
smooth_option = 0,
dx = 0.09,
dy = 0.09,
/

&namelist_quilt
nio_tasks_per_group = 0, 0,
nio_groups = 1,
/
 
The solution I have found is to rebuild and simply run real.exe serially.

I was trying to run real.exe in parallel by configuring the wrf compilation with option 24 ( dm SGI mpt) using intel20 compilers. I can see exactly where in the code the problem is but not discern which if any variables are being mis-assigned or going unassigned. There are no obvious errors in the way the code is executing. But the piece of code that is causing the failure is mpaspect called from compute_mesh called from module_dm. It is attempting to distribute tasks based on n_x and n_y or lat partitioning. But none of these have been assigned values given the namelist I'm using, nor does an auto-partitioning (mpaspect) have the information it needs to work.

So I've recompiled wrf as a serial intel build (option 13). This avoids the problem since no domain decomposition is attempted. (Those routines are not built into the executable).

Aside: In my case for a lat-lon, grid geogrid output d_lat, and d_lon (fractions of degrees) as dx and dy (as can be seen above in my namelist) rather than cartesian distance. These needed to be changed to units of meters, presumably to represent the nominal dx and dy in the domain. dx and dy for each domain needs to be specified. In my case this meant namelist should have dx = = 10005.97, 3335.32 and similarly for dy. But this was not related to the error I described above.

Note: running real.exe in serial for large domains or long duration simulations can be quite slow. In my case it is taking approximately 3 hours to create one month of boundary conditions (3hr temporal resolution of input) for the domains described in the namelist above.
 
Top