From 772d8809b70acfc8dd20d80ccf9e246eba0171b4 Mon Sep 17 00:00:00 2001 From: Francis Vitt Date: Fri, 6 Oct 2023 15:32:03 -0600 Subject: [PATCH 01/18] misc updates modified: bld/namelist_files/namelist_defaults_cam.xml modified: bld/namelist_files/namelist_definition.xml modified: cime_config/config_pes.xml modified: cime_config/testdefs/testlist_cam.xml modified: src/control/cam_history.F90 modified: src/dynamics/se/dycore/global_norms_mod.F90 modified: src/dynamics/se/dycore/prim_advance_mod.F90 modified: src/ionosphere/waccmx/edyn_init.F90 modified: src/ionosphere/waccmx/edynamo.F90 modified: src/ionosphere/waccmx/ionosphere_interface.F90 modified: src/physics/cam/vertical_diffusion.F90 --- bld/namelist_files/namelist_defaults_cam.xml | 3 +- bld/namelist_files/namelist_definition.xml | 10 +- cime_config/config_pes.xml | 103 ++++++++++++++++++ cime_config/testdefs/testlist_cam.xml | 30 +++++ src/control/cam_history.F90 | 19 ++-- src/dynamics/se/dycore/global_norms_mod.F90 | 5 +- src/dynamics/se/dycore/prim_advance_mod.F90 | 5 +- src/ionosphere/waccmx/edyn_init.F90 | 1 + src/ionosphere/waccmx/edynamo.F90 | 1 + .../waccmx/ionosphere_interface.F90 | 6 +- src/physics/cam/vertical_diffusion.F90 | 6 +- 11 files changed, 166 insertions(+), 23 deletions(-) diff --git a/bld/namelist_files/namelist_defaults_cam.xml b/bld/namelist_files/namelist_defaults_cam.xml index fc74b3e978..fd1c17846a 100644 --- a/bld/namelist_files/namelist_defaults_cam.xml +++ b/bld/namelist_files/namelist_defaults_cam.xml @@ -167,6 +167,7 @@ atm/waccm/ic/waccmx_aqua_ne16np4_126L_c191108.nc atm/waccm/ic/waccmx4_neutral_aquap_ne16np4_126lev_c200827.nc atm/waccm/ic/fx2000_phys-ionos-cpl_ne30_spinup01.cam.i.0002-01-01-00000_c201014.nc +atm/waccm/ic/waccmx_ne30pg3_c231005.nc atm/cam/inic/fv3/aqua_0006-01-01_C24_L32_c200625.nc atm/cam/inic/fv3/aqua_0006-01-01_C48_L32_c200625.nc @@ -3016,7 +3017,7 @@ 1 -2 +3 2 .true. diff --git a/bld/namelist_files/namelist_definition.xml b/bld/namelist_files/namelist_definition.xml index dfe47f84e5..a9ac8db921 100644 --- a/bld/namelist_files/namelist_definition.xml +++ b/bld/namelist_files/namelist_definition.xml @@ -7901,7 +7901,7 @@ If < 0, se_sponge_del4_nu_fac is automatically set based on model top locatio Default: Set by build-namelist. - Divergence damping hyperviscosity coefficient se_nu_div [m^4/s] for u,v is increased to se_nu_p*se_sponge_del4_nu_div_fac following a hyperbolic tangent function @@ -7915,7 +7915,7 @@ If < 0, se_sponge_del4_nu_div_fac is automatically set based on model top loc Default: Set by build-namelist. - Level index around which increased del4 damping is centered. @@ -8150,13 +8150,17 @@ Default: Set by build-namelist. + group="dyn_se_inparm" valid_values="1,2,3" > 1: Exner version of pressure gradient force (PGF) see Appendix A in https://agupubs.onlinelibrary.wiley.com/doi/epdf/10.1029/2022MS003192 2: Traditional pressure gradient formulation (grad p) + 3: Hybrid (formulation 1 where hybm>0 else formulation 2) + Use hybrid PGF option for WACCM-x to make WACCM-x consistent with PGF + used in CAM in the troposphere and traditional PGF formulation above + Default: Set by build-namelist. diff --git a/cime_config/config_pes.xml b/cime_config/config_pes.xml index 42fe06d64a..e824b05e35 100644 --- a/cime_config/config_pes.xml +++ b/cime_config/config_pes.xml @@ -293,6 +293,27 @@ + + + none + + -4 + -4 + -4 + -4 + -4 + -4 + + + 1 + 1 + 1 + 1 + 1 + 1 + + + @@ -330,6 +351,46 @@ + + + none + + -16 + -16 + -16 + -16 + -16 + -16 + + + 1 + 1 + 1 + 1 + 1 + 1 + + + + none + + -8 + -8 + -8 + -8 + -8 + -8 + + + 1 + 1 + 1 + 1 + 1 + 1 + + + @@ -1105,6 +1166,27 @@ + + + none + + -8 + -8 + -8 + -8 + -8 + -8 + + + 1 + 1 + 1 + 1 + 1 + 1 + + + @@ -1211,6 +1293,27 @@ + + + none + + -8 + -8 + -8 + -8 + -8 + -8 + + + 1 + 1 + 1 + 1 + 1 + 1 + + + diff --git a/cime_config/testdefs/testlist_cam.xml b/cime_config/testdefs/testlist_cam.xml index c7b7d00daf..7b3eb1f10e 100644 --- a/cime_config/testdefs/testlist_cam.xml +++ b/cime_config/testdefs/testlist_cam.xml @@ -1622,6 +1622,7 @@ + @@ -1775,6 +1776,7 @@ + @@ -1844,6 +1846,7 @@ + @@ -1870,6 +1873,16 @@ + + + + + + + + + + @@ -1913,6 +1926,7 @@ + @@ -1932,6 +1946,7 @@ + @@ -2159,6 +2174,7 @@ + @@ -2169,6 +2185,7 @@ + @@ -2296,6 +2313,7 @@ + @@ -2322,6 +2340,7 @@ + @@ -2331,6 +2350,7 @@ + @@ -2340,6 +2360,7 @@ + @@ -2702,6 +2723,15 @@ + + + + + + + + + diff --git a/src/control/cam_history.F90 b/src/control/cam_history.F90 index 4cafd3d6c1..2bc71d4bd7 100644 --- a/src/control/cam_history.F90 +++ b/src/control/cam_history.F90 @@ -1747,7 +1747,8 @@ subroutine write_restart_history ( File, & ierr = pio_put_var(File, mdimname_desc, start, hist_coord_name(f)) end do - deallocate(xyfill, allmdims) + deallocate(xyfill, allmdims, is_subcol, interp_output, restarthistory_tape) + return end subroutine write_restart_history @@ -5019,19 +5020,19 @@ subroutine h_global (f, t) ! type (dim_index_2d) :: dimind ! 2-D dimension index integer :: ie ! dim3 index - integer :: count ! tmp index + integer :: count ! tmp index integer :: i1 ! dim1 index integer :: j1 ! dim2 index integer :: fdims(3) ! array shape - integer :: begdim1,enddim1,begdim2,enddim2,begdim3,enddim3 ! + integer :: begdim1,enddim1,begdim2,enddim2,begdim3,enddim3 ! real(r8) :: globalsum(1) ! globalsum real(r8), allocatable :: globalarr(:) ! globalarr values for this pe - + call t_startf ('h_global') ! wbuf contains the area weighting for this field decomposition if (associated(tape(t)%hlist(f)%wbuf) ) then - + begdim1 = tape(t)%hlist(f)%field%begdim1 enddim1 = tape(t)%hlist(f)%field%enddim1 fdims(1) = enddim1 - begdim1 + 1 @@ -5041,7 +5042,7 @@ subroutine h_global (f, t) begdim3 = tape(t)%hlist(f)%field%begdim3 enddim3 = tape(t)%hlist(f)%field%enddim3 fdims(3) = enddim3 - begdim3 + 1 - + allocate(globalarr(fdims(1)*fdims(2)*fdims(3))) count=0 globalarr=0._r8 @@ -5098,7 +5099,7 @@ subroutine h_field_op (f, t) do c = begdim3, enddim3 dimind = tape(t)%hlist(f)%field%get_dims(c) - if (trim(optype) == 'dif') then + if (trim(optype) == 'dif') then tape(t)%hlist(f)%hbuf(dimind%beg1:dimind%end1,dimind%beg2:dimind%end2,c) = & tape(t)%hlist(f1)%hbuf(dimind%beg1:dimind%end1,dimind%beg2:dimind%end2,c) - & tape(t)%hlist(f2)%hbuf(dimind%beg1:dimind%end1,dimind%beg2:dimind%end2,c) @@ -5592,7 +5593,7 @@ subroutine wshist (rgnht_in) if(.not. restart) then !$OMP PARALLEL DO PRIVATE (F) do f=1,nflds(t) - ! Normalize all non composed fields, composed fields are calculated next using the normalized components + ! Normalize all non composed fields, composed fields are calculated next using the normalized components if (tape(t)%hlist(f)%avgflag /= 'I'.and..not.tape(t)%hlist(f)%field%is_composed()) then call h_normalize (f, t) end if @@ -5916,7 +5917,7 @@ subroutine addfld_nd(fname, dimnames, avgflag, units, long_name, & if (present(optype)) then ! make sure optype is "sum" or "dif" - if (.not.(trim(optype) == 'dif' .or. trim(optype) == 'sum')) then + if (.not.(trim(optype) == 'dif' .or. trim(optype) == 'sum')) then write(errormsg, '(2a)')': Fatal : optype must be "sum" or "dif" not ',trim(optype) call endrun (trim(subname)//errormsg) end if diff --git a/src/dynamics/se/dycore/global_norms_mod.F90 b/src/dynamics/se/dycore/global_norms_mod.F90 index 2b53ef95c7..17e773d99c 100644 --- a/src/dynamics/se/dycore/global_norms_mod.F90 +++ b/src/dynamics/se/dycore/global_norms_mod.F90 @@ -737,9 +737,12 @@ subroutine print_cfl(elem,hybrid,nets,nete,dtnu,ptop,pmid,& ! if (ptop>100.0_r8) then umax = 120.0_r8 - else + else if (ptop>10.0_r8) then umax = 400.0_r8 + else + umax = 800.0_r8 end if + ugw = 342.0_r8 !max gravity wave speed dt_max_adv = S_rk/(umax*max_normDinv*lambda_max*ra) diff --git a/src/dynamics/se/dycore/prim_advance_mod.F90 b/src/dynamics/se/dycore/prim_advance_mod.F90 index f9199bf7ce..f124afb2f1 100644 --- a/src/dynamics/se/dycore/prim_advance_mod.F90 +++ b/src/dynamics/se/dycore/prim_advance_mod.F90 @@ -1175,8 +1175,7 @@ subroutine compute_and_apply_rhs(np1,nm1,n0,dt2,elem,hvcoord,hybrid,& ! vtemp = gradient_sphere(Ephi(:,:),deriv,elem(ie)%Dinv) call gradient_sphere(Ephi(:,:),deriv,elem(ie)%Dinv,vtemp) density_inv(:,:) = R_dry(:,:,k)*T_v(:,:,k)/p_full(:,:,k) - - if (pgf_formulation==1) then + if (pgf_formulation==1.or.(pgf_formulation==3.and.hvcoord%hybm(k)>0._r8)) then if (dry_air_species_num==0) then exner(:,:)=(p_full(:,:,k)/hvcoord%ps0)**kappa(:,:,k,ie) theta_v(:,:)=T_v(:,:,k)/exner(:,:) @@ -1211,7 +1210,7 @@ subroutine compute_and_apply_rhs(np1,nm1,n0,dt2,elem,hvcoord,hybrid,& pgf_term(:,:,2)=pgf_term(:,:,2) + & cpair*T0*(grad_logexner(:,:,2)-grad_exner(:,:,2)/exner(:,:)) end if - elseif (pgf_formulation==2) then + elseif (pgf_formulation==2.or.pgf_formulation==3) then pgf_term(:,:,1) = density_inv(:,:)*grad_p_full(:,:,1,k) pgf_term(:,:,2) = density_inv(:,:)*grad_p_full(:,:,2,k) else diff --git a/src/ionosphere/waccmx/edyn_init.F90 b/src/ionosphere/waccmx/edyn_init.F90 index ee096b8df3..074fbe7e85 100644 --- a/src/ionosphere/waccmx/edyn_init.F90 +++ b/src/ionosphere/waccmx/edyn_init.F90 @@ -62,6 +62,7 @@ subroutine add_fields call addfld ('PED_MAG' ,(/ 'lev' /), 'I', 'S/m ','Pedersen Conductivity' ,gridname='gmag_grid') call addfld ('HAL_MAG' ,(/ 'lev' /), 'I', 'S/m ','Hall Conductivity' ,gridname='gmag_grid') + call addfld ('PHIHM' , horiz_only, 'I', 'VOLTS','High Latitude Electric Potential' ,gridname='gmag_grid') call addfld ('PHIM2D' , horiz_only, 'I', 'VOLTS','PHIM2D: Electric Potential' ,gridname='gmag_grid') call addfld ('ED1' , horiz_only, 'I', 'V/m ','ED1: Eastward Electric Field' ,gridname='gmag_grid') call addfld ('ED2' , horiz_only, 'I', 'V/m ','ED2: Equatorward Electric Field' ,gridname='gmag_grid') diff --git a/src/ionosphere/waccmx/edynamo.F90 b/src/ionosphere/waccmx/edynamo.F90 index 7f79dc715f..be99c7dff9 100644 --- a/src/ionosphere/waccmx/edynamo.F90 +++ b/src/ionosphere/waccmx/edynamo.F90 @@ -1231,6 +1231,7 @@ subroutine highlat_poten() enddo do j=mlat0,mlat1 + call outfld('PHIHM',phihm(mlon0:omlon1,j),omlon1-mlon0+1,j) call outfld('PHIM2D',phim2d(mlon0:omlon1,j),omlon1-mlon0+1,j) enddo diff --git a/src/ionosphere/waccmx/ionosphere_interface.F90 b/src/ionosphere/waccmx/ionosphere_interface.F90 index 69c28739dd..202b444b8b 100644 --- a/src/ionosphere/waccmx/ionosphere_interface.F90 +++ b/src/ionosphere/waccmx/ionosphere_interface.F90 @@ -14,7 +14,7 @@ module ionosphere_interface use physics_buffer, only: pbuf_get_index use constituents, only: cnst_get_ind, cnst_mw - use physconst, only: gravit + use physconst, only: gravit,rga use oplus, only: oplus_init use edyn_init, only: edynamo_init use pio, only: var_desc_t @@ -740,11 +740,11 @@ subroutine ionosphere_run2(phys_state, pbuf2d) ! Might need geometric height on midpoints for output !------------------------------------------------------------ if (hist_fld_active('Z3GM')) then - r8tmp = phys_state(lchnk)%zm(i, k) + r8tmp = phys_state(lchnk)%zm(i, k) + phis(i)*rga tempm(i, k) = r8tmp * (1._r8 + (r8tmp * rearth_inv)) end if ! physics state fields on interfaces (but only to pver) - zi_blck(k, j) = phys_state(lchnk)%zi(i, k) + phis(i)/gravit + zi_blck(k, j) = phys_state(lchnk)%zi(i, k) + phis(i)/gravit !------------------------------------------------------------ ! Convert geopotential to geometric height at interfaces: !------------------------------------------------------------ diff --git a/src/physics/cam/vertical_diffusion.F90 b/src/physics/cam/vertical_diffusion.F90 index de47c75fb1..ad1db3b087 100644 --- a/src/physics/cam/vertical_diffusion.F90 +++ b/src/physics/cam/vertical_diffusion.F90 @@ -287,7 +287,7 @@ subroutine vertical_diffusion_init(pbuf2d) integer :: nbot_eddy ! Bottom interface level to which eddy vertical diffusion is applied ( = pver ) integer :: k ! Vertical loop index - real(r8), parameter :: ntop_eddy_pres = 1.e-5_r8 ! Pressure below which eddy diffusion is not done in WACCM-X. (Pa) + real(r8), parameter :: ntop_eddy_pres = 1.e-7_r8 ! Pressure below which eddy diffusion is not done in WACCM-X. (Pa) integer :: im, l, m, nmodes, nspec @@ -1046,9 +1046,9 @@ subroutine vertical_diffusion_tend( & ! PBL diffusion will happen before coupling, so vertical_diffusion ! is only handling other things, e.g. some boundary conditions, tms, ! and molecular diffusion. - + call virtem(ncol, th(:ncol,pver),state%q(:ncol,pver,1), thvs(:ncol)) - + call calc_ustar( ncol, state%t(:ncol,pver), state%pmid(:ncol,pver), & cam_in%wsx(:ncol), cam_in%wsy(:ncol), rrho(:ncol), ustar(:ncol)) ! Use actual qflux, not lhf/latvap as was done previously From f63a926335fbc1ae3456c3ebbe801f83843ff171 Mon Sep 17 00:00:00 2001 From: Francis Vitt Date: Mon, 9 Oct 2023 09:01:24 -0600 Subject: [PATCH 02/18] revert derecho changes to testlist_cam.xml --- cime_config/testdefs/testlist_cam.xml | 30 --------------------------- 1 file changed, 30 deletions(-) diff --git a/cime_config/testdefs/testlist_cam.xml b/cime_config/testdefs/testlist_cam.xml index 7b3eb1f10e..c7b7d00daf 100644 --- a/cime_config/testdefs/testlist_cam.xml +++ b/cime_config/testdefs/testlist_cam.xml @@ -1622,7 +1622,6 @@ - @@ -1776,7 +1775,6 @@ - @@ -1846,7 +1844,6 @@ - @@ -1873,16 +1870,6 @@ - - - - - - - - - - @@ -1926,7 +1913,6 @@ - @@ -1946,7 +1932,6 @@ - @@ -2174,7 +2159,6 @@ - @@ -2185,7 +2169,6 @@ - @@ -2313,7 +2296,6 @@ - @@ -2340,7 +2322,6 @@ - @@ -2350,7 +2331,6 @@ - @@ -2360,7 +2340,6 @@ - @@ -2723,15 +2702,6 @@ - - - - - - - - - From 0c4850459cd682636e04f400f3c1ffb702cc25d5 Mon Sep 17 00:00:00 2001 From: Francis Vitt Date: Mon, 9 Oct 2023 09:45:59 -0600 Subject: [PATCH 03/18] use rga rather modified: src/ionosphere/waccmx/ionosphere_interface.F90 --- src/ionosphere/waccmx/ionosphere_interface.F90 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ionosphere/waccmx/ionosphere_interface.F90 b/src/ionosphere/waccmx/ionosphere_interface.F90 index 202b444b8b..7579dfcde3 100644 --- a/src/ionosphere/waccmx/ionosphere_interface.F90 +++ b/src/ionosphere/waccmx/ionosphere_interface.F90 @@ -14,7 +14,7 @@ module ionosphere_interface use physics_buffer, only: pbuf_get_index use constituents, only: cnst_get_ind, cnst_mw - use physconst, only: gravit,rga + use physconst, only: rga use oplus, only: oplus_init use edyn_init, only: edynamo_init use pio, only: var_desc_t @@ -744,7 +744,7 @@ subroutine ionosphere_run2(phys_state, pbuf2d) tempm(i, k) = r8tmp * (1._r8 + (r8tmp * rearth_inv)) end if ! physics state fields on interfaces (but only to pver) - zi_blck(k, j) = phys_state(lchnk)%zi(i, k) + phis(i)/gravit + zi_blck(k, j) = phys_state(lchnk)%zi(i, k) + phis(i)*rga !------------------------------------------------------------ ! Convert geopotential to geometric height at interfaces: !------------------------------------------------------------ From bba5775c5475eee319dec09f634070f015fb14bf Mon Sep 17 00:00:00 2001 From: Francis Vitt Date: Mon, 9 Oct 2023 16:05:54 -0600 Subject: [PATCH 04/18] include option 3 for pgf_formulation error message modified: src/dynamics/se/dycore/prim_advance_mod.F90 --- src/dynamics/se/dycore/prim_advance_mod.F90 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/dynamics/se/dycore/prim_advance_mod.F90 b/src/dynamics/se/dycore/prim_advance_mod.F90 index f124afb2f1..1246b77e34 100644 --- a/src/dynamics/se/dycore/prim_advance_mod.F90 +++ b/src/dynamics/se/dycore/prim_advance_mod.F90 @@ -930,7 +930,7 @@ subroutine advance_hypervis_dp(edge3,elem,fvm,hybrid,deriv,nt,qn0,nets,nete,dt2, !OMP_COLLAPSE_SIMD !DIR_VECTOR_ALIGNED do j=1,np - do i=1,np + do i=1,np v1new=elem(ie)%state%v(i,j,1,k,nt) v2new=elem(ie)%state%v(i,j,2,k,nt) v1 =elem(ie)%state%v(i,j,1,k,nt)- vtens(i,j,1,k,ie) @@ -1214,7 +1214,7 @@ subroutine compute_and_apply_rhs(np1,nm1,n0,dt2,elem,hvcoord,hybrid,& pgf_term(:,:,1) = density_inv(:,:)*grad_p_full(:,:,1,k) pgf_term(:,:,2) = density_inv(:,:)*grad_p_full(:,:,2,k) else - call endrun('ERROR: bad choice of pgf_formulation (must be 1 or 2)') + call endrun('ERROR: bad choice of pgf_formulation (must be 1, 2, or 3)') end if do j=1,np @@ -1524,12 +1524,12 @@ subroutine tot_energy_dyn(elem,fvm,nets,nete,tl,tl_qdp,outfld_name_suffix) active_species_idx_dycore=thermodynamic_active_species_idx_dycore) ptop = hyai(1)*ps0 do j=1,np - !get mixing ratio of thermodynamic active species only + !get mixing ratio of thermodynamic active species only !(other tracers not used in get_hydrostatic_energy) do nq=1,thermodynamic_active_species_num m_cnst = thermodynamic_active_species_idx_dycore(nq) q(:,:,m_cnst) = elem(ie)%state%Qdp(:,j,:,m_cnst,tl_qdp)/& - elem(ie)%state%dp3d(:,j,:,tl) + elem(ie)%state%dp3d(:,j,:,tl) end do call get_hydrostatic_energy(q, & .false., elem(ie)%state%dp3d(:,j,:,tl), cp(:,j,:), elem(ie)%state%v(:,j,1,:,tl), & From f4ec0be1a58040df5eda53c8d0aef691397f9cf4 Mon Sep 17 00:00:00 2001 From: Cheryl Craig Date: Tue, 10 Oct 2023 13:41:47 -0600 Subject: [PATCH 05/18] namelist changes to match run 51 --- bld/build-namelist | 2 +- bld/namelist_files/namelist_defaults_cam.xml | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/bld/build-namelist b/bld/build-namelist index 90bd503820..2aed26c551 100755 --- a/bld/build-namelist +++ b/bld/build-namelist @@ -3115,7 +3115,7 @@ if ($cfg->get('microphys') =~ /^mg/) { $micro_mg_dcs = '500.D-6'; # default for cam6 } elsif ($phys eq 'cam_dev') { - $micro_mg_dcs = '250.D-6'; # default for cam_dev + $micro_mg_dcs = '500.D-6'; # default for cam_dev } } diff --git a/bld/namelist_files/namelist_defaults_cam.xml b/bld/namelist_files/namelist_defaults_cam.xml index fc74b3e978..0ff0aae7f3 100644 --- a/bld/namelist_files/namelist_defaults_cam.xml +++ b/bld/namelist_files/namelist_defaults_cam.xml @@ -2065,9 +2065,11 @@ .true. .false. 0.308 + 0.3 0.280 0.270 0.32 + 0.3 2 0.04 0.1 @@ -2226,11 +2228,12 @@ 1.D0 1.D0 + 0.25D0 1.D0 - 2.5D0 0.2D0 + 0.D0 0.001D0 @@ -2238,7 +2241,6 @@ 25.D-6 1.D0 - 0.5D0 1.D0 1.D0 From 221dc72c6d97d3fdbb970a5cd8216bb936a006b1 Mon Sep 17 00:00:00 2001 From: adamrher Date: Tue, 10 Oct 2023 15:06:55 -0600 Subject: [PATCH 06/18] cloud ice fraction changes for cam_dev --- bld/build-namelist | 2 + bld/namelist_files/namelist_defaults_cam.xml | 4 ++ bld/namelist_files/namelist_definition.xml | 12 +++++ src/physics/cam/cldfrc2m.F90 | 48 ++++++++++++++------ 4 files changed, 52 insertions(+), 14 deletions(-) diff --git a/bld/build-namelist b/bld/build-namelist index 2aed26c551..3bd154b375 100755 --- a/bld/build-namelist +++ b/bld/build-namelist @@ -3460,6 +3460,8 @@ if (!$simple_phys) { add_default($nl, 'cldfrc2m_rhmaxi'); add_default($nl, 'cldfrc2m_rhminis'); add_default($nl, 'cldfrc2m_rhmaxis'); + add_default($nl, 'cldfrc2m_qist_min'); + add_default($nl, 'cldfrc2m_qist_max'); add_default($nl, 'cldfrc2m_do_subgrid_growth'); } diff --git a/bld/namelist_files/namelist_defaults_cam.xml b/bld/namelist_files/namelist_defaults_cam.xml index 0ff0aae7f3..be857d9155 100644 --- a/bld/namelist_files/namelist_defaults_cam.xml +++ b/bld/namelist_files/namelist_defaults_cam.xml @@ -2646,6 +2646,10 @@ 1.0D0 1.0D0 +1.e-7 +5.e-6 +5.e-3 + .false. .false. diff --git a/bld/namelist_files/namelist_definition.xml b/bld/namelist_files/namelist_definition.xml index a64571989a..e34eed30d6 100644 --- a/bld/namelist_files/namelist_definition.xml +++ b/bld/namelist_files/namelist_definition.xml @@ -3146,6 +3146,18 @@ rhi at which ice cloud fraction = 1 in the stratosphere. Default: set by build-namelist + +Minimum in-stratus ice IWC constraint [ kg/kg ] +Default: set by build-namelist + + + +Maximum in-stratus ice IWC constraint [ kg/kg ] +Default: set by build-namelist + + Use cloud fraction to determine whether to do growth of ice clouds below diff --git a/src/physics/cam/cldfrc2m.F90 b/src/physics/cam/cldfrc2m.F90 index 28a19ca07a..54270d2fde 100644 --- a/src/physics/cam/cldfrc2m.F90 +++ b/src/physics/cam/cldfrc2m.F90 @@ -10,6 +10,7 @@ module cldfrc2m svp_water_vect, svp_ice_vect use cam_logfile, only: iulog use cam_abortutils, only: endrun +use phys_control, only: cam_physpkg_is implicit none private @@ -35,18 +36,17 @@ module cldfrc2m real(r8) :: cldfrc2m_rhmaxi real(r8) :: cldfrc2m_rhminis ! Minimum rh for ice cloud fraction > 0 in the stratsophere. real(r8) :: cldfrc2m_rhmaxis +real(r8) :: cldfrc2m_qist_min ! Minimum in-stratus ice IWC constraint [ kg/kg ] +real(r8) :: cldfrc2m_qist_max ! Maximum in-stratus ice IWC constraint [ kg/kg ] logical :: cldfrc2m_do_subgrid_growth = .false. ! -------------------------- ! ! Parameters for Ice Stratus ! ! -------------------------- ! real(r8), protected :: rhmini_const ! Minimum rh for ice cloud fraction > 0. real(r8), protected :: rhmaxi_const -real(r8), protected :: rhminis_const ! Minimum rh for ice cloud fraction > 0. +real(r8), protected :: rhminis_const ! Minimum rh for ice cloud fraction > 0. real(r8), protected :: rhmaxis_const -real(r8), parameter :: qist_min = 1.e-7_r8 ! Minimum in-stratus ice IWC constraint [ kg/kg ] -real(r8), parameter :: qist_max = 5.e-3_r8 ! Maximum in-stratus ice IWC constraint [ kg/kg ] - ! ----------------------------- ! ! Parameters for Liquid Stratus ! ! ----------------------------- ! @@ -82,7 +82,8 @@ subroutine cldfrc2m_readnl(nlfile) integer :: unitn, ierr character(len=*), parameter :: subname = 'cldfrc2m_readnl' - namelist /cldfrc2m_nl/ cldfrc2m_rhmini, cldfrc2m_rhmaxi, cldfrc2m_rhminis, cldfrc2m_rhmaxis, cldfrc2m_do_subgrid_growth + namelist /cldfrc2m_nl/ cldfrc2m_rhmini, cldfrc2m_rhmaxi, cldfrc2m_rhminis, cldfrc2m_rhmaxis, cldfrc2m_do_subgrid_growth, & + cldfrc2m_qist_min, cldfrc2m_qist_max !----------------------------------------------------------------------------- if (masterproc) then @@ -103,7 +104,6 @@ subroutine cldfrc2m_readnl(nlfile) rhmaxi_const = cldfrc2m_rhmaxi rhminis_const = cldfrc2m_rhminis rhmaxis_const = cldfrc2m_rhmaxis - end if ! Broadcast namelist variables @@ -111,6 +111,8 @@ subroutine cldfrc2m_readnl(nlfile) call mpi_bcast(rhmaxi_const, 1, mpi_real8, masterprocid, mpicom, ierr) call mpi_bcast(rhminis_const, 1, mpi_real8, masterprocid, mpicom, ierr) call mpi_bcast(rhmaxis_const, 1, mpi_real8, masterprocid, mpicom, ierr) + call mpi_bcast(cldfrc2m_qist_min, 1, mpi_real8, masterprocid, mpicom, ierr) + call mpi_bcast(cldfrc2m_qist_max, 1, mpi_real8, masterprocid, mpicom, ierr) call mpi_bcast(cldfrc2m_do_subgrid_growth, 1, mpi_logical,masterprocid, mpicom, ierr) end subroutine cldfrc2m_readnl @@ -879,12 +881,21 @@ subroutine aist_single(qv, T, p, qi, landfrac, snowh, aist, & icimr=qi/aist !minimum - if (icimr.lt.qist_min) then - aist = max(0._r8,min(1._r8,qi/qist_min)) + if (icimr.lt.cldfrc2m_qist_min) then + if (cam_physpkg_is("cam_dev")) then + ! + ! Take the geometric mean of the iceopt=4 and iceopt=5 values. + ! Mods developed by Thomas Toniazzo for NorESM. + aist = max(0._r8,min(1._r8,sqrt(aist*qi/cldfrc2m_qist_min))) + else + ! + ! Default for iceopt=5 + aist = max(0._r8,min(1._r8,qi/cldfrc2m_qist_min)) + end if endif !maximum - if (icimr.gt.qist_max) then - aist = max(0._r8,min(1._r8,qi/qist_max)) + if (icimr.gt.cldfrc2m_qist_max) then + aist = max(0._r8,min(1._r8,qi/cldfrc2m_qist_max)) endif endif @@ -1131,12 +1142,21 @@ subroutine aist_vector(qv_in, T_in, p_in, qi_in, ni_in, landfrac_in, snowh_in, a icimr=qi/aist !minimum - if (icimr.lt.qist_min) then - aist = max(0._r8,min(1._r8,qi/qist_min)) + if (icimr.lt.cldfrc2m_qist_min) then + if (cam_physpkg_is("cam_dev")) then + ! + ! Take the geometric mean of the iceopt=4 and iceopt=5 values. + ! Mods developed by Thomas Toniazzo for NorESM. + aist = max(0._r8,min(1._r8,sqrt(aist*qi/cldfrc2m_qist_min))) + else + ! + ! Default for iceopt=5 + aist = max(0._r8,min(1._r8,qi/cldfrc2m_qist_min)) + end if endif !maximum - if (icimr.gt.qist_max) then - aist = max(0._r8,min(1._r8,qi/qist_max)) + if (icimr.gt.cldfrc2m_qist_max) then + aist = max(0._r8,min(1._r8,qi/cldfrc2m_qist_max)) endif endif From dd69c5d6e410ab26538a6b496249dd1677a703ac Mon Sep 17 00:00:00 2001 From: adamrher Date: Thu, 12 Oct 2023 10:46:51 -0600 Subject: [PATCH 07/18] added namelists for wsub_min_asf, modified namelist defaults to reflect latest tunings --- bld/build-namelist | 1 + bld/namelist_files/namelist_defaults_cam.xml | 7 ++++-- bld/namelist_files/namelist_definition.xml | 12 +++++++--- src/physics/cam/microp_aero.F90 | 23 ++++++++++++-------- src/physics/cam/ndrop.F90 | 5 ++--- 5 files changed, 31 insertions(+), 17 deletions(-) diff --git a/bld/build-namelist b/bld/build-namelist index 3bd154b375..80c7221c6d 100755 --- a/bld/build-namelist +++ b/bld/build-namelist @@ -3129,6 +3129,7 @@ add_default($nl, 'microp_aero_npccn_scale'); add_default($nl, 'microp_aero_wsub_scale'); add_default($nl, 'microp_aero_wsubi_scale'); add_default($nl, 'microp_aero_wsub_min'); +add_default($nl, 'microp_aero_wsub_min_asf'); add_default($nl, 'microp_aero_wsubi_min'); # Ice nucleation options diff --git a/bld/namelist_files/namelist_defaults_cam.xml b/bld/namelist_files/namelist_defaults_cam.xml index be857d9155..b05b25d2c1 100644 --- a/bld/namelist_files/namelist_defaults_cam.xml +++ b/bld/namelist_files/namelist_defaults_cam.xml @@ -2228,12 +2228,15 @@ 1.D0 1.D0 - 0.25D0 + 0.50D0 1.D0 0.2D0 - 0.D0 + 0.1D0 + + 0.1D0 + 0.0D0 0.001D0 diff --git a/bld/namelist_files/namelist_definition.xml b/bld/namelist_files/namelist_definition.xml index e34eed30d6..6efc942ce4 100644 --- a/bld/namelist_files/namelist_definition.xml +++ b/bld/namelist_files/namelist_definition.xml @@ -2916,7 +2916,7 @@ Default: 1.0 Unitless scaling factor for the liquid droplet subgrid scale vertical velocity during aerosol activation. -Default: 1.0 +Default: set by build-namelist -Minimum subgrid vertical velocity for liquid droplets during aerosol activation with units of (m s-1). -Default: 0.2 m s-1 +Minimum subgrid vertical velocity (before scale factor) for liquid droplets during aerosol activation with units of (m s-1). +Default: set by build-namelist + + + +Minimum subgrid vertical velocity (after scale factor) for liquid droplets during aerosol activation with units of (m s-1). +Default: set by build-namelist Date: Thu, 12 Oct 2023 14:51:24 -0600 Subject: [PATCH 08/18] swap cam_dev conditional for a new namelist, remove se gamma namelist default --- bld/build-namelist | 1 + bld/namelist_files/namelist_defaults_cam.xml | 4 +++- bld/namelist_files/namelist_definition.xml | 6 ++++++ src/physics/cam/cldfrc2m.F90 | 10 ++++++---- 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/bld/build-namelist b/bld/build-namelist index 80c7221c6d..a66c50a8f9 100755 --- a/bld/build-namelist +++ b/bld/build-namelist @@ -3464,6 +3464,7 @@ if (!$simple_phys) { add_default($nl, 'cldfrc2m_qist_min'); add_default($nl, 'cldfrc2m_qist_max'); add_default($nl, 'cldfrc2m_do_subgrid_growth'); + add_default($nl, 'cldfrc2m_do_avg_aist_algs'); } my $rk_strat_polstrat_rhmin = $nl->get_value('rk_strat_polstrat_rhmin'); diff --git a/bld/namelist_files/namelist_defaults_cam.xml b/bld/namelist_files/namelist_defaults_cam.xml index b05b25d2c1..71d6e8943d 100644 --- a/bld/namelist_files/namelist_defaults_cam.xml +++ b/bld/namelist_files/namelist_defaults_cam.xml @@ -2067,7 +2067,6 @@ 0.308 0.3 0.280 - 0.270 0.32 0.3 2 @@ -2659,6 +2658,9 @@ .true. .true. +.false. +.true. + 5.0e-6 9.5e-6 diff --git a/bld/namelist_files/namelist_definition.xml b/bld/namelist_files/namelist_definition.xml index 6efc942ce4..2b219f1c13 100644 --- a/bld/namelist_files/namelist_definition.xml +++ b/bld/namelist_files/namelist_definition.xml @@ -3171,6 +3171,12 @@ RHice of 1 down to RHice = rhmini. Default: .true. for CAM6; all others => .false. + +For small ice cloud concentrations, take the geometric mean of the iceopt=4 and iceopt=5 area fractions +Default: .true. for CAM_DEV; all others .false. + + Convective momentum transport parameter (upward) diff --git a/src/physics/cam/cldfrc2m.F90 b/src/physics/cam/cldfrc2m.F90 index 54270d2fde..4a2ec86f43 100644 --- a/src/physics/cam/cldfrc2m.F90 +++ b/src/physics/cam/cldfrc2m.F90 @@ -10,7 +10,6 @@ module cldfrc2m svp_water_vect, svp_ice_vect use cam_logfile, only: iulog use cam_abortutils, only: endrun -use phys_control, only: cam_physpkg_is implicit none private @@ -39,6 +38,7 @@ module cldfrc2m real(r8) :: cldfrc2m_qist_min ! Minimum in-stratus ice IWC constraint [ kg/kg ] real(r8) :: cldfrc2m_qist_max ! Maximum in-stratus ice IWC constraint [ kg/kg ] logical :: cldfrc2m_do_subgrid_growth = .false. +logical :: cldfrc2m_do_avg_aist_algs = .false. ! -------------------------- ! ! Parameters for Ice Stratus ! ! -------------------------- ! @@ -83,7 +83,7 @@ subroutine cldfrc2m_readnl(nlfile) character(len=*), parameter :: subname = 'cldfrc2m_readnl' namelist /cldfrc2m_nl/ cldfrc2m_rhmini, cldfrc2m_rhmaxi, cldfrc2m_rhminis, cldfrc2m_rhmaxis, cldfrc2m_do_subgrid_growth, & - cldfrc2m_qist_min, cldfrc2m_qist_max + cldfrc2m_qist_min, cldfrc2m_qist_max, cldfrc2m_do_avg_aist_algs !----------------------------------------------------------------------------- if (masterproc) then @@ -114,6 +114,7 @@ subroutine cldfrc2m_readnl(nlfile) call mpi_bcast(cldfrc2m_qist_min, 1, mpi_real8, masterprocid, mpicom, ierr) call mpi_bcast(cldfrc2m_qist_max, 1, mpi_real8, masterprocid, mpicom, ierr) call mpi_bcast(cldfrc2m_do_subgrid_growth, 1, mpi_logical,masterprocid, mpicom, ierr) + call mpi_bcast(cldfrc2m_do_avg_aist_algs, 1, mpi_logical,masterprocid, mpicom, ierr) end subroutine cldfrc2m_readnl @@ -141,6 +142,7 @@ subroutine cldfrc2m_init() write(iulog,*) ' rhminis = ', rhminis_const write(iulog,*) ' rhmaxis = ', rhmaxis_const write(iulog,*) ' do_subgrid_growth = ', cldfrc2m_do_subgrid_growth + write(iulog,*) ' do_avg_aist_algs = ', cldfrc2m_do_avg_aist_algs end if end subroutine cldfrc2m_init @@ -882,7 +884,7 @@ subroutine aist_single(qv, T, p, qi, landfrac, snowh, aist, & !minimum if (icimr.lt.cldfrc2m_qist_min) then - if (cam_physpkg_is("cam_dev")) then + if (cldfrc2m_do_avg_aist_algs) then ! ! Take the geometric mean of the iceopt=4 and iceopt=5 values. ! Mods developed by Thomas Toniazzo for NorESM. @@ -1143,7 +1145,7 @@ subroutine aist_vector(qv_in, T_in, p_in, qi_in, ni_in, landfrac_in, snowh_in, a !minimum if (icimr.lt.cldfrc2m_qist_min) then - if (cam_physpkg_is("cam_dev")) then + if (cldfrc2m_do_avg_aist_algs) then ! ! Take the geometric mean of the iceopt=4 and iceopt=5 values. ! Mods developed by Thomas Toniazzo for NorESM. From e28d2bc8192e8ebb85037b3ec66aea8ee1066905 Mon Sep 17 00:00:00 2001 From: Cheryl Craig Date: Fri, 13 Oct 2023 14:34:47 -0600 Subject: [PATCH 09/18] Update externals to allow for derecho priority setting --- Externals.cfg | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Externals.cfg b/Externals.cfg index 7dfd41a073..c60ee52605 100644 --- a/Externals.cfg +++ b/Externals.cfg @@ -1,5 +1,5 @@ [ccs_config] -tag = ccs_config_cesm0.0.78 +tag = ccs_config_cesm0.0.80 protocol = git repo_url = https://github.com/ESMCI/ccs_config_cesm local_path = ccs_config @@ -21,7 +21,7 @@ externals = Externals.cfg required = True [cmeps] -tag = cmeps0.14.39 +tag = cmeps0.14.43 protocol = git repo_url = https://github.com/ESCOMP/CMEPS.git local_path = components/cmeps @@ -36,7 +36,7 @@ externals = Externals_CDEPS.cfg required = True [cpl7] -tag = cpl77.0.6 +tag = cpl77.0.7 protocol = git repo_url = https://github.com/ESCOMP/CESM_CPL7andDataComps local_path = components/cpl7 From 672aaf168cfcd6e0a38e16e01afbd28aac7fe044 Mon Sep 17 00:00:00 2001 From: Cheryl Craig Date: Fri, 13 Oct 2023 14:42:51 -0600 Subject: [PATCH 10/18] address review requests --- bld/namelist_files/namelist_definition.xml | 4 +- src/physics/cam/cldfrc2m.F90 | 136 +++++++++++---------- 2 files changed, 71 insertions(+), 69 deletions(-) diff --git a/bld/namelist_files/namelist_definition.xml b/bld/namelist_files/namelist_definition.xml index 2b219f1c13..cea91f7528 100644 --- a/bld/namelist_files/namelist_definition.xml +++ b/bld/namelist_files/namelist_definition.xml @@ -3154,13 +3154,13 @@ Default: set by build-namelist -Minimum in-stratus ice IWC constraint [ kg/kg ] +Minimum in-stratus IWC constraint [ kg/kg ] Default: set by build-namelist -Maximum in-stratus ice IWC constraint [ kg/kg ] +Maximum in-stratus IWC constraint [ kg/kg ] Default: set by build-namelist diff --git a/src/physics/cam/cldfrc2m.F90 b/src/physics/cam/cldfrc2m.F90 index 4a2ec86f43..77a391fd35 100644 --- a/src/physics/cam/cldfrc2m.F90 +++ b/src/physics/cam/cldfrc2m.F90 @@ -35,8 +35,8 @@ module cldfrc2m real(r8) :: cldfrc2m_rhmaxi real(r8) :: cldfrc2m_rhminis ! Minimum rh for ice cloud fraction > 0 in the stratsophere. real(r8) :: cldfrc2m_rhmaxis -real(r8) :: cldfrc2m_qist_min ! Minimum in-stratus ice IWC constraint [ kg/kg ] -real(r8) :: cldfrc2m_qist_max ! Maximum in-stratus ice IWC constraint [ kg/kg ] +real(r8) :: cldfrc2m_qist_min ! Minimum in-stratus IWC constraint [ kg/kg ] +real(r8) :: cldfrc2m_qist_max ! Maximum in-stratus IWC constraint [ kg/kg ] logical :: cldfrc2m_do_subgrid_growth = .false. logical :: cldfrc2m_do_avg_aist_algs = .false. ! -------------------------- ! @@ -59,10 +59,10 @@ module cldfrc2m real(r8) :: rhminh_const ! Critical RH for high-level liquid stratus clouds real(r8) :: premit ! Top height for mid-level liquid stratus fraction real(r8) :: premib ! Bottom height for mid-level liquid stratus fraction -integer :: iceopt ! option for ice cloud closure - ! 1=wang & sassen 2=schiller (iciwc) +integer :: iceopt ! option for ice cloud closure + ! 1=wang & sassen 2=schiller (iciwc) ! 3=wood & field, 4=Wilson (based on smith) - ! 5=modified slingo (ssat & empyt cloud) + ! 5=modified slingo (ssat & empyt cloud) real(r8) :: icecrit ! Critical RH for ice clouds in Wilson & Ballard closure ! ( smaller = more ice clouds ) @@ -143,6 +143,8 @@ subroutine cldfrc2m_init() write(iulog,*) ' rhmaxis = ', rhmaxis_const write(iulog,*) ' do_subgrid_growth = ', cldfrc2m_do_subgrid_growth write(iulog,*) ' do_avg_aist_algs = ', cldfrc2m_do_avg_aist_algs + write(iulog,*) ' cldfrc2m_qist_min = ', cldfrc2m_qist_min + write(iulog,*) ' cldfrc2m_qist_max = ', cldfrc2m_qist_max end if end subroutine cldfrc2m_init @@ -187,7 +189,7 @@ subroutine astG_PDF_single(U, p, qv, landfrac, snowh, a, Ga, orhmin, & real(r8) cldrh ! RH of stratus cloud real(r8) rhmin ! Critical RH real(r8) rhwght - + real(r8) :: rhminl real(r8) :: rhminl_adj_land real(r8) :: rhminh @@ -230,7 +232,7 @@ subroutine astG_PDF_single(U, p, qv, landfrac, snowh, a, Ga, orhmin, & a = 1._r8 - (-3._r8/sqrt(2._r8)*(U-cldrh)/dV)**(2._r8/3._r8) Ga = dV/sqrt(2._r8)*sqrt(1._r8-a) elseif( U .gt. (cldrh-dV) .and. U .le. (cldrh-dV/6._r8) ) then - a = 4._r8*(cos((1._r8/3._r8)*(acos((3._r8/2._r8/sqrt(2._r8))* & + a = 4._r8*(cos((1._r8/3._r8)*(acos((3._r8/2._r8/sqrt(2._r8))* & (1._r8+(U-cldrh)/dV))-2._r8*3.141592_r8)))**2._r8 Ga = dV/sqrt(2._r8)*(1._r8/sqrt(a)-sqrt(a)) elseif( U .le. (cldrh-dV) ) then @@ -240,7 +242,7 @@ subroutine astG_PDF_single(U, p, qv, landfrac, snowh, a, Ga, orhmin, & if( freeze_dry ) then a = a *max(0.15_r8,min(1.0_r8,qv/0.0030_r8)) - Ga = Ga/max(0.15_r8,min(1.0_r8,qv/0.0030_r8)) + Ga = Ga/max(0.15_r8,min(1.0_r8,qv/0.0030_r8)) endif elseif( p .lt. premit ) then @@ -255,7 +257,7 @@ subroutine astG_PDF_single(U, p, qv, landfrac, snowh, a, Ga, orhmin, & a = 1._r8 - (-3._r8/sqrt(2._r8)*(U-cldrh)/dV)**(2._r8/3._r8) Ga = dV/sqrt(2._r8)*sqrt(1._r8-a) elseif( U .gt. (cldrh-dV) .and. U .le. (cldrh-dV/6._r8) ) then - a = 4._r8*(cos((1._r8/3._r8)*(acos((3._r8/2._r8/sqrt(2._r8))* & + a = 4._r8*(cos((1._r8/3._r8)*(acos((3._r8/2._r8/sqrt(2._r8))* & (1._r8+(U-cldrh)/dV))-2._r8*3.141592_r8)))**2._r8 Ga = dV/sqrt(2._r8)*(1._r8/sqrt(a)-sqrt(a)) elseif( U .le. (cldrh-dV) ) then @@ -282,7 +284,7 @@ subroutine astG_PDF_single(U, p, qv, landfrac, snowh, a, Ga, orhmin, & a = 1._r8 - (-3._r8/sqrt(2._r8)*(U-cldrh)/dV)**(2._r8/3._r8) Ga = dV/sqrt(2._r8)*sqrt(1._r8-a) elseif( U .gt. (cldrh-dV) .and. U .le. (cldrh-dV/6._r8) ) then - a = 4._r8*(cos((1._r8/3._r8)*(acos((3._r8/2._r8/sqrt(2._r8))* & + a = 4._r8*(cos((1._r8/3._r8)*(acos((3._r8/2._r8/sqrt(2._r8))* & (1._r8+(U-cldrh)/dV))-2._r8*3.141592_r8)))**2._r8 Ga = dV/sqrt(2._r8)*(1._r8/sqrt(a)-sqrt(a)) elseif( U .le. (cldrh-dV) ) then @@ -348,7 +350,7 @@ subroutine astG_PDF(U_in, p_in, qv_in, landfrac_in, snowh_in, a_out, Ga_out, nco real(r8) cldrh ! RH of stratus cloud real(r8) rhmin ! Critical RH real(r8) rhwght - + ! Statement functions logical land land(i) = nint(landfrac_in(i)) == 1 @@ -372,13 +374,13 @@ subroutine astG_PDF(U_in, p_in, qv_in, landfrac_in, snowh_in, a_out, Ga_out, nco do i = 1, ncol - U = U_in(i) - p = p_in(i) - qv = qv_in(i) - landfrac = landfrac_in(i) - snowh = snowh_in(i) + U = U_in(i) + p = p_in(i) + qv = qv_in(i) + landfrac = landfrac_in(i) + snowh = snowh_in(i) - if (present(rhminl_in)) rhminl = rhminl_in(i) + if (present(rhminl_in)) rhminl = rhminl_in(i) if (present(rhminl_adj_land_in)) rhminl_adj_land = rhminl_adj_land_in(i) if (present(rhminh_in)) rhminh = rhminh_in(i) @@ -399,7 +401,7 @@ subroutine astG_PDF(U_in, p_in, qv_in, landfrac_in, snowh_in, a_out, Ga_out, nco a = 1._r8 - (-3._r8/sqrt(2._r8)*(U-cldrh)/dV)**(2._r8/3._r8) Ga = dV/sqrt(2._r8)*sqrt(1._r8-a) elseif( U .gt. (cldrh-dV) .and. U .le. (cldrh-dV/6._r8) ) then - a = 4._r8*(cos((1._r8/3._r8)*(acos((3._r8/2._r8/sqrt(2._r8))* & + a = 4._r8*(cos((1._r8/3._r8)*(acos((3._r8/2._r8/sqrt(2._r8))* & (1._r8+(U-cldrh)/dV))-2._r8*3.141592_r8)))**2._r8 Ga = dV/sqrt(2._r8)*(1._r8/sqrt(a)-sqrt(a)) elseif( U .le. (cldrh-dV) ) then @@ -409,7 +411,7 @@ subroutine astG_PDF(U_in, p_in, qv_in, landfrac_in, snowh_in, a_out, Ga_out, nco if( freeze_dry ) then a = a *max(0.15_r8,min(1.0_r8,qv/0.0030_r8)) - Ga = Ga/max(0.15_r8,min(1.0_r8,qv/0.0030_r8)) + Ga = Ga/max(0.15_r8,min(1.0_r8,qv/0.0030_r8)) endif elseif( p .lt. premit ) then @@ -424,7 +426,7 @@ subroutine astG_PDF(U_in, p_in, qv_in, landfrac_in, snowh_in, a_out, Ga_out, nco a = 1._r8 - (-3._r8/sqrt(2._r8)*(U-cldrh)/dV)**(2._r8/3._r8) Ga = dV/sqrt(2._r8)*sqrt(1._r8-a) elseif( U .gt. (cldrh-dV) .and. U .le. (cldrh-dV/6._r8) ) then - a = 4._r8*(cos((1._r8/3._r8)*(acos((3._r8/2._r8/sqrt(2._r8))* & + a = 4._r8*(cos((1._r8/3._r8)*(acos((3._r8/2._r8/sqrt(2._r8))* & (1._r8+(U-cldrh)/dV))-2._r8*3.141592_r8)))**2._r8 Ga = dV/sqrt(2._r8)*(1._r8/sqrt(a)-sqrt(a)) elseif( U .le. (cldrh-dV) ) then @@ -451,7 +453,7 @@ subroutine astG_PDF(U_in, p_in, qv_in, landfrac_in, snowh_in, a_out, Ga_out, nco a = 1._r8 - (-3._r8/sqrt(2._r8)*(U-cldrh)/dV)**(2._r8/3._r8) Ga = dV/sqrt(2._r8)*sqrt(1._r8-a) elseif( U .gt. (cldrh-dV) .and. U .le. (cldrh-dV/6._r8) ) then - a = 4._r8*(cos((1._r8/3._r8)*(acos((3._r8/2._r8/sqrt(2._r8))* & + a = 4._r8*(cos((1._r8/3._r8)*(acos((3._r8/2._r8/sqrt(2._r8))* & (1._r8+(U-cldrh)/dV))-2._r8*3.141592_r8)))**2._r8 Ga = dV/sqrt(2._r8)*(1._r8/sqrt(a)-sqrt(a)) elseif( U .le. (cldrh-dV) ) then @@ -462,7 +464,7 @@ subroutine astG_PDF(U_in, p_in, qv_in, landfrac_in, snowh_in, a_out, Ga_out, nco endif a_out(i) = a - Ga_out(i) = Ga + Ga_out(i) = Ga enddo @@ -475,7 +477,7 @@ subroutine astG_RHU_single(U, p, qv, landfrac, snowh, a, Ga, orhmin, & ! --------------------------------------------------------- ! ! Compute 'stratus fraction(a)' and Gs=(dU/da) from the ! ! CAM35 cloud fraction formula. ! - ! Below is valid only for CAMUW at 1.9x2.5 fv dynamics core ! + ! Below is valid only for CAMUW at 1.9x2.5 fv dynamics core ! ! For the other cases, I should re-define 'rhminl,rhminh' & ! ! 'premib,premit'. ! ! Note that if U > 1, Ga = 1.e10 instead of Ga = 0, that is ! @@ -528,15 +530,15 @@ subroutine astG_RHU_single(U, p, qv, landfrac, snowh, a, Ga, orhmin, & rhmin = rhminl endif rhdif = (U-rhmin)/(1.0_r8-rhmin) - a = min(1._r8,(max(rhdif,0.0_r8))**2) + a = min(1._r8,(max(rhdif,0.0_r8))**2) if( (U.ge.1._r8) .or. (U.le.rhmin) ) then Ga = 1.e20_r8 - else + else Ga = 0.5_r8*(1._r8-rhmin)*((1._r8-rhmin)/(U-rhmin)) endif if( freeze_dry ) then a = a*max(0.15_r8,min(1.0_r8,qv/0.0030_r8)) - Ga = Ga/max(0.15_r8,min(1.0_r8,qv/0.0030_r8)) + Ga = Ga/max(0.15_r8,min(1.0_r8,qv/0.0030_r8)) endif elseif( p .lt. premit ) then @@ -546,7 +548,7 @@ subroutine astG_RHU_single(U, p, qv, landfrac, snowh, a, Ga, orhmin, & a = min(1._r8,(max(rhdif,0._r8))**2) if( (U.ge.1._r8) .or. (U.le.rhmin) ) then Ga = 1.e20_r8 - else + else Ga = 0.5_r8*(1._r8-rhmin)*((1._r8-rhmin)/(U-rhmin)) endif @@ -564,7 +566,7 @@ subroutine astG_RHU_single(U, p, qv, landfrac, snowh, a, Ga, orhmin, & a = min(1._r8,(max(rhdif,0._r8))**2) if( (U.ge.1._r8) .or. (U.le.rhmin) ) then Ga = 1.e10_r8 - else + else Ga = 0.5_r8*(1._r8-rhmin)*((1._r8-rhmin)/(U-rhmin)) endif @@ -582,7 +584,7 @@ subroutine astG_RHU(U_in, p_in, qv_in, landfrac_in, snowh_in, a_out, Ga_out, nco ! --------------------------------------------------------- ! ! Compute 'stratus fraction(a)' and Gs=(dU/da) from the ! ! CAM35 cloud fraction formula. ! - ! Below is valid only for CAMUW at 1.9x2.5 fv dynamics core ! + ! Below is valid only for CAMUW at 1.9x2.5 fv dynamics core ! ! For the other cases, I should re-define 'rhminl,rhminh' & ! ! 'premib,premit'. ! ! Note that if U > 1, Ga = 1.e10 instead of Ga = 0, that is ! @@ -639,13 +641,13 @@ subroutine astG_RHU(U_in, p_in, qv_in, landfrac_in, snowh_in, a_out, Ga_out, nco do i = 1, ncol - U = U_in(i) - p = p_in(i) - qv = qv_in(i) - landfrac = landfrac_in(i) - snowh = snowh_in(i) + U = U_in(i) + p = p_in(i) + qv = qv_in(i) + landfrac = landfrac_in(i) + snowh = snowh_in(i) - if (present(rhminl_in)) rhminl = rhminl_in(i) + if (present(rhminl_in)) rhminl = rhminl_in(i) if (present(rhminl_adj_land_in)) rhminl_adj_land = rhminl_adj_land_in(i) if (present(rhminh_in)) rhminh = rhminh_in(i) @@ -657,15 +659,15 @@ subroutine astG_RHU(U_in, p_in, qv_in, landfrac_in, snowh_in, a_out, Ga_out, nco rhmin = rhminl endif rhdif = (U-rhmin)/(1.0_r8-rhmin) - a = min(1._r8,(max(rhdif,0.0_r8))**2) + a = min(1._r8,(max(rhdif,0.0_r8))**2) if( (U.ge.1._r8) .or. (U.le.rhmin) ) then Ga = 1.e20_r8 - else + else Ga = 0.5_r8*(1._r8-rhmin)*((1._r8-rhmin)/(U-rhmin)) endif if( freeze_dry ) then a = a*max(0.15_r8,min(1.0_r8,qv/0.0030_r8)) - Ga = Ga/max(0.15_r8,min(1.0_r8,qv/0.0030_r8)) + Ga = Ga/max(0.15_r8,min(1.0_r8,qv/0.0030_r8)) endif elseif( p .lt. premit ) then @@ -675,7 +677,7 @@ subroutine astG_RHU(U_in, p_in, qv_in, landfrac_in, snowh_in, a_out, Ga_out, nco a = min(1._r8,(max(rhdif,0._r8))**2) if( (U.ge.1._r8) .or. (U.le.rhmin) ) then Ga = 1.e20_r8 - else + else Ga = 0.5_r8*(1._r8-rhmin)*((1._r8-rhmin)/(U-rhmin)) endif @@ -693,14 +695,14 @@ subroutine astG_RHU(U_in, p_in, qv_in, landfrac_in, snowh_in, a_out, Ga_out, nco a = min(1._r8,(max(rhdif,0._r8))**2) if( (U.ge.1._r8) .or. (U.le.rhmin) ) then Ga = 1.e10_r8 - else + else Ga = 0.5_r8*(1._r8-rhmin)*((1._r8-rhmin)/(U-rhmin)) endif endif a_out(i) = a - Ga_out(i) = Ga + Ga_out(i) = Ga enddo @@ -713,7 +715,7 @@ subroutine aist_single(qv, T, p, qi, landfrac, snowh, aist, & qsatfac_out) ! --------------------------------------------------------- ! - ! Compute non-physical ice stratus fraction ! + ! Compute non-physical ice stratus fraction ! ! --------------------------------------------------------- ! real(r8), intent(in) :: qv ! Grid-mean water vapor[kg/kg] @@ -801,19 +803,19 @@ subroutine aist_single(qv, T, p, qi, landfrac, snowh, aist, & call qsat_water(T, p, es, qs) esl = svp_water(T) esi = svp_ice(T) - + if( iceopt.lt.3 ) then if( iceopt.eq.1 ) then ttmp = max(195._r8,min(T,253._r8)) - 273.16_r8 icicval = a + b * ttmp + c * ttmp**2._r8 rho = p/(rair*T) - icicval = icicval * 1.e-6_r8 / rho + icicval = icicval * 1.e-6_r8 / rho else ttmp = max(190._r8,min(T,273.16_r8)) icicval = 10._r8 **(as * bs**ttmp + cs) icicval = icicval * 1.e-6_r8 * 18._r8 / 28.97_r8 endif - aist = max(0._r8,min(qi/icicval,1._r8)) + aist = max(0._r8,min(qi/icicval,1._r8)) elseif( iceopt.eq.3 ) then aist = 1._r8 - exp(-Kc*qi/(qs*(esi/esl))) aist = max(0._r8,min(aist,1._r8)) @@ -835,9 +837,9 @@ subroutine aist_single(qv, T, p, qi, landfrac, snowh, aist, & ! endif endif ncf = qi/((1._r8 - icecrit)*qs) - if( ncf.le.0._r8 ) then + if( ncf.le.0._r8 ) then aist = 0._r8 - elseif( ncf.gt.0._r8 .and. ncf.le.1._r8/6._r8 ) then + elseif( ncf.gt.0._r8 .and. ncf.le.1._r8/6._r8 ) then aist = 0.5_r8*(6._r8 * ncf)**(2._r8/3._r8) elseif( ncf.gt.1._r8/6._r8 .and. ncf.lt.1._r8 ) then phi = (acos(3._r8*(1._r8-ncf)/2._r8**(3._r8/2._r8))+4._r8*3.1415927_r8)/3._r8 @@ -846,7 +848,7 @@ subroutine aist_single(qv, T, p, qi, landfrac, snowh, aist, & aist = 1._r8 endif aist = max(0._r8,min(aist,1._r8)) - elseif (iceopt.eq.5) then + elseif (iceopt.eq.5) then ! set rh ice cloud fraction rhi= (qv+qi)/qs * (esl/esi) if (rhmaxi .eq. rhmini) then @@ -867,7 +869,7 @@ subroutine aist_single(qv, T, p, qi, landfrac, snowh, aist, & ! NOTE: Limit qsatfac so that adjusted RHliq would be 1. or less. if (present(qsatfac_out) .and. cldfrc2m_do_subgrid_growth) then qsatfac_out = max(min(qv / qs, 1._r8), (1._r8 - aist) * rhmini + aist * rhmaxi) - end if + end if ! limiter to remove empty cloud and ice with no cloud ! and set icecld fraction to mincld if ice exists @@ -901,10 +903,10 @@ subroutine aist_single(qv, T, p, qi, landfrac, snowh, aist, & endif endif - endif + endif ! 0.999_r8 is added to prevent infinite 'ql_st' at the end of instratus_condensate - ! computed after updating 'qi_st'. + ! computed after updating 'qi_st'. aist = max(0._r8,min(aist,0.999_r8)) @@ -917,7 +919,7 @@ subroutine aist_vector(qv_in, T_in, p_in, qi_in, ni_in, landfrac_in, snowh_in, a qsatfac_out ) ! --------------------------------------------------------- ! - ! Compute non-physical ice stratus fraction ! + ! Compute non-physical ice stratus fraction ! ! --------------------------------------------------------- ! real(r8), intent(in) :: qv_in(pcols) ! Grid-mean water vapor[kg/kg] @@ -929,7 +931,7 @@ subroutine aist_vector(qv_in, T_in, p_in, qi_in, ni_in, landfrac_in, snowh_in, a real(r8), intent(in) :: snowh_in(pcols) ! Snow depth (liquid water equivalent) real(r8), intent(out) :: aist_out(pcols) ! Non-physical ice stratus fraction ( 0<= aist <= 1 ) - integer, intent(in) :: ncol + integer, intent(in) :: ncol real(r8), optional, intent(in) :: rhmaxi_in(pcols) real(r8), optional, intent(in) :: rhmini_in(pcols) ! Critical relative humidity for ice stratus @@ -1026,9 +1028,9 @@ subroutine aist_vector(qv_in, T_in, p_in, qi_in, ni_in, landfrac_in, snowh_in, a call svp_ice_vect(T_in(1:ncol), esi(1:ncol), ncol) do i = 1, ncol - - landfrac = landfrac_in(i) - snowh = snowh_in(i) + + landfrac = landfrac_in(i) + snowh = snowh_in(i) T = T_in(i) qv = qv_in(i) p = p_in(i) @@ -1037,23 +1039,23 @@ subroutine aist_vector(qv_in, T_in, p_in, qi_in, ni_in, landfrac_in, snowh_in, a qs = qsat_in(i) if (present(rhmaxi_in)) rhmaxi = rhmaxi_in(i) - if (present(rhmini_in)) rhmini = rhmini_in(i) - if (present(rhminl_in)) rhminl = rhminl_in(i) + if (present(rhmini_in)) rhmini = rhmini_in(i) + if (present(rhminl_in)) rhminl = rhminl_in(i) if (present(rhminl_adj_land_in)) rhminl_adj_land = rhminl_adj_land_in(i) if (present(rhminh_in)) rhminh = rhminh_in(i) - + if( iceopt.lt.3 ) then if( iceopt.eq.1 ) then ttmp = max(195._r8,min(T,253._r8)) - 273.16_r8 icicval = a + b * ttmp + c * ttmp**2._r8 rho = p/(rair*T) - icicval = icicval * 1.e-6_r8 / rho + icicval = icicval * 1.e-6_r8 / rho else ttmp = max(190._r8,min(T,273.16_r8)) icicval = 10._r8 **(as * bs**ttmp + cs) icicval = icicval * 1.e-6_r8 * 18._r8 / 28.97_r8 endif - aist = max(0._r8,min(qi/icicval,1._r8)) + aist = max(0._r8,min(qi/icicval,1._r8)) elseif( iceopt.eq.3 ) then aist = 1._r8 - exp(-Kc*qi/(qs*(esi(i)/esl(i)))) aist = max(0._r8,min(aist,1._r8)) @@ -1075,9 +1077,9 @@ subroutine aist_vector(qv_in, T_in, p_in, qi_in, ni_in, landfrac_in, snowh_in, a ! endif endif ncf = qi/((1._r8 - icecrit)*qs) - if( ncf.le.0._r8 ) then + if( ncf.le.0._r8 ) then aist = 0._r8 - elseif( ncf.gt.0._r8 .and. ncf.le.1._r8/6._r8 ) then + elseif( ncf.gt.0._r8 .and. ncf.le.1._r8/6._r8 ) then aist = 0.5_r8*(6._r8 * ncf)**(2._r8/3._r8) elseif( ncf.gt.1._r8/6._r8 .and. ncf.lt.1._r8 ) then phi = (acos(3._r8*(1._r8-ncf)/2._r8**(3._r8/2._r8))+4._r8*3.1415927_r8)/3._r8 @@ -1086,7 +1088,7 @@ subroutine aist_vector(qv_in, T_in, p_in, qi_in, ni_in, landfrac_in, snowh_in, a aist = 1._r8 endif aist = max(0._r8,min(aist,1._r8)) - elseif (iceopt.eq.5) then + elseif (iceopt.eq.5) then ! set rh ice cloud fraction rhi= (qv+qi)/qs * (esl(i)/esi(i)) if (rhmaxi .eq. rhmini) then @@ -1117,7 +1119,7 @@ subroutine aist_vector(qv_in, T_in, p_in, qi_in, ni_in, landfrac_in, snowh_in, a aist = max(0._r8,min(qi/icicval,1._r8)) aist = min(aist,1._r8) - endif + endif if (iceopt.eq.5 .or. iceopt.eq.6) then @@ -1162,10 +1164,10 @@ subroutine aist_vector(qv_in, T_in, p_in, qi_in, ni_in, landfrac_in, snowh_in, a endif endif - endif + endif ! 0.999_r8 is added to prevent infinite 'ql_st' at the end of instratus_condensate - ! computed after updating 'qi_st'. + ! computed after updating 'qi_st'. aist = max(0._r8,min(aist,0.999_r8)) From c50fcc610f9e5dc209d7adc77ebca09a019b64f5 Mon Sep 17 00:00:00 2001 From: Cheryl Craig Date: Fri, 13 Oct 2023 15:05:28 -0600 Subject: [PATCH 11/18] Change namelist based on verbal request from Adam, Cecile and Peter --- bld/namelist_files/namelist_defaults_cam.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bld/namelist_files/namelist_defaults_cam.xml b/bld/namelist_files/namelist_defaults_cam.xml index 71d6e8943d..44d91006ca 100644 --- a/bld/namelist_files/namelist_defaults_cam.xml +++ b/bld/namelist_files/namelist_defaults_cam.xml @@ -2226,8 +2226,8 @@ 1.D0 1.D0 - 1.D0 - 0.50D0 + 1.D0 + 0.375D0 1.D0 From 8b7a4ea0c67b3e8a2ba4d512cd8f11eafe3f8ee6 Mon Sep 17 00:00:00 2001 From: Cheryl Craig Date: Fri, 13 Oct 2023 18:54:19 -0600 Subject: [PATCH 12/18] Change PE layout to fix some derecho failures --- cime_config/testdefs/testlist_cam.xml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/cime_config/testdefs/testlist_cam.xml b/cime_config/testdefs/testlist_cam.xml index c7b7d00daf..854ad1ac5a 100644 --- a/cime_config/testdefs/testlist_cam.xml +++ b/cime_config/testdefs/testlist_cam.xml @@ -1690,7 +1690,7 @@ - + @@ -1700,7 +1700,7 @@ - + @@ -1709,7 +1709,7 @@ - + @@ -1718,7 +1718,7 @@ - + @@ -1860,7 +1860,7 @@ - + @@ -1870,7 +1870,7 @@ - + @@ -2156,7 +2156,7 @@ - + From a35cef1720ce73dcac14ee7aae580c8ea63f4d4a Mon Sep 17 00:00:00 2001 From: Cheryl Craig Date: Mon, 16 Oct 2023 14:23:05 -0600 Subject: [PATCH 13/18] Fix failing SPCAM test --- src/physics/spcam/crmclouds_camaerosols.F90 | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/physics/spcam/crmclouds_camaerosols.F90 b/src/physics/spcam/crmclouds_camaerosols.F90 index 08f4e3f246..0ab4568033 100644 --- a/src/physics/spcam/crmclouds_camaerosols.F90 +++ b/src/physics/spcam/crmclouds_camaerosols.F90 @@ -388,6 +388,9 @@ subroutine crmclouds_mixnuc_tend( aero_props, aero_state, state, ptend, dtime, c type(physics_ptend), intent(out) :: ptend ! package tendencies ! Local variables + + real(r8), parameter :: wsub_min_asf = 0.1D0 + integer i,k,m, k1, k2 integer ifld, itim integer ixcldliq, ixcldice, ixnumliq @@ -580,7 +583,8 @@ subroutine crmclouds_mixnuc_tend( aero_props, aero_state, state, ptend, dtime, c ! should we set omega to be zero ?? omega(:ncol, :) = state%omega(:ncol, :) - call dropmixnuc(aero_props, aero_state, state, ptend, dtime, pbuf, wsub, lcldn, lcldo, cldliqf, tendnd, factnum, dommf ) + call dropmixnuc(aero_props, aero_state, state, ptend, dtime, pbuf, wsub, wsub_min_asf, lcldn, lcldo, cldliqf, tendnd, factnum, & + dommf ) ! this part is moved into tphysbc after aerosol stuffs. ! From c2bb018620632d163ac9e3c3b7b03a73a081bb34 Mon Sep 17 00:00:00 2001 From: Cheryl Craig Date: Mon, 16 Oct 2023 16:17:50 -0600 Subject: [PATCH 14/18] Update externals to get job_priority setting on derecho --- Externals.cfg | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Externals.cfg b/Externals.cfg index 7dfd41a073..c60ee52605 100644 --- a/Externals.cfg +++ b/Externals.cfg @@ -1,5 +1,5 @@ [ccs_config] -tag = ccs_config_cesm0.0.78 +tag = ccs_config_cesm0.0.80 protocol = git repo_url = https://github.com/ESMCI/ccs_config_cesm local_path = ccs_config @@ -21,7 +21,7 @@ externals = Externals.cfg required = True [cmeps] -tag = cmeps0.14.39 +tag = cmeps0.14.43 protocol = git repo_url = https://github.com/ESCOMP/CMEPS.git local_path = components/cmeps @@ -36,7 +36,7 @@ externals = Externals_CDEPS.cfg required = True [cpl7] -tag = cpl77.0.6 +tag = cpl77.0.7 protocol = git repo_url = https://github.com/ESCOMP/CESM_CPL7andDataComps local_path = components/cpl7 From c468dc042761fc14526a67191184876104654e73 Mon Sep 17 00:00:00 2001 From: Cheryl Craig Date: Tue, 17 Oct 2023 11:51:01 -0600 Subject: [PATCH 15/18] Update ChangeLog for cam6_3_131 --- doc/ChangeLog | 160 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 160 insertions(+) diff --git a/doc/ChangeLog b/doc/ChangeLog index 791b5f9d9a..c8ef2edaee 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,163 @@ + +=============================================================== + +Tag name: cam6_3_131 +Originator(s): cacraig +Date: Oct 17, 2023 +One-line Summary: Update externals to get job_priority setting on derecho +Github PR URL: https://github.com/ESCOMP/CAM/pull/906 + +Purpose of changes (include the issue number and title text for each relevant GitHub issue): + - Update externals for job_priority and other derecho enhancements: https://github.com/ESCOMP/CAM/issues/905 + NOTE -- This change brings in an updated CMEPS which is answer changing (see https://github.com/ESCOMP/CMEPS/pull/394) + +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: nusbaume (and Adam and Cecile gave their approval for this to proceed) + +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 Externals.cfg + - Update the externals + +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. + +cheyenne/intel/aux_cam: + ERP_Ln9_Vnuopc.C96_C96_mg17.F2000climo.cheyenne_intel.cam-outfrq9s_mg3 (Overall: FAIL) details: + FAIL ERP_Ln9_Vnuopc.C96_C96_mg17.F2000climo.cheyenne_intel.cam-outfrq9s_mg3 MODEL_BUILD time=2 + ERP_Ln9_Vnuopc.f09_f09_mg17.FCSD_HCO.cheyenne_intel.cam-outfrq9s (Overall: FAIL) details: + FAIL ERP_Ln9_Vnuopc.f09_f09_mg17.FCSD_HCO.cheyenne_intel.cam-outfrq9s COMPARE_base_rest + SMS_Lh12_Vnuopc.f09_f09_mg17.FCSD_HCO.cheyenne_intel.cam-outfrq3h (Overall: DIFF) details: + - pre-existing failure + + ERC_D_Ln9_P144x1_Vnuopc.ne16pg3_ne16pg3_mg17.QPC6HIST.cheyenne_intel.cam-outfrq3s_ttrac_usecase (Overall: DIFF) details: + ERC_D_Ln9_Vnuopc.f19_f19_mg17.QPC6.cheyenne_intel.cam-outfrq3s_cosp (Overall: DIFF) details: + ERC_D_Ln9_Vnuopc.f19_f19_mg17.QPMOZ.cheyenne_intel.cam-outfrq3s (Overall: DIFF) details: + ERC_D_Ln9_Vnuopc.f19_f19_mg17.QPX2000.cheyenne_intel.cam-outfrq3s (Overall: DIFF) details: + ERC_D_Ln9_Vnuopc.ne16_ne16_mg17.QPC5HIST.cheyenne_intel.cam-outfrq3s_usecase (Overall: DIFF) details: + ERI_D_Ln18_Vnuopc.f45_f45_mg37.QPC41850.cheyenne_intel.cam-co2rmp_usecase (Overall: DIFF) details: + ERP_D_Ln9.ne30pg3_ne30pg3_mg17.FLTHIST.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + ERP_D_Ln9_Vnuopc.f09_f09_mg17.QSC6.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + ERP_D_Ln9_Vnuopc.f19_f19_mg17.QPC6.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + ERP_D_Ln9_Vnuopc.ne30pg3_ne30pg3_mg17.F2000dev.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + ERP_Ld3_Vnuopc.f09_f09_mg17.FWHIST.cheyenne_intel.cam-reduced_hist1d (Overall: DIFF) details: + ERP_Lh12_Vnuopc.f19_f19_mg17.FW4madSD.cheyenne_intel.cam-outfrq3h (Overall: DIFF) details: + ERP_Ln9_P24x3_Vnuopc.f45_f45_mg37.QPWmaC6.cheyenne_intel.cam-outfrq9s_mee_fluxes (Overall: DIFF) details: + ERP_Ln9_Vnuopc.f09_f09_mg17.F1850.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + ERP_Ln9_Vnuopc.f09_f09_mg17.F2000climo.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + ERP_Ln9_Vnuopc.f09_f09_mg17.F2000dev.cheyenne_intel.cam-outfrq9s_mg3 (Overall: DIFF) details: + ERP_Ln9_Vnuopc.f09_f09_mg17.F2010climo.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + ERP_Ln9_Vnuopc.f09_f09_mg17.FHIST_BDRD.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + ERP_Ln9_Vnuopc.f19_f19_mg17.FWsc1850.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + ERP_Ln9_Vnuopc.ne30_ne30_mg17.FCnudged.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + ERP_Ln9_Vnuopc.ne30pg3_ne30pg3_mg17.FW2000climo.cheyenne_intel.cam-outfrq9s_wcm_ne30 (Overall: DIFF) details: + ERS_Ld3_Vnuopc.f10_f10_mg37.F1850.cheyenne_intel.cam-outfrq1d_14dec_ghg_cam_dev (Overall: DIFF) details: + ERS_Ln9_P288x1_Vnuopc.mpasa120_mpasa120.F2000climo.cheyenne_intel.cam-outfrq9s_mpasa120 (Overall: DIFF) details: + ERS_Ln9_P36x1_Vnuopc.mpasa480_mpasa480.F2000climo.cheyenne_intel.cam-outfrq9s_mpasa480 (Overall: DIFF) details: + ERS_Ln9_Vnuopc.f09_f09_mg17.FX2000.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + ERS_Ln9_Vnuopc.f19_f19_mg17.FSPCAMS.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + ERS_Ln9_Vnuopc.f19_f19_mg17.FXSD.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + SCT_D_Ln7_Vnuopc.T42_T42_mg17.QPC5.cheyenne_intel.cam-scm_prep (Overall: DIFF) details: + SMS_D_Ld2_Vnuopc.f19_f19_mg17.QPC5HIST.cheyenne_intel.cam-volc_usecase (Overall: DIFF) details: + SMS_D_Ln9.ne30pg3_ne30pg3_mg17.FMTHIST.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + SMS_D_Ln9_Vnuopc.f09_f09_mg17.FCts2nudged.cheyenne_intel.cam-outfrq9s_leapday (Overall: DIFF) details: + SMS_D_Ln9_Vnuopc.f09_f09_mg17.FCvbsxHIST.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + SMS_D_Ln9_Vnuopc.f09_f09_mg17.FSD.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + SMS_D_Ln9_Vnuopc.f19_f19_mg17.FWma2000climo.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + SMS_D_Ln9_Vnuopc.f19_f19_mg17.FWma2000climo.cheyenne_intel.cam-outfrq9s_waccm_ma_mam4 (Overall: DIFF) details: + SMS_D_Ln9_Vnuopc.f19_f19_mg17.FXHIST.cheyenne_intel.cam-outfrq9s_amie (Overall: DIFF) details: + SMS_D_Ln9_Vnuopc.f19_f19_mg17.QPC2000climo.cheyenne_intel.cam-outfrq3s_usecase (Overall: DIFF) details: + SMS_D_Ln9_Vnuopc.f19_f19_mg17.QPC5M7.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + SMS_D_Ln9_Vnuopc.ne16_ne16_mg17.FX2000.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + SMS_D_Ln9_Vnuopc.ne16_ne16_mg17.QPX2000.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + SMS_D_Ln9_Vnuopc_P720x1.ne0ARCTICne30x4_ne0ARCTICne30x4_mt12.FHIST.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + SMS_D_Ln9_Vnuopc_P720x1.ne0CONUSne30x8_ne0CONUSne30x8_mt12.FCHIST.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + SMS_D_Ln9_Vnuopc_P720x1.ne30pg3_ne30pg3_mg17.FCLTHIST.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + SMS_Ld1_Vnuopc.f09_f09_mg17.FW2000climo.cheyenne_intel.cam-outfrq1d (Overall: DIFF) details: + SMS_Ld1_Vnuopc.f19_f19.F2000dev.cheyenne_intel.cam-outfrq1d (Overall: DIFF) details: + SMS_Ld1_Vnuopc.ne30pg3_ne30pg3_mg17.FC2010climo.cheyenne_intel.cam-outfrq1d (Overall: DIFF) details: + SMS_Lm13_Vnuopc.f10_f10_mg37.F2000climo.cheyenne_intel.cam-outfrq1m (Overall: DIFF) details: + SMS_Ln9_Vnuopc.f09_f09_mg17.F2010climo.cheyenne_intel.cam-nudging (Overall: DIFF) details: + SMS_Ln9_Vnuopc.f09_f09_mg17.FW1850.cheyenne_intel.cam-reduced_hist3s (Overall: DIFF) details: + SMS_Ln9_Vnuopc.f19_f19.F2000climo.cheyenne_intel.cam-silhs (Overall: DIFF) details: + SMS_Ln9_Vnuopc.f19_f19_mg17.FHIST.cheyenne_intel.cam-outfrq9s_nochem (Overall: DIFF) details: + - answer changes due to CMEPS update + +izumi/nag/aux_cam: + DAE_Vnuopc.f45_f45_mg37.FHS94.izumi_nag.cam-dae (Overall: FAIL) details: + FAIL DAE_Vnuopc.f45_f45_mg37.FHS94.izumi_nag.cam-dae RUN time=188 + PEND DAE_Vnuopc.f45_f45_mg37.FHS94.izumi_nag.cam-dae COMPARE_base_da + - pre-existing failure + + ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC5.izumi_nag.cam-carma_sea_salt (Overall: DIFF) details: + ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC5.izumi_nag.cam-outfrq3s_cosp (Overall: DIFF) details: + ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC5.izumi_nag.cam-outfrq3s_subcol (Overall: DIFF) details: + ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC6.izumi_nag.cam-outfrq3s_am (Overall: DIFF) details: + ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC6.izumi_nag.cam-outfrq3s_convmic (Overall: DIFF) details: + ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC6.izumi_nag.cam-outfrq3s_cospsathist (Overall: DIFF) details: + ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC6.izumi_nag.cam-outfrq3s (Overall: DIFF) details: + ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPWmaC6.izumi_nag.cam-outfrq3s (Overall: DIFF) details: + ERC_D_Ln9_Vnuopc.f10_f10_mg37.QSPCAMS.izumi_nag.cam-outfrq3s (Overall: DIFF) details: + ERC_D_Ln9_Vnuopc.ne16_ne16_mg17.QPC4.izumi_nag.cam-outfrq3s_usecase (Overall: DIFF) details: + ERC_D_Ln9_Vnuopc.ne16pg3_ne16pg3_mg17.QPC4.izumi_nag.cam-outfrq3s_usecase (Overall: DIFF) details: + ERC_D_Ln9_Vnuopc.ne5_ne5_mg37.QPC5.izumi_nag.cam-outfrq3s_ttrac (Overall: DIFF) details: + ERC_D_Ln9_Vnuopc.T5_T5_mg37.QPC4.izumi_nag.cam-outfrq3s_usecase (Overall: DIFF) details: + ERI_D_Ln18_Vnuopc.f10_f10_mg37.QPC5.izumi_nag.cam-outfrq3s_eoyttrac (Overall: DIFF) details: + ERI_D_Ln18_Vnuopc.f19_f19_mg17.QPC6.izumi_nag.cam-ghgrmp_e8 (Overall: DIFF) details: + ERP_Ln9_Vnuopc.ne5pg3_ne5pg3_mg37.QPC6.izumi_nag.cam-outfrq9s_clubbmf (Overall: DIFF) details: + PLB_D_Ln9_Vnuopc.f10_f10_mg37.QPC5.izumi_nag.cam-ttrac_loadbal0 (Overall: DIFF) details: + PLB_D_Ln9_Vnuopc.f10_f10_mg37.QPC5.izumi_nag.cam-ttrac_loadbal1 (Overall: DIFF) details: + PLB_D_Ln9_Vnuopc.f10_f10_mg37.QPC5.izumi_nag.cam-ttrac_loadbal3 (Overall: DIFF) details: + PLB_D_Ln9_Vnuopc.ne5_ne5_mg37.QPC5.izumi_nag.cam-ttrac_loadbal0 (Overall: DIFF) details: + PLB_D_Ln9_Vnuopc.ne5_ne5_mg37.QPC5.izumi_nag.cam-ttrac_loadbal1 (Overall: DIFF) details: + PLB_D_Ln9_Vnuopc.ne5_ne5_mg37.QPC5.izumi_nag.cam-ttrac_loadbal3 (Overall: DIFF) details: + SMS_D_Ln3_Vnuopc.ne5pg3_ne5pg3_mg37.QPX2000.izumi_nag.cam-outfrq3s (Overall: DIFF) details: + SMS_D_Ln6_Vnuopc.ne5_ne5_mg37.QPWmaC4.izumi_nag.cam-outfrq3s_physgrid_tem (Overall: DIFF) details: + SMS_D_Ln7_Vnuopc.T42_T42_mg17.QPSCAMC5.izumi_nag.cam-scmarm (Overall: DIFF) details: + SMS_D_Ln9_Vnuopc.f10_f10_mg37.QPC5.izumi_nag.cam-rad_diag_mam (Overall: DIFF) details: + SMS_D_Ln9_Vnuopc.f10_f10_mg37.QPC6.izumi_nag.cam-outfrq3s_ba (Overall: DIFF) details: + SMS_P48x1_D_Ln3_Vnuopc.f09_f09_mg17.QPC6HIST.izumi_nag.cam-outfrq3s_co2cycle_usecase (Overall: DIFF) details: + SUB_D_Ln9_Vnuopc.f10_f10_mg37.QPC5.izumi_nag.cam-outfrq3s (Overall: DIFF) details: + TMC_D_Vnuopc.f10_f10_mg37.QPC5.izumi_nag.cam-outfrq3s_eoyttrac (Overall: DIFF) details: + TMC_D_Vnuopc.T5_T5_mg37.QPC5.izumi_nag.cam-ghgrmp_e8 (Overall: DIFF) details: + - answer changes due to CMEPS update + +izumi/gnu/aux_cam: + ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC4.izumi_gnu.cam-outfrq3s_diags (Overall: DIFF) details: + ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC5.izumi_gnu.cam-outfrq3s_unicon (Overall: DIFF) details: + ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPC5.izumi_gnu.cam-rad_diag (Overall: DIFF) details: + ERC_D_Ln9_Vnuopc.f10_f10_mg37.QPSPCAMM.izumi_gnu.cam-outfrq3s (Overall: DIFF) details: + ERC_D_Ln9_Vnuopc.ne5_ne5_mg37.QPC4.izumi_gnu.cam-outfrq3s_nudging_ne5_L26 (Overall: DIFF) details: + ERC_D_Ln9_Vnuopc.ne5_ne5_mg37.QPC5.izumi_gnu.cam-outfrq3s_ba (Overall: DIFF) details: + ERC_D_Ln9_Vnuopc.T5_T5_mg37.QPC3.izumi_gnu.cam-outfrq3s_usecase (Overall: DIFF) details: + ERI_D_Ln18_Vnuopc.T5_T5_mg37.QPC4.izumi_gnu.cam-co2rmp (Overall: DIFF) details: + ERP_Ln9_Vnuopc.ne5_ne5_mg37.QPC5.izumi_gnu.cam-outfrq9s (Overall: DIFF) details: + PLB_D_Ln9_Vnuopc.ne5pg3_ne5pg3_mg37.QPC5.izumi_gnu.cam-ttrac_loadbal0 (Overall: DIFF) details: + PLB_D_Ln9_Vnuopc.ne5pg3_ne5pg3_mg37.QPC5.izumi_gnu.cam-ttrac_loadbal1 (Overall: DIFF) details: + PLB_D_Ln9_Vnuopc.ne5pg3_ne5pg3_mg37.QPC5.izumi_gnu.cam-ttrac_loadbal3 (Overall: DIFF) details: + SCT_D_Ln7_Vnuopc.T42_T42_mg17.QPC4.izumi_gnu.cam-scm_prep (Overall: DIFF) details: + SCT_D_Ln7_Vnuopc.T42_T42_mg17.QPC6.izumi_gnu.cam-scm_prep_c6 (Overall: DIFF) details: + SMS_D_Ln3_Vnuopc.f10_f10_mg37.QPMOZ.izumi_gnu.cam-outfrq3s_chemproc (Overall: DIFF) details: + SMS_D_Ln9.f10_f10_mg37.2000_CAM%DEV%GHGMAM4_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV_SESP.izumi_gnu.cam-outfrq9s (Overall: +DIFF) details: + SMS_D_Ln9_Vnuopc.f10_f10_mg37.QPWmaC4.izumi_gnu.cam-outfrq9s_apmee (Overall: DIFF) details: + SMS_D_Ln9_Vnuopc.ne5pg3_ne5pg3_mg37.QPC5.izumi_gnu.cam-outfrq3s_ttrac (Overall: DIFF) details: + SMS_P48x1_D_Ln9_Vnuopc.f19_f19_mg17.FW4madSD.izumi_gnu.cam-outfrq9s (Overall: DIFF) details: + - answer changes due to CMEPS update + +=============================================================== =============================================================== Tag name: cam6_3_130 From 311a23d023282afbe3c8d4ca2ed0eb0efebaf7d6 Mon Sep 17 00:00:00 2001 From: Cheryl Craig Date: Wed, 18 Oct 2023 09:41:09 -0600 Subject: [PATCH 16/18] ChangeLog for cam6_3_132 --- doc/ChangeLog | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) diff --git a/doc/ChangeLog b/doc/ChangeLog index c8ef2edaee..f21676fe92 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,121 @@ +=============================================================== + +Tag name:cam6_3_132 +Originator(s): cacraig, adamher, Thomas Toniazzo, hannay +Date: Oct 18, 2023 +One-line Summary: Bring in changes to match run 51 +Github PR URL: https://github.com/ESCOMP/CAM/pull/900 + +Purpose of changes (include the issue number and title text for each relevant GitHub issue): + - Update cam_development to match current tuning runs: https://github.com/ESCOMP/CAM/issues/895 + - Discussion also occurred at: https://github.com/NCAR/amwg_dev/discussions/412 + +Describe any changes made to build system: N/A + +Describe any changes made to the namelist: + - When running cam_dev, change the values for: + micro_mg_dcs + clubb_gamma_coef + clubb_gamma_coefb + microp_aero_wsub_scale + microp_aero_wsubi_scale + microp_aero_wsub_min + micro_mg_vtrmi_factor + + - New namelists implemented: + microp_aero_wsub_min_asf: min subgrid vertical velocity (after scale factor) See namelist definition for full description + cldfrc2m_do_avg_aist_algs: for small ice cloud concentrations, take the geometric mean of the iceopt=4 and 5 area fractions + cldfrc2m_qist_min: min in-stratus ice IWC constraint + cldfrc2m_qist_max: max in-stratus ice IWC constraint + +List any changes to the defaults for the boundary datasets: N/A + +Describe any substantial timing or memory changes: N/A + +Code reviewed by: nusbaume, pel, adamrher + +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 bld/build-namelist +M bld/namelist_files/namelist_defaults_cam.xml +M src/physics/cam/cldfrc2m.F90 +M src/physics/cam/microp_aero.F90 +M src/physics/cam/ndrop.F90 +M src/physics/spcam/crmclouds_camaerosols.F90 + - Change namelist as discussed in the issue/PR and group discussion + +M bld/namelist_files/namelist_definition.xml + - Update descriptions and add new ones + +M cime_config/testdefs/testlist_cam.xml + - Change a few tests to have them work on derecho + +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. + +cheyenne/intel/aux_cam: + ERP_Ln9_Vnuopc.C96_C96_mg17.F2000climo.cheyenne_intel.cam-outfrq9s_mg3 (Overall: PEND) details: + PEND ERP_Ln9_Vnuopc.C96_C96_mg17.F2000climo.cheyenne_intel.cam-outfrq9s_mg3 MODEL_BUILD RERUN + ERP_Ln9_Vnuopc.f09_f09_mg17.FCSD_HCO.cheyenne_intel.cam-outfrq9s (Overall: FAIL) details: + FAIL ERP_Ln9_Vnuopc.f09_f09_mg17.FCSD_HCO.cheyenne_intel.cam-outfrq9s COMPARE_base_rest + SMS_Lh12_Vnuopc.f09_f09_mg17.FCSD_HCO.cheyenne_intel.cam-outfrq3h (Overall: DIFF) details: + - pre-existing failure + + ERC_D_Ln9_P144x1_Vnuopc.ne16pg3_ne16pg3_mg17.QPC6HIST.cheyenne_intel.cam-outfrq3s_ttrac_usecase (Overall: DIFF) details: + ERP_D_Ln9.ne30pg3_ne30pg3_mg17.FLTHIST.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + ERP_Ln9_Vnuopc.ne30_ne30_mg17.FCnudged.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + ERP_Ln9_Vnuopc.ne30pg3_ne30pg3_mg17.FW2000climo.cheyenne_intel.cam-outfrq9s_wcm_ne30 (Overall: DIFF) details: + SMS_D_Ln9.ne30pg3_ne30pg3_mg17.FMTHIST.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + SMS_D_Ln9_Vnuopc.ne16_ne16_mg17.FX2000.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + SMS_D_Ln9_Vnuopc_P1280x1.ne0ARCTICne30x4_ne0ARCTICne30x4_mt12.FHIST.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + SMS_D_Ln9_Vnuopc_P1280x1.ne0CONUSne30x8_ne0CONUSne30x8_mt12.FCHIST.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + SMS_D_Ln9_Vnuopc_P1280x1.ne30pg3_ne30pg3_mg17.FCLTHIST.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + SMS_Ld1_Vnuopc.ne30pg3_ne30pg3_mg17.FC2010climo.cheyenne_intel.cam-outfrq1d (Overall: DIFF) details: + - expected baseline differences due to removal of cam6 tuning factor for SE dy + + ERP_Ln9_Vnuopc.f09_f09_mg17.F2000dev.cheyenne_intel.cam-outfrq9s_mg3 (Overall: DIFF) details: + ERP_D_Ln9_Vnuopc.ne30pg3_ne30pg3_mg17.F2000dev.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + ERS_Ld3_Vnuopc.f10_f10_mg37.F1850.cheyenne_intel.cam-outfrq1d_14dec_ghg_cam_dev (Overall: DIFF) details: + SMS_Ld1_Vnuopc.f19_f19.F2000dev.cheyenne_intel.cam-outfrq1d (Overall: DIFF) details: + - expected baseline differences for cam_dev runs + + SMS_D_Ln9_Vnuopc_P1280x1.ne0ARCTICne30x4_ne0ARCTICne30x4_mt12.FHIST.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + SMS_D_Ln9_Vnuopc_P1280x1.ne0CONUSne30x8_ne0CONUSne30x8_mt12.FCHIST.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + SMS_D_Ln9_Vnuopc_P1280x1.ne30pg3_ne30pg3_mg17.FCLTHIST.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + -Changed layout and hence the testname, so no baselines to compare with + +izumi/nag/aux_cam: + DAE_Vnuopc.f45_f45_mg37.FHS94.izumi_nag.cam-dae (Overall: FAIL) + - pre-existing failure + + ERP_Ln9_Vnuopc.ne5pg3_ne5pg3_mg37.QPC6.izumi_nag.cam-outfrq9s_clubbmf (Overall: DIFF) details: + - expected baseline differences due to removal of cam6 tuning factor for SE dy + +izumi/gnu/aux_cam: + SMS_D_Ln9.f10_f10_mg37.2000_CAM%DEV%GHGMAM4_CLM50%SP_CICE%PRES_DOCN%DOM_MOSART_SGLC_SWAV_SESP.izumi_gnu.cam-outfrq9s (Overall: DIFF) details: + - expected baseline differences for cam_dev runs + +NOTE: Most tests have namelist changes + +CAM tag used for the baseline comparison tests if different than previous +tag: N/A + +Summarize any changes to answers, i.e., +- what code configurations: All cam_dev and SE cam6 +- what platforms/compilers: All +- nature of change (roundoff; larger than roundoff but same climate; new + climate): Tuning changes - Climate changing for cam_dev + +If this tag changes climate describe the run(s) done to evaluate the new +climate in enough detail that it(they) could be reproduced, i.e., + - Run which was the prelimiary source of the changes: https://github.com/NCAR/amwg_dev/tree/b.e23_alpha16b.BLT1850.ne30_t232.051 + - It is important to note that further changes were made to this tag as discussed in the issue/PR and discussion - Adam ran a test + to verify the final changes. =============================================================== From 987cf6c859f4fe4debe95fdaece38dfa645d4079 Mon Sep 17 00:00:00 2001 From: Francis Vitt Date: Thu, 19 Oct 2023 06:54:37 -0600 Subject: [PATCH 17/18] update ChangeLog --- doc/ChangeLog | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) diff --git a/doc/ChangeLog b/doc/ChangeLog index f21676fe92..8406d3fc3b 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,5 +1,123 @@ =============================================================== +Tag name: cam6_3_133 +Originator(s): fvitt +Date: 19 Oct 2023 +One-line Summary: Misc updates for WACCM-X +Github PR URL: https://github.com/ESCOMP/CAM/pull/897 + +Purpose of changes (include the issue number and title text for each relevant GitHub issue): + + Introduce a hybrid PGF option in the SE dycore for WACCM-x to make WACCM-x consistent + with PGF used in CAM in the troposphere and traditional PGF formulation above to solve + stability issues with the SE dycore (issue #896) + + Set reasonable default PE layouts for WACCM(x) and CAMChem on derecho. This solves some + of the regression test failures listed in issue #892 + + Implements PHIHM history field for waccmx -- High Latitude Electric Potential + + Correction to geometric height diagnostic (issue #681) + +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: PeterHjortLauritzen cacraigucar nusbaume + +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 bld/namelist_files/namelist_defaults_cam.xml + - default IC for ne30pg3 L130 waccmx + +M bld/namelist_files/namelist_definition.xml + - add hybrid option for PGF formulation used by waccmx + +M cime_config/config_pes.xml + - default derecho PE layouts for + ne16, ne30 waccmx + f09 waccmx, waccm, and camchem + +M src/control/cam_history.F90 + - deallocate arrays at the end of write_restart_history + +M src/dynamics/se/dycore/global_norms_mod.F90 + - for waccmx set umax to 800 m/s used in stability assessment + +M src/dynamics/se/dycore/prim_advance_mod.F90 + - add hybrid option for PGF formulation used by waccmx + +M src/ionosphere/waccmx/edyn_init.F90 +M src/ionosphere/waccmx/edynamo.F90 + - add PHIHM history field diagnostic + +M src/ionosphere/waccmx/ionosphere_interface.F90 + - correction to Z3GM geometric height diagnostic + - replace "/gravit" with "*rga" in height calc + +M src/physics/cam/vertical_diffusion.F90 + - raise the lid of eddy diffusion for waccmx (ntop_eddy_pres=1.e-7 Pa) + +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. + +cheyenne/intel/aux_cam: + + ERP_Ln9_Vnuopc.C96_C96_mg17.F2000climo.cheyenne_intel.cam-outfrq9s_mg3 (Overall: FAIL) details: + FAIL ERP_Ln9_Vnuopc.C96_C96_mg17.F2000climo.cheyenne_intel.cam-outfrq9s_mg3 MODEL_BUILD time=3 + ERP_Ln9_Vnuopc.f09_f09_mg17.FCSD_HCO.cheyenne_intel.cam-outfrq9s (Overall: FAIL) details: + FAIL ERP_Ln9_Vnuopc.f09_f09_mg17.FCSD_HCO.cheyenne_intel.cam-outfrq9s COMPARE_base_rest + FAIL ERP_Ln9_Vnuopc.f09_f09_mg17.FCSD_HCO.cheyenne_intel.cam-outfrq9s BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_132: DIFF + SMS_Lh12_Vnuopc.f09_f09_mg17.FCSD_HCO.cheyenne_intel.cam-outfrq3h (Overall: DIFF) details: + FAIL SMS_Lh12_Vnuopc.f09_f09_mg17.FCSD_HCO.cheyenne_intel.cam-outfrq3h BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_132: DIFF + - pre-existing failure + + ERC_D_Ln9_Vnuopc.f19_f19_mg17.QPX2000.cheyenne_intel.cam-outfrq3s (Overall: DIFF) details: + FAIL ERC_D_Ln9_Vnuopc.f19_f19_mg17.QPX2000.cheyenne_intel.cam-outfrq3s BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_132: DIFF + ERS_Ln9_Vnuopc.f09_f09_mg17.FX2000.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + FAIL ERS_Ln9_Vnuopc.f09_f09_mg17.FX2000.cheyenne_intel.cam-outfrq9s BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_132: DIFF + ERS_Ln9_Vnuopc.f19_f19_mg17.FXSD.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + FAIL ERS_Ln9_Vnuopc.f19_f19_mg17.FXSD.cheyenne_intel.cam-outfrq9s BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_132: DIFF + SMS_D_Ln9_Vnuopc.f19_f19_mg17.FXHIST.cheyenne_intel.cam-outfrq9s_amie (Overall: DIFF) details: + FAIL SMS_D_Ln9_Vnuopc.f19_f19_mg17.FXHIST.cheyenne_intel.cam-outfrq9s_amie BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_132: DIFF + SMS_D_Ln9_Vnuopc.ne16_ne16_mg17.FX2000.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + FAIL SMS_D_Ln9_Vnuopc.ne16_ne16_mg17.FX2000.cheyenne_intel.cam-outfrq9s NLCOMP + FAIL SMS_D_Ln9_Vnuopc.ne16_ne16_mg17.FX2000.cheyenne_intel.cam-outfrq9s BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_132: DIFF + SMS_D_Ln9_Vnuopc.ne16_ne16_mg17.QPX2000.cheyenne_intel.cam-outfrq9s (Overall: DIFF) details: + FAIL SMS_D_Ln9_Vnuopc.ne16_ne16_mg17.QPX2000.cheyenne_intel.cam-outfrq9s NLCOMP + FAIL SMS_D_Ln9_Vnuopc.ne16_ne16_mg17.QPX2000.cheyenne_intel.cam-outfrq9s BASELINE /glade/p/cesm/amwg/cesm_baselines/cam6_3_132: DIFF + - expected failures + +izumi/nag/aux_cam: + + DAE_Vnuopc.f45_f45_mg37.FHS94.izumi_nag.cam-dae (Overall: FAIL) details: + FAIL DAE_Vnuopc.f45_f45_mg37.FHS94.izumi_nag.cam-dae RUN time=205 + - pre-existing failure + + SMS_D_Ln3_Vnuopc.ne5pg3_ne5pg3_mg37.QPX2000.izumi_nag.cam-outfrq3s (Overall: DIFF) details: + FAIL SMS_D_Ln3_Vnuopc.ne5pg3_ne5pg3_mg37.QPX2000.izumi_nag.cam-outfrq3s NLCOMP + FAIL SMS_D_Ln3_Vnuopc.ne5pg3_ne5pg3_mg37.QPX2000.izumi_nag.cam-outfrq3s BASELINE /fs/cgd/csm/models/atm/cam/pretag_bl/cam6_3_132_nag: DIFF + - expected failure + +izumi/gnu/aux_cam: All PASS + +Summarize any changes to answers: + larger than roundoff for SE WACCMX, roundoff for FV WACCMX, + otherwise bit-for-bit unchanged + +=============================================================== +=============================================================== + Tag name:cam6_3_132 Originator(s): cacraig, adamher, Thomas Toniazzo, hannay Date: Oct 18, 2023 From 493df31ed68a185e4e0956909b05016fb78e89c3 Mon Sep 17 00:00:00 2001 From: Francis Vitt Date: Thu, 19 Oct 2023 07:26:42 -0600 Subject: [PATCH 18/18] update ChangeLog --- doc/ChangeLog | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/ChangeLog b/doc/ChangeLog index 8406d3fc3b..4a2c43d13f 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -8,16 +8,16 @@ Github PR URL: https://github.com/ESCOMP/CAM/pull/897 Purpose of changes (include the issue number and title text for each relevant GitHub issue): - Introduce a hybrid PGF option in the SE dycore for WACCM-x to make WACCM-x consistent - with PGF used in CAM in the troposphere and traditional PGF formulation above to solve - stability issues with the SE dycore (issue #896) + Introduce a hybrid PGF option in the SE dycore for WACCM-x to be consistent + with PGF used in CAM in the troposphere and traditional PGF formulation above + to solve stability issues with the SE dycore (issue #896) - Set reasonable default PE layouts for WACCM(x) and CAMChem on derecho. This solves some - of the regression test failures listed in issue #892 + Correction to geometric height diagnostic (issue #681) Implements PHIHM history field for waccmx -- High Latitude Electric Potential - Correction to geometric height diagnostic (issue #681) + Set reasonable default PE layouts for WACCM(x) and CAMChem on derecho. This + solves some of the regression test failures on derecho listed in issue #892 Describe any changes made to build system: N/A