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 457 for trunk/NEMO/OPA_SRC/TRA/traadv_tvd.F90 – NEMO

Ignore:
Timestamp:
2006-05-10T19:01:19+02:00 (18 years ago)
Author:
opalod
Message:

nemo_v1_update_049:RB: reorganization of tracers part, remove traadv_cen2_atsk.h90 traldf_iso_zps.F90 trazdf_iso.F90 trazdf_iso_vopt.F90, change atsk routines to jki

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OPA_SRC/TRA/traadv_tvd.F90

    r408 r457  
    4242CONTAINS 
    4343 
    44    SUBROUTINE tra_adv_tvd( kt ) 
     44   SUBROUTINE tra_adv_tvd( kt, pun, pvn, pwn ) 
    4545      !!---------------------------------------------------------------------- 
    4646      !!                  ***  ROUTINE tra_adv_tvd  *** 
     
    6464      !!   8.5  !  02-06  (G. Madec)  F90: Free form and module 
    6565      !!   9.0  !  04-01  (A. de Miranda, G. Madec, J.M. Molines ): advective bbl 
    66       !!    "   !  08-04  (S. Cravatte) add the i-, j- & k- trends computation 
     66      !!   9.0  !  08-04  (S. Cravatte) add the i-, j- & k- trends computation 
    6767      !!    "   !  05-11  (V. Garnier) Surface pressure gradient organization 
    6868      !!---------------------------------------------------------------------- 
     
    7272         &                     ztaz => tladi,  &  ! use ua as workspace 
    7373         &                     zsaz => sladi      ! use ua as workspace 
    74 #if defined key_trabbl_adv 
    75       USE oce                , zun => ua,  &  ! use ua as workspace 
    76          &                     zvn => va      ! use va as workspace 
    77  
    78       REAL(wp), DIMENSION(jpi,jpj,jpk) :: zwn 
    79 #else 
    80       USE oce                , zun => un,  &  ! When no bbl, zun == un 
    81                                zvn => vn,  &  !             zvn == vn 
    82                                zwn => wn      !             zwn == wn 
    83 #endif 
    8474 
    8575      !! * Arguments 
    86       INTEGER, INTENT( in ) ::   kt         ! ocean time-step 
     76      INTEGER , INTENT( in ) ::   kt          ! ocean time-step index 
     77      REAL(wp), INTENT( in ), DIMENSION(jpi,jpj,jpk) ::   & 
     78         pun, pvn, pwn                        ! now ocean velocity fields 
    8779 
    8880      !! * Local declarations 
     
    122114      ENDIF 
    123115 
    124 #if defined key_trabbl_adv 
    125       ! Advective Bottom boundary layer: add the velocity 
    126       ! ------------------------------------------------- 
    127       zun(:,:,:) = un (:,:,:) - u_bbl(:,:,:) 
    128       zvn(:,:,:) = vn (:,:,:) - v_bbl(:,:,:) 
    129       zwn(:,:,:) = wn (:,:,:) + w_bbl(:,:,:) 
    130 #endif 
    131116 
    132117      ! 1. Bottom value : flux set to zero 
     
    144129         DO jj = 1, jpjm1 
    145130            DO ji = 1, fs_jpim1   ! vector opt. 
    146                zeu = 0.5 * e2u(ji,jj) * fse3u(ji,jj,jk) * zun(ji,jj,jk) 
    147                zev = 0.5 * e1v(ji,jj) * fse3v(ji,jj,jk) * zvn(ji,jj,jk) 
     131               zeu = 0.5 * e2u(ji,jj) * fse3u(ji,jj,jk) * pun(ji,jj,jk) 
     132               zev = 0.5 * e1v(ji,jj) * fse3v(ji,jj,jk) * pvn(ji,jj,jk) 
    148133               ! upstream scheme 
    149134               zfp_ui = zeu + ABS( zeu ) 
     
    161146      ! upstream tracer flux in the k direction 
    162147      ! Surface value 
    163       IF( lk_dynspg_rl ) THEN          ! rigid lid : flux set to zero 
     148      IF( lk_dynspg_rl ) THEN                           ! rigid lid : flux set to zero 
    164149         ztw(:,:,1) = 0.e0 
    165150         zsw(:,:,1) = 0.e0 
    166       ELSE                 ! free surface 
     151      ELSE                                              ! free surface 
    167152         DO jj = 1, jpj 
    168153            DO ji = 1, jpi 
    169                zew = e1t(ji,jj) * e2t(ji,jj) * zwn(ji,jj,1) 
     154               zew = e1t(ji,jj) * e2t(ji,jj) * pwn(ji,jj,1) 
    170155               ztw(ji,jj,1) = zew * tb(ji,jj,1) 
    171156               zsw(ji,jj,1) = zew * sb(ji,jj,1) 
     
    178163         DO jj = 1, jpj 
    179164            DO ji = 1, jpi 
    180                zew = 0.5 * e1t(ji,jj) * e2t(ji,jj) * zwn(ji,jj,jk) 
     165               zew = 0.5 * e1t(ji,jj) * e2t(ji,jj) * pwn(ji,jj,jk) 
    181166               zfp_wk = zew + ABS( zew ) 
    182167               zfm_wk = zew - ABS( zew ) 
     
    247232         DO jj = 1, jpjm1 
    248233            DO ji = 1, fs_jpim1   ! vector opt. 
    249                zeu = 0.5 * e2u(ji,jj) * fse3u(ji,jj,jk) * zun(ji,jj,jk) 
    250                zev = 0.5 * e1v(ji,jj) * fse3v(ji,jj,jk) * zvn(ji,jj,jk) 
     234               zeu = 0.5 * e2u(ji,jj) * fse3u(ji,jj,jk) * pun(ji,jj,jk) 
     235               zev = 0.5 * e1v(ji,jj) * fse3v(ji,jj,jk) * pvn(ji,jj,jk) 
    251236               ztu(ji,jj,jk) = zeu * ( tn(ji,jj,jk) + tn(ji+1,jj,jk) ) - ztu(ji,jj,jk) 
    252237               zsu(ji,jj,jk) = zeu * ( sn(ji,jj,jk) + sn(ji+1,jj,jk) ) - zsu(ji,jj,jk) 
     
    266251         DO jj = 1, jpj 
    267252            DO ji = 1, jpi 
    268                zew = 0.5 * e1t(ji,jj) * e2t(ji,jj) * zwn(ji,jj,jk) 
     253               zew = 0.5 * e1t(ji,jj) * e2t(ji,jj) * pwn(ji,jj,jk) 
    269254               ztw(ji,jj,jk) = zew * ( tn(ji,jj,jk) + tn(ji,jj,jk-1) ) - ztw(ji,jj,jk) 
    270255               zsw(ji,jj,jk) = zew * ( sn(ji,jj,jk) + sn(ji,jj,jk-1) ) - zsw(ji,jj,jk) 
     
    401386      zbig = 1.e+40 
    402387      zrtrn = 1.e-15 
    403       zbetup(:,:,:) = 0.e0   ;   zbetdo(:,:,:) = 0.e0 
     388      zbetup(:,:,:) = 0.e0   ;   zbetdo(:,:,:) = 0.e0   
    404389 
    405390      ! Search local extrema 
Note: See TracChangeset for help on using the changeset viewer.