- Timestamp:
- 2017-10-16T16:19:11+02:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/DYN/dynldf_lap.F90
r4990 r8627 17 17 USE oce ! ocean dynamics and tracers 18 18 USE dom_oce ! ocean space and time domain 19 USE phycst ! physical constants 19 20 USE ldfdyn_oce ! ocean dynamics: lateral physics 20 21 USE zdf_oce ! ocean vertical physics 21 22 ! 22 23 USE in_out_manager ! I/O manager 24 USE iom ! I/O library 23 25 USE timing ! Timing 24 26 … … 62 64 INTEGER :: ji, jj, jk ! dummy loop indices 63 65 REAL(wp) :: zua, zva, ze2u, ze1v ! local scalars 66 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: z2d ! 2D workspace 64 67 !!---------------------------------------------------------------------- 65 68 ! … … 93 96 END DO ! End of slab 94 97 ! ! =============== 98 99 IF( iom_use('dispkexyfo') ) THEN ! ocean Kinetic Energy dissipation per unit area 100 ! ! due to lateral friction (xy=lateral) 101 ! see NEMO_book appendix C, §C.7.2 (N.B. here averaged at t-points) 102 ! local dissipation of KE at t-point due to laplacian operator is given by : 103 ! - ahmt hdivb**2 - mi( mj(ahmf rotb**2 e1f*e2f*e3t) ) / (e1e2t*e3t) 104 ! 105 ALLOCATE( z2d(jpi,jpj) ) 106 z2d(:,:) = 0._wp 107 DO jk = 1, jpkm1 108 DO jj = 2, jpjm1 109 DO ji = 2, jpim1 110 z2d(ji,jj) = z2d(ji,jj) - ( & 111 & hdivb(ji,jj,jk)**2 * fsahmt(ji,jj,jk) * fse3t_n(ji,jj,jk) & 112 & + 0.25_wp * ( & 113 & rotb (ji ,jj ,jk)**2 * fsahmf(ji ,jj ,jk) * e12f(ji ,jj ) * fse3f(ji ,jj ,jk) & 114 & + rotb (ji-1,jj ,jk)**2 * fsahmf(ji-1,jj ,jk) * e12f(ji-1,jj ) * fse3f(ji-1,jj ,jk) & 115 & + rotb (ji ,jj-1,jk)**2 * fsahmf(ji ,jj-1,jk) * e12f(ji ,jj-1) * fse3f(ji ,jj-1,jk) & 116 & + rotb (ji-1,jj-1,jk)**2 * fsahmf(ji-1,jj-1,jk) * e12f(ji-1,jj-1) * fse3f(ji-1,jj-1,jk) & 117 & ) * r1_e12t(ji,jj) ) * tmask(ji,jj,jk) 118 END DO 119 END DO 120 END DO 121 z2d(:,:) = rau0 * z2d(:,:) 122 CALL lbc_lnk( z2d,'T', 1. ) 123 CALL iom_put( 'dispkexyfo', z2d ) 124 DEALLOCATE( z2d ) 125 ENDIF 126 95 127 IF( nn_timing == 1 ) CALL timing_stop('dyn_ldf_lap') 96 128 !
Note: See TracChangeset
for help on using the changeset viewer.