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

MPAS-Limited Area creates wrong lateral boundary files

jkukulies

Member
I am running an MPAS Limited Area simulation over CONUS with ERA5 boundary conditions and find that the lateral boundary condition files produced by MPAS (lbc*nc) contain wrong values that are not in line with the underlying ERA5 data they were created from. Specifically, I can see that all 55 levels contain the same values for lbc_qv which should vary with altitude. Strangely, I do not see the same values for all 55 levels for other variables (e.g. lbc_u).

The result is also evident in the simulation result. There is no visible inflow of moisture in the Pacific Northwest that is clearly visible in ERA5:

AGV_vUeHLUZeCAz8CwbNBJWJkkc9h0kt-1oZEFQsflYCP5qeLPp-c9picbMAqU4HWlseiNiCzQOBy-BgTRe0v9_47icigogPPmY5uK8OB7xmLkCaYkYfPxPi8e8djfq-4b7CR_tWOV9kNg=s2048
AGV_vUcp8xhrtGdPJgh55vsbmaUYwtWMqUTElyOFajynZod5M0g797jSY7rVdk-g0c7cUc0xbdGqLHPEY-SHNWCXkl3CRoK2I4TvLKdIAHYUL0gCLqpZotQFgrco4XGNajD5BH2MYwPD=s2048



The log-file for the model run shows that the lateral boundary conditions are correctly updated, but I am confused about the log.init_atmosphere file used for creating the boundary conditions because it shows that it assumes model levels and interpolates values onto pressure levels, although my intermediate files are structured in pressure levels.

I used this python script to create the intermediate files: GitHub - NCAR/era5_to_int: A simple Python script for converting ERA5 model-level netCDF files to the WPS intermediate format and those files are located in /glade/derecho/scratch/kukulies/era5/met_data/.

The lbc*nc files are located in /glade/campaign/mmm/c3we/juliak/MPAS_C404/limited_area_3km/ and the run directory for the simulation (and creation of lateral boundary conditions) is /glade/work/kukulies/MPAS_v8.2.3/MPAS-Model.


Many thanks in advance!
Julia
 
Hi Julia,

Would you please change permission to your files in derecho? I have no access to your data, for example,

ncdump -h /glade/campaign/mmm/c3we/juliak/MPAS_C404/limited_area_3km/MPAS_C404_limited_area_3km.init.nc

yields

/glade/campaign/mmm/c3we/juliak/MPAS_C404/limited_area_3km/MPAS_C404_limited_area_3km.init.nc: Permission denied

Thanks.
 
Julia,
I am trying to repeat your case. Can you tell me where to find your graph files?

I looked at your path:

/glade/work/kukulies/MPAS-Model/mpas_c404_comparison/regional_variable_3k/regional_domain_static.graph.info.part.*

But I got the message:

cannot access '/glade/work/kukulies/MPAS-Model/mpas_c404_comparison/regional_variable_3k/': No such file or directory
 
Sorry for the inconvenience again, Ming. I had to move some of the simulations to campaign to clear up my work space. The graph files are in

/glade/campaign/mmm/c3we/juliak/MPAS_C404/limited_area_3km/setup.
Please let me know if you encounter any other issues with file paths.
 
Please see also the jupyter notebook: /glade/derecho/scratch/kukulies/mpas_lbc.ipynb where I am showing that the lbc*nc files have constant values for qv at different vertical levels
 
Hi Julia,

Thanks for the information, --- but there is a permission deny issue for your path

/glade/campaign/mmm/c3we/juliak/MPAS_C404/limited_area_3km/setup

Please change or copy the graph file to scratch. Thanks!

Ming
 
Hi Julia,

I am writing to let you know that I can repeat your issue, and I am still exploring what is wrong.

Derecho is pretty busy these days, and I have to wait in the queue before my job can be run. Anyway, hope the long weekend can give me more chance to run the job quickly.

Ming
 
Hi Julia,

I found that your ERA5 data only includes a single level RH. However, you have spechumd at all levels.

I have recreated ERA5 intermediate files, which include RH at all levels. MPAS can successfully process these ERA5 data and create reasonable LBC files.

Please follow the steps below:

(1) Download the latest version of era5_to_int.py

(2) Run ear5_to_int.py to process ERA5 pressure level data over a single-day period (just for a quick test)

(3) Run init_atmosphere_model, remember to set the option

config_use_spechumd = false

I have a test case saved at /glade/derecho/scratch/chenming/MPAS-V8.2.3, where you can find "lbcera5.yyyy-mm-dd_hh" files.

Please let me know if you still have issues.
 
Last edited:
Hi Ming!

Thanks for looking into this and for finding the problem. So is the single-level RH in the ERA5 files due to a bug in an older era5_to_int.py version and now it should be fine? Also, there was actually a temperature-related issue that was solved by setting
Code:
 config_use_spechumd = true
too cold temperature (t2m) from ERA5 netcdf init · Issue #14 · NCAR/era5_to_int . Is this fixed now, too, so that it is no problem to set
Code:
 config_use_spechumd = false
? The weird thing is that I am pretty sure that I had
Code:
 config_use_spechumd = true
when I created the lateral boundary conditions, but maybe RH is still needed at all levels to get the correct values?
 
Hi Julia,
Please see my answers below:
Hi Ming!

Thanks for looking into this and for finding the problem. So is the single-level RH in the ERA5 files due to a bug in an older era5_to_int.py version and now it should be fine?
It is not a bug. It is just that in the older version of era5_to_int, RH is not included in the output file. It is added to the output files in newer version of era5_to_int.
Also, there was actually a temperature-related issue that was solved by setting
Code:
 config_use_spechumd = true
too cold temperature (t2m) from ERA5 netcdf init · Issue #14 · NCAR/era5_to_int . Is this fixed now, too, so that it is no problem to set
Code:
 config_use_spechumd = false
?
My understanding of this issue is that, if we set config_use_spechumd = true, then t2m should be fine. This is for the case when RH is missing and only SPECHUMD is available in the intermediate files.
The weird thing is that I am pretty sure that I had
Code:
 config_use_spechumd = true
when I created the lateral boundary conditions, but maybe RH is still needed at all levels to get the correct values?
I can confirm that you did set config_use_spechumd = true, and I can repeat your issue when using your namelist.init_atmopshere. What I found is that,

(1) when RH is missing in the input file, MPAS can run successfully with the option of config_use_spechumd = true, and it can yield reasonable results for global run. However,

(2) For regional simulation, the model can produce reasonable initial condition, but the LBC files don't contain moisture, which leads to precipitation underestimation in regional MPAS run, --- I don't know yet why moisture is missing in LBC files when SPEHUMD is used. I will continue to look at this issue once Derecho is back.

(3) When RH is available in the input file, we can run regional MPAS simulations and get reasonable results, --- as a quick fix, let's rerun era5_to_int and include RH in your ERA5 intermediate files.

Please let me know if you have any questions. Thanks!
 
Hi Julia,

Michael just fixed a few bugs in the MPAS initialization code, which is one reason why moisture is extremely low in LBC files.

Please copy the code saved at /glade/derecho/scratch/chenming/MPAS-V8.2.3/src/core_init_atmosphere/mpas_init_atm_cases.F

Then use this code to replace the original one and recompile init_atmosphere. You need to recreate LBC files, but you don't need to re-produce initial condition because the code changes only affect LBC files.

Remember that you need to rerun the latest version of era5_to_int.py so that your intermediate files can contain both RH and SPECHUMD.

Please try and let me know if you still have any issues in your regional cases. Thanks.

Ming
 
Hi Julia,

Michael just fixed a few bugs in the MPAS initialization code, which is one reason why moisture is extremely low in LBC files.

Please copy the code saved at /glade/derecho/scratch/chenming/MPAS-V8.2.3/src/core_init_atmosphere/mpas_init_atm_cases.F

Then use this code to replace the original one and recompile init_atmosphere. You need to recreate LBC files, but you don't need to re-produce initial condition because the code changes only affect LBC files.

Remember that you need to rerun the latest version of era5_to_int.py so that your intermediate files can contain both RH and SPECHUMD.

Please try and let me know if you still have any issues in your regional cases. Thanks.

Ming
Thank you for the update, Ming! I will recreate the LBC files and let you know how the results look like. I truly appreciate your help with this!

//Julia
 
Ming, now that this is solved, can I remove the old lbc files in

/glade/campaign/mmm/c3we/juliak/MPAS_C404/limited_area_3km/ or would you like to keep them?
 
Top