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 2887 for branches/2011/dev_r2802_NOCL_Smagorinsky/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_bilap.F90 – NEMO

Ignore:
Timestamp:
2011-10-05T11:16:29+02:00 (13 years ago)
Author:
hliu
Message:

addition and modification of files for Smagorinsky method. for Maria Luneva

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2011/dev_r2802_NOCL_Smagorinsky/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_bilap.F90

    r2715 r2887  
    2828   USE diaptr          ! poleward transport diagnostics 
    2929   USE trc_oce         ! share passive tracers/Ocean variables 
    30    USE lib_mpp         ! MPP library 
    3130 
    3231   IMPLICIT NONE 
     
    7473      !!               biharmonic mixing trend. 
    7574      !!---------------------------------------------------------------------- 
    76       USE wrk_nemo, ONLY:   wrk_in_use, wrk_not_released 
    77       USE oce     , ONLY:   ztu  => ua       , ztv  => va                           ! (ua,va) used as workspace 
    78       USE wrk_nemo, ONLY:   zeeu => wrk_2d_1 , zeev => wrk_2d_2 , zlt => wrk_2d_3   ! 2D workspace 
     75      USE oce         , ztu => ua   ! use ua as workspace 
     76      USE oce         , ztv => va   ! use va as workspace 
    7977      !! 
    8078      INTEGER                              , INTENT(in   ) ::   kt         ! ocean time-step index 
     
    8785      INTEGER  ::  ji, jj, jk, jn   ! dummy loop indices 
    8886      REAL(wp) ::  zbtr, ztra       ! local scalars 
     87      REAL(wp), DIMENSION(jpi,jpj) ::   zeeu, zeev, zlt   ! 2D workspace 
    8988      !!---------------------------------------------------------------------- 
    90  
    91       IF( wrk_in_use(2, 1,2,3) ) THEN 
    92          CALL ctl_stop('tra_ldf_bilap: requested workspace arrays unavailable')   ;   RETURN 
    93       ENDIF 
    9489 
    9590      IF( kt == nit000 )  THEN 
     
    128123               END DO 
    129124            ENDIF 
     125#if ! defined key_traldf_smag 
    130126            DO jj = 2, jpjm1                 ! Second derivative (divergence) time the eddy diffusivity coefficient 
    131127               DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    135131               END DO 
    136132            END DO 
     133#else 
     134            DO jj = 2, jpjm1                 ! Second derivative (divergence) time the eddy diffusivity coefficient 
     135               DO ji = fs_2, fs_jpim1   ! vector opt. 
     136                  zbtr = 1.0 / ( e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) ) 
     137                  zlt(ji,jj) = zbtr * (   ztu(ji,jj,jk) - ztu(ji-1,jj,jk)   & 
     138                     &                                     + ztv(ji,jj,jk) - ztv(ji,jj-1,jk)   ) 
     139               END DO 
     140            END DO 
     141#endif 
    137142            CALL lbc_lnk( zlt, 'T', 1. )     ! Lateral boundary conditions (unchanged sgn) 
    138143 
     
    145150               END DO 
    146151            END DO 
     152#if ! defined key_traldf_smag 
    147153            DO jj = 2, jpjm1                 ! fourth derivative (divergence) and add to the general tracer trend 
    148154               DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    154160               END DO 
    155161            END DO 
     162#else 
     163            DO jj = 2, jpjm1                 ! fourth derivative (divergence) and add to the general tracer trend 
     164               DO ji = fs_2, fs_jpim1   ! vector opt. 
     165                  ! horizontal diffusive trends 
     166                  zbtr = 1.0 / ( e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) ) 
     167                  ztra = zbtr * fsahtt(ji,jj,jk)* (  ztu(ji,jj,jk) - ztu(ji-1,jj,jk) + ztv(ji,jj,jk) - ztv(ji,jj-1,jk)  ) 
     168                  ! add it to the general tracer trends 
     169                  pta(ji,jj,jk,jn) = pta(ji,jj,jk,jn) + ztra 
     170               END DO 
     171            END DO 
     172 
     173#endif 
    156174            !                                              
    157175         END DO                                           ! Horizontal slab 
     
    165183      END DO                                              ! tracer loop 
    166184      !                                                   ! =========== 
    167       IF( wrk_not_released(2, 1,2,3) )   CALL ctl_stop('tra_ldf_bilap: failed to release workspace arrays') 
    168       ! 
    169185   END SUBROUTINE tra_ldf_bilap 
    170186 
Note: See TracChangeset for help on using the changeset viewer.