c c subroutine cut i (af,cutht, i dstand,dflat, i stand, i cropht,dstemht, i bflg) c + + + PURPOSE + + + c Process # 32 called from doproc.for c c This subroutine performs the biomass manipulation of cutting c biomass. The component (either crop or a biomass pool) removed c is determined by flag which is set before the call to this c subroutine. The flag may contain any number of combinations c found below. c c Flags (binary #'s actually) c 0 - cut standing crop at cut height (1) c 1 - cut decomp pool #1 1'st residue (2) c 2 - cut decomp pool #2 2'nd residue (4) c 3 - cut decomp pool #3 oldest residue(8) c Note that biomass for any of these pools that are cut is transfered c to the cooresponding flat pool. c In addition, cutht must be positive for this process, so root mass c and below ground biomass are not delt with. Below ground biomass will c usually be dealt with using either remove or the transfer subroutine. c c + + + KEYWORDS + + + c remove, biomass manipulation *$noereference include 'p1werm.inc' include 's1layr.inc' include 'manage/harv.inc' *$reference c c + + + ARGUMENT DECLARATIONS + + + c integer bflg real af,cutht real dstand(mnbpls),dflat(mnbpls) real stand,dstemht(mnbpls) real cropht c c + + + ARGUMENT DEFINITIONS + + + c c cropht - current crop height (m) c af - area fractio of biomass removed (rest is left as flat residue) c cutht - the above ground height that a crop is cut to c dflat - (decomp) surface biomass by age pool (kg / m^2) c dstand - (decomp) standing biomass by age pool (kg / m^2) c dstemht - (decomp) biomass stem height by pool (m) c bflg - flag indicating what to cut c 1 - Crop is cut c 2 - 1'st residue pool c 4 - 2'nd residue pool c 8 - 3'rd residue pool c Note that any combination of pools or crop may be used c A bit test is done on the binary number to see what to modify c stand - standing crop biomass (kg / m^2) c c + + + ACCESSED COMMON BLOCK VARIABLE DEFINITIONS + + + c c mnbpls - max number of decomposition pools (currently=3) c c + + + PARAMETERS + + + c c + + + LOCAL VARIABLES + + + c integer i real flatmass,standmass c c + + + LOCAL VARIABLE DEFINITIONS + + + c c flatmass - temporary flatmass pool (kg / m^2) c i - loop variable for decomp pools (3 pools total) c standmass - temporary standing mass pool (kg / m^2) c + + + END SPECIFICATIONS + + + if (BTEST(bflg,1)) then c print *, 'Flag 1 is on' c This flag is set when there is a need to cut the c crop at a certain harvest height. c print *, 'cropht', cropht c print *, 'cutht', cutht if (cutht.lt.cropht) then flatmass = flatmass+af* & stand*(1.0-(cutht/cropht)) standmass = stand*(1.0-af*cutht/cropht) cropht = cutht else c print *, 'No crop biomass to cut' endif endif c Now need to check and see if we need to cut the decomp pools (1-3) c for each individual pool check to see if there is biomass above the c proposed cut height, if so, adjust the pool as necessary. do 40 i=2,mnbpls+1 if (BTEST(bflg,i)) then if (cutht.lt.dstemht(i-1)) then dflat(i-1) = dflat(i-1)+af*dstand(i-1)* & (1.0-af*cutht/dstemht(i-1)) dstand(i-1) = dstand(i-1)*(1.0-af*cutht/dstemht(i-1)) dstemht(i-1) = cutht if (dflat(i-1).lt.0.0) dflat(i-1)=0.0 if (dstand(i-1).lt.0.0) dstand(i-1)=0.0 if (dstemht(i-1).lt.0.0) dstemht(i-1)=0.0 else print *, 'Nothing to cut in decomp pool',i-1 endif endif 40 continue end