Skip to content
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,10 @@

[submodule "atmos_phys"]
path = src/atmos_phys
url = https://github.com/ESCOMP/atmospheric_physics
fxtag = atmos_phys0_21_002
url = https://github.com/nusbaume/atmospheric_physics
fxtag = 2b7ecfa3
fxrequired = AlwaysRequired
fxDONOTUSEurl = https://github.com/ESCOMP/atmospheric_physics
fxDONOTUSEurl = https://github.com/nusbaume/atmospheric_physics

[submodule "cam-sima"]
path = src/utils/cam-sima
Expand Down
6 changes: 4 additions & 2 deletions bld/build-namelist
Original file line number Diff line number Diff line change
Expand Up @@ -5313,7 +5313,8 @@ sub check_snapshot_settings {
# cam7 physpkg
push(@validList_ac, ("'chem_emissions'",
"'clubb_tend_cam'",
"'microp_section'"));
"'microp_section'",
"'pumas_tend'"));
if ($use_subcol_microp =~ /$TRUE/io) {
push (@validList_bc, ("'microp_driver_tend_subcol'"));
}
Expand Down Expand Up @@ -5354,7 +5355,8 @@ sub check_snapshot_settings {
} else {
push (@validList_bc, ("'macrop_driver_tend'"));
}
push (@validList_bc, ("'microp_section'"));
push (@validList_bc, ("'microp_section'",
"'pumas_tend'"));
if ($use_subcol_microp =~ /$TRUE/io) {
push (@validList_bc, ("'microp_driver_tend_subcol'"));
}
Expand Down
10 changes: 5 additions & 5 deletions bld/namelist_files/namelist_definition.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3699,7 +3699,7 @@ the dynamics core. Very experimental.
<entry id="clubb_l_ascending_grid" type="logical" category="pblrad"
group="clubbpbl_diff_nl" valid_values="" >
Causes advance_clubb_core to run in ascending mode, where the surface is at k=1, which is opposite
of the descending cam grid. This is mainly a testing/debugging option - it requires an expensive
of the descending cam grid. This is mainly a testing/debugging option - it requires an expensive
data flipping step and should not change answers significantly.
</entry>

Expand Down Expand Up @@ -3979,7 +3979,7 @@ Valid values: 0 (no grid adaptation), 1 (use Lscale and wp2)

<entry id="clubb_fill_holes_type" type="integer" category="pblrad"
group="clubb_params_nl" valid_values="0,1,2,3,4,5,6" >
Selects which algorithm the fill_holes routine uses to correct
Selects which algorithm the fill_holes routine uses to correct
below threshold values in field solutions.
0: off - Skip the mass conservative hole filling step, rely on blunt clipping
1: global - Fast but minimally local, most methods use this as a fallback step
Expand Down Expand Up @@ -4211,7 +4211,7 @@ calculated by down-gradient diffusion.

<entry id="clubb_l_ho_nontrad_coriolis" type="logical" category="pblrad"
group="clubb_params_nl" valid_values="" >
Flag to implement the nontraditional Coriolis terms in the
Flag to implement the nontraditional Coriolis terms in the
prognostic equations of w'w', u'w', and u'u.
</entry>

Expand Down Expand Up @@ -5735,15 +5735,15 @@ Default:
</entry>

<entry id="cam_take_snapshot_before" type="char*32" category="diagnostics"
group="phys_ctl_nl" valid_values="chem_emissions,aoa_tracers_timestep_tend,co2_cycle_set_ptend,chem_timestep_tend,orographic_form_drag_stress,vertical_diffusion_section,aero_model_drydep,gw_tend,qbo_relax,iondrag_calc_section,physics_dme_adjust,physics_dme_adjust,dadadj_tend,convect_deep_tend,convect_shallow_tend,convect_diagnostics_calc,macrop_driver_tend,clubb_tend_cam,microp_section,microp_driver_tend_subcol,aero_model_wetdep,radiation_tend,held_suarez_tend,kessler_tend,thatcher_jablonowski_precip_tend,rk_stratiform_tend,rayleigh_friction_tend,user_set" >
group="phys_ctl_nl" valid_values="pumas_tend","chem_emissions,aoa_tracers_timestep_tend,co2_cycle_set_ptend,chem_timestep_tend,orographic_form_drag_stress,vertical_diffusion_section,aero_model_drydep,gw_tend,qbo_relax,iondrag_calc_section,physics_dme_adjust,physics_dme_adjust,dadadj_tend,convect_deep_tend,convect_shallow_tend,convect_diagnostics_calc,macrop_driver_tend,clubb_tend_cam,microp_section,microp_driver_tend_subcol,aero_model_wetdep,radiation_tend,held_suarez_tend,kessler_tend,thatcher_jablonowski_precip_tend,rk_stratiform_tend,rayleigh_friction_tend,user_set" >
Comment thread
jimmielin marked this conversation as resolved.
Outdated
Name of parameterization to take snapshot before running
user_set is used when a user inserts a call to cam_snapshot_all_outfld
using cam_snapshot_before_num as the first argument.
Default: Unused
</entry>

<entry id="cam_take_snapshot_after" type="char*32" category="diagnostics"
group="phys_ctl_nl" valid_values="chem_emissions,aoa_tracers_timestep_tend,co2_cycle_set_ptend,chem_timestep_tend,orographic_form_drag_stress,vertical_diffusion_section,aero_model_drydep,gw_tend,qbo_relax,iondrag_calc_section,physics_dme_adjust,physics_dme_adjust,dadadj_tend,convect_deep_tend,convect_shallow_tend,convect_diagnostics_calc,macrop_driver_tend,clubb_tend_cam,microp_section,microp_driver_tend_subcol,aero_model_wetdep,radiation_tend,held_suarez_tend,kessler_tend,thatcher_jablonowski_precip_tend,rk_stratiform_tend,rayleigh_friction_tend,user_set" >
group="phys_ctl_nl" valid_values="pumas_tend","chem_emissions,aoa_tracers_timestep_tend,co2_cycle_set_ptend,chem_timestep_tend,orographic_form_drag_stress,vertical_diffusion_section,aero_model_drydep,gw_tend,qbo_relax,iondrag_calc_section,physics_dme_adjust,physics_dme_adjust,dadadj_tend,convect_deep_tend,convect_shallow_tend,convect_diagnostics_calc,macrop_driver_tend,clubb_tend_cam,microp_section,microp_driver_tend_subcol,aero_model_wetdep,radiation_tend,held_suarez_tend,kessler_tend,thatcher_jablonowski_precip_tend,rk_stratiform_tend,rayleigh_friction_tend,user_set" >
Comment thread
jimmielin marked this conversation as resolved.
Outdated
Name of parameterization to take snapshot after running
user_set is used when a user inserts a call to cam_snapshot_all_outfld
using cam_snapshot_after_num as the first argument.
Expand Down
12 changes: 12 additions & 0 deletions src/physics/cam/physpkg.F90
Original file line number Diff line number Diff line change
Expand Up @@ -2813,6 +2813,10 @@ subroutine tphysbc (ztodt, state, &
call microp_aero_run(state, ptend_aero, cld_macmic_ztodt, pbuf)
call t_stopf('microp_aero_run')

if (trim(cam_take_snapshot_before) == "pumas_tend") then
call cam_snapshot_all_outfld_tphysbc(cam_snapshot_before_num, state, tend, cam_in, cam_out, pbuf, &
flx_heat, cmfmc, cmfcme, zdu, rliq, dlf, dlf2, rliq2, det_s, det_ice, net_flx)
end if
call t_startf('microp_tend')

if (use_subcol_microp) then
Expand Down Expand Up @@ -2904,12 +2908,20 @@ subroutine tphysbc (ztodt, state, &
(trim(cam_take_snapshot_before) == trim(cam_take_snapshot_after))) then
call cam_snapshot_ptend_outfld(ptend, lchnk)
end if
if ( (trim(cam_take_snapshot_after) == "pumas_tend") .and. &
(trim(cam_take_snapshot_before) == trim(cam_take_snapshot_after))) then
call cam_snapshot_ptend_outfld(ptend, lchnk)
end if
call physics_update (state, ptend, ztodt, tend)

if (trim(cam_take_snapshot_after) == "microp_section") then
call cam_snapshot_all_outfld_tphysbc(cam_snapshot_after_num, state, tend, cam_in, cam_out, pbuf, &
flx_heat, cmfmc, cmfcme, zdu, rliq, dlf, dlf2, rliq2, det_s, det_ice, net_flx)
end if
if (trim(cam_take_snapshot_after) == "pumas_tend") then
call cam_snapshot_all_outfld_tphysbc(cam_snapshot_after_num, state, tend, cam_in, cam_out, pbuf, &
flx_heat, cmfmc, cmfcme, zdu, rliq, dlf, dlf2, rliq2, det_s, det_ice, net_flx)
end if

call check_energy_cam_chng(state, tend, "microp_tend", nstep, ztodt, &
zero, prec_str(:ncol)/cld_macmic_num_steps, &
Expand Down
4 changes: 3 additions & 1 deletion src/physics/cam7/micro_pumas_cam.F90
Original file line number Diff line number Diff line change
Expand Up @@ -2474,7 +2474,9 @@ subroutine micro_pumas_cam_tend(state, ptend, dtime, pbuf)
tnd_qsnow(:ncol,top_lev:), tnd_nsnow(:ncol,top_lev:), &
re_ice(:ncol,top_lev:), &
frzimm(:ncol,top_lev:), frzcnt(:ncol,top_lev:), &
frzdep(:ncol,top_lev:), rate1cld(:ncol,top_lev:), &
frzdep(:ncol,top_lev:), &
micro_mg_warm_rain, &
rate1cld(:ncol,top_lev:), &
tlat(:ncol,top_lev:), qvlat(:ncol,top_lev:), &
qcten(:ncol,top_lev:), qiten(:ncol,top_lev:), &
ncten(:ncol,top_lev:), niten(:ncol,top_lev:), &
Expand Down
23 changes: 22 additions & 1 deletion src/physics/cam7/physpkg.F90
Original file line number Diff line number Diff line change
Expand Up @@ -1841,13 +1841,18 @@ subroutine tphysac (ztodt, cam_in, &
call cam_snapshot_all_outfld_tphysac(cam_snapshot_before_num, state, tend, cam_in, cam_out, pbuf, &
fh2o, surfric, obklen, flx_heat, cmfmc, dlf, det_s, det_ice, net_flx)
end if

call t_startf('microp_aero_run')
call microp_aero_run(state, ptend_aero, cld_macmic_ztodt, pbuf)
call t_stopf('microp_aero_run')

call t_startf('microp_tend')

if (trim(cam_take_snapshot_before) == "pumas_tend") then
call cam_snapshot_all_outfld_tphysac(cam_snapshot_before_num, state, tend, cam_in, cam_out, pbuf, &
fh2o, surfric, obklen, flx_heat, cmfmc, dlf, det_s, det_ice, net_flx)
end if


if (use_subcol_microp) then

if (trim(cam_take_snapshot_before) == "microp_driver_tend_subcol") then
Expand Down Expand Up @@ -1900,12 +1905,20 @@ subroutine tphysac (ztodt, cam_in, &
(trim(cam_take_snapshot_before) == trim(cam_take_snapshot_after))) then
call cam_snapshot_ptend_outfld(ptend, lchnk)
end if
if ( (trim(cam_take_snapshot_after) == "pumas") .and. &
Comment thread
jimmielin marked this conversation as resolved.
Outdated
(trim(cam_take_snapshot_before) == trim(cam_take_snapshot_after))) then
call cam_snapshot_ptend_outfld(ptend, lchnk)
end if
call physics_update (state_sc, ptend_sc, ztodt, tend_sc)

if (trim(cam_take_snapshot_after) == "microp_driver_tend_subcol") then
call cam_snapshot_all_outfld_tphysac(cam_snapshot_after_num, state_sc, tend_sc, cam_in, cam_out, pbuf, &
fh2o, surfric, obklen, flx_heat, cmfmc, dlf, det_s, det_ice, net_flx)
end if
if (trim(cam_take_snapshot_after) == "pumas") then
Comment thread
jimmielin marked this conversation as resolved.
Outdated
call cam_snapshot_all_outfld_tphysac(cam_snapshot_after_num, state_sc, tend_sc, cam_in, cam_out, pbuf, &
fh2o, surfric, obklen, flx_heat, cmfmc, dlf, det_s, det_ice, net_flx)
end if

call check_energy_cam_chng(state_sc, tend_sc, "microp_tend_subcol", &
nstep, ztodt, zero_sc, &
Expand All @@ -1932,12 +1945,20 @@ subroutine tphysac (ztodt, cam_in, &
(trim(cam_take_snapshot_before) == trim(cam_take_snapshot_after))) then
call cam_snapshot_ptend_outfld(ptend, lchnk)
end if
if ( (trim(cam_take_snapshot_after) == "pumas_tend") .and. &
(trim(cam_take_snapshot_before) == trim(cam_take_snapshot_after))) then
call cam_snapshot_ptend_outfld(ptend, lchnk)
end if
call physics_update (state, ptend, ztodt, tend)

if (trim(cam_take_snapshot_after) == "microp_section") then
call cam_snapshot_all_outfld_tphysac(cam_snapshot_after_num, state, tend, cam_in, cam_out, pbuf, &
fh2o, surfric, obklen, flx_heat, cmfmc, dlf, det_s, det_ice, net_flx)
end if
if (trim(cam_take_snapshot_after) == "pumas_tend") then
call cam_snapshot_all_outfld_tphysac(cam_snapshot_after_num, state, tend, cam_in, cam_out, pbuf, &
fh2o, surfric, obklen, flx_heat, cmfmc, dlf, det_s, det_ice, net_flx)
end if

call check_energy_cam_chng(state, tend, "microp_tend", nstep, ztodt, &
zero, prec_str(:ncol)/cld_macmic_num_steps, &
Expand Down