Changeset 13295 for NEMO/trunk/src/OCE/TRA/traadv_ubs.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_ubs.F90
r13237 r13295 125 125 ! 126 126 DO jk = 1, jpkm1 !== horizontal laplacian of before tracer ==! 127 DO_2D _10_10127 DO_2D( 1, 0, 1, 0 ) 128 128 zeeu = e2_e1u(ji,jj) * e3u(ji,jj,jk,Kmm) * umask(ji,jj,jk) 129 129 zeev = e1_e2v(ji,jj) * e3v(ji,jj,jk,Kmm) * vmask(ji,jj,jk) … … 131 131 ztv(ji,jj,jk) = zeev * ( pt(ji ,jj+1,jk,jn,Kbb) - pt(ji,jj,jk,jn,Kbb) ) 132 132 END_2D 133 DO_2D _00_00133 DO_2D( 0, 0, 0, 0 ) 134 134 zcoef = 1._wp / ( 6._wp * e3t(ji,jj,jk,Kmm) ) 135 135 zltu(ji,jj,jk) = ( ztu(ji,jj,jk) - ztu(ji-1,jj,jk) ) * zcoef … … 140 140 CALL lbc_lnk( 'traadv_ubs', zltu, 'T', 1.0_wp ) ; CALL lbc_lnk( 'traadv_ubs', zltv, 'T', 1.0_wp ) ! Lateral boundary cond. (unchanged sgn) 141 141 ! 142 DO_3D _10_10(1, jpkm1 )142 DO_3D( 1, 0, 1, 0, 1, jpkm1 ) 143 143 zfp_ui = pU(ji,jj,jk) + ABS( pU(ji,jj,jk) ) ! upstream transport (x2) 144 144 zfm_ui = pU(ji,jj,jk) - ABS( pU(ji,jj,jk) ) … … 156 156 ! 157 157 DO jk = 1, jpkm1 !== add the horizontal advective trend ==! 158 DO_2D _00_00158 DO_2D( 0, 0, 0, 0 ) 159 159 pt(ji,jj,jk,jn,Krhs) = pt(ji,jj,jk,jn,Krhs) & 160 160 & - ( ztu(ji,jj,jk) - ztu(ji-1,jj ,jk) & … … 188 188 ! 189 189 ! !* upstream advection with initial mass fluxes & intermediate update ==! 190 DO_3D _11_11(2, jpkm1 )190 DO_3D( 1, 1, 1, 1, 2, jpkm1 ) 191 191 zfp_wk = pW(ji,jj,jk) + ABS( pW(ji,jj,jk) ) 192 192 zfm_wk = pW(ji,jj,jk) - ABS( pW(ji,jj,jk) ) … … 195 195 IF( ln_linssh ) THEN ! top ocean value (only in linear free surface as ztw has been w-masked) 196 196 IF( ln_isfcav ) THEN ! top of the ice-shelf cavities and at the ocean surface 197 DO_2D _11_11197 DO_2D( 1, 1, 1, 1 ) 198 198 ztw(ji,jj, mikt(ji,jj) ) = pW(ji,jj,mikt(ji,jj)) * pt(ji,jj,mikt(ji,jj),jn,Kbb) ! linear free surface 199 199 END_2D … … 203 203 ENDIF 204 204 ! 205 DO_3D _00_00(1, jpkm1 )205 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 206 206 ztak = - ( ztw(ji,jj,jk) - ztw(ji,jj,jk+1) ) & 207 207 & * r1_e1e2t(ji,jj) / e3t(ji,jj,jk,Kmm) … … 212 212 ! 213 213 ! !* anti-diffusive flux : high order minus low order 214 DO_3D _11_11(2, jpkm1 )214 DO_3D( 1, 1, 1, 1, 2, jpkm1 ) 215 215 ztw(ji,jj,jk) = ( 0.5_wp * pW(ji,jj,jk) * ( pt(ji,jj,jk,jn,Kmm) + pt(ji,jj,jk-1,jn,Kmm) ) & 216 216 & - ztw(ji,jj,jk) ) * wmask(ji,jj,jk) … … 223 223 CASE( 4 ) ! 4th order COMPACT 224 224 CALL interp_4th_cpt( pt(:,:,:,jn,Kmm) , ztw ) ! 4th order compact interpolation of T at w-point 225 DO_3D _00_00(2, jpkm1 )225 DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 226 226 ztw(ji,jj,jk) = pW(ji,jj,jk) * ztw(ji,jj,jk) * wmask(ji,jj,jk) 227 227 END_3D … … 230 230 END SELECT 231 231 ! 232 DO_3D _00_00(1, jpkm1 )232 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 233 233 pt(ji,jj,jk,jn,Krhs) = pt(ji,jj,jk,jn,Krhs) - ( ztw(ji,jj,jk) - ztw(ji,jj,jk+1) ) & 234 234 & * r1_e1e2t(ji,jj) / e3t(ji,jj,jk,Kmm) … … 236 236 ! 237 237 IF( l_trd ) THEN ! vertical advective trend diagnostics 238 DO_3D _00_00(1, jpkm1 )238 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 239 239 zltv(ji,jj,jk) = pt(ji,jj,jk,jn,Krhs) - zltv(ji,jj,jk) & 240 240 & + pt(ji,jj,jk,jn,Kmm) * ( pW(ji,jj,jk) - pW(ji,jj,jk+1) ) & … … 286 286 DO jk = 1, jpkm1 ! search maximum in neighbourhood 287 287 ikm1 = MAX(jk-1,1) 288 DO_2D _00_00288 DO_2D( 0, 0, 0, 0 ) 289 289 zbetup(ji,jj,jk) = MAX( pbef(ji ,jj ,jk ), paft(ji ,jj ,jk ), & 290 290 & pbef(ji ,jj ,ikm1), pbef(ji ,jj ,jk+1), & … … 298 298 DO jk = 1, jpkm1 ! search minimum in neighbourhood 299 299 ikm1 = MAX(jk-1,1) 300 DO_2D _00_00300 DO_2D( 0, 0, 0, 0 ) 301 301 zbetdo(ji,jj,jk) = MIN( pbef(ji ,jj ,jk ), paft(ji ,jj ,jk ), & 302 302 & pbef(ji ,jj ,ikm1), pbef(ji ,jj ,jk+1), & … … 310 310 ! Positive and negative part of fluxes and beta terms 311 311 ! --------------------------------------------------- 312 DO_3D _00_00(1, jpkm1 )312 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 313 313 ! positive & negative part of the flux 314 314 zpos = MAX( 0., pcc(ji ,jj ,jk+1) ) - MIN( 0., pcc(ji ,jj ,jk ) ) … … 322 322 ! monotonic flux in the k direction, i.e. pcc 323 323 ! ------------------------------------------- 324 DO_3D _00_00(2, jpkm1 )324 DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 325 325 za = MIN( 1., zbetdo(ji,jj,jk), zbetup(ji,jj,jk-1) ) 326 326 zb = MIN( 1., zbetup(ji,jj,jk), zbetdo(ji,jj,jk-1) )
Note: See TracChangeset
for help on using the changeset viewer.