ESCOMP / ESCOMP/atmospheric_physics

Refactor Beljaars/TMS data flow

Open
#307 0 comments 0 reactions 2 assignees Claimed by @adamrher View on GitHub
cleanup
Dominant language
Fortran
Stars
12
Forks
38
Avg merge
11h 16m
Merged PRs (30d)
5

Description

Currently vertical diffusion distinguishes between the two forms of orographic form drag: Beljaars and TMS, because in current CAM, taubljx/taubljy and tautmsx/tautmsy are distinct pbuf variables; they use "temporary" standard names to make this distinction:
* taubljx: `eastward_beljaars_surface_stress_tbd`
* tautmsx: `eastward_turbulent_mountain_surface_stress_tbd`

However, Beljaars (CAM6+) and TMS (CAM5) are mutually exclusive. The scientist-assigned standard name for both is: `eastward_turbulent_orographic_form_drag_stress_at_surface` (for x; for y is northward)

The code flow needs to be straightened out when CCPPizing either Beljaars or TMS. Locations that need work:
* total surface stresses into HB PBL scheme use "total" stress, defined as `tautotx = cam_in%wsx + tautmsx + taubljx`
* the diag_TKE UW PBL scheme uses `dragblj` and `ksrftms` directly to construct the surface stresses using pre-updated winds
* the diffusion solver uses `ksrftms` to compute the TMS drag rate (`ksrf = 0 + ksrftms`); this is subsequently used to compute the `tau_damp_rate = -gravit*ksrf(:ncol)*p%rdel(:ncol, pver)`
* ...but it uses `dragblj` to directly compute the `tau_damp_rate = 0 + dragblj`
* the diffusion solver uses `dragblj` to update `taubljx/y` with **new winds**; this drag is subsequently used to update surface residual stress

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.