Skip to content
Open
Show file tree
Hide file tree
Changes from all 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" >
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" >
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_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_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_tend") 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

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