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

Ignore:
Timestamp:
2010-09-10T12:32:58+02:00 (14 years ago)
Author:
cetlod
Message:

Improve the merge of TRA-TRC, see ticket #717

File:
1 edited

Legend:

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

    r2034 r2082  
    3232   USE lbclnk          ! ocean lateral boundary condition (or mpp link)  
    3333   USE diaptr          ! poleward transport diagnostics 
     34   USE trc_oce         ! share passive tracers/Ocean variables 
    3435 
    3536 
     
    5253CONTAINS 
    5354 
    54    SUBROUTINE tra_adv_tvd ( kt, cdtype, pun, pvn, pwn, & 
    55       &                                 ptb, ptn, pta, kjpt   ) 
     55   SUBROUTINE tra_adv_tvd ( kt, cdtype, p2dt, pun, pvn, pwn, & 
     56      &                                       ptb, ptn, pta, kjpt   ) 
    5657      !!---------------------------------------------------------------------- 
    5758      !!                  ***  ROUTINE tra_adv_tvd  *** 
     
    7374      CHARACTER(len=3), INTENT(in   )                               ::   cdtype          ! =TRA or TRC (tracer indicator) 
    7475      INTEGER         , INTENT(in   )                               ::   kjpt            ! number of tracers 
     76      REAL(wp)        , INTENT(in   ), DIMENSION(jpk)               ::   p2dt            ! vertical profile of tracer time-step 
    7577      REAL(wp)        , INTENT(in   ), DIMENSION(jpi,jpj,jpk)       ::   pun, pvn, pwn   ! 3 ocean velocity components 
    7678      REAL(wp)        , INTENT(in   ), DIMENSION(jpi,jpj,jpk,kjpt)  ::   ptb, ptn        ! before and now tracer fields 
     
    7981      INTEGER  ::   ji, jj, jk, jn          ! dummy loop indices   
    8082      REAL(wp) ::   & 
    81          z2, z2dtt, zbtr, ztra,              &  ! temporary scalar 
     83         z2dtt, zbtr, ztra,                  &  ! temporary scalar 
    8284         zfp_ui, zfp_vj, zfp_wk,             &  !    "         " 
    8385         zfm_ui, zfm_vj, zfm_wk                 !    "         " 
     
    8688      !!---------------------------------------------------------------------- 
    8789 
    88       zwi(:,:,:) = 0.e0 
    89  
    90       IF( kt == nit000 .AND. lwp ) THEN 
     90 
     91      IF( ( cdtype == 'TRA' .AND. kt == nit000 ) .OR. ( cdtype == 'TRC' .AND. kt == nittrc000 ) )  THEN 
    9192         WRITE(numout,*) 
    92          WRITE(numout,*) 'tra_adv_tvd : TVD advection scheme' 
     93         WRITE(numout,*) 'tra_adv_tvd : TVD advection scheme on ', cdtype 
    9394         WRITE(numout,*) '~~~~~~~~~~~' 
    9495         ! 
     
    103104      END IF 
    104105      ! 
    105       IF( neuler == 0 .AND. kt == nit000 ) THEN   ;    z2 = 1. 
    106       ELSE                                        ;    z2 = 2. 
    107       ENDIF 
     106      zwi(:,:,:) = 0.e0 
    108107      ! 
    109108      !                                                          ! =========== 
     
    150149         ! total advective trend 
    151150         DO jk = 1, jpkm1 
    152             z2dtt = z2 * rdttra(jk) 
     151            z2dtt = p2dt(jk) 
    153152            DO jj = 2, jpjm1 
    154153               DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    209208         ! 4. monotonicity algorithm 
    210209         ! ------------------------- 
    211          CALL nonosc( ptb(:,:,:,jn), zwx, zwy, zwz, zwi, z2 ) 
     210         CALL nonosc( ptb(:,:,:,jn), zwx, zwy, zwz, zwi, p2dt ) 
    212211 
    213212 
     
    253252 
    254253 
    255    SUBROUTINE nonosc( pbef, paa, pbb, pcc, paft, prdt ) 
     254   SUBROUTINE nonosc( pbef, paa, pbb, pcc, paft, p2dt ) 
    256255      !!--------------------------------------------------------------------- 
    257256      !!                    ***  ROUTINE nonosc  *** 
     
    266265      !!       in-space based differencing for fluid 
    267266      !!---------------------------------------------------------------------- 
    268       REAL(wp), INTENT( in ) ::   prdt   ! ??? 
     267      REAL(wp), DIMENSION(jpk)         , INTENT( in    ) ::   &   
     268         p2dt                               ! vertical profile of tracer time-step 
    269269      REAL(wp), DIMENSION (jpi,jpj,jpk), INTENT( in    ) ::   & 
    270270         pbef,                            & ! before field 
     
    299299      DO jk = 1, jpkm1 
    300300         ikm1 = MAX(jk-1,1) 
    301          z2dtt = prdt * rdttra(jk) 
     301         z2dtt = p2dt(jk) 
    302302         DO jj = 2, jpjm1 
    303303            DO ji = fs_2, fs_jpim1   ! vector opt. 
Note: See TracChangeset for help on using the changeset viewer.