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

Replaces CLUBB with new version of CLUBB (V2) #2897

Merged
merged 26 commits into from
Jul 31, 2019

Conversation

singhbalwinder
Copy link
Contributor

@singhbalwinder singhbalwinder commented May 1, 2019

The v1 version of CLUBB left pockets of supersaturation for the microphysics. To mitigate this, the
v2 version of CLUBB does CLUBB's saturation adjustment immediately before microphysics when
ipdf_call_placement = ipdf_pre_advance_fields.

CLUBB_v2 includes performance optimizations that may lead to speedups, but also may be vitiated
by a performance degradation in the CLUBB interface that was introduced in order to change the
position of the saturation adjustment.

CLUBB_v2 also adds new options that may be interest when tuning E3SMv2:

  • CLUBB's gustiness can be enhanced if C_wp2_splat is set to non-zero values. This may enhance the benefits found with Po-Lun Ma connection of CLUBB's gustiness and surface processes.

  • CLUBB_v2 can now prognose momentum fluxes if l_predict_upwp_vpwp = .true. This is designed to reduce ocean surface stress in cumulus regions.

[NBFB]

I still need to remove some old leftover files in clubb folder under
physics to see if the model still compiles.

[Non-BFB] - Non Bit-For-Bit
The code compiles fine and runs fine for 1 time step in debug mode
[Non-BFB] - Non Bit-For-Bit

See confluence for a more detailed description about these tags.
The model can now run fine after I set the flags correctly and mimiced
all changes from the CESM model.
C11 changed from 0.8 to 0.7
mult_coef changed from 0.5 to 1.500000
Skw_denom_coef changed from 4.0 to 0.0
[Non-BFB] - Non Bit-For-Bit

See confluence for a more detailed description about these tags.
@singhbalwinder singhbalwinder added Atmosphere non-BFB PR makes roundoff changes to answers. Do not merge labels May 1, 2019
@singhbalwinder
Copy link
Contributor Author

singhbalwinder commented May 1, 2019

Design Doc: https://acme-climate.atlassian.net/wiki/spaces/ED/pages/1001455620/W9+CLUBB+v2

I have recently rebased this branch. I am running some tests and will soon update the PR description with the new diagnostics info.

@rljacob
Copy link
Member

rljacob commented May 30, 2019

telecon: encountering issues with testing on different machines.

@singhbalwinder
Copy link
Contributor Author

I have run the model for 6 years and diagnostics from 2nd to 6th year are at: https://web.lcrc.anl.gov/public/e3sm/diagnostic_output/bsingh/2-6yr/SMS.ne30_ne30.FC5AV1C-L.anvil_intel.clbv2_rbsd_1_0cb6bd4-SMS.ne30_ne30.FC5AV1C-L.anvil_intel.def_mstr_b5aaa6b7d228_clbv2_rbsd_1/

Tagging @golaz and @polunma so that they can take a look at the diagnostics.

@singhbalwinder singhbalwinder changed the title [WIP] Replaces CLUBB with new version of CLUBB (V2) Replaces CLUBB with new version of CLUBB (V2) Jun 13, 2019
@singhbalwinder
Copy link
Contributor Author

This PR is ready to merge after it is approved.

@rljacob rljacob added this to the v2.0alpha milestone Jun 14, 2019
@rljacob rljacob requested a review from golaz June 14, 2019 18:14
@rljacob
Copy link
Member

rljacob commented Jun 14, 2019

@golaz please approve this.

@golaz
Copy link
Contributor

golaz commented Jun 25, 2019

@singhbalwinder : can you document this in a little more details on Confluence? If already done, please add link here. In particular I'd like to see:

  • Details about simulations (both base and new CLUBB version): code base, script, output location, ...
  • E3SM Diags for model vs obs (both simulations) as well as model vs model.

@singhbalwinder
Copy link
Contributor Author

Thanks @golaz ! @vlarson is working on creating a design document. @vlarson or I will add a link here once it is ready.

For the diagnostics, would it be okay to run AMWG? I have those setup so it will be easy to run those with obs.

@vlarson
Copy link

vlarson commented Jun 27, 2019

Thanks @golaz ! @vlarson is working on creating a design document. @vlarson or I will add a link here once it is ready.

For the diagnostics, would it be okay to run AMWG? I have those setup so it will be easy to run those with obs.

@golaz , @singhbalwinder , I have started a design doc here. Please let me know what I need to add.

@golaz
Copy link
Contributor

golaz commented Jun 27, 2019

@vlarson : thanks for working on the design document.

@singhbalwinder: I can live with AMWG figures for now, but it would be good if you learned how to use E3SM Diags in the future. I think it's pretty straightforward.

… of the column loop. They are never changed within clubb_intr and are passed to clubb as intent(in), so they should only need to be set once. larson-group/cam#125
@wlin7
Copy link
Contributor

wlin7 commented Jul 31, 2019

Merged to master and submitted requests to bless DIFFs for sandiatoss3 (37), melvin(7) and anvil(2).

@rljacob
Copy link
Member

rljacob commented Jul 31, 2019

2 PET tests failed. Those will require a closer look:
PET_Ln9_PS.ne30_oECv3_ICG.A_WCYCL1850S.sandiatoss3_intel.allactive-mach-pet
PET_Ln5.ne4_ne4.FC5AV1C-L.sandiatoss3_intel.allactive-mach-pet

@wlin7
Copy link
Contributor

wlin7 commented Jul 31, 2019

@singhbalwinder , are you aware whether this PR could cause threading to be non-BFB? The two PET tests apparently say so. (DIFF between base and single-thread, in addition to DIFF from latest baseline)

@rljacob , at this point, should the merge be reverted? It may take a while to investigate.

@wlin7
Copy link
Contributor

wlin7 commented Jul 31, 2019

@singhbalwinder , I just checked slack and noticed you were doing tests on this threading issue. Thanks.

wlin7 added a commit that referenced this pull request Jul 31, 2019
This reverts commit 05d64b1, reversing
changes made to a089690 due to
threading issue.
wlin7 added a commit that referenced this pull request Jul 31, 2019
This reverts commit 14d1f8b, reversing
changes made to d8f6582 due to
threading issue.
@wlin7
Copy link
Contributor

wlin7 commented Jul 31, 2019

Reverted the commit on master and next.
Resubmitted the requests to bless the previous DIFFs on sandiatoss3, melvin and anvil.

@rljacob
Copy link
Member

rljacob commented Jul 31, 2019

@wlin7 you can't submit the bless until after the tests run with the new code. After tonight.

@wlin7
Copy link
Contributor

wlin7 commented Jul 31, 2019

@rljacob , @wade did comment that he can't bless anything else today. I will resubmit the request based on the test results tomorrow. That said, I don't understand why it can't be done with the master after this PR is reverted. The master is essentially back to what it was yesterday. The DIFFs that would come up tomorrow (for next and master) are expected to be the same as we saw today for next tests. I was thinking with re-blessing, the baselines that were in place before today's blessing would all be restored. And with baseline restored, we would be in better place to test the PRs going into next today.

@rljacob
Copy link
Member

rljacob commented Aug 1, 2019

The bless command is script that works in one direction: it copies output from the run of testing on "next" to the baselines. And we have just one set of baselines that both next and master are compared against.

@wlin7
Copy link
Contributor

wlin7 commented Aug 1, 2019

I see now. Thanks for the explanation, @rljacob.
I thought master would be used during blessing to update the baseline because normally we merge the PR to master before requesting to bless.

@singhbalwinder
Copy link
Contributor Author

Thanks to Zhun Guo and @vlarson , the PET test is now passing. I am now running the fully coupled PET test to ensure that I get a PASS there as well. After that, it should be good to go.

@singhbalwinder
Copy link
Contributor Author

I got PASS on both the tests. I think it is good to go now.

@rljacob
Copy link
Member

rljacob commented Aug 1, 2019

Its to late to affect tonights test run.

@wlin7
Copy link
Contributor

wlin7 commented Aug 1, 2019

Great work, @singhbalwinder. Thanks. Nightly tests probably have started. I will wait until tomorrow.

@wlin7
Copy link
Contributor

wlin7 commented Aug 1, 2019

Rob, is there any other non-BFB scheduled for Thursday? If not and next open, i will merge it in the morning and ask our integrators to hold on.

wlin7 added a commit that referenced this pull request Aug 5, 2019
)

Replaces CLUBB with new version of CLUBB (V2): For re-merging

NOTE: This PR is created to re-merge changes in PR #2897.

PR #2897 was previously reveretd to add changes for fixing threading
issue.
wlin7 added a commit that referenced this pull request Aug 5, 2019
wlin7 added a commit that referenced this pull request Aug 5, 2019
Replaces CLUBB with new version of CLUBB (V2): For re-merging

NOTE: This PR is created to re-merge changes in PR #2897

The v1 version of CLUBB left pockets of supersaturation for the microphysics. To mitigate this, the
v2 version of CLUBB does CLUBB's saturation adjustment immediately before microphysics when
ipdf_call_placement = ipdf_pre_advance_fields.

CLUBB_v2 includes performance optimizations that may lead to speedups, but also may be vitiated
by a performance degradation in the CLUBB interface that was introduced in order to change the
position of the saturation adjustment.

CLUBB_v2 also adds new options that may be interest when tuning E3SMv2:

CLUBB's gustiness can be enhanced if C_wp2_splat is set to non-zero values. This may enhance the benefits found with Po-Lun Ma connection of CLUBB's gustiness and surface processes.

CLUBB_v2 can now prognose momentum fluxes if l_predict_upwp_vpwp = .true. This is designed to reduce ocean surface stress in cumulus regions.

[NBFB]
wlin7 added a commit that referenced this pull request Aug 6, 2019
wlin7 added a commit that referenced this pull request Aug 6, 2019
Replaces CLUBB with new version of CLUBB (V2): For re-merging

NOTE: This PR is created to re-merge changes in PR #2897. #2897 was
reverted due to a threading issue which is fixed by this PR.
tanzeli1982 pushed a commit that referenced this pull request Aug 12, 2019
This reverts commit 05d64b1, reversing
changes made to a089690 due to
threading issue.
tanzeli1982 pushed a commit that referenced this pull request Aug 12, 2019
wlin7 added a commit that referenced this pull request Oct 24, 2019
Starting with the merge of clubbv2 (PR #2897), clubb_C1 and clubb_C1b,
as well as clubb_gamma_coef and clubb_gamma_coefb are set to be
fully independent namelist variables. Beforehand, clubb_C1b always varies with
clubbb_C1,, while clubb_gamma_coefb varies with clubb_gamma_coef when it
is not specified explicitly. Together with clubbv2 PR, these changes are
designed to be reflected via the use_case files that specifiy either or both clubb_C1
and clubb_gamma_coef. It appears one use_case file missed clubb_C1b and
seversl others missed both. The latter likely did not exist when clubbv2
PR was created.

Following use_case files are affected. Among the tests, only the
aquaplanet test is expected to diff in both the simulation and nml file.

   components/cam/bld/namelist_files/use_cases/1850S_cam5_CMIP6.xml
   components/cam/bld/namelist_files/use_cases/2010S_cam5_CMIP6.xml
   components/cam/bld/namelist_files/use_cases/20TR_cam5_CMIP6.xml
   components/cam/bld/namelist_files/use_cases/SSP585_cam5_CMIP6.xml
   components/cam/bld/namelist_files/use_cases/aquaplanet_EAMv1.xml

[BFB] except for the aquaplanet test.
singhbalwinder added a commit that referenced this pull request Dec 18, 2019
... (PR #3252)

Fixed missing use_case parameters introduced by clubbv2

Starting with the merge of clubbv2 (PR #2897), clubb_C1 and clubb_C1b,
as well as clubb_gamma_coef and clubb_gamma_coefb are set to be
fully independent namelist variables. Beforehand, clubb_C1b always
varies with clubbb_C1,, while clubb_gamma_coefb varies with
clubb_gamma_coef when it is not specified explicitly. Together with
clubbv2 PR, these changes are designed to be reflected via the use_case
 files that specifiy either or both clubb_C1 and clubb_gamma_coef.
It appears one use_case file missed clubb_C1b and
seversl others missed both. The latter likely did not exist when
clubbv2 PR was created.

Following use_case files are affected. Among the tests, only the
aquaplanet test is expected to diff in both the simulation and nml
file.

components/cam/bld/namelist_files/use_cases/1850S_cam5_CMIP6.xml
components/cam/bld/namelist_files/use_cases/2010S_cam5_CMIP6.xml
components/cam/bld/namelist_files/use_cases/20TR_cam5_CMIP6.xml
components/cam/bld/namelist_files/use_cases/SSP585_cam5_CMIP6.xml
components/cam/bld/namelist_files/use_cases/aquaplanet_EAMv1.xml

[non-BFB] for the aquaplanet test.
[NML] diff for the aquaplanet test

* wlin/atm/fix-clubbv2-usecase-missing-param:
  Remove redundant gamma_coefb entry in series of h01b use_case files
  Fixed missing use_case parameters introduced by clubbv2
singhbalwinder added a commit that referenced this pull request Dec 19, 2019
Fixed missing use_case parameters introduced by clubbv2

Starting with the merge of clubbv2 (PR #2897), clubb_C1 and clubb_C1b,
as well as clubb_gamma_coef and clubb_gamma_coefb are set to be
fully independent namelist variables. Beforehand, clubb_C1b always
varies with clubbb_C1,, while clubb_gamma_coefb varies with
clubb_gamma_coef when it is not specified explicitly. Together with
clubbv2 PR, these changes are designed to be reflected via the use_case
 files that specifiy either or both clubb_C1 and clubb_gamma_coef.
It appears one use_case file missed clubb_C1b and
seversl others missed both. The latter likely did not exist when
clubbv2 PR was created.

Following use_case files are affected. Among the tests, only the
aquaplanet test is expected to diff in both the simulation and nml
file.

components/cam/bld/namelist_files/use_cases/1850S_cam5_CMIP6.xml
components/cam/bld/namelist_files/use_cases/2010S_cam5_CMIP6.xml
components/cam/bld/namelist_files/use_cases/20TR_cam5_CMIP6.xml
components/cam/bld/namelist_files/use_cases/SSP585_cam5_CMIP6.xml
components/cam/bld/namelist_files/use_cases/aquaplanet_EAMv1.xml

[non-BFB] for the aquaplanet test.
[NML] diff for the aquaplanet test

* wlin/atm/fix-clubbv2-usecase-missing-param:
  Remove redundant gamma_coefb entry in series of h01b use_case files
  Fixed missing use_case parameters introduced by clubbv2
wlin7 added a commit that referenced this pull request Mar 7, 2020
… (PR #2897)""

This reverts commit 55c8320.

Conflicts in following files that are then resolved
 	components/cam/src/physics/cam/clubb_intr.F90
 	components/cam/src/physics/clubb/advance_clubb_core_module.F90
 	components/cam/src/physics/clubb/lapack_wrap.F90

All other files affected

 	modified:   components/cam/src/physics/cam/clubb_intr.F90
 	deleted:    components/cam/src/physics/clubb/LY93_pdf.F90
 	modified:   components/cam/src/physics/clubb/Nc_Ncn_eqns.F90
 	new file:   components/cam/src/physics/clubb/Skw_module.F90
 	deleted:    components/cam/src/physics/clubb/Skx_module.F90
 	modified:   components/cam/src/physics/clubb/T_in_K_module.F90
 	deleted:    components/cam/src/physics/clubb/adg1_adg2_3d_luhar_pdf.F90
 	modified:   components/cam/src/physics/clubb/advance_clubb_core_module.F90
 	modified:   components/cam/src/physics/clubb/advance_helper_module.F90
 	modified:   components/cam/src/physics/clubb/advance_windm_edsclrm_module.F90
 	modified:   components/cam/src/physics/clubb/advance_wp2_wp3_module.F90
 	modified:   components/cam/src/physics/clubb/advance_xm_wpxp_module.F90
 	modified:   components/cam/src/physics/clubb/advance_xp2_xpyp_module.F90
 	deleted:    components/cam/src/physics/clubb/advance_xp3_module.F90
 	new file:   components/cam/src/physics/clubb/anl_erf.F90
 	modified:   components/cam/src/physics/clubb/array_index.F90
 	deleted:    components/cam/src/physics/clubb/calc_roots.F90
 	modified:   components/cam/src/physics/clubb/calendar.F90
 	modified:   components/cam/src/physics/clubb/clip_explicit.F90
 	modified:   components/cam/src/physics/clubb/clip_semi_implicit.F90
 	modified:   components/cam/src/physics/clubb/clubb_api_module.F90
 	modified:   components/cam/src/physics/clubb/clubb_precision.F90
 	deleted:    components/cam/src/physics/clubb/code_timer_module.F90
 	modified:   components/cam/src/physics/clubb/constants_clubb.F90
 	modified:   components/cam/src/physics/clubb/corr_varnce_module.F90
 	modified:   components/cam/src/physics/clubb/csr_matrix_module.F90
 	modified:   components/cam/src/physics/clubb/diagnose_correlations_module.F90
 	modified:   components/cam/src/physics/clubb/diffusion.F90
 	modified:   components/cam/src/physics/clubb/endian.F90
 	modified:   components/cam/src/physics/clubb/error_code.F90
 	modified:   components/cam/src/physics/clubb/file_functions.F90
 	modified:   components/cam/src/physics/clubb/fill_holes.F90
 	modified:   components/cam/src/physics/clubb/gmres_cache.F90
 	modified:   components/cam/src/physics/clubb/gmres_wrap.F90
 	modified:   components/cam/src/physics/clubb/grid_class.F90
 	modified:   components/cam/src/physics/clubb/hydromet_pdf_parameter_module.F90
 	modified:   components/cam/src/physics/clubb/index_mapping.F90
 	modified:   components/cam/src/physics/clubb/input_names.F90
 	modified:   components/cam/src/physics/clubb/input_reader.F90
 	modified:   components/cam/src/physics/clubb/interpolation.F90
 	modified:   components/cam/src/physics/clubb/lapack_wrap.F90
 	modified:   components/cam/src/physics/clubb/matrix_operations.F90
 	modified:   components/cam/src/physics/clubb/mean_adv.F90
 	modified:   components/cam/src/physics/clubb/mixing_length.F90
 	modified:   components/cam/src/physics/clubb/model_flags.F90
 	modified:   components/cam/src/physics/clubb/mono_flux_limiter.F90
 	modified:   components/cam/src/physics/clubb/mt95.f90
 	deleted:    components/cam/src/physics/clubb/new_pdf.F90
 	deleted:    components/cam/src/physics/clubb/new_pdf_main.F90
 	deleted:    components/cam/src/physics/clubb/new_tsdadg_pdf.F90
 	modified:   components/cam/src/physics/clubb/numerical_check.F90
 	modified:   components/cam/src/physics/clubb/output_grads.F90
 	modified:   components/cam/src/physics/clubb/output_netcdf.F90
 	modified:   components/cam/src/physics/clubb/parameter_indices.F90
 	modified:   components/cam/src/physics/clubb/parameters_model.F90
 	modified:   components/cam/src/physics/clubb/parameters_tunable.F90
 	modified:   components/cam/src/physics/clubb/pdf_closure_module.F90
 	modified:   components/cam/src/physics/clubb/pdf_parameter_module.F90
 	modified:   components/cam/src/physics/clubb/pdf_utilities.F90
 	modified:   components/cam/src/physics/clubb/pos_definite_module.F90
 	deleted:    components/cam/src/physics/clubb/precipitation_fraction.F90
 	modified:   components/cam/src/physics/clubb/recl.inc
 	modified:   components/cam/src/physics/clubb/saturation.F90
 	modified:   components/cam/src/physics/clubb/setup_clubb_pdf_params.F90
 	modified:   components/cam/src/physics/clubb/sigma_sqd_w_module.F90
 	modified:   components/cam/src/physics/clubb/sponge_layer_damping.F90
 	modified:   components/cam/src/physics/clubb/stat_file_module.F90
 	modified:   components/cam/src/physics/clubb/stats_clubb_utilities.F90
 	modified:   components/cam/src/physics/clubb/stats_lh_sfc_module.F90
 	modified:   components/cam/src/physics/clubb/stats_lh_zt_module.F90
 	modified:   components/cam/src/physics/clubb/stats_rad_zm_module.F90
 	modified:   components/cam/src/physics/clubb/stats_rad_zt_module.F90
 	modified:   components/cam/src/physics/clubb/stats_sfc_module.F90
 	modified:   components/cam/src/physics/clubb/stats_type.F90
 	modified:   components/cam/src/physics/clubb/stats_type_utilities.F90
 	modified:   components/cam/src/physics/clubb/stats_variables.F90
 	modified:   components/cam/src/physics/clubb/stats_zm_module.F90
 	modified:   components/cam/src/physics/clubb/stats_zt_module.F90
 	modified:   components/cam/src/physics/clubb/surface_varnce_module.F90
 	deleted:    components/cam/src/physics/clubb/turbulent_adv_pdf.F90
 	modified:   components/cam/src/physics/clubb/variables_diagnostic_module.F90
 	modified:   components/cam/src/physics/clubb/variables_prognostic_module.F90
 	deleted:    components/cam/src/physics/clubb/version_clubb_core.txt
@wlin7 wlin7 mentioned this pull request Jun 25, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Atmosphere non-BFB PR makes roundoff changes to answers.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants