c c subroutine cbury i (buryf,nlay,dflat, i dbgz,tflat,tbgz,bflg) c + + + PURPOSE + + + c c This subroutine performs the biomass manipulation process of transfering c the above ground biomass into the soil or the inverse process of bringing c buried biomass to the surface. It deals only with the biomass c pools (ie no live crop is involved) c c Flags values (binary #'s actually) c bit no. decimal value c x - bury all biomass material (0) c 0 - bury crop biomass (1) c 1 - bury biomass residue in decomp pool #1 (2) c 2 - bury standing residue in decomp pool #2 (4) c 3 - bury standing residue in decomp pool #3 (8) c c + + + KEYWORDS + + + c bury, lift, biomass manipulation include 'p1werm.inc' c c + + + ARGUMENT DECLARATIONS + + + integer nlay, bflg real buryf real dflat(mnbpls),dbgz(mnsz,mnbpls) real tflat,tbgz(mnsz) c c c + + + ARGUMENT DEFINITIONS + + + c c buryf - fraction of flat material buried c dbgz - (decomp) below ground residue / layer and decomp c pool (kg / m^2) c tbgz - (crop) below ground residue / layer and decomp c pool (kg / m^2) c tflat - (crop) flat residue pools (kg / m^2) c dflat - (decomp) flat residue pools (kg / m^2) c nlay - number of soil layers used in the operation(s) c c + + + ACCESSED COMMON BLOCK VARIABLE DEFINITIONS + + + c c mnbpls - max number of biomass pools c mnsz - max number of soil layers c c + + + PARAMETERS + + + c c + + + LOCAL VARIABLES + + + c integer lay,i,tflg real bury(mnbpls) real tbury c c + + + LOCAL VARIABLE DEFINITIONS + + + c c bury - mass of biomass that is buried c i - biomass pools (1-3) c lay - number of layers in a specified subregion c tflg - temporary biomass flag c c + + + END SPECIFICATIONS + + + c C ************ NOTE THAT THIS IS STILL BURYING ON A MASS BASIS!!!!!! c it is only a copy of mbury() yet - LEW c c perform the burying of biomass !set tflg bits correctly for "all" pools if bflg=0 if (bflg .eq. 0) then bflg = 1 ! crop pool do 10 i=1,mnbpls bflg = bflg + 2**i ! decomp pools 10 continue else tflg = bflg endif !perform the burying of biomass if (BTEST(tflg,0)) then ! crop pool tbury=tflat*buryf do 50 lay=1,nlay tbgz(lay) = tbgz(lay)+tbury/nlay 50 continue tflat=tflat-tbury endif do 100 i = 1, mnbpls if (BTEST(tflg,i)) then bury(i)=dflat(i)*buryf do 75 lay=1,nlay dbgz(lay,i) = dbgz(lay,i)+bury(i)/nlay 75 continue dflat(i)=dflat(i)-bury(i) endif 100 continue end