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

    r2024 r2034  
    3737#  include "vectopt_loop_substitute.h90" 
    3838   !!---------------------------------------------------------------------- 
    39    !!   OPA 9.0 , LOCEAN-IPSL (2006)  
     39   !! NEMO/OPA 3.3 , LOCEAN-IPSL (2010)  
    4040   !! $Id$  
    4141   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
     
    4444CONTAINS 
    4545 
    46    SUBROUTINE tra_adv_muscl( kt   , cdtype, pun, pvn, pwn, & 
    47       &                      ptrab, ptraa , kjpt   ) 
     46   SUBROUTINE tra_adv_muscl( kt, cdtype, pun, pvn, pwn, & 
     47      &                                       ptb, pta, kjpt   ) 
    4848      !!---------------------------------------------------------------------- 
    4949      !!                    ***  ROUTINE tra_adv_muscl  *** 
     
    6161      !!              IPSL, Sept. 2000 (http://www.lodyc.jussieu.fr/opa) 
    6262      !!---------------------------------------------------------------------- 
    63       !!* Module used 
    6463      USE oce         , zwx => ua   ! use ua as workspace 
    6564      USE oce         , zwy => va   ! use va as workspace 
    66       !!* Arguments 
     65      !! 
    6766      INTEGER         , INTENT(in   )                               ::   kt              ! ocean time-step index 
    6867      CHARACTER(len=3), INTENT(in   )                               ::   cdtype          ! =TRA or TRC (tracer indicator) 
    6968      INTEGER         , INTENT(in   )                               ::   kjpt            ! number of tracers 
    7069      REAL(wp)        , INTENT(in   ), DIMENSION(jpi,jpj,jpk)       ::   pun, pvn, pwn   ! 3 ocean velocity components 
    71       REAL(wp)        , INTENT(in   ), DIMENSION(jpi,jpj,jpk,kjpt)  ::   ptrab           ! before and now tracer fields 
    72       REAL(wp)        , INTENT(inout), DIMENSION(jpi,jpj,jpk,kjpt)  ::   ptraa           ! tracer trend  
    73       !!* Local declarations 
     70      REAL(wp)        , INTENT(in   ), DIMENSION(jpi,jpj,jpk,kjpt)  ::   ptb           ! before and now tracer fields 
     71      REAL(wp)        , INTENT(inout), DIMENSION(jpi,jpj,jpk,kjpt)  ::   pta           ! tracer trend  
     72      !! 
    7473      INTEGER  ::   ji, jj, jk, jn   ! dummy loop indices 
    7574      REAL(wp) ::   zu, z0u, zzwx 
     
    104103            DO jj = 1, jpjm1       
    105104               DO ji = 1, fs_jpim1   ! vector opt. 
    106                   zwx(ji,jj,jk) = umask(ji,jj,jk) * ( ptrab(ji+1,jj,jk,jn) - ptrab(ji,jj,jk,jn) ) 
    107                   zwy(ji,jj,jk) = vmask(ji,jj,jk) * ( ptrab(ji,jj+1,jk,jn) - ptrab(ji,jj,jk,jn) ) 
     105                  zwx(ji,jj,jk) = umask(ji,jj,jk) * ( ptb(ji+1,jj,jk,jn) - ptb(ji,jj,jk,jn) ) 
     106                  zwy(ji,jj,jk) = vmask(ji,jj,jk) * ( ptb(ji,jj+1,jk,jn) - ptb(ji,jj,jk,jn) ) 
    108107               END DO 
    109108           END DO 
     
    147146                  zalpha = 0.5 - z0u 
    148147                  zu  = z0u - 0.5 * pun(ji,jj,jk) * zdt / ( e1u(ji,jj) * e2u(ji,jj) * fse3u(ji,jj,jk) ) 
    149                   zzwx = ptrab(ji+1,jj,jk,jn) + zu * zslpx(ji+1,jj,jk) 
    150                   zzwy = ptrab(ji  ,jj,jk,jn) + zu * zslpx(ji  ,jj,jk) 
     148                  zzwx = ptb(ji+1,jj,jk,jn) + zu * zslpx(ji+1,jj,jk) 
     149                  zzwy = ptb(ji  ,jj,jk,jn) + zu * zslpx(ji  ,jj,jk) 
    151150                  zwx(ji,jj,jk) = pun(ji,jj,jk) * ( zalpha * zzwx + (1.-zalpha) * zzwy ) 
    152151                  ! 
     
    154153                  zalpha = 0.5 - z0v 
    155154                  zv  = z0v - 0.5 * pvn(ji,jj,jk) * zdt / ( e1v(ji,jj) * e2v(ji,jj) * fse3v(ji,jj,jk) ) 
    156                   zzwx = ptrab(ji,jj+1,jk,jn) + zv * zslpy(ji,jj+1,jk) 
    157                   zzwy = ptrab(ji,jj  ,jk,jn) + zv * zslpy(ji,jj  ,jk)  
     155                  zzwx = ptb(ji,jj+1,jk,jn) + zv * zslpy(ji,jj+1,jk) 
     156                  zzwy = ptb(ji,jj  ,jk,jn) + zv * zslpy(ji,jj  ,jk)  
    158157                  zwy(ji,jj,jk) = pvn(ji,jj,jk) * ( zalpha * zzwx + (1.-zalpha) * zzwy ) 
    159158               END DO 
     
    172171                  &               + zwy(ji,jj,jk) - zwy(ji  ,jj-1,jk  ) ) 
    173172                  ! add it to the general tracer trends 
    174                   ptraa(ji,jj,jk,jn) = ptraa(ji,jj,jk,jn) + ztra 
     173                  pta(ji,jj,jk,jn) = pta(ji,jj,jk,jn) + ztra 
    175174               END DO 
    176175           END DO 
     
    178177         !                                 ! trend diagnostics (contribution of upstream fluxes) 
    179178         IF( l_trd )  THEN 
    180             CALL trd_tra( kt, cdtype, jn, jptra_trd_xad, zwx, pun, ptrab(:,:,:,jn) ) 
    181             CALL trd_tra( kt, cdtype, jn, jptra_trd_yad, zwy, pvn, ptrab(:,:,:,jn) ) 
     179            CALL trd_tra( kt, cdtype, jn, jpt_trd_xad, zwx, pun, ptb(:,:,:,jn) ) 
     180            CALL trd_tra( kt, cdtype, jn, jpt_trd_yad, zwy, pvn, ptb(:,:,:,jn) ) 
    182181         END IF 
    183182         !                                 ! "Poleward" heat and salt transports (contribution of upstream fluxes) 
     
    201200         zwx (:,:, 1 ) = 0.e0    ;    zwx (:,:,jpk) = 0.e0    ! surface & bottom boundary conditions 
    202201         DO jk = 2, jpkm1                                     ! interior values 
    203             zwx(:,:,jk) = tmask(:,:,jk) * ( ptrab(:,:,jk-1,jn) - ptrab(:,:,jk,jn) ) 
     202            zwx(:,:,jk) = tmask(:,:,jk) * ( ptb(:,:,jk-1,jn) - ptb(:,:,jk,jn) ) 
    204203         END DO 
    205204 
     
    227226         !                                                    ! surface values  (bottom already set to zero) 
    228227         IF( lk_vvl ) THEN    ;   zwx(:,:, 1 ) = 0.e0                      !  variable volume 
    229          ELSE                 ;   zwx(:,:, 1 ) = pwn(:,:,1) * ptrab(:,:,1,jn)   ! linear free surface 
     228         ELSE                 ;   zwx(:,:, 1 ) = pwn(:,:,1) * ptb(:,:,1,jn)   ! linear free surface 
    230229         ENDIF  
    231230         ! 
     
    238237                  zalpha = 0.5 + z0w 
    239238                  zw  = z0w - 0.5 * pwn(ji,jj,jk+1) * zdt * zbtr  
    240                   zzwx = ptrab(ji,jj,jk+1,jn) + zw * zslpx(ji,jj,jk+1) 
    241                   zzwy = ptrab(ji,jj,jk  ,jn) + zw * zslpx(ji,jj,jk  ) 
     239                  zzwx = ptb(ji,jj,jk+1,jn) + zw * zslpx(ji,jj,jk+1) 
     240                  zzwy = ptb(ji,jj,jk  ,jn) + zw * zslpx(ji,jj,jk  ) 
    242241                  zwx(ji,jj,jk+1) = pwn(ji,jj,jk+1) * ( zalpha * zzwx + (1.-zalpha) * zzwy ) 
    243242               END DO  
     
    253252                  ztra = - zbtr * ( zwx(ji,jj,jk) - zwx(ji,jj,jk+1) ) 
    254253                  ! add it to the general tracer trends 
    255                   ptraa(ji,jj,jk,jn) =  ptraa(ji,jj,jk,jn) + ztra 
     254                  pta(ji,jj,jk,jn) =  pta(ji,jj,jk,jn) + ztra 
    256255               END DO 
    257256            END DO 
    258257         END DO 
    259258         !                                 ! Save the vertical advective trends for diagnostic 
    260          IF( l_trd ) CALL trd_tra( kt, cdtype, jn, jptra_trd_zad, zwx, pwn, ptrab(:,:,:,jn) ) 
     259         IF( l_trd ) CALL trd_tra( kt, cdtype, jn, jpt_trd_zad, zwx, pwn, ptb(:,:,:,jn) ) 
    261260         ! 
    262261      ENDDO 
Note: See TracChangeset for help on using the changeset viewer.