Implementation WOFOST

Currently, four implementations of WOFOST are available:

  1. The reference version WOFOST 7.1 (platform independent) for which a graphical user interface is available for the Microsoft Windows operating system (The WOFOST Control Centre).
  2. The WOFOST version which is implemented in the Crop Growth Monitoring System (CGMS),
  3. PyWofost which is a version of WOFOST embedded in the python interpreter and
  4. the Soil-Water-Atmosphere-Plant modelling system (SWAP).

All these implementation inherit their biophysical core from WOFOST 6.0, but differ in their abilities to deal with I/O (file, database), their user interface or general flexibility.


WOFOST 7.1 consists of the WOFOST crop model implemented in FORTRAN77, extended with a graphical user interface called the WOFOST Control Centre implemented in Borland Delphi (Only for Windows).



  • Reference version of WOFOST, well tested and applied frequently
  • Graphical user interface makes the model relatively easy to handle: multiple runs over many years can be done easily, output can be visualized easily through WCC,  statistics over multiple run can be calculated. Moreover, parameters can be adapted easily through the so-called 'Rerun facility' in order to determine their impact on the model output.


  • Batch runs relatively difficult to implement.
  • Only file-based I/O (weather, crop and soil files
  • Only options that are available through the user interface are easy to access. For more complex operations files will need to be edited manually and/or changes to the source code will be necessary.


WOFOST 6.0 is one of the models implemented in the Crop Growth Monitoring System (currently operational  version 9.2). CGMS is implemented in C and designed to run crop models over a spatial domain, therefore CGMS integrates other functionality such as the ability to interpolate weather data over the spatial domain. All I/O in CGMS is implemented through a database which makes batch runs (many locations and years) easy. Moreover this database facilitates efficient data management.



  • Spatial implementation of WOFOST (although each point is an independent  WOFOST run).
  • Batch runs can be implemented easily.
  • The WOFOST output can be retrieved from the database which makes analysing results relatively easy by sending the appropriate queries to the database.


  • Fairly complex database structure which needs to be filled prior to running CGMS.
  • Calculation of nutrient-limited production is not available in CGMS9.2
  • A user interface is available for running CGMS, but no functionality is available for analysing output. Nevertheless a suite of tools is available to visualize output from the CGMS database, but these are not included with CGMS.

Ownership of CGMS and related tools is with the Joint Research Centre of the European Commission, therefore Alterra cannot provide CGMS executables nor source code. Nevertheless, binary distributions can be downloaded from the JRC ftp server:

Access to the CGMS source code has to be requested with the Agri4Cast unit of JRC, contact person Bettina Baruth (


PyWOFOST is an implementation of WOFOST which reuses the kernel routines (the biophysical core) from the WOFOST 6.0 implementation in FORTRAN77. These routines have been compiled and linked with the python interpreter, while the logic of model execution and the input/output system have been implemented in the python language. This approach greatly increases the flexibility of the system and allows to make analysis that are neither possible with WOFOST 7.1.3, nor with CGMS9.2. Examples of such analysis are the use of model ensembles, assimilation of satellite observations through the ensemble Kalman filter or an optimization approach.

PyWOFOST uses many of the tables that are needed by CGMS, but tries to be more flexible in its output. For example, CGMS writes a fixed set of output variables to the database. Instead, PyWOFOST tries to infer the requested output variables from column names of the output table and writes this set of variables to the database. The development of PyWOFOST has been mainly sparked by scientific needs, nevertheless it could easily replace some of the functionality implemented in CGMS itself.


  • Large flexibility through the use of an interpreted language
  • Large set of python extensions (numerical tools, plotting) that can be used to in combination with PyWOFOST.
  • Batch runs are fairly easy to implement
  • Support for distributed computing.
  • Support for assimilating satellite observations.


  • No user interface, PyWOFOST runs are handled by adapting the appropriate python scripts.
  • Limited support for plotting PyWOFOST results  - a plotting tool with graphical user interface is under development though.
  • Database structure needs to be filled although the database structure has been simplified compared to CGMS.
  • Loss of performance: PyWOFOST is considerably slower then either the pure FORTRAN77 version or the version implemented in CGMS9.2. Nevertheless, support for distributed computing makes up for this.
  • Some features of WOFOST6.0 have not been included in PyWOFOST because they were never used for regional modelling. Excluded features are the modelling of oxygen stress, modelling of nutrient-limited production and the water balance with groundwater influence.


SWAP (Soil, Water, Atmosphere and Plant) simulates transport of water, solutes and heat in unsaturated/saturated soils and optionally uses the WOFOST6.0 model to simulated crop growth. The model is designed to simulate flow and transport processes at field scale level, during growing seasons and for long term time series. See for more information.