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 @ 10966

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

2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps : Convert TOP routines in TOP/TRP directory and all knock on effects of these conversions. SETTE tested (GYRE_PISCES only)

  • 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   !! 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
[10954]38   SUBROUTINE trc_bbl( kt, Kbb, 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
[10954]48      INTEGER, INTENT( in ) ::   Kbb, 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
[10954]57         CALL bbl( kt, nittrc000, 'TRC', Kbb, Kmm )  ! 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
[10966]63         ztrtrd(:,:,:,:)  = tr(:,:,:,:,Krhs)
[1175]64      ENDIF
[941]65
[2528]66      !* Diffusive bbl :
67      IF( nn_bbl_ldf == 1 ) THEN
68         !
[10966]69         CALL tra_bbl_dif( tr(:,:,:,:,Kbb), tr(:,:,:,:,Krhs), jptra, Kmm ) 
[2528]70         IF( ln_ctl )   THEN
71            WRITE(charout, FMT="(' bbl_dif')")  ;  CALL prt_ctl_trc_info(charout)
[10966]72            CALL prt_ctl_trc( tab4d=tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm, clinfo2='trd' )
[2528]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         !
[10966]80         CALL tra_bbl_adv( tr(:,:,:,:,Kbb), tr(:,:,:,:,Krhs), jptra, Kmm ) 
[2528]81         IF( ln_ctl )   THEN
82            WRITE(charout, FMT="(' bbl_adv')")  ;  CALL prt_ctl_trc_info(charout)
[10966]83            CALL prt_ctl_trc( tab4d=tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm, clinfo2='trd' )
[2528]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
[10966]90           ztrtrd(:,:,:,jn) = tr(:,:,:,jn,Krhs) - 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.