subroutine thin i (thinflg, thinval, grainf, cropf, standf, m cstems, cyld, cstand, o tstems, tyld, tstand, tflat, m dstems, dstand, dflat) c + + + PURPOSE + + + c Process # 37 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. c c 0 - Remove fraction of Plants, thinval = fraction c 1 - Thin to Plant Population, thinval = population c c Note that biomass for any of these pools that are cut is c either transferred to the coresponding flat pool or removed c depending on the three removal fraction values input c c + + + KEYWORDS + + + c cut, transfer, biomass manipulation include 'p1werm.inc' include 'p1unconv.inc' c c + + + ARGUMENT DECLARATIONS + + + c integer thinflg real thinval, grainf, cropf, standf real cstems, cyld, cstand real tstems, tyld, tstand, tflat real dstems(mnbpls),dstand(mnbpls),dflat(mnbpls) c c + + + ARGUMENT DEFINITIONS + + + c c thinflg - thinning value definition flag c thinval - above ground height standing crop and/or c residue is cut to (mm) or fraction c cstems - crop population (# stems/m^2) c cyld - (crop pool) yield biomass (kg/m^2) c cstand - (crop pool) standing biomass (kg/m^2) c tstems - (temporary crop pool) stem population (# stems/m^2) c tyld - (temporary crop pool) yield biomass (kg/m^2) c tstand - (temporary crop pool) standing biomass (kg/m^2) c tflat - (temporary crop pool) flat biomass (kg/m^2) c dstems - (decomp pool) number of standing residue stems (#/m^2) c dstand - (decomp pool) standing biomass by age pool (kg/m^2) c dflat - (decomp pool) surface biomass by age pool (kg/m^2) 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 c c + + + LOCAL VARIABLE DEFINITIONS + + + c c i - loop variable for decomp pools (3 pools total) c + + + END SPECIFICATIONS + + + c convert thinning value for all cases to fraction of plant c population to remain select case(thinflg) case(0) thinval = 1.0-thinval case(1) if(cstems.gt.0.0) then thinval = min(1.0, thinval/cstems) else thinval = 0.0 end if case default write(*,*) 'Invalid thinning flag, nothing thinned' end select C*** print *, 'cut tflg: ', tflg C*** print *, 'tflat before cutting: ', tflat C*** print *, 'cutht/cstemht/tstemht: ', cutht,cstemht,tstemht C!!!!!!!!!!!!!!!!!!!!!!!!!!!! C This thinning is applied to all standing pools, C like a cutting device, it is not discriminate in any way c thin crop pool cyld = cyld * thinval tflat = tflat+cstand*(1.0-thinval)*(1.0-cropf) cstand = cstand*thinval c thin temporary crop pool tyld = tyld * thinval tflat = tflat+tstand*(1.0-thinval)*(1.0-cropf) tstand = tstand*thinval 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=1,mnbpls dflat(i) = dflat(i)+dstand(i)* & (1.0-thinval)*(1.0-standf) dstand(i) = dstand(i)*thinval 40 continue end