- Timestamp:
- 2020-04-06T17:36:16+02:00 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/UKMO/NEMO_4.0.1_biharmonic_GM/src/OCE/DYN/dynldf_lap_blp.F90
r12688 r12691 17 17 USE ldfslp ! iso-neutral slopes 18 18 USE zdf_oce ! ocean vertical physics 19 USE phycst 19 20 ! 20 21 USE in_out_manager ! I/O manager … … 211 212 INTEGER :: ji, jj, jk ! dummy loop indices 212 213 ! 213 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zulap, zvlap ! laplacian at u- and v-point 214 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zulapdz, zvlapdz ! -1*bhm * d/dz(del^2 u) at u- and v-point 214 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zulap, zvlap ! laplacian at u- and v-point 215 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zulapdz, zvlapdz ! -1*bhm * d/dz(del^2 u) at u- and v-point 216 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zmu ! = bhm / avm 215 217 !!---------------------------------------------------------------------- 216 218 ! … … 222 224 ! 223 225 226 ! Calculate ratio of bhm and avm for stabilising correction terms 227 ! and add to avm to be included in the vertical diffusion calculation later. 228 DO jk = 2, jpkm1 229 DO jj = 2, jpjm1 230 DO ji = fs_2, jpim1 ! vector opt. 231 zmu(ji,jj,jk) = ( bhm(ji,jj,jk) / (avm(ji,jj,jk) + rsmall) ) * wmask(ji,jj,jk) 232 avm(ji,jj,jk) = avm(ji,jj,jk) + zmu(ji,jj,jk) 233 ENDDO 234 ENDDO 235 ENDDO 236 CALL lbc_lnk_multi( 'dyn_ldf_bgm', zmu, 'W', 1. , avm, 'W', 1. ) 237 238 ! Calculate (del2 u) 224 239 CALL dyn_ldf_lap_no_ahm( kt, pub, pvb, zulap, zvlap, 1 ) 225 240 … … 230 245 DO jj = 2, jpjm1 231 246 DO ji = fs_2, jpim1 ! vector opt. 232 zulapdz(ji,jj,jk) = -0.5_wp*(bhm(ji+1,jj ,jk)+bhm(ji,jj,jk))*(zulap(ji,jj,jk-1) - zulap(ji,jj,jk)) * wumask(ji,jj,jk) / e3uw_n(ji,jj,jk) 233 zvlapdz(ji,jj,jk) = -0.5_wp*(bhm(ji ,jj+1,jk)+bhm(ji,jj,jk))*(zvlap(ji,jj,jk-1) - zvlap(ji,jj,jk)) * wvmask(ji,jj,jk) / e3vw_n(ji,jj,jk) 247 zulapdz(ji,jj,jk) = ( -0.5_wp*(bhm(ji+1,jj ,jk)+bhm(ji,jj,jk))*(zulap(ji,jj,jk-1) - zulap(ji,jj,jk)) & 248 & -0.5_wp*(zmu(ji+1,jj ,jk)+zmu(ji,jj,jk))*(pub (ji,jj,jk-1) - pub (ji,jj,jk)) ) * wumask(ji,jj,jk) / e3uw_n(ji,jj,jk) 249 zvlapdz(ji,jj,jk) = ( -0.5_wp*(bhm(ji ,jj+1,jk)+bhm(ji,jj,jk))*(zvlap(ji,jj,jk-1) - zvlap(ji,jj,jk)) & 250 & -0.5_wp*(zmu(ji ,jj+1,jk)+zmu(ji,jj,jk))*(pvb (ji,jj,jk-1) - pvb (ji,jj,jk)) ) * wumask(ji,jj,jk) / e3uw_n(ji,jj,jk) 234 251 ENDDO 235 252 ENDDO 236 253 ENDDO 237 238 254 239 255 !CW: set boundary conditions: d/dz(del^2 u) = 0 at top and bottom, so that eddy-induced velocity, w*=0 … … 252 268 ENDDO 253 269 254 255 256 257 270 !! calculate d/dz(-bhm * d/dz(del^2 u)) 258 271 ! ===============
Note: See TracChangeset
for help on using the changeset viewer.