User Tools

Site Tools


start:hype_model_description:hype_np_soil

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
start:hype_model_description:hype_np_soil [2018/06/20 12:59]
cpers [Soil erosion]
start:hype_model_description:hype_np_soil [2018/08/30 09:37] (current)
cpers [Common functions]
Line 29: Line 29:
 Fertilizer and the inorganic part of the manure are added to the IN and SP pools of the soil water. The total amount is spread out over a specified period (given by the general parameter //​fertdays//​) after the date of fertilization. An equal amount is applied each day for the specified period. The organic part of the manure is added to the fastN and fastP pools. ​ Fertilizer and the inorganic part of the manure are added to the IN and SP pools of the soil water. The total amount is spread out over a specified period (given by the general parameter //​fertdays//​) after the date of fertilization. An equal amount is applied each day for the specified period. The organic part of the manure is added to the fastN and fastP pools. ​
  
-Each class can have two crops (//​icrop//​=1,​2),​ the main crop and the secondary crop. The secondary crop do not have to cover (//a//) the whole class, e.g. if only 50% of the spring wheat (main crop) area have catch crop (second crop)  (//​a//​(1)=1,​ //​a//​(2)=0.5). The total amount of added nutrients (//​common_add//​) is calculated as the sum of fertiliser additions from the main and secondary crops. ​+Each class can have two crops (//​icrop//​=1,​2),​ the main crop and the secondary crop. The secondary crop do not have to cover (//a//) the whole class, e.g. if only 50% of the spring wheat (main crop) area have catch crop (second crop)  (//​a//​(1)=1,​ //​a//​(2)=0.5). The total amount of added nutrients (<​m>​common_{add}<​/m>) is calculated as the sum of fertiliser additions from the main and secondary crops. ​
  
 Inorganic nutrients to be added to IN and SP pools: Inorganic nutrients to be added to IN and SP pools:
  
-<​m> ​common{_}add(inut,​layer=1)= sum {icrop=1} {2} {sum {ife=1} {2} {a(icrop) * ({fert(inut,​ife,​icrop) * (1 - fdown(ife,​icrop))} / fertdays + {man(inut,​if,​icrop) * (1 - mdown(ife,​icrop))*inorgpart} / fertdays)}} </m>+<​m> ​common_{add}(inut,​layer=1)= sum {icrop=1} {2} {sum {ife=1} {2} {a(icrop) * ({fert(inut,​ife,​icrop) * (1 - fdown(ife,​icrop))} / fertdays + {man(inut,​if,​icrop) * (1 - mdown(ife,​icrop))*inorgpart} / fertdays)}} </m>
  
-<​m> ​common{_}add(inut,​layer=2)= sum {icrop=1} {2} {sum {ife=1} {2} {a(icrop) * ({fert(inut,​ife,​icrop) * fdown(ife,​icrop)} / fertdays + {man(inut,​ife,​icrop) * mdown(ife,​icrop)*inorgpart} / fertdays)}} </m>+<​m> ​common_{add}(inut,​layer=2)= sum {icrop=1} {2} {sum {ife=1} {2} {a(icrop) * ({fert(inut,​ife,​icrop) * fdown(ife,​icrop)} / fertdays + {man(inut,​ife,​icrop) * mdown(ife,​icrop)*inorgpart} / fertdays)}} </m>
  
 Organic nutrients to be added to fastN and fastP pools: Organic nutrients to be added to fastN and fastP pools:
  
-<​m> ​common{_}add(inut,​layer=1)= sum {icrop=1} {2} {sum {ife=1} {2} {a(icrop) * {{man(inut,​ife,​icrop) * (1 - mdown(ife,​icrop))*(1-inorgpart)} / fertdays}}} </m>+<​m> ​common_{add}(inut,​layer=1)= sum {icrop=1} {2} {sum {ife=1} {2} {a(icrop) * {{man(inut,​ife,​icrop) * (1 - mdown(ife,​icrop))*(1-inorgpart)} / fertdays}}} </m>
  
-<​m> ​common{_}add(inut,​layer=2)= sum {icrop=1} {2} {sum {ife=1} {2} {a(icrop) * {{man(inut,​ife,​icrop) * mdown(ife,​icrop)*(1-inorgpart)} / fertdays}}} </m>+<​m> ​common_{add}(inut,​layer=2)= sum {icrop=1} {2} {sum {ife=1} {2} {a(icrop) * {{man(inut,​ife,​icrop) * mdown(ife,​icrop)*(1-inorgpart)} / fertdays}}} </m>
  
  
Line 47: Line 47:
 ==== Plant residues ==== ==== Plant residues ====
  
-Plant residues are added at a specified date each year. They are added to the immobile soil pools (fastN, fastP, humusN, and humusP) to get a delay of the leakage and an accumulation of humus in the soil. The amount of crop residues (//​resamount(inut)//,​ //​inut//​=N,​P) and the date they are added on depends on crop and region and is given in the [[start:​hype_file_reference:​cropdata.txt|CropData.txt]] ​ file. Part of the plant residues are added to the fast pool (//​resfast//​),​ and part to the humus pool. The plant residues are added to the upper two soil layers with a distribution (//​resdown//​) also specified in CropData. For each class the plant residues are weighted (//​common_res//​) for main and secondary crop together every day with the help of share for each crop (//​a(icrop)//,​ where icrop=1,2).+Plant residues are added at a specified date each year. They are added to the immobile soil pools (fastN, fastP, humusN, and humusP) to get a delay of the leakage and an accumulation of humus in the soil. The amount of crop residues (//​resamount(inut)//,​ //​inut//​=N,​P) and the date they are added on depends on crop and region and is given in the [[start:​hype_file_reference:​cropdata.txt|CropData.txt]] ​ file. Part of the plant residues are added to the fast pool (//​resfast//​),​ and part to the humus pool. The plant residues are added to the upper two soil layers with a distribution (//​resdown//​) also specified in CropData. For each class the plant residues are weighted (<​m>​common_{res}<​/m>) for main and secondary crop together every day with the help of share for each crop (//​a(icrop)//,​ where icrop=1,2).
  
-<​m> ​common{_}res(fast-inut,​layer=1)= sum {icrop=1} {2} {a(icrop) * resfast(icrop) * resamount(inut,​icrop) * (1 - resdown(icrop))} </​m>​ +<​m> ​common_{res}(fast-inut,​layer=1)= sum {icrop=1} {2} {a(icrop) * resfast(icrop) * resamount(inut,​icrop) * (1 - resdown(icrop))} </​m>​ 
-<​m> ​common{_}res(fast-inut,​layer=2)= sum {icrop=1} {2} {a(icrop) * resfast(icrop) * resamount(inut,​icrop) * resdown(icrop)} </​m>​ +<​m> ​common_{res}(fast-inut,​layer=2)= sum {icrop=1} {2} {a(icrop) * resfast(icrop) * resamount(inut,​icrop) * resdown(icrop)} </​m>​ 
-<​m> ​common{_}res(humus-inut,​layer=1)= sum {icrop=1} {2} {a(icrop) * (1-resfast(icrop)) * resamount(inut,​icrop) * (1 - resdown(icrop))} </​m>​ +<​m> ​common_{res}(humus-inut,​layer=1)= sum {icrop=1} {2} {a(icrop) * (1-resfast(icrop)) * resamount(inut,​icrop) * (1 - resdown(icrop))} </​m>​ 
-<​m> ​common{_}res(humus-inut,​layer=2)= sum {icrop=1} {2} {a(icrop) * (1-resfast(icrop)) * resamount(inut,​icrop) * resdown(icrop)} </m>+<​m> ​common_{res}(humus-inut,​layer=2)= sum {icrop=1} {2} {a(icrop) * (1-resfast(icrop)) * resamount(inut,​icrop) * resdown(icrop)} </m>
  
  
Line 109: Line 109:
 In the first model PP can leave the land by two means, by surface runoff transport and by macropore flow through drainage pipes. The calculation of PP transport is done in three steps: first the erosion (mobilization) of soil particles from the land surface is calculated, secondly how much of the mobilized particles that are leaving the field is calculated, finally the amount of soil particles is converted to phosphorus. ​ In the first model PP can leave the land by two means, by surface runoff transport and by macropore flow through drainage pipes. The calculation of PP transport is done in three steps: first the erosion (mobilization) of soil particles from the land surface is calculated, secondly how much of the mobilized particles that are leaving the field is calculated, finally the amount of soil particles is converted to phosphorus. ​
  
-Mobilization (//​MobilisedRain//​ and //​MobilisedSR//​) occurs due to energy from falling raindrops (//​Rainfall_energy//​) and/or from surface runoff. The kinetic energy in rainfall is calculated as a function of rainfall and day of the year (//​dayno//​). If the precipitation falls as snow, or if it falls on snow-covered ground or if it is smaller than 5 mm/day no mobilization occurs in the model. Some of the rain drop's energy can be absorbed by vegetation. Cropcover is defined as the portion of land that is sheltered from raindrops; for a description of how this is calculated, see [[start:​hype_model_description:​hype_np_soil#​crop_cover_and_ground_cover|next chapter]]. The factor //​common_cropcover// ​is the total fraction of cover that the main and secondary crop give together. It varies over the year due to crop growth and management. The mobilization is also influenced by soil erodibility (soil dependent parameter //​soilerod//​ (g/​J)). ​+Mobilization (//​MobilisedRain//​ and //​MobilisedSR//​) occurs due to energy from falling raindrops (<​m>​Rainfall_{energy}<​/m>) and/or from surface runoff. The kinetic energy in rainfall is calculated as a function of rainfall and day of the year (//​dayno//​). If the precipitation falls as snow, or if it falls on snow-covered ground or if it is smaller than 5 mm/day no mobilization occurs in the model. Some of the rain drop's energy can be absorbed by vegetation. Cropcover is defined as the portion of land that is sheltered from raindrops; for a description of how this is calculated, see [[start:​hype_model_description:​hype_np_soil#​crop_cover_and_ground_cover|next chapter]]. The factor ​<​m>​common_{cropcover}<​/m> is the total fraction of cover that the main and secondary crop give together. It varies over the year due to crop growth and management. The mobilization is also influenced by soil erodibility (soil dependent parameter //​soilerod//​ (g/​J)). ​
  
-<​m> ​Rainfall{_}energy ​= prec * </m>**(**<​m> ​8.95+8.44*LOG10 ​</​m>​**(**<​m> ​prec*2* </m>**(**<​m> ​0.257+ 0.09*sin ​</​m>​**(**<​m> ​2 pi* </m>**(**<​m> ​dayno-70 ​</​m>​**)**<​m> ​{/​}365 ​</​m>​**))))** \\ +<​m> ​Rainfall_{energy} = prec * ( 8.95+8.44*LOG10 (prec*2* ( 0.257+ 0.09*sin ( 2 pi* ( dayno-70 ) {/}365 )))) </​m> ​
-<m> MobilisedRain = Rainfall{_}energy* (1. - common{_}cropcover) * soilerod ​</​m> ​+
  
-When surface runoff occurs, soil particles are eroded and carried away as the soil surface is exposed to shear forces. The mobilization is calculated from the surface runoff ​(//sflow//), land slope, a parameter for soil cohesion (//​soilcoh//​ (//kPa//) soil type dependent), and a general parameter (//​sreroexp//​)This type of erosion can be mitigated by protective vegetation or vegetation residues that are in contact with the ground. The calculation of this factor (//​groundcover//​is described in [[start:​hype_model_description:​hype_np_soil#​crop_cover_and_ground_cover|next chapter]]. The variable ​//​common_groundcover//​ is the total fraction of cover that the main and secondary crop give. +<m> MobilisedRain = Rainfall_{energy}* ​(1- common_{cropcover}* soilerod </m> 
  
-<m> MobilisedSR = {{( sflow * 365)^{sreroexp}} * (1 - common{_}groundcover) * {1/{0.5 * soilcoh}} * sin(slope/​100)} / 365 </m>+When surface runoff occurs, soil particles are eroded and carried away as the soil surface is exposed to shear forces. The mobilization is calculated from the surface runoff (//​sflow//​),​ land slope, a parameter for soil cohesion (//​soilcoh//​ (//kPa//) soil type dependent), and a general parameter (//​sreroexp//​). This type of erosion can be mitigated by protective vegetation or vegetation residues that are in contact with the ground. The calculation of this factor (//​groundcover//​) is described in [[start:​hype_model_description:​hype_np_soil#​crop_cover_and_ground_cover|next chapter]]. The variable <​m>​common_{groundcover}</​m>​ is the total fraction of cover that the main and secondary crop give.  
 + 
 +<m> MobilisedSR = {{(sflow*365)^{sreroexp}} * (1-common_{groundcover}) * {1/​{0.5*soilcoh}} * sin(slope/​100)} / 365 </m>
  
 All mobilized particles is not removed from the field, because sometimes the transport capacity of the particle-bearing water (//eflow//) will not suffice for the task. A //​transportfactor//​ will reduce the particle amount: All mobilized particles is not removed from the field, because sometimes the transport capacity of the particle-bearing water (//eflow//) will not suffice for the task. A //​transportfactor//​ will reduce the particle amount:
Line 195: Line 196:
 where //d// is depth from zero-level, //​nutrient0//​ is concentration at zero-level (i.e. model parameter for uppermost soil layer) and //par// is calculated from respective nutrient half depth model parameter (//​NNhalf//​) as: where //d// is depth from zero-level, //​nutrient0//​ is concentration at zero-level (i.e. model parameter for uppermost soil layer) and //par// is calculated from respective nutrient half depth model parameter (//​NNhalf//​) as:
  
-<m> par=log(2)/NNhalf </m>+<m> par={log 2}/NNhalf </m>
  
-The model parameters for uppermost soil layer (//humus0// etc.) represent zero-level nutrient (//​nutrient0//​) and zero-level is thus middle of uppermost soillayer. The following depths represent the soillayers: ​+The model parameters for uppermost soil layer (//humus0// etc.) represent zero-level nutrient (//​nutrient0//​) and zero-level is thus middle of uppermost soillayer. The following depths ​(//​d//​) ​represent the soillayers ​(1-3)
  
  
Line 219: Line 220:
 ==== Common functions ==== ==== Common functions ====
  
-Many soil processes depend on temperature and soil moisture. The following equations are used in these cases. The temperature function (figure 3) depends on the estimated soil layer temperature (//​soiltemp//​).+Many soil processes depend on temperature and soil moisture. The following equations are used in these cases. The temperature function (figure 3) depends on the estimated soil layer temperature (//​soiltemp//​). The soil temperature requires some parameters to be simulated, see Section [[start:​hype_model_description:​hype_land#​soil_temperature_and_snow_depth|Soil temperature and snow depth]].
  
   tmpfcn = 2**((soiltemp - 20.0) / 10.0)   tmpfcn = 2**((soiltemp - 20.0) / 10.0)
Line 236: Line 237:
   ENDIF   ENDIF
  
-The humidity function (figure ​3) is always less than or equal to one while the temperature function may be greater than one when the temperature exceeds 20 degrees.+The humidity function (figure ​4) is always less than or equal to one while the temperature function may be greater than one when the temperature exceeds 20 degrees.
  
 |{{:​start:​hype_model_description:​commonfunctionstemperature.png?​300}}| |{{:​start:​hype_model_description:​commonfunctionstemperature.png?​300}}|
Line 246: Line 247:
 ==== Vegetation nutrient uptake ==== ==== Vegetation nutrient uptake ====
  
-Vegetation nutrient uptake is a sink of the IN and SP in the two upper soil layers. The uptake (//uptake / uptakeP//, //​mg/​m2/​d//​) depends on the potential uptake of nitrogen (//​common_uptake//​, g/m2), calculated for the combination of main crop and any secondary crop of the specified class. Vegetation nutrient uptake also depends on //​uptsoil1//​ which gives the distribution of uptake between the two layers for a crop, the pool of IN (//​inorgNpool//​) and SP (//​SRPpool//​) and for phosphorus by P / N ratio (//​pnratio//​). The main and secondary crop of a class is specified in GeoClass.txt.+Vegetation nutrient uptake is a sink of the IN and SP in the two upper soil layers. The uptake (//uptake / uptakeP//, //​mg/​m2/​d//​) depends on the potential uptake of nitrogen (<​m>​common_{uptake}<​/m>, g/m2), calculated for the combination of main crop and any secondary crop of the specified class. Vegetation nutrient uptake also depends on //​uptsoil1//​ which gives the distribution of uptake between the two layers for a crop, the pool of IN (//​inorgNpool//​) and SP (//​SRPpool//​) and for phosphorus by P / N ratio (//​pnratio//​). The main and secondary crop of a class is specified in GeoClass.txt.
  
-<m> uptakeN(1) = MIN(uptsoil1 * common{_}uptake, maxpooluptake*inorgNpool(1)) </m> \\ +<m> uptakeN(1) = MIN(uptsoil1 * common_{uptake}, maxpooluptake*inorgNpool(1)) </m> \\ 
-<m> uptakeN(2) = MIN((1-uptsoil1) * common{_}uptake, maxpooluptake* inorgNpool(2)) </m> \\ +<m> uptakeN(2) = MIN((1-uptsoil1) * common_{uptake}, maxpooluptake* inorgNpool(2)) </m> \\ 
-<m> uptakeP(1) = MIN(pnratio * uptsoil1 * common{_}uptake, maxpooluptake* SRPpool(1)) </m> \\ +<m> uptakeP(1) = MIN(pnratio * uptsoil1 * common_{uptake}, maxpooluptake* SRPpool(1)) </m> \\ 
-<m> uptakeP(2) = MIN(pnratiopar * (1-uptsoil1) * common{_}uptake, maxpooluptake*SRPpool(2)) </m> \\+<m> uptakeP(2) = MIN(pnratiopar * (1-uptsoil1) * common_{uptake}, maxpooluptake*SRPpool(2)) </m> \\
 <m> maxpooluptake = (soil - wp) / soil </m> <m> maxpooluptake = (soil - wp) / soil </m>
  
-The plants can take up a maximum factor //​maxpooluptake//​ of the pool. This factor is calculated as a percentage of soil water over the wilting point. The equations for the potential uptake of nitrogen (//​common_uptake//​) are described under that section above. The constants //​uptsoil1//​ (percentage of plant nutrients absorbed top layer) and //pnratio// (ratio of N and P uptake) are given for each crop.+The plants can take up a maximum factor //​maxpooluptake//​ of the pool. This factor is calculated as a percentage of soil water over the wilting point. The equations for the potential uptake of nitrogen (<​m>​common_{uptake}<​/m>) are described under that section above. The constants //​uptsoil1//​ (percentage of plant nutrients absorbed top layer) and //pnratio// (ratio of N and P uptake) are given for each crop.
  
 ==== Denitrification ==== ==== Denitrification ====
Line 266: Line 267:
 <m> smfcn= delim{lbrace} <m> smfcn= delim{lbrace}
  ​{matrix{2}{2}{  ​{matrix{2}{2}{
-   0 {soil<pw×lim ​+   0 {soil<pw*lim ​
-   ​({soil}/​{pw}-{{dlim}{(1-dlim)}})^{exp} else+   ​({soil}/​{pw}-{{dlim}/{(1-dlim)}})^{exp} else
    }}{} </m>    }}{} </m>
  
Line 333: Line 334:
   ENDDO   ENDDO
  
-The coefficients //Kfr//, and //Nfr// are soil dependent, bulkdensity is the dry density of soil (= 1300 kg/m3) and soilthick is the soil layer thickness. //fxn// is function value for the concentration //xn//, //fprimx// is the function value of the derivative of //fxn//, and //xn_1/is the concentration of the next iteration. The resulting SP equilibrium concentration (//xn=xn_1//) is used to calculate the PP eqiuilibrium concentration (<​m> ​PPequi{_}conc</​m>​). +The coefficients //Kfr//, and //Nfr// are soil dependent, bulkdensity is the dry density of soil (= 1300 kg/m3) and soilthick is the soil layer thickness. //fxn// is function value for the concentration //xn//, //fprimx// is the function value of the derivative of //fxn//, and <m>xn_1</m> is the concentration of the next iteration. The resulting SP equilibrium concentration (<m>xn=xn_1</m>) is used to calculate the PP eqiuilibrium concentration (<m>PPequi_{conc}</​m>​). 
-A new SP concentration (//SP_conc//) is calculated from the previous concentration (//SP_conc_old/​/) and the equilibrium concentration,​ taking into account the balance is not reached during the time step.+A new SP concentration (<m>SP_conc</m>) is calculated from the previous concentration (<m>SP_conc_old</m>) and the equilibrium concentration,​ taking into account the balance is not reached during the time step.
  
-<​m> ​PPequi{_}conc = Kfr * ({xn{_}1}^{Nfr}) </m>+<​m> ​PPequi_{conc} = Kfr * ({xn_1}^{Nfr}) </m>
  
-<m> Adsdes = (PPequi{_}conc - concsolid)*(1-e^{-Kadsdes}) </m>+<m> Adsdes = (PPequi_{conc- concsolid)*(1-e^{-Kadsdes}) </m>
  
-<​m> ​SP{_}conc ​SP{_}conc{_}old ​- {(Adsdes * bulkdensity * LayerThick)/​ vol} </m>+<​m> ​SP_conc ​SP_conc_old ​- {(Adsdes * bulkdensity * LayerThick)/​ vol} </m>
  
 //Adsdes// is the amount of adsorbed/​desorbed P, //Kadsdes// is a soil dependent rate constant, //​equi_concsolid//​ is the solid phase equilibrium concentration,​ and //​concsolid//​ is the initial concentration the solid phase. //Adsdes// is the amount of adsorbed/​desorbed P, //Kadsdes// is a soil dependent rate constant, //​equi_concsolid//​ is the solid phase equilibrium concentration,​ and //​concsolid//​ is the initial concentration the solid phase.
start/hype_model_description/hype_np_soil.1529492379.txt.gz · Last modified: 2018/06/20 12:59 by cpers