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/TRA – 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/TRA
Files:
5 edited

Legend:

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

    r2905 r2974  
    107107            DO jj = 1, jpjm1 
    108108               DO ji = 1, fs_jpim1   ! vector opt. 
    109                   zeeu(ji,jj) = e1ur(ji,jj) * fse3u_n(ji,jj,jk) * umask(ji,jj,jk) 
    110                   zeev(ji,jj) = e2vr(ji,jj) * fse3v_n(ji,jj,jk) * vmask(ji,jj,jk) 
     109                  zeeu(ji,jj) = e2_1u(ji,jj) * fse3u_n(ji,jj,jk) * umask(ji,jj,jk) 
     110                  zeev(ji,jj) = e1_2v(ji,jj) * fse3v_n(ji,jj,jk) * vmask(ji,jj,jk) 
    111111               END DO 
    112112            END DO 
     
    130130            DO jj = 2, jpjm1                 ! Second derivative (divergence) time the eddy diffusivity coefficient 
    131131               DO ji = fs_2, fs_jpim1   ! vector opt. 
    132                   zbtr = 1.0 / ( e1t(ji,jj) * e2t(ji,jj) * fse3t_n(ji,jj,jk) ) 
     132                  zbtr = 1.0 / ( e12t(ji,jj) * fse3t_n(ji,jj,jk) ) 
    133133                  zlt(ji,jj) = fsahtt(ji,jj,jk) * zbtr * (   ztu(ji,jj,jk) - ztu(ji-1,jj,jk)   & 
    134134                     &                                     + ztv(ji,jj,jk) - ztv(ji,jj-1,jk)   ) 
     
    148148               DO ji = fs_2, fs_jpim1   ! vector opt. 
    149149                  ! horizontal diffusive trends 
    150                   zbtr = 1.0 / ( e1t(ji,jj) * e2t(ji,jj) * fse3t_n(ji,jj,jk) ) 
     150                  zbtr = 1.0 / ( e12t(ji,jj) * fse3t_n(ji,jj,jk) ) 
    151151                  ztra = zbtr * (  ztu(ji,jj,jk) - ztu(ji-1,jj,jk) + ztv(ji,jj,jk) - ztv(ji,jj-1,jk)  ) 
    152152                  ! add it to the general tracer trends 
  • branches/2011/dev_r2739_LOCEAN8_ZTC/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_bilapg.F90

    r2715 r2974  
    207207            DO jj = 1, jpjm1 
    208208               DO ji = 1, jpim1 
    209                   zabe1 = e2u(ji,jj) * fse3u(ji,jj,jk) / e1u(ji,jj) 
    210                   zabe2 = e1v(ji,jj) * fse3v(ji,jj,jk) / e2v(ji,jj) 
     209                  zabe1 = e2_1u(ji,jj) * fse3u_n(ji,jj,jk) 
     210                  zabe2 = e1_2v(ji,jj) * fse3v_n(ji,jj,jk) 
    211211                   
    212212                  zmku = 1./MAX( tmask(ji+1,jj,jk  )+tmask(ji,jj,jk+1)   & 
     
    275275            DO jk = 2, jpkm1 
    276276               DO ji = 2, jpim1 
    277                   zcof0 = e1t(ji,jj) * e2t(ji,jj) / fse3w(ji,jj,jk)   & 
     277                  zcof0 = e12t(ji,jj) / fse3w_n(ji,jj,jk)   & 
    278278                     &     * (  wslpi(ji,jj,jk) * wslpi(ji,jj,jk)        & 
    279279                     &        + wslpj(ji,jj,jk) * wslpj(ji,jj,jk)  ) 
     
    306306                  DO ji = 2, jpim1 
    307307                     ! eddy coef. divided by the volume element 
    308                      zbtr = 1.0 / ( e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) ) 
     308                     zbtr = 1.0 / ( e12t(ji,jj) * fse3t_n(ji,jj,jk) ) 
    309309                     ! vertical divergence 
    310310                     ztav = fsahtt(ji,jj,jk) * ( zftw(ji,jk) - zftw(ji,jk+1) ) 
     
    318318                  DO ji = 2, jpim1 
    319319                     ! inverse of the volume element 
    320                      zbtr = 1.0 / ( e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) ) 
     320                     zbtr = 1.0 / ( e12t(ji,jj) * fse3t_n(ji,jj,jk) ) 
    321321                     ! vertical divergence 
    322322                     ztav = zftw(ji,jk) - zftw(ji,jk+1) 
  • branches/2011/dev_r2739_LOCEAN8_ZTC/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_iso.F90

    r2905 r2974  
    172172            DO jj = 1 , jpjm1 
    173173               DO ji = 1, fs_jpim1   ! vector opt. 
    174                   zabe1 = ( fsahtu(ji,jj,jk) + pahtb0 ) * e1ur(ji,jj) * fse3u_n(ji,jj,jk) 
    175                   zabe2 = ( fsahtv(ji,jj,jk) + pahtb0 ) * e2vr(ji,jj) * fse3v_n(ji,jj,jk) 
     174                  zabe1 = ( fsahtu(ji,jj,jk) + pahtb0 ) * e2_1u(ji,jj) * fse3u_n(ji,jj,jk) 
     175                  zabe2 = ( fsahtv(ji,jj,jk) + pahtb0 ) * e1_2v(ji,jj) * fse3v_n(ji,jj,jk) 
    176176                  ! 
    177177                  zmsku = 1. / MAX(  tmask(ji+1,jj,jk  ) + tmask(ji,jj,jk+1)   & 
     
    197197            DO jj = 2 , jpjm1 
    198198               DO ji = fs_2, fs_jpim1   ! vector opt. 
    199                   zbtr = 1.0 / ( e1t(ji,jj) * e2t(ji,jj) * fse3t_n(ji,jj,jk) ) 
     199                  zbtr = 1.0 / ( e12t(ji,jj) * fse3t_n(ji,jj,jk) ) 
    200200                  ztra = zbtr * ( zftu(ji,jj,jk) - zftu(ji-1,jj,jk) + zftv(ji,jj,jk) - zftv(ji,jj-1,jk)  ) 
    201201                  pta(ji,jj,jk,jn) = pta(ji,jj,jk,jn) + ztra 
     
    282282            DO jj = 2, jpjm1 
    283283               DO ji = fs_2, fs_jpim1   ! vector opt. 
    284                   zbtr = 1.0 / ( e1t(ji,jj) * e2t(ji,jj) * fse3t_n(ji,jj,jk) ) 
     284                  zbtr = 1.0 / ( e12t(ji,jj) * fse3t_n(ji,jj,jk) ) 
    285285                  ztra = (  ztfw(ji,jj,jk) - ztfw(ji,jj,jk+1)  ) * zbtr 
    286286                  pta(ji,jj,jk,jn) = pta(ji,jj,jk,jn) + ztra 
  • branches/2011/dev_r2739_LOCEAN8_ZTC/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_iso_grif.F90

    r2715 r2974  
    159159               DO jj = 1, jpjm1 
    160160                  DO ji = 1, fs_jpim1 
    161                      ze3wr = 1._wp / fse3w(ji+ip,jj,jk+kp) 
    162                      zbu   = 0.25_wp * e1u(ji,jj) * e2u(ji,jj) * fse3u(ji,jj,jk) 
     161                     ze3wr = 1._wp / fse3w_n(ji+ip,jj,jk+kp) 
     162                     zbu   = 0.25_wp * e12u(ji,jj) * fse3u_n(ji,jj,jk) 
    163163                     zah   = fsahtu(ji,jj,jk)                                  !  fsaht(ji+ip,jj,jk) 
    164164                     zslope_skew = triadi_g(ji+ip,jj,jk,1-ip,kp) 
    165                      zslope2 = zslope_skew - ( fsdept(ji+1,jj,jk) - fsdept(ji ,jj ,jk) ) * ze1ur * umask(ji,jj,jk+kp) 
     165                     zslope2 = zslope_skew - ( fsdept_n(ji+1,jj,jk) - fsdept_n(ji ,jj ,jk) ) * ze1ur * umask(ji,jj,jk+kp) 
    166166                     zslope2 = zslope2 *zslope2 
    167167                     ah_wslp2(ji+ip,jj,jk+kp) = ah_wslp2(ji+ip,jj,jk+kp)    & 
    168                         &                     + zah * ( zbu * ze3wr / ( e1t(ji+ip,jj) * e2t(ji+ip,jj) ) ) * zslope2 
     168                        &                     + zah * ( zbu * ze3wr / ( e12t(ji+ip,jj) ) ) * zslope2 
    169169                     IF( ln_traldf_gdia ) THEN 
    170170                        zaei_slp = fsaeiw(ji+ip,jj,jk) * zslope_skew        !fsaeit(ji+ip,jj,jk)*zslope_skew 
     
    182182               DO jj = 1, jpjm1 
    183183                  DO ji=1,fs_jpim1 
    184                      ze3wr = 1.0_wp / fse3w(ji,jj+jp,jk+kp) 
    185                      zbv   = 0.25_wp * e1v(ji,jj) * e2v(ji,jj) * fse3v(ji,jj,jk) 
     184                     ze3wr = 1.0_wp / fse3w_n(ji,jj+jp,jk+kp) 
     185                     zbv   = 0.25_wp * e12v(ji,jj) * fse3v_n(ji,jj,jk) 
    186186                     zah   = fsahtu(ji,jj,jk)                                       !fsaht(ji,jj+jp,jk) 
    187187                     zslope_skew = triadj_g(ji,jj+jp,jk,1-jp,kp) 
    188                      zslope2 = zslope_skew - ( fsdept(ji,jj+1,jk) - fsdept(ji,jj,jk) ) * ze2vr * vmask(ji,jj,jk+kp) 
     188                     zslope2 = zslope_skew - ( fsdept_n(ji,jj+1,jk) - fsdept_n(ji,jj,jk) ) * ze2vr * vmask(ji,jj,jk+kp) 
    189189                     zslope2 = zslope2 * zslope2 
    190190                     ah_wslp2(ji,jj+jp,jk+kp) = ah_wslp2(ji,jj+jp,jk+kp)   & 
    191                         &                     + zah * ( zbv * ze3wr / ( e1t(ji,jj+jp) * e2t(ji,jj+jp) ) ) * zslope2 
     191                        &                     + zah * ( zbv * ze3wr / ( e12t(ji,jj+jp) ) ) * zslope2 
    192192                     IF( ln_traldf_gdia ) THEN 
    193193                        zaei_slp = fsaeiw(ji,jj+jp,jk) * zslope_skew     !fsaeit(ji,jj+jp,jk)*zslope_skew 
     
    255255                        ze1ur = 1._wp / e1u(ji,jj) 
    256256                        zdxt = zdit(ji,jj,jk) * ze1ur 
    257                         ze3wr = 1._wp / fse3w(ji+ip,jj,jk+kp) 
     257                        ze3wr = 1._wp / fse3w_n(ji+ip,jj,jk+kp) 
    258258                        zdzt  = zdkt(ji+ip,jj,kp) * ze3wr 
    259259                        zslope_skew = triadi_g(ji+ip,jj,jk,1-ip,kp) 
    260260                        zslope_iso  = triadi(ji+ip,jj,jk,1-ip,kp) 
    261261 
    262                         zbu = 0.25_wp * e1u(ji,jj) * e2u(ji,jj) * fse3u(ji,jj,jk) 
     262                        zbu = 0.25_wp * e12u(ji,jj) * fse3u_n(ji,jj,jk) 
    263263                        zah = fsahtu(ji,jj,jk)   !*umask(ji,jj,jk+kp)         !fsaht(ji+ip,jj,jk)           ===>>  ???? 
    264264                        zah_slp  = zah * zslope_iso 
     
    277277                        ze2vr = 1._wp / e2v(ji,jj) 
    278278                        zdyt = zdjt(ji,jj,jk) * ze2vr 
    279                         ze3wr = 1._wp / fse3w(ji,jj+jp,jk+kp) 
     279                        ze3wr = 1._wp / fse3w_n(ji,jj+jp,jk+kp) 
    280280                        zdzt = zdkt(ji,jj+jp,kp) * ze3wr 
    281281                        zslope_skew = triadj_g(ji,jj+jp,jk,1-jp,kp) 
    282282                        zslope_iso  = triadj(ji,jj+jp,jk,1-jp,kp) 
    283                         zbv = 0.25_wp * e1v(ji,jj) * e2v(ji,jj) * fse3v(ji,jj,jk) 
     283                        zbv = 0.25_wp * e12v(ji,jj) * fse3v_n(ji,jj,jk) 
    284284                        zah = fsahtv(ji,jj,jk)        !*vmask(ji,jj,jk+kp)         !fsaht(ji,jj+jp,jk) 
    285285                        zah_slp = zah * zslope_iso 
     
    295295            DO jj = 2 , jpjm1 
    296296               DO ji = fs_2, fs_jpim1   ! vector opt. 
    297                   zbtr = 1._wp / ( e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) ) 
     297                  zbtr = 1._wp / ( e12t(ji,jj) * fse3t_n(ji,jj,jk) ) 
    298298                  pta(ji,jj,jk,jn) = pta(ji,jj,jk,jn) + zbtr * (   zftu(ji-1,jj,jk) - zftu(ji,jj,jk)   & 
    299299                     &                                           + zftv(ji,jj-1,jk) - zftv(ji,jj,jk)   ) 
     
    307307               DO ji = fs_2, fs_jpim1   ! vector opt. 
    308308                  pta(ji,jj,jk,jn) = pta(ji,jj,jk,jn) + (  ztfw(ji,jj,jk+1) - ztfw(ji,jj,jk)  )   & 
    309                      &                                / ( e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) ) 
     309                     &                                / ( e12t(ji,jj) * fse3t_n(ji,jj,jk) ) 
    310310               END DO 
    311311            END DO 
  • branches/2011/dev_r2739_LOCEAN8_ZTC/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_lap.F90

    r2905 r2974  
    9090            DO jj = 1, jpjm1 
    9191               DO ji = 1, fs_jpim1   ! vector opt. 
    92                   zabe1 = fsahtu(ji,jj,jk) * umask(ji,jj,jk) * e1ur(ji,jj) * fse3u_n(ji,jj,jk) 
    93                   zabe2 = fsahtv(ji,jj,jk) * vmask(ji,jj,jk) * e2vr(ji,jj) * fse3v_n(ji,jj,jk) 
     92                  zabe1 = fsahtu(ji,jj,jk) * umask(ji,jj,jk) * e2_1u(ji,jj) * fse3u_n(ji,jj,jk) 
     93                  zabe2 = fsahtv(ji,jj,jk) * vmask(ji,jj,jk) * e1_2v(ji,jj) * fse3v_n(ji,jj,jk) 
    9494                  ztu(ji,jj,jk) = zabe1 * ( ptb(ji+1,jj  ,jk,jn) - ptb(ji,jj,jk,jn) ) 
    9595                  ztv(ji,jj,jk) = zabe2 * ( ptb(ji  ,jj+1,jk,jn) - ptb(ji,jj,jk,jn) ) 
     
    103103                     ikv = mbkv(ji,jj) 
    104104                     IF( iku == jk ) THEN 
    105                         zabe1 = fsahtu(ji,jj,iku) * umask(ji,jj,iku) * e1ur(ji,jj) * fse3u_n(ji,jj,iku) 
     105                        zabe1 = fsahtu(ji,jj,iku) * umask(ji,jj,iku) * e2_1u(ji,jj) * fse3u_n(ji,jj,iku) 
    106106                        ztu(ji,jj,jk) = zabe1 * pgu(ji,jj,jn) 
    107107                     ENDIF 
    108108                     IF( ikv == jk ) THEN 
    109                         zabe2 = fsahtv(ji,jj,ikv) * vmask(ji,jj,ikv) * e2vr(ji,jj) * fse3v_n(ji,jj,ikv) 
     109                        zabe2 = fsahtv(ji,jj,ikv) * vmask(ji,jj,ikv) * e1_2v(ji,jj) * fse3v_n(ji,jj,ikv) 
    110110                        ztv(ji,jj,jk) = zabe2 * pgv(ji,jj,jn) 
    111111                     ENDIF 
     
    119119            DO jj = 2, jpjm1 
    120120               DO ji = fs_2, fs_jpim1   ! vector opt. 
    121                   zbtr = 1._wp / ( e1t(ji,jj) *e2t(ji,jj) * fse3t_n(ji,jj,jk) ) 
     121                  zbtr = 1._wp / ( e12t(ji,jj) * fse3t_n(ji,jj,jk) ) 
    122122                  ! horizontal diffusive trends added to the general tracer trends 
    123123                  pta(ji,jj,jk,jn) = pta(ji,jj,jk,jn) + zbtr * (  ztu(ji,jj,jk) - ztu(ji-1,jj,jk)   & 
Note: See TracChangeset for help on using the changeset viewer.