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

    r2024 r2034  
    3636#  include "vectopt_loop_substitute.h90" 
    3737   !!---------------------------------------------------------------------- 
    38    !!   OPA 9.0 , LOCEAN-IPSL (2006)  
     38   !! NEMO/OPA 3.3 , LOCEAN-IPSL (2010)  
    3939   !! $Id$  
    4040   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
     
    4343CONTAINS 
    4444 
    45    SUBROUTINE tra_adv_muscl2( kt   , cdtype, pun  , pvn, pwn, & 
    46       &                       ptrab, ptran , ptraa, kjpt   ) 
     45   SUBROUTINE tra_adv_muscl2( kt, cdtype, pun, pvn, pwn, & 
     46      &                                   ptb, ptn, pta, kjpt   ) 
    4747      !!---------------------------------------------------------------------- 
    4848      !!                   ***  ROUTINE tra_adv_muscl2  *** 
     
    5454      !! ** Method  : MUSCL scheme plus centered scheme at ocean boundaries 
    5555      !! 
    56       !! ** Action  : - update (ptraa) with the now advective tracer trends 
     56      !! ** Action  : - update (pta) with the now advective tracer trends 
    5757      !!              - save trends  
    5858      !! 
     
    6868      INTEGER         , INTENT(in   )                               ::   kjpt            ! number of tracers 
    6969      REAL(wp)        , INTENT(in   ), DIMENSION(jpi,jpj,jpk)       ::   pun, pvn, pwn   ! 3 ocean velocity components 
    70       REAL(wp)        , INTENT(in   ), DIMENSION(jpi,jpj,jpk,kjpt)  ::   ptrab, ptran        ! before and now tracer fields 
    71       REAL(wp)        , INTENT(inout), DIMENSION(jpi,jpj,jpk,kjpt)  ::   ptraa           ! tracer trend  
     70      REAL(wp)        , INTENT(in   ), DIMENSION(jpi,jpj,jpk,kjpt)  ::   ptb, ptn        ! before and now tracer fields 
     71      REAL(wp)        , INTENT(inout), DIMENSION(jpi,jpj,jpk,kjpt)  ::   pta           ! tracer trend  
    7272      !!* Local declarations 
    7373      INTEGER  ::   ji, jj, jk, jn   ! dummy loop indices 
     
    103103            DO jj = 1, jpjm1       
    104104               DO ji = 1, fs_jpim1   ! vector opt. 
    105                   zwx(ji,jj,jk) = umask(ji,jj,jk) * ( ptrab(ji+1,jj,jk,jn) - ptrab(ji,jj,jk,jn) ) 
    106                   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) ) 
    107107               END DO 
    108108           END DO 
     
    146146                  zalpha = 0.5 - z0u 
    147147                  zu  = z0u - 0.5 * pun(ji,jj,jk) * zdt / ( e1u(ji,jj) * e2u(ji,jj) * fse3u(ji,jj,jk) ) 
    148                   zzwx = ptrab(ji+1,jj,jk,jn) + zu * zslpx(ji+1,jj,jk) 
    149                   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) 
    150150                  zwx(ji,jj,jk) = pun(ji,jj,jk) * ( zalpha * zzwx + (1.-zalpha) * zzwy ) 
    151151                  ! 
     
    153153                  zalpha = 0.5 - z0v 
    154154                  zv  = z0v - 0.5 * pvn(ji,jj,jk) * zdt / ( e1v(ji,jj) * e2v(ji,jj) * fse3v(ji,jj,jk) ) 
    155                   zzwx = ptrab(ji,jj+1,jk,jn) + zv * zslpy(ji,jj+1,jk) 
    156                   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) 
    157157                  zwy(ji,jj,jk) = pvn(ji,jj,jk) * ( zalpha * zzwx + (1.-zalpha) * zzwy ) 
    158158               END DO 
     
    166166                  IF( umask(ji,jj,jk) == 0. ) THEN 
    167167                     IF( pun(ji+1,jj,jk) > 0. .AND. ji /= jpi ) THEN 
    168                         zwx(ji+1,jj,jk) = 0.5 * pun(ji+1,jj,jk) * ( ptran(ji+1,jj,jk,jn) + ptran(ji+2,jj,jk,jn) ) 
     168                        zwx(ji+1,jj,jk) = 0.5 * pun(ji+1,jj,jk) * ( ptn(ji+1,jj,jk,jn) + ptn(ji+2,jj,jk,jn) ) 
    169169                     ENDIF 
    170170                     IF( pun(ji-1,jj,jk) < 0. ) THEN 
    171                         zwx(ji-1,jj,jk) = 0.5 * pun(ji-1,jj,jk) * ( ptran(ji-1,jj,jk,jn) + ptran(ji,jj,jk,jn) )  
     171                        zwx(ji-1,jj,jk) = 0.5 * pun(ji-1,jj,jk) * ( ptn(ji-1,jj,jk,jn) + ptn(ji,jj,jk,jn) )  
    172172                     ENDIF 
    173173                  ENDIF 
    174174                  IF( vmask(ji,jj,jk) == 0. ) THEN 
    175175                     IF( pvn(ji,jj+1,jk) > 0. .AND. jj /= jpj ) THEN 
    176                         zwy(ji,jj+1,jk) = 0.5 * pvn(ji,jj+1,jk) * ( ptran(ji,jj+1,jk,jn) + ptran(ji,jj+2,jk,jn) ) 
     176                        zwy(ji,jj+1,jk) = 0.5 * pvn(ji,jj+1,jk) * ( ptn(ji,jj+1,jk,jn) + ptn(ji,jj+2,jk,jn) ) 
    177177                     ENDIF 
    178178                     IF( pvn(ji,jj-1,jk) < 0. ) THEN 
    179                         zwy(ji,jj-1,jk) = 0.5 * pvn(ji,jj-1,jk) * ( ptran(ji,jj-1,jk,jn) + ptran(ji,jj,jk,jn) )  
     179                        zwy(ji,jj-1,jk) = 0.5 * pvn(ji,jj-1,jk) * ( ptn(ji,jj-1,jk,jn) + ptn(ji,jj,jk,jn) )  
    180180                     ENDIF 
    181181                  ENDIF 
     
    195195                  &               + zwy(ji,jj,jk) - zwy(ji  ,jj-1,jk  ) ) 
    196196                  ! added to the general tracer trends 
    197                   ptraa(ji,jj,jk,jn) = ptraa(ji,jj,jk,jn) + ztra 
     197                  pta(ji,jj,jk,jn) = pta(ji,jj,jk,jn) + ztra 
    198198               END DO 
    199199           END DO 
     
    201201         !                                 ! trend diagnostics (contribution of upstream fluxes) 
    202202         IF( l_trd ) THEN 
    203             CALL trd_tra( kt, cdtype, jn, jptra_trd_xad, zwx, pun, ptrab(:,:,:,jn) ) 
    204             CALL trd_tra( kt, cdtype, jn, jptra_trd_yad, zwy, pvn, ptrab(:,:,:,jn) ) 
     203            CALL trd_tra( kt, cdtype, jn, jpt_trd_xad, zwx, pun, ptb(:,:,:,jn) ) 
     204            CALL trd_tra( kt, cdtype, jn, jpt_trd_yad, zwy, pvn, ptb(:,:,:,jn) ) 
    205205         END IF 
    206206 
     
    225225         zwx (:,:, 1 ) = 0.e0    ;    zwx (:,:,jpk) = 0.e0    ! surface & bottom boundary conditions 
    226226         DO jk = 2, jpkm1                                     ! interior values 
    227             zwx(:,:,jk) = tmask(:,:,jk) * ( ptrab(:,:,jk-1,jn) - ptrab(:,:,jk,jn) ) 
     227            zwx(:,:,jk) = tmask(:,:,jk) * ( ptb(:,:,jk-1,jn) - ptb(:,:,jk,jn) ) 
    228228         END DO 
    229229 
     
    251251         !                                                    ! surface values  (bottom already set to zero) 
    252252         IF( lk_vvl ) THEN    ;   zwx(:,:, 1 ) = 0.e0                      !  variable volume 
    253          ELSE                 ;   zwx(:,:, 1 ) = pwn(:,:,1) * ptrab(:,:,1,jn)   ! linear free surface 
     253         ELSE                 ;   zwx(:,:, 1 ) = pwn(:,:,1) * ptb(:,:,1,jn)   ! linear free surface 
    254254         ENDIF 
    255255         ! 
     
    262262                  zalpha = 0.5 + z0w 
    263263                  zw  = z0w - 0.5 * pwn(ji,jj,jk+1) * zdt * zbtr 
    264                   zzwx = ptrab(ji,jj,jk+1,jn) + zw * zslpx(ji,jj,jk+1) 
    265                   zzwy = ptrab(ji,jj,jk  ,jn) + zw * zslpx(ji,jj,jk  ) 
     264                  zzwx = ptb(ji,jj,jk+1,jn) + zw * zslpx(ji,jj,jk+1) 
     265                  zzwy = ptb(ji,jj,jk  ,jn) + zw * zslpx(ji,jj,jk  ) 
    266266                  zwx(ji,jj,jk+1) = pwn(ji,jj,jk+1) * ( zalpha * zzwx + (1.-zalpha) * zzwy ) 
    267267               END DO 
     
    274274                  IF( tmask(ji,jj,jk+1) == 0. ) THEN 
    275275                     IF( pwn(ji,jj,jk) > 0. ) THEN 
    276                         zwx(ji,jj,jk) = 0.5 * pwn(ji,jj,jk) * ( ptran(ji,jj,jk-1,jn) + ptran(ji,jj,jk,jn) )  
     276                        zwx(ji,jj,jk) = 0.5 * pwn(ji,jj,jk) * ( ptn(ji,jj,jk-1,jn) + ptn(ji,jj,jk,jn) )  
    277277                     ENDIF 
    278278                  ENDIF 
     
    289289                  ztra = - zbtr * ( zwx(ji,jj,jk) - zwx(ji,jj,jk+1) ) 
    290290                  ! added to the general tracer trends 
    291                   ptraa(ji,jj,jk,jn) =  ptraa(ji,jj,jk,jn) + ztra 
     291                  pta(ji,jj,jk,jn) =  pta(ji,jj,jk,jn) + ztra 
    292292               END DO 
    293293            END DO 
     
    297297         ! ------------------------------------------------- 
    298298         !                                 ! trend diagnostics (contribution of upstream fluxes) 
    299          IF( l_trd )  CALL trd_tra( kt, cdtype, jn, jptra_trd_zad, zwx, pwn, ptrab(:,:,:,jn) ) 
     299         IF( l_trd )  CALL trd_tra( kt, cdtype, jn, jpt_trd_zad, zwx, pwn, ptb(:,:,:,jn) ) 
    300300         ! 
    301301      ENDDO 
Note: See TracChangeset for help on using the changeset viewer.