Changeset 14820 for NEMO/trunk/src/OCE/TRA/traldf_iso.F90
- Timestamp:
- 2021-05-10T10:26:13+02:00 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/src/OCE/TRA/traldf_iso.F90
r14072 r14820 179 179 & + vmask(ji,jj-1,jk-1) + vmask(ji,jj ,jk) , 1._wp ) 180 180 ! 181 zahu_w = ( pahu(ji ,jj,jk-1) + pahu(ji-1,jj,jk) & 182 & + pahu(ji-1,jj,jk-1) + pahu(ji ,jj,jk) ) * zmsku 183 zahv_w = ( pahv(ji,jj ,jk-1) + pahv(ji,jj-1,jk) & 184 & + pahv(ji,jj-1,jk-1) + pahv(ji,jj ,jk) ) * zmskv 181 ! round brackets added to fix the order of floating point operations 182 ! needed to ensure halo 1 - halo 2 compatibility 183 zahu_w = ( ( pahu(ji ,jj,jk-1) + pahu(ji-1,jj,jk) & 184 & ) & ! bracket for halo 1 - halo 2 compatibility 185 & + ( pahu(ji-1,jj,jk-1) + pahu(ji ,jj,jk) & 186 & ) & ! bracket for halo 1 - halo 2 compatibility 187 & ) * zmsku 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 & ) & ! bracket for halo 1 - halo 2 compatibility 192 & ) * zmskv 185 193 ! 186 194 ah_wslp2(ji,jj,jk) = zahu_w * wslpi(ji,jj,jk) * wslpi(ji,jj,jk) & … … 190 198 IF( ln_traldf_msc ) THEN ! stabilizing vertical diffusivity coefficient 191 199 DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 200 ! round brackets added to fix the order of floating point operations 201 ! needed to ensure halo 1 - halo 2 compatibility 192 202 akz(ji,jj,jk) = 0.25_wp * ( & 193 & 203 & ( ( pahu(ji ,jj,jk) + pahu(ji ,jj,jk-1) ) / ( e1u(ji ,jj) * e1u(ji ,jj) ) & 194 204 & + ( pahu(ji-1,jj,jk) + pahu(ji-1,jj,jk-1) ) / ( e1u(ji-1,jj) * e1u(ji-1,jj) ) & 195 & + ( pahv(ji,jj ,jk) + pahv(ji,jj ,jk-1) ) / ( e2v(ji,jj ) * e2v(ji,jj ) ) & 196 & + ( 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 209 & ) 197 210 END_3D 198 211 ! … … 278 291 zcof2 = - pahv(ji,jj,jk) * e1v(ji,jj) * vslp(ji,jj,jk) * zmskv 279 292 ! 280 zftu(ji,jj,jk ) = ( zabe1 * zdit(ji,jj,jk) & 281 & + zcof1 * ( zdkt (ji+1,jj) + zdk1t(ji,jj) & 282 & + zdk1t(ji+1,jj) + zdkt (ji,jj) ) ) * umask(ji,jj,jk) 283 zftv(ji,jj,jk) = ( zabe2 * zdjt(ji,jj,jk) & 284 & + zcof2 * ( zdkt (ji,jj+1) + zdk1t(ji,jj) & 285 & + zdk1t(ji,jj+1) + zdkt (ji,jj) ) ) * vmask(ji,jj,jk) 293 ! round brackets added to fix the order of floating point operations 294 ! needed to ensure halo 1 - halo 2 compatibility 295 zftu(ji,jj,jk ) = ( zabe1 * zdit(ji,jj,jk) & 296 & + zcof1 * ( ( zdkt (ji+1,jj) + zdk1t(ji,jj) & 297 & ) & ! bracket for halo 1 - halo 2 compatibility 298 & + ( zdk1t(ji+1,jj) + zdkt (ji,jj) & 299 & ) & ! bracket for halo 1 - halo 2 compatibility 300 & ) ) * umask(ji,jj,jk) 301 zftv(ji,jj,jk) = ( zabe2 * zdjt(ji,jj,jk) & 302 & + zcof2 * ( ( zdkt (ji,jj+1) + zdk1t(ji,jj) & 303 & ) & ! bracket for halo 1 - halo 2 compatibility 304 & + ( zdk1t(ji,jj+1) + zdkt (ji,jj) & 305 & ) & ! bracket for halo 1 - halo 2 compatibility 306 & ) ) * vmask(ji,jj,jk) 286 307 END_2D 287 308 ! 288 309 DO_2D( 0, 0, 0, 0 ) !== horizontal divergence and add to pta 289 pt_rhs(ji,jj,jk,jn) = pt_rhs(ji,jj,jk,jn) & 290 & + zsign * ( zftu(ji,jj,jk) - zftu(ji-1,jj,jk) + zftv(ji,jj,jk) - zftv(ji,jj-1,jk) ) & 291 & * r1_e1e2t(ji,jj) / e3t(ji,jj,jk,Kmm) 310 ! round brackets added to fix the order of floating point operations 311 ! needed to ensure halo 1 - halo 2 compatibility 312 pt_rhs(ji,jj,jk,jn) = pt_rhs(ji,jj,jk,jn) & 313 & + zsign * ( ( zftu(ji,jj,jk) - zftu(ji-1,jj,jk) & 314 & ) & ! bracket for halo 1 - halo 2 compatibility 315 & + ( zftv(ji,jj,jk) - zftv(ji,jj-1,jk) & 316 & ) & ! bracket for halo 1 - halo 2 compatibility 317 & ) * r1_e1e2t(ji,jj) / e3t(ji,jj,jk,Kmm) 292 318 END_2D 293 319 END DO ! End of slab … … 317 343 zcoef4 = - zahv_w * e1t(ji,jj) * zmskv * wslpj (ji,jj,jk) 318 344 ! 319 ztfw(ji,jj,jk) = zcoef3 * ( zdit(ji ,jj ,jk-1) + zdit(ji-1,jj ,jk) & 320 & + zdit(ji-1,jj ,jk-1) + zdit(ji ,jj ,jk) ) & 321 & + zcoef4 * ( zdjt(ji ,jj ,jk-1) + zdjt(ji ,jj-1,jk) & 322 & + zdjt(ji ,jj-1,jk-1) + zdjt(ji ,jj ,jk) ) 345 ! round brackets added to fix the order of floating point operations 346 ! needed to ensure halo 1 - halo 2 compatibility 347 ztfw(ji,jj,jk) = zcoef3 * ( ( zdit(ji ,jj ,jk-1) + zdit(ji-1,jj ,jk) & 348 & ) & ! bracket for halo 1 - halo 2 compatibility 349 & + ( zdit(ji-1,jj ,jk-1) + zdit(ji ,jj ,jk) & 350 & ) & ! bracket for halo 1 - halo 2 compatibility 351 & ) & 352 & + zcoef4 * ( ( zdjt(ji ,jj ,jk-1) + zdjt(ji ,jj-1,jk) & 353 & ) & ! bracket for halo 1 - halo 2 compatibility 354 & + ( zdjt(ji ,jj-1,jk-1) + zdjt(ji ,jj ,jk) & 355 & ) & ! bracket for halo 1 - halo 2 compatibility 356 & ) 323 357 END_3D 324 358 ! !== add the vertical 33 flux ==!
Note: See TracChangeset
for help on using the changeset viewer.