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_cen2.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_cen2.F90

    r2024 r2034  
    4747#  include "vectopt_loop_substitute.h90" 
    4848   !!---------------------------------------------------------------------- 
    49    !! NEMO/OPA 3.2 , LOCEAN-IPSL (2009)  
     49   !! NEMO/OPA 3.3 , LOCEAN-IPSL (2010)  
    5050   !! $Id$ 
    5151   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
     
    5454CONTAINS 
    5555 
    56    SUBROUTINE tra_adv_cen2( kt   , cdtype, pun  , pvn, pwn, & 
    57       &                     ptrab, ptran , ptraa, kjpt   )  
     56   SUBROUTINE tra_adv_cen2( kt, cdtype, pun, pvn, pwn, & 
     57      &                                 ptb, ptn, pta, kjpt   )  
    5858      !!---------------------------------------------------------------------- 
    5959      !!                  ***  ROUTINE tra_adv_cen2  *** 
     
    7171      !!         Part I : horizontal advection 
    7272      !!       * centered flux: 
    73       !!               zcenu = e2u*e3u  un  mi(ptran) 
    74       !!               zcenv = e1v*e3v  vn  mj(ptran) 
     73      !!               zcenu = e2u*e3u  un  mi(ptn) 
     74      !!               zcenv = e1v*e3v  vn  mj(ptn) 
    7575      !!       * upstream flux: 
    76       !!               zupsu = e2u*e3u  un  (ptrab(i) or ptrab(i-1) ) [un>0 or <0] 
    77       !!               zupsv = e1v*e3v  vn  (ptrab(j) or ptrab(j-1) ) [vn>0 or <0] 
     76      !!               zupsu = e2u*e3u  un  (ptb(i) or ptb(i-1) ) [un>0 or <0] 
     77      !!               zupsv = e1v*e3v  vn  (ptb(j) or ptb(j-1) ) [vn>0 or <0] 
    7878      !!       * mixed upstream / centered horizontal advection scheme 
    7979      !!               zcofi = max(zind(i+1), zind(i)) 
     
    8484      !!               ztra = 1/(e1t*e2t*e3t) { di-1[zwx] + dj-1[zwy] } 
    8585      !!       * Add this trend now to the general trend of tracer (ta,sa): 
    86       !!               ptraa = ptraa + ztra 
     86      !!               pta = pta + ztra 
    8787      !!       * trend diagnostic ('key_trdtra' defined): the trend is 
    8888      !!      saved for diagnostics. The trends saved is expressed as 
    8989      !!      Uh.gradh(T), i.e. 
    90       !!                     save trend = ztra + ptran divn 
     90      !!                     save trend = ztra + ptn divn 
    9191      !! 
    9292      !!         Part II : vertical advection 
     
    9797      !!            zwz = zcofk * zupst + (1-zcofk) * zcent 
    9898      !!      with 
    99       !!        zupsv = upstream flux = wn * (ptrab(k) or ptrab(k-1) ) [wn>0 or <0] 
     99      !!        zupsv = upstream flux = wn * (ptb(k) or ptb(k-1) ) [wn>0 or <0] 
    100100      !!        zcenu = centered flux = wn * mk(tn) 
    101101      !!         The surface boundary condition is : 
    102102      !!      variable volume (lk_vvl = T) : zero advective flux 
    103       !!      lin. free-surf  (lk_vvl = F) : wn(:,:,1) * ptran(:,:,1) 
     103      !!      lin. free-surf  (lk_vvl = F) : wn(:,:,1) * ptn(:,:,1) 
    104104      !!         Add this trend now to the general trend of tracer (ta,sa): 
    105       !!             ptraa = ptraa + ztra 
     105      !!             pta = pta + ztra 
    106106      !!         Trend diagnostic ('key_trdtra' defined): the trend is 
    107107      !!      saved for diagnostics. The trends saved is expressed as : 
    108       !!             save trend =  w.gradz(T) = ztra - ptran divn. 
    109       !! 
    110       !! ** Action :  - update ptraa  with the now advective tracer trends 
     108      !!             save trend =  w.gradz(T) = ztra - ptn divn. 
     109      !! 
     110      !! ** Action :  - update pta  with the now advective tracer trends 
    111111      !!              - save trends if needed 
    112112      !!---------------------------------------------------------------------- 
    113       !!* Module used 
    114113      USE oce         , zwx => ua   ! use ua as workspace 
    115114      USE oce         , zwy => va   ! use va as workspace 
    116       !!* Arguments 
     115      !! 
    117116      INTEGER         , INTENT(in   )                               ::   kt              ! ocean time-step index 
    118117      CHARACTER(len=3), INTENT(in   )                               ::   cdtype          ! =TRA or TRC (tracer indicator) 
    119118      REAL(wp)        , INTENT(in   ), DIMENSION(jpi,jpj,jpk)       ::   pun, pvn, pwn   ! 3 ocean velocity components 
    120119      INTEGER         , INTENT(in   )                               ::   kjpt            ! number of tracers 
    121       REAL(wp)        , INTENT(in   ), DIMENSION(jpi,jpj,jpk,kjpt)  ::   ptrab, ptran        ! before and now tracer fields 
    122       REAL(wp)        , INTENT(inout), DIMENSION(jpi,jpj,jpk,kjpt)  ::   ptraa           ! tracer trend  
    123       !!* Local declarations 
     120      REAL(wp)        , INTENT(in   ), DIMENSION(jpi,jpj,jpk,kjpt)  ::   ptb, ptn        ! before and now tracer fields 
     121      REAL(wp)        , INTENT(inout), DIMENSION(jpi,jpj,jpk,kjpt)  ::   pta           ! tracer trend  
     122      !! 
    124123      INTEGER  ::   ji, jj, jk, jn                   ! dummy loop indices 
    125124      REAL(wp) ::   zbtr, ztra                       ! temporary scalars 
     
    196195                  zfp_vj = pvn(ji,jj,jk) + ABS( pvn(ji,jj,jk) ) 
    197196                  zfm_vj = pvn(ji,jj,jk) - ABS( pvn(ji,jj,jk) ) 
    198                   zupsut = zfp_ui * ptrab(ji,jj,jk,jn) + zfm_ui * ptrab(ji+1,jj  ,jk,jn) 
    199                   zupsvt = zfp_vj * ptrab(ji,jj,jk,jn) + zfm_vj * ptrab(ji  ,jj+1,jk,jn) 
     197                  zupsut = zfp_ui * ptb(ji,jj,jk,jn) + zfm_ui * ptb(ji+1,jj  ,jk,jn) 
     198                  zupsvt = zfp_vj * ptb(ji,jj,jk,jn) + zfm_vj * ptb(ji  ,jj+1,jk,jn) 
    200199                  ! centered scheme 
    201                   zcenut = pun(ji,jj,jk) * ( ptran(ji,jj,jk,jn) + ptran(ji+1,jj  ,jk,jn) ) 
    202                   zcenvt = pvn(ji,jj,jk) * ( ptran(ji,jj,jk,jn) + ptran(ji  ,jj+1,jk,jn) ) 
     200                  zcenut = pun(ji,jj,jk) * ( ptn(ji,jj,jk,jn) + ptn(ji+1,jj  ,jk,jn) ) 
     201                  zcenvt = pvn(ji,jj,jk) * ( ptn(ji,jj,jk,jn) + ptn(ji  ,jj+1,jk,jn) ) 
    203202                  ! mixed centered / upstream scheme 
    204203                  zwx(ji,jj,jk) = 0.5 * ( zcofi * zupsut + (1.-zcofi) * zcenut ) 
     
    215214         !                                                     ! Surface value :  
    216215         IF( lk_vvl ) THEN   ;   zwz(:,:, 1 ) = 0.e0                         ! volume variable 
    217          ELSE                ;   zwz(:,:, 1 ) = pwn(:,:,1) * ptran(:,:,1,jn)   ! linear free surface  
     216         ELSE                ;   zwz(:,:, 1 ) = pwn(:,:,1) * ptn(:,:,1,jn)   ! linear free surface  
    218217         ENDIF 
    219218         ! 
     
    226225                  zfp_w = pwn(ji,jj,jk) + ABS( pwn(ji,jj,jk) ) 
    227226                  zfm_w = pwn(ji,jj,jk) - ABS( pwn(ji,jj,jk) ) 
    228                   zupst = zfp_w * ptrab(ji,jj,jk,jn) + zfm_w * ptrab(ji,jj,jk-1,jn) 
     227                  zupst = zfp_w * ptb(ji,jj,jk,jn) + zfm_w * ptb(ji,jj,jk-1,jn) 
    229228                  ! centered scheme 
    230                   zcent = pwn(ji,jj,jk) * ( ptran(ji,jj,jk,jn) + ptran(ji,jj,jk-1,jn) ) 
     229                  zcent = pwn(ji,jj,jk) * ( ptn(ji,jj,jk,jn) + ptn(ji,jj,jk-1,jn) ) 
    231230                  ! mixed centered / upstream scheme 
    232231                  zwz(ji,jj,jk) = 0.5 * ( zcofk * zupst + (1.-zcofk) * zcent ) 
     
    246245                  &                + zwz(ji,jj,jk) - zwz(ji  ,jj  ,jk+1)  ) 
    247246                  ! advective trends added to the general tracer trends 
    248                   ptraa(ji,jj,jk,jn) = ptraa(ji,jj,jk,jn) + ztra 
     247                  pta(ji,jj,jk,jn) = pta(ji,jj,jk,jn) + ztra 
    249248               END DO 
    250249            END DO 
     
    253252         !                                 ! trend diagnostics (contribution of upstream fluxes) 
    254253         IF( l_trd ) THEN 
    255             CALL trd_tra( kt, cdtype, jn, jptra_trd_xad, zwx, pun, ptran(:,:,:,jn) ) 
    256             CALL trd_tra( kt, cdtype, jn, jptra_trd_yad, zwy, pvn, ptran(:,:,:,jn) ) 
    257             CALL trd_tra( kt, cdtype, jn, jptra_trd_zad, zwz, pwn, ptran(:,:,:,jn) ) 
     254            CALL trd_tra( kt, cdtype, jn, jptra_trd_xad, zwx, pun, ptn(:,:,:,jn) ) 
     255            CALL trd_tra( kt, cdtype, jn, jptra_trd_yad, zwy, pvn, ptn(:,:,:,jn) ) 
     256            CALL trd_tra( kt, cdtype, jn, jptra_trd_zad, zwz, pwn, ptn(:,:,:,jn) ) 
    258257         END IF 
    259258         !                                 ! "Poleward" heat and salt transports (contribution of upstream fluxes) 
Note: See TracChangeset for help on using the changeset viewer.