Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion model/dyn_core.F90
Original file line number Diff line number Diff line change
Expand Up @@ -633,7 +633,7 @@ subroutine dyn_core(npx, npy, npz, ng, sphum, nq, bdt, n_map, n_split, zvir, cp,
ptop, phis, omga, ptc, &
q_con, delpc, gz, pkc, ws3, flagstruct%p_fac, &
flagstruct%a_imp, flagstruct%scale_z, pfull, &
flagstruct%fast_tau_w_sec, flagstruct%rf_cutoff )
flagstruct%fast_tau_w_sec, flagstruct%rf_cutoff_w )
call timing_off('Riem_Solver')

if (gridstruct%nested) then
Expand Down
2 changes: 2 additions & 0 deletions model/fv_arrays.F90
Original file line number Diff line number Diff line change
Expand Up @@ -698,6 +698,8 @@ module fv_arrays_mod
!< considered; and for non-hydrostatic models values of 10 or less should be
!< considered, with smaller values for higher-resolution.
real :: rf_cutoff = 30.E2 !< Pressure below which no Rayleigh damping is applied if tau > 0.
real :: rf_cutoff_w = 1.E2 !< Pressure below which no fast vertical velocity Rayleigh
! damping is applied if fast_tau_w_sec > 0.
real :: fast_tau_w_sec = 0.0 !< Time scale (seconds) for Rayleigh damping applied to vertical velocity only.
!< Values of 0.2 are very effective at eliminating spurious vertical motion in
!< the stratosphere. Default is 0.0, which disables this.
Expand Down
4 changes: 3 additions & 1 deletion model/fv_control.F90
Original file line number Diff line number Diff line change
Expand Up @@ -333,6 +333,7 @@ subroutine fv_control_init(Atm, dt_atmos, this_grid, grids_on_this_pe, p_split,
real , pointer :: tau_w
real , pointer :: fast_tau_w_sec
real , pointer :: rf_cutoff
real , pointer :: rf_cutoff_w
logical , pointer :: filter_phys
logical , pointer :: dwind_2d
logical , pointer :: breed_vortex_inline
Expand Down Expand Up @@ -912,6 +913,7 @@ subroutine set_namelist_pointers(Atm)
tau_w => Atm%flagstruct%tau_w
fast_tau_w_sec => Atm%flagstruct%fast_tau_w_sec
rf_cutoff => Atm%flagstruct%rf_cutoff
rf_cutoff_w => Atm%flagstruct%rf_cutoff_w
filter_phys => Atm%flagstruct%filter_phys
dwind_2d => Atm%flagstruct%dwind_2d
breed_vortex_inline => Atm%flagstruct%breed_vortex_inline
Expand Down Expand Up @@ -1080,7 +1082,7 @@ subroutine read_namelist_fv_core_nml(Atm)
dry_mass, grid_type, do_Held_Suarez, do_reed_physics, reed_cond_only, &
consv_te, fill, filter_phys, fill_dp, fill_wz, fill_gfs, consv_am, RF_fast, &
range_warn, dwind_2d, inline_q, z_tracer, reproduce_sum, adiabatic, do_vort_damp, no_dycore, &
tau, tau_w, fast_tau_w_sec, tau_h2o, rf_cutoff, nf_omega, hydrostatic, fv_sg_adj, sg_cutoff, breed_vortex_inline, &
tau, tau_w, fast_tau_w_sec, tau_h2o, rf_cutoff, rf_cutoff_w, nf_omega, hydrostatic, fv_sg_adj, sg_cutoff, breed_vortex_inline, &
na_init, nudge_dz, hybrid_z, Make_NH, n_zs_filter, nord_zs_filter, full_zs_filter, reset_eta, &
pnats, dnats, dnrts, a2b_ord, remap_t, p_ref, d2_bg_k1, d2_bg_k2, &
c2l_ord, dx_const, dy_const, umax, deglat, &
Expand Down
8 changes: 4 additions & 4 deletions model/nh_utils.F90
Original file line number Diff line number Diff line change
Expand Up @@ -353,11 +353,11 @@ subroutine Riem_Solver_c(ms, dt, is, ie, js, je, km, ng, &
#endif
ptop, hs, w3, pt, q_con, &
delp, gz, pef, ws, p_fac, a_imp, scale_m, &
pfull, fast_tau_w_sec, rf_cutoff)
pfull, fast_tau_w_sec, rf_cutoff_w)

integer, intent(in):: is, ie, js, je, ng, km
integer, intent(in):: ms
real, intent(in):: dt, akap, cp, ptop, p_fac, a_imp, scale_m, fast_tau_w_sec, rf_cutoff
real, intent(in):: dt, akap, cp, ptop, p_fac, a_imp, scale_m, fast_tau_w_sec, rf_cutoff_w
real, intent(in):: ws(is-ng:ie+ng,js-ng:je+ng)
real, intent(in), dimension(is-ng:ie+ng,js-ng:je+ng,km):: pt, delp
real, intent(in), dimension(is-ng:,js-ng:,1:):: q_con, cappa
Expand Down Expand Up @@ -392,10 +392,10 @@ subroutine Riem_Solver_c(ms, dt, is, ie, js, je, km, ng, &
allocate(rff(km))
RFw_initialized = .true.
do k=1,km
if (pfull(k) > rf_cutoff) exit
if (pfull(k) > rf_cutoff_w) exit
k_rf = k
rff_temp = real(dt/fast_tau_w_sec,kind=8) &
* sin(0.5d0*pi_8*log(real(rf_cutoff/pfull(k),kind=8))/log(real(rf_cutoff/ptop, kind=8)))**2
* sin(0.5d0*pi_8*log(real(rf_cutoff_w/pfull(k),kind=8))/log(real(rf_cutoff_w/ptop, kind=8)))**2
rff(k) = 1.0d0 / ( 1.0d0+rff_temp )
enddo
endif
Expand Down
4 changes: 2 additions & 2 deletions tools/fv_diagnostics.F90
Original file line number Diff line number Diff line change
Expand Up @@ -355,8 +355,8 @@ subroutine fv_diag_init(Atm, axes, Time, npx, npy, npz, p_ref)
trange = (/ 5., 350. /) ! temperature
trange_bad = (/ 130., 350. /) ! temperature
#else
trange = (/ 100., 350. /) ! temperature
trange_bad = (/ 150., 350. /) ! temperature
trange = (/ 50., 350. /) ! temperature
trange_bad = (/ 50., 350. /) ! temperature
#endif
endif
rhrange = (/ -10., 150. /) ! RH
Expand Down