c c NOTE: This subroutine needs other components to be passed to it so c they can be mixed. Currently this is not done. I need to get c together with L. Wagner on this. A.N.Hawkins 8/1/95 subroutine mix i (u,nlay,density,laythk,sand,silt,clay, i ph,magnes,sodium,calcarb,cation,exchsod, i organic,nhumus,phumus,plabile,sumbase,aggden, i drystab,soilwatr,soilair,ftnbar,thrdbar,avawatr, i satwatr,root,blwgnd, i massf) c + + + PURPOSE + + + c c This subroutine reads in the array(s) containing the components c that need to be mixed. It then calls the subroutine mixproc c and the actual mixing process is performed. c c c c + + + KEYWORDS + + + c mixing *$noereference include 'p1werm.inc' include 'manage/asd.inc' *$reference c c + + + ARGUMENT DECLARATIONS + + + integer nlay real sand(mnsz),silt(mnsz),clay(mnsz),ph(mnsz), & magnes(mnsz),sodium(mnsz),calcarb(mnsz),cation(mnsz), & exchsod(mnsz),organic(mnsz),nhumus(mnsz),phumus(mnsz), & plabile(mnsz),sumbase(mnsz),aggden(mnsz),drystab(mnsz) real soilwatr(mnsz),soilair(mnsz),ftnbar(mnsz),thrdbar(mnsz), & avawatr(mnsz),satwatr(mnsz) real root(mnbpls,mnsz),blwgnd(mnbpls,mnsz) real massf(msieve+1,mnsz) real u,density(mnsz),laythk(mnsz) c c c + + + ARGUMENT DEFINITIONS + + + c c aggden - aggregrate density c avawatr - available soil water content c blwgnd - below ground biomass c calcarb - fraction of calcium carbonate c cation - cation exchange capcity c clay - fraction of clay c drystab - dry aggregrate stability c density - soil density c exchsod - exchangable sodium percentage c ftnbar - 15 bar soil water content c laythk - layer thickness c magnes - magnesium ion concentration c massf - mass fractions for sieve cuts c nhumus - organic N concentration of humus c nlay - number of soil layers used c organic - fraction of organic matter c ph - soil Ph c phumus - organic P concentration of humus c plabile - fraction of fertilizer P that is labile c sand - fraction of sand c silt - fraction of silt c soilair - soil air entery potential c soilwatr - soil water content (mass bases) c sumbase - sum of bases c root - root mass by layers c satwatr - saturation soil water content c sodium - sodium ion concentration c thrdbar - 1/3 bar soil water content c u - mixing coefficient c c + + + ACCESSED COMMON BLOCK VARIABLE DEFINITIONS + + + c c mnsz - max number of soil layers c mnbpls - max number of decomposition pools c c + + + PARAMETERS + + + c c + + + LOCAL VARIABLES + + + c real dum(mnsz), dum1(mnsz), dum2(mnsz), mass, cmass integer i,j c c + + + LOCAL VARIABLE DEFINITIONS + + + c c cmass = total mass of a component contained in a subregion c dum = dummy variable used in calculating the mass in a subregion c dum1 = dummy variable used in calculating mass of a component c in a subregion c lay = number of layers in a specified subregion c mass = total mass in a subregion c c + + + END SPECIFICATIONS + + + c c Print the initial masses calculated above c c print*,'initial data - before mixing' c do 230 i=1,5 c print*, root(1,i) c230 continue c Calculate the total mass in all layers within a subregion c mass = 0 do 25 i=1,nlay dum(i) =density(i)*laythk(i)+mass mass = dum(i) 25 continue c c Make calls to the mixing process. First need to calculate c the total mass of the component to be mixed. This is then passed c in the call. c c Need to calculate the component mass before making the call c to mixproc for each and every component. This is then passed to c mixproc and used in the mix calculation. c c************************SOIL VARIABLES******************** cmass = 0.0 do 50 i=1,nlay dum1(i) = density(i)*laythk(i)*sand(i)+cmass cmass = dum1(i) 50 continue call mixproc(u, nlay, sand, cmass, mass) cmass = 0.0 do 51 i=1,nlay dum1(i) = density(i)*laythk(i)*silt(i)+cmass cmass = dum1(i) 51 continue call mixproc(u, nlay, silt, cmass, mass) cmass = 0.0 do 52 i=1,nlay dum1(i) = density(i)*laythk(i)*clay(i)+cmass cmass = dum1(i) 52 continue call mixproc(u, nlay, clay, cmass, mass) cmass = 0.0 do 53 i=1,nlay dum1(i) = density(i)*laythk(i)*ph(i)+cmass cmass = dum1(i) 53 continue call mixproc(u, nlay, ph, cmass, mass) cmass = 0.0 do 54 i=1,nlay dum1(i) = density(i)*laythk(i)*magnes(i)+cmass cmass = dum1(i) 54 continue call mixproc(u, nlay, magnes, cmass, mass) cmass = 0.0 do 55 i=1,nlay dum1(i) = density(i)*laythk(i)*sodium(i)+cmass cmass = dum1(i) 55 continue call mixproc(u, nlay, sodium, cmass, mass) cmass = 0.0 do 56 i=1,nlay dum1(i) = density(i)*laythk(i)*calcarb(i)+cmass cmass = dum1(i) 56 continue call mixproc(u, nlay, calcarb, cmass, mass) cmass = 0.0 do 57 i=1,nlay dum1(i) = density(i)*laythk(i)*cation(i)+cmass cmass = dum1(i) 57 continue call mixproc(u, nlay, cation, cmass, mass) cmass = 0.0 do 58 i=1,nlay dum1(i) = density(i)*laythk(i)*exchsod(i)+cmass cmass = dum1(i) 58 continue call mixproc(u, nlay, exchsod, cmass, mass) cmass = 0.0 do 59 i=1,nlay dum1(i) = density(i)*laythk(i)*organic(i)+cmass cmass = dum1(i) 59 continue call mixproc(u, nlay, organic, cmass, mass) cmass = 0.0 do 60 i=1,nlay dum1(i) = density(i)*laythk(i)*nhumus(i)+cmass cmass = dum1(i) 60 continue call mixproc(u, nlay, nhumus, cmass, mass) cmass = 0.0 do 61 i=1,nlay dum1(i) = density(i)*laythk(i)*phumus(i)+cmass cmass = dum1(i) 61 continue call mixproc(u, nlay, phumus, cmass, mass) cmass = 0.0 do 62 i=1,nlay dum1(i) = density(i)*laythk(i)*plabile(i)+cmass cmass = dum1(i) 62 continue call mixproc(u, nlay, plabile, cmass, mass) cmass = 0.0 do 63 i=1,nlay dum1(i) = density(i)*laythk(i)*sumbase(i)+cmass cmass = dum1(i) 63 continue call mixproc(u, nlay, sumbase, cmass, mass) cmass = 0.0 do 64 i=1,nlay dum1(i) = density(i)*laythk(i)*aggden(i)+cmass cmass = dum1(i) 64 continue call mixproc(u, nlay, aggden, cmass, mass) cmass = 0.0 do 65 i=1,nlay dum1(i) = density(i)*laythk(i)*drystab(i)+cmass cmass = dum1(i) 65 continue call mixproc(u, nlay, drystab, cmass, mass) c************************SOIL VARIABLES******************** c c**********************HYDROLOGY VARIABLES******************** c cmass = 0.0 do 101 i=1,nlay dum1(i) = density(i)*laythk(i)*soilwatr(i)+cmass cmass = dum1(i) 101 continue call mixproc(u, nlay, soilwatr, cmass, mass) cmass = 0.0 do 102 i=1,nlay dum1(i) = density(i)*laythk(i)*soilair(i)+cmass cmass = dum1(i) 102 continue call mixproc(u, nlay, soilair, cmass, mass) cmass = 0.0 do 103 i=1,nlay dum1(i) = density(i)*laythk(i)*ftnbar(i)+cmass cmass = dum1(i) 103 continue call mixproc(u, nlay, ftnbar, cmass, mass) cmass = 0.0 do 104 i=1,nlay dum1(i) = density(i)*laythk(i)*thrdbar(i)+cmass cmass = dum1(i) 104 continue call mixproc(u, nlay, thrdbar, cmass, mass) cmass = 0.0 do 105 i=1,nlay dum1(i) = density(i)*laythk(i)*avawatr(i)+cmass cmass = dum1(i) 105 continue call mixproc(u, nlay, avawatr, cmass, mass) cmass = 0.0 do 106 i=1,nlay dum1(i) = density(i)*laythk(i)*satwatr(i)+cmass cmass = dum1(i) 106 continue call mixproc(u, nlay, satwatr, cmass, mass) c************************HYDROLOGY VARIABLES******************** c c c********************DECOMPOSITION VARIABLES******************** c need to mix both pools and layers for these next two variables do 175 j=1,mnbpls cmass = 0.0 do 153 i=1,nlay dum1(i) = density(i)*laythk(i)*root(j,i)+cmass cmass = dum1(i) dum2(i)=root(j,i) 153 continue call mixproc(u, nlay, dum2(1), cmass, mass) do 499 i=1,nlay root(j,i)=dum2(i) 499 continue 175 continue c do 231 i=1,5 c print*, root(1,i) c231 continue do 180 j=1,mnbpls cmass = 0.0 do 154 i=1,nlay dum1(i) = density(i)*laythk(i)*blwgnd(j,i)+cmass cmass = dum1(i) dum2(i)=blwgnd(j,i) 154 continue call mixproc(u, nlay, dum2(1), cmass, mass) do 501 i=1,nlay blwgnd(j,i)=dum2(i) 501 continue 180 continue c********************DECOMPOSITION VARIABLES******************** c c c************************ASD MASS FRACTIONS******************** do 250 j=1,msieve cmass = 0.0 do 200 i=1,nlay dum1(i) = density(i)*laythk(i)*massf(j,i)+cmass cmass = dum1(i) dum2(i)=massf(j,i) 200 continue call mixproc(u, nlay, dum2(1), cmass, mass) do 503 i=1,nlay massf(j,i)=dum2(i) 503 continue 250 continue c************************ASD MASS FRACTIONS******************** c end