next up previous contents
Next: Initialise the model Up: The GOTM main program Previous: GOTM the


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,integrated_fluxes
   use airsea,      only: calc_fluxes
   use airsea,      only: wind=>w,tx,ty,I_0,heat,precip,evap
 
   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
 
   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: numc,cc
 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
   $Log: gotm.F90,v $
   Revision 1.36  2007-12-07 10:12:20  kb
   replaced p_e with precip and included evap
   Revision 1.35  2007-06-19 10:38:02  kbk
   initialise biological profiles from external file
   Revision 1.34  2007-03-15 10:52:07  kbk
   proper cleaning after simulation
   Revision 1.33  2007-01-06 11:57:08  kbk
   PressMethod --> ext_press_mode
   Revision 1.32  2006-11-27 10:08:33  kbk
   use var init_saved_vars to initialise saved variables - air_sea_interaction -> do_air_sea
   Revision 1.31  2006-11-24 15:13:40  kbk
   de-allocate memory and close open files
   Revision 1.30  2006-11-21 15:21:56  kbk
   seagrass working again
   Revision 1.29  2006-11-17 07:13:16  kbk
   rho amd wind-speed available via bio_var
   Revision 1.28  2006-11-12 19:42:45  hb
   vertical advection due to physical vertical velocities enabled for the bio module
   Revision 1.27  2006-10-26 13:12:46  kbk
   updated bio models to new ode_solver
   Revision 1.26  2005-12-27 11:23:04  hb
   Weiss 1970 formula now used for surface oxygen saturation calculation in bio_mab.F90
   Revision 1.25  2005-11-18 10:59:35  kbk
   removed unused variables - some left in parameter lists
   Revision 1.24  2005/11/15 11:45:08  lars
   documentation finish for print
   Revision 1.23  2005/09/12 14:48:33  kbk
   merged generic biological module support
   Revision 1.22  2005/08/11 12:29:38  lars
   added #ifdef for xP argument in do_turbulence()
   Revision 1.21  2005/07/20 09:36:11  lars
   bug-fix in variances output
   Revision 1.20  2005/07/19 16:46:14  hb
   removed superfluous variables - NNT, NNS, SSU, SSV
   Revision 1.19  2005/07/19 16:33:22  hb
   moved  variances() from do_turbulence() to time_loop()
   Revision 1.18  2005/07/12 10:13:21  hb
   dependence of init_turbulence from depth, z0s, z0b removed
   Revision 1.17  2005/07/06 15:30:17  kbk
   added KPP, no bio, no sediment, updated documentation
   Revision 1.16  2004/08/02 08:35:46  hb
   no need to pass time information
   Revision 1.15  2004/07/29 17:36:36  hb
   separate reading fluxes from bio() - benefit of 3D models
   Revision 1.14  2004/05/28 13:24:49  hb
   Extention of bio_iow to fluff layer and surface nutrient fluxes
   Revision 1.13  2004/03/30 11:31:52  kbk
   h in parameter list to init_bio()
   Revision 1.12  2004/03/04 10:13:01  kbk
   calc_sediment --> do_sediment
   Revision 1.11  2003/09/16 12:17:10  hb
   added new biological model - bio_iow
   Revision 1.10  2003/07/23 12:14:07  hb
   preparing for general bio interface
   Revision 1.9  2003/04/04 14:25:52  hb
   First iteration of four-compartment geobiochemical model implemented
   Revision 1.8  2003/04/01 17:01:00  hb
   Added infrastructure for geobiochemical model
   Revision 1.7  2003/03/28 09:20:34  kbk
   added new copyright to files
   Revision 1.6  2003/03/28 09:11:30  kbk
   removed tabs
   Revision 1.5  2003/03/10 09:20:27  gotm
   Added new Generic Turbulence Model + 
   improved documentation and cleaned up code
   Revision 1.3  2001/11/18 15:58:02  gotm
   Vertical grid can now be read from file
   Revision 1.2  2001/06/13 07:40:39  gotm
   Lon, lat was hardcoded in meteo.F90 - now passed via init_meteo()
   Revision 1.1.1.1  2001/02/12 15:55:59  gotm
   initial import into CVS



Subsections
next up previous contents
Next: Initialise the model Up: The GOTM main program Previous: GOTM the
Lars Umlauf
2007-12-11