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 1362 for branches/dev_004_VVL – NEMO

Changeset 1362 for branches/dev_004_VVL


Ignore:
Timestamp:
2009-03-31T19:52:23+02:00 (15 years ago)
Author:
rblod
Message:

dev_004_VVL: introduce definition of scale factors for vvl, see ticket #390

Location:
branches/dev_004_VVL/NEMO/OPA_SRC
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • branches/dev_004_VVL/NEMO/OPA_SRC/DOM/dom_oce.F90

    r1241 r1362  
    114114#if defined key_vvl 
    115115   LOGICAL, PUBLIC, PARAMETER ::   lk_vvl = .TRUE.    !: variable grid flag 
    116  
    117    !! All coordinates 
    118    !! --------------- 
    119    REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) ::   &  !: 
    120       gdep3w_1        ,  &  !: depth of T-points (sum of e3w) (m) 
    121       gdept_1, gdepw_1,  &  !: analytical depth at T-W  points (m) 
    122       e3v_1  , e3f_1  ,  &  !: analytical vertical scale factors at  V--F 
    123       e3t_1  , e3u_1  ,  &  !:                                       T--U  points (m) 
    124       e3vw_1          ,  &  !: analytical vertical scale factors at  VW-- 
    125       e3w_1  , e3uw_1       !:                                       W--UW  points (m) 
    126116#else 
    127117   LOGICAL, PUBLIC, PARAMETER ::   lk_vvl = .FALSE.   !: fixed grid flag 
  • branches/dev_004_VVL/NEMO/OPA_SRC/DOM/domvvl.F90

    r1146 r1362  
    8181#endif 
    8282 
    83       fsvdept (:,:,:) = gdept (:,:,:) 
    84       fsvdepw (:,:,:) = gdepw (:,:,:) 
    85       fsvde3w (:,:,:) = gdep3w(:,:,:) 
    86       fsve3t (:,:,:) = e3t   (:,:,:) 
    87       fsve3u (:,:,:) = e3u   (:,:,:) 
    88       fsve3v (:,:,:) = e3v   (:,:,:) 
    89       fsve3f (:,:,:) = e3f   (:,:,:) 
    90       fsve3w (:,:,:) = e3w   (:,:,:) 
    91       fsve3uw (:,:,:) = e3uw  (:,:,:) 
    92       fsve3vw (:,:,:) = e3vw  (:,:,:) 
     83      fsdept_0(:,:,:) = gdept (:,:,:) 
     84      fsdepw_0(:,:,:) = gdepw (:,:,:) 
     85      fsde3w_0(:,:,:) = gdep3w(:,:,:) 
     86      fse3t_0 (:,:,:) = e3t   (:,:,:) 
     87      fse3u_0 (:,:,:) = e3u   (:,:,:) 
     88      fse3v_0 (:,:,:) = e3v   (:,:,:) 
     89      fse3f_0 (:,:,:) = e3f   (:,:,:) 
     90      fse3w_0 (:,:,:) = e3w   (:,:,:) 
     91      fse3uw_0(:,:,:) = e3uw  (:,:,:) 
     92      fse3vw_0(:,:,:) = e3vw  (:,:,:) 
    9393 
    9494      ! mu computation 
     
    106106            zpk = mbathy(ji,jj) - 1 
    107107            DO jk = 1, zpk 
    108                zmut(ji,jj) = zmut(ji,jj) + fsve3t(ji,jj,jk) * SUM( fsve3t(ji,jj,jk:zpk) ) 
    109                zmuu(ji,jj) = zmuu(ji,jj) + fsve3u(ji,jj,jk) * SUM( fsve3u(ji,jj,jk:zpk) ) 
    110                zmuv(ji,jj) = zmuv(ji,jj) + fsve3v(ji,jj,jk) * SUM( fsve3v(ji,jj,jk:zpk) ) 
    111                zmuf(ji,jj) = zmuf(ji,jj) + fsve3f(ji,jj,jk) * SUM( fsve3f(ji,jj,jk:zpk) ) 
     108               zmut(ji,jj) = zmut(ji,jj) + fse3t_0(ji,jj,jk) * SUM( fse3t_0(ji,jj,jk:zpk) ) 
     109               zmuu(ji,jj) = zmuu(ji,jj) + fse3u_0(ji,jj,jk) * SUM( fse3u_0(ji,jj,jk:zpk) ) 
     110               zmuv(ji,jj) = zmuv(ji,jj) + fse3v_0(ji,jj,jk) * SUM( fse3v_0(ji,jj,jk:zpk) ) 
     111               zmuf(ji,jj) = zmuf(ji,jj) + fse3f_0(ji,jj,jk) * SUM( fse3f_0(ji,jj,jk:zpk) ) 
    112112            END DO 
    113113         END DO 
     
    119119            DO jk = 1, zpk 
    120120#if defined key_sigma_vvl 
    121                mut(ji,jj,jk) = 1./SUM( fsve3t(ji,jj,1:zpk) )  
    122                muu(ji,jj,jk) = 1./SUM( fsve3u(ji,jj,1:zpk) )  
    123                muv(ji,jj,jk) = 1./SUM( fsve3v(ji,jj,1:zpk) )  
    124                muf(ji,jj,jk) = 1./SUM( fsve3f(ji,jj,1:zpk) )  
     121               mut(ji,jj,jk) = 1./SUM( fse3t_0(ji,jj,1:zpk) )  
     122               muu(ji,jj,jk) = 1./SUM( fse3u_0(ji,jj,1:zpk) )  
     123               muv(ji,jj,jk) = 1./SUM( fse3v_0(ji,jj,1:zpk) )  
     124               muf(ji,jj,jk) = 1./SUM( fse3f_0(ji,jj,1:zpk) )  
    125125#else 
    126                mut(ji,jj,jk) = SUM( fsve3t(ji,jj,jk:zpk) ) / zmut(ji,jj) 
    127                muu(ji,jj,jk) = SUM( fsve3u(ji,jj,jk:zpk) ) / zmuu(ji,jj) 
    128                muv(ji,jj,jk) = SUM( fsve3v(ji,jj,jk:zpk) ) / zmuv(ji,jj) 
    129                muf(ji,jj,jk) = SUM( fsve3f(ji,jj,jk:zpk) ) / zmuf(ji,jj) 
     126               mut(ji,jj,jk) = SUM( fse3t_0(ji,jj,jk:zpk) ) / zmut(ji,jj) 
     127               muu(ji,jj,jk) = SUM( fse3u_0(ji,jj,jk:zpk) ) / zmuu(ji,jj) 
     128               muv(ji,jj,jk) = SUM( fse3v_0(ji,jj,jk:zpk) ) / zmuv(ji,jj) 
     129               muf(ji,jj,jk) = SUM( fse3f_0(ji,jj,jk:zpk) ) / zmuf(ji,jj) 
    130130#endif 
    131131            END DO 
     
    174174      ! Scale factors at T levels 
    175175      DO jk = 1, jpkm1 
    176          fse3t(:,:,jk) = fsve3t(:,:,jk) * ( 1 + sshn(:,:)  * mut(:,:,jk) ) 
    177          fse3u(:,:,jk) = fsve3u(:,:,jk) * ( 1 + sshu(:,:)  * muu(:,:,jk) ) 
    178          fse3v(:,:,jk) = fsve3v(:,:,jk) * ( 1 + sshv(:,:)  * muv(:,:,jk) ) 
    179          fse3f(:,:,jk) = fsve3f(:,:,jk) * ( 1 + zsshf(:,:) * muf(:,:,jk) ) 
     176         fse3t(:,:,jk) = fse3t_0(:,:,jk) * ( 1 + sshn(:,:)  * mut(:,:,jk) ) 
     177         fse3u(:,:,jk) = fse3u_0(:,:,jk) * ( 1 + sshu(:,:)  * muu(:,:,jk) ) 
     178         fse3v(:,:,jk) = fse3v_0(:,:,jk) * ( 1 + sshv(:,:)  * muv(:,:,jk) ) 
     179         fse3f(:,:,jk) = fse3f_0(:,:,jk) * ( 1 + zsshf(:,:) * muf(:,:,jk) ) 
    180180      END DO 
    181181 
     
    339339         ! 
    340340         DO jk = 1, jpk 
    341             sfe3(:,:,jk)  = fsve3u(:,:,jk) * ( 1 + zssh(:,:) * muu(:,:,jk) ) 
     341            sfe3(:,:,jk)  = fve3u_0(:,:,jk) * ( 1 + zssh(:,:) * muu(:,:,jk) ) 
    342342         ENDDO 
    343343 
     
    345345         ! 
    346346         DO jk = 1, jpk 
    347             sfe3(:,:,jk)  = fsve3v(:,:,jk) * ( 1 + zssh(:,:) * muv(:,:,jk) ) 
     347            sfe3(:,:,jk)  = fse3v_0(:,:,jk) * ( 1 + zssh(:,:) * muv(:,:,jk) ) 
    348348         ENDDO 
    349349 
     
    351351         ! 
    352352         DO jk = 1, jpk 
    353             sfe3(:,:,jk)  = fsve3t(:,:,jk) * ( 1 + zssh(:,:) * mut(:,:,jk) ) 
     353            sfe3(:,:,jk)  = fse3t_0(:,:,jk) * ( 1 + zssh(:,:) * mut(:,:,jk) ) 
    354354         ENDDO 
    355355 
  • branches/dev_004_VVL/NEMO/OPA_SRC/DOM/domzgr_substitute.h90

    r1156 r1362  
    55   !!      factors depending on the vertical coord. used, using CPP macro. 
    66   !!---------------------------------------------------------------------- 
    7    !!---------------------------------------------------------------------- 
    8    !!  OPA 9.0 , LOCEAN-IPSL (2005)  
    9    !! $Id$ 
    10    !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
    11    !! 
    12    !! History : 
    13    !!   9.0  !  05-10  (A. Beckmann, G. Madec) generalisation to all coord. 
     7   !! History :  1.0  !  2005-10  (A. Beckmann, G. Madec) generalisation to all coord. 
     8   !!            3.1  !  2009-02  (G. Madec, M. Leclair)  pure z* coordinate 
    149   !!---------------------------------------------------------------------- 
    1510#if defined key_zco 
    1611#   define  fsdept(i,j,k)  gdept_0(k) 
    17  
    1812#   define  fsdepw(i,j,k)  gdepw_0(k) 
    1913#   define  fsde3w(i,j,k)  gdepw_0(k) 
    20  
    2114#   define  fse3t(i,j,k)   e3t_0(k) 
    2215#   define  fse3u(i,j,k)   e3t_0(k) 
    2316#   define  fse3v(i,j,k)   e3t_0(k) 
    2417#   define  fse3f(i,j,k)   e3t_0(k) 
    25  
    2618#   define  fse3w(i,j,k)   e3w_0(k) 
    2719#   define  fse3uw(i,j,k)  e3w_0(k) 
     
    2921#else 
    3022#   define  fsdept(i,j,k)  gdept(i,j,k) 
    31  
    3223#   define  fsdepw(i,j,k)  gdepw(i,j,k) 
    3324#   define  fsde3w(i,j,k)  gdep3w(i,j,k) 
    34   
    3525#   define  fse3t(i,j,k)   e3t(i,j,k) 
    3626#   define  fse3u(i,j,k)   e3u(i,j,k) 
    3727#   define  fse3v(i,j,k)   e3v(i,j,k) 
    3828#   define  fse3f(i,j,k)   e3f(i,j,k) 
    39  
    4029#   define  fse3w(i,j,k)   e3w(i,j,k) 
    4130#   define  fse3uw(i,j,k)  e3uw(i,j,k) 
    4231#   define  fse3vw(i,j,k)  e3vw(i,j,k) 
    4332#endif 
     33#if defined key_zco 
     34! reference for pure z-coordinate (1D - no i,j and time dependency) 
     35#   define  fsdept_0(i,j,k)  gdept_0(k) 
     36#   define  fsdepw_0(i,j,k)  gdepw_0(k) 
     37#   define  fsde3w_0(i,j,k)  gdepw_0(k) 
     38#   define  fse3t_0(i,j,k)   e3t_0(k) 
     39#   define  fse3u_0(i,j,k)   e3t_0(k) 
     40#   define  fse3v_0(i,j,k)   e3t_0(k) 
     41#   define  fse3f_0(i,j,k)   e3t_0(k) 
     42#   define  fse3w_0(i,j,k)   e3w_0(k) 
     43#   define  fse3uw_0(i,j,k)  e3w_0(k) 
     44#   define  fse3vw_0(i,j,k)  e3w_0(k) 
     45#else 
     46! reference for s- or zps-coordinate (3D no time dependency) 
     47#   define  fsdept_0(i,j,k)  gdept(i,j,k) 
     48#   define  fsdepw_0(i,j,k)  gdepw(i,j,k) 
     49#   define  fsde3w_0(i,j,k)  gdep3w(i,j,k) 
     50#   define  fse3t_0(i,j,k)   e3t(i,j,k) 
     51#   define  fse3u_0(i,j,k)   e3u(i,j,k) 
     52#   define  fse3v_0(i,j,k)   e3v(i,j,k) 
     53#   define  fse3f_0(i,j,k)   e3f(i,j,k) 
     54#   define  fse3w_0(i,j,k)   e3w(i,j,k) 
     55#   define  fse3uw_0(i,j,k)  e3uw(i,j,k) 
     56#   define  fse3vw_0(i,j,k)  e3vw(i,j,k) 
     57#endif 
     58#if defined key_vvl 
     59! s* or z*-coordinate (3D + time dependency) 
     60#   define  fsdept_b(i,j,k)  (fsdept_0(i,j,k)*(1+sshb(i,j)*mut(i,j,k))) 
     61#   define  fsdepw_b(i,j,k)  (fsdepw_0(i,j,k)*(1+sshb(i,j)*mut(i,j,k))) 
     62#   define  fsde3w_b(i,j,k)  (fsde3w_0(i,j,k)*(1+sshb(i,j)*mut(i,j,k))-sshb(i,j)) 
     63#   define  fse3t_b(i,j,k)   (fse3t_0(i,j,k)*(1+sshb(i,j)*mut(i,j,k))) 
     64#   define  fse3u_b(i,j,k)   (fse3u_0(i,j,k)*(1+sshu_b(i,j)*muu(i,j,k))) 
     65#   define  fse3v_b(i,j,k)   (fse3v_0(i,j,k)*(1+sshv_b(i,j)*muv(i,j,k))) 
     66#   define  fse3f_b(i,j,k)   (fse3f_0(i,j,k)*(1+sshf_b(i,j)*muf(i,j,k))) 
     67#   define  fse3w_b(i,j,k)   (fse3w_0(i,j,k)*(1+sshb(i,j)*mut(i,j,k))) 
     68#   define  fse3uw_b(i,j,k)  (fse3uw_0(i,j,k)*(1+sshu_b(i,j)*muu(i,j,k))) 
     69#   define  fse3vw_b(i,j,k)  (fse3vw_0(i,j,k)*(1+sshv_b(i,j)*muv(i,j,k))) 
    4470 
    45 #if defined key_vvl 
    46 #   define  fsvdept(i,j,k)  gdept_1(i,j,k) 
     71#   define  fsdept_n(i,j,k)  (fsdept_0(i,j,k)*(1+sshn(i,j)*mut(i,j,k))) 
     72#   define  fsdepw_n(i,j,k)  (fsdepw_0(i,j,k)*(1+sshn(i,j)*mut(i,j,k))) 
     73#   define  fsde3w_n(i,j,k)  (fsde3w_0(i,j,k)*(1+sshn(i,j)*mut(i,j,k))-sshn(i,j)) 
     74#   define  fse3t_n(i,j,k)   (fse3t_0(i,j,k)*(1+sshn(i,j)*mut(i,j,k))) 
     75#   define  fse3u_n(i,j,k)   (fse3u_0(i,j,k)*(1+sshu_n(i,j)*muu(i,j,k))) 
     76#   define  fse3v_n(i,j,k)   (fse3v_0(i,j,k)*(1+sshv_n(i,j)*muv(i,j,k))) 
     77#   define  fse3f_n(i,j,k)   (fse3f_0(i,j,k)*(1+sshf_n(i,j)*muf(i,j,k))) 
     78#   define  fse3w_n(i,j,k)   (fse3w_0(i,j,k)*(1+sshn(i,j)*mut(i,j,k))) 
     79#   define  fse3uw_n(i,j,k)  (fse3uw_0(i,j,k)*(1+sshu_n(i,j)*muu(i,j,k))) 
     80#   define  fse3vw_n(i,j,k)  (fse3vw_0(i,j,k)*(1+sshv_n(i,j)*muv(i,j,k))) 
    4781 
    48 #   define  fsvdepw(i,j,k)  gdepw_1(i,j,k) 
    49 #   define  fsvde3w(i,j,k)  gdep3w_1(i,j,k) 
     82#   define  fsdept_a(i,j,k)  (fsdept_0(i,j,k)*(1+ssha(i,j)*mut(i,j,k))) 
     83#   define  fsdepw_a(i,j,k)  (fsdepw_0(i,j,k)*(1+ssha(i,j)*mut(i,j,k))) 
     84#   define  fsde3w_a(i,j,k)  (fsde3w_0(i,j,k)*(1+ssha(i,j)*mut(i,j,k))-ssha(i,j)) 
     85#   define  fse3t_a(i,j,k)   (fse3t_0(i,j,k)*(1+ssha(i,j)*mut(i,j,k))) 
     86#   define  fse3u_a(i,j,k)   (fse3u_0(i,j,k)*(1+sshu_a(i,j)*muu(i,j,k))) 
     87#   define  fse3v_a(i,j,k)   (fse3v_0(i,j,k)*(1+sshv_a(i,j)*muv(i,j,k))) 
     88#   define  fse3f_a(i,j,k)   (fse3f_0(i,j,k)*(1+sshf_a(i,j)*muf(i,j,k))) 
     89#   define  fse3w_a(i,j,k)   (fse3w_0(i,j,k)*(1+ssha(i,j)*mut(i,j,k))) 
     90#   define  fse3uw_a(i,j,k)  (fse3uw_0(i,j,k)*(1+sshu_a(i,j)*muu(i,j,k))) 
     91#   define  fse3vw_a(i,j,k)  (fse3vw_0(i,j,k)*(1+sshv_a(i,j)*muv(i,j,k))) 
     92#else 
     93! time dependent coordinate (1D or 3D) 
     94! s- or zps-coordinate (3D no time dependency) 
     95#   define  fsdept_b(i,j,k)  fsdept_0(i,j,k) 
     96#   define  fsdepw_b(i,j,k)  fsdepw_0(i,j,k) 
     97#   define  fsde3w_b(i,j,k)  fsde3w_0(i,j,k) 
     98#   define  fse3t_b(i,j,k)   fse3t_0(i,j,k) 
     99#   define  fse3u_b(i,j,k)   fse3u_0(i,j,k) 
     100#   define  fse3v_b(i,j,k)   fse3v_0(i,j,k) 
     101#   define  fse3f_b(i,j,k)   fse3f_0(i,j,k) 
     102#   define  fse3w_b(i,j,k)   fse3w_0(i,j,k) 
     103#   define  fse3uw_b(i,j,k)  fse3uw_0(i,j,k) 
     104#   define  fse3vw_b(i,j,k)  fse3vw_0(i,j,k) 
    50105 
    51 #   define  fsve3t(i,j,k)   e3t_1(i,j,k) 
    52 #   define  fsve3u(i,j,k)   e3u_1(i,j,k) 
    53 #   define  fsve3v(i,j,k)   e3v_1(i,j,k) 
    54 #   define  fsve3f(i,j,k)   e3f_1(i,j,k) 
     106#   define  fsdept_n(i,j,k)  fsdept_0(i,j,k) 
     107#   define  fsdepw_n(i,j,k)  fsdepw_0(i,j,k) 
     108#   define  fsde3w_n(i,j,k)  fsde3w_0(i,j,k) 
     109#   define  fse3t_n(i,j,k)   fse3t_0(i,j,k) 
     110#   define  fse3u_n(i,j,k)   fse3u_0(i,j,k) 
     111#   define  fse3v_n(i,j,k)   fse3v_0(i,j,k) 
     112#   define  fse3f_n(i,j,k)   fse3f_0(i,j,k) 
     113#   define  fse3w_n(i,j,k)   fse3w_0(i,j,k) 
     114#   define  fse3uw_n(i,j,k)  fse3uw_0(i,j,k) 
     115#   define  fse3vw_n(i,j,k)  fse3vw_0(i,j,k) 
    55116 
    56 #   define  fsve3w(i,j,k)   e3w_1(i,j,k) 
    57 #   define  fsve3uw(i,j,k)  e3uw_1(i,j,k) 
    58 #   define  fsve3vw(i,j,k)  e3vw_1(i,j,k) 
    59 #else 
    60 #   define  fsvdept(i,j,k)  fsdept(i,j,k) 
    61  
    62 #   define  fsvdepw(i,j,k)  fsdepw(i,j,k) 
    63 #   define  fsvde3w(i,j,k)  fsde3w(i,j,k) 
    64  
    65 #   define  fsve3t(i,j,k)   fse3t(i,j,k) 
    66 #   define  fsve3u(i,j,k)   fse3u(i,j,k) 
    67 #   define  fsve3v(i,j,k)   fse3v(i,j,k) 
    68 #   define  fsve3f(i,j,k)   fse3f(i,j,k) 
    69  
    70 #   define  fsve3w(i,j,k)   fse3w(i,j,k) 
    71 #   define  fsve3uw(i,j,k)  fse3uw(i,j,k) 
    72 #   define  fsve3vw(i,j,k)  fse3vw(i,j,k) 
     117#   define  fsdept_a(i,j,k)  fsdept_0(i,j,k) 
     118#   define  fsdepw_a(i,j,k)  fsdepw_0(i,j,k) 
     119#   define  fsde3w_a(i,j,k)  fsde3w_0(i,j,k) 
     120#   define  fse3t_a(i,j,k)   fse3t_0(i,j,k) 
     121#   define  fse3u_a(i,j,k)   fse3u_0(i,j,k) 
     122#   define  fse3v_a(i,j,k)   fse3v_0(i,j,k) 
     123#   define  fse3f_a(i,j,k)   fse3f_0(i,j,k) 
     124#   define  fse3w_a(i,j,k)   fse3w_0(i,j,k) 
     125#   define  fse3uw_a(i,j,k)  fse3uw_0(i,j,k) 
     126#   define  fse3vw_a(i,j,k)  fse3vw_0(i,j,k) 
    73127#endif 
    74  
     128   !!---------------------------------------------------------------------- 
     129   !! NEMO/OPA 3.2 , LOCEAN-IPSL (2009)  
     130   !! $Id$ 
     131   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
     132   !!---------------------------------------------------------------------- 
  • branches/dev_004_VVL/NEMO/OPA_SRC/DYN/wzvmod.F90

    r1241 r1362  
    134134         DO jk = jpkm1, 1, -1 
    135135            wn(:,:,jk) = wn(:,:,jk+1) - fse3t(:,:,jk) * hdivn(:,:,jk) & 
    136               &        - ( zssha(:,:) - sshb(:,:) ) * fsve3t(:,:,jk) * mut(:,:,jk) / z2dt 
     136              &        - ( zssha(:,:) - sshb(:,:) ) * fse3t_b(:,:,jk) * mut(:,:,jk) / z2dt 
    137137         END DO 
    138138 
  • branches/dev_004_VVL/NEMO/OPA_SRC/TRA/trazdf_exp.F90

    r1146 r1362  
    105105            DO jj = 2, jpjm1  
    106106               DO ji = fs_2, fs_jpim1   ! vector opt. 
    107                   zave3r = 1.e0 / fse3w(ji,jj,jk)  
     107                  zave3r = 1.e0 / fse3w_n(ji,jj,jk)  
    108108                  zwy(ji,jj,jk) =   avt(ji,jj,jk) * ( zwx(ji,jj,jk-1) - zwx(ji,jj,jk) ) * zave3r 
    109109                  zww(ji,jj,jk) = fsavs(ji,jj,jk) * ( zwz(ji,jj,jk-1) - zwz(ji,jj,jk) ) * zave3r 
     
    115115            DO jj = 2, jpjm1  
    116116               DO ji = fs_2, fs_jpim1   ! vector opt. 
    117                   ze3tr = zlavmr / fse3t(ji,jj,jk) 
     117                  ze3tr = zlavmr / fse3t_n(ji,jj,jk) 
    118118                  zwx(ji,jj,jk) = zwx(ji,jj,jk) + p2dt(jk) * ( zwy(ji,jj,jk) - zwy(ji,jj,jk+1) ) * ze3tr 
    119119                  zwz(ji,jj,jk) = zwz(ji,jj,jk) + p2dt(jk) * ( zww(ji,jj,jk) - zww(ji,jj,jk+1) ) * ze3tr 
     
    130130            DO jj = 2, jpjm1  
    131131               DO ji = fs_2, fs_jpim1   ! vector opt. 
    132                   ze3tb = fsve3t(ji,jj,jk) * ( 1 + sshb(ji,jj) * mut(ji,jj,jk) )       ! before e3t 
     132                  ze3tb = fse3t_b(ji,jj,jk)                                            ! before e3t 
    133133                  zta   = zwx(ji,jj,jk) - tb(ji,jj,jk) + p2dt(jk) * ta(ji,jj,jk)       ! total trends * 2*rdt 
    134134                  zsa   = zwz(ji,jj,jk) - sb(ji,jj,jk) + p2dt(jk) * sa(ji,jj,jk)      
    135                   zcoef = 1.e0 / fse3t(ji,jj,jk) * tmask(ji,jj,jk) 
     135                  zcoef = 1.e0 / fse3t_n(ji,jj,jk) * tmask(ji,jj,jk) 
     136!RBvvl : which e3t ? 
    136137                  ta(ji,jj,jk) = (  ze3tb * tb(ji,jj,jk) + fse3t(ji,jj,jk) * zta  ) * zcoef 
    137138                  sa(ji,jj,jk) = (  ze3tb * sb(ji,jj,jk) + fse3t(ji,jj,jk) * zsa  ) * zcoef 
  • branches/dev_004_VVL/NEMO/OPA_SRC/TRA/trazdf_imp.F90

    r1156 r1362  
    101101      INTEGER  ::   ji, jj, jk               ! dummy loop indices 
    102102      REAL(wp) ::   zavi, zrhs, znvvl,     & ! temporary scalars 
    103          ze3tb, ze3tn, ze3ta, zvsfvvl        ! variable vertical scale factors 
     103         ze3tb, ze3tn, ze3ta                 ! variable vertical scale factors 
    104104      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   & 
    105105         zwi, zwt, zavsi                     ! workspace arrays 
     
    169169         DO jj = 2, jpjm1 
    170170            DO ji = fs_2, fs_jpim1   ! vector opt. 
    171                zvsfvvl = fsve3t(ji,jj,jk) * ( 1 + ssha(ji,jj) * mut(ji,jj,jk) ) 
    172                ze3ta = ( 1. - znvvl ) + znvvl*zvsfvvl                                ! after scale factor at T-point 
    173                ze3tn = ( 1. - znvvl )*fse3t(ji,jj,jk) + znvvl                        ! now   scale factor at T-point 
     171               ze3ta = ( 1. - znvvl ) + znvvl*fse3t_a(ji,jj,jk)                        ! after scale factor at T-point 
     172               ze3tn = ( 1. - znvvl )*fse3t_n(ji,jj,jk) + znvvl                        ! now   scale factor at T-point 
    174173               zwi(ji,jj,jk) = - p2dt(jk) * zwt(ji,jj,jk  ) / ( ze3tn * fse3w(ji,jj,jk  ) ) 
    175174               zws(ji,jj,jk) = - p2dt(jk) * zwt(ji,jj,jk+1) / ( ze3tn * fse3w(ji,jj,jk+1) ) 
     
    182181      DO jj = 2, jpjm1 
    183182         DO ji = fs_2, fs_jpim1   ! vector opt. 
    184             zvsfvvl = fsve3t(ji,jj,1) * ( 1 + ssha(ji,jj) * mut(ji,jj,1) ) 
    185             ze3ta = ( 1. - znvvl ) + znvvl*zvsfvvl                                   ! after scale factor at T-point 
     183            ze3ta = ( 1. - znvvl ) + znvvl*fse3t_a(ji,jj,1)                             ! after scale factor at T-point 
    186184            zwi(ji,jj,1) = 0.e0 
    187185            zwd(ji,jj,1) = ze3ta - zws(ji,jj,1) 
     
    227225      DO jj = 2, jpjm1 
    228226         DO ji = fs_2, fs_jpim1 
    229             zvsfvvl = fsve3t(ji,jj,1) * ( 1 + sshb(ji,jj) * mut(ji,jj,1) ) 
    230             ze3tb = ( 1. - znvvl ) + znvvl*zvsfvvl 
    231             ze3tn = ( 1. - znvvl ) + znvvl*fse3t (ji,jj,1) 
     227            ze3tb = ( 1. - znvvl ) + znvvl*fse3t_b(ji,jj,1) 
     228!RBvvl which  
     229            ze3tn = ( 1. - znvvl ) + znvvl*fse3t(ji,jj,1) 
    232230            ta(ji,jj,1) = ze3tb * tb(ji,jj,1) + p2dt(1) * ze3tn * ta(ji,jj,1) 
    233231         END DO 
     
    236234         DO jj = 2, jpjm1 
    237235            DO ji = fs_2, fs_jpim1 
    238                zvsfvvl = fsve3t(ji,jj,jk) * ( 1 + sshb(ji,jj) * mut(ji,jj,jk) ) 
    239                ze3tb = ( 1. - znvvl ) + znvvl*zvsfvvl 
     236               ze3tb = ( 1. - znvvl ) + znvvl*fse3t_b(ji,jj,jk) 
     237!RB_vvl 
    240238               ze3tn = ( 1. - znvvl ) + znvvl*fse3t (ji,jj,jk) 
    241239               zrhs = ze3tb * tb(ji,jj,jk) + p2dt(jk) * ze3tn * ta(ji,jj,jk)   ! zrhs=right hand side  
     
    271269         DO jj = 2, jpjm1 
    272270            DO ji = fs_2, fs_jpim1   ! vector opt. 
    273                zvsfvvl = fsve3t(ji,jj,jk) * ( 1 + ssha(ji,jj) * mut(ji,jj,jk) ) 
    274                ze3ta = ( 1. - znvvl ) + znvvl*zvsfvvl                                      ! after scale factor at T-point 
    275                ze3tn = ( 1. - znvvl )*fse3t(ji,jj,jk) + znvvl                              ! now   scale factor at T-point 
     271               ze3ta = ( 1. - znvvl ) + znvvl*fse3t_a(ji,jj,jk)                            ! after scale factor at T-point 
     272               ze3tn = ( 1. - znvvl )*fse3t_n(ji,jj,jk) + znvvl                            ! now   scale factor at T-point 
    276273               zwi(ji,jj,jk) = - p2dt(jk) * zavsi(ji,jj,jk  ) / ( ze3tn * fse3w(ji,jj,jk  ) ) 
    277274               zws(ji,jj,jk) = - p2dt(jk) * zavsi(ji,jj,jk+1) / ( ze3tn * fse3w(ji,jj,jk+1) ) 
     
    284281      DO jj = 2, jpjm1 
    285282         DO ji = fs_2, fs_jpim1   ! vector opt. 
    286             zvsfvvl = fsve3t(ji,jj,1) * ( 1 + ssha(ji,jj) * mut(ji,jj,1) ) 
    287             ze3ta = ( 1. - znvvl ) + znvvl*zvsfvvl                                          ! after scale factor at T-point 
     283            ze3ta = ( 1. - znvvl ) + znvvl*fse3t_a(ji,jj,1) 
    288284            zwi(ji,jj,1) = 0.e0 
    289285            zwd(ji,jj,1) = ze3ta - zws(ji,jj,1) 
     
    328324      DO jj = 2, jpjm1 
    329325         DO ji = fs_2, fs_jpim1 
    330             zvsfvvl = fsve3t(ji,jj,1) * ( 1 + sshb(ji,jj) * mut(ji,jj,1) ) 
    331             ze3tb = ( 1. - znvvl ) + znvvl*zvsfvvl                               ! before scale factor at T-point 
     326            ze3tb = ( 1. - znvvl ) + znvvl*fse3t_b(ji,jj,1)                      ! before scale factor at T-point 
    332327            ze3tn = ( 1. - znvvl ) + znvvl*fse3t(ji,jj,1)                        ! now    scale factor at T-point 
    333328            sa(ji,jj,1) = ze3tb * sb(ji,jj,1) + p2dt(1) * ze3tn * sa(ji,jj,1) 
     
    337332         DO jj = 2, jpjm1 
    338333            DO ji = fs_2, fs_jpim1 
    339                zvsfvvl = fsve3t(ji,jj,jk) * ( 1 + sshb(ji,jj) * mut(ji,jj,jk) ) 
    340                ze3tb = ( 1. - znvvl ) + znvvl*zvsfvvl                            ! before scale factor at T-point 
     334               ze3tb = ( 1. - znvvl ) + znvvl*fse3t_b(ji,jj,jk)                  ! before scale factor at T-point 
    341335               ze3tn = ( 1. - znvvl ) + znvvl*fse3t(ji,jj,jk)                    ! now    scale factor at T-point 
    342336               zrhs = ze3tb * sb(ji,jj,jk) + p2dt(jk) * ze3tn * sa(ji,jj,jk)     ! zrhs=right hand side 
Note: See TracChangeset for help on using the changeset viewer.