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 NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/TOP/TRP – NEMO

source: NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/TOP/TRP/trcbbl.F90 @ 10946

Last change on this file since 10946 was 10946, checked in by acc, 5 years ago

2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps : Convert STO, TRD and USR modules and all knock on effects of these conversions. Note change to USR module may have implications for the TEST CASES (not tested yet). Standard SETTE tested only

  • Property svn:keywords set to Id
File size: 4.7 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   !! History :  OPA  !  1996-06  (L. Mortier)  Original code
8   !!            8.0  !  1997-11  (G. Madec)    Optimization
9   !!   NEMO     1.0  !  2002-08  (G. Madec)  free form + modules
10   !!             -   !  2004-01  (A. de Miranda, G. Madec, J.M. Molines ) add advective bbl
11   !!            3.3  !  2009-11  (G. Madec)  merge trabbl and trabbl_adv + style + optimization
12   !!             -   !  2010-04  (G. Madec)  Campin & Goosse advective bbl
13   !!             -   !  2010-06  (C. Ethe, G. Madec)  merge TRA-TRC
[9019]14   !!            4.0  !  2017-04  (G. Madec)  ln_trabbl namelist variable instead of a CPP key
[941]15   !!----------------------------------------------------------------------
[9019]16#if  defined key_top
[941]17   !!----------------------------------------------------------------------
[9019]18   !!   'key_top'                                                TOP models
[941]19   !!----------------------------------------------------------------------
[9019]20   !!    trc_bbl      : update the tracer trends due to the bottom boundary layer (advective and/or diffusive)
[941]21   !!----------------------------------------------------------------------
[9019]22   USE oce_trc        ! ocean dynamics and active tracers variables
23   USE trc            ! ocean passive tracers variables
24   USE trd_oce        ! trends: ocean variables
25   USE trdtra         ! tracer trends
26   USE trabbl         ! bottom boundary layer
27   USE prtctl_trc     ! Print control for debbuging
[941]28
[9019]29   PUBLIC   trc_bbl   !  routine called by trctrp.F90
[941]30
31   !!----------------------------------------------------------------------
[9598]32   !! NEMO/TOP 4.0 , NEMO Consortium (2018)
[7753]33   !! $Id$
[10068]34   !! Software governed by the CeCILL license (see ./LICENSE)
[941]35   !!----------------------------------------------------------------------
36CONTAINS
37
[10946]38   SUBROUTINE trc_bbl( kt, Kmm, Krhs )
[941]39      !!----------------------------------------------------------------------
[2528]40      !!                  ***  ROUTINE bbl  ***
41      !!                   
42      !! ** Purpose :   Compute the before tracer (t & s) trend associated
43      !!     with the bottom boundary layer and add it to the general trend
44      !!     of tracer equations.
[941]45      !!
[2528]46      !!---------------------------------------------------------------------- 
47      INTEGER, INTENT( in ) ::   kt   ! ocean time-step
[10946]48      INTEGER, INTENT( in ) ::   Kmm, Krhs  ! time level indices
[9927]49      INTEGER :: jn                   ! loop index
[941]50      CHARACTER (len=22) :: charout
[9125]51      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:,:) ::   ztrtrd
[941]52      !!----------------------------------------------------------------------
[3294]53      !
[9124]54      IF( ln_timing )   CALL timing_start('trc_bbl')
[3294]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
[9125]62         ALLOCATE( ztrtrd(jpi,jpj,jpk,jptra) ) ! temporary save of trends
[7753]63         ztrtrd(:,:,:,:)  = tra(:,:,:,:)
[1175]64      ENDIF
[941]65
[2528]66      !* Diffusive bbl :
67      IF( nn_bbl_ldf == 1 ) THEN
68         !
69         CALL tra_bbl_dif( trb, tra, jptra ) 
70         IF( ln_ctl )   THEN
71            WRITE(charout, FMT="(' bbl_dif')")  ;  CALL prt_ctl_trc_info(charout)
72            CALL prt_ctl_trc( tab4d=tra, mask=tmask, clinfo=ctrcnm, clinfo2='trd' )
73         ENDIF
74         !
[9019]75      ENDIF
[941]76
[2528]77      !* Advective bbl : bbl upstream advective trends added to the tracer trends
78      IF( nn_bbl_adv /= 0 ) THEN
79         !
80         CALL tra_bbl_adv( trb, tra, jptra ) 
81         IF( ln_ctl )   THEN
82            WRITE(charout, FMT="(' bbl_adv')")  ;  CALL prt_ctl_trc_info(charout)
83            CALL prt_ctl_trc( tab4d=tra, mask=tmask, clinfo=ctrcnm, clinfo2='trd' )
84         ENDIF
85         !
[9019]86      ENDIF
[941]87
[2528]88      IF( l_trdtrc )   THEN                      ! save the horizontal diffusive trends for further diagnostics
89        DO jn = 1, jptra
[7753]90           ztrtrd(:,:,:,jn) = tra(:,:,:,jn) - ztrtrd(:,:,:,jn)
[10946]91           CALL trd_tra( kt, Kmm, Krhs, 'TRC', jn, jptra_bbl, ztrtrd(:,:,:,jn) )
[941]92        END DO
[9125]93        DEALLOCATE( ztrtrd ) ! temporary save of trends
[941]94      ENDIF
[2528]95      !
[9124]96      IF( ln_timing )   CALL timing_stop('trc_bbl')
[3294]97      !
[2528]98   END SUBROUTINE trc_bbl
[941]99
100#endif
101
102   !!======================================================================
103END MODULE trcbbl
Note: See TracBrowser for help on using the repository browser.