- Timestamp:
- 2017-10-16T16:19:11+02:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/DYN/dynzdf_imp.F90
r6751 r8627 20 20 USE zdf_oce ! ocean vertical physics 21 21 USE phycst ! physical constants 22 USE dynadv ! dynamics: vector invariant versus flux form 23 USE dynspg_oce, ONLY: lk_dynspg_ts 24 USE zdfbfr ! Bottom friction setup 25 ! 22 26 USE in_out_manager ! I/O manager 27 USE iom ! I/O library 23 28 USE lib_mpp ! MPP library 24 USE zdfbfr ! Bottom friction setup25 29 USE wrk_nemo ! Memory Allocation 26 30 USE timing ! Timing 27 USE dynadv ! dynamics: vector invariant versus flux form28 USE dynspg_oce, ONLY: lk_dynspg_ts29 31 30 32 IMPLICIT NONE … … 69 71 INTEGER :: ikbu, ikbv ! local integers 70 72 REAL(wp) :: z1_p2dt, zcoef, zzwi, zzws, zrhs ! local scalars 71 REAL(wp) :: ze3ua, ze3va 73 REAL(wp) :: ze3ua, ze3va, zzz 74 REAL(wp), POINTER, DIMENSION(:,:) :: z2d 72 75 REAL(wp), POINTER, DIMENSION(:,:,:) :: zwi, zwd, zws 73 76 !!---------------------------------------------------------------------- … … 257 260 END DO 258 261 259 #if ! defined key_dynspg_ts260 ! Normalization to obtain the general momentum trend ua261 DO jk = 1, jpkm1262 DO jj = 2, jpjm1263 DO ji = fs_2, fs_jpim1 ! vector opt.264 ua(ji,jj,jk) = ( ua(ji,jj,jk) - ub(ji,jj,jk) ) * z1_p2dt265 END DO266 END DO267 END DO268 #endif269 270 262 ! 3. Vertical diffusion on v 271 263 ! --------------------------- … … 357 349 END DO 358 350 359 ! Normalization to obtain the general momentum trend va 351 IF( iom_use( 'dispkevfo' ) ) THEN ! ocean kinetic energy dissipation per unit area 352 ! ! due to v friction (v=vertical) 353 ! ! see NEMO_book appendix C, §C.8 (N.B. here averaged at t-points) 354 ! ! Note that formally, in a Leap-Frog environment, the shear**2 should be the product of 355 ! ! now by before shears, i.e. the source term of TKE (local positivity is not ensured). 356 CALL wrk_alloc(jpi,jpj, z2d ) 357 z2d(:,:) = 0._wp 358 DO jk = 1, jpkm1 359 DO jj = 2, jpjm1 360 DO ji = 2, jpim1 361 z2d(ji,jj) = z2d(ji,jj) + ( & 362 & avmu(ji ,jj,jk) * ( ua(ji ,jj,jk-1) - ua(ji ,jj,jk) )**2 / fse3uw(ji ,jj,jk) * wumask(ji ,jj,jk) & 363 & + avmu(ji-1,jj,jk) * ( ua(ji-1,jj,jk-1) - ua(ji-1,jj,jk) )**2 / fse3uw(ji-1,jj,jk) * wumask(ji-1,jj,jk) & 364 & + avmv(ji,jj ,jk) * ( va(ji,jj ,jk-1) - va(ji,jj ,jk) )**2 / fse3vw(ji,jj ,jk) * wvmask(ji,jj ,jk) & 365 & + avmv(ji,jj-1,jk) * ( va(ji,jj-1,jk-1) - va(ji,jj-1,jk) )**2 / fse3vw(ji,jj-1,jk) * wvmask(ji,jj-1,jk) & 366 & ) 367 END DO 368 END DO 369 END DO 370 zzz= - 0.5_wp* rau0 ! caution sign minus here 371 z2d(:,:) = zzz * z2d(:,:) 372 CALL lbc_lnk( z2d,'T', 1. ) 373 CALL iom_put( 'dispkevfo', z2d ) 374 CALL wrk_dealloc(jpi,jpj, z2d ) 375 ENDIF 376 360 377 #if ! defined key_dynspg_ts 378 !!gm this can be removed if tranxt is changed like in the trunk so that implicit outcome with 379 !!gm the after velocity, not a trend 380 ! Normalization to obtain the general momentum trend ua 361 381 DO jk = 1, jpkm1 362 382 DO jj = 2, jpjm1 363 383 DO ji = fs_2, fs_jpim1 ! vector opt. 384 ua(ji,jj,jk) = ( ua(ji,jj,jk) - ub(ji,jj,jk) ) * z1_p2dt 364 385 va(ji,jj,jk) = ( va(ji,jj,jk) - vb(ji,jj,jk) ) * z1_p2dt 365 386 END DO … … 393 414 CALL wrk_dealloc( jpi,jpj,jpk, zwi, zwd, zws) 394 415 ! 416 ! 395 417 IF( nn_timing == 1 ) CALL timing_stop('dyn_zdf_imp') 396 418 !
Note: See TracChangeset
for help on using the changeset viewer.