This subroutine computes the balance of heat in the form
Horizontal advection is optionally included (see obs.nml) by means of prescribed horizontal gradients and and calculated horizontal mean velocities and . Relaxation with the time scale towards a precribed profile , changing in time, is possible.
The sum of latent, sensible, and longwave radiation is treated as a boundary condition. Solar radiation is treated as an inner source, . It is computed according the exponential law (see Paulson and Simpson (1977))
Diffusion is numerically treated implicitly, see equations (7)- (9). The tri-diagonal matrix is solved then by a simplified Gauss elimination. Vertical advection is included, and it must be non-conservative, which is ensured by setting the local variable adv_mode=0, see section 8.2.3 on page .
use meanflow, only: avmolt,rho_0,cp use meanflow, only: h,u,v,w,T,S,avh use meanflow, only: bioshade use observations, only: dtdx,dtdy,t_adv use observations, only: w_adv_discr,w_adv_method use observations, only: tprof,TRelaxTau use observations, only: A,g1,g2 use util, only: Dirichlet,Neumann use util, only: oneSided,zeroDivergence IMPLICIT NONEINPUT PARAMETERS:
number of vertical layers integer, intent(in) :: nlev time step (s) REALTYPE, intent(in) :: dt numerical "implicitness" parameter REALTYPE, intent(in) :: cnpar surface short waves radiation (W/m^2) REALTYPE, intent(in) :: I_0 surface heat flux (W/m^2) (negative for heat loss) REALTYPE, intent(in) :: heat diffusivity of heat (m^2/s) REALTYPE, intent(in) :: nuh(0:nlev) non-local heat flux (Km/s) REALTYPE, intent(in) :: gamh(0:nlev)OUTPUT PARAMETERS:
shortwave radiation profile (W/m^2) REALTYPE :: rad(0:nlev)REVISION HISTORY:
Original author(s): Hans Burchard & Karsten Bolding $Log: temperature.F90,v $ Revision 1.20 2010-07-28 15:09:46 hb Surface heat flux truncated when SST < freezing temperature Revision 1.19 2008-03-07 17:57:49 hb AdvBcup changed to oneSided Revision 1.18 2007-01-06 11:49:16 kbk namelist file extension changed .inp --> .nml Revision 1.17 2006-11-06 13:36:45 hb Option for conservative vertical advection added to adv_center Revision 1.16 2005-12-02 21:03:03 hb Documentation updated Revision 1.15 2005-11-17 09:58:20 hb explicit argument for positive definite variables in diff_center() Revision 1.14 2005/11/15 11:39:32 lars documentation finish for print Revision 1.13 2005/09/12 21:46:46 hb use of bioshade corrected (should work on short wave length part of light spectrum only) Revision 1.12 2005/06/27 13:44:07 kbk modified + removed traling blanks Revision 1.11 2004/08/18 12:31:52 lars updated documentation Revision 1.10 2004/07/28 11:29:10 hb Bug removed, rad is not any more multiplied with bioshade; bug found by Jorn Bruggeman, Amsterdam Revision 1.9 2003/07/23 12:33:21 hb fixed bioshade init and use Revision 1.7 2003/04/05 07:01:16 kbk moved bioshade variable to meanflow - to compile properly Revision 1.6 2003/04/04 14:25:52 hb First iteration of four-compartment geobiochemical model implemented Revision 1.5 2003/03/28 09:20:35 kbk added new copyright to files Revision 1.4 2003/03/28 08:56:56 kbk removed tabs Revision 1.3 2003/03/10 08:50:07 gotm Improved documentation and cleaned up code Revision 1.2 2001/11/18 11:50:37 gotm Cleaned Revision 184.108.40.206 2001/02/12 15:55:57 gotm initial import into CVS
Karsten Bolding 2012-01-24