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 2974 for branches/2011/dev_r2739_LOCEAN8_ZTC/NEMOGCM/NEMO/OPA_SRC/DOM – NEMO

Ignore:
Timestamp:
2011-10-21T16:42:39+02:00 (13 years ago)
Author:
mlelod
Message:

lateral tracer diffusion: coding slightly modified. see ticket/863?

Location:
branches/2011/dev_r2739_LOCEAN8_ZTC/NEMOGCM/NEMO/OPA_SRC/DOM
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/2011/dev_r2739_LOCEAN8_ZTC/NEMOGCM/NEMO/OPA_SRC/DOM/dom_oce.F90

    r2905 r2974  
    157157   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   ht_0               !: refernce depth at t-       points (meters) 
    158158   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   hu_0   , hv_0      !: refernce depth at u- and v-points (meters) 
    159    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   e1ur   , e2vr      !: scale factor coeffs at U--V points 
     159   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   e2_1u  , e1_2v     !: scale factor coeffs at U--V points 
    160160   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   e12t   , e12t_1    !: horizontal cell surface and inverse  at T    points 
    161161   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   e12u   , e12u_1    !: horizontal cell surface and inverse  at U    points 
    162    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   e12v_1 , e12f_1    !: inverse horizontal cell surface      at V--F   points 
     162   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   e12v   , e12v_1    !: horizontal cell surface and inverse  at V    points 
     163   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   e12f   , e12f_1    !: inverse horizontal cell surface      at V--F   points 
    163164 
    164165   INTEGER, PUBLIC ::   nla10              !: deepest    W level Above  ~10m (nlb10 - 1) 
     
    293294#endif 
    294295         ! 
    295       ALLOCATE( hu  (jpi,jpj) , hur   (jpi,jpj) , hu_0  (jpi,jpj) , ht_0  (jpi,jpj) ,     & 
    296          &      hv  (jpi,jpj) , hvr   (jpi,jpj) , hv_0  (jpi,jpj) ,                       & 
    297          &      e1ur(jpi,jpj) , e2vr  (jpi,jpj) , e12t  (jpi,jpj) , e12t_1(jpi,jpj) ,     & 
    298          &      e12u(jpi,jpj) , e12u_1(jpi,jpj) , e12v_1(jpi,jpj) , e12f_1(jpi,jpj) , STAT=ierr(6)  ) 
     296      ALLOCATE( hu   (jpi,jpj) , hur   (jpi,jpj) , hu_0(jpi,jpj) , ht_0  (jpi,jpj) ,     & 
     297         &      hv   (jpi,jpj) , hvr   (jpi,jpj) , hv_0(jpi,jpj) ,                       & 
     298         &      e2_1u(jpi,jpj) , e1_2v (jpi,jpj) , e12t(jpi,jpj) , e12t_1(jpi,jpj) ,     & 
     299         &      e12u (jpi,jpj) , e12u_1(jpi,jpj) , e12v(jpi,jpj) , e12v_1(jpi,jpj) ,     & 
     300         &      e12f (jpi,jpj) , e12f_1(jpi,jpj) ,                                   STAT=ierr(6)  ) 
    299301         ! 
    300302      ALLOCATE( gdept_0(jpk) , gdepw_0(jpk) ,                                     & 
  • branches/2011/dev_r2739_LOCEAN8_ZTC/NEMOGCM/NEMO/OPA_SRC/DOM/domain.F90

    r2917 r2974  
    9090      END IF 
    9191      ! 
    92       ! - ML - Used in domvvl and traldf_(lab/bilap/iso) but could be usefull in many other modules 
     92      ! - ML - Used in dom_vvl_sf_nxt and lateral diffusion routines 
     93      !        but could be usefull in many other routines 
    9394      e12t  (:,:) = e1t(:,:) * e2t(:,:) 
    9495      e12u  (:,:) = e1u(:,:) * e2u(:,:) 
    95       e12u_1(:,:) = 0.5 / e12u(:,:) 
    96       e12v_1(:,:) = 0.5 / ( e1v(:,:) * e2v(:,:) ) 
    97       e12f_1(:,:) = 0.5 / ( e1f(:,:) * e2f(:,:) ) 
    98       e1ur  (:,:) = e2u(:,:) / e1u(:,:) 
    99       e2vr  (:,:) = e1v(:,:) / e2v(:,:) 
     96      e12v  (:,:) = e1v(:,:) * e2v(:,:) 
     97      e12f  (:,:) = e1f(:,:) * e2f(:,:) 
     98      e12t_1(:,:) = 1. / e12t(:,:) 
     99      e12u_1(:,:) = 1. / e12u(:,:) 
     100      e12v_1(:,:) = 1. / e12v(:,:) 
     101      e12f_1(:,:) = 1. / e12f(:,:) 
     102      e2_1u (:,:) = e2u(:,:) / e1u(:,:) 
     103      e1_2v (:,:) = e1v(:,:) / e2v(:,:) 
    100104      ! 
    101105      hu(:,:) = 0.e0                           ! Ocean depth at U- and V-points 
  • branches/2011/dev_r2739_LOCEAN8_ZTC/NEMOGCM/NEMO/OPA_SRC/DOM/domvvl.F90

    r2970 r2974  
    308308            DO jj = 1, jpjm1 
    309309               DO ji = 1, fs_jpim1   ! vector opt. 
    310                   un_td(ji,jj,jk) = ahe3 * umask(ji,jj,jk) * e1ur(ji,jj) * ( e3t_t_b(ji,jj,jk) - e3t_t_b(ji+1,jj  ,jk) ) 
    311                   vn_td(ji,jj,jk) = ahe3 * vmask(ji,jj,jk) * e2vr(ji,jj) * ( e3t_t_b(ji,jj,jk) - e3t_t_b(ji  ,jj+1,jk) ) 
     310                  un_td(ji,jj,jk) = ahe3 * umask(ji,jj,jk) * e2_1u(ji,jj) * ( e3t_t_b(ji,jj,jk) - e3t_t_b(ji+1,jj  ,jk) ) 
     311                  vn_td(ji,jj,jk) = ahe3 * vmask(ji,jj,jk) * e1_2v(ji,jj) * ( e3t_t_b(ji,jj,jk) - e3t_t_b(ji  ,jj+1,jk) ) 
    312312                  zwu(ji,jj) = zwu(ji,jj) + un_td(ji,jj,jk) 
    313313                  zwv(ji,jj) = zwv(ji,jj) + vn_td(ji,jj,jk) 
     
    332332            END DO 
    333333         END DO 
    334          ! d - thickness diffusion equivalent transport: boundary conditions 
     334         ! d - thickness diffusion transport: boundary conditions 
    335335         !     (stored for tracer advction and continuity equation) 
    336336         CALL lbc_lnk( un_td , 'U' , -1.) 
     
    557557            DO jj = 2, jpjm1 
    558558               DO ji = 1, fs_jpim1   ! vector opt. 
    559                   pe3_out(ji,jj,jk) = umask(ji,jj,jk) * e12u_1(ji,jj)                                          & 
    560                      &                  * (   e12t(ji  ,jj) * ( pe3_in(ji  ,jj,jk) - fse3t_0(ji  ,jj,jk) )     & 
    561                      &                      + e12t(ji+1,jj) * ( pe3_in(ji+1,jj,jk) - fse3t_0(ji+1,jj,jk) ) ) 
     559                  pe3_out(ji,jj,jk) = 0.5 * umask(ji,jj,jk) * e12u_1(ji,jj)                                      & 
     560                     &                    * (   e12t(ji  ,jj) * ( pe3_in(ji  ,jj,jk) - fse3t_0(ji  ,jj,jk) )     & 
     561                     &                        + e12t(ji+1,jj) * ( pe3_in(ji+1,jj,jk) - fse3t_0(ji+1,jj,jk) ) ) 
    562562               END DO 
    563563            END DO 
     
    573573            DO jj = 1, jpjm1 
    574574               DO ji = fs_2, fs_jpim1   ! vector opt. 
    575                   pe3_out(ji,jj,jk) = umask(ji,jj,jk) * e12v_1(ji,jj)                                          & 
    576                      &                  * (   e12t(ji,jj  ) * ( pe3_in(ji,jj  ,jk) - fse3t_0(ji,jj  ,jk) )     & 
    577                      &                      + e12t(ji,jj+1) * ( pe3_in(ji,jj+1,jk) - fse3t_0(ji,jj+1,jk) ) ) 
     575                  pe3_out(ji,jj,jk) = 0.5 * vmask(ji,jj,jk) * e12v_1(ji,jj)                                      & 
     576                     &                    * (   e12t(ji,jj  ) * ( pe3_in(ji,jj  ,jk) - fse3t_0(ji,jj  ,jk) )     & 
     577                     &                        + e12t(ji,jj+1) * ( pe3_in(ji,jj+1,jk) - fse3t_0(ji,jj+1,jk) ) ) 
    578578               END DO 
    579579            END DO 
     
    589589            DO jj = 1, jpjm1 
    590590               DO ji = 1, fs_jpim1   ! vector opt. 
    591                   pe3_out(ji,jj,jk) = umask(ji,jj,jk) * umask(ji,jj+1,jk) * e12f_1(ji,jj)                      & 
    592                      &                  * (   e12u(ji,jj  ) * ( pe3_in(ji,jj  ,jk) - fse3u_0(ji,jj  ,jk) )     & 
    593                      &                      + e12u(ji,jj+1) * ( pe3_in(ji,jj+1,jk) - fse3u_0(ji,jj+1,jk) ) ) 
     591                  pe3_out(ji,jj,jk) = 0.5 * umask(ji,jj,jk) * umask(ji,jj+1,jk) * e12f_1(ji,jj)                  & 
     592                     &                    * (   e12u(ji,jj  ) * ( pe3_in(ji,jj  ,jk) - fse3u_0(ji,jj  ,jk) )     & 
     593                     &                        + e12u(ji,jj+1) * ( pe3_in(ji,jj+1,jk) - fse3u_0(ji,jj+1,jk) ) ) 
    594594               END DO 
    595595            END DO 
Note: See TracChangeset for help on using the changeset viewer.