c*********************************************************************** c* subroutine sbwind c*********************************************************************** subroutine sbwind i (vus, vust, vusp, wustfl, o aicsr) c c +++ PURPOSE +++ c To initialize a soil friction velocity on each grid point c and modify it for barriers and hills; c To initialize en thresh. and tp thresh. fr. velocites on grid; c To calculate max ratios of friction velocity to threshold c friction velocity c To update only friction vel. when 'update' of sfc. =0 c c +++ ARGUMENT DECLARATIONS +++ integer wustfl real vus, vust, vusp real aicsr c +++ ARGUMENT DEFINITIONS +++ c icsr - index of current subregion. c wustfl - flag to signal surface was updated c wur - ratio of current to ref wind speed( wu at last update) c vus - uncorrected subregion soil friction velocity (m/s). c vust - subrgion soil threshold friction velocity (m/s). c wusp - subregion soil threshold friction vel. trans. cap. (m/s) c aicsr- max ratio of friction velocity to thresh. friction vel. c imax - no. grid intervals in x-direction. c jmax - no. grid intervals in y-direction. c ix - grid interval in x-direction(m). c jy - grid interval in y-direction(m). c wus - soil friction velocity at grid points corrected for c hills and barriers (m/s). c wust - threshold fr. vel. for en. at grid points c wusp - threshold fr. vel. for trans. cap. at grid points c c + + + GLOBAL COMMON BLOCKS + + + *$noreference include 'p1werm.inc' include 'm1geo.inc' c c + + + LOCAL COMMON BLOCKS + + + include 'erosion/m2geo.inc' include 'erosion/w2wind.inc' include 'erosion/e2grid.inc' include 'erosion/e3grid.inc' c *$reference c +++ LOCAL VARIABLES +++ integer i,j c real*4 at c c + + + END SPECIFICATIONS + + + c aicsr = 0. do 50 i = 1, imax do 45 j = 1, jmax if (wustfl .eq. 0) then wus(i,j) = vus at = wus(i,j)/vust aicsr = amax1(aicsr, at) else wus(i,j) = vus wust(i,j)= vust wusp(i,j)= vusp at = wus(i,j)/vust aicsr = amax1(aicsr, at) endif c c correct friction velocity for hills c if (nhill .ne. 0 ) then c wus(i,j) = wus(i,j) * w0hill(i,j,kbr) c endif c c correct friction velocity for barriers if (nbr .ne. 0 ) then wus(i,j) =wus (i,j) * w0br (i,j,kbr) endif 45 continue 50 continue c return end c++++ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++