Changeset 13295 for NEMO/trunk/src/OCE/TRA/traadv_qck.F90
- Timestamp:
- 2020-07-10T20:24:21+02:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/src/OCE/TRA/traadv_qck.F90
r13237 r13295 142 142 ! 143 143 !!gm why not using a SHIFT instruction... 144 DO_3D _00_00(1, jpkm1 )144 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 145 145 zfc(ji,jj,jk) = pt(ji-1,jj,jk,jn,Kbb) ! Upstream in the x-direction for the tracer 146 146 zfd(ji,jj,jk) = pt(ji+1,jj,jk,jn,Kbb) ! Downstream in the x-direction for the tracer … … 151 151 ! Horizontal advective fluxes 152 152 ! --------------------------- 153 DO_3D _00_00(1, jpkm1 )153 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 154 154 zdir = 0.5 + SIGN( 0.5_wp, pU(ji,jj,jk) ) ! if pU > 0 : zdir = 1 otherwise zdir = 0 155 155 zfu(ji,jj,jk) = zdir * zfc(ji,jj,jk ) + ( 1. - zdir ) * zfd(ji+1,jj,jk) ! FU in the x-direction for T 156 156 END_3D 157 157 ! 158 DO_3D _00_00(1, jpkm1 )158 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 159 159 zdir = 0.5 + SIGN( 0.5_wp, pU(ji,jj,jk) ) ! if pU > 0 : zdir = 1 otherwise zdir = 0 160 160 zdx = ( zdir * e1t(ji,jj) + ( 1. - zdir ) * e1t(ji+1,jj) ) * e2u(ji,jj) * e3u(ji,jj,jk,Kmm) … … 170 170 ! 171 171 ! Mask at the T-points in the x-direction (mask=0 or mask=1) 172 DO_3D _00_00(1, jpkm1 )172 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 173 173 zfu(ji,jj,jk) = tmask(ji-1,jj,jk) + tmask(ji,jj,jk) + tmask(ji+1,jj,jk) - 2. 174 174 END_3D … … 179 179 DO jk = 1, jpkm1 180 180 ! 181 DO_2D _00_00181 DO_2D( 0, 0, 0, 0 ) 182 182 zdir = 0.5 + SIGN( 0.5_wp, pU(ji,jj,jk) ) ! if pU > 0 : zdir = 1 otherwise zdir = 0 183 183 !--- If the second ustream point is a land point … … 192 192 ! 193 193 ! Computation of the trend 194 DO_3D _00_00(1, jpkm1 )194 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 195 195 zbtr = r1_e1e2t(ji,jj) / e3t(ji,jj,jk,Kmm) 196 196 ! horizontal advective trends … … 233 233 ! 234 234 !--- Computation of the ustream and downstream value of the tracer and the mask 235 DO_2D _00_00235 DO_2D( 0, 0, 0, 0 ) 236 236 ! Upstream in the x-direction for the tracer 237 237 zfc(ji,jj,jk) = pt(ji,jj-1,jk,jn,Kbb) … … 247 247 ! --------------------------- 248 248 ! 249 DO_3D _00_00(1, jpkm1 )249 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 250 250 zdir = 0.5 + SIGN( 0.5_wp, pV(ji,jj,jk) ) ! if pU > 0 : zdir = 1 otherwise zdir = 0 251 251 zfu(ji,jj,jk) = zdir * zfc(ji,jj,jk ) + ( 1. - zdir ) * zfd(ji,jj+1,jk) ! FU in the x-direction for T 252 252 END_3D 253 253 ! 254 DO_3D _00_00(1, jpkm1 )254 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 255 255 zdir = 0.5 + SIGN( 0.5_wp, pV(ji,jj,jk) ) ! if pU > 0 : zdir = 1 otherwise zdir = 0 256 256 zdx = ( zdir * e2t(ji,jj) + ( 1. - zdir ) * e2t(ji,jj+1) ) * e1v(ji,jj) * e3v(ji,jj,jk,Kmm) … … 267 267 ! 268 268 ! Mask at the T-points in the x-direction (mask=0 or mask=1) 269 DO_3D _00_00(1, jpkm1 )269 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 270 270 zfu(ji,jj,jk) = tmask(ji,jj-1,jk) + tmask(ji,jj,jk) + tmask(ji,jj+1,jk) - 2. 271 271 END_3D … … 275 275 DO jk = 1, jpkm1 276 276 ! 277 DO_2D _00_00277 DO_2D( 0, 0, 0, 0 ) 278 278 zdir = 0.5 + SIGN( 0.5_wp, pV(ji,jj,jk) ) ! if pU > 0 : zdir = 1 otherwise zdir = 0 279 279 !--- If the second ustream point is a land point … … 288 288 ! 289 289 ! Computation of the trend 290 DO_3D _00_00(1, jpkm1 )290 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 291 291 zbtr = r1_e1e2t(ji,jj) / e3t(ji,jj,jk,Kmm) 292 292 ! horizontal advective trends … … 327 327 ! ! =========== 328 328 ! 329 DO_3D _00_00(2, jpkm1 )329 DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 330 330 zwz(ji,jj,jk) = 0.5 * pW(ji,jj,jk) * ( pt(ji,jj,jk-1,jn,Kmm) + pt(ji,jj,jk,jn,Kmm) ) * wmask(ji,jj,jk) 331 331 END_3D 332 332 IF( ln_linssh ) THEN !* top value (only in linear free surf. as zwz is multiplied by wmask) 333 333 IF( ln_isfcav ) THEN ! ice-shelf cavities (top of the ocean) 334 DO_2D _11_11334 DO_2D( 1, 1, 1, 1 ) 335 335 zwz(ji,jj, mikt(ji,jj) ) = pW(ji,jj,mikt(ji,jj)) * pt(ji,jj,mikt(ji,jj),jn,Kmm) ! linear free surface 336 336 END_2D … … 340 340 ENDIF 341 341 ! 342 DO_3D _00_00(1, jpkm1 )342 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 343 343 pt(ji,jj,jk,jn,Krhs) = pt(ji,jj,jk,jn,Krhs) - ( zwz(ji,jj,jk) - zwz(ji,jj,jk+1) ) & 344 344 & * r1_e1e2t(ji,jj) / e3t(ji,jj,jk,Kmm) … … 369 369 !---------------------------------------------------------------------- 370 370 ! 371 DO_3D _11_11(1, jpkm1 )371 DO_3D( 1, 1, 1, 1, 1, jpkm1 ) 372 372 zc = puc(ji,jj,jk) ! Courant number 373 373 zcurv = pfd(ji,jj,jk) + pfu(ji,jj,jk) - 2. * pfc(ji,jj,jk)
Note: See TracChangeset
for help on using the changeset viewer.