New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
trcbbl.F90 in branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/TOP_SRC/TRP – NEMO

source: branches/2017/dev_r7881_no_wrk_alloc/NEMOGCM/NEMO/TOP_SRC/TRP/trcbbl.F90 @ 7910

Last change on this file since 7910 was 7910, checked in by timgraham, 7 years ago

All wrk_alloc removed

  • Property svn:keywords set to Id
File size: 4.8 KB
RevLine 
[941]1MODULE trcbbl
[2528]2  !!======================================================================
[941]3   !!                       ***  MODULE  trcbbl  ***
4   !! Ocean passive tracers physics :  advective and/or diffusive bottom boundary
5   !!                                  layer scheme
[1175]6   !!======================================================================
[2528]7   !!==============================================================================
8   !! History :  OPA  !  1996-06  (L. Mortier)  Original code
9   !!            8.0  !  1997-11  (G. Madec)    Optimization
10   !!   NEMO     1.0  !  2002-08  (G. Madec)  free form + modules
11   !!             -   !  2004-01  (A. de Miranda, G. Madec, J.M. Molines ) add advective bbl
12   !!            3.3  !  2009-11  (G. Madec)  merge trabbl and trabbl_adv + style + optimization
13   !!             -   !  2010-04  (G. Madec)  Campin & Goosse advective bbl
14   !!             -   !  2010-06  (C. Ethe, G. Madec)  merge TRA-TRC
[941]15   !!----------------------------------------------------------------------
[2528]16#if  defined key_top &&  defined key_trabbl 
[941]17   !!----------------------------------------------------------------------
[2528]18   !!   'key_trabbl                      diffusive or/and adevective bottom boundary layer
[941]19   !!----------------------------------------------------------------------
[2528]20   !!    trc_bbl       : update the tracer trends due to the bottom boundary layer (advective and/or diffusive)
[941]21   !!----------------------------------------------------------------------
22   USE oce_trc             ! ocean dynamics and active tracers variables
[1175]23   USE trc                 ! ocean passive tracers variables
[2528]24   USE trabbl              !
[941]25   USE prtctl_trc          ! Print control for debbuging
[4990]26   USE trd_oce
[2528]27   USE trdtra
[941]28
[2528]29   PUBLIC   trc_bbl       !  routine called by step.F90
[941]30
31   !!----------------------------------------------------------------------
[2528]32   !! NEMO/TOP 3.3 , NEMO Consortium (2010)
[7753]33   !! $Id$
[2528]34   !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)
[941]35   !!----------------------------------------------------------------------
36
37CONTAINS
38
[2528]39
40   SUBROUTINE trc_bbl( kt )
[941]41      !!----------------------------------------------------------------------
[2528]42      !!                  ***  ROUTINE bbl  ***
43      !!                   
44      !! ** Purpose :   Compute the before tracer (t & s) trend associated
45      !!     with the bottom boundary layer and add it to the general trend
46      !!     of tracer equations.
[941]47      !!
[2528]48      !!---------------------------------------------------------------------- 
49      INTEGER, INTENT( in ) ::   kt   ! ocean time-step
[941]50      CHARACTER (len=22) :: charout
[7910]51      REAL(wp), DIMENSION(jpi,jpj,jpk,jptra) ::   ztrtrd
[941]52      !!----------------------------------------------------------------------
[3294]53      !
54      IF( nn_timing == 1 )  CALL timing_start('trc_bbl')
55      !
[7646]56      IF( .NOT. l_offline .AND. nn_dttrc == 1 ) THEN
[3294]57         CALL bbl( kt, nittrc000, 'TRC' )      ! Online coupling with dynamics  : Computation of bbl coef and bbl transport
58         l_bbl = .FALSE.                       ! Offline coupling with dynamics : Read bbl coef and bbl transport from input files
[2528]59      ENDIF
[941]60
[2528]61      IF( l_trdtrc )  THEN
[7753]62         ztrtrd(:,:,:,:)  = tra(:,:,:,:)
[1175]63      ENDIF
[941]64
[2528]65      !* Diffusive bbl :
66      IF( nn_bbl_ldf == 1 ) THEN
67         !
68         CALL tra_bbl_dif( trb, tra, jptra ) 
69         IF( ln_ctl )   THEN
70            WRITE(charout, FMT="(' bbl_dif')")  ;  CALL prt_ctl_trc_info(charout)
71            CALL prt_ctl_trc( tab4d=tra, mask=tmask, clinfo=ctrcnm, clinfo2='trd' )
72         ENDIF
73         !
74      END IF
[941]75
[2528]76      !* Advective bbl : bbl upstream advective trends added to the tracer trends
77      IF( nn_bbl_adv /= 0 ) THEN
78         !
79         CALL tra_bbl_adv( trb, tra, jptra ) 
80         IF( ln_ctl )   THEN
81            WRITE(charout, FMT="(' bbl_adv')")  ;  CALL prt_ctl_trc_info(charout)
82            CALL prt_ctl_trc( tab4d=tra, mask=tmask, clinfo=ctrcnm, clinfo2='trd' )
83         ENDIF
84         !
85      END IF
[941]86
[2528]87      IF( l_trdtrc )   THEN                      ! save the horizontal diffusive trends for further diagnostics
88        DO jn = 1, jptra
[7753]89           ztrtrd(:,:,:,jn) = tra(:,:,:,jn) - ztrtrd(:,:,:,jn)
[4990]90           CALL trd_tra( kt, 'TRC', jn, jptra_bbl, ztrtrd(:,:,:,jn) )
[941]91        END DO
92      ENDIF
[2528]93      !
[3294]94      IF( nn_timing == 1 ) CALL timing_stop('trc_bbl')
95      !
[2528]96   END SUBROUTINE trc_bbl
[941]97
98#else
99   !!----------------------------------------------------------------------
100   !!   Dummy module :                      No bottom boundary layer scheme
101   !!----------------------------------------------------------------------
102CONTAINS
[2528]103   SUBROUTINE trc_bbl( kt )              ! Empty routine
104      WRITE(*,*) 'tra_bbl: You should not have seen this print! error?', kt
105   END SUBROUTINE trc_bbl
[941]106#endif
107
108   !!======================================================================
109END MODULE trcbbl
Note: See TracBrowser for help on using the repository browser.