Giter VIP home page Giter VIP logo

Comments (6)

jhamman avatar jhamman commented on May 31, 2024

@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:

  1. Leave the option as is implemented now but provide documentation on the global parameter webpage.
  2. The LOG_MATRIC=FALSE option: Remove the option and the LOG_MATRIC code.
  3. The LOG_MATRIC=True option: Remove the option and make the LOG_MATRIC code the default treatment of soil moisture drainage.

from vic.

tbohn avatar tbohn commented on May 31, 2024

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-L352

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 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:

  1. 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
    .
  2. The LOG_MATRIC=FALSE option: Remove the option and the LOG_MATRIC
    code.
    1. 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.

jhamman avatar jhamman commented on May 31, 2024

The above PR (#143) is not set in stone but does illustrate how easy it is to remove the option entirely.

from vic.

bartnijssen avatar bartnijssen commented on May 31, 2024

Removed by merging PR #143

from vic.

jhamman avatar jhamman commented on May 31, 2024

I'm reopening since I'm seeing a few pieces of the LOG_MATRIC option still in the code.

from vic.

jhamman avatar jhamman commented on May 31, 2024

close again via 1b7d23a

from vic.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.