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 5845 for branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_triad.F90 – NEMO

Ignore:
Timestamp:
2015-10-31T08:40:45+01:00 (8 years ago)
Author:
gm
Message:

#1613: vvl by default: suppression of domzgr_substitute.h90

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_triad.F90

    r5836 r5845  
    3737 
    3838   !! * Substitutions 
    39 #  include "domzgr_substitute.h90" 
    4039#  include "vectopt_loop_substitute.h90" 
    4140   !!---------------------------------------------------------------------- 
     
    142141                  DO jj = 1, jpjm1 
    143142                     DO ji = 1, fs_jpim1 
    144                         ze3wr = 1._wp / fse3w(ji+ip,jj,jk+kp) 
    145                         zbu   = e1e2u(ji,jj) * fse3u(ji,jj,jk) 
     143                        ze3wr = 1._wp / e3w_n(ji+ip,jj,jk+kp) 
     144                        zbu   = e1e2u(ji,jj) * e3u_n(ji,jj,jk) 
    146145                        zah   = 0.25_wp * pahu(ji,jj,jk) 
    147146                        zslope_skew = triadi_g(ji+ip,jj,jk,1-ip,kp) 
    148147                        ! Subtract s-coordinate slope at t-points to give slope rel to s-surfaces (do this by *adding* gradient of depth) 
    149                         zslope2 = zslope_skew + ( fsdept(ji+1,jj,jk) - fsdept(ji,jj,jk) ) * r1_e1u(ji,jj) * umask(ji,jj,jk+kp) 
     148                        zslope2 = zslope_skew + ( gdept_n(ji+1,jj,jk) - gdept_n(ji,jj,jk) ) * r1_e1u(ji,jj) * umask(ji,jj,jk+kp) 
    150149                        zslope2 = zslope2 *zslope2 
    151150                        ah_wslp2(ji+ip,jj,jk+kp) = ah_wslp2(ji+ip,jj,jk+kp) + zah * zbu * ze3wr * r1_e1e2t(ji+ip,jj) * zslope2 
     
    166165                  DO jj = 1, jpjm1 
    167166                     DO ji = 1, fs_jpim1 
    168                         ze3wr = 1.0_wp / fse3w(ji,jj+jp,jk+kp) 
    169                         zbv   = e1e2v(ji,jj) * fse3v(ji,jj,jk) 
     167                        ze3wr = 1.0_wp / e3w_n(ji,jj+jp,jk+kp) 
     168                        zbv   = e1e2v(ji,jj) * e3v_n(ji,jj,jk) 
    170169                        zah   = 0.25_wp * pahv(ji,jj,jk) 
    171170                        zslope_skew = triadj_g(ji,jj+jp,jk,1-jp,kp) 
    172171                        ! Subtract s-coordinate slope at t-points to give slope rel to s surfaces 
    173172                        !    (do this by *adding* gradient of depth) 
    174                         zslope2 = zslope_skew + ( fsdept(ji,jj+1,jk) - fsdept(ji,jj,jk) ) * r1_e2v(ji,jj) * vmask(ji,jj,jk+kp) 
     173                        zslope2 = zslope_skew + ( gdept_n(ji,jj+1,jk) - gdept_n(ji,jj,jk) ) * r1_e2v(ji,jj) * vmask(ji,jj,jk+kp) 
    175174                        zslope2 = zslope2 * zslope2 
    176175                        ah_wslp2(ji,jj+jp,jk+kp) = ah_wslp2(ji,jj+jp,jk+kp) + zah * zbv * ze3wr * r1_e1e2t(ji,jj+jp) * zslope2 
     
    193192                     DO ji = 1, fs_jpim1 
    194193                        akz(ji,jj,jk) = 16._wp * ah_wslp2(ji,jj,jk)   & 
    195                            &          * (  akz(ji,jj,jk) + ah_wslp2(ji,jj,jk) / ( fse3w(ji,jj,jk) * fse3w(ji,jj,jk) )  ) 
     194                           &          * (  akz(ji,jj,jk) + ah_wslp2(ji,jj,jk) / ( e3w_n(ji,jj,jk) * e3w_n(ji,jj,jk) )  ) 
    196195                     END DO 
    197196                  END DO 
     
    201200                  DO jj = 1, jpjm1 
    202201                     DO ji = 1, fs_jpim1 
    203                         ze3w_2 = fse3w(ji,jj,jk) * fse3w(ji,jj,jk) 
     202                        ze3w_2 = e3w_n(ji,jj,jk) * e3w_n(ji,jj,jk) 
    204203                        zcoef0 = z2dt * (  akz(ji,jj,jk) + ah_wslp2(ji,jj,jk) / ze3w_2  ) 
    205204                        akz(ji,jj,jk) = MAX( zcoef0 - 0.5_wp , 0._wp ) * ze3w_2 * z1_2dt 
     
    274273                           ze1ur = r1_e1u(ji,jj) 
    275274                           zdxt  = zdit(ji,jj,jk) * ze1ur 
    276                            ze3wr = 1._wp / fse3w(ji+ip,jj,jk+kp) 
     275                           ze3wr = 1._wp / e3w_n(ji+ip,jj,jk+kp) 
    277276                           zdzt  = zdkt3d(ji+ip,jj,kp) * ze3wr 
    278277                           zslope_skew = triadi_g(ji+ip,jj,jk,1-ip,kp) 
    279278                           zslope_iso  = triadi  (ji+ip,jj,jk,1-ip,kp) 
    280279 
    281                            zbu = 0.25_wp * e1e2u(ji,jj) * fse3u(ji,jj,jk) 
     280                           zbu = 0.25_wp * e1e2u(ji,jj) * e3u_n(ji,jj,jk) 
    282281                           ! ln_botmix_triad is .T. don't mask zah for bottom half cells    !!gm ?????   ahu is masked.... 
    283282                           zah = pahu(ji,jj,jk) 
     
    297296                           ze2vr = r1_e2v(ji,jj) 
    298297                           zdyt  = zdjt(ji,jj,jk) * ze2vr 
    299                            ze3wr = 1._wp / fse3w(ji,jj+jp,jk+kp) 
     298                           ze3wr = 1._wp / e3w_n(ji,jj+jp,jk+kp) 
    300299                           zdzt  = zdkt3d(ji,jj+jp,kp) * ze3wr 
    301300                           zslope_skew = triadj_g(ji,jj+jp,jk,1-jp,kp) 
    302301                           zslope_iso  = triadj(ji,jj+jp,jk,1-jp,kp) 
    303                            zbv = 0.25_wp * e1e2v(ji,jj) * fse3v(ji,jj,jk) 
     302                           zbv = 0.25_wp * e1e2v(ji,jj) * e3v_n(ji,jj,jk) 
    304303                           ! ln_botmix_triad is .T. don't mask zah for bottom half cells    !!gm ?????  ahv is masked... 
    305304                           zah = pahv(ji,jj,jk) 
     
    321320                           ze1ur = r1_e1u(ji,jj) 
    322321                           zdxt  = zdit(ji,jj,jk) * ze1ur 
    323                            ze3wr = 1._wp / fse3w(ji+ip,jj,jk+kp) 
     322                           ze3wr = 1._wp / e3w_n(ji+ip,jj,jk+kp) 
    324323                           zdzt  = zdkt3d(ji+ip,jj,kp) * ze3wr 
    325324                           zslope_skew = triadi_g(ji+ip,jj,jk,1-ip,kp) 
    326325                           zslope_iso  = triadi(ji+ip,jj,jk,1-ip,kp) 
    327326 
    328                            zbu = 0.25_wp * e1e2u(ji,jj) * fse3u(ji,jj,jk) 
     327                           zbu = 0.25_wp * e1e2u(ji,jj) * e3u_n(ji,jj,jk) 
    329328                           ! ln_botmix_triad is .F. mask zah for bottom half cells 
    330329                           zah = pahu(ji,jj,jk) * umask(ji,jj,jk+kp)         ! pahu(ji+ip,jj,jk)   ===>>  ???? 
    331330                           zah_slp  = zah * zslope_iso 
    332                            IF( ln_ldfeiv )   zaei_slp = aeiu(ji,jj,jk) * zslope_skew        ! fsaeit(ji+ip,jj,jk)*zslope_skew 
     331                           IF( ln_ldfeiv )   zaei_slp = aeiu(ji,jj,jk) * zslope_skew        ! aeit(ji+ip,jj,jk)*zslope_skew 
    333332                           zftu(ji   ,jj,jk   ) = zftu(ji   ,jj,jk   ) - ( zah * zdxt + (zah_slp - zaei_slp) * zdzt ) * zbu * ze1ur 
    334333                           ztfw(ji+ip,jj,jk+kp) = ztfw(ji+ip,jj,jk+kp) - (zah_slp + zaei_slp) * zdxt * zbu * ze3wr 
     
    344343                           ze2vr = r1_e2v(ji,jj) 
    345344                           zdyt  = zdjt(ji,jj,jk) * ze2vr 
    346                            ze3wr = 1._wp / fse3w(ji,jj+jp,jk+kp) 
     345                           ze3wr = 1._wp / e3w_n(ji,jj+jp,jk+kp) 
    347346                           zdzt  = zdkt3d(ji,jj+jp,kp) * ze3wr 
    348347                           zslope_skew = triadj_g(ji,jj+jp,jk,1-jp,kp) 
    349348                           zslope_iso  = triadj(ji,jj+jp,jk,1-jp,kp) 
    350                            zbv = 0.25_wp * e1e2v(ji,jj) * fse3v(ji,jj,jk) 
     349                           zbv = 0.25_wp * e1e2v(ji,jj) * e3v_n(ji,jj,jk) 
    351350                           ! ln_botmix_triad is .F. mask zah for bottom half cells 
    352351                           zah = pahv(ji,jj,jk) * vmask(ji,jj,jk+kp)         ! pahv(ji,jj+jp,jk)  ???? 
    353352                           zah_slp = zah * zslope_iso 
    354                            IF( ln_ldfeiv )   zaei_slp = aeiv(ji,jj,jk) * zslope_skew        ! fsaeit(ji,jj+jp,jk)*zslope_skew 
     353                           IF( ln_ldfeiv )   zaei_slp = aeiv(ji,jj,jk) * zslope_skew        ! aeit(ji,jj+jp,jk)*zslope_skew 
    355354                           zftv(ji,jj,jk) = zftv(ji,jj,jk) - ( zah * zdyt + (zah_slp - zaei_slp) * zdzt ) * zbv * ze2vr 
    356355                           ztfw(ji,jj+jp,jk+kp) = ztfw(ji,jj+jp,jk+kp) - (zah_slp + zaei_slp) * zdyt * zbv * ze3wr 
     
    365364                  pta(ji,jj,jk,jn) = pta(ji,jj,jk,jn) + zsign * (  zftu(ji-1,jj,jk) - zftu(ji,jj,jk)       & 
    366365                     &                                           + zftv(ji,jj-1,jk) - zftv(ji,jj,jk)   )   & 
    367                      &                                        / (  e1e2t(ji,jj) * fse3t(ji,jj,jk)  ) 
     366                     &                                        / (  e1e2t(ji,jj) * e3t_n(ji,jj,jk)  ) 
    368367               END DO 
    369368            END DO 
     
    376375               DO jj = 1, jpjm1 
    377376                  DO ji = fs_2, fs_jpim1 
    378                      ztfw(ji,jj,jk) = ztfw(ji,jj,jk) - e1e2t(ji,jj) / fse3w(ji,jj,jk) * tmask(ji,jj,jk)   & 
     377                     ztfw(ji,jj,jk) = ztfw(ji,jj,jk) - e1e2t(ji,jj) / e3w_n(ji,jj,jk) * tmask(ji,jj,jk)   & 
    379378                        &                            * ( ah_wslp2(ji,jj,jk) - akz(ji,jj,jk) )             & 
    380379                        &                            * ( ptb(ji,jj,jk-1,jn) - ptb(ji,jj,jk,jn) ) 
     
    388387                  DO jj = 1, jpjm1 
    389388                     DO ji = fs_2, fs_jpim1 
    390                         ztfw(ji,jj,jk) = ztfw(ji,jj,jk) - e1e2t(ji,jj) / fse3w(ji,jj,jk) * tmask(ji,jj,jk)             & 
     389                        ztfw(ji,jj,jk) = ztfw(ji,jj,jk) - e1e2t(ji,jj) / e3w_n(ji,jj,jk) * tmask(ji,jj,jk)             & 
    391390                           &                            * ah_wslp2(ji,jj,jk) * ( ptb(ji,jj,jk-1,jn) - ptb(ji,jj,jk,jn) ) 
    392391                     END DO 
     
    397396                  DO jj = 1, jpjm1 
    398397                     DO ji = fs_2, fs_jpim1 
    399                         ztfw(ji,jj,jk) = ztfw(ji,jj,jk) - e1e2t(ji,jj) / fse3w(ji,jj,jk) * tmask(ji,jj,jk)                      & 
     398                        ztfw(ji,jj,jk) = ztfw(ji,jj,jk) - e1e2t(ji,jj) / e3w_n(ji,jj,jk) * tmask(ji,jj,jk)                      & 
    400399                           &                            * (  ah_wslp2(ji,jj,jk) * ( ptb (ji,jj,jk-1,jn) - ptb (ji,jj,jk,jn) )   & 
    401400                           &                               + akz     (ji,jj,jk) * ( ptbb(ji,jj,jk-1,jn) - ptbb(ji,jj,jk,jn) )   ) 
     
    410409               DO ji = fs_2, fs_jpim1  ! vector opt. 
    411410                  pta(ji,jj,jk,jn) = pta(ji,jj,jk,jn) + zsign * (  ztfw(ji,jj,jk+1) - ztfw(ji,jj,jk)  )   & 
    412                      &                                        / ( e1e2t(ji,jj) * fse3t(ji,jj,jk) ) 
     411                     &                                        / ( e1e2t(ji,jj) * e3t_n(ji,jj,jk) ) 
    413412               END DO 
    414413            END DO 
Note: See TracChangeset for help on using the changeset viewer.