- Timestamp:
- 2020-03-26T11:15:02+01:00 (4 years ago)
- Location:
- NEMO/branches/2020/dev_r12377_KERNEL-06_techene_e3/src/OCE/TRA
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/dev_r12377_KERNEL-06_techene_e3/src/OCE/TRA/traadv_qck.F90
r12590 r12606 158 158 DO_3D_00_00( 1, jpkm1 ) 159 159 zdir = 0.5 + SIGN( 0.5, pU(ji,jj,jk) ) ! if pU > 0 : zdir = 1 otherwise zdir = 0 160 zdx = ( zdir * e1t(ji,jj) + ( 1. - zdir ) * e1t(ji+1,jj) ) * e2u(ji,jj) * e3u(ji,jj,jk,Kmm) 160 zdx = ( zdir * e1t(ji,jj) + ( 1. - zdir ) * e1t(ji+1,jj) ) & 161 & * e2u(ji,jj) * e3u(ji,jj,jk,Kmm) 161 162 zwx(ji,jj,jk) = ABS( pU(ji,jj,jk) ) * p2dt / zdx ! (0<zc_cfl<1 : Courant number on x-direction) 162 163 zfc(ji,jj,jk) = zdir * pt(ji ,jj,jk,jn,Kbb) + ( 1. - zdir ) * pt(ji+1,jj,jk,jn,Kbb) ! FC in the x-direction for T -
NEMO/branches/2020/dev_r12377_KERNEL-06_techene_e3/src/OCE/TRA/traisf.F90
r12590 r12606 11 11 !!---------------------------------------------------------------------- 12 12 USE isf_oce ! Ice shelf variables 13 USE dom_oce , ONLY : e3t, r1_e1e2t! ocean space domain variables13 USE dom_oce ! ocean space domain variables 14 14 USE isfutils, ONLY : debug ! debug option 15 15 USE timing , ONLY : timing_start, timing_stop ! Timing … … 23 23 !! * Substitutions 24 24 # include "do_loop_substitute.h90" 25 # include "domzgr_substitute.h90" 25 26 !!---------------------------------------------------------------------- 26 27 !! NEMO/OCE 4.0 , NEMO Consortium (2018) … … 140 141 ! 141 142 DO jk = 1,jpk 142 ptsa(:,:,jk,jp_tem) = ptsa(:,:,jk,jp_tem) + ptsc(:,:,jk,jp_tem) * r1_e1e2t(:,:) / e3t(:,:,jk,Kmm) 143 ptsa(:,:,jk,jp_sal) = ptsa(:,:,jk,jp_sal) + ptsc(:,:,jk,jp_sal) * r1_e1e2t(:,:) / e3t(:,:,jk,Kmm) 143 ptsa(:,:,jk,jp_tem) = & 144 & ptsa(:,:,jk,jp_tem) + ptsc(:,:,jk,jp_tem) * r1_e1e2t(:,:) / e3t(:,:,jk,Kmm) 145 ptsa(:,:,jk,jp_sal) = & 146 & ptsa(:,:,jk,jp_sal) + ptsc(:,:,jk,jp_sal) * r1_e1e2t(:,:) / e3t(:,:,jk,Kmm) 144 147 END DO 145 148 ! -
NEMO/branches/2020/dev_r12377_KERNEL-06_techene_e3/src/OCE/TRA/traldf_iso.F90
r12590 r12606 254 254 ! 255 255 DO_2D_00_00 256 pt_rhs(ji,jj,jk,jn) = pt_rhs(ji,jj,jk,jn) + zsign * ( zftu(ji,jj,jk) - zftu(ji-1,jj,jk)&257 & 258 & 256 pt_rhs(ji,jj,jk,jn) = pt_rhs(ji,jj,jk,jn) & 257 & + zsign * ( zftu(ji,jj,jk) - zftu(ji-1,jj,jk) + zftv(ji,jj,jk) - zftv(ji,jj-1,jk) ) & 258 & * r1_e1e2t(ji,jj) / e3t(ji,jj,jk,Kmm) 259 259 END_2D 260 260 END DO ! End of slab … … 301 301 CASE( 1 ) ! 1st pass : eddy coef = ah_wslp2 302 302 DO_3D_00_00( 2, jpkm1 ) 303 ztfw(ji,jj,jk) = ztfw(ji,jj,jk)&304 & + ah_wslp2(ji,jj,jk)* e1e2t(ji,jj) &305 & 303 ztfw(ji,jj,jk) = & 304 & ztfw(ji,jj,jk) + ah_wslp2(ji,jj,jk) * e1e2t(ji,jj) & 305 & * ( pt(ji,jj,jk-1,jn) - pt(ji,jj,jk,jn) ) / e3w(ji,jj,jk,Kmm) * wmask(ji,jj,jk) 306 306 END_3D 307 307 CASE( 2 ) ! 2nd pass : eddy flux = ah_wslp2 and akz applied on pt and pt2 gradients, resp. 308 308 DO_3D_00_00( 2, jpkm1 ) 309 ztfw(ji,jj,jk) = ztfw(ji,jj,jk) + e1e2t(ji,jj) / e3w(ji,jj,jk,Kmm) * wmask(ji,jj,jk) 309 ztfw(ji,jj,jk) = ztfw(ji,jj,jk) + e1e2t(ji,jj) / e3w(ji,jj,jk,Kmm) * wmask(ji,jj,jk) & 310 310 & * ( ah_wslp2(ji,jj,jk) * ( pt (ji,jj,jk-1,jn) - pt (ji,jj,jk,jn) ) & 311 311 & + akz(ji,jj,jk) * ( pt2(ji,jj,jk-1,jn) - pt2(ji,jj,jk,jn) ) ) … … 315 315 ! 316 316 DO_3D_00_00( 1, jpkm1 ) 317 pt_rhs(ji,jj,jk,jn) = pt_rhs(ji,jj,jk,jn) + zsign * ( ztfw (ji,jj,jk) - ztfw(ji,jj,jk+1) ) &318 & * r1_e1e2t(ji,jj)/ e3t(ji,jj,jk,Kmm)317 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) & 318 & / e3t(ji,jj,jk,Kmm) 319 319 END_3D 320 320 ! -
NEMO/branches/2020/dev_r12377_KERNEL-06_techene_e3/src/OCE/TRA/traldf_triad.F90
r12590 r12606 184 184 IF( ln_traldf_blp ) THEN ! bilaplacian operator 185 185 DO_3D_10_10( 2, jpkm1 ) 186 akz(ji,jj,jk) = 16._wp * ah_wslp2(ji,jj,jk) & 187 & * ( akz(ji,jj,jk) & 188 & + ah_wslp2(ji,jj,jk) / ( e3w(ji,jj,jk,Kmm) * e3w(ji,jj,jk,Kmm) ) ) 186 akz(ji,jj,jk) = & 187 & 16._wp * ah_wslp2(ji,jj,jk) & 188 & * ( akz(ji,jj,jk) & 189 & + ah_wslp2(ji,jj,jk) / ( e3w(ji,jj,jk,Kmm) * e3w(ji,jj,jk,Kmm) ) ) 189 190 END_3D 190 191 ELSEIF( ln_traldf_lap ) THEN ! laplacian operator … … 333 334 DO_2D_00_00 334 335 pt_rhs(ji,jj,jk,jn) = pt_rhs(ji,jj,jk,jn) & 335 & + zsign * ( zftu(ji-1,jj,jk) - zftu(ji,jj,jk) &336 & + zftv(ji,jj-1,jk) - zftv(ji,jj,jk) ) &337 & 336 & + zsign * ( zftu(ji-1,jj ,jk) - zftu(ji,jj,jk) & 337 & + zftv(ji ,jj-1,jk) - zftv(ji,jj,jk) ) & 338 & / ( e1e2t(ji,jj) * e3t(ji,jj,jk,Kmm) ) 338 339 END_2D 339 340 ! … … 351 352 CASE( 1 ) ! 1st pass : eddy coef = ah_wslp2 352 353 DO_3D_10_00( 2, jpkm1 ) 353 ztfw(ji,jj,jk) = ztfw(ji,jj,jk) - e1e2t(ji,jj) / e3w(ji,jj,jk,Kmm) * tmask(ji,jj,jk) 354 ztfw(ji,jj,jk) = ztfw(ji,jj,jk) - e1e2t(ji,jj) / e3w(ji,jj,jk,Kmm) * tmask(ji,jj,jk) & 354 355 & * ah_wslp2(ji,jj,jk) * ( pt(ji,jj,jk-1,jn) - pt(ji,jj,jk,jn) ) 355 356 END_3D 356 357 CASE( 2 ) ! 2nd pass : eddy flux = ah_wslp2 and akz applied on pt and pt2 gradients, resp. 357 358 DO_3D_10_00( 2, jpkm1 ) 358 ztfw(ji,jj,jk) = ztfw(ji,jj,jk) - e1e2t(ji,jj) / e3w(ji,jj,jk,Kmm) * tmask(ji,jj,jk) 359 ztfw(ji,jj,jk) = ztfw(ji,jj,jk) - e1e2t(ji,jj) / e3w(ji,jj,jk,Kmm) * tmask(ji,jj,jk) & 359 360 & * ( ah_wslp2(ji,jj,jk) * ( pt (ji,jj,jk-1,jn) - pt (ji,jj,jk,jn) ) & 360 361 & + akz (ji,jj,jk) * ( pt2(ji,jj,jk-1,jn) - pt2(ji,jj,jk,jn) ) )
Note: See TracChangeset
for help on using the changeset viewer.