!********************************************************************** ! subroutine sbinit !********************************************************************** subroutine sbinit ! +++ purpose +++ ! Input subregion values of variables from other submodels ! to the grid points of the erosion submodel which erosion changes ! Initialize output grid array ! Calc. soil fraction of 4 dia. from asd, & rr shelter angles ! ! +++ ARGUMENT DECLARATIONS +++ ! ! +++ ARGUMENT DEFINITIONS +++ ! ! +++ PARAMETER +++ ! ! + + + GLOBAL COMMON BLOCKS + + + include 'p1werm.inc' include 'm1subr.inc' include 's1phys.inc' include 's1agg.inc' include 's1dbh.inc' include 's1surf.inc' include 's1sgeo.inc' include 'b1glob.inc' ! ! + + + LOCAL COMMON BLOCKS + + + include 'erosion/p1erode.inc' include 'erosion/m2geo.inc' include 'erosion/e2grid.inc' include 'erosion/s2agg.inc' include 'erosion/s2surf.inc' include 'erosion/s2sgeo.inc' include 'erosion/e2erod.inc' ! ! ! + + + LOCAL VARIABLES + + + integer icsr, i, j, ke real sfd1(mnsub), sfd10(mnsub), sfd84(mnsub), sfd200(mnsub) real xa ! ! + + + LOCAL VARIABLE DEFINITIONS + + + ! icsr = index of current subregion ! ! + + + SUBROUTINES CALLED + + + ! sbsfdi ! ! + + + END SPECIFICATION + + + ! ! calculate fraction less than diameter from asd ! determine current subregion do 5 icsr = 1, nsubr call sbsfdi & & (aslagm(1,icsr),as0ags(1,icsr), aslagn(1,icsr), & & aslagx(1,icsr), 0.01, sfd1(icsr)) call sbsfdi & & (aslagm(1,icsr), as0ags(1,icsr), aslagn(1,icsr), & & aslagx(1,icsr), 0.1, sfd10(icsr)) call sbsfdi & & (aslagm(1,icsr), as0ags(1,icsr), aslagn(1,icsr), & & aslagx(1,icsr), 0.84, sfd84(icsr)) ! store initial sf84 sf84ic = sfd84(icsr) !^^^ tmp out ! write (*,*) ! write (*,*) 'sbinit out' ! write (*,*) 'aslagm as0ags aslagn aslagx sfd84', ! & aslagm(1,icsr), as0ags(1,icsr),aslagn(1,icsr), ! & aslagx(1,icsr),sfd84(icsr) ! write (*,*) !^^^ tmp end call sbsfdi & & (aslagm(1,icsr), as0ags(1,icsr), aslagn(1,icsr), & & aslagx(1,icsr), 2.0, sfd200(icsr)) 5 continue ! do 20 j = 0, jmax do 10 i = 0, imax ! determine subregion (at present only 1 subregion) ! input variables to grid cells icsr = csr(i,j) sf1 (i,j) = sfd1(icsr) sf10 (i,j) = sfd10(icsr) sf84 (i,j) = sfd84(icsr) sf200(i,j) = sfd200(icsr) ! szcr(i,j) = aszcr (icsr) sfcr(i,j) = asfcr (icsr) smlos(i,j) = asmlos (icsr) sflos(i,j) = asflos (icsr) ! szrgh(i,j) = aszrgh (icsr) !initialize RR values for each grid cell slrr(i,j) = aslrr (icsr) if (slrr(i,j) < SLRR_MIN) then slrr(i,j) = SLRR_MIN else if (slrr(i,j) > SLRR_MAX) then slrr(i,j) = SLRR_MAX endif dmlos(i,j) = 0.0 sf84mn(i,j) = 0.0 ! ! initialize output array- now in sbigrd ! egt(i,j) = 0 ! egtss(i,j) = 0 ! egt10(i,j) = 0 ! 10 continue 20 continue ! return end !++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++