subroutine asd( * cslagm, cslmin, * cslmax, chtsmx, cs0ags, * cslagx, se0, se1) c + + + ARGUMENT DECLARATIONS + + + real cslagm, cslmin real cslmax, chtsmx, cs0ags real cslagx, se0, se1 c + + + LOCAL VARIABLES + + + real c4p, c4m c + + + ARGUMENT DEFINITIONS + + + c cslagm - aggregate geometric mean diameter c cslmin - min value of aggregate gmd c cslmax - max value of aggregate gmd c chtsmx - max temperature (C) of layer for the day c cslagx - max value of aggregate size (mm) c se0 - relative agg stability prior to SOIL update c se1 - relative agg stability after SOIL update c + + + LOCAL VARIABLE DEFINITIONS + + + c c4p - c c4m - c + + + END SPECIFICATIONS + + + c ASD SECTION: c calc. slope parameter using prior geometric mean dia. if (cslagm .le. cslmin) then cslagm = cslmin c4m = 0.5 else c4m = sqrt((cslagm - cslmin)/ * (cslmax - cslmin)) * (1.0/se0) if (c4m .lt. 0.5) c4m = 0.5 if (c4m .gt. 2.0) c4m = 2.0 endif c calc. new geom. mean dia. cslagm = cslmin + (cslmax - cslmin)*(c4m*se1)**2.0 c restrict upper size if not frozen if ((chtsmx .ge. 0.0) .and. (cslagm .gt. cslmax)) then cslagm = cslmax endif c calc geom. standard deviation (eq. S-??) c this equation is asmytotic to zero at zero and +infinity c Based on the definition of Geometric Standard Deviation this c should be asmototic to 1 c cs0ags = 1.0 / (0.0203 + 0.00193 *cslagm + c & 0.074 / sqrt(cslagm)) c this replacement equation is asmytotic to 1 and is very close c to the original where the gsd was greater than 1 cs0ags = 1.0 + 1.0 & / (0.012448 + 0.002463*cslagm + 0.093467/sqrt(cslagm)) c calc. max. diameter for asd c4p = 1.52 * cslagm**(-0.449) cslagx = (cs0ags**c4p) * cslagm if(cslagx.lt.cslagm) then write(*,*) 'asd:',cslagm,cs0ags,cslagx end if end