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 6808 for branches/NERC/dev_r5549_BDY_ZEROGRAD/NEMOGCM/NEMO/OPA_SRC/TRD/trdglo.F90 – NEMO

Ignore:
Timestamp:
2016-07-19T10:38:35+02:00 (8 years ago)
Author:
jamesharle
Message:

merge with trunk@6232 for consistency with SSB code

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/NERC/dev_r5549_BDY_ZEROGRAD/NEMOGCM/NEMO/OPA_SRC/TRD/trdglo.F90

    r5215 r6808  
    44   !! Ocean diagnostics:  global domain averaged tracer and momentum trends 
    55   !!===================================================================== 
    6    !! History :  1.0  !  2004-08 (C. Talandier) New trends organization 
    7    !!            3.5  !  2012-02 (G. Madec)  add 3D tracer zdf trend output using iom 
     6   !! History :  1.0  !  2004-08  (C. Talandier) New trends organization 
     7   !!            3.5  !  2012-02  (G. Madec)  add 3D tracer zdf trend output using iom 
    88   !!---------------------------------------------------------------------- 
    99 
     
    1919   USE trd_oce         ! trends: ocean variables 
    2020   USE phycst          ! physical constants 
    21    USE ldftra_oce      ! ocean active tracers: lateral physics 
    22    USE ldfdyn_oce      ! ocean dynamics: lateral physics 
     21   USE ldftra          ! lateral diffusion: eddy diffusivity & EIV coeff. 
     22   USE ldfdyn          ! ocean dynamics: lateral physics 
    2323   USE zdf_oce         ! ocean vertical physics 
    2424   USE zdfbfr          ! bottom friction 
     
    2626   USE eosbn2          ! equation of state 
    2727   USE phycst          ! physical constants 
     28   ! 
    2829   USE lib_mpp         ! distibuted memory computing library 
    2930   USE in_out_manager  ! I/O manager 
     
    5152 
    5253   !! * Substitutions 
    53 #  include "domzgr_substitute.h90" 
    5454#  include "vectopt_loop_substitute.h90" 
    5555#  include "zdfddm_substitute.h90" 
     
    9191               DO jj = 1, jpj 
    9292                  DO ji = 1, jpi         
    93                      zvm = e1e2t(ji,jj) * fse3t(ji,jj,jk) * tmask(ji,jj,jk) * tmask_i(ji,jj) 
     93                     zvm = e1e2t(ji,jj) * e3t_n(ji,jj,jk) * tmask(ji,jj,jk) * tmask_i(ji,jj) 
    9494                     zvt = ptrdx(ji,jj,jk) * zvm 
    9595                     zvs = ptrdy(ji,jj,jk) * zvm 
     
    102102            END DO 
    103103            !                       ! linear free surface: diagnose advective flux trough the fixed k=1 w-surface 
    104             IF( .NOT.lk_vvl .AND. ktrd == jptra_zad ) THEN   
    105                tmo(jptra_sad) = SUM( wn(:,:,1) * tsn(:,:,1,jp_tem) * e1e2t(:,:) ) 
    106                smo(jptra_sad) = SUM( wn(:,:,1) * tsn(:,:,1,jp_sal) * e1e2t(:,:) ) 
    107                t2 (jptra_sad) = SUM( wn(:,:,1) * tsn(:,:,1,jp_tem) * tsn(:,:,1,jp_tem) * e1e2t(:,:) ) 
    108                s2 (jptra_sad) = SUM( wn(:,:,1) * tsn(:,:,1,jp_sal) * tsn(:,:,1,jp_sal) * e1e2t(:,:) ) 
     104            IF( ln_linssh .AND. ktrd == jptra_zad ) THEN   
     105               tmo(jptra_sad) = SUM( wn(:,:,1) * tsn(:,:,1,jp_tem) * e1e2t(:,:) * tmask_i(:,:) ) 
     106               smo(jptra_sad) = SUM( wn(:,:,1) * tsn(:,:,1,jp_sal) * e1e2t(:,:) * tmask_i(:,:) ) 
     107               t2 (jptra_sad) = SUM( wn(:,:,1) * tsn(:,:,1,jp_tem) * tsn(:,:,1,jp_tem) * e1e2t(:,:) * tmask_i(:,:) ) 
     108               s2 (jptra_sad) = SUM( wn(:,:,1) * tsn(:,:,1,jp_sal) * tsn(:,:,1,jp_sal) * e1e2t(:,:) * tmask_i(:,:) ) 
    109109            ENDIF 
    110110            ! 
     
    125125                  DO ji = 1, jpim1 
    126126                     zvt = ptrdx(ji,jj,jk) * tmask_i(ji+1,jj  ) * tmask_i(ji,jj) * umask(ji,jj,jk)   & 
    127                         &                  * e1u    (ji  ,jj  ) * e2u    (ji,jj) * fse3u(ji,jj,jk) 
     127                        &                  * e1u    (ji  ,jj  ) * e2u    (ji,jj) * e3u_n(ji,jj,jk) 
    128128                     zvs = ptrdy(ji,jj,jk) * tmask_i(ji  ,jj+1) * tmask_i(ji,jj) * vmask(ji,jj,jk)   & 
    129                         &                  * e1v    (ji  ,jj  ) * e2v    (ji,jj) * fse3u(ji,jj,jk) 
     129                        &                  * e1v    (ji  ,jj  ) * e2v    (ji,jj) * e3u_n(ji,jj,jk) 
    130130                     umo(ktrd) = umo(ktrd) + zvt 
    131131                     vmo(ktrd) = vmo(ktrd) + zvs 
     
    142142                        &                       * z1_2rau0 * e1u    (ji  ,jj  ) * e2u    (ji,jj) 
    143143                     zvs = ( vtau_b(ji,jj) + vtau(ji,jj) ) * tmask_i(ji  ,jj+1) * tmask_i(ji,jj) * vmask(ji,jj,jk)   & 
    144                         &                       * z1_2rau0 * e1v    (ji  ,jj  ) * e2v    (ji,jj) * fse3u(ji,jj,jk) 
     144                        &                       * z1_2rau0 * e1v    (ji  ,jj  ) * e2v    (ji,jj) * e3u_n(ji,jj,jk) 
    145145                     umo(jpdyn_tau) = umo(jpdyn_tau) + zvt 
    146146                     vmo(jpdyn_tau) = vmo(jpdyn_tau) + zvs 
     
    224224            DO jj = 1, jpjm1 
    225225               DO ji = 1, jpim1 
    226                   zkx(ji,jj,jk) = zcof * e2u(ji,jj) * fse3u(ji,jj,jk) * un(ji,jj,jk) * ( rhop(ji,jj,jk) + rhop(ji+1,jj,jk) ) 
    227                   zky(ji,jj,jk) = zcof * e1v(ji,jj) * fse3v(ji,jj,jk) * vn(ji,jj,jk) * ( rhop(ji,jj,jk) + rhop(ji,jj+1,jk) ) 
     226                  zkx(ji,jj,jk) = zcof * e2u(ji,jj) * e3u_n(ji,jj,jk) * un(ji,jj,jk) * ( rhop(ji,jj,jk) + rhop(ji+1,jj,jk) ) 
     227                  zky(ji,jj,jk) = zcof * e1v(ji,jj) * e3v_n(ji,jj,jk) * vn(ji,jj,jk) * ( rhop(ji,jj,jk) + rhop(ji,jj+1,jk) ) 
    228228               END DO 
    229229            END DO 
     
    236236                     &                 + zkx(ji,jj,jk) - zkx(ji-1,jj  ,jk  )               & 
    237237                     &                 + zky(ji,jj,jk) - zky(ji  ,jj-1,jk  )   )           & 
    238                      &              / ( e1e2t(ji,jj) * fse3t(ji,jj,jk) ) * tmask(ji,jj,jk) * tmask_i(ji,jj) 
     238                     &              / ( e1e2t(ji,jj) * e3t_n(ji,jj,jk) ) * tmask(ji,jj,jk) * tmask_i(ji,jj) 
    239239               END DO 
    240240            END DO 
     
    245245         peke = 0._wp 
    246246         DO jk = 1, jpkm1 
    247             peke = peke + SUM( zkepe(:,:,jk) * fsdept(:,:,jk) * e1e2t(:,:) * fse3t(:,:,jk) ) 
     247            peke = peke + SUM( zkepe(:,:,jk) * gdept_n(:,:,jk) * e1e2t(:,:) * e3t_n(:,:,jk) ) 
    248248         END DO 
    249249         peke = grav * peke 
     
    529529      tvolt = 0._wp 
    530530      DO jk = 1, jpkm1 
    531          tvolt = tvolt + SUM( e1e2t(:,:) * fse3t(:,:,jk) * tmask(:,:,jk) * tmask_i(:,:) ) 
     531         tvolt = tvolt + SUM( e1e2t(:,:) * e3t_n(:,:,jk) * tmask(:,:,jk) * tmask_i(:,:) ) 
    532532      END DO 
    533533      IF( lk_mpp )   CALL mpp_sum( tvolt )   ! sum over the global domain 
     
    546546         DO jj = 2, jpjm1 
    547547            DO ji = fs_2, fs_jpim1   ! vector opt. 
    548                tvolu = tvolu + e1u(ji,jj) * e2u(ji,jj) * fse3u(ji,jj,jk) * tmask_i(ji+1,jj  ) * tmask_i(ji,jj) * umask(ji,jj,jk) 
    549                tvolv = tvolv + e1v(ji,jj) * e2v(ji,jj) * fse3v(ji,jj,jk) * tmask_i(ji  ,jj+1) * tmask_i(ji,jj) * vmask(ji,jj,jk) 
     548               tvolu = tvolu + e1u(ji,jj) * e2u(ji,jj) * e3u_n(ji,jj,jk) * tmask_i(ji+1,jj  ) * tmask_i(ji,jj) * umask(ji,jj,jk) 
     549               tvolv = tvolv + e1v(ji,jj) * e2v(ji,jj) * e3v_n(ji,jj,jk) * tmask_i(ji  ,jj+1) * tmask_i(ji,jj) * vmask(ji,jj,jk) 
    550550            END DO 
    551551         END DO 
Note: See TracChangeset for help on using the changeset viewer.