Changeset 6386 for branches/2016/dev_r6381_SIMPLIF_5/NEMOGCM/NEMO
- Timestamp:
- 2016-03-11T15:11:22+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2016/dev_r6381_SIMPLIF_5/NEMOGCM/NEMO/OPA_SRC/LDF/ldfdyn.F90
r6383 r6386 45 45 !! will be computed. 46 46 REAL(wp), PUBLIC :: rn_csmc !: Smagorinsky constant of proportionality 47 REAL(wp), PUBLIC :: rn_ cfacmin!: Multiplicative factor of theorectical minimum Smagorinsky viscosity48 REAL(wp), PUBLIC :: rn_ cfacmax!: Multiplicative factor of theorectical maximum Smagorinsky viscosity47 REAL(wp), PUBLIC :: rn_minfac !: Multiplicative factor of theorectical minimum Smagorinsky viscosity 48 REAL(wp), PUBLIC :: rn_maxfac !: Multiplicative factor of theorectical maximum Smagorinsky viscosity 49 49 50 50 LOGICAL , PUBLIC :: l_ldfdyn_time !: flag for time variation of the lateral eddy viscosity coef. … … 99 99 & ln_dynldf_lev, ln_dynldf_hor, ln_dynldf_iso, & 100 100 & nn_ahm_ijk_t , rn_ahm_0, rn_ahm_b, rn_bhm_0, & 101 & rn_csmc , rn_ cfacmin, rn_cfacmax101 & rn_csmc , rn_minfac, rn_maxfac 102 102 !!---------------------------------------------------------------------- 103 103 ! … … 134 134 WRITE(numout,*) ' Smagorinsky coefficient rn_csmc = ', rn_csmc 135 135 WRITE(numout,*) ' factor multiplier for theorectical lower limit for ' 136 WRITE(numout,*) ' Smagorinsky eddy visc (def. 1.0) rn_ cfacmin = ', rn_cfacmin136 WRITE(numout,*) ' Smagorinsky eddy visc (def. 1.0) rn_minfac = ', rn_minfac 137 137 WRITE(numout,*) ' factor multiplier for theorectical lower upper for ' 138 WRITE(numout,*) ' Smagorinsky eddy visc (def. 1.0) rn_ cfacmax = ', rn_cfacmax138 WRITE(numout,*) ' Smagorinsky eddy visc (def. 1.0) rn_maxfac = ', rn_maxfac 139 139 ENDIF 140 140 … … 234 234 l_ldfdyn_time = .TRUE. ! will be calculated by call to ldf_dyn routine in step.F90 235 235 ! 236 ! allocate locate gradient arrays used in ldf_dyn. Allocated once here for efficiency.236 ! allocate arrays used in ldf_dyn. 237 237 ALLOCATE( dtensq(jpi,jpj) , dshesq(jpi,jpj) , esqt(jpi,jpj) , esqf(jpi,jpj) , STAT=ierr ) 238 238 IF( ierr /= 0 ) CALL ctl_stop( 'STOP', 'ldf_dyn_init: failed to allocate Smagorinsky arrays') … … 328 328 ! 329 329 zcmsmag = (rn_csmc/rpi)**2 ! (C_smag/pi)^2 330 zstabf_lo = rn_cfacmin * rn_cfacmin / ( 2_.wp * 4._wp * zcmsmag ) ! lower limit stability factor scaling 331 zstabf_up = rn_cfacmax / ( 4._wp * zcmsmag * rdt ) ! upper limit stability factor scaling 332 ! 330 zstabf_lo = rn_minfac * rn_minfac / ( 2._wp * 4._wp * zcmsmag ) ! lower limit stability factor scaling 331 zstabf_up = rn_maxfac / ( 4._wp * zcmsmag * 2._wp * rdt ) ! upper limit stability factor scaling 332 IF( ln_dynldf_blp ) zstabf_lo = ( 16._wp / 9._wp ) * zstabf_lo ! provide |U|L^3/12 lower limit instead 333 ! ! of |U|L^3/16 in blp case 333 334 DO jk = 1, jpkm1 334 335 ! … … 365 366 & dshesq(ji-1,jj) + dshesq(ji-1,jj-1) ) ) 366 367 ahmt(ji,jj,jk) = MAX( ahmt(ji,jj,jk), & 367 & SQRT( (zu2pv2_ij + zu2pv2_ij_m1) * zdelta * zstabf_lo ) ) ! Impose lower limit == cfacmin* |U|L/2368 ahmt(ji,jj,jk) = MIN( ahmt(ji,jj,jk), zdelta * zstabf_up ) ! Impose upper limit == cfacmax * L^2/(4dt)368 & SQRT( (zu2pv2_ij + zu2pv2_ij_m1) * zdelta * zstabf_lo ) ) ! Impose lower limit == minfac * |U|L/2 369 ahmt(ji,jj,jk) = MIN( ahmt(ji,jj,jk), zdelta * zstabf_up ) ! Impose upper limit == maxfac * L^2/(4*2dt) 369 370 ! F-point value 370 371 zdelta = zcmsmag * esqf(ji,jj) ! L^2 * (C_smag/pi)^2 … … 373 374 & dtensq(ji+1,jj) + dtensq(ji+1,jj+1) ) ) 374 375 ahmf(ji,jj,jk) = MAX( ahmf(ji,jj,jk), & 375 & SQRT( (zu2pv2_ij + zu2pv2_ij_p1) * zdelta * zstabf_lo ) ) ! Impose lower limit == cfacmin* |U|L/2376 ahmf(ji,jj,jk) = MIN( ahmf(ji,jj,jk), zdelta * zstabf_up ) ! Impose upper limit == cfacmax * L^2/(4dt)376 & SQRT( (zu2pv2_ij + zu2pv2_ij_p1) * zdelta * zstabf_lo ) ) ! Impose lower limit == minfac * |U|L/2 377 ahmf(ji,jj,jk) = MIN( ahmf(ji,jj,jk), zdelta * zstabf_up ) ! Impose upper limit == maxfac * L^2/(4*2dt) 377 378 ! 378 379 END DO … … 385 386 ! = sqrt( A_lap_smag L^2/8 ) 386 387 ! stability limits already applied to laplacian values 388 ! effective default limits are |U|L^3/12 < B_hm < L^4/(32*2dt) 387 389 ! 388 390 DO jk = 1, jpkm1
Note: See TracChangeset
for help on using the changeset viewer.