         NAME
              iterate - Main time loop for LPJmL

         SYNOPSIS
              #include "lpj.h"

              int iterate(Outputfile *output,
                          Cell grid[],
                          Input input,
                          int npft, int ncft,
                          const Config *config
                         );

         DESCRIPTION
              Function provides main time loop for LPJmL. In each time
              step the global carbon and water fluxes are printed.  The
              arguments of iterate are:

              output
                   Pointer to initialized output data. output must be
                   initialized by fopenoutput().

              grid Cell grid array allocated and initialized by newgrid().

              input
                   Input data initialized by initinput().

              npft Number of natural plant functional types.

              ncft Number of crop plant functional types.

              config
                   LPJmL configuration data. Must be read by readconfig().

         RETURN VALUE
              Upon successful completion the last simulation year +1 is
              returned.

         AUTHORS
              Werner von Bloh (Werner.von.Bloh@pik-potsdam.de), Sibyll
              Schaphoff (Sibyll.Schaphoff@pik-potsdam.de), Stefanie Rost
              (Jachner) (Stefanie.Rost@pik-potsdam.de), Marlies
              Gumpenberger (Marlies.Gumpenberger@pik-potsdam.de), Tim
              Beringer (Erbrecht) (Tim.Beringer@pik-potsdam.de), Christoph
              Mueller (Christoph.Mueller@pik-potsdam.de) Jens Heinke
              (Jens.Heinke@pik-potsdam.de), Hester Biemans
              (Hester.Biemans@wur.nl), Kirsten Thonicke
              (Kirsten.Thonicke@pik-potsdam.de), Ursula Heyder
              (Ursula.Heyder@pik-potsdam.de),

         SEE ALSO
              readconfig(3), fopenoutput(3), newgrid(3), initinput(3),
              iterateyear(3), fwriterestart(3), flux_sum(3), fprintflux(3)