BioCro  0.92
 All Data Structures Files Functions Variables Typedefs Macros
function_prototype.h File Reference
#include "AuxBioCro.h"
#include "crocent.h"
#include "soilwater.h"
+ Include dependency graph for function_prototype.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void Copy_SoilWater_BioCro_To_CropCent (struct soilML_str *soilMLS, struct cropcentlayer *CROPCENT)
 
void CalculateBiogeochem (struct miscanthus *miscanthus, struct cropcentlayer *CROPCENT, struct dailyclimate *dailyclimate)
 
void Filling_BioCro_SoilStructure (struct soilML_str *soilMLS, struct soilText_str *soTexS, int soillayers, double *depths)
 
void Calculate_Soil_Layer_Temperature (double soiltavg[], int num_layers, struct dailyclimate *dailyclimate)
 
void Copy_CropCent_To_DayCent_Structures (struct cropcentlayer *CROPCENT, SITEPAR_SPT sitepar, LAYERPAR_SPT layers, SOIL_SPT soil)
 

Function Documentation

void Calculate_Soil_Layer_Temperature ( double  soiltavg[],
int  num_layers,
struct dailyclimate *  dailyclimate 
)
3 {
4  /************************************************************************
5  * Purpose:
6  * To calculate average temperature of multiple soil layer
7  * Input
8  * daily climate structure
9  * number of layers in soil profile num_layers
10  * Output
11  * soiltavg[num_layers]
12  *
13  * Currently I am assuming temperature of all the soil layers is same as air temperature
14  * This is similar to what i got in the version Melaniie gave me.
15  * I need to change it to make it more sophisticated,
16  * Also, perhaps I will need to include maxm and minm temperature of layers too
17  * *********************************************************************/
18  int i;
19  for (i=0; i<num_layers; i++)
20  {
21  soiltavg[i]=dailyclimate->temp;
22  }
23  return;
24 }
double temp
Definition: crocent.h:10
void CalculateBiogeochem ( struct miscanthus *  miscanthus,
struct cropcentlayer *  CROPCENT,
struct dailyclimate *  dailyclimate 
)
7 {
8 
9  /**********************************************************************************************************************
10  * Purpose:
11  * To Evaluate biogeochemical cycle for the current day
12  *
13  * Inputs/Outputs:
14  *
15  * (1)
16  * A pointer to a structure miscanthus. This is defineed in crocent.h
17  * This structure contain standing biomass of different plant organs and also litter components.
18  * Idea is to use these litter component, create structures that can be send as input to soil decomposition
19  * and update the standing biomass pool
20  *
21  * (2)
22  * A pointer to structure cropcentlayer. This is defined in crocent.h
23  * This contain all the parameters and input/output required to perform soil biogeochemistry calculations which is a function of
24  * incoming litter, environmental conditions, soil properties.
25  * This structures contain all the input/output pool and after function call, all pools are updated for today.
26  *
27  * (3)
28  * A pointer to a structure dailyclimate. This is defined in crocent.h
29  *This is a structure for storing daily climate. This is required to perform decomposition of SOC/ and calculations of trace gas
30  *which are done daily and require daily climate data
31  *
32  * Summary/Main output of interest:-
33  * (a) Updated plant structure (after taking care of fall rate of leaf litter).
34  * (b) Updated SOC pools
35  * (c) Updated NH4 pool
36  * (d) Updated NO3 in Layers
37  * (e) Updated Flux of N from different Layers
38  * (f) gaseous flux from soil, CH4, N20, N2, CO2
39  * (g) Leaching of Organic matter and Nitrogen
40  * ***************************************************************************************************************************/
41  // Structure Definition from DayCent Code Provided by Melanie that will be used in function call to trace gas calculations
42  SITEPAR_SPT sitepar;
43  LAYERPAR_SPT layers;
44  SOIL_SPT soil;
45 
46  // these variable are in argument to trace_gas_model but are not used, I am defining them for consistency. I can remove them later on.
47  double time,sand,silt,clay,nreduce,NOabsorp_grass,NOabsorp_tree,tree_lai;
48  int texture;
49  time= 0.0;
50  texture=2;
51  nreduce=1.0;
52  CROPCENT->ENV.nit_amt=0.0;
53  tree_lai=0.0;
54  NOabsorp_grass=0.0;// These are outputs
55  NOabsorp_tree=0.0;// These are outputs
56 
57 
58  // These are local variables, some of them need to move them somewhere else later
59  struct InputToCropcent leaflitter,stemlitter,rootlitter,rhizomelitter;
60  struct minerals leaflitterE,stemlitterE,rootlitterE,rhizomelitterE;
61  int woody, Eflag;
62  double *fake;
63  woody = 0 ; // No woody Material for now
64  Eflag = 1; // For N simulations only
65  // The below parameters aee RCESTR from fix.100 representing CE Ratio of structural material
66  leaflitterE.CN=200.0;
67  leaflitterE.CP=500.0;
68  leaflitterE.CS=500.0;
69  leaflitterE.CS=500.0;
70  stemlitterE = leaflitterE;
71  rootlitterE= leaflitterE;
72  rhizomelitterE=leaflitterE;
73 
74 //***********WE CAN DEFINE ALL THE FALL RATES & OTHER PARAMETERS IN MISCANTHUS STRUCTURE THEN SEND ALL OF THIS IN A SEPARATE FUNCTION ******* //
75  //Now here We are simpyl taking litter vector and creating new structures to send to soil biogeochemistry simulations
76 
77  BiocroToCrocent(&miscanthus->leaf.litter,1.0,0.2, &leaflitterE, 1.0, 1, 0,&leaflitter);
78  BiocroToCrocent(&miscanthus->stem.litter,1.0,0.2, &stemlitterE, 1.0, 1, 0,&stemlitter);
79  BiocroToCrocent(&miscanthus->root.litter,1.0,0.2, &rootlitterE, 1.0, 0, 0,&rootlitter);
80  BiocroToCrocent(&miscanthus->rhizome.litter,1.0,0.2, &rhizomelitterE, 1.0, 0, 0,&rhizomelitter);
81 
82 
83 
84 
85 //********* THIS CAN GO INTO A SEPARATE FUNCTION*********************************************************/
86 
87  if(leaflitter.C.totalC >0.0)
88  {
89  UpdateCropcentPoolsFromBioCro(&CROPCENT, &leaflitter);
90  }
91  if(stemlitter.C.totalC >0.0)
92  {
93  UpdateCropcentPoolsFromBioCro(&CROPCENT, &stemlitter);
94  }
95  if(rootlitter.C.totalC >0.0)
96  {
97  UpdateCropcentPoolsFromBioCro(&CROPCENT, &rootlitter);
98  }
99  if(rhizomelitter.C.totalC >0.0)
100  {
101  UpdateCropcentPoolsFromBioCro(&CROPCENT, &rhizomelitter);
102  }
103 
104 
105 
106  // Calculate Top Layer 0-15 cm Properties based on Multi-layer soil Structure
107  //**************FILL IN THE FUNCTION****************************************/
109 
110  //Call Function to Assign Environmental Variables in the top 0-15 cm depth for Decomposition
111  assignENV(&CROPCENT,fake,fake,fake,fake,fake,fake,fake);
112 
113  // When Management is Implemented, Use this space two modify decomposition rates (tillage) and Soil N (fertilization)
114  //************INSERT IMPLEMENT MANAGEMENT FUNCTION HERE***********************
115 
116  // Call Function to Assign Flux Ratios for movement between different Pools
117  assignFluxRatios(&CROPCENT);
118 
119  // Call Function to Decompose SOC in the top 0-15 cm layer
120  decomposeCROPCENT(&CROPCENT, woody,Eflag);
121 
122  // Call Function to Update All the Pools
123  updatecropcentpools(&CROPCENT);
124 
125  // Copying to DayCent Structures from CropCent multilayer Soil Structure Before Calling Trace_gas_Model
126  Copy_CropCent_To_DayCent_Structures(&CROPCENT->soilprofile, sitepar,layers, soil);
127 
128 
129  // call the tracegas model
130 
131  trace_gas_model(&dailyclimate->doy,&time, &CROPCENT->ENV.newminN,&CROPCENT->ENV.ammonium,CROPCENT->soilprofile.pools.nitrate,
132  &texture,&sand,&silt,&clay,
133  &CROPCENT->ENV.SOILTEX.fieldc,&CROPCENT->ENV.SOILTEX.bulkd,&CROPCENT->sitepar.maxt,&dailyclimate->precip,
134  &dailyclimate->snow,&CROPCENT->ENV.SOILTEX.avgwfps,&CROPCENT->Emission.stormf,
135  &CROPCENT->Emission.basef, CROPCENT->soilprofile.flux.frlechd,CROPCENT->soilprofile.flux.stream,
136  &CROPCENT->Emission.inorglch, &CROPCENT->soilprofile.critflow,CROPCENT->soilprofile.flux.waterflux,
137  &CROPCENT->Emission.newCO2, &CROPCENT->Emission.NOflux, &CROPCENT->Emission.Nn20flux,&CROPCENT->Emission.Dn20flux,
138  &CROPCENT->Emission.Dn2flux,&CROPCENT->Emission.CH4,&CROPCENT->sitepar.isdecid,
139  &CROPCENT->sitepar.isagri, &miscanthus->LAI,&tree_lai,
140  &NOabsorp_grass,&NOabsorp_tree,
141  &CROPCENT->ENV.nit_amt,&nreduce,
142  CROPCENT->soilprofile.flux.dN2lyr,CROPCENT->soilprofile.flux.dN2Olyr,sitepar,layers,soil);
143 
144 
145  /*
146  trace_gas_model(int *jday, double *time, double *newminrl, double *ammonium, double nitrate[],
147  int *texture, double *sand, double *silt, double *clay,
148  double *afiel, double *bulkd, double *maxt, double *ppt,
149  double *snow, double *avgwfps, double *stormf,
150  double *basef, double frlechd[], double stream[],
151  double *inorglch, double *critflow, double wfluxout[],
152  double *newCO2, double *NOflux, double *Nn2oflux, double *Dn2oflux,
153  double *Dn2flux, double *CH4, int *isdecid,
154  int *isagri, double *grass_lai, double *tree_lai,
155  double *NOabsorp_grass, double *NOabsorp_tree,
156  double *nit_amt, double *nreduce,
157  double dN2lyr[], double dN2Olyr[],SITEPAR_SPT sitepar,LAYERPAR_SPT layers,SOIL_SPT soil);
158 
159  */
160  // Write All the Variables of Interest in the Cropcentlayer structure
161 
162  //***********Update CROPCENT********************************************
163 
164 }
double stormf
Definition: crocent.h:121
double nitrate[MAXSOILLAY]
Definition: crocent.h:501
double Nn20flux
Definition: crocent.h:123
double basef
Definition: crocent.h:126
int isdecid
Definition: crocent.h:472
int maxt
Definition: crocent.h:473
Definition: crocent.h:107
double nit_amt
Definition: crocent.h:151
struct soilprofile::profileproperties properties
void BiocroToCrocent(double *stdedbc, double fallrate, double lignin, struct minerals *E, double isotoperatio, int surface, int woody, struct InputToCropcent *INCROCENT)
Definition: Auxcropcent.c:148
void UpdateCropcentPoolsFromBioCro(struct cropcentlayer *CROPCENT, struct InputToCropcent *INCROPCENT)
Definition: Auxcropcent.c:202
int number_layers
Definition: crocent.h:478
double litter
Definition: crocent.h:642
double dN2lyr[MAXSOILLAY]
Definition: crocent.h:507
double critflow
Definition: crocent.h:482
struct leaf leaf
Definition: crocent.h:677
double litter
Definition: crocent.h:649
double precip
Definition: crocent.h:11
struct root root
Definition: crocent.h:680
int isagri
Definition: crocent.h:471
double Dn2flux
Definition: crocent.h:118
Definition: crocent.h:25
void Calculate_Soil_Layer_Temperature(double soiltavg[], int num_layers, struct dailyclimate *dailyclimate)
Definition: Calculate_Soil_Layer_Temperature.c:2
void trace_gas_model(int *jday, double *time, double *newminrl, double *ammonium, double nitrate[], int *texture, double *sand, double *silt, double *clay, double *afiel, double *bulkd, double *maxt, double *ppt, double *snow, double *avgwfps, double *stormf, double *basef, double frlechd[], double stream[], double *inorglch, double *critflow, double wfluxout[], double *newCO2, double *NOflux, double *Nn2oflux, double *Dn2oflux, double *Dn2flux, double *CH4, int *isdecid, int *isagri, double *grass_lai, double *tree_lai, double *NOabsorp_grass, double *NOabsorp_tree, double *nit_amt, double *nreduce, double dN2lyr[], double dN2Olyr[], SITEPAR_SPT sitepar, LAYERPAR_SPT layers, SOIL_SPT soil)
Definition: tgmodel.c:121
double newminN
Definition: crocent.h:143
double LAI
Definition: crocent.h:684
struct soilprofile::profilefluxes flux
double litter
Definition: crocent.h:630
double inorglch
Definition: crocent.h:120
double ammonium
Definition: crocent.h:144
double dN2Olyr[MAXSOILLAY]
Definition: crocent.h:508
double litter
Definition: crocent.h:636
Definition: soilwater.h:69
Definition: soilwater.h:139
struct siteparameters sitepar
Definition: crocent.h:532
double bulkd
Definition: crocent.h:98
double NOflux
Definition: crocent.h:124
void decomposeCROPCENT(struct cropcentlayer *CROPCENT, int woody, int Eflag)
double snow
Definition: crocent.h:16
struct rhizome rhizome
Definition: crocent.h:679
struct stem stem
Definition: crocent.h:678
double CH4
Definition: crocent.h:116
struct soilprofile::profilepools pools
struct soilprofile soilprofile
Definition: crocent.h:531
double frlechd[MAXSOILLAY]
Definition: crocent.h:509
void updatecropcentpools(struct cropcentlayer *CROPCENT)
Definition: Auxcropcent.c:7
double fieldc
Definition: crocent.h:97
double avgwfps
Definition: crocent.h:99
double Dn20flux
Definition: crocent.h:119
struct SoilTexture SOILTEX
Definition: crocent.h:152
double soiltavg[MAXSOILLAY]
Definition: crocent.h:489
void assignFluxRatios(struct cropcentlayer *CROPCENT)
Definition: Assigncropcent.c:471
void Copy_CropCent_To_DayCent_Structures(struct cropcentlayer *CROPCENT, SITEPAR_SPT sitepar, LAYERPAR_SPT layers, SOIL_SPT soil)
Definition: Copy_CropCent_To_DayCent_Structure.c:5
struct cropcentEnvironment ENV
Definition: crocent.h:529
double stream[MAXSOILLAY]
Definition: crocent.h:510
void assignENV(struct cropcentlayer *CROPCENT, double *getsoiltexturefromR, double *getcropcentstatevarfromR, double *getbiocrotocropcentparmsfromR, double *geterosionparmsfromR, double *getc13parmsfromR, double *getleachingparmsfromR, double *getsymbnfixationparmsfromR)
Definition: Assigncropcent.c:435
double CN
Definition: crocent.h:26
Definition: soilwater.h:105
double waterflux[MAXSOILLAY]
Definition: crocent.h:506
int doy
Definition: crocent.h:9
struct SoilEmissions Emission
Definition: crocent.h:533
double newCO2
Definition: crocent.h:125
void Copy_CropCent_To_DayCent_Structures ( struct cropcentlayer *  CROPCENT,
SITEPAR_SPT  sitepar,
LAYERPAR_SPT  layers,
SOIL_SPT  soil 
)
6 {
7  int i;
8 
9  layers->numlyrs=CROPCENT->soilprofile.number_layers;
10  for (i=0; i<CROPCENT->soilprofile.number_layers; i++)
11  {
12  layers->width[i]= CROPCENT->soilprofile.properties.width[i];
13  layers->swc[i]= CROPCENT->soilprofile.pools.swc[i];
14  layers->swclimit[i]= CROPCENT->soilprofile.properties.swclimit[i];
15  layers->pH[i]= CROPCENT->soilprofile.properties.pH[i];
16  layers->bulkd[i]= CROPCENT->soilprofile.properties.bulkd[i];
17  layers->fieldc[i]= CROPCENT->soilprofile.properties.fieldc[i];
18  layers->dpthmx[i]= CROPCENT->soilprofile.properties.dpthmx[i];
19  layers->dpthmn[i]= CROPCENT->soilprofile.properties.dpthmn[i];
20  layers->tcoeff[i]=CROPCENT->soilprofile.pools.rootbiomass[i];
21  soil->soiltavg[i]=CROPCENT->soilprofile.properties.soiltavg[i];
22  }
23  sitepar->Ncoeff=CROPCENT->sitepar.Ncoeff;
24  sitepar->jdayStart=CROPCENT->sitepar.jdayStart;
25  sitepar->jdayEnd=CROPCENT->sitepar.jdayEnd;
26  sitepar->N2Oadjust=CROPCENT->sitepar.N2Oadjust;
27 }
double soiltavg[MAXLYR]
Definition: soilwater.h:142
double dpthmx[MAXSOILLAY]
Definition: crocent.h:491
double jdayStart
Definition: crocent.h:468
double N2Oadjust
Definition: soilwater.h:128
struct soilprofile::profileproperties properties
double swclimit[MAXSOILLAY]
Definition: crocent.h:488
double jdayEnd
Definition: crocent.h:469
double Ncoeff
Definition: crocent.h:467
int number_layers
Definition: crocent.h:478
double fieldc[MAXLYR]
Definition: soilwater.h:76
double N2Oadjust
Definition: crocent.h:470
double pH[MAXLYR]
Definition: soilwater.h:85
double swclimit[MAXLYR]
Definition: soilwater.h:83
double dpthmx[MAXLYR]
Definition: soilwater.h:74
double pH[MAXSOILLAY]
Definition: crocent.h:487
int jdayStart
Definition: soilwater.h:126
int numlyrs
Definition: soilwater.h:86
double bulkd[MAXLYR]
Definition: soilwater.h:75
double width[MAXLYR]
Definition: soilwater.h:71
struct siteparameters sitepar
Definition: crocent.h:532
int jdayEnd
Definition: soilwater.h:127
double Ncoeff
Definition: soilwater.h:124
double bulkd[MAXSOILLAY]
Definition: crocent.h:485
double swc[MAXSOILLAY]
Definition: crocent.h:498
struct soilprofile::profilepools pools
struct soilprofile soilprofile
Definition: crocent.h:531
double rootbiomass[MAXSOILLAY]
Definition: crocent.h:499
double tcoeff[MAXLYR]
Definition: soilwater.h:79
double swc[MAXLYR]
Definition: soilwater.h:89
double soiltavg[MAXSOILLAY]
Definition: crocent.h:489
double dpthmn[MAXSOILLAY]
Definition: crocent.h:490
double width[MAXSOILLAY]
Definition: crocent.h:492
double fieldc[MAXSOILLAY]
Definition: crocent.h:486
double dpthmn[MAXLYR]
Definition: soilwater.h:73
void Copy_SoilWater_BioCro_To_CropCent ( struct soilML_str *  soilMLS,
struct cropcentlayer *  CROPCENT 
)
4 {
5  /***************************************************************************************
6  * File Name:Copy_SoilWater_BioCro_To_CropCent.c
7  *
8  * Function Name: Copy_SoilWater_BioCro_To_CropCent
9  *
10  * Purpose: Soil Water Module of BioCro is used to update multilayer soil structure of cropcent layer,
11  * which will be eventually used for the calculation of soil biogeochemistry cycling
12  *
13  * Input:
14  * struct soilML_str *soilMLS: pointer to structure soilMLS defined in AuxBioCro.h This structure
15  * contains calculations of soul hydrology
16  * int soillayers: Number of soil layers being used in the calculations
17  * struct cropcentlayer *CROPCENT: Pointer to structure cropcent defined in crocent.h
18  *
19  * Output:
20  * soilprofile of CROPCENT is updated
21  * ************************************************************************************/
22  int i;
24  for (i = 0; i < CROPCENT->soilprofile.number_layers; i++)
25  {
26  CROPCENT->soilprofile.pools.rootbiomass[i]=soilMLS->rootDist[i];
27  CROPCENT->soilprofile.pools.swc[i]=soilMLS->cws[i];
28  CROPCENT->soilprofile.flux.waterflux[i]=soilMLS->dailyWflux[i];
29  CROPCENT->soilprofile.properties.width[i]=soilMLS->width[i];
30  CROPCENT->soilprofile.properties.dpthmx[i]=soilMLS->dpthmx[i];
31  CROPCENT->soilprofile.properties.dpthmn[i]=soilMLS->dpthmn[i];
32  CROPCENT->soilprofile.properties.pH[i]=soilMLS->pH[i];
33  CROPCENT->soilprofile.properties.bulkd[i]=soilMLS->bulkd[i];
34  CROPCENT->soilprofile.properties.swclimit[i]=soilMLS->swclimit[i];
35  CROPCENT->soilprofile.properties.fieldc[i]=soilMLS->fieldc[i];
36  }
37  return;
38 }
double dpthmx[MAXSOILLAY]
Definition: crocent.h:491
double rootDist[MAXLAY]
Definition: AuxBioCro.h:67
double pH[MAXLAY]
Definition: AuxBioCro.h:72
struct soilprofile::profileproperties properties
double swclimit[MAXSOILLAY]
Definition: crocent.h:488
double cws[MAXLAY]
Definition: AuxBioCro.h:63
int number_layers
Definition: crocent.h:478
double dpthmx[MAXLAY]
Definition: AuxBioCro.h:75
double fieldc[MAXLAY]
Definition: AuxBioCro.h:74
double dailyWflux[MAXLAY]
Definition: AuxBioCro.h:69
double swclimit[MAXLAY]
Definition: AuxBioCro.h:71
int Num_BioCro_soil_layers
Definition: AuxBioCro.h:81
struct soilprofile::profilefluxes flux
double pH[MAXSOILLAY]
Definition: crocent.h:487
double bulkd[MAXSOILLAY]
Definition: crocent.h:485
double swc[MAXSOILLAY]
Definition: crocent.h:498
struct soilprofile::profilepools pools
double dpthmn[MAXLAY]
Definition: AuxBioCro.h:76
struct soilprofile soilprofile
Definition: crocent.h:531
double width[MAXLAY]
Definition: AuxBioCro.h:70
double rootbiomass[MAXSOILLAY]
Definition: crocent.h:499
double bulkd[MAXLAY]
Definition: AuxBioCro.h:73
double dpthmn[MAXSOILLAY]
Definition: crocent.h:490
double width[MAXSOILLAY]
Definition: crocent.h:492
double fieldc[MAXSOILLAY]
Definition: crocent.h:486
double waterflux[MAXSOILLAY]
Definition: crocent.h:506
void Filling_BioCro_SoilStructure ( struct soilML_str *  soilMLS,
struct soilText_str *  soTexS,
int  soillayers,
double *  depths 
)
3  {
4  /*************************************************************************************
5  *Purpose
6  *
7  * Surrently Soil water module of BioCro is very simple, using a multi-layer concept but
8  * average soil properties and all layers must be of same size.
9  *
10  * We have added additional elements in soil multilayer structure used in BioCro where
11  * each layer is explicitly defined and also additional properties which are required for
12  * biogeochemical calculations are also defined for each layer
13  *
14  * We are simply filling these additional elements in a way that it is consistent with the
15  * current BioCro-soil water module [average soil properties for all the layers, each layer is
16  * about 5 cm depth] so that older function of soilML can be used.I have to ensure from R that each layer is 5 cm
17  * by defining Nlayers such that Nlayers= round(Rooting depth/5 , 0).
18  *
19  * Once Explicit definition of soil layers are used, Error associated with Rooting depth will disappear
20  *
21  * IN future, I can use additional information to write more sophisticated soil water function
22  * which cansiders effect of varying soil properties within a single soil profile and also
23  * effect of using non-uniform discretization of the soil profile
24  *
25  * Variables Initialized
26  * soilMLS->
27  * width
28  * dpthmn
29  * dpthmx
30  * bulkd
31  * fieldc
32  * pH
33  * swclimit
34  * ***********************************************************************************/
35  int i;
36  soilMLS->Num_BioCro_soil_layers= soillayers;
37 
38  for (i=0; i <soillayers;i++)
39  {
40  if(i == 0)
41  {
42  soilMLS->width[i] = depths[1];
43  soilMLS->dpthmn[i]=0.0;
44  soilMLS->dpthmx[i]=depths[1];
45 
46  }
47  else
48  {
49  soilMLS->width[i] = depths[i] - depths[i-1];
50  soilMLS->dpthmn[i]=depths[i-1];
51  soilMLS->dpthmx[i]=depths[i];
52  }
53  soilMLS->pH[i]=7.0;
54  soilMLS->swclimit[i]=soTexS->wiltp-0.0008; // soil/in file says swc limit = wiltpoint - deltamin, which is 0.0008 in example file
55  soilMLS->bulkd[i]=soTexS->bulkd;
56  soilMLS->fieldc[i]=soTexS->fieldc;
57  soilMLS->sand[i]=soTexS->sand;
58  soilMLS->silt[i]=soTexS->silt;
59  soilMLS->clay[i]=soTexS->clay;
60  }
61  return;
62  }
double bulkd
Definition: AuxBioCro.h:106
double sand[MAXLAY]
Definition: AuxBioCro.h:78
double pH[MAXLAY]
Definition: AuxBioCro.h:72
double wiltp
Definition: AuxBioCro.h:105
double dpthmx[MAXLAY]
Definition: AuxBioCro.h:75
double fieldc[MAXLAY]
Definition: AuxBioCro.h:74
double swclimit[MAXLAY]
Definition: AuxBioCro.h:71
int Num_BioCro_soil_layers
Definition: AuxBioCro.h:81
double fieldc
Definition: AuxBioCro.h:104
double sand
Definition: AuxBioCro.h:99
double silt[MAXLAY]
Definition: AuxBioCro.h:79
double dpthmn[MAXLAY]
Definition: AuxBioCro.h:76
double clay
Definition: AuxBioCro.h:98
double silt
Definition: AuxBioCro.h:97
double width[MAXLAY]
Definition: AuxBioCro.h:70
double bulkd[MAXLAY]
Definition: AuxBioCro.h:73
double clay[MAXLAY]
Definition: AuxBioCro.h:80