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

MPASSIT

F-Colby-UML

New member
Has anyone used the utility MPASSIT (https://github.com/LarissaReames/MPASSIT/tree/master)? Larissa Reames was let go from NOAA in the early DOGE cuts and her email address no longer works.

I have been able to compile the code on a 4-node system but running the code results in an immediate crash without much information.

If anyone has suggestions, that would be helpful. I would love to be able to convert my MPAS output to WRF-style output.

Thanks!
 
Check the error logs but in my experience you need to a bigmem partition or you'll get OOM errors.

I use 2 nodes (40 tasks each on my machine) for 15km horizontal resolution global runs. I use the following in my slurm script:
#SBATCH --qos=batch
#SBATCH --partition=bigmem
#SBATCH --nodes=2
#SBATCH -t 04:00:00
srun -n 80 MPASSIT/bin/mpassit namelist.input.fhr

One word of warning for global forecasts, the netcdf will end up with grid metadata in distances from the equator rather than angular widths needed for latlon projection:
// global attributes:
...
:DX = 15008.9589025252 ;
:DY = 15008.9589025252 ;

If you're trying to produce grib products with UPP, you will need to hardcode the following in UPP/sorc/ncep_post.fd/INITPOST_MPAS.F and recompile:

call ext_ncd_get_dom_ti_real(DataHandle,'DX',tmp, &
1,ioutcount,istatus)
if(maptype==0)then
tmp=0.135
dxval=tmp*gdsdegr ! grid length in degrees for lat-lon proj
write(6,*) 'dxval= ',tmp
else
dxval=nint(tmp)
write(6,*) 'dxval= ',dxval
endif

call ext_ncd_get_dom_ti_real(DataHandle,'DY',tmp, &
1,ioutcount,istatus)
if(maptype==0)then
tmp=0.135
dyval=tmp*gdsdegr ! grid length in degrees for lat-lon proj
write(6,*) 'dyval= ',tmp
else
dyval=nint(tmp)
write(6,*) 'dyval= ',dyval
endif

Credit to GSL and OAR for this workaround.
 
@ F-Colby-UML

I don't have an immediate answer to your question, Without detailed error information, It is hard to tell what is wrong.

Just for your reference, I have run a quick test using MPASSIT. Below is the namelist I used:

&config
grid_file_input_grid = "/glade/derecho/scratch/chenming/MPAS-Forum/conus.init.nc"
hist_file_input_grid = "/glade/derecho/scratch/chenming/MPAS-Forum/history.2024-03-15_00.01.00.nc"
diag_file_input_grid = "/glade/derecho/scratch/chenming/MPAS-Forum/diag.2024-03-15_00.01.00.nc"
block_decomp_file = "/glade/derecho/scratch/chenming/MPAS-Forum/conus.graph.info.part.1280"
output_file = "/glade/derecho/scratch/chenming/MPAS-Forum/mpassit_out.nc"
interp_diag = .true.
interp_hist = .true.
wrf_mod_vars = .true.
esmf_log = .false.
nx = 424
ny = 315
dx = 15000.0
dy = 15000.0
ref_lat = 39.0
ref_lon = -97.5
truelat1 = 30.0
truelat2 = 60.0
stand_lon = -97.5
target_grid_type = "lambert"
is_regional = .true.
/

History file contains 835586 meshes (global 60-3km mesh). I ran this package in NCAR HPC (derecho) using 10 nodes (1280 processors) and MPASSIT can run successfully.

I am not sure what global mesh you are using. Probably you can try with more processors just in case the crash is due to insufficient memory.

Please keep me posted how it works. Thanks.
 
Last edited:
Top