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 455 for trunk/NEMO/OPA_SRC/DYN/dynldf_lap.F90 – NEMO

Ignore:
Timestamp:
2006-05-10T18:53:54+02:00 (18 years ago)
Author:
opalod
Message:

nemo_v1_update_048:RB: reorganization of dynamics part, in addition change atsk to jki, suppress dynhpg_atsk.F90 dynzdf_imp_atsk.F90 dynzdf_iso.F90

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OPA_SRC/DYN/dynldf_lap.F90

    r258 r455  
    1818   USE trdmod_oce      ! ocean variables trends 
    1919   USE ldfslp          ! iso-neutral slopes  
    20    USE prtctl          ! Print control 
    2120 
    2221   IMPLICIT NONE 
     
    5150      !!         difu = 1/e1u di[ahmt hdivb] - 1/(e2u*e3u) dj-1[e3f ahmf rotb] 
    5251      !!         difv = 1/e2v dj[ahmt hdivb] + 1/(e1v*e3v) di-1[e3f ahmf rotb] 
    53       !!      If 'key_s_coord' key is not activated, the vertical scale factor 
    54       !!      is simplified in the rotational part of the diffusion. 
     52      !!      If lk_zco=T, e3f=e3u=e3v, the vertical scale factor are simplified 
     53      !!      in the rotational part of the diffusion. 
    5554      !!      Add this before trend to the general trend (ua,va): 
    5655      !!            (ua,va) = (ua,va) + (diffu,diffv) 
     
    6059      !! ** Action : - Update (ua,va) with the before iso-level harmonic  
    6160      !!               mixing trend. 
    62       !!             - Save in (ztdua,ztdva) arrays the trends ('key_trddyn') 
    6361      !! 
    6462      !! History : 
     
    6967      !!   9.0  !  04-08 (C. Talandier) New trends organization 
    7068      !!---------------------------------------------------------------------- 
    71       !! * Modules used      
    72       USE oce, ONLY :    ztdua => ta,   & ! use ta as 3D workspace    
    73                          ztdva => sa      ! use sa as 3D workspace    
    74  
    7569      !! * Arguments 
    7670      INTEGER, INTENT( in ) ::   kt       ! ocean time-step index 
     
    8882      ENDIF 
    8983 
    90       ! Save ua and va trends 
    91       IF( l_trddyn )   THEN 
    92          ztdua(:,:,:) = ua(:,:,:)  
    93          ztdva(:,:,:) = va(:,:,:)  
    94       ENDIF 
    95  
    9684      !                                                ! =============== 
    9785      DO jk = 1, jpkm1                                 ! Horizontal slab 
     
    9987         DO jj = 2, jpjm1 
    10088            DO ji = fs_2, fs_jpim1   ! vector opt. 
    101 #if defined key_s_coord || defined key_partial_steps 
     89#if defined key_zco 
     90               ! horizontal diffusive trends 
     91               ze2u = rotb (ji,jj,jk)*fsahmf(ji,jj,jk) 
     92               ze1v = hdivb(ji,jj,jk)*fsahmt(ji,jj,jk) 
     93               zua = - ( ze2u - rotb (ji,jj-1,jk)*fsahmf(ji,jj-1,jk)                   ) / e2u(ji,jj)   & 
     94                     + ( hdivb(ji+1,jj,jk)*fsahmt(ji+1,jj,jk) - ze1v                   ) / e1u(ji,jj) 
     95 
     96               zva = + ( ze2u - rotb (ji-1,jj,jk)*fsahmf(ji-1,jj,jk)                   ) / e1v(ji,jj)   & 
     97                     + ( hdivb(ji,jj+1,jk)*fsahmt(ji,jj+1,jk) - ze1v                   ) / e2v(ji,jj) 
     98#else 
    10299               ze2u = rotb (ji,jj,jk)*fsahmf(ji,jj,jk)*fse3f(ji,jj,jk) 
    103100               ze1v = hdivb(ji,jj,jk)*fsahmt(ji,jj,jk) 
     
    108105               zva = + ( ze2u - rotb (ji-1,jj,jk)*fsahmf(ji-1,jj,jk)*fse3f(ji-1,jj,jk) ) / ( e1v(ji,jj) * fse3v(ji,jj,jk) )   & 
    109106                     + ( hdivb(ji,jj+1,jk)*fsahmt(ji,jj+1,jk) - ze1v                   ) / e2v(ji,jj) 
    110 #else 
    111                ! horizontal diffusive trends 
    112                ze2u = rotb (ji,jj,jk)*fsahmf(ji,jj,jk) 
    113                ze1v = hdivb(ji,jj,jk)*fsahmt(ji,jj,jk) 
    114                zua = - (                ze2u                  - rotb (ji,jj-1,jk)*fsahmf(ji,jj-1,jk) ) / e2u(ji,jj)   & 
    115                      + ( hdivb(ji+1,jj,jk)*fsahmt(ji+1,jj,jk) -                ze1v                  ) / e1u(ji,jj) 
    116  
    117                zva = + (                ze2u                  - rotb (ji-1,jj,jk)*fsahmf(ji-1,jj,jk) ) / e1v(ji,jj)   & 
    118                      + ( hdivb(ji,jj+1,jk)*fsahmt(ji,jj+1,jk) -                ze1v                  ) / e2v(ji,jj) 
    119107#endif 
    120108 
     
    128116      !                                                ! =============== 
    129117 
    130       ! save the lateral diffusion trends for diagnostic 
    131       ! momentum trends 
    132       IF( l_trddyn )   THEN 
    133          ztdua(:,:,:) = ua(:,:,:) - ztdua(:,:,:) 
    134          ztdva(:,:,:) = va(:,:,:) - ztdva(:,:,:) 
    135  
    136          CALL trd_mod(ztdua, ztdva, jpdtdldf, 'DYN', kt) 
    137       ENDIF 
    138  
    139       IF(ln_ctl) THEN         ! print sum trends (used for debugging) 
    140          CALL prt_ctl(tab3d_1=ua, clinfo1=' ldf  - Ua: ', mask1=umask, & 
    141             &         tab3d_2=va, clinfo2=' Va: ', mask2=vmask, clinfo3='dyn') 
    142       ENDIF 
    143  
    144118   END SUBROUTINE dyn_ldf_lap 
    145119 
Note: See TracChangeset for help on using the changeset viewer.