Comments (6)
@tbohn or @bartnijssen , do either of you have any thoughts thoughts on this. The documentation for the option is sparse but this is what I've been able to find.
If TRUE VIC uses the linear interpolation of the logarithm of the
matric potential from the two surrounding layers to estimate the
soil moisture drainage from each layer (Boone and Wetzel, 1996).
This should improve the soil moisture drainage predicted by the
low resolution solution computed by VIC.
The option is used twice in runoff.c
343 if (options.LOG_MATRIC) {
344 for( lindex = 0; lindex < options.Nlayer; lindex++ ) {
345 if( (tmp_liq = liq[lindex] - evap[lindex][frost_area]) < resid_moist[lindex] )
346 tmp_liq = resid_moist[lindex];
347 if(tmp_liq > resid_moist[lindex])
348 matric[lindex] = soil_con->bubble[lindex] * pow( (tmp_liq - resid_moist[lindex]) / (soil_con->max_moist[l 348 index] - resid_moist[lindex]), -b[lindex]);
349 else
350 matric[lindex] = HUGE_RESIST;
351 }
352 }
...and...
366 if (options.LOG_MATRIC) {
367 avg_matric = pow( 10, (soil_con->depth[lindex+1] * log10(fabs(matric[lindex])) + soil_con->depth[lindex] 367 * log10(fabs(matric[lindex+1]))) / (soil_con->depth[lindex] + soil_con->depth[lindex+1]) );
368 tmp_liq = resid_moist[lindex] + ( soil_con->max_moist[lindex] - resid_moist[lindex] ) * pow( ( avg_matric 368 / soil_con->bubble[lindex] ), -1/b[lindex] );
369 }
I see three options moving forward with this issue:
- Leave the option as is implemented now but provide documentation on the global parameter webpage.
- The
LOG_MATRIC=FALSE
option: Remove the option and the LOG_MATRIC code. - The
LOG_MATRIC=True
option: Remove the option and make the LOG_MATRIC code the default treatment of soil moisture drainage.
from vic.
The way I see it, it was an experimental option that was never fully tested
(implemented before my time). The few tests I performed on it several
months ago indicated that it didn't make a big difference. But those
weren't comprehensive tests. If it turns out to make a difference to the
results, then replacing the current default ("false") with this ("true")
would change everyone's calibrations, so it seems to me it would need to be
proven to be a huge improvement for option 3 ("true") to be worth it. If
it turns out to NOT make a difference, there's no point in keeping it.
Meanwhile, option 1 requires more effort on our parts as well, for
something that probably few if any people use.
So I'm leaning towards option 2 (removing it).
Ted
On Thu, Sep 25, 2014 at 8:21 AM, Joe Hamman [email protected]
wrote:
@tbohn https://github.com/tbohn or @bartnijssen
https://github.com/bartnijssen , do either of you have any thoughts
thoughts on this. The documentation for the option is sparse but this is
what I've been able to find.If TRUE VIC uses the linear interpolation of the logarithm of the
matric potential from the two surrounding layers to estimate the
soil moisture drainage from each layer (Boone and Wetzel, 1996).
This should improve the soil moisture drainage predicted by the
low resolution solution computed by VIC.The option is used twice in runoff.c
https://github.com/UW-Hydro/VIC/blob/develop/src/runoff.c#L343-L352343 if (options.LOG_MATRIC) {344 for( lindex = 0; lindex < options.Nlayer; lindex++ ) {345 if( (tmp_liq = liq[lindex] - evap[lindex][frost_area]) < resid_moist[lindex] )346 tmp_liq = resid_moist[lindex];347 if(tmp_liq > resid_moist[lindex])348 matric[lindex] = soil_con->bubble[lindex] * pow( (tmp_liq - resid_moist[lindex]) / (soil_con->max_moist[l 348 index] - resid_moist[lindex]), -b[lindex]);349 else350 matric[lindex] = HUGE_RESIST;351 }352 }
...and...
366 if (options.LOG_MATRIC) {367 avg_matric = pow( 10, (soil_con->depth[lindex+1] * log10(fabs(matric[lindex])) + soil_con->depth[lindex] 367 * log10(fabs(matric[lindex+1]))) / (soil_con->depth[lindex] + soil_con->depth[lindex+1]) );368 tmp_liq = resid_moist[lindex] + ( soil_con->max_moist[lindex] - resid_moist[lindex] ) * pow( ( avg_matric 368 / soil_con->bubble[lindex] ), -
<
span class="mi">1/b[lindex] );369 }370 Q12[lindex] = Ksat[lindex] * pow(((tmp_liq - resid_moist[lindex]) / (soil_con->max_moist[lindex] - resid_mo 370 ist[lindex])), soil_con->
expt[lindex]); 371 }372 else Q12[lindex] = 0.;373 last_layer[last_cnt] = lindex;374 }I see three options moving forward with this issue:
- Leave the option as is implemented now but provide documentation on
the global parameter webpage
http://www.hydro.washington.edu/Lettenmaier/Models/VIC/Documentation/GlobalParam.shtml
.- The LOG_MATRIC=FALSE option: Remove the option and the LOG_MATRIC
code.
- The LOG_MATRIC=True option: Remove the option and make the
LOG_MATRIC code the default treatment of soil moisture drainage.â
Reply to this email directly or view it on GitHub
#65 (comment).
from vic.
The above PR (#143) is not set in stone but does illustrate how easy it is to remove the option entirely.
from vic.
Removed by merging PR #143
from vic.
I'm reopening since I'm seeing a few pieces of the LOG_MATRIC option still in the code.
from vic.
close again via 1b7d23a
from vic.
Related Issues (20)
- Segmentation fault when running image driver with LAKES = TRUE (cells with and without lakes) HOT 1
- layer 0 mineral bulk density (0.77000) must be less than mineral soil density(0.57000) HOT 1
- New - Compile failure -- Resolved HOT 1
- ERROR: set_force_type.c:138: errno: None: Must supply netCDF variable name for WIND forcing file number 1
- [ERROR] ../../vic_run/src/CalcAerodynamic.c:119: errno: Numerical result out of range: Trunk space height below "center" of lower boundary
- Resloved--Can't Run vic_image.exe -g global,txt, and the error occured in the file of set_forcing_type.c HOT 1
- [QUESTION] Soil moisture fraction output with VIC v5
- Wpwp_FRACT MUST be <= Wcr_FRACT.
- multiple definition of 'xxx'; ... first defined here HOT 1
- Maximum Energy Error
- Clarification of forcing units HOT 1
- Why are there negative values in the sublimation of the snow in the canopy intercept in VIC 4.2.dīŧ
- Compilation error with VIC5.1.0: "collect2: error: ld returned 1 exit status" HOT 3
- Erroneous VIC version reporting in image driver?
- VIC Image Driver CPU Limited? Ways to increase memory use? HOT 1
- an error in docker_vic HOT 2
- Bug in classic driver in VIC 5.1.0, not able to read forcing data HOT 1
- Dose it include the both infiltration and saturation excess runoff mechanisms like Liang and Xie (2001)?
- VIC .4.2.d python script Run issues
- can user restart the VIC?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
đ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. đđđ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google â¤ī¸ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vic.