Module gotm -- the general framework


INTERFACE:

   module gotm
DESCRIPTION:

This is 'where it all happens'. This module provides the internal routines init_gotm() to initialise the whole model and time_loop() to manage the time-stepping of all fields. These two routines in turn call more specialised routines e.g. of the meanflow and turbulence modules to delegate the job.

Here is also the place for a few words on FORTRAN `units' we used. The method of FORTRAN units is quite rigid and also a bit dangerous, but lacking a better alternative we adopted it here. This requires the definition of ranges of units for different purposes. In GOTM we strongly suggest to use units according to the following conventions.


USES:

   use meanflow
   use observations
   use time
 
   use airsea,      only: init_air_sea,do_air_sea,clean_air_sea
   use airsea,      only: set_sst,set_ssuv,integrated_fluxes
   use airsea,      only: calc_fluxes
   use airsea,      only: wind=>w,tx,ty,I_0,cloud,heat,precip,evap
   use airsea,      only: bio_albedo,bio_drag_scale
 
   use turbulence,  only: turb_method
   use turbulence,  only: init_turbulence,do_turbulence
   use turbulence,  only: num,nuh,nus
   use turbulence,  only: const_num,const_nuh
   use turbulence,  only: gamu,gamv,gamh,gams
   use turbulence,  only: kappa
   use turbulence,  only: clean_turbulence
 
   use kpp,         only: init_kpp,do_kpp,clean_kpp
 
   use mtridiagonal,only: init_tridiagonal,clean_tridiagonal
   use eqstate,     only: init_eqstate
 
 ifdef SEAGRASS
   use seagrass
 endif
 ifdef SPM
   use spm_var, only: spm_calc
   use spm, only: init_spm, set_env_spm, do_spm, end_spm
 endif
 ifdef BIO
   use bio
   use bio_fluxes
   use bio_var, only: npar,numc,cc
 endif
 ifdef _FABM_
   use gotm_fabm,only:init_gotm_fabm,init_gotm_fabm_state,set_env_gotm_fabm,do_gotm_fabm,clean_gotm_fabm
   use gotm_fabm_input,only:init_gotm_fabm_input,do_gotm_fabm_input
   use gotm_fabm_output,only:init_gotm_fabm_output,do_gotm_fabm_output
 endif
 
   use output
 
   IMPLICIT NONE
   private
PUBLIC MEMBER FUNCTIONS:
   public init_gotm, time_loop, clean_up
DEFINED PARAMETERS:
   integer, parameter                  :: namlst=10
 ifdef SEAGRASS
   integer, parameter                  :: unit_seagrass=62
 endif
 ifdef SPM
   integer, parameter                  :: unit_spm=64
 endif
 ifdef BIO
   integer, parameter                  :: unit_bio=63
 endif
REVISION HISTORY:
   Original author(s): Karsten Bolding & Hans Burchard



Subsections
Karsten Bolding 2012-12-28