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 10954 for NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/TRA/traldf_triad.F90 – NEMO

Ignore:
Timestamp:
2019-05-09T18:12:29+02:00 (5 years ago)
Author:
acc
Message:

2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps : Convert TRA modules and all knock on effects of these conversions. SETTE tested

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/TRA/traldf_triad.F90

    r10922 r10954  
    143143                  DO jj = 1, jpjm1 
    144144                     DO ji = 1, fs_jpim1 
    145                         ze3wr = 1._wp / e3w_n(ji+ip,jj,jk+kp) 
    146                         zbu   = e1e2u(ji,jj) * e3u_n(ji,jj,jk) 
     145                        ze3wr = 1._wp / e3w(ji+ip,jj,jk+kp,Kmm) 
     146                        zbu   = e1e2u(ji,jj) * e3u(ji,jj,jk,Kmm) 
    147147                        zah   = 0.25_wp * pahu(ji,jj,jk) 
    148148                        zslope_skew = triadi_g(ji+ip,jj,jk,1-ip,kp) 
    149149                        ! Subtract s-coordinate slope at t-points to give slope rel to s-surfaces (do this by *adding* gradient of depth) 
    150                         zslope2 = zslope_skew + ( gdept_n(ji+1,jj,jk) - gdept_n(ji,jj,jk) ) * r1_e1u(ji,jj) * umask(ji,jj,jk+kp) 
     150                        zslope2 = zslope_skew + ( gdept(ji+1,jj,jk,Kmm) - gdept(ji,jj,jk,Kmm) ) * r1_e1u(ji,jj) * umask(ji,jj,jk+kp) 
    151151                        zslope2 = zslope2 *zslope2 
    152152                        ah_wslp2(ji+ip,jj,jk+kp) = ah_wslp2(ji+ip,jj,jk+kp) + zah * zbu * ze3wr * r1_e1e2t(ji+ip,jj) * zslope2 
     
    167167                  DO jj = 1, jpjm1 
    168168                     DO ji = 1, fs_jpim1 
    169                         ze3wr = 1.0_wp / e3w_n(ji,jj+jp,jk+kp) 
    170                         zbv   = e1e2v(ji,jj) * e3v_n(ji,jj,jk) 
     169                        ze3wr = 1.0_wp / e3w(ji,jj+jp,jk+kp,Kmm) 
     170                        zbv   = e1e2v(ji,jj) * e3v(ji,jj,jk,Kmm) 
    171171                        zah   = 0.25_wp * pahv(ji,jj,jk) 
    172172                        zslope_skew = triadj_g(ji,jj+jp,jk,1-jp,kp) 
    173173                        ! Subtract s-coordinate slope at t-points to give slope rel to s surfaces 
    174174                        !    (do this by *adding* gradient of depth) 
    175                         zslope2 = zslope_skew + ( gdept_n(ji,jj+1,jk) - gdept_n(ji,jj,jk) ) * r1_e2v(ji,jj) * vmask(ji,jj,jk+kp) 
     175                        zslope2 = zslope_skew + ( gdept(ji,jj+1,jk,Kmm) - gdept(ji,jj,jk,Kmm) ) * r1_e2v(ji,jj) * vmask(ji,jj,jk+kp) 
    176176                        zslope2 = zslope2 * zslope2 
    177177                        ah_wslp2(ji,jj+jp,jk+kp) = ah_wslp2(ji,jj+jp,jk+kp) + zah * zbv * ze3wr * r1_e1e2t(ji,jj+jp) * zslope2 
     
    194194                     DO ji = 1, fs_jpim1 
    195195                        akz(ji,jj,jk) = 16._wp * ah_wslp2(ji,jj,jk)   & 
    196                            &          * (  akz(ji,jj,jk) + ah_wslp2(ji,jj,jk) / ( e3w_n(ji,jj,jk) * e3w_n(ji,jj,jk) )  ) 
     196                           &          * (  akz(ji,jj,jk) + ah_wslp2(ji,jj,jk) / ( e3w(ji,jj,jk,Kmm) * e3w(ji,jj,jk,Kmm) )  ) 
    197197                     END DO 
    198198                  END DO 
     
    202202                  DO jj = 1, jpjm1 
    203203                     DO ji = 1, fs_jpim1 
    204                         ze3w_2 = e3w_n(ji,jj,jk) * e3w_n(ji,jj,jk) 
     204                        ze3w_2 = e3w(ji,jj,jk,Kmm) * e3w(ji,jj,jk,Kmm) 
    205205                        zcoef0 = z2dt * (  akz(ji,jj,jk) + ah_wslp2(ji,jj,jk) / ze3w_2  ) 
    206206                        akz(ji,jj,jk) = MAX( zcoef0 - 0.5_wp , 0._wp ) * ze3w_2 * z1_2dt 
     
    274274                           ze1ur = r1_e1u(ji,jj) 
    275275                           zdxt  = zdit(ji,jj,jk) * ze1ur 
    276                            ze3wr = 1._wp / e3w_n(ji+ip,jj,jk+kp) 
     276                           ze3wr = 1._wp / e3w(ji+ip,jj,jk+kp,Kmm) 
    277277                           zdzt  = zdkt3d(ji+ip,jj,kp) * ze3wr 
    278278                           zslope_skew = triadi_g(ji+ip,jj,jk,1-ip,kp) 
    279279                           zslope_iso  = triadi  (ji+ip,jj,jk,1-ip,kp) 
    280280                           ! 
    281                            zbu = 0.25_wp * e1e2u(ji,jj) * e3u_n(ji,jj,jk) 
     281                           zbu = 0.25_wp * e1e2u(ji,jj) * e3u(ji,jj,jk,Kmm) 
    282282                           ! ln_botmix_triad is .T. don't mask zah for bottom half cells    !!gm ?????   ahu is masked.... 
    283283                           zah = pahu(ji,jj,jk) 
     
    297297                           ze2vr = r1_e2v(ji,jj) 
    298298                           zdyt  = zdjt(ji,jj,jk) * ze2vr 
    299                            ze3wr = 1._wp / e3w_n(ji,jj+jp,jk+kp) 
     299                           ze3wr = 1._wp / e3w(ji,jj+jp,jk+kp,Kmm) 
    300300                           zdzt  = zdkt3d(ji,jj+jp,kp) * ze3wr 
    301301                           zslope_skew = triadj_g(ji,jj+jp,jk,1-jp,kp) 
    302302                           zslope_iso  = triadj(ji,jj+jp,jk,1-jp,kp) 
    303                            zbv = 0.25_wp * e1e2v(ji,jj) * e3v_n(ji,jj,jk) 
     303                           zbv = 0.25_wp * e1e2v(ji,jj) * e3v(ji,jj,jk,Kmm) 
    304304                           ! ln_botmix_triad is .T. don't mask zah for bottom half cells    !!gm ?????  ahv is masked... 
    305305                           zah = pahv(ji,jj,jk) 
     
    321321                           ze1ur = r1_e1u(ji,jj) 
    322322                           zdxt  = zdit(ji,jj,jk) * ze1ur 
    323                            ze3wr = 1._wp / e3w_n(ji+ip,jj,jk+kp) 
     323                           ze3wr = 1._wp / e3w(ji+ip,jj,jk+kp,Kmm) 
    324324                           zdzt  = zdkt3d(ji+ip,jj,kp) * ze3wr 
    325325                           zslope_skew = triadi_g(ji+ip,jj,jk,1-ip,kp) 
    326326                           zslope_iso  = triadi(ji+ip,jj,jk,1-ip,kp) 
    327327                           ! 
    328                            zbu = 0.25_wp * e1e2u(ji,jj) * e3u_n(ji,jj,jk) 
     328                           zbu = 0.25_wp * e1e2u(ji,jj) * e3u(ji,jj,jk,Kmm) 
    329329                           ! ln_botmix_triad is .F. mask zah for bottom half cells 
    330330                           zah = pahu(ji,jj,jk) * umask(ji,jj,jk+kp)         ! pahu(ji+ip,jj,jk)   ===>>  ???? 
     
    344344                           ze2vr = r1_e2v(ji,jj) 
    345345                           zdyt  = zdjt(ji,jj,jk) * ze2vr 
    346                            ze3wr = 1._wp / e3w_n(ji,jj+jp,jk+kp) 
     346                           ze3wr = 1._wp / e3w(ji,jj+jp,jk+kp,Kmm) 
    347347                           zdzt  = zdkt3d(ji,jj+jp,kp) * ze3wr 
    348348                           zslope_skew = triadj_g(ji,jj+jp,jk,1-jp,kp) 
    349349                           zslope_iso  = triadj(ji,jj+jp,jk,1-jp,kp) 
    350                            zbv = 0.25_wp * e1e2v(ji,jj) * e3v_n(ji,jj,jk) 
     350                           zbv = 0.25_wp * e1e2v(ji,jj) * e3v(ji,jj,jk,Kmm) 
    351351                           ! ln_botmix_triad is .F. mask zah for bottom half cells 
    352352                           zah = pahv(ji,jj,jk) * vmask(ji,jj,jk+kp)         ! pahv(ji,jj+jp,jk)  ???? 
     
    365365                  pta(ji,jj,jk,jn) = pta(ji,jj,jk,jn) + zsign * (  zftu(ji-1,jj,jk) - zftu(ji,jj,jk)       & 
    366366                     &                                           + zftv(ji,jj-1,jk) - zftv(ji,jj,jk)   )   & 
    367                      &                                        / (  e1e2t(ji,jj) * e3t_n(ji,jj,jk)  ) 
     367                     &                                        / (  e1e2t(ji,jj) * e3t(ji,jj,jk,Kmm)  ) 
    368368               END DO 
    369369            END DO 
     
    376376               DO jj = 1, jpjm1 
    377377                  DO ji = fs_2, fs_jpim1 
    378                      ztfw(ji,jj,jk) = ztfw(ji,jj,jk) - e1e2t(ji,jj) / e3w_n(ji,jj,jk) * tmask(ji,jj,jk)   & 
     378                     ztfw(ji,jj,jk) = ztfw(ji,jj,jk) - e1e2t(ji,jj) / e3w(ji,jj,jk,Kmm) * tmask(ji,jj,jk)   & 
    379379                        &                            * ( ah_wslp2(ji,jj,jk) - akz(ji,jj,jk) )             & 
    380380                        &                            * ( ptb(ji,jj,jk-1,jn) - ptb(ji,jj,jk,jn) ) 
     
    388388                  DO jj = 1, jpjm1 
    389389                     DO ji = fs_2, fs_jpim1 
    390                         ztfw(ji,jj,jk) = ztfw(ji,jj,jk) - e1e2t(ji,jj) / e3w_n(ji,jj,jk) * tmask(ji,jj,jk)             & 
     390                        ztfw(ji,jj,jk) = ztfw(ji,jj,jk) - e1e2t(ji,jj) / e3w(ji,jj,jk,Kmm) * tmask(ji,jj,jk)             & 
    391391                           &                            * ah_wslp2(ji,jj,jk) * ( ptb(ji,jj,jk-1,jn) - ptb(ji,jj,jk,jn) ) 
    392392                     END DO 
     
    397397                  DO jj = 1, jpjm1 
    398398                     DO ji = fs_2, fs_jpim1 
    399                         ztfw(ji,jj,jk) = ztfw(ji,jj,jk) - e1e2t(ji,jj) / e3w_n(ji,jj,jk) * tmask(ji,jj,jk)                      & 
     399                        ztfw(ji,jj,jk) = ztfw(ji,jj,jk) - e1e2t(ji,jj) / e3w(ji,jj,jk,Kmm) * tmask(ji,jj,jk)                      & 
    400400                           &                            * (  ah_wslp2(ji,jj,jk) * ( ptb (ji,jj,jk-1,jn) - ptb (ji,jj,jk,jn) )   & 
    401401                           &                               + akz     (ji,jj,jk) * ( ptbb(ji,jj,jk-1,jn) - ptbb(ji,jj,jk,jn) )   ) 
     
    410410               DO ji = fs_2, fs_jpim1  ! vector opt. 
    411411                  pta(ji,jj,jk,jn) = pta(ji,jj,jk,jn) + zsign * (  ztfw(ji,jj,jk+1) - ztfw(ji,jj,jk)  )   & 
    412                      &                                        / ( e1e2t(ji,jj) * e3t_n(ji,jj,jk) ) 
     412                     &                                        / ( e1e2t(ji,jj) * e3t(ji,jj,jk,Kmm) ) 
    413413               END DO 
    414414            END DO 
Note: See TracChangeset for help on using the changeset viewer.