Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to shut off parameterized mixing of tracers #47

Open
aschuh opened this issue Mar 3, 2023 · 1 comment
Open

How to shut off parameterized mixing of tracers #47

aschuh opened this issue Mar 3, 2023 · 1 comment

Comments

@aschuh
Copy link

aschuh commented Mar 3, 2023

I'm tasked with putting passive tracers into UFS. I'm adding a few tracers into the field_table and diag_table and dumping into the tracer arrays in UFS. It appears to be working. However, I'm getting a small continuous loss of global tracer mass (0.5ppm per 6 hrs on 400ppm bgd) and local unmixing of flat tracer fields. I've noticed a lot spurious concs near the top few model levels. I'd like to investigate to what degree this is caused by advection in FV3 (probably smaller but not insignificant piece), or possibly parameterized mixing of the tracers by either the PBL or convection routines. I'd essentially like to know how to turn off/on any parameterized mixing schemes in order to reduce the model to pure advection by FV3. For now, I'm using the FV3_GFS_v17_p8 scheme w /the merra2_thompson as the RT sandbox choice. I'm assuming I'll need to remove/comment_out pieces of the following physics scheme file? Does anybody know which ones are relevant? And as I move to other physics suites, how should I approach this same question?

#####################

GFS_time_vary_pre GFS_rrtmg_setup GFS_rad_time_vary GFS_phys_time_vary GFS_suite_interstitial_rad_reset GFS_rrtmg_pre GFS_radiation_surface rad_sw_pre rrtmg_sw rrtmg_sw_post rrtmg_lw_pre rrtmg_lw rrtmg_lw_post GFS_rrtmg_post GFS_suite_interstitial_phys_reset GFS_suite_stateout_reset get_prs_fv3 GFS_suite_interstitial_1 GFS_surface_generic_pre GFS_surface_composites_pre dcyc2t3 GFS_surface_composites_inter GFS_suite_interstitial_2
<!-- Surface iteration loop -->
<subcycle loop="2">
  <scheme>sfc_diff</scheme>
  <scheme>GFS_surface_loop_control_part1</scheme>
  <scheme>sfc_nst_pre</scheme>
  <scheme>sfc_nst</scheme>
  <scheme>sfc_nst_post</scheme>
  <scheme>noahmpdrv</scheme>
  <scheme>sfc_sice</scheme>
  <scheme>GFS_surface_loop_control_part2</scheme>
</subcycle>
<!-- End of surface iteration loop -->
<subcycle loop="1">
  <scheme>GFS_surface_composites_post</scheme>
  <scheme>sfc_diag</scheme>
  <scheme>sfc_diag_post</scheme>
  <scheme>GFS_surface_generic_post</scheme>
  <scheme>GFS_PBL_generic_pre</scheme>
  <scheme>satmedmfvdifq</scheme>
  <scheme>GFS_PBL_generic_post</scheme>
  <scheme>gml_ghg_emi_wrapper</scheme>
  <scheme>GFS_GWD_generic_pre</scheme>
  <scheme>unified_ugwp</scheme>
  <scheme>unified_ugwp_post</scheme>
  <scheme>GFS_GWD_generic_post</scheme>
  <scheme>GFS_suite_stateout_update</scheme>
  <scheme>ozphys_2015</scheme>
  <scheme>h2ophys</scheme>
  <scheme>get_phi_fv3</scheme>
  <scheme>GFS_suite_interstitial_3</scheme>
  <scheme>GFS_DCNV_generic_pre</scheme>
  <scheme>samfdeepcnv</scheme>
  <scheme>GFS_DCNV_generic_post</scheme>
  <scheme>GFS_SCNV_generic_pre</scheme>
  <scheme>samfshalcnv</scheme>
  <scheme>GFS_SCNV_generic_post</scheme>
  <scheme>GFS_suite_interstitial_4</scheme>
  <scheme>cnvc90</scheme>
  <scheme>GFS_MP_generic_pre</scheme>
  <scheme>mp_thompson_pre</scheme>
  <scheme>gml_ghg_wrapper</scheme>
  </subcycle>
  <subcycle loop="1">
    <scheme>mp_thompson</scheme>
  </subcycle>
    <subcycle loop="1">
    <scheme>mp_thompson_post</scheme>
    <scheme>GFS_MP_generic_post</scheme>
    <scheme>maximum_hourly_diagnostics</scheme>
  </subcycle>
GFS_stochastics phys_tend
@dustinswales
Copy link
Collaborator

Hi @aschuh, the "turning off" of parameterizations is not directly supported at the moment, but that's not to say it's not possible, or in the pipeline. If you simply cut out pieces of a supported SDF, like the one above, there's no guarantee that it will work or produce sensible results. In addition to the supported SDF, there are accompanying supported namelists (SCM, UFSa and UFSb) that need to adjusted.

However, if you want to go in to the code and comment/add some code for testing purposes, I can provide some guidance.

A little background information on the schemes in this SDF, some schemes directly update the internal physics state (time-splitting), whereas some save the tendencies and update the internal state later (process-splitting). So to turn things off, or zero out the evolution of the internal physics state, you need to do different things for different types of schemes. For example, in the PBL scheme (sa-TKE-EDMF; process-split), the tracer tendencies are updated here. The interstitial variable with the standard name "tendency_of_vertically_diffused_tracer_concentration" is then applied in GFS_suite_stateout_update. Then for the convection schemes (time-split), the interstitial "convective_transportable_tracers" is modified within [samfdeepcnv.f] (https://github.com/ufs-community/ccpp-physics/blob/ufs/dev/physics/samfdeepcnv.f) and samfshalcnv.f.

I think these are the relevant pieces for this suite, and will differ by SDF, but hopefully this helps get you going.

grantfirl pushed a commit that referenced this issue Jul 18, 2023
sync with the new community repository
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants