Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/cam_development' into log_gamma_fix
Browse files Browse the repository at this point in the history
  • Loading branch information
briandobbins committed Jul 10, 2024
2 parents 20463ef + b29e7e3 commit e4531c3
Show file tree
Hide file tree
Showing 10 changed files with 316 additions and 614 deletions.
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
[submodule "atmos_phys"]
path = src/atmos_phys
url = https://github.com/ESCOMP/atmospheric_physics
fxtag = atmos_phys0_02_006
fxtag = atmos_phys0_03_000
fxrequired = AlwaysRequired
fxDONOTUSEurl = https://github.com/ESCOMP/atmospheric_physics

Expand Down
1 change: 1 addition & 0 deletions bld/configure
Original file line number Diff line number Diff line change
Expand Up @@ -2185,6 +2185,7 @@ sub write_filepath
print $fh "$camsrcdir/src/physics/simple\n";
print $fh "$camsrcdir/src/atmos_phys/kessler\n";
print $fh "$camsrcdir/src/atmos_phys/held_suarez\n";
print $fh "$camsrcdir/src/atmos_phys/tj2016\n";
}

# Weak scaling fix. This has to come before physics/cam and before dycores
Expand Down
212 changes: 212 additions & 0 deletions doc/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,5 +1,217 @@
===============================================================

Tag name: cam6_4_008
Originator(s): pel, cacraig
Date: July 10, 2024
One-line Summary: HB mods + dycore mods
Github PR URL: https://github.com/ESCOMP/CAM/pull/1071

Purpose of changes (include the issue number and title text for each relevant GitHub issue):
- Possible modification to HB in CAM7: https://github.com/ESCOMP/CAM/issues/1062
- HB diffusion in CAM6/7 performs mixing for stable conditions (Ri>0) as well as background mixing in addition to unstable
mixing (Ri<0)
- Modify HB in CAM6/7 to only mix for unstable conditions
- add div4 sponge (in SE dycore) in MT configuration for stability
- friction frictional heating in del4 sponge

Describe any changes made to build system: N/A

Describe any changes made to the namelist: N/A

List any changes to the defaults for the boundary datasets: N/A

Describe any substantial timing or memory changes: N/A

Code reviewed by: cacraig

List all files eliminated: N/A

List all files added and what they do: N/A

List all existing files that have been modified, and describe the changes:
M src/atmos_phys
- Directory which was updated in cam6_4_007, but not committed

M src/dynamics/se/dycore/global_norms_mod.F90
M src/dynamics/se/dycore/prim_advance_mod.F90
M src/physics/cam/hb_diff.F90
M src/physics/cam/pbl_utils.F90
- changes as described above


If there were any failures reported from running test_driver.sh on any test
platform, and checkin with these failures has been OK'd by the gatekeeper,
then copy the lines from the td.*.status files for the failed tests to the
appropriate machine below. All failed tests must be justified.

derecho/intel/aux_cam:

ERP_Ln9.f09_f09_mg17.FCSD_HCO.derecho_intel.cam-outfrq9s (Overall: FAIL) details:
FAIL ERP_Ln9.f09_f09_mg17.FCSD_HCO.derecho_intel.cam-outfrq9s COMPARE_base_rest
- pre-existing failure due to HEMCO not having reproducible results issues #1018 and #856

SMS_D_Ln9_P1280x1.ne0ARCTICne30x4_ne0ARCTICne30x4_mt12.FHIST.derecho_intel.cam-outfrq9s (Overall: PEND) details:
PEND SMS_D_Ln9_P1280x1.ne0ARCTICne30x4_ne0ARCTICne30x4_mt12.FHIST.derecho_intel.cam-outfrq9s SHAREDLIB_BUILD RERUN
SMS_D_Ln9_P1280x1.ne0CONUSne30x8_ne0CONUSne30x8_mt12.FCHIST.derecho_intel.cam-outfrq9s (Overall: PEND) details:
PEND SMS_D_Ln9_P1280x1.ne0CONUSne30x8_ne0CONUSne30x8_mt12.FCHIST.derecho_intel.cam-outfrq9s SHAREDLIB_BUILD RERUN
- pre-existing failures - need fix in CLM external

SMS_D_Ln9.T42_T42.FSCAM.derecho_intel.cam-outfrq9s (Overall: FAIL) details:
FAIL SMS_D_Ln9.T42_T42.FSCAM.derecho_intel.cam-outfrq9s RUN time=44
- Bug in med.F90 - Will go away when CICE external is updated post git-fleximod

ERC_D_Ln9.f19_f19_mg17.QPC6.derecho_intel.cam-outfrq3s_cosp (Overall: DIFF) details:
ERC_D_Ln9_P144x1.ne16pg3_ne16pg3_mg17.QPC6HIST.derecho_intel.cam-outfrq3s_ttrac_usecase (Overall: DIFF) details:
ERP_D_Ln9.f19_f19_mg17.QPC6.derecho_intel.cam-outfrq9s (Overall: DIFF) details:
ERP_D_Ln9.ne30pg3_ne30pg3_mg17.FLTHIST.derecho_intel.cam-outfrq9s (Overall: DIFF) details:
ERP_D_Ln9.ne30pg3_ne30pg3_mg17.FLTHIST.derecho_intel.cam-outfrq9s_rrtmgp (Overall: DIFF) details:
ERP_D_Ln9_P64x2.f09_f09_mg17.QSC6.derecho_intel.cam-outfrq9s (Overall: DIFF) details:
ERP_Ld3.f09_f09_mg17.FWHIST.derecho_intel.cam-reduced_hist1d (Overall: DIFF) details:
ERP_Ln9.C96_C96_mg17.F2000climo.derecho_intel.cam-outfrq9s_mg3 (Overall: DIFF) details:
ERP_Ln9.f09_f09_mg17.F1850.derecho_intel.cam-outfrq9s (Overall: DIFF) details:
ERP_Ln9.f09_f09_mg17.F2000climo.derecho_intel.cam-outfrq9s (Overall: DIFF) details:
ERP_Ln9.f09_f09_mg17.F2010climo.derecho_intel.cam-outfrq9s (Overall: DIFF) details:
ERP_Ln9.f09_f09_mg17.FHIST_BDRD.derecho_intel.cam-outfrq9s (Overall: DIFF) details:
ERP_Ln9.f19_f19_mg17.FWsc1850.derecho_intel.cam-outfrq9s (Overall: DIFF) details:
ERP_Ln9.ne30pg3_ne30pg3_mg17.FCnudged.derecho_intel.cam-outfrq9s (Overall: DIFF) details:
ERP_Ln9.ne30pg3_ne30pg3_mg17.FW2000climo.derecho_intel.cam-outfrq9s (Overall: DIFF) details:
ERP_Ln9_P24x3.f45_f45_mg37.QPWmaC6.derecho_intel.cam-outfrq9s_mee_fluxes (Overall: DIFF) details:
ERS_Ld3.f10_f10_mg37.F1850.derecho_intel.cam-outfrq1d_14dec_ghg_cam7 (Overall: DIFF) details:
ERS_Ln9.f09_f09_mg17.FX2000.derecho_intel.cam-outfrq9s (Overall: DIFF) details:
ERS_Ln9.f19_f19_mg17.FXSD.derecho_intel.cam-outfrq9s (Overall: DIFF) details:
ERS_Ln9_P288x1.mpasa120_mpasa120.F2000climo.derecho_intel.cam-outfrq9s_mpasa120 (Overall: DIFF) details:
ERS_Ln9_P36x1.mpasa480_mpasa480.F2000climo.derecho_intel.cam-outfrq9s_mpasa480 (Overall: DIFF) details:
SMS_D_Ln9.f09_f09_mg17.FCts2nudged.derecho_intel.cam-outfrq9s_leapday (Overall: DIFF) details:
SMS_D_Ln9.f09_f09_mg17.FCvbsxHIST.derecho_intel.cam-outfrq9s (Overall: DIFF) details:
SMS_D_Ln9.f09_f09_mg17.FSD.derecho_intel.cam-outfrq9s (Overall: DIFF) details:
SMS_D_Ln9.f19_f19_mg17.FWma2000climo.derecho_intel.cam-outfrq9s (Overall: DIFF) details:
SMS_D_Ln9.f19_f19_mg17.FWma2000climo.derecho_intel.cam-outfrq9s_waccm_ma_mam4 (Overall: DIFF) details:
SMS_D_Ln9.f19_f19_mg17.FXHIST.derecho_intel.cam-outfrq9s_amie (Overall: DIFF) details:
SMS_D_Ln9.f19_f19_mg17.QPC2000climo.derecho_intel.cam-outfrq3s_usecase (Overall: DIFF) details:
SMS_D_Ln9.ne16_ne16_mg17.QPX2000.derecho_intel.cam-outfrq9s (Overall: DIFF) details:
SMS_D_Ln9.ne16pg3_ne16pg3_mg17.FX2000.derecho_intel.cam-outfrq9s (Overall: DIFF) details:
SMS_D_Ln9.ne30pg3_ne30pg3_mg17.FMTHIST.derecho_intel.cam-outfrq9s (Overall: DIFF) details:
SMS_D_Ln9_P1280x1.ne30pg3_ne30pg3_mg17.FCLTHIST.derecho_intel.cam-outfrq9s (Overall: DIFF) details:
SMS_Ld1.f09_f09_mg17.FCHIST_GC.derecho_intel.cam-outfrq1d (Overall: DIFF) details:
SMS_Ld1.f09_f09_mg17.FW2000climo.derecho_intel.cam-outfrq1d (Overall: DIFF) details:
SMS_Ld1.ne30pg3_ne30pg3_mg17.FC2010climo.derecho_intel.cam-outfrq1d (Overall: DIFF) details:
SMS_Lh12.f09_f09_mg17.FCSD_HCO.derecho_intel.cam-outfrq3h (Overall: DIFF) details:
SMS_Lm13.f10_f10_mg37.F2000climo.derecho_intel.cam-outfrq1m (Overall: DIFF) details:
SMS_Ln9.f09_f09_mg17.F2010climo.derecho_intel.cam-nudging (Overall: DIFF) details:
SMS_Ln9.f09_f09_mg17.FW1850.derecho_intel.cam-reduced_hist3s (Overall: DIFF) details:
SMS_Ln9.f19_f19.F2000climo.derecho_intel.cam-silhs (Overall: DIFF) details:
SMS_Ln9.f19_f19_mg17.FHIST.derecho_intel.cam-outfrq9s_nochem (Overall: DIFF) details:
SMS_Ln9.ne30pg3_ne30pg3_mg17.FW2000climo.derecho_intel.cam-outfrq9s_rrtmgp (Overall: DIFF) details:
- All tests which use CLUBB will have answer changes


izumi/nag/aux_cam:
DAE.f45_f45_mg37.FHS94.izumi_nag.cam-dae (Overall: FAIL) details:
FAIL DAE.f45_f45_mg37.FHS94.izumi_nag.cam-dae RUN time=10
PEND DAE.f45_f45_mg37.FHS94.izumi_nag.cam-dae COMPARE_base_da
- pre-existing failure - issue #670

ERC_D_Ln9.f10_f10_mg37.QPC6.izumi_nag.cam-outfrq3s_am (Overall: DIFF) details:
ERC_D_Ln9.f10_f10_mg37.QPC6.izumi_nag.cam-outfrq3s_cospsathist (Overall: DIFF) details:
ERC_D_Ln9.f10_f10_mg37.QPC6.izumi_nag.cam-outfrq3s (Overall: DIFF) details:
ERC_D_Ln9.f10_f10_mg37.QPWmaC6.izumi_nag.cam-outfrq3s (Overall: DIFF) details:
ERI_D_Ln18.f19_f19_mg17.QPC6.izumi_nag.cam-ghgrmp_e8 (Overall: DIFF) details:
ERP_Ln9.ne5pg3_ne5pg3_mg37.QPC6.izumi_nag.cam-outfrq9s_clubbmf (Overall: DIFF) details:
SMS_D_Ln3.ne5pg3_ne5pg3_mg37.QPX2000.izumi_nag.cam-outfrq3s (Overall: DIFF) details:
SMS_D_Ln6.ne5_ne5_mg37.QPWmaC4.izumi_nag.cam-outfrq3s_physgrid_tem (Overall: DIFF) details:
SMS_D_Ln9.f10_f10_mg37.QPC6.izumi_nag.cam-outfrq3s_ba (Overall: DIFF) details:
SMS_P48x1_D_Ln3.f09_f09_mg17.QPC6HIST.izumi_nag.cam-outfrq3s_co2cycle_usecase (Overall: DIFF) details:
- All tests which use CLUBB will have answer changes


izumi/gnu/aux_cam:
ERP_D_Ln9.C48_C48_mg17.QPC6.izumi_gnu.cam-outfrq9s (Overall: DIFF) details:
ERP_D_Ln9.ne3pg3_ne3pg3_mg37.QPC6.izumi_gnu.cam-outfrq9s_rrtmgp (Overall: DIFF) details:
- All tests which use CLUBB will have answer changes


===============================================================
===============================================================

Tag name: cam6_4_007
Originator(s): Michael Waxmonsky
Date: 7/8/2024
One-line Summary: cam6_4_007: CCPP-ized TJ2016
Github PR URL: https://github.com/ESCOMP/CAM/pull/1070

Purpose of changes (include the issue number and title text for each relevant GitHub issue):
- Exchanges TJ2016 source from cam/physics/simple to atmospheric_physics
submodule (https://github.com/ESCOMP/atmospheric_physics/pull/92)

Describe any changes made to build system:
- Adds src/atmos_phys/tj2016 to list of folders to search for compiling in
<case>/bld/atm/obj/Filepath used during ./preview_namelists

Describe any changes made to the namelist: N/A

List any changes to the defaults for the boundary datasets: N/A

Describe any substantial timing or memory changes: N/A

Code reviewed by: cacraigucar, nusbaume

List all files eliminated:

$ git diff --name-status cam_development..tj2016 | grep ^D
D src/physics/simple/tj2016.F90

List all files added and what they do: N/A

List all existing files that have been modified, and describe the changes:

$ git diff --name-status cam_development..tj2016 | grep ^M

M .gitmodules
- Updating atmospheric_physics to tag atmos_phys0_03_000

M bld/configure
- See comment to change in build system

M src/physics/simple/tj2016_cam.F90
- Updated API into CCPP-ized TJ2016 precip and sfc_plb_hs run functions
(See https://github.com/ESCOMP/atmospheric_physics/pull/92 for API change desciription).

If there were any failures reported from running test_driver.sh on any test
platform, and checkin with these failures has been OK'd by the gatekeeper,
then copy the lines from the td.*.status files for the failed tests to the
appropriate machine below. All failed tests must be justified.

derecho/intel/aux_cam:
ERP_Ln9.f09_f09_mg17.FCSD_HCO.derecho_intel.cam-outfrq9s (Overall: FAIL) details:
FAIL ERP_Ln9.f09_f09_mg17.FCSD_HCO.derecho_intel.cam-outfrq9s COMPARE_base_rest
SMS_D_Ln9_P1280x1.ne0ARCTICne30x4_ne0ARCTICne30x4_mt12.FHIST.derecho_intel.cam-outfrq9s
(Overall: FAIL) details:
FAIL SMS_D_Ln9_P1280x1.ne0ARCTICne30x4_ne0ARCTICne30x4_mt12.FHIST.derecho_intel.cam-outfrq9s SHAREDLIB_BUILD time=3
SMS_D_Ln9_P1280x1.ne0CONUSne30x8_ne0CONUSne30x8_mt12.FCHIST.derecho_intel.cam-outfrq9s (Overall: PEND) details:
PEND SMS_D_Ln9_P1280x1.ne0CONUSne30x8_ne0CONUSne30x8_mt12.FCHIST.derecho_intel.cam-outfrq9s SHAREDLIB_BUILD
SMS_D_Ln9.T42_T42.FSCAM.derecho_intel.cam-outfrq9s (Overall: PEND) details:
PEND SMS_D_Ln9.T42_T42.FSCAM.derecho_intel.cam-outfrq9s RUN RERUN
- Pre-existing failures

izumi/nag/aux_cam:
DAE.f45_f45_mg37.FHS94.izumi_nag.cam-dae (Overall: FAIL) details:
FAIL DAE.f45_f45_mg37.FHS94.izumi_nag.cam-dae RUN time=12
PEND DAE.f45_f45_mg37.FHS94.izumi_nag.cam-dae COMPARE_base_da
- Pre-existing failure

izumi/gnu/aux_cam: N/A

CAM tag used for the baseline comparison tests if different than previous
tag:
- cesm2_3_alpha17g for manually testing FTJ16 compset

Summarize any changes to answers, i.e.,
- what code configurations:
- what platforms/compilers:
- nature of change (roundoff; larger than roundoff but same climate; new climate): N/A

===============================================================

Tag name: cam6_4_006
Originator(s): pel, eaton
Date: 3 July 2024
Expand Down
6 changes: 5 additions & 1 deletion src/dynamics/se/dycore/global_norms_mod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -639,7 +639,11 @@ subroutine print_cfl(elem,hybrid,nets,nete,dtnu,ptop,pmid,&
!
! if user or namelist is not specifying sponge del4 settings here are best guesses (empirically determined)
!
if (top_090_140km.or.top_140_600km) then ! defaults for waccm(x)
if (top_042_090km) then
if (sponge_del4_lev <0) sponge_del4_lev = 4
if (sponge_del4_nu_fac <0) sponge_del4_nu_fac = 3.375_r8 !max value without having to increase subcycling of div4
if (sponge_del4_nu_div_fac<0) sponge_del4_nu_div_fac = 3.375_r8 !max value without having to increase subcycling of div4
else if (top_090_140km.or.top_140_600km) then ! defaults for waccm(x)
if (sponge_del4_lev <0) sponge_del4_lev = 20
if (sponge_del4_nu_fac <0) sponge_del4_nu_fac = 5.0_r8
if (sponge_del4_nu_div_fac<0) sponge_del4_nu_div_fac = 10.0_r8
Expand Down
4 changes: 2 additions & 2 deletions src/dynamics/se/dycore/prim_advance_mod.F90
Original file line number Diff line number Diff line change
Expand Up @@ -444,7 +444,7 @@ subroutine advance_hypervis_dp(edge3,elem,fvm,hybrid,deriv,nt,qn0,nets,nete,dt2,
use dimensions_mod, only: nu_scale_top,nu_lev,kmvis_ref,kmcnd_ref,rho_ref,km_sponge_factor
use dimensions_mod, only: nu_t_lev
use control_mod, only: nu, nu_t, hypervis_subcycle,hypervis_subcycle_sponge, nu_p, nu_top
use control_mod, only: molecular_diff
use control_mod, only: molecular_diff,sponge_del4_lev
use hybrid_mod, only: hybrid_t!, get_loop_ranges
use element_mod, only: element_t
use derivative_mod, only: derivative_t, laplace_sphere_wk, vlaplace_sphere_wk, vlaplace_sphere_wk_mol
Expand Down Expand Up @@ -668,7 +668,7 @@ subroutine advance_hypervis_dp(edge3,elem,fvm,hybrid,deriv,nt,qn0,nets,nete,dt2,
call tot_energy_dyn(elem,fvm,nets,nete,nt,qn0,'dCH')
do ie=nets,nete
!$omp parallel do num_threads(vert_num_threads), private(k,i,j,v1,v2,heating)
do k=ksponge_end,nlev
do k=sponge_del4_lev+2,nlev
!
! only do "frictional heating" away from sponge
!
Expand Down
4 changes: 2 additions & 2 deletions src/physics/cam/hb_diff.F90
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,7 @@ subroutine compute_hb_free_atm_diff(ncol, &
!
!-----------------------------------------------------------------------

use pbl_utils, only: virtem, calc_ustar, calc_obklen, austausch_atm
use pbl_utils, only: virtem, calc_ustar, calc_obklen, austausch_atm_free

!------------------------------Arguments--------------------------------
!
Expand Down Expand Up @@ -321,7 +321,7 @@ subroutine compute_hb_free_atm_diff(ncol, &
!
! Get free atmosphere exchange coefficients
!
call austausch_atm(pcols, ncol, pver, ntop_turb, nbot_turb, &
call austausch_atm_free(pcols, ncol, pver, ntop_turb, nbot_turb, &
ml2, ri, s2, kvf)

kvq(:ncol,:) = kvf(:ncol,:)
Expand Down
60 changes: 59 additions & 1 deletion src/physics/cam/pbl_utils.F90
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ module pbl_utils
public calc_obklen
public virtem
public compute_radf
public austausch_atm
public austausch_atm, austausch_atm_free

real(r8), parameter :: ustar_min = 0.01_r8

Expand Down Expand Up @@ -408,4 +408,62 @@ subroutine austausch_atm(pcols, ncol, pver, ntop, nbot, ml2, ri, s2, kvf)

end subroutine austausch_atm

subroutine austausch_atm_free(pcols, ncol, pver, ntop, nbot, ml2, ri, s2, kvf)

!---------------------------------------------------------------------- !
! !
! same as austausch_atm but only mixing for Ri<0 !
! i.e. no background mixing and mixing for Ri>0 !
! !
!---------------------------------------------------------------------- !

! --------------- !
! Input arguments !
! --------------- !

integer, intent(in) :: pcols ! Atmospheric columns dimension size
integer, intent(in) :: ncol ! Number of atmospheric columns
integer, intent(in) :: pver ! Number of atmospheric layers
integer, intent(in) :: ntop ! Top layer for calculation
integer, intent(in) :: nbot ! Bottom layer for calculation

real(r8), intent(in) :: ml2(pver+1) ! Mixing lengths squared
real(r8), intent(in) :: s2(pcols,pver) ! Shear squared
real(r8), intent(in) :: ri(pcols,pver) ! Richardson no

! ---------------- !
! Output arguments !
! ---------------- !

real(r8), intent(out) :: kvf(pcols,pver+1) ! Eddy diffusivity for heat and tracers

! --------------- !
! Local Variables !
! --------------- !

real(r8) :: fofri ! f(ri)
real(r8) :: kvn ! Neutral Kv

integer :: i ! Longitude index
integer :: k ! Vertical index

! ----------------------- !
! Main Computation Begins !
! ----------------------- !

kvf(:ncol,:) = 0.0_r8
! Compute the free atmosphere vertical diffusion coefficients: kvh = kvq = kvm.
do k = ntop, nbot - 1
do i = 1, ncol
if( ri(i,k) < 0.0_r8 ) then
fofri = sqrt( max( 1._r8 - 18._r8 * ri(i,k), 0._r8 ) )
else
fofri = 0.0_r8
end if
kvn = ml2(k) * sqrt(s2(i,k))
kvf(i,k+1) = kvn * fofri
end do
end do
end subroutine austausch_atm_free

end module pbl_utils
Loading

0 comments on commit e4531c3

Please sign in to comment.