Skip to content

Commit ea7a264

Browse files
committed
Merge branch 'jinboxie/atm/e3smv3_oro_merge' into next (PR #6667)
Implementation of new orographic drag parameterization scheme to alleviate wind bias in E3SM Add a new suite of orographic drag parameterization schemes into EAM. It includes 4 components all combined in one module (i.e. subroutine gwdo2d). The schemes include orographic gravity wave drag (oGWD, Xie et al.,2020), flow-blocking drag (FBD, Xie et al.,2020), small-scale GWD (sGWD, Tsiringakis et al.,2017), and turbulent-scale orographic form drag (TOFD, Beljaars et al., 2004). The scheme is distributed by the interface named gwdo_gsd. The oGWD, FBD, and sGWD are implemented in gw_drag.F90, while TOFD is implemented in clubb_intr.F90 to join the vertical diffusion process. Another change is in the startup_initialconds.F90 and gw_drag.F90 where the new topographic parameters (OA, OC, OL) are input into the model. Although it is possible to turn each new scheme on/off individually, the only validated config is to have them all on (and the original scheme off). Technical guide for this scheme is available at https://docs.e3sm.org/E3SM/EAM/tech-guide/orodrag/ [BFB]
2 parents 2db131b + 87a6906 commit ea7a264

File tree

2 files changed

+32
-1
lines changed

2 files changed

+32
-1
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
module clubb_intr
2+
!-------------------------------------------------------------------------------
3+
! Dummy module to override src/physics/cam/clubb_intr.F90
4+
!-------------------------------------------------------------------------------
5+
use shr_kind_mod, only: r8=>shr_kind_r8
6+
public :: clubb_implements_cnst
7+
public :: clubb_init_cnst
8+
public :: clubb_readnl
9+
contains
10+
!===============================================================================
11+
function clubb_implements_cnst(name)
12+
! Return true if specified constituent is implemented
13+
character(len=*), intent(in) :: name ! constituent name
14+
logical :: clubb_implements_cnst ! return value
15+
clubb_implements_cnst = .false.
16+
end function clubb_implements_cnst
17+
!===============================================================================
18+
subroutine clubb_init_cnst(name, q, gcid)
19+
! Initialize the state if clubb_do_adv
20+
character(len=*), intent(in) :: name ! constituent name
21+
real(r8), intent(out) :: q(:,:) ! mass mixing ratio (gcol, plev)
22+
integer, intent(in) :: gcid(:) ! global column id
23+
return
24+
end subroutine clubb_init_cnst
25+
!===============================================================================
26+
subroutine clubb_readnl(nlfile)
27+
character(len=*), intent(in) :: nlfile ! filepath for file containing namelist input
28+
return
29+
end subroutine clubb_readnl
30+
!===============================================================================
31+
end module clubb_intr

components/eam/src/physics/crm/physpkg.F90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -638,7 +638,7 @@ subroutine phys_init( phys_state, phys_tend, pbuf2d, cam_out )
638638
if (co2_transport()) call co2_init()
639639
call co2_diags_init(phys_state)
640640

641-
call gw_init()
641+
call gw_init(pbuf2d)
642642

643643
call rayleigh_friction_init()
644644

0 commit comments

Comments
 (0)