Skip to content
Success

Changes

Summary

  1. Update README (details)
  2. Gpu updates (#1070) (details)
  3. Code changes to implement modified boundary condition (details)
  4. Implements Thomas Toniazzo's bug fix for spike removal (details)
Commit db8d5931d779bc1f776fb80952a1c263c22f8467 by noreply
Update README

I guess the proper way to do it is this -- BIT_CHANGING:9aeea14
The file was modified README (diff)
Commit a3bcb0bd343d004b2f085006708b88131be99507 by noreply
Gpu updates (#1070)

* Fixing bug. This was only triggered when l_input_fields=.true., which I am only testing because it needs to be true so that I can test ADG2_driver.

* Removing usage of gr from pdf_closure. It was only ever used for nz, which is now fed in directly.

* Making openacc statements more consistent. Ensuring all statments on double loops have specified gang and vector, and that all parallel loops have an end parallel loop statment at the end of them. Everything BFB on CPUs and GPUs.

* Pushing acc data region to outermost parts of mixing_length.

* Removing pdf_implicit_coefs_terms from acc copyin and copyout. It is only used when iiPDF_type == iiPDF_new .or. iiPDF_type == iiPDF_new_hybrid, so we do not need to do any copying with it. The inclusion of it also caused the data statement to copy unallocated arrays, which are just garbage pointers, and that was causing random occasional crashes (either segfaults or gpu out of memory).

* The update device clauses for return variables seems to only be requried for arrays contained in types. See https://github.com/larson-group/clubb/issues/1049\#issuecomment-1440624778

* Moving acc end data to end of pdf_closure. This reuqired removing any conditional return statements that appear before the final return, since we're not allowed to branch out of an acc region early. I also moved a large printout statement outside of a loop. The only reason it was in the loop to begin with was because pdf_params used to be an array of types, but now is a type of arrays, allowing us to print the full arrays directly.

* Making loop an acc loop. If we weren't outputting w_[up/down]_in_cloud (iw_up_in_cloud <= 0 .or. iw_down_in_cloud <= 0, then these arrays were only being zerod out on the CPU and would've getting overwritten by the uninitialized GPU data at the end of the data statement. This change causes the arrays to get correctly zerod out on the GPU when we need.

* Update VariableGroupNondimMoments.py

Fixed a typo

* Merging new changes from master

* Removing need for -gpu=deepcopy, pushing some acc data statements up call tree, and replacing some acc data statements with acc delare statements so that return statements can be added back in.

* Adding back an acc loop that was accidentally removed during a merge.

---------

Co-authored-by: Brian Griffin <31553422+bmg929@users.noreply.github.com>
The file was modified src/CLUBB_core/adg1_adg2_3d_luhar_pdf.F90 (diff)
The file was modified src/CLUBB_core/grid_class.F90 (diff)
The file was modified src/CLUBB_core/turbulent_adv_pdf.F90 (diff)
The file was modified src/CLUBB_core/pdf_closure_module.F90 (diff)
The file was modified src/CLUBB_core/mixing_length.F90 (diff)
The file was modified src/CLUBB_core/pdf_utilities.F90 (diff)
The file was modified src/CLUBB_core/saturation.F90 (diff)
The file was modified src/CLUBB_core/mean_adv.F90 (diff)
The file was modified src/CLUBB_core/advance_clubb_core_module.F90 (diff)
Commit 8e473e08b858df61c5c5116e37e26f3df2431a0b by bmg2
Code changes to implement modified boundary condition
This commit contains code changes to implement modified boundary
conditions for convergence test simulations. These code changes
can be activated by setting l_modify_bc_for_cnvg_test = .true.
in the CLUBB namelist.

Originally committed by Shixuan.
The file was modified input/case_setups/dycoms2_rf02_nd_model.in (diff)
The file was modified src/clubb_driver.F90 (diff)
The file was modified input/case_setups/wangara_model.in (diff)
The file was modified input/case_setups/dycoms2_rf02_do_model.in (diff)
The file was modified input/case_setups/dycoms2_rf02_so_model.in (diff)
The file was modified input/case_setups/dycoms2_rf02_ds_model.in (diff)
The file was modified input/case_setups/dycoms2_rf02_morr_model.in (diff)
The file was modified input/case_setups/rico_model.in (diff)
The file was modified input/case_setups/rico_silhs_model.in (diff)
The file was modified input/case_setups/bomex_model.in (diff)
Commit c5c29600aa8cf9176127e44fbf6ddccf9474722a by noreply
Implements Thomas Toniazzo's bug fix for spike removal

in the monotonic flux limiter.  See

https://github.com/larson-group/clubb_release/pull/11/files

This code change is
expected to be BIT_CHANGING for cases in which
`l_predict_upwp_vpwp = T`, `l_mono_flux_lim_um = T`
or `l_mono_flux_lim_vm = T`, and the monotonic
flux limiter is triggered.

This bug fix prevents non-conservation of momentum
when the vertical integral of either of the wind components `um` or `vm` is negative.
The file was modified src/CLUBB_core/mono_flux_limiter.F90 (diff)