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

Noah-MP dveg=4

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

I am trying to change the vegetation fraction for my WRF simulations by reducing the SHDMAX variable in the wrfinput_d01 file. According to the code in 'module_sf_noahmplsm.F' the DVEG=4 option sets FVEG=SHDMAX and uses table lai variables. When looking through my wrfout files the fveg variable is set to 0.05 everywhere except for where there is snow where it is set to zero. Shouldn't FVEG be a copy of the wrfinput SHDMAX variable? Additionally, in the wrfout files, SHDMAX is now set to zero (SHDMIN is not set to zero). I have poured over the fortran code, and I don't really understand what's happening.

Any insight?

My goal is to reduce the FVEG variable by a small amount and see how surface temperature, etc responds.


I think I narrowed down the problem. If sst_update is on, the noah-mp DVEG option seems to be ignored. So instead of FVEG=SHDMAX noah-mp must be using the VEGFRA that is given to it by the wrflowinput file. I'll run a test with sst_update off.
OK, finally I have realized that the variable I am modifying is not being recognized by WRF as a valid input. Somehow the attributes or something is causing the SHDMAX variable to be zero. Can you point me to what modules handle the reading in of data from the wrfinput? I can't seem to figure out why it's not being read.
I believe you were correct when you said that if you have sst_update turned on, that VEGFRA is coming from the new wrflowinp file, instead of the wrfinput file. Is that not what you found?
Looking through the fortran code, it looks like VEGRFA isn't used by noah-mp unless explicitly set. I can't find where the wrflowinput file is being used except to update sst, so I am thinking that WRF updates VEGFRA with wrflowinput data, but it seems like it shouldn't matter. The code that reads in files is much more difficult for me to understand.

I *THINK* that my problem is that once I modify SHDMAX, WRF doesn't like some aspect of it, so variable is set to zero upon being read in. This explains the problems I have been having. I did discover that initially I had inadvertently changed the order of the dimensions, but I have fixed that and it's still not being read in properly. I am thinking it might have something to do with the attributes of the variable not sure.

Thanks for any insights you might have!
I would recommend trying to go into the module_sf_noahmplsm.F code and putting in some print statements to see the values of FVEG and SHDMAX at certain points. This way you could pin down where exactly it's setting it to 0. If you haven't done so already, I would try a quick test without sst_update, just to see if you get a different result. If so, then it's likely something to do with the sst_update, and perhaps we need to look elsewhere in the code. If it's the same, then that at least you'll know that isn't a factor to consider.