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 10874 for NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/TRA/traadv.F90 – NEMO

Ignore:
Timestamp:
2019-04-15T15:57:37+02:00 (5 years ago)
Author:
davestorkey
Message:

branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps : Revert all changes so far in preparation for implementation of new design.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/TRA/traadv.F90

    r10806 r10874  
    7575CONTAINS 
    7676 
    77    SUBROUTINE tra_adv( kt, ktlev1, ktlev2, ktlev3, kt2lev, pts_rhs ) 
     77   SUBROUTINE tra_adv( kt ) 
    7878      !!---------------------------------------------------------------------- 
    7979      !!                  ***  ROUTINE tra_adv  *** 
     
    8181      !! ** Purpose :   compute the ocean tracer advection trend. 
    8282      !! 
    83       !! ** Method  : - Update (pu_rhs,pv_rhs) with the advection term following nadv 
    84       !!---------------------------------------------------------------------- 
    85       INTEGER, INTENT(in) ::   kt                       ! ocean time-step index 
    86       INTEGER, INTENT(in) ::   ktlev1, ktlev2, ktlev3   ! time level indices for 3-time-level source terms 
    87       INTEGER, INTENT(in) ::   kt2lev                   ! time level index for 2-time-level source terms 
    88       REAL(wp), INTENT( inout), DIMENSION(jpi,jpj,jpk,jpts) :: pts_rhs ! temperature and salinity trends 
     83      !! ** Method  : - Update (ua,va) with the advection term following nadv 
     84      !!---------------------------------------------------------------------- 
     85      INTEGER, INTENT(in) ::   kt   ! ocean time-step index 
    8986      ! 
    9087      INTEGER ::   jk   ! dummy loop index 
     
    106103      IF( ln_wave .AND. ln_sdw )  THEN 
    107104         DO jk = 1, jpkm1                                                       ! eulerian transport + Stokes Drift 
    108             zun(:,:,jk) = e2u  (:,:) * e3u(:,:,jk,ktlev2) * ( uu(:,:,jk,ktlev2) + usd(:,:,jk) ) 
    109             zvn(:,:,jk) = e1v  (:,:) * e3v(:,:,jk,ktlev2) * ( vv(:,:,jk,ktlev2) + vsd(:,:,jk) ) 
    110             zwn(:,:,jk) = e1e2t(:,:)                 * ( ww(:,:,jk) + wsd(:,:,jk) ) 
     105            zun(:,:,jk) = e2u  (:,:) * e3u_n(:,:,jk) * ( un(:,:,jk) + usd(:,:,jk) ) 
     106            zvn(:,:,jk) = e1v  (:,:) * e3v_n(:,:,jk) * ( vn(:,:,jk) + vsd(:,:,jk) ) 
     107            zwn(:,:,jk) = e1e2t(:,:)                 * ( wn(:,:,jk) + wsd(:,:,jk) ) 
    111108         END DO 
    112109      ELSE 
    113110         DO jk = 1, jpkm1 
    114             zun(:,:,jk) = e2u  (:,:) * e3u(:,:,jk,ktlev2) * uu(:,:,jk,ktlev2)               ! eulerian transport only 
    115             zvn(:,:,jk) = e1v  (:,:) * e3v(:,:,jk,ktlev2) * vv(:,:,jk,ktlev2) 
    116             zwn(:,:,jk) = e1e2t(:,:)                 * ww(:,:,jk) 
     111            zun(:,:,jk) = e2u  (:,:) * e3u_n(:,:,jk) * un(:,:,jk)               ! eulerian transport only 
     112            zvn(:,:,jk) = e1v  (:,:) * e3v_n(:,:,jk) * vn(:,:,jk) 
     113            zwn(:,:,jk) = e1e2t(:,:)                 * wn(:,:,jk) 
    117114         END DO 
    118115      ENDIF 
     
    142139      IF( l_trdtra )   THEN                    !* Save ta and sa trends 
    143140         ALLOCATE( ztrdt(jpi,jpj,jpk), ztrds(jpi,jpj,jpk) ) 
    144          ztrdt(:,:,:) = pts_rhs(:,:,:,jp_tem) 
    145          ztrds(:,:,:) = pts_rhs(:,:,:,jp_sal) 
     141         ztrdt(:,:,:) = tsa(:,:,:,jp_tem) 
     142         ztrds(:,:,:) = tsa(:,:,:,jp_sal) 
    146143      ENDIF 
    147144      ! 
     
    149146      ! 
    150147      CASE ( np_CEN )                                 ! Centered scheme : 2nd / 4th order 
    151          CALL tra_adv_cen    ( kt, nit000, ktlev2, 'TRA',         zun, zvn, zwn     , ts(:,:,:,:,ktlev2), pts_rhs, jpts, nn_cen_h, nn_cen_v ) 
     148         CALL tra_adv_cen    ( kt, nit000, 'TRA',         zun, zvn, zwn     , tsn, tsa, jpts, nn_cen_h, nn_cen_v ) 
    152149      CASE ( np_FCT )                                 ! FCT scheme      : 2nd / 4th order 
    153          CALL tra_adv_fct    ( kt, nit000, ktlev1, ktlev2, ktlev3, 'TRA', r2dt, zun, zvn, zwn,                      & 
    154      &                         ts(:,:,:,:,ktlev1), ts(:,:,:,:,ktlev2), pts_rhs, jpts, nn_fct_h, nn_fct_v ) 
     150         CALL tra_adv_fct    ( kt, nit000, 'TRA', r2dt, zun, zvn, zwn, tsb, tsn, tsa, jpts, nn_fct_h, nn_fct_v ) 
    155151      CASE ( np_MUS )                                 ! MUSCL 
    156          CALL tra_adv_mus    ( kt, nit000, ktlev2, kt2lev, 'TRA', r2dt, zun, zvn, zwn, ts(:,:,:,:,ktlev1),      pts_rhs, jpts        , ln_mus_ups )  
     152         CALL tra_adv_mus    ( kt, nit000, 'TRA', r2dt, zun, zvn, zwn, tsb,      tsa, jpts        , ln_mus_ups )  
    157153      CASE ( np_UBS )                                 ! UBS 
    158          CALL tra_adv_ubs    ( kt, nit000, ktlev2, 'TRA', r2dt, zun, zvn, zwn, ts(:,:,:,:,ktlev1), ts(:,:,:,:,ktlev2), pts_rhs, jpts        , nn_ubs_v   ) 
     154         CALL tra_adv_ubs    ( kt, nit000, 'TRA', r2dt, zun, zvn, zwn, tsb, tsn, tsa, jpts        , nn_ubs_v   ) 
    159155      CASE ( np_QCK )                                 ! QUICKEST 
    160          CALL tra_adv_qck    ( kt, nit000, ktlev2, 'TRA', r2dt, zun, zvn, zwn, ts(:,:,:,:,ktlev1), ts(:,:,:,:,ktlev2), pts_rhs, jpts                     ) 
     156         CALL tra_adv_qck    ( kt, nit000, 'TRA', r2dt, zun, zvn, zwn, tsb, tsn, tsa, jpts                     ) 
    161157      ! 
    162158      END SELECT 
     
    164160      IF( l_trdtra )   THEN                      ! save the advective trends for further diagnostics 
    165161         DO jk = 1, jpkm1 
    166             ztrdt(:,:,jk) = pts_rhs(:,:,jk,jp_tem) - ztrdt(:,:,jk) 
    167             ztrds(:,:,jk) = pts_rhs(:,:,jk,jp_sal) - ztrds(:,:,jk) 
     162            ztrdt(:,:,jk) = tsa(:,:,jk,jp_tem) - ztrdt(:,:,jk) 
     163            ztrds(:,:,jk) = tsa(:,:,jk,jp_sal) - ztrds(:,:,jk) 
    168164         END DO 
    169165         CALL trd_tra( kt, 'TRA', jp_tem, jptra_totad, ztrdt ) 
Note: See TracChangeset for help on using the changeset viewer.