Changeset 14667 for NEMO/branches/2021/dev_r14393_HPC-03_Mele_Comm_Cleanup/src/OCE/TRA/traldf_iso.F90
- Timestamp:
- 2021-04-01T10:43:32+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
r14538 r14667 180 180 zmskv = wmask(ji,jj,jk) / MAX( vmask(ji,jj ,jk-1) + vmask(ji,jj-1,jk) & 181 181 & + vmask(ji,jj-1,jk-1) + vmask(ji,jj ,jk) , 1._wp ) 182 ! 183 zahu_w = ( pahu(ji ,jj,jk-1) + pahu(ji-1,jj,jk) & 184 & + pahu(ji-1,jj,jk-1) + pahu(ji ,jj,jk) ) * zmsku 185 zahv_w = ( pahv(ji,jj ,jk-1) + pahv(ji,jj-1,jk) & 186 & + pahv(ji,jj-1,jk-1) + pahv(ji,jj ,jk) ) * zmskv 182 ! round brackets added to fix the order of floating point operations 183 ! needed to ensure halo 1 - halo 2 compatibility 184 zahu_w = ( ( pahu(ji ,jj,jk-1) + pahu(ji-1,jj,jk) & 185 & ) & ! bracket for halo 1 - halo 2 compatibility 186 & + ( pahu(ji-1,jj,jk-1) + pahu(ji ,jj,jk) & 187 & ) ) * zmsku ! bracket for halo 1 - halo 2 compatibility 188 zahv_w = ( ( pahv(ji,jj ,jk-1) + pahv(ji,jj-1,jk) & 189 & ) & ! bracket for halo 1 - halo 2 compatibility 190 & + ( pahv(ji,jj-1,jk-1) + pahv(ji,jj ,jk) & 191 & ) ) * zmskv ! bracket for halo 1 - halo 2 compatibility 187 192 ! 188 193 ah_wslp2(ji,jj,jk) = zahu_w * wslpi(ji,jj,jk) * wslpi(ji,jj,jk) & … … 193 198 ! [comm_cleanup] ! DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 194 199 DO_3D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1, 2, jpkm1 ) 200 ! round brackets added to fix the order of floating point operations 201 ! needed to ensure halo 1 - halo 2 compatibility 195 202 akz(ji,jj,jk) = 0.25_wp * ( & 196 & 203 & ( ( pahu(ji ,jj,jk) + pahu(ji ,jj,jk-1) ) / ( e1u(ji ,jj) * e1u(ji ,jj) ) & 197 204 & + ( pahu(ji-1,jj,jk) + pahu(ji-1,jj,jk-1) ) / ( e1u(ji-1,jj) * e1u(ji-1,jj) ) & 198 & + ( pahv(ji,jj ,jk) + pahv(ji,jj ,jk-1) ) / ( e2v(ji,jj ) * e2v(ji,jj ) ) & 199 & + ( pahv(ji,jj-1,jk) + pahv(ji,jj-1,jk-1) ) / ( e2v(ji,jj-1) * e2v(ji,jj-1) ) ) 205 & ) & ! bracket for halo 1 - halo 2 compatibility 206 & + ( ( pahv(ji,jj ,jk) + pahv(ji,jj ,jk-1) ) / ( e2v(ji,jj ) * e2v(ji,jj ) ) & 207 & + ( pahv(ji,jj-1,jk) + pahv(ji,jj-1,jk-1) ) / ( e2v(ji,jj-1) * e2v(ji,jj-1) ) & 208 & ) ) ! bracket for halo 1 - halo 2 compatibility 200 209 END_3D 201 210 ! … … 289 298 zcof2 = - pahv(ji,jj,jk) * e1v(ji,jj) * vslp(ji,jj,jk) * zmskv 290 299 ! 291 zftu(ji,jj,jk ) = ( zabe1 * zdit(ji,jj,jk) & 292 & + zcof1 * ( zdkt (ji+1,jj) + zdk1t(ji,jj) & 293 & + zdk1t(ji+1,jj) + zdkt (ji,jj) ) ) * umask(ji,jj,jk) 294 zftv(ji,jj,jk) = ( zabe2 * zdjt(ji,jj,jk) & 295 & + zcof2 * ( zdkt (ji,jj+1) + zdk1t(ji,jj) & 296 & + zdk1t(ji,jj+1) + zdkt (ji,jj) ) ) * vmask(ji,jj,jk) 300 ! round brackets added to fix the order of floating point operations 301 ! needed to ensure halo 1 - halo 2 compatibility 302 zftu(ji,jj,jk ) = ( zabe1 * zdit(ji,jj,jk) & 303 & + zcof1 * ( ( zdkt (ji+1,jj) + zdk1t(ji,jj) & 304 & ) & ! bracket for halo 1 - halo 2 compatibility 305 & + ( zdk1t(ji+1,jj) + zdkt (ji,jj) & 306 & ) & ! bracket for halo 1 - halo 2 compatibility 307 & ) ) * umask(ji,jj,jk) 308 zftv(ji,jj,jk) = ( zabe2 * zdjt(ji,jj,jk) & 309 & + zcof2 * ( ( zdkt (ji,jj+1) + zdk1t(ji,jj) & 310 & ) & ! bracket for halo 1 - halo 2 compatibility 311 & + ( zdk1t(ji,jj+1) + zdkt (ji,jj) & 312 & ) & ! bracket for halo 1 - halo 2 compatibility 313 & ) ) * vmask(ji,jj,jk) 297 314 END_2D 298 315 ! 299 316 ! [comm_cleanup] ! DO_2D( 0, 0, 0, 0 ) !== horizontal divergence and add to pta 300 317 DO_2D( nn_hls-1, nn_hls-1, nn_hls-1, nn_hls-1 ) !== horizontal divergence and add to pta 301 pt_rhs(ji,jj,jk,jn) = pt_rhs(ji,jj,jk,jn) & 302 & + zsign * ( zftu(ji,jj,jk) - zftu(ji-1,jj,jk) + zftv(ji,jj,jk) - zftv(ji,jj-1,jk) ) & 303 & * r1_e1e2t(ji,jj) / e3t(ji,jj,jk,Kmm) 318 ! round brackets added to fix the order of floating point operations 319 ! needed to ensure halo 1 - halo 2 compatibility 320 pt_rhs(ji,jj,jk,jn) = pt_rhs(ji,jj,jk,jn) & 321 & + zsign * ( ( zftu(ji,jj,jk) - zftu(ji-1,jj,jk) & 322 & ) & ! bracket for halo 1 - halo 2 compatibility 323 & + ( zftv(ji,jj,jk) - zftv(ji,jj-1,jk) & 324 & ) & ! bracket for halo 1 - halo 2 compatibility 325 & ) * r1_e1e2t(ji,jj) / e3t(ji,jj,jk,Kmm) 304 326 END_2D 305 327 END DO ! End of slab … … 330 352 zcoef4 = - zahv_w * e1t(ji,jj) * zmskv * wslpj (ji,jj,jk) 331 353 ! 332 ztfw(ji,jj,jk) = zcoef3 * ( zdit(ji ,jj ,jk-1) + zdit(ji-1,jj ,jk) & 333 & + zdit(ji-1,jj ,jk-1) + zdit(ji ,jj ,jk) ) & 334 & + zcoef4 * ( zdjt(ji ,jj ,jk-1) + zdjt(ji ,jj-1,jk) & 335 & + zdjt(ji ,jj-1,jk-1) + zdjt(ji ,jj ,jk) ) 354 ! round brackets added to fix the order of floating point operations 355 ! needed to ensure halo 1 - halo 2 compatibility 356 ztfw(ji,jj,jk) = zcoef3 * ( ( zdit(ji ,jj ,jk-1) + zdit(ji-1,jj ,jk) & 357 & ) & ! bracket for halo 1 - halo 2 compatibility 358 & + ( zdit(ji-1,jj ,jk-1) + zdit(ji ,jj ,jk) & 359 & ) & ! bracket for halo 1 - halo 2 compatibility 360 & ) & 361 & + zcoef4 * ( ( zdjt(ji ,jj ,jk-1) + zdjt(ji ,jj-1,jk) & 362 & ) & ! bracket for halo 1 - halo 2 compatibility 363 & + ( zdjt(ji ,jj-1,jk-1) + zdjt(ji ,jj ,jk) & 364 & ) & ! bracket for halo 1 - halo 2 compatibility 365 & ) 336 366 END_3D 337 367 ! !== add the vertical 33 flux ==!
Note: See TracChangeset
for help on using the changeset viewer.