Changeset 13295 for NEMO/trunk/src/OCE/TRA/traldf_iso.F90
- Timestamp:
- 2020-07-10T20:24:21+02:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/src/OCE/TRA/traldf_iso.F90
r13237 r13295 141 141 IF( kpass == 1 ) THEN !== first pass only ==! 142 142 ! 143 DO_3D _00_00(2, jpkm1 )143 DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 144 144 ! 145 145 zmsku = wmask(ji,jj,jk) / MAX( umask(ji ,jj,jk-1) + umask(ji-1,jj,jk) & … … 158 158 ! 159 159 IF( ln_traldf_msc ) THEN ! stabilizing vertical diffusivity coefficient 160 DO_3D _00_00(2, jpkm1 )160 DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 161 161 akz(ji,jj,jk) = 0.25_wp * ( & 162 162 & ( pahu(ji ,jj,jk) + pahu(ji ,jj,jk-1) ) / ( e1u(ji ,jj) * e1u(ji ,jj) ) & … … 167 167 ! 168 168 IF( ln_traldf_blp ) THEN ! bilaplacian operator 169 DO_3D _10_10(2, jpkm1 )169 DO_3D( 1, 0, 1, 0, 2, jpkm1 ) 170 170 akz(ji,jj,jk) = 16._wp & 171 171 & * ah_wslp2 (ji,jj,jk) & … … 175 175 END_3D 176 176 ELSEIF( ln_traldf_lap ) THEN ! laplacian operator 177 DO_3D _10_10(2, jpkm1 )177 DO_3D( 1, 0, 1, 0, 2, jpkm1 ) 178 178 ze3w_2 = e3w(ji,jj,jk,Kmm) * e3w(ji,jj,jk,Kmm) 179 179 zcoef0 = rDt * ( akz(ji,jj,jk) + ah_wslp2(ji,jj,jk) / ze3w_2 ) … … 200 200 201 201 ! Horizontal tracer gradient 202 DO_3D _10_10(1, jpkm1 )202 DO_3D( 1, 0, 1, 0, 1, jpkm1 ) 203 203 zdit(ji,jj,jk) = ( pt(ji+1,jj ,jk,jn) - pt(ji,jj,jk,jn) ) * umask(ji,jj,jk) 204 204 zdjt(ji,jj,jk) = ( pt(ji ,jj+1,jk,jn) - pt(ji,jj,jk,jn) ) * vmask(ji,jj,jk) 205 205 END_3D 206 206 IF( ln_zps ) THEN ! botton and surface ocean correction of the horizontal gradient 207 DO_2D _10_10207 DO_2D( 1, 0, 1, 0 ) 208 208 zdit(ji,jj,mbku(ji,jj)) = pgu(ji,jj,jn) 209 209 zdjt(ji,jj,mbkv(ji,jj)) = pgv(ji,jj,jn) 210 210 END_2D 211 211 IF( ln_isfcav ) THEN ! first wet level beneath a cavity 212 DO_2D _10_10212 DO_2D( 1, 0, 1, 0 ) 213 213 IF( miku(ji,jj) > 1 ) zdit(ji,jj,miku(ji,jj)) = pgui(ji,jj,jn) 214 214 IF( mikv(ji,jj) > 1 ) zdjt(ji,jj,mikv(ji,jj)) = pgvi(ji,jj,jn) … … 229 229 ELSE ; zdkt(:,:) = ( pt(:,:,jk-1,jn) - pt(:,:,jk,jn) ) * wmask(:,:,jk) 230 230 ENDIF 231 DO_2D _10_10231 DO_2D( 1, 0, 1, 0 ) 232 232 zabe1 = pahu(ji,jj,jk) * e2_e1u(ji,jj) * e3u(ji,jj,jk,Kmm) 233 233 zabe2 = pahv(ji,jj,jk) * e1_e2v(ji,jj) * e3v(ji,jj,jk,Kmm) … … 250 250 END_2D 251 251 ! 252 DO_2D _00_00252 DO_2D( 0, 0, 0, 0 ) 253 253 pt_rhs(ji,jj,jk,jn) = pt_rhs(ji,jj,jk,jn) & 254 254 & + zsign * ( zftu(ji,jj,jk) - zftu(ji-1,jj,jk) + zftv(ji,jj,jk) - zftv(ji,jj-1,jk) ) & … … 266 266 ztfw(:,:, 1 ) = 0._wp ; ztfw(:,:,jpk) = 0._wp 267 267 268 DO_3D _00_00(2, jpkm1 )268 DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 269 269 ! 270 270 zmsku = wmask(ji,jj,jk) / MAX( umask(ji ,jj,jk-1) + umask(ji-1,jj,jk) & … … 288 288 ! !== add the vertical 33 flux ==! 289 289 IF( ln_traldf_lap ) THEN ! laplacian case: eddy coef = ah_wslp2 - akz 290 DO_3D _00_00(2, jpkm1 )290 DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 291 291 ztfw(ji,jj,jk) = ztfw(ji,jj,jk) + e1e2t(ji,jj) / e3w(ji,jj,jk,Kmm) * wmask(ji,jj,jk) & 292 292 & * ( ah_wslp2(ji,jj,jk) - akz(ji,jj,jk) ) & … … 297 297 SELECT CASE( kpass ) 298 298 CASE( 1 ) ! 1st pass : eddy coef = ah_wslp2 299 DO_3D _00_00(2, jpkm1 )299 DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 300 300 ztfw(ji,jj,jk) = & 301 301 & ztfw(ji,jj,jk) + ah_wslp2(ji,jj,jk) * e1e2t(ji,jj) & … … 303 303 END_3D 304 304 CASE( 2 ) ! 2nd pass : eddy flux = ah_wslp2 and akz applied on pt and pt2 gradients, resp. 305 DO_3D _00_00(2, jpkm1 )305 DO_3D( 0, 0, 0, 0, 2, jpkm1 ) 306 306 ztfw(ji,jj,jk) = ztfw(ji,jj,jk) + e1e2t(ji,jj) / e3w(ji,jj,jk,Kmm) * wmask(ji,jj,jk) & 307 307 & * ( ah_wslp2(ji,jj,jk) * ( pt (ji,jj,jk-1,jn) - pt (ji,jj,jk,jn) ) & … … 311 311 ENDIF 312 312 ! 313 DO_3D _00_00(1, jpkm1 )313 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 314 314 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) & 315 315 & / e3t(ji,jj,jk,Kmm)
Note: See TracChangeset
for help on using the changeset viewer.