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 2034 for branches/DEV_r2006_merge_TRA_TRC/NEMO/OPA_SRC/TRA/traadv_ubs.F90 – NEMO

Ignore:
Timestamp:
2010-07-29T17:05:35+02:00 (14 years ago)
Author:
cetlod
Message:

cosmetic changes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/OPA_SRC/TRA/traadv_ubs.F90

    r2024 r2034  
    3333#  include "vectopt_loop_substitute.h90" 
    3434   !!---------------------------------------------------------------------- 
    35    !!   OPA 9.0 , LOCEAN-IPSL (2006)  
     35   !! NEMO/OPA 3.3 , LOCEAN-IPSL (2010)  
    3636   !! $Id$ 
    3737   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)  
     
    4040CONTAINS 
    4141 
    42    SUBROUTINE tra_adv_ubs ( kt   , cdtype, pun  , pvn, pwn, & 
    43       &                     ptrab, ptran , ptraa, kjpt   ) 
     42   SUBROUTINE tra_adv_ubs ( kt, cdtype, pun, pvn, pwn, & 
     43      &                                 ptb, ptn, pta, kjpt   ) 
    4444      !!---------------------------------------------------------------------- 
    4545      !!                  ***  ROUTINE tra_adv_ubs  *** 
     
    6868      !!      the UBS have been found to be too diffusive. 
    6969      !! 
    70       !! ** Action : - update (ptraa) with the now advective tracer trends 
     70      !! ** Action : - update (pta) with the now advective tracer trends 
    7171      !! 
    7272      !! Reference : Shchepetkin, A. F., J. C. McWilliams, 2005, Ocean Modelling, 9, 347-404.  
     
    8181      REAL(wp)        , INTENT(in   ), DIMENSION(jpi,jpj,jpk)       ::   pun, pvn, pwn   ! 3 ocean velocity components 
    8282      INTEGER         , INTENT(in   )                               ::   kjpt            ! number of tracers 
    83       REAL(wp)        , INTENT(in   ), DIMENSION(jpi,jpj,jpk,kjpt)  ::   ptrab, ptran        ! before and now tracer fields 
    84       REAL(wp)        , INTENT(inout), DIMENSION(jpi,jpj,jpk,kjpt)  ::   ptraa           ! tracer trend  
     83      REAL(wp)        , INTENT(in   ), DIMENSION(jpi,jpj,jpk,kjpt)  ::   ptb, ptn        ! before and now tracer fields 
     84      REAL(wp)        , INTENT(inout), DIMENSION(jpi,jpj,jpk,kjpt)  ::   pta           ! tracer trend  
    8585      !!* Local declarations 
    8686      INTEGER  ::   ji, jj, jk, jn          ! dummy loop indices 
     
    124124                  zeeu = e2u(ji,jj) * fse3u(ji,jj,jk) / e1u(ji,jj) * umask(ji,jj,jk) 
    125125                  zeev = e1v(ji,jj) * fse3v(ji,jj,jk) / e2v(ji,jj) * vmask(ji,jj,jk) 
    126                   ztu(ji,jj,jk) = zeeu * ( ptrab(ji+1,jj  ,jk,jn) - ptrab(ji,jj,jk,jn) ) 
    127                   ztv(ji,jj,jk) = zeev * ( ptrab(ji  ,jj+1,jk,jn) - ptrab(ji,jj,jk,jn) ) 
     126                  ztu(ji,jj,jk) = zeeu * ( ptb(ji+1,jj  ,jk,jn) - ptb(ji,jj,jk,jn) ) 
     127                  ztv(ji,jj,jk) = zeev * ( ptb(ji  ,jj+1,jk,jn) - ptb(ji,jj,jk,jn) ) 
    128128               END DO 
    129129            END DO 
     
    154154                  zfm_vj = pvn(ji,jj,jk) - ABS( pvn(ji,jj,jk) ) 
    155155                  ! centered scheme 
    156                   zcenut = 0.5 * pun(ji,jj,jk) * ( ptran(ji,jj,jk,jn) + ptran(ji+1,jj  ,jk,jn) ) 
    157                   zcenvt = 0.5 * pvn(ji,jj,jk) * ( ptran(ji,jj,jk,jn) + ptran(ji  ,jj+1,jk,jn) ) 
     156                  zcenut = 0.5 * pun(ji,jj,jk) * ( ptn(ji,jj,jk,jn) + ptn(ji+1,jj  ,jk,jn) ) 
     157                  zcenvt = 0.5 * pvn(ji,jj,jk) * ( ptn(ji,jj,jk,jn) + ptn(ji  ,jj+1,jk,jn) ) 
    158158                  ! UBS scheme 
    159159                  zwx(ji,jj,jk) =  zcenut - zfp_ui * zltu(ji,jj,jk) - zfm_ui * zltu(ji+1,jj,jk)  
     
    163163         ENDDO 
    164164 
    165          zltu(:,:,:) = ptraa(:,:,:,jn)      ! store ptraa trends 
     165         zltu(:,:,:) = pta(:,:,:,jn)      ! store pta trends 
    166166 
    167167         ! Horizontal advective trends 
     
    175175                     &             + zwy(ji,jj,jk) - zwy(ji  ,jj-1,jk)  ) 
    176176                  ! add it to the general tracer trends 
    177                   ptraa(ji,jj,jk,jn) = ptraa(ji,jj,jk,jn) + ztra 
     177                  pta(ji,jj,jk,jn) = pta(ji,jj,jk,jn) + ztra 
    178178               END DO 
    179179            END DO 
     
    183183 
    184184         ! Horizontal trend used in tra_adv_ztvd subroutine 
    185          zltu(:,:,:) = ptraa(:,:,:,jn) - zltu(:,:,:) 
     185         zltu(:,:,:) = pta(:,:,:,jn) - zltu(:,:,:) 
    186186 
    187187         ! 3. Save the horizontal advective trends for diagnostic 
     
    189189         !                                 ! trend diagnostics (contribution of upstream fluxes) 
    190190         IF( l_trd ) THEN 
    191              CALL trd_tra( kt, cdtype, jn, jptra_trd_xad, zwx, pun, ptran(:,:,:,jn) ) 
    192              CALL trd_tra( kt, cdtype, jn, jptra_trd_yad, zwy, pvn, ptran(:,:,:,jn) ) 
     191             CALL trd_tra( kt, cdtype, jn, jpt_trd_xad, zwx, pun, ptn(:,:,:,jn) ) 
     192             CALL trd_tra( kt, cdtype, jn, jpt_trd_yad, zwy, pvn, ptn(:,:,:,jn) ) 
    193193         END IF 
    194194         !                                 ! "Poleward" heat and salt transports (contribution of upstream fluxes) 
     
    209209         ! TVD scheme for the vertical direction   
    210210         ! ---------------------- 
    211          IF( l_trd )   zltv(:,:,:) = ptraa(:,:,:,jn)          ! store pta if trend diag. 
     211         IF( l_trd )   zltv(:,:,:) = pta(:,:,:,jn)          ! store pta if trend diag. 
    212212 
    213213         !  Bottom value : flux set to zero 
     
    216216         ! Surface value 
    217217         IF( lk_vvl ) THEN   ;   ztw(:,:,1) = 0.e0                      ! variable volume : flux set to zero 
    218          ELSE                ;   ztw(:,:,1) = pwn(:,:,1) * ptrab(:,:,1,jn)   ! free constant surface  
     218         ELSE                ;   ztw(:,:,1) = pwn(:,:,1) * ptb(:,:,1,jn)   ! free constant surface  
    219219         ENDIF 
    220220         !  upstream advection with initial mass fluxes & intermediate update 
     
    226226                   zfp_wk = pwn(ji,jj,jk) + ABS( pwn(ji,jj,jk) ) 
    227227                   zfm_wk = pwn(ji,jj,jk) - ABS( pwn(ji,jj,jk) ) 
    228                    ztw(ji,jj,jk) = 0.5 * (  zfp_wk * ptrab(ji,jj,jk,jn) + zfm_wk * ptrab(ji,jj,jk-1,jn)  ) 
     228                   ztw(ji,jj,jk) = 0.5 * (  zfp_wk * ptb(ji,jj,jk,jn) + zfm_wk * ptb(ji,jj,jk-1,jn)  ) 
    229229               END DO 
    230230            END DO 
     
    237237                  zbtr = 1. / ( e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) ) 
    238238                  ztak = - ( ztw(ji,jj,jk) - ztw(ji,jj,jk+1) ) * zbtr 
    239                   ptraa(ji,jj,jk,jn) =   ptraa(ji,jj,jk,jn) +  ztak  
    240                   zti(ji,jj,jk)    = ( ptrab(ji,jj,jk,jn) + z2dtt * ( ztak + zltu(ji,jj,jk) ) ) * tmask(ji,jj,jk) 
     239                  pta(ji,jj,jk,jn) =   pta(ji,jj,jk,jn) +  ztak  
     240                  zti(ji,jj,jk)    = ( ptb(ji,jj,jk,jn) + z2dtt * ( ztak + zltu(ji,jj,jk) ) ) * tmask(ji,jj,jk) 
    241241               END DO 
    242242            END DO 
     
    250250            DO jj = 1, jpj 
    251251               DO ji = 1, jpi 
    252                   ztw(ji,jj,jk) = 0.5 * pwn(ji,jj,jk) * ( ptran(ji,jj,jk,jn) + ptran(ji,jj,jk-1,jn) ) - ztw(ji,jj,jk) 
     252                  ztw(ji,jj,jk) = 0.5 * pwn(ji,jj,jk) * ( ptn(ji,jj,jk,jn) + ptn(ji,jj,jk-1,jn) ) - ztw(ji,jj,jk) 
    253253               END DO 
    254254            END DO 
    255255         END DO 
    256256         ! 
    257          CALL nonosc_z( ptrab(:,:,:,jn), ztw, zti, z2 )      !  monotonicity algorithm 
     257         CALL nonosc_z( ptb(:,:,:,jn), ztw, zti, z2 )      !  monotonicity algorithm 
    258258 
    259259         !  final trend with corrected fluxes 
     
    265265                  ztra = - zbtr * ( ztw(ji,jj,jk) - ztw(ji,jj,jk+1) ) 
    266266                  ! added to the general tracer trends 
    267                   ptraa(ji,jj,jk,jn) = ptraa(ji,jj,jk,jn) + ztra 
     267                  pta(ji,jj,jk,jn) = pta(ji,jj,jk,jn) + ztra 
    268268               END DO 
    269269            END DO 
     
    277277                     zbtr = 1.e0 / ( e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) ) 
    278278                     z_hdivn = (  pwn(ji,jj,jk) - pwn(ji,jj,jk+1)  ) * zbtr 
    279                      zltv(ji,jj,jk) = ptraa(ji,jj,jk,jn) - zltv(ji,jj,jk) + ptran(ji,jj,jk,jn) * z_hdivn 
     279                     zltv(ji,jj,jk) = pta(ji,jj,jk,jn) - zltv(ji,jj,jk) + ptn(ji,jj,jk,jn) * z_hdivn 
    280280                  END DO 
    281281               END DO 
    282282            END DO 
    283             CALL trd_tra( kt, cdtype, jn, jptra_trd_zad, zltv ) 
     283            CALL trd_tra( kt, cdtype, jn, jpt_trd_zad, zltv ) 
    284284         ENDIF 
    285285         ! 
Note: See TracChangeset for help on using the changeset viewer.