Century and DayCent Version 5 - Release Notes


Century5 (5.5.12), DayCent5 (5.5.17), C5MPI (1.6.4) - Oct 2016

Fixes and Maintenance

Enhancements

Century5 (5.5.11), DayCent5 (5.5.16), C5MPI (1.6.3) - Aug 2016

Fixes and Maintenance

Enhancements

Century5 (5.5.11), DayCent5 (5.5.15), C5MPI (1.6.2) - April 2016

Fixes and Maintenance

Enhancements

Century5 (5.5.10), DayCent5 (5.5.14), C5MPI (1.5.2) - Oct 2015

Fixes and Maintenance

Enhancements

C5MPI (1.5) - June 2015

Enhancements

Century5 (5.5.9) and DayCent5 (5.5.13) - April 2015

Fixes and Maintenance

Enhancements

Century5 (5.5.8) and DayCent5 (5.5.12) - Feb 2015

Enhancements

Century5 (5.5.7) and DayCent5 (5.5.11) - Oct 2013

Enhancements

Century5 (5.5.6) and DayCent5 (5.5.10) - May 2013

Fixes and Maintenance

Enhancements

Century5 (5.5.5) and DayCent5 (5.5.9) - April 2013

Enhancements

Century5 (5.5.4) and DayCent5 (5.5.8) - October 2012

Fixes and Maintenance - DayCent5

Enhancements - DayCent5

Century5 (5.5.2.2) and DayCent5 (5.5.5.3) - March 2012

Enhancements

Century5 (5.5.1.15) and DayCent5 (5.5.4.11) - Jan 2012

Fixes and Maintenance

Century5 (5.5.1.10) and DayCent5 (5.5.4.7) - Sep 2011

Fixes and Maintenance

Century5 (5.5.1.8) and DayCent5 (5.5.4.5) - Aug 2011

Fixes and Maintenance

Century5 (5.5.1) and DayCent5 (5.5.4) - May-June 2011

Fixes and Maintenance

Enhancements

Century5 (5.5.0) and DayCent5 (5.5.3) - March 2011

Enhancements

Century5 (5.4.8.15) and DayCent5 (5.5.2.20) - November 2010

Fixes and Maintenance

Century5 (5.4.8.1) and DayCent5 (5.5.2.1) - March 2009

Fixes and Maintenance

Enhancements

Century5 and DayCent5 Version: 5.5.1 - September 2007

Enhancements

DayCent5 Version: 5.5.0 - April 2007

Enhancements

DayCent5 Version: 5.4.8.0 - August 2006

Fixes and Maintenance

Version: 5.4.7.11 - July 2006

Fixes and Maintenance

Enhancements

Version: 5.4.7.10 - May 2006

Enhancements

Fixes and Maintenance

Version: 5.4.7.9 - December 2005

Enhancements

Fixes and Maintenance

Version: 5.4.7 - November 2005

Enhancements

Monthy Century5 and DayCent5

Century Model Interface

Utilities

Fixes and Maintenance

Version: 5.4.6 - February 2005

Fixes and Maintenance

Monthly Century and Century Base Classes

Version: 5.4.5 - November 2004

Fixes and Maintenance

Monthly Century and Century Base Classes

Version: 5.4.4 - August 2004

Enhancements

CMI Site Editor

CMI Management Editor

Simulation Output File Dialog

Century Command Line

Fixes and Maintenance

Monthly Century

CMI Site Editor

Layered Soil Framework

Version: 5.4.3 - October 2003

Enhancements

CMI

Fixes and Maintenance

Command-Line Arguments

Misc.

Version: 5.4.3 - September 2003

Misc. Modifications

User Preferences:

CMI

Installation program

Century Classes

Version: 5.4.2 - September 2003

General Comments

Version 5.4 contains a tremendous number of structural changes to the Century source code. Our task of combining the monthly and daily models into a stronger object-oriented design is largely complete. The Century source code is now part of the source code structure for the new IRC model using the Grid-Cohort Framework.
Significant new features since the last release include
The source code builds and runs in both the latest Borland and GNU C++ compilers, and so should run in any environment and operating system for which those compilers are available. We routinely test in the following compiler/systems: Borland C++ Builder/Microsoft Windows; GNU g++/Cygwin; GNU g++/Linux.

New or Enhanced Algorithms

Fixes and Maintenance

Class TCentury

  1. The relative water contents supplied in the site file were overwritten at the start of a simulation by the calculation using the wilting point and field capacity for each layer. This is fixed so the RWCF(*) are not calculcated at the start unless all values are zero.
  2. Has a large number of fixes, and issues found during code reorganization.

Physical Soil-related Classes

  1. Corrected storage of deep soil water storage, so it isn't overwritten, and is placed in output variable ASMOS(10) per the Century reference manual.

CMI

  1. Upgraded to use the modified class interfaces for site and management.
  2. Several misc. bugs have been fixed.

Miscellaneous

  1. The user preferences class, TUserPref, now adds the extension "ini" to a user preferences file name, if no extension is provided. Fixed a memory leak, where a list of strings was not deleted.
  2. Installation of the Century model's files puts the template and parameter files into the install path, in the subdirectories template and parameters, respectively. These two subdirectories are now further subdivided into Monthly and Daily subdirectories, in order to accomodate the different sets of files required for the monthly and daily versions of Century.

Version: 5.4.0 - July 2002

New or Enhanced Algorithms

Miscellaneous

  1. New new command-line option, "-t0", to turn OFF writing output files.

Class TCentury

  1. At end of each simulation year, the bulk densities and thicknesses of the soil layers encompassed by the simulation depth are recalculated according to the change in the annual mean value of monthly SOMSC. See the section Layered Soil Submodel for details.
  2. The mineral nutrient storage (N, P, S), previously stored in fixed layers (an unmodified relict from Century 4) are now layered components of the physical soil structure. Transfers between the simulation layer pools and these soil mineral nutrient pools account for the layers spanning the simulation depth, rather than surface layer only.

Physical Soil-related Classes

  1. Conversion functions for different units of SOM and SOC are provided in TSoilBase. Classes TCenturySoil, TSoilCDistribution, TDeposition, and TErosion now use these new functions.
  2. Functions for estimating the change in bulk density as the soil organic C content changes are provided in class TSoilBase.

Fixes and Maintenance

Class TCentury

  1. Output for ASMOS(*) and MINERL(*, *) now properly put the deep store values in the 10th element, i.e., ASMOS(10) and MINERL(10, *).
  2. Now checks for a soil thickness (from the site parameters) that is less than the minimum thickness for the simulation layer (20 cm).
  3. Checks for a soil thickness that is equal to the simulation layer thickness. In this case, the lower soil pools are not used, and the algorithms which require more soil are not used - C distribution in the profile, and erosion.
  4. Phosphorus is now correctly transferred between the mineral, secondary, and parent P. See the section Phosphorus Submodel for details.
  5. Forest C output variable, TCREM, is now an annual accumulator, rather than cumulative over the simulation.

Century Model Interface

  1. Site Editor: Fixed several issues involved in accessing site parameter files and replacing the displayed site parameter file.

Miscellaneous

  1. TLowerSoil, TCenturySoil, TSoilBase: Misc. fixes for minor issues found in portability testing.

Version: 5.3.2 - November 2001

New or Enhanced Algorithms

Command Line Options

  1. New command line option " -i filename ", where filename is the name of an initialization file. The default name is " century.ini " in the current path.
  2. Both the command-line version and CMI (e.g., in MS Windows, century.exe and CMI.exe respectively) accept command-line arguments. For instance, you can modify your MS Windows shortcut to CMI to include your initialization file. Likewise, on UNIX or Linux systems, you can create an alias which runs CMI with your initialization file.
  3. Removed command-line option "-dn" which displayed default file names. These default names are now determined in class TCenturyConfig, but are not available at the time the command-line is parsed.

Century Model Interface

  1. The Management Editor's Define Blocks page now provides a popup list of event options for those events which have associated parameter databases.

class TCenturyConfig

  1. New class to contain a complete configuration for a simulation. All initialization of input (site, management, output, etc) is now external to the Century model and class TCentury.
  2. Modified classes TCentury, TApp and the GUI classes, and function main to use this new class.

Fixes and Maintenance

Class TCentury

  1. Fixed bug in reading organic matter input parameter ASTREC.
  2. Fixed bug in reading of Century 4 schedule file which uses CO 2 effects.
  3. Additional modifications to help build a common source tree with daily and gridded versions (including new base classes TEcosystemModelBase, TCenturyBase, TOutputBase, TCentOutFileBase).

Parameters Database Files

  1. The parameter databases store options for a specific event (e.g., CROP event or FIRE event). The parameter database list have been abstracted into a new class to manage the list. This will allow future features for selective specification of parameter database sets by the user, and provides for centralized management of the database.
  2. Class TCentury: The Century model class now receives a parameter database list object when instantiated. Previously the class opened each database as needed, and managed the list internally.

Century Model Interface

  1. User Preferences dialog: Width of the project, site, and management path fields is larger.
  2. Site and Management Editors: Several improvements, including adding Century4 files to the "Open" button file filters.
  3. TModalDialog base class: Better positioning of large dialogs..

Version: 5.3.1 - June 2001

General Comments

This release has a substantial number of modifications over version 5.2, including many bug fixes, enhancements to the object-oriented design of the code, and implementation of design changes to allow for swapping of simulations. The design goal is provide Century and its supporting submodels with a "pluggable" architecture, so submodels can be changed easily, and so Century can be plugged into other model architectures.

Fixes and Maintenance

Class TFlow

  1. Class TFlow has been rebuilt using containers and algorithms from the the standard C++ library.

Class TSoil

  1. Class TSoil has been replaced by a new set of classes which more easily allow for extensibility of the physical soil. These classes are named TSoilVDCompBase, TSoilPool, TSoilProperty, TSoilCompList, TSoilLayer, TSoilBase.

Class TCenturySoil

  1. TCenturySoil has been rewritten to utilize the new set of soil classes, and is derived from class TSoilBase.
  2. Utilizes a new class TSoilCDistribution which calculates a curve estimating the distribution of the density (g cm -3 ) of soil organic C throughout the soil profile. The parameters for this curve are based upon (1) the current C density in the simulation layer, (2) the initial value or last estimated value of the lower soil C pool, and (3) the depth of the soil profile.
  3. Minor cleanup of the soil water bucket submodel.

Classes TLowerSoil, TErosion, and TDeposition

  1. These classes have been modified to use the new version of class TCenturySoil.
  2. These classes no longer modify the physical soil, only the simulation pools.

Class: TCentury

  1. The netCDF template file for the output variables' definitions had the MINERL() ordering sorted first by element, then by layer. Fixed so that sorting is first by layer.
  2. Modification of several member functions to utilize the new soil class, TCenturySoil.
  3. Leaching of organic C is now determined from water flow from the bottom of the simulation layer rather than from "layer 2" or "30 cm depth" as in version 4. Organic C leaching is now encapsulated in a new member function LeachOrganicC.
  4. New output variables: soilDepth , lhsomtc and somtpc .
  5. Increased code readability with several boolean functions.
  6. Fixed bug in which N volatility fixed parameter vlosse was modified in member function DeathOfShoots.
  7. Encapsulated the system type information in a new class TPlantSystemType.
  8. Encapsulated the site geographic and non-weather surface environment in a new class TSiteEnvironment.
  9. Encapsulated the microcosm calculations in a new class TMicrocosm.
  10. Encapsulated the canopy variables and functions in the new class TCanopy.
  11. Corrected setup of microcosm simulations such that (1) temperature is constant, and read from the site parameters; (2) rainfall and irrigation is always zero; (3) the soil water submodel is not used so that the soil water content is constant.
  12. The parameter databases are now stored in memory rather than read at each request. This results in a substantial speed increase of simulations, at the cost of increased memory requirements.
  13. Calculation of whether or not the number of hours in the day are increasing or decreasing fixed so that when current and previous day lengths are equal, no change in the direction occurs.
  14. Calculation of the day length now accounts properly for the southern hemisphere (site parameter SITLAT < 0).
  15. Fix in uptake of N, P, or S so P and S uptake is correctly calculated.
  16. CO 2 effect ramping function calculating intermediate concentrations did not account for end of the year, at which time no ramping is needed. Now the CO 2 concentration uses the final value.
  17. Added new event and associated function to provide for external events. This event calls an external function provided by the main program unit or the function which created the Century object. Added the member function UseExtEventtFunction to specify this external function.
  18. Encapsulated all asynchronous functions and variables in a new class, TAsynchFunctions.

Graphical User Interface

  1. Management Editor: Microcosm now has its own entry fields.

Version: 5.2.1 - June 2000

Class: TCentury

  1. Added additional functions to access output variables.

Version: 5.2.0 - May 2000

New or Enhanced Algorithms

New class: TCenturySoil

  1. Derived from TSoil, contains Century-specific soil functions, including the water bucket model.

Weather data (class TWeather)

  1. Replaced the random number generator functons (which were from the book Numerical Recipies) with a set of portable functions that are freely distributable.

Class: Import of Century4 schedule files.

  1. Block definition descriptions are now prefixed by the block number.

Century Model Interface

  1. Added a simple toolbar of buttons for "Quick Steps" to configuring and running a simulation.

Fixes and Maintenance

Class: TCentury

  1. Soil organic matter percent (OMPC) is now updated at the end of each simulation iteration and after erosion and deposition. This is needed in order to update variables dependent upon soil texture and OMPC, such as field capacity and wilting point (depending upon the value of the site parameter SWFLAG).
  2. The mean maximum plant-available water content (field capacity minus wilting point, calculated as a weighted mean by layer thickness) used for the determining the potential crop and tree production is now calculated over the rooting depth. In Century 4, this is only calculated for the surface soil layer, irrespective of layer thickness.
  3. Added fix in calculation of N uptake in soil, so that the monthly symbiotic N fixation amount is not included in soil N uptake. (This fix had previously been included in the gridded Century version.)
  4. Function OutputVariables: Fixed bug in the calculation of the output variable ADEFAC, which was a remnant of the conversion of some very bad FORTRAN (Imagine!) to C++.
  5. The water bucket model was moved into a new class TCenturySoil, which is derived from class TSoil.
  6. Increased exception-robustness through the use of auto_ptr for the dynamically-allocated data.
  7. Added the applicable latest changes from the VEMAP and daily FORTRAN versions, including:
    • WoodDeath: Check for available soil water when deciding to drop leaves in deciduous forests. Also added check for winter solstice if trying to drop decidous leaves.
    • AtmCO2Effect: Fix use of step vs. ramp function.
    • InitMonthlyCycle: Added a simple soil temperature calculation based upon a warming or cooling trend. (This fix had previously been included in the gridded Century version.) The soil temperature output variable STEMP now contains the new calculation.
  8. Site parameter and internal variable, NLAYPG, the number of layers available for plant growth, is now updated when any change to the physical soil occurs, including as erosion and deposition. It is limited to the range 1-9, and will not exceed the number of soil layers.
  9. Further cleanup of the water submodel code, which contained much spaghetti inherited from the FORTRAN version.

Weather data (class TWeather)

  1. Rewrote the algorithm for reading weather data files. The original was a holdover from the FORTRAN code. The new algorithm is predictable and easy to understand.
  2. Changed algorithm to replace missing values (-99.99) for temperatures in the weather file and the site parameters. The algorithm is now:
    (1) If the site parameter temperature value is valid, use it.
    (2) Otherwise, estimate a value using linear interpolation or extrapolation.
    (3) If the estimate is not available or reasonable, then use the mean annual minimum or maximum temperature.
  3. Modified the precipitation algorirthm for replacing missing values in the weather file and the site parameters. Previously a stochastic value was generated, as described in item 2 below.
    (1) If the site parameter precipitation value is valid, use it.
    (2) Otherwise, generate a stochastic value based upon the standard deviations and skewness values from the site parameters.
  4. Fully encapsulated the weather class. It is now completely independent of the Century code.

Class: TSoil

  1. Fixed bug in the calculation of weighted means of properties, and encapsulated duplicated code in member functions.
  2. Changed dynamically-allocated member arrays to be of standard library class vector , and modified code to use them appropriately.
  3. Additional improvements to the erosion and deposition algorithms, especially in the area of managing soil water contents.
  4. Some functions which are specific to the Century model were moved into the new derived class TCenturySoil.

Class: TSiteEditorDlg (the site parameter editor)

  1. Fixed bug in which a site parameter set which has been read from a file into the site editor was not copied to the permament site parameter set.

Century Model Interface

  1. Fixed several minor but irritating quirks of the GUI code.
  2. Built CMI for Microsoft Windows using the latest version of the V GUI library (1.24).

Documentation

  1. HTML Help pages - added much of the online Century 4 manual, with some minor modifications to reflect version 5.

Version: 5.1.0 - June 1999

Class: TNcFile (base class for netCDF files)

  1. Rewrote most of the function CreateFrom to fix inconsistancies.

Utility: ef2cvs

Converts an erosion output file in netCDF format, to a text file in CSV (comma-separated values) format, for import into a spreadsheet program.

Class: Output variable classes

  1. Added the management scheme and site file names, and the site parameter set description to the output files.

Class: TWaterTemp (output variables for water and temperature)

  1. Added the output variable "SIMDEPTH", which records in each output record the depth of the simulation layer in cm. This variable is initialized to the value of the fixed parameter EDEPTH (20 cm), and will only be altered by erosion or deposition events.

New classes: TLowerSoil, TDepEroBase, TErosion, TDeposition, TNcErosionFile

  1. Completed the initial version of these new classes.

Class: TMgtDlg (Management editor dialog)

  1. Activated the entry fields and browse buttons for the erosion and depostion files.

Class: TCentury

  1. Function RunSimulation: Added exception handling for failure upon read of intial crop tree parameters.
  2. Function Schedule: Added exception handling for failure upon read of event parameters.

Class: TSimTime

  1. Corrected a problem in Century output timing.

Class: TManagementScheme

  1. Enhanced error messages upon import of Century 4 schedule files.

Class: TSiteParameters

  1. Allowed import of Century 4 site parameter files to accept parameter names that are not enclosed in single quotes.
  2. Fixed bug in import of Century 4 site parameter files.
  3. Enhanced error messages upon import of Century 4 site parameter files.

Class: TWeatherVars

  1. Enhanced reading of the weather file with better error messages.
  2. Made "file rewind" requests more robust (less susceptable to compiler idiosyncracies).

Version: 5.0.x

Apr 1999

Class: TApp

  1. Function RunSimulation: Now closes the progress dialog when execution is stopped prematurely, either through the "Cancel" button or when an exception is generated.

Class: TCentury

  1. Added notes on using C++ inheritance to create a custom version of the Century class.

Mar 1999

Class: TMgtDlg (Management editor dialog)

  1. Fix problem in the display of simulation description.
  2. Added controls, events, functions to select the files for 14 C input data, erosion output data, deposition input data to the Simulation Information dialog.

Class: TNcFile (netCDF file base class)

  1. Added a member variable to store the netCDF file version, applicable to all Century netCDF file types.
  2. Added functions to "set", "get", and "check" the file version.

Class: TSiteParameters, TNcSiteParameters, TSiteFromLibDlg

  1. TSiteParameters, TNcSiteParameters: Added code to read and write the editor name and edit date in the site parameter netCDF file.
  2. TSiteFromLibDlg: Added display of the editor name and edit date in the summary panel.

Feb 1999

Class: TCentury

  1. Made default values to be TCentury static member constants.
  2. Modified the soil water submodel and all depth-dependent calculations in the decomposition functions to use the new TSoil class.
  3. TSimTime class finished: data and functions for simulation time encapsulated.
  4. Added command-line option to display the execution time of the simulation.
  5. Added a deposition event to the management scheduling.

Class TSoil, TLowerSoil, TErosion, TDeposition (incomplete), TNcErosionFile

  1. New classes for implementing the new erosion and deposition submodels.
  2. TLowerSoil implements the lower layer element pools as a source and sink for the simulation layer pools at the surface, as the simulation layer undergoes erosion and deposition.
  3. TSoil implements a layered physical soil, containing vertically-differentiated layers unique in texture, bulk density, and water content.
  4. TErosion and TDeposition implement erosion and deposition functions. TNcErosionFile manages a file of erosion values, written during erosion events, and read during deposition events.

Class: TDefaultPaths

  1. New class which encapsulates management of default paths for parameter and management files, parameter and management templates, and parameter definition databases.

Class: TNcFile (netCDF file base class)

  1. Added member variable for netCDF file types in the file ncftypes.h.
  2. Added functions to "set", "get", and "check" the file type. Upon creation of a Century netCDF file object, automatically compares the requested type to the type specified in the disk file.

Class: TVerifyMgmt

  1. New class - originally was part of class TMgtDlg, the management editor. Extracted all verification functions into their own class.

Utility: ncfilelist
A command-line utility to list the names and types of Century netCDF files in the directory in which it is run.

Jan 1999

Class: TCentOutFileBase, TCentNcFile, TCentSprShtFile

  1. Added classes which encapsulate Century output:
    TCentOutFileBase is the base class for all output files.
    TCentNcFile produces netCDF output.
    TCentSprShtFile produces CSV (comma-separated values) output for input into spreadsheet and word processor applications.

Class: TCentury

  1. Modified constructor args to utilize new output class.
  2. Modified function "wrtbin" to use new output class;
  3. Discarded the function "detiv", which in Century 4 initialized output files.