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.
bdytra.F90 in branches/2011/dev_LOCEAN_2011/NEMOGCM/NEMO/OPA_SRC/BDY – NEMO

source: branches/2011/dev_LOCEAN_2011/NEMOGCM/NEMO/OPA_SRC/BDY/bdytra.F90 @ 2977

Last change on this file since 2977 was 2977, checked in by cetlod, 13 years ago

Add in branch 2011/dev_LOCEAN_2011 changes from 2011/dev_r2787_PISCES_improvment, 2011/dev_r2787_LOCEAN_offline_fldread and 2011/dev_r2787_LOCEAN3_TRA_TRP branches, see ticket #877

  • Property svn:keywords set to Id
File size: 3.9 KB
RevLine 
[911]1MODULE bdytra
[1125]2   !!======================================================================
[911]3   !!                       ***  MODULE  bdytra  ***
4   !! Ocean tracers:   Flow Relaxation Scheme of tracers on each open boundary
[1125]5   !!======================================================================
6   !! History :  1.0  !  2005-01  (J. Chanut, A. Sellar)  Original code
7   !!            3.0  !  2008-04  (NEMO team)  add in the reference version
8   !!----------------------------------------------------------------------
[911]9#if defined key_bdy
[1125]10   !!----------------------------------------------------------------------
11   !!   'key_bdy'                     Unstructured Open Boundary Conditions
12   !!----------------------------------------------------------------------
[2528]13   !!   bdy_tra_frs        : Relaxation of tracers on unstructured open boundaries
[1125]14   !!----------------------------------------------------------------------
[911]15   USE oce             ! ocean dynamics and tracers variables
16   USE dom_oce         ! ocean space and time domain variables
17   USE bdy_oce         ! ocean open boundary conditions
18   USE lbclnk          ! ocean lateral boundary conditions (or mpp link)
[1125]19   USE in_out_manager  ! I/O manager
[911]20
21   IMPLICIT NONE
22   PRIVATE
23
[2528]24   PUBLIC bdy_tra_frs     ! routine called in tranxt.F90
[911]25
[1125]26   !!----------------------------------------------------------------------
[2528]27   !! NEMO/OPA 3.3 , NEMO Consortium (2010)
[1146]28   !! $Id$
[2528]29   !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)
[1125]30   !!----------------------------------------------------------------------
[911]31CONTAINS
32
[2528]33   SUBROUTINE bdy_tra_frs( kt )
[1125]34      !!----------------------------------------------------------------------
[2528]35      !!                 ***  SUBROUTINE bdy_tra_frs  ***
[911]36      !!                   
37      !! ** Purpose : Apply the Flow Relaxation Scheme for tracers in the 
38      !!              case of unstructured open boundaries.
39      !!
[1125]40      !! Reference : Engedahl H., 1995, Tellus, 365-382.
41      !!----------------------------------------------------------------------
[911]42      INTEGER, INTENT( in ) ::   kt
[1125]43      !!
44      REAL(wp) ::   zwgt           ! boundary weight
45      INTEGER  ::   ib, ik, igrd   ! dummy loop indices
46      INTEGER  ::   ii, ij         ! 2D addresses
47      !!----------------------------------------------------------------------
48      !
[2528]49      IF(ln_tra_frs) THEN       ! If this is false, then this routine does nothing.
50         !
51         IF( kt == nit000 ) THEN
52            IF(lwp) WRITE(numout,*)
53            IF(lwp) WRITE(numout,*) 'bdy_tra_frs : Flow Relaxation Scheme for tracers'
54            IF(lwp) WRITE(numout,*) '~~~~~~~'
55         ENDIF
56         !
57         igrd = 1                       ! Everything is at T-points here
58         DO ib = 1, nblen(igrd)
59            DO ik = 1, jpkm1
60               ii = nbi(ib,igrd)
61               ij = nbj(ib,igrd)
62               zwgt = nbw(ib,igrd)
[2977]63               tsa(ii,ij,ik,jp_tem) = ( tsa(ii,ij,ik,jp_tem) * (1.-zwgt) + tbdy(ib,ik) * zwgt ) * tmask(ii,ij,ik)         
64               tsa(ii,ij,ik,jp_sal) = ( tsa(ii,ij,ik,jp_sal) * (1.-zwgt) + sbdy(ib,ik) * zwgt ) * tmask(ii,ij,ik)
[2528]65            END DO
66         END DO 
[2977]67         !                                              ! Boundary points should be updated
68         CALL lbc_lnk( tsa(:,:,:,jp_tem), 'T', 1. )     
69         CALL lbc_lnk( tsa(:,:,:,jp_sal), 'T', 1. )   
[2528]70         !
71      ENDIF ! ln_tra_frs
[1125]72      !
[2528]73   END SUBROUTINE bdy_tra_frs
[1125]74   
[911]75#else
[1125]76   !!----------------------------------------------------------------------
77   !!   Dummy module                   NO Unstruct Open Boundary Conditions
78   !!----------------------------------------------------------------------
[911]79CONTAINS
[2528]80   SUBROUTINE bdy_tra_frs(kt)      ! Empty routine
81      WRITE(*,*) 'bdy_tra_frs: You should not have seen this print! error?', kt
82   END SUBROUTINE bdy_tra_frs
[911]83#endif
84
[1125]85   !!======================================================================
[911]86END MODULE bdytra
Note: See TracBrowser for help on using the repository browser.