IN-CCIA VIC-CropSyst Setup
VIC-CropSyst
- As of 13 Mar 2017 we have a new version of the VIC-CropSyst model
source code provided by Jenifer Adam and Keyvan Malek. \
- This will be supplanted by a new version within a few months that will include a fully functioning version of CropSyst in the coupled framework
- Later in the year, they will be working on an integration of the full VIC-CropSyst model into the latest VIC version 5 source code.
- Source code can be copied from /depot/phig/data/VICCropSyst/VC_02032017 and appears to be based on VIC 4.1.2.e.
- The Makefile is in
/depot/phig/data/VICCropSyst/Source_20170313/VC_02032017/project/BioEarth_changes/VIC_CropSyst_4.1.2.e/build/CodeBlocks/10
- It should be possible to rebuild the makefile using cbp2make
with the file
VIC_CropSyst_4.cbp
but there are a number of scripts and other programs that are not set to executable when first pulled out of the supplied zip file. - Executable file is
VIC4_0\_7_corncpp
.
- updates for 17 Jul 2017
- The version of the code in
/depot/phig/data/VICCropSyst/Source_20170717/VC_02032017
will now fully compile at Purdue.- That includes the
libCORN_stat.a
library, which can be compiled from the Makefile in/depot/phig/data/VICCropSyst/Source_20170717/VC_02032017/dev/corn/build/CB/10
- And the coupled-model source code in
/depot/phig/data/VICCropSyst/Source_20170717/VC_02032017/project/BioEarth_changes/VIC_CropSyst_4.1.2.e/build/CodeBlocks/10
- That includes the
- All source code has now been put into GIT
- The library code git repository is in
/depot/phig/data/VICCropSyst/Source_20170717/VC_02032017/dev/
, so includes all code required for the library function - The model sourcecode git reposity is in
/depot/phig/data/VICCropSyst/Source_20170717/VC_02032017/project/BioEarth_changes/VIC_CropSyst_4.1.2.e/
, so is relative only to the coupled model version using VIC 4.1.2.e.
- The library code git repository is in
- The version of the code in
Crop Parameter File Contents
Crop parameter file contains the following information
- For each grid cell, file starts with cell number (defined in soil file), and the number of crop types defined (appears to be for whole simulation, not for the specific cell, so crops should appear even if fractional coverage is 0.
-
This is followed by a line per crop containing the following information:
- Column 1- crop code = crop code number matches entries in library and other source files,
- Column 2- Cv = total (crop) coverage in current cell,
- Column 3- crop creation DOY = time to plant the \"seed\" and I believe that CropSyst will let it sprout when conditions are ready. From extension publication by Shaun Casteel: Winter wheat should be planted after harvest and within 10 days of the Hessian fly-free date, which varies from around Sept 22 in northern Indiana to Oct 10 in the south.
-
Column 4- isCropIrrigated = value of:
> 70
indicates "surface" irrigation> 60
and< 70
indicates drip irrigation> 50
and< 60
indicates sprinkler system with moving wheels-
> 40
and< 50
indicates fixed position sprinkler -
> 30
and< 40
indicates big gun sprinkler -
< 30
indicates center pivot sprinkler system
Note
This number should actually refer to a specific irrigation system as defined in
irrigation_lib.c
. If not defined, then crop is watered to minimize stress, but no irrigation water amount is calculated, soIRRI_WAT
variable is empty in the output file. Still studying why selecting an actual system seems to yieldIRRI_WAT
but only a minimal increase in yield due to irrigation. -
Column 5- isPerennial = 1 is TRUE (is perrennnial crop, e.g. orchard), 0 is FALSE (not perennial, planted every year, e.g. corn and soybeans),
-
Column 6-
proration_ratio
appears to be related to water rights appropriation, but I really do not understand what the ratio is as there are no comments in the code, and I have not found the term in the literature. I think that this should be 1 so 100% of water is allocated for the Midwest, since water rights are not allocated in this fashion. But really this value only seems to matter when it is over 2, otherwise the model appears to use theBASIN_PRORATION
value that should be in the global file. This appear to be set to MISSING is not in the global file, so I am not at all sure what the model does without it. The basin value also appears to be divided by 10 whenever used in canopy_evap to estimate irrigation excess. Why 10? i really do not know, since it seems that it should either be a fraction or a percentage. This might be something that need to be checked in the CropSyst model documentation.The proration ratio is not used, nor read from the global file, is
FULL_IRRIGATION
is set to TRUE in the user_def.h file prior to compilation of the source code. For applications in the Midwestern United States,FULL_IRRIGATION
should be set to TRUE.
CropSyst Information
- CS Suite (CropSyst plus additional tools) Home Page
- CropSyst Manual
- Supplemental Information
- Other discussions
- Moisture content of the final grain yields is described in the CropSyst manual as \"[Note that almost all crop biomass parameters and outputs are dry matter basis with the exception of fruit tree harvest maximum fruit load which is fresh/wet matter basis.\" This we have interpreted to mean that grain yields are reported as grain at the stanrdard dried basis (e.g., Corn = 15.5%, Soybenas = 13%, and Wheat = 13.5%). The description of the calibration process in the CropSyst manual simply compares final yield from the model to that from the field plot, which we assume was dried or converted to a consistent moisture content as is expected in the grain industry. Therefor the CropSyst model does not actually account for water storage in the crop, instead that moisture content is assumed in the calibration process. This means that crop yields can be compared directly with USDA values once bushels / acre (USDA) are converted to metric tons per hectar (CropSyst). For this we used the standard conversion values from the US Grain Council.
Model Input Files
Crop Parameter File
This routine reads the crop paramters for the current gridcell and is activated if the CROPSYST_ON is TRUE. This reads the crop parameter file that is created in the format of the vegparam file and gets for the current grid cell, the total number of crops that exit in the grid cell and then for each of those crops, the crop code (identifier) and the fraction of the grid cell that crop is grown. Other crop specific paramters can potentially be added.
File example:
274823 1
204 0.680751 60 0 0
Another file example (actually the vegparam file, but with a crop type included):
274823 5
1 0.032864 0.10 0.05 1.00 0.45 5.00 0.50
5.275 5.275 5.275 5.275 5.275 5.275 5.275 5.275 5.275 5.275 5.275 5.275
4 0.014085 0.10 0.05 1.00 0.45 5.00 0.50
0.188 0.200 0.338 1.475 5.012 5.625 5.575 5.575 5.400 3.800 0.662 0.263
6 0.037559 0.10 0.10 1.00 0.65 1.00 0.25
1.662 1.487 1.850 2.763 2.900 2.662 2.762 2.488 2.537 2.575 2.062 1.800
7 0.234742 0.10 0.10 1.00 0.65 1.00 0.25
0.375 0.387 0.475 0.875 1.075 1.188 0.975 0.838 0.788 0.712 0.538 0.450
204 0.680751 0.10 0.10 0.75 0.60 0.50 0.30
0.100 0.100 0.213 0.725 1.225 1.637 1.763 1.425 0.837 0.400 0.175 0.125
Crop Library File
This routine reads in a library of crop parameters for all crop classes used in the model. This will be used only when the crop model is on (CROPSYST_ON == TRUE). For the starter, it has only the crop code (WSDA cropland data layer derived) and crop names. Crop specific parameters can be potentially added.
File example (actually the veglib file, but with a crop type included):
#Class OvrStry Rarc Rmin JAN-LAI FEB-LAI MAR-LAI APR-LAI MAY-LAI JUN-LAI JUL-LAI AUG-LAI SEP-LAI OCT-LAI NOV-LAI DEC-LAI JAN-ALB FEB_ALB MAR-ALB APR-ALB MAY-ALB JUN-ALB JUL-ALB AUG-ALB SEP-ALB OCT-ALB NOV-ALB DEC-ALB JAN-ROU FEB-ROU MAR-ROU APR-ROU MAY-ROU JUN-ROU JUL-ROU AUG-ROU SEP-ROU OCT-ROU NOV-ROU DEC-ROU JAN-DIS FEB-DIS MAR-DIS APR-DIS MAY-DIS JUN-DIS JUL-DIS AUG-DIS SEP-DIS OCT-DIS NOV-DIS DEC-DIS WIND_H RGL SolAtn WndAtn Trunk COMMENT
1 1 60.0 250. 3.400 3.400 3.500 3.700 4.000 4.400 4.400 4.300 4.200 3.700 3.500 3.400 0.12 0.12 0.12 0.12 0.12 0.12 0.12 0.12 0.12 0.12 0.12 0.12 1.476 1.476 1.476 1.476 1.476 1.476 1.476 1.476 1.476 1.476 1.476 1.476 8.04 8.04 8.04 8.04 8.04 8.04 8.04 8.04 8.04 8.04 8.04 8.04 50.0 30 0.20 0.50 0.40 Evergreen needleleaf
2 1 60.0 250. 3.400 3.400 3.500 3.700 4.000 4.400 4.400 4.300 4.200 3.700 3.500 3.400 0.12 0.12 0.12 0.12 0.12 0.12 0.12
0.12 0.12 0.12 0.12 0.12 1.476 1.476 1.476 1.476 1.476 1.476 1.476 1.476 1.476 1.476 1.476 1.476 8.04 8.04 8.04 8.04 8.04 8.04 8.04 8.04 8.04 8.04 8.04 8.04 50.0 30 0.20 0.50 0.40 Evergreen Broadleaf (LDAS)
3 1 60.0 125. 1.680 1.520 1.680 2.900 4.900 5.000 5.000 4.600 3.440 3.040 2.160 2.000 0.18 0.18 0.18 0.18 0.18 0.18 0.18
0.18 0.18 0.18 0.18 0.18 1.230 1.230 1.230 1.230 1.230 1.230 1.230 1.230 1.230 1.230 1.230 1.230 6.70 6.70 6.70 6.70 6.70 6.70 6.70 6.70 6.70 6.70 6.70 6.70 50.0 30 0.20 0.50 0.40 Deciduous Needleleaf (LDAS)
4 1 60.0 250. 1.68 1.52 1.68 2.9 4.9 5.0 5.0 4.6 3.44 3.04 2.16 2.0 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.68 0.680 0.680 0.680 0.680 0.680 0.680 0.680 0.680 0.680 0.680 0.680 7.60 7.60 7.60 7.60 7.60 7.60 7.60 7.60 7.60 7.60 7.60 7.60 50.0 30 0.20 0.50 0.40 Deciduous Broadleaf (d =0.76h, zo=0.068h)
5 1 60.0 125. 1.680 1.520 1.680 2.900 4.900 5.000 5.000 4.600 3.440 3.040 2.160 2.000 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18
0.18 0.18 0.18 0.18 1.230 1.230 1.230 1.230 1.230 1.230 1.230 1.230 1.230 1.230 1.230 1.230 6.70 6.70 6.70 6.70 6.70 6.70 6.70 6.70 6.70 6.70 6.70 6.70 50.0 50 0.20 0.50 0.40 Mixed Cover (LDAS)
6 1 60.0 125. 1.680 1.520 1.680 2.900 4.900 5.000 5.000 4.600 3.440 3.040 2.160 2.000 0.18 0.18 0.18 0.18 0.18 0.18 0.18 0.18
0.18 0.18 0.18 0.18 1.230 1.230 1.230 1.230 1.230 1.230 1.230 1.230 1.230 1.230 1.230 1.230 6.70 6.70 6.70 6.70 6.70 6.70 6.70 6.70 6.70 6.70 6.70 6.70 50.0 50 0.20 0.50 0.40 Woodland )(LDAS)
7 0 40.0 150 0.188 0.3 0.312 0.437 1.2 2.3 2.725 2.763 2.3 1.7 0.213 0.188 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.369 0.369 0.369 0.369 0.369 0.369 0.369 0.369 0.369 0.369 0.369 0.369 2.01 2.01 2.01 2.01 2.01 2.01 2.01 2.01 2.01 2.01 2.01 2.01 10 75 0.20 0.50 0.40 Wooded_grassland(3 m in height with adjusted LAIs)
8 0 50.0 135. 2.000 2.250 2.950 3.850 3.750 3.500 3.550 3.200 3.300 2.850 2.600 2.200 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19
0.19 0.19 0.19 0.19 0.495 0.495 0.495 0.495 0.495 0.495 0.495 0.495 0.495 0.495 0.495 0.495 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 10 75. 0.20 0.50 0.40 Closed Shrublands (LDAS)
9 0 50.0 135. 2.000 2.250 2.950 3.850 3.750 3.500 3.550 3.200 3.300 2.850 2.600 2.200 0.19 0.19 0.19 0.19 0.19 0.19 0.19 0.19
0.19 0.19 0.19 0.19 0.495 0.495 0.495 0.495 0.495 0.495 0.495 0.495 0.495 0.495 0.495 0.495 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00 10 75. 0.20 0.50 0.40 Open Shrublands (LDAS)
10 0 25.0 120. 0.113 0.113 0.113 0.138 1.0 2.0 2.2 2.25 2.0 1.5 0.113 0.113 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.2 0.246 0.246 0.246 0.246 0.246 0.246 0.246 0.246 0.246 0.246 0.246 0.246 1.34 1.34 1.34 1.34 1.34 1.34 1.34 1.34 1.34 1.34 1.34 1.34 10 100 0.20 0.50 0.40 Grasslands(modified tallgrass with higher LAI in growing season)
11 0 25.0 90. 0.050 0.020 0.050 0.25 1.500 3.000 4.500 5.000 2.5000 0.500 0.050 0.020 0.10 0.10 0.10 0.10 0.20 0.20 0.20 0.20 0.20 0.10 0.10 0.10 0.006 0.006 0.006 0.012 0.037 0.062 0.185 0.271 0.271 0.271 0.006 0.006 0.034 0.034 0.034 0.067 0.201 0.335 1.005 1.474 1.474 1.474 0.034 0.034 10 100 0.20 0.50 0.40 Crop land (corn height adjusted)
12 0 25.0 50. 2.000 2.250 2.950 3.850 3.750 3.500 3.550 3.200 3.300 2.850 2.600 2.200 0.20 0.20 0.20 0.20 0.20 0.20 0.20 0.20
0.20 0.20 0.20 0.20 0.012 0.012 0.012 0.012 0.012 0.012 0.012 0.012 0.012 0.012 0.012 0.012 0.067 0.067 0.067 0.067 0.067 0.067 0.067 0.067 0.067 0.067 0.067 0.067 2 100 0.5 0.5 0.2 Short Grass
204 0 25 60 0.5 0.5 0.5 0.5 1.5 3 4.5 5 2.5 0.5 0.5 0.5 0.1 0.1 0.1 0.1 0.2 0.2 0.2 0.2
0.2 0.1 0.1 0.1 0.006 0.006 0.006 0.006 0.012 0.062 0.123 0.185 0.215 0.215 0.006 0.006 0.034 0.034 0.034 0.034 0.067 0.335 0.67 1.005 1.173 1.173 0.034 0.034 2 100 0.5 0.5 0.2 Corn
Maximum Allowable Depletion (MAD) = the degree of soil dryness at which the crop is water stressed. Used to control irrigation frequency.
Source Code Directory Structure
This version of the VIC-CropSyst model does not compile using gcc 5.x
,
but does compile with gcc 4.x
. Beware that the default version of gcc
on the RCAC computer clusters is gcc 5.x
, and in my experience the make
process will fail.
Fortunately, the module system on the cluster computers, will allow you
to replace the default version of gcc with an older 4.x version. Check
"module avail" then run "module load <gcc version>
", where <gcc
version>
is the name of the gcc version you want loaded as displayed
from the "module avail
" command. The module system will remove gcc
5.x and replace with the selected version of gcc 5.x.
VC_02032017/
- source directory of current shared VIC-CropSyst versiondev/
- not currently in use by Purdueproject/
- location of code we have been directed to make use of by WSU-
BioEarth_changes/
-
CBP2MakeFile_Toolexe_howtorun/
- unknown, not currently in use -
VIC_CropSyst/
- might be older version of VIC model? Not currently in use at Purdue -
VIC_CropSyst_4.1.2.e/
- VIC 4.1.2.e source code, plus CropSyst source code and couplings-
build/
--
CodeBlocks/
- appears to contain all Object files that come from compiling VIC model source code10/
- Here lives the Makefile\bin/
Debug/
- Here lives the debugging executable fileRelease/
- Here lives the release (no debugging links) executable file
obj/
Debug/
- Object files, I assume for the debugging version of the codeRelease/
- Object files, which I assume are for the release version of the code
.svn/
-
crop/
- Object files for VIC-CropSyst-
common/
-
biometeorology/
-
geodesy/
-
physics/
-
soil/
-
weather/
-
-
CropSyst/
crop/
-
-
.svn/
-
-
crop/
- Source code for coupled model, including CropSyst and coupling code-
build/
-
calibration/
-
common/
-
CropSyst/
-
scripts/
-
.svn/
-
UED/
-
unit_tests/
-
USDA/
-
-
.svn/
- SVN versioning control directory
-
-
-
Source Code Modifications
Date | Author | Change | Description |
---|---|---|---|
10 Apr 2017 | Keith Cherkauer | Edited vicNl_def.h to increase the size of MAXSTRING . |
With 17 layers, any minor reformatting of the soil parameter file means that you are right up against the previous limit of 2048. |
This page should probably move to the VIC Users Group, but development is occurring within a specific project right now.
- Nagendra Singh will add in his notes about VIC CropSyst setup and operation 28 Mar 2017.
Model Setup
Analysis Products
Natalie is calculating the following metrics using raw climate data and output from VIC model simulations (without Crop-Syst) using Notre Dame input files but with full energy and frozen soils. Output files are being generated based on averages for each grid cell for "relative time period" from 7/1/1980-7/1/2010. Seasons were defined as: Spring: April-June; Summer: July-September; Fall: October-December; Winter: January-March (based on tree activity).
Variable | Method for Analyzing |
---|---|
Seasonal Changes in Temperature | Looked at average temperatures (from average daily temperatures); both annual and seasonal |
Seasonal Shifts in Temperature | Looked at average temperatures (from average daily temperatures); both annual and seasonal |
Minimum Temperatures | Got 30 year average for minimum temperature and maximum temperatures; may want to get overall minimum/maximum; for annual and seasonal. Maurer, E.P., A.W. Wood, J.C. Adam, D.P. Lettenmaier, and B. Nijssen, 2002, A Long-Term Hydrologically-Based Data Set of Land Surface Fluxes and States for the Conterminous United States, J. Climate 15, 3237-3251. |
First and Last Frost | First day and last day where tmin is less than 32 degrees F; annual |
Changes in Seasonal Precipitation Patterns | Looked at average precipitation, total precipitation annually and seasonally |
Growing Season Precipitation | Growing season length = period of time between first and last times there is a 6 day range with average temperatures above/below 5 degrees C; calculates total and average precipitation during this period (annually) |
Consecutive Dry Days | Count of maximum number of consecutive days without precipitation; annually and seasonally |
Extreme Cold | Minimum annual temperature |
Warm Days | Tmax > 90th percentile Tmax |
Cold Nights | Tmin < 10th percentile Tmin |
Drought Duration and Drought Intensity | Average SPI (intensity of drought conditions); annual and seasonal Number of times when SPI is negative in spring (frequency); annual. Number of consecutive months with negative SPI (duration of drought conditions); annual. |
Soil Temperature | Number of consecutive day annually where average soil temperature is above 40F across the three soil layers - Dormancy period -- second week of October to first/second week of November; (root growth can continue as long as soil temperature is above 40 degrees F) |
Chilling Degree Days | Hours between 32 and 45 degrees F. Chill hours calculator. Dynamics Model - Chill Accumulation |