-
Notifications
You must be signed in to change notification settings - Fork 415
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update to code for Esoil in sparse vegetation. #315
Conversation
…this update to the original 4.2 release, but forgot about it until now.
@@ -85,6 +85,7 @@ double arno_evap(layer_data_struct *layer, | |||
double max_infil; | |||
double Evap; | |||
double tmpsum; | |||
double rarc_soil = 100.0; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jhamman commented: why 100.0?
@tbohn's reply: 100 gives better results than 0 or 200, from tests I conducted at eddy covariance towers. I didn't do a fancy Bayesian parameter estimation, not enough time for that. I apologize for making this a hard-wired value - I considered making it another input soil parameter, but we have so many of those already. And this likely won't noticeably affect anyone who has been using the traditional VIC set-up, since bare soil rarely occurs in the traditional parameters.
@@ -85,6 +85,9 @@ double arno_evap(layer_data_struct *layer, | |||
double max_infil; | |||
double Evap; | |||
double tmpsum; | |||
/* best-fitting value of architectural resistance, determined from | |||
evaluation of model performance at eddy covariane tower sites */ | |||
double rarc_soil = 100.0; // [s/m] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I still don't love this but if @bartnijssen is okay with it, we can keep it for now. Maybe we should #define
this in vicNl_def.h
?
When we port these changes to VIC.5, rarc_soil
needs to go into the parameters_struct
or into the soil_con_struct
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK, I'm defining a constant RARC_SOIL in vicNl_def.h...
@bartnijssen - ready for you. |
tmp_wind[0] = wind[0]; | ||
tmp_wind[1] = -999.; // unused | ||
tmp_wind[2] = -999.; // unused | ||
tmp_height = soil_con->rough/0.123; // eqn from calc_veg_roughness() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No hardcoded values - if this is a constant, it needs to be set in one of the header files.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK, I'm going to replace the -999s with ERROR (which is defined as -999 in vicNl_def.h), both here and in full_energy(), which is where I copied these lines from.
I'm defining a few other constants too:
RATIO_DH_HEIGHT_VEG 0.67 - used in calc_veg_displacement() and calc_veg_height()
RATIO_RL_HEIGHT_VEG 0.123 - used both here and in calc_veg_roughness()
WINDH_SOIL 10.0
How should I show the results - should I attach a plot of ET before/after? |
Added the following constants: RARC_SOIL 100.0 RATIO_DH_HEIGHT_VEG 0.67 RATIO_RL_HEIGHT_VEG 0.123 WINDH_SOIL 10.0
@tbohn - a plot of ET separate plots of E and T would be great. |
First, some performance statistics at eddy covariance towers - mostly Ameriflux but also 5 other towers in Mexico:
(ENF = Evergreen Needleleaf Forest; DBF = Deciduous Broadleaf Forest; CSH = Closed Shrubland; OSH = Open Shrubland; WSA = Woody Savanna; SAV = Savanna; GRA = Grassland) So, you can see that changes are minimal in forest biomes, but a big improvement in more sparsely-vegetated biomes such as savannas and grasslands. (Note: I tried to use Github-flavored markdown to make a nice table, but it doesn't appear to have worked) |
(I fixed you table - nice try though 😉 ) |
Ah, so I just needed to insert a blank line between the non-table text and table text? |
Here's an example of before and after the change, at the Santa Rita Mesquite Ameriflux Tower (Open Shrubland). NSEs pertain to daily ET over the entire observed record (generally more than one year, despite my showing only a single year in the plots). Also, "Ebare" in the plot really means "Esoil". As you can see, the main effect is to reduce Esoil a bit (primarily due to the RARC_SOIL of 100 s/m). Since Esoil usually peaks earlier than Transp during the rainy season, having Esoil too high at the beginning can lead to lower ET (both Esoil and Transp) later in the season due to depleted soil mositure. Here's another example, from Diablo (Grassland). I can include plots of other sites if you'd like to see more... |
@jhamman and @bartnijssen - do you need me to provide any more test results for this? |
This looks good to me. Thanks for showing some results @tbohn. @bartnijssen? |
@tbohn: Thanks for the plots and explanations |
Update to code for Esoil in sparse vegetation.
I had intended to add this update to the original 4.2 release, but forgot about it until now. This addresses issue #306.