SiB is is the Simple Biosphere model begun by Piers Sellers. It models soil and plant level biochemical processes affecting the atmospheric carbon cycle. It is now actively maintained by Scott Denning's Biocycle Research Group at CSU. There are a number of branches of development, but we are only considering SiBcrop at this time.


Sellers, P.J., D.A. Randall, G.J. Collatz, J.A. Berry, C.B. Field, D.A. Dazlich, C. Zhang, G.D. Collelo, and L. L. Bounoua, 1996a: A Revised Land Surface Parameterization (SiB2) for Atmospheric GCMs. Part I: Model Formulation. J. Climate, 9, 676-705.

Sellers, P.J., S.O. Los, C.J. Tucker, C.O. Justice, D.A. Dazlich, G.J. Collatz, and D.A. Randall, 1996b: A Revised Land Surface Parameteriztion (SiB2) for Atmospheric GCMs. Part II: The Generation of Global Fields of Terrestrial Biophysical Parameters from Satellite Data. J. Climate, 9,706-737.

Baker, I.T. and Denning, A.S. 2008. SiB3 modeled global 1-degree hourly biosphere-atmosphere carbon flux, 1998-2006. Data set. Oak Ridge National Laboratory Distributed Active Archive Center, Oak Ridge, Tennessee, U.S.A.,


This is SiB with crop phenology added by Erandi Lokupitiya.


Lokupitiya, E., Denning, A.S., Paustian, K., Baker, I.T., Schaefer, K. and co-authors. 2009. Incorporation of crop phenology in Simple Biosphere Model (SiBcrop) to improve land-atmosphere carbon exchanges from croplands. Biogeosciences 6, 969-986.

Supported Platforms

Compilers: Operating Systems:

We work with SiB on Linux and OS X with Gfortran, and Portland Group's pgf90. Sometimes we test with Intel's ifort. Other Fortran 90 compilers and POSIX operating systems may work, but you're on your own. If some simple changes will make SiB run on your platform of choice, consider sending them to us for inclusion in our source code repository.


You will need the libraries:

All versions of SiB depend on NetCDF version 3, LAPACK and BLAS libraries. LAPACK and BLAS may come with your compiler, and on OS X the routines are in the vecLib framework. Otherwise, you will need to compile them yourself. We recommend building the ATLAS implementation of BLAS with's LAPACK distribution.

Getting The Code

To get SiBcrop from our subversion repository, use the following command:

    svn co

This will check out the latest version of the code. You will have read-only access to the code this way. If you wish to contribute changes, see Contributing below.


We provide an example Makefile (Makefile.example) to compile SiB. It requires GNU make, which is the default on the supported platforms. It attempts to detect your operating system and configure itself accordingly, but you may still want to make some changes. Copy Makefile.example to Makefile and make your site-specific modifications to the latter. You will usually want to make these changes:

You can also change these values without editing the Makefile by setting them as environment variables before issuing the make command. Example:

    $ export NETCDF_ROOT=/usr/local
    $ COMPILER=ifort OPT=opt make clean all

See the comments in the Makefile for details.

Now run make. If everything is configured correctly this will build the SiB3crop and sibmerge programs; if not, make sure everything is setup correctly in the Makefile.

Download Datasets

Get one of these datasets if you do not have your own.


Get a dataset (one we have provided or one you have created). There should be a namel_sibdrv file which tells SiB where all these input files and output directory are. You may need to edit these to change the paths. We recommend you keep your sib code in the SiB3crop/ directory that Subversion creates by default, and your data directories in the same directory SiB3crop/ is in, i.e.:

    bishop@chysis:~/src$ ls my_sib_project/
    SiB3crop/  data.bondville/  data.ponca.tar.gz  data.ponca/
Once you got your directory structure in order, run SiBD3crop from the data directory with the namel_sibdrv:
    bishop@chysis:~/src/my_sib_project/data.bondville$ ../SiB3crop/SiBD3crop
        reading sib inlist
        reading sib i/olst
        reading subgrid values
        reading sib pbplst
        reading sib_control_lst
        SiB time step (s) =                   600
        SiB out written (months) =                     1
        SiB restart written (months) =                     1
        nsib=            1
        drvr_type= single  
        reading parameter file: param/
        diagnostics initialized
        initialize time variables
        reading time-invariant boundary conditions
           reading param/
        obtaining previous month time-variant boundary conditions
           reading file: param/sib_param_1998
        reading in initial conditions: param/
           opening ic fileparam/
           reading in slabs...
           load data into the structure
        setting soil properties 
        reading in initial time-step driver data
        reading in respFactor
        initializing crops
        initializing solar declination
     January                       1                 1999
     January                       2                 1999
     January                       3                 1999
     January                       4                 1999
     January                       5                 1999
     January                       6                 1999
     January                       7                 1999
As shown above, you should see initialization information, then as the model runs it prints out each day it completes. When the run is done, the output will be in a series of NetCDF files. Look in the output/ directory in our datasets. Read the data with your favorite NetCDF tools.


We would love to have you run this code all around the world and help us figure out how to improve it. Show us the problems the original code has, how you've fixed it, and we'll take a look. You can capture your code changes into a patch file with the svn diff command:

    svn diff >mychanges.patch

Then just send us the patch file and we can consider your code for inclusion in the next version of SiB.

Copyright/IP Rights