- Timestamp:
- 2020-11-27T17:26:33+01:00 (4 years ago)
- Location:
- NEMO/branches/2020/tickets_icb_1900
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/tickets_icb_1900
- Property svn:externals
-
NEMO/branches/2020/tickets_icb_1900/src/OCE/TRA/traldf_triad.F90
r13237 r13899 137 137 DO ip = 0, 1 ! i-k triads 138 138 DO kp = 0, 1 139 DO_3D _10_10(1, jpkm1 )139 DO_3D( 1, 0, 1, 0, 1, jpkm1 ) 140 140 ze3wr = 1._wp / e3w(ji+ip,jj,jk+kp,Kmm) 141 141 zbu = e1e2u(ji,jj) * e3u(ji,jj,jk,Kmm) … … 157 157 DO jp = 0, 1 ! j-k triads 158 158 DO kp = 0, 1 159 DO_3D _10_10(1, jpkm1 )159 DO_3D( 1, 0, 1, 0, 1, jpkm1 ) 160 160 ze3wr = 1.0_wp / e3w(ji,jj+jp,jk+kp,Kmm) 161 161 zbv = e1e2v(ji,jj) * e3v(ji,jj,jk,Kmm) … … 179 179 ! 180 180 IF( ln_traldf_blp ) THEN ! bilaplacian operator 181 DO_3D _10_10(2, jpkm1 )181 DO_3D( 1, 0, 1, 0, 2, jpkm1 ) 182 182 akz(ji,jj,jk) = 16._wp & 183 183 & * ah_wslp2 (ji,jj,jk) & … … 187 187 END_3D 188 188 ELSEIF( ln_traldf_lap ) THEN ! laplacian operator 189 DO_3D _10_10(2, jpkm1 )189 DO_3D( 1, 0, 1, 0, 2, jpkm1 ) 190 190 ze3w_2 = e3w(ji,jj,jk,Kmm) * e3w(ji,jj,jk,Kmm) 191 191 zcoef0 = rDt * ( akz(ji,jj,jk) + ah_wslp2(ji,jj,jk) / ze3w_2 ) … … 211 211 zftv(:,:,:) = 0._wp 212 212 ! 213 DO_3D _10_10( 1, jpkm1 )213 DO_3D( 1, 0, 1, 0, 1, jpkm1 ) !== before lateral T & S gradients at T-level jk ==! 214 214 zdit(ji,jj,jk) = ( pt(ji+1,jj ,jk,jn) - pt(ji,jj,jk,jn) ) * umask(ji,jj,jk) 215 215 zdjt(ji,jj,jk) = ( pt(ji ,jj+1,jk,jn) - pt(ji,jj,jk,jn) ) * vmask(ji,jj,jk) 216 216 END_3D 217 217 IF( ln_zps .AND. l_grad_zps ) THEN ! partial steps: correction at top/bottom ocean level 218 DO_2D _10_10218 DO_2D( 1, 0, 1, 0 ) ! bottom level 219 219 zdit(ji,jj,mbku(ji,jj)) = pgu(ji,jj,jn) 220 220 zdjt(ji,jj,mbkv(ji,jj)) = pgv(ji,jj,jn) 221 221 END_2D 222 222 IF( ln_isfcav ) THEN ! top level (ocean cavities only) 223 DO_2D _10_10223 DO_2D( 1, 0, 1, 0 ) 224 224 IF( miku(ji,jj) > 1 ) zdit(ji,jj,miku(ji,jj) ) = pgui(ji,jj,jn) 225 225 IF( mikv(ji,jj) > 1 ) zdjt(ji,jj,mikv(ji,jj) ) = pgvi(ji,jj,jn) … … 246 246 DO ip = 0, 1 !== Horizontal & vertical fluxes 247 247 DO kp = 0, 1 248 DO_2D _10_10248 DO_2D( 1, 0, 1, 0 ) 249 249 ze1ur = r1_e1u(ji,jj) 250 250 zdxt = zdit(ji,jj,jk) * ze1ur … … 267 267 DO jp = 0, 1 268 268 DO kp = 0, 1 269 DO_2D _10_10269 DO_2D( 1, 0, 1, 0 ) 270 270 ze2vr = r1_e2v(ji,jj) 271 271 zdyt = zdjt(ji,jj,jk) * ze2vr … … 289 289 DO ip = 0, 1 !== Horizontal & vertical fluxes 290 290 DO kp = 0, 1 291 DO_2D _10_10291 DO_2D( 1, 0, 1, 0 ) 292 292 ze1ur = r1_e1u(ji,jj) 293 293 zdxt = zdit(ji,jj,jk) * ze1ur … … 310 310 DO jp = 0, 1 311 311 DO kp = 0, 1 312 DO_2D _10_10312 DO_2D( 1, 0, 1, 0 ) 313 313 ze2vr = r1_e2v(ji,jj) 314 314 zdyt = zdjt(ji,jj,jk) * ze2vr … … 329 329 ENDIF 330 330 ! !== horizontal divergence and add to the general trend ==! 331 DO_2D _00_00331 DO_2D( 0, 0, 0, 0 ) 332 332 pt_rhs(ji,jj,jk,jn) = pt_rhs(ji,jj,jk,jn) & 333 333 & + zsign * ( zftu(ji-1,jj ,jk) - zftu(ji,jj,jk) & … … 340 340 ! !== add the vertical 33 flux ==! 341 341 IF( ln_traldf_lap ) THEN ! laplacian case: eddy coef = ah_wslp2 - akz 342 DO_3D _10_00(2, jpkm1 )342 DO_3D( 1, 0, 0, 0, 2, jpkm1 ) 343 343 ztfw(ji,jj,jk) = ztfw(ji,jj,jk) - e1e2t(ji,jj) / e3w(ji,jj,jk,Kmm) * tmask(ji,jj,jk) & 344 344 & * ( ah_wslp2(ji,jj,jk) - akz(ji,jj,jk) ) & … … 348 348 SELECT CASE( kpass ) 349 349 CASE( 1 ) ! 1st pass : eddy coef = ah_wslp2 350 DO_3D _10_00(2, jpkm1 )350 DO_3D( 1, 0, 0, 0, 2, jpkm1 ) 351 351 ztfw(ji,jj,jk) = ztfw(ji,jj,jk) - e1e2t(ji,jj) / e3w(ji,jj,jk,Kmm) * tmask(ji,jj,jk) & 352 352 & * ah_wslp2(ji,jj,jk) * ( pt(ji,jj,jk-1,jn) - pt(ji,jj,jk,jn) ) 353 353 END_3D 354 354 CASE( 2 ) ! 2nd pass : eddy flux = ah_wslp2 and akz applied on pt and pt2 gradients, resp. 355 DO_3D _10_00(2, jpkm1 )355 DO_3D( 1, 0, 0, 0, 2, jpkm1 ) 356 356 ztfw(ji,jj,jk) = ztfw(ji,jj,jk) - e1e2t(ji,jj) / e3w(ji,jj,jk,Kmm) * tmask(ji,jj,jk) & 357 357 & * ( ah_wslp2(ji,jj,jk) * ( pt (ji,jj,jk-1,jn) - pt (ji,jj,jk,jn) ) & … … 361 361 ENDIF 362 362 ! 363 DO_3D _00_00( 1, jpkm1 )363 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) !== Divergence of vertical fluxes added to pta ==! 364 364 pt_rhs(ji,jj,jk,jn) = pt_rhs(ji,jj,jk,jn) & 365 365 & + zsign * ( ztfw(ji,jj,jk+1) - ztfw(ji,jj,jk) ) &
Note: See TracChangeset
for help on using the changeset viewer.