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.
Changeset 12928 for NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser/src/TOP/trcbdy.F90 – NEMO

Ignore:
Timestamp:
2020-05-14T21:46:00+02:00 (4 years ago)
Author:
smueller
Message:

Synchronizing with /NEMO/trunk@12925 (ticket #2170)

Location:
NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser

    • Property svn:externals
      •  

        old new  
        66^/vendors/FCM@HEAD            ext/FCM 
        77^/vendors/IOIPSL@HEAD         ext/IOIPSL 
         8 
         9# SETTE 
         10^/utils/CI/sette@HEAD         sette 
  • NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser/src/TOP/trcbdy.F90

    r12178 r12928  
    3737CONTAINS 
    3838 
    39    SUBROUTINE trc_bdy( kt ) 
     39   SUBROUTINE trc_bdy( kt, Kbb, Kmm, Krhs ) 
    4040      !!---------------------------------------------------------------------- 
    4141      !!                  ***  SUBROUTINE trc_bdy  *** 
     
    4444      !! 
    4545      !!---------------------------------------------------------------------- 
    46       INTEGER, INTENT( in ) :: kt     ! Main time step counter 
     46      INTEGER, INTENT( in ) :: kt              ! Main time step counter 
     47      INTEGER, INTENT( in ) :: Kbb, Kmm, Krhs  ! time level indices 
    4748      !! 
    4849      INTEGER                           :: ib_bdy ,ir, jn ,igrd ! Loop indices 
     
    7071               CASE('none'        )   ;   CYCLE 
    7172               CASE('frs'         )   ! treat the whole boundary at once 
    72                   IF( ir == 0 ) CALL bdy_frs( idx_bdy(ib_bdy),                tra(:,:,:,jn), ztrc*zfac ) 
     73                  IF( ir == 0 ) CALL bdy_frs( idx_bdy(ib_bdy),                tr(:,:,:,jn,Krhs), ztrc*zfac ) 
    7374               CASE('specified'   )   ! treat the whole rim      at once 
    74                   IF( ir == 0 ) CALL bdy_spe( idx_bdy(ib_bdy),                tra(:,:,:,jn), ztrc*zfac ) 
    75                CASE('neumann'     )   ;   CALL bdy_nmn( idx_bdy(ib_bdy), igrd         , tra(:,:,:,jn) )   ! tra masked 
    76                CASE('orlanski'    )   ;   CALL bdy_orl( idx_bdy(ib_bdy), trb(:,:,:,jn), tra(:,:,:,jn), ztrc*zfac, ll_npo=.false. ) 
    77                CASE('orlanski_npo')   ;   CALL bdy_orl( idx_bdy(ib_bdy), trb(:,:,:,jn), tra(:,:,:,jn), ztrc*zfac, ll_npo=.true. ) 
     75                  IF( ir == 0 ) CALL bdy_spe( idx_bdy(ib_bdy),                tr(:,:,:,jn,Krhs), ztrc*zfac ) 
     76               CASE('neumann'     )   ;   CALL bdy_nmn( idx_bdy(ib_bdy), igrd         , tr(:,:,:,jn,Krhs) )   ! tra masked 
     77               CASE('orlanski'    )   ;   CALL bdy_orl( idx_bdy(ib_bdy), tr(:,:,:,jn,Kbb), tr(:,:,:,jn,Krhs), ztrc*zfac, ll_npo=.false. ) 
     78               CASE('orlanski_npo')   ;   CALL bdy_orl( idx_bdy(ib_bdy), tr(:,:,:,jn,Kbb), tr(:,:,:,jn,Krhs), ztrc*zfac, ll_npo=.true. ) 
    7879               CASE DEFAULT           ;   CALL ctl_stop( 'trc_bdy : unrecognised option for open boundaries for passive tracers' ) 
    7980               END SELECT 
     
    9596         END DO 
    9697         IF( ANY(llsend1) .OR. ANY(llrecv1) ) THEN   ! if need to send/recv in at least one direction 
    97             CALL lbc_lnk( 'bdytra', tsa, 'T',  1., kfillmode=jpfillnothing ,lsend=llsend1, lrecv=llrecv1 ) 
     98            CALL lbc_lnk( 'trcbdy', tr(:,:,:,:,Krhs), 'T',  1., kfillmode=jpfillnothing ,lsend=llsend1, lrecv=llrecv1 ) 
    9899         END IF 
    99100         ! 
     
    105106 
    106107 
    107    SUBROUTINE trc_bdy_dmp( kt ) 
     108   SUBROUTINE trc_bdy_dmp( kt, Kbb, Krhs ) 
    108109      !!---------------------------------------------------------------------- 
    109110      !!                 ***  SUBROUTINE trc_bdy_dmp  *** 
     
    114115      !!---------------------------------------------------------------------- 
    115116      INTEGER,         INTENT(in) ::   kt 
     117      INTEGER,         INTENT(in) ::   Kbb, Krhs  ! time level indices 
    116118      !!  
    117119      INTEGER  ::   jn             ! Tracer index 
     
    134136                  zwgt = idx_bdy(ib_bdy)%nbd(ib,igrd) 
    135137                  DO ik = 1, jpkm1 
    136                      zta = zwgt * ( trcdta_bdy(jn, ib_bdy)%trc(ib,ik) - trb(ii,ij,ik,jn) ) * tmask(ii,ij,ik) 
    137                      tra(ii,ij,ik,jn) = tra(ii,ij,ik,jn) + zta 
     138                     zta = zwgt * ( trcdta_bdy(jn, ib_bdy)%trc(ib,ik) - tr(ii,ij,ik,jn,Kbb) ) * tmask(ii,ij,ik) 
     139                     tr(ii,ij,ik,jn,Krhs) = tr(ii,ij,ik,jn,Krhs) + zta 
    138140                  END DO 
    139141               END DO 
Note: See TracChangeset for help on using the changeset viewer.