-
Notifications
You must be signed in to change notification settings - Fork 1
WACCM‐x bug: between cam6_3_108 ‐ cam6_3_109
[below are notes - nothing official - please contact @PeterHjortLauritzen if you want to quote anything]
Issue:
cam6_3_109 and later: Very cold summer mesopause temperature and very large gravity wave forcing
cam6_3_108: looks fine
Solution to issue is here: https://github.com/ESCOMP/CAM/issues/885 (below are some notes during the investigative process)
At time-stamp 1800 PS in 109 minus 108 look very different:
Lots of thermodynamic changes went into cam6_3_109. The issue is with FV using WACCM-x.
Observations:
- This call in physics_update changed from
if ( waccmx_is('ionosphere') .or. waccmx_is('neutral') ) then
call cam_thermo_update(state%q, state%t, state%lchnk, state%ncol, &
to_moist_factor=state%pdeldry(:ncol,:)/state%pdel(:ncol,:) )
endif
to
if (dry_air_species_num>0) then
call cam_thermo_dry_air_update(state%q, state%t, state%lchnk, state%ncol)
endif
I believe the dry air species are already dry so I don't think it is correct to scale them by to_moist_factor since the formulas in cam_thermo are for dry mixing ratios. That said, older versions of CAM did pass moist mixing ratios.
- I think there is a bug in fv/dp_coupling.F90
I think the call
call set_state_pdry(phys_state(lchnk)) ! First get dry pressure to use for this timestep
call set_wet_to_dry(phys_state(lchnk)) ! Dynamics had moist, physics wants dry.
should be moved to before this call
if (dry_air_species_num>0) then
!------------------------------------------------------------
! Apply limiters to mixing ratios of major species
!------------------------------------------------------------
call physics_cnst_limit( phys_state(lchnk) )
!-----------------------------------------------------------------------------
! Call cam_thermo_update to compute cpairv, rairv, mbarv, and cappav as constituent dependent variables
! and compute molecular viscosity(kmvis) and conductivity(kmcnd)
!-----------------------------------------------------------------------------
call cam_thermo_dry_air_update(phys_state(lchnk)%q, phys_state(lchnk)%t, lchnk, ncol)
endif
so that the dry air mixing ratios are dry for the call.
That said, this code is the same in 108 and 109.
Issues with WACCM.
Below is the code base that is too "wet"
/glade/work/fvitt/camdev/cam6_3_112/
Doug
[from Francis] These are the changes that I think might be relevant:
cam6_3_097: Heterogeneous freezing science updates and bug fixes cam6_3_096: Aqueous chemistry bug fix cam6_3_095: Chemistry updates -- MAM5 + NAT param and het chem updates (see https://github.com/ESCOMP/CAM/issues/558)
cam6_3_094: modify CLUBB to operate on dry density / mixing ratios
cam6_3_091: Bringing in new CLUBB and SILHS externals.
cam6_3_077: Refactor aerosol-cloud interaction code to use generalized aerosol interfaces
cam6_3_066: cam-clubb interface cleanup and misc bug fixes
cam6_3_059: Bringing in the new CLUBB and SILHS Externals. Fixes #515 #467 #461 #572
cam6_3_035: Bring in numerous minor changes
cam6_3_033: Transport CL, BR; max solar zenth angle; waccmx pelayout; fix leap day issue
cam6_3_028: Science Updates for CESM2.2 release and cam_development
cam6_3_026: Support for the CAM Perturbed Parameter Ensemble (PPE)
cam6_3_019: Fix indexing issue in reaction rates; remove duplicate pbuf_ snapshot names cam6_3_018: Turn on aerosol convective processes and SOA bug fix
cam6_3_017: Changes to CAM physics and PUMAS microphysics to optimize for GPU offloading.
---- CESM 2.2 ----
cam6_2_033: Chemistry updates
cam6_2_030: Fix for floating point issue in GW drag.
cam6_2_004: Use Heelis high-latitude electric potential model in WACCM
cam6_2_002: Misc WACCM(X) updates and bug fixes
cam6_1_027: Namelist settings for 2-degrees; corrections to chemistry mechanisms
cam6_1_025: Update CLUBB library and introduce SILHS to CAM trunk
cam6_1_021: Corrections to aerosol surface area densities used in chemistry
cam6_1_012: Several fixes for consistent treatment of wet/dry mass mixing ratios.
---- CESM 2.1 ----