Changeset 14757 for NEMO/branches/2021/dev_r14393_HPC-03_Mele_Comm_Cleanup/src/OCE/TRA/traldf_iso.F90
- Timestamp:
- 2021-04-27T17:33:44+02:00 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2021/dev_r14393_HPC-03_Mele_Comm_Cleanup/src/OCE/TRA/traldf_iso.F90
r14667 r14757 147 147 ENDIF 148 148 ! 149 ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 1, jpk )150 149 DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 1, jpk ) 151 150 akz (ji,jj,jk) = 0._wp … … 173 172 IF( kpass == 1 ) THEN !== first pass only ==! 174 173 ! 175 ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 )176 174 DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 177 175 ! … … 196 194 ! 197 195 IF( ln_traldf_msc ) THEN ! stabilizing vertical diffusivity coefficient 198 ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 )199 196 DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 200 197 ! round brackets added to fix the order of floating point operations … … 210 207 ! 211 208 IF( ln_traldf_blp ) THEN ! bilaplacian operator 212 ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 )213 209 DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 214 210 akz(ji,jj,jk) = 16._wp & … … 219 215 END_3D 220 216 ELSEIF( ln_traldf_lap ) THEN ! laplacian operator 221 ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 )222 217 DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 223 218 ze3w_2 = e3w(ji,jj,jk,Kmm) * e3w(ji,jj,jk,Kmm) … … 228 223 ! 229 224 ELSE ! 33 flux set to zero with akz=ah_wslp2 ==>> computed in full implicit 230 ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 1, jpk )231 225 DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 1, jpk ) 232 226 akz(ji,jj,jk) = ah_wslp2(ji,jj,jk) … … 248 242 249 243 ! Horizontal tracer gradient 250 ! [comm_cleanup] ! DO_3D( 1, 0, 1, 0, 1, jpkm1 )251 244 DO_3D( nn_hls, nn_hls-1, nn_hls, nn_hls-1, 1, jpkm1 ) 252 245 zdit(ji,jj,jk) = ( pt(ji+1,jj ,jk,jn) - pt(ji,jj,jk,jn) ) * umask(ji,jj,jk) … … 254 247 END_3D 255 248 IF( ln_zps ) THEN ! botton and surface ocean correction of the horizontal gradient 256 ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 ) ! bottom correction (partial bottom cell)257 249 DO_2D( nn_hls, nn_hls-1, nn_hls, nn_hls-1 ) ! bottom correction (partial bottom cell) 258 250 zdit(ji,jj,mbku(ji,jj)) = pgu(ji,jj,jn) … … 260 252 END_2D 261 253 IF( ln_isfcav ) THEN ! first wet level beneath a cavity 262 ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 )263 254 DO_2D( nn_hls, nn_hls-1, nn_hls, nn_hls-1 ) 264 255 IF( miku(ji,jj) > 1 ) zdit(ji,jj,miku(ji,jj)) = pgui(ji,jj,jn) … … 274 265 DO jk = 1, jpkm1 ! Horizontal slab 275 266 ! 276 ! [comm_cleanup] ! DO_2D( 1, 1, 1, 1 )277 267 DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 278 268 ! !== Vertical tracer gradient … … 284 274 END_2D 285 275 ! 286 ! [comm_cleanup] ! DO_2D( 1, 0, 1, 0 ) !== Horizontal fluxes287 276 DO_2D( nn_hls, nn_hls-1, nn_hls, nn_hls-1 ) !== Horizontal fluxes 288 277 zabe1 = pahu(ji,jj,jk) * e2_e1u(ji,jj) * e3u(ji,jj,jk,Kmm) … … 314 303 END_2D 315 304 ! 316 ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) !== horizontal divergence and add to pta317 305 DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) !== horizontal divergence and add to pta 318 306 ! round brackets added to fix the order of floating point operations … … 336 324 ztfw(:,:, 1 ) = 0._wp ; ztfw(:,:,jpk) = 0._wp 337 325 338 ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 ) ! interior (2=<jk=<jpk-1)339 326 DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) ! interior (2=<jk=<jpk-1) 340 327 ! … … 367 354 ! !== add the vertical 33 flux ==! 368 355 IF( ln_traldf_lap ) THEN ! laplacian case: eddy coef = ah_wslp2 - akz 369 ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 )370 356 DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 371 357 ztfw(ji,jj,jk) = ztfw(ji,jj,jk) + e1e2t(ji,jj) / e3w(ji,jj,jk,Kmm) * wmask(ji,jj,jk) & … … 377 363 SELECT CASE( kpass ) 378 364 CASE( 1 ) ! 1st pass : eddy coef = ah_wslp2 379 ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 )380 365 DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 381 366 ztfw(ji,jj,jk) = & … … 384 369 END_3D 385 370 CASE( 2 ) ! 2nd pass : eddy flux = ah_wslp2 and akz applied on pt and pt2 gradients, resp. 386 ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 )387 371 DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 388 372 ztfw(ji,jj,jk) = ztfw(ji,jj,jk) + e1e2t(ji,jj) / e3w(ji,jj,jk,Kmm) * wmask(ji,jj,jk) & … … 393 377 ENDIF 394 378 ! 395 ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 1, jpkm1 ) !== Divergence of vertical fluxes added to pta ==!396 379 DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 1, jpkm1 ) !== Divergence of vertical fluxes added to pta ==! 397 380 pt_rhs(ji,jj,jk,jn) = pt_rhs(ji,jj,jk,jn) + zsign * ( ztfw (ji,jj,jk) - ztfw(ji,jj,jk+1) ) * r1_e1e2t(ji,jj) &
Note: See TracChangeset
for help on using the changeset viewer.