subroutine calchc(smst,poros,wilt,satk,usatk,fldcap) c subroutine calchc(hour,smst,poros,wilt,satk,usatk, c 1 fldcap,adj,tillq) c c +++PURPOSE+++ c This function is called from the "init" function and its c purpose is to calculate the Hydraulic Conductivity of both c the unsaturated tilled and untilled unfrozen soil layers. c c Authors(s): John Witte, UofMn WCES @ USDA-ARS-NCSRL c Date: 10/27/93 c Verified and tested by Reza Savabi, USDA-ARS, NSERL 317-494-5051 c August 1994 c c +++ARGUMENT DECLARATIONS+++ real smst,poros,wilt,satk,usatk,fldcap c real smst,poros,wilt,satk,usatk,fldcap,adj c integer hour,tillq c c +++ARGUMENT DEFINITIONS+++ cc hour - Hour of the day. c smst - Soil moisture of particular layer. (%/100) c poros - The porosity of the soil in decimal percent units. c wilt - 1/3-bar water capacty..referred to as wilting pt(%/100) c usatk - Unsaturated Hyd Conductivity for the soil. (m/hr) c satk - Saturated Hyd Conductivity for the soil. (m/hr) c fldcap - Field capacity of the soil layer. (%/100) cc adj - Adjustment factor. cc tillq - Query to inform whether or not into untilled layer. c c +++PARAMETERS+++ include 'pmxpln.inc' include 'pmxnsl.inc' include 'pmxhil.inc' include 'pmxtls.inc' include 'pmxtil.inc' include 'pmxcrp.inc' c c +++COMMON BLOCKS+++ include 'cstruc.inc' c read: iplane include 'cwater.inc' c read: ssc,st,thetafc(mxnsl) c include 'cwint.inc' c read: thetdr,ssc,hk c c include 'cparame.inc' c read: ks c +++LOCAL VARIABLES+++ c c XXX Use of the global SAVE does not follow the WEPP coding conventions c This needs to be fixed so that only the local variables which c need to have their values retained are saved. dcf 5/18/94 save c real satn,avail,uplim,persat,corfac,fcap,tenscm real tenscm, p, slo c c +++LOCAL DEFINITIONS+++ c satn - c avail - c uplim - c persat - c corfac - c fcap - c tenscm - Soil tension for the particular soil layer. (cm) c c +++END SPECIFICATIONS+++ c c c cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c c c Hydraulic Conductivity calculations for both tilled and untilled c c Unsaturated soil layers. c c c cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c -- Here, we are using all of the data that we can from the WEPP c -- water balance in order to save us some run-time and some work. c -- After the first hour, then we must take care of our own adjust- c -- ments for the other 23 hours. c satn = smst / poros c avail = satn * (poros - wilt) c uplim = (poros - wilt) c persat = avail / uplim c -- Here is where the other 23 hours come from... c if (hour .gt. 1) then c fcap = fldcap - wilt c adj = -2.655 / alog10(fcap/uplim) c endif c corfac = persat**adj c usatk = corfac * satk c -- Currently, we have been using the method of Prasanta Kalita's for c -- determining the value of unsaturated hydraulic conductivity based c -- on soil tension in units of cm. c -- tenscm = 50.0 slo = 100.0 * (fldcap - wilt) / 1.518514 p = 100.0 * (poros - smst) / abs(slo) tenscm = (10**p) * 10.0 if (tenscm .le. 15.0) then usatk = satk endif if ((15.0 .lt. tenscm) .and. (tenscm .le. 41.0)) then usatk = satk * (10**(1.06 - 0.98 * alog10(tenscm))) endif if ((41.0 .lt. tenscm) .and. (tenscm .le. 450.0)) then usatk = satk * (10**(-131.3 + 265.0 * alog10(tenscm) - 1 199.4 * (alog10(tenscm)**2) + 2 66.2 * (alog10(tenscm)**3) - 3 8.2 * (alog10(tenscm)**4))) endif if (tenscm .gt. 450.0) then usatk = satk * (10**(-12.1 + 7.58 * alog10(tenscm) - 1 1.63 * (alog10(tenscm)**2))) endif return end