Skip to content
Success

Changes

Summary

  1. Pushing column loop into lapack wrap. (details)
  2. Restructuring and Porting of Compute_mixing_length subroutine(Phase 1) (#1052) (details)
  3. Restructuring and Porting of Compute_mixing_length subroutine(Phase 2) (#1054) (details)
  4. Breaking up column loop in mono_flux_limiter. This may not be the final form for GPUization, but it's definitely a start, no longer do we have to copy single column variables to multicolumn ones anywhere. (#1051) (details)
  5. Adding tridiag_lu solver (#1056) (details)
  6. Adds to tuner error bars on bias removal (arrow) plots (details)
  7. Adding OpenACC data directives for mixing length and adg routines (details)
  8. Fixing error causing GPU code not to run. Some variables to be copied were labelled as (ngrdcol,nz) when it should be (:ngrdcol,:nz). I've just removed the data length specifiers completely since they are not neccesary in general. (details)
  9. GPUizing sat_mixrat_ice_2D. (details)
  10. Adds to dashboard plots error bars for (details)
  11. Adds to dashboard a bar plot that separates nonlinear (details)
  12. Added option (-i) to run_tuner.bash script to enable pre-tuning standalone runs. README will be updated. (details)
  13. Pushing column loop into calculate_thvm (details)
  14. Removing update_pressure since it is no longer called anywhere in clubb or host models. The addition of this subroutine was discussed in larson-group/e3sm#6 and the removal of the call to it was discussed in larson-group/clubb#926. (details)
  15. Removing update_pressure from public list. This was causing compilation crashes. RESOLVED:8c7230fecb877d04fb129ef5e143e0993b4b29b1 (details)
  16. Fixing bug, arrays given a dummy index in 0fafc6b0b1f1a6058d37bf3db4bb3708204504db are declared nsize, but are only used up to nlevels, thus we need the (1,1:nlevels) specifier when passing them. This issue was only caught by our _debug tests, so that's good evidence the new flags we added to initialize unused to memory was effective. (details)
  17. GPUizing some helping procedures. (details)
  18. Removing sigma_sqd_w from the acc data copyout statement. This is a bug which was causing the code to crash when not using managed memory. (details)
  19. Porting pdf_closure subroutine with OpenACC (#1059) (details)
  20. made graphing for netcdf_var collector general. #1040 (details)
  21. Adding wp3_on_wp2_cfl_num to CLUBB's output stats. (details)
  22. Added wp3_on_wp2_cfl_num to the VariableGroupNondimMoments.py file for (details)
  23. Update VariableGroupNondimMoments.py (details)
  24. 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. (details)
  25. Removing usage of gr from pdf_closure. It was only ever used for nz, which is now fed in directly. (details)
  26. Clubb ticket #1025: Implemented way to make esa tuner reproducible, h… (#1068) (details)
  27. added autocommit message maker to clubb so I have an easier time testing it (details)
  28. changes to integrate message maker into gitUpdate scripts (details)
  29. Oops, I made 1 small error, should be consistent now. (details)
  30. Implementing changes to the initial conditions. (details)
  31. This commit most definitely does not change any bits, (details)
  32. Add scripts to configure and run convergence test (details)
  33. reorgnize the scripts for convergence test simulations (details)
  34. Update README (details)
  35. Gpu updates (#1070) (details)
  36. Code changes to implement modified boundary condition (details)
  37. Implements Thomas Toniazzo's bug fix for spike removal (details)
  38. Fixed an old notation change in the README (details)
  39. Update README (details)
  40. Making 'a_const' into a CLUBB tunable parameter. (#1072) (details)
  41. Update README (details)
  42. Update README (details)
  43. Pdf closure driver gpuization (#1071) (details)
  44. Update README (details)
  45. Moving compute_cloud_cover outside of if ( l_use_cloud_cover ) then statement, the cloud_cover and rcm_in_layer variables they compute aren't output in clubb_standalone, but are in cam, causing cam bit diff tests to break. (details)
  46. Undoing README update, 1 space = 1 byte and we should maximize file sizes to deter hackers from stealing our data. Also BIT_CHANGING:fb4556e4cc4cb3d4b6df3520370a28a824f357ef for configs where l_use_cloud_cover = .false., which means I was wrong about this ever not being bit changing, so I must've either only tested with l_use_cloud_cover = .true. or only tested the multicol diffs when I put compute_cloud_cover inside the if statement. (details)
  47. Adding Skthl_zm to the update host list, I missed this in the last PR. I noticed this by comparing results with and without managed memory, now I've checked BFBness with arm, mpace_b, mc3e, and gabls2. (details)
  48. Small GPU fixes (#1076) (details)
  49. Adds blank line to trigger nightly tests (details)
  50. Code changes to implement modificiations on wp3 clippings (details)
  51. This commit contains code changes to implement modifications on limiters in three places: (details)
Commit 6d5d5f573f3866d5d66b028d829342026e569099 by 37674341+huebleruwm
Pushing column loop into lapack wrap.
The file was modified src/CLUBB_core/lapack_wrap.F90 (diff)
The file was modified src/CLUBB_core/matrix_solver_wrapper.F90 (diff)
Commit 88b8239840f581d76610aa630dab6219d64d68be by noreply
Restructuring and Porting of Compute_mixing_length subroutine(Phase 1) (#1052)

* Restructuring and Porting of Compute_mixing_length subroutine(Phase 1)

Restructure: The compute_mixing_length is one of the top most routine taking 35-50%
of the total time in a single timestep. The subroutine has been restructured to
push the i-loop further down to extract vectorization and parallelization.
The restructuring also involves introduction of sat_mixrat_liq_acc routines to
extract parallelism when called inside a OpenACC parallel region.

Porting: OpenACC directives are inserted to port the restructured compute_mixing_length
code on to the GPUs. This port is currently unoptimized and there is still room for improvement.

NOTE: Currently, l_sat_mixrat_lookup = false and saturation_formula = saturation_flatau
(Earthworks config options) case is supported on OpenACC build. Any other options works
on CPUs as usual. OpenACC declare create directives are inserted in model_flags and
constants_clubb, as these module variables are used inside the saturation routines.

* Added debug message about only supporting
l_sat_mixrat_lookup = false and saturation_formula = saturation_flatau
on GPUs
Answers are Bit for Bit with arm-multicolumn case + nvhpc compiler.

* Changing CLUBB debug level 1 to 0 for the saturation formula support
running on GPUs

* Changing indentation to make gfortran happy, it wants ifdefs to start at the beginning of the line.

* Adding use statements for error checks and printouts, also making the errors set err_code to clubb_fatal_error.

Co-authored-by: huebler <huebler@uwm.edu>
The file was modified src/CLUBB_core/constants_clubb.F90 (diff)
The file was modified compile/config/linux_x86_64_nvhpc_casper.bash (diff)
The file was modified src/CLUBB_core/mixing_length.F90 (diff)
The file was modified src/CLUBB_core/saturation.F90 (diff)
The file was modified src/CLUBB_core/model_flags.F90 (diff)
Commit 7f1decd0252e0b4d80f4b3873b0b48b6d3ec8631 by noreply
Restructuring and Porting of Compute_mixing_length subroutine(Phase 2) (#1054)

* Restructuring and Porting of Compute_mixing_length subroutine(Phase 2)

Restructure: sat_mixrat_liq_2D_acc is being directly called instead of
calling the 1D version inside the column loop. Changing sat_mixrat_liq_2D_acc
to a subroutine from a function and adding output array, start_index as
additional argument. This is a workaround for passing sub-arrays. The OpenACC
doen't like the sub-arrays being passed and fails the validation.

Porting: OpenACC directives are added inside sat_mixrat_liq_2D_acc for porting

Validation: Answers are Bit for Bit with arm-multicolumn case + nvhpc compiler

* Fix for compilation issues

Issue 1: Missed out declaring 'start_index' while intergrating the
change

Issue 2: The use of error_code module and the procedures inside it
causes OpenACC compilation issues when run on the device.

* Removing the sat_mixrat_liq_acc and sat_mixrat_liq_2D_acc, making the normal sat_mixrat_liq work for all current use cases, and making the other versions of sat_mixrat_liq (bolton,gfdl,lookup) functional with OPENACC.

Co-authored-by: huebler <huebler@uwm.edu>
The file was modified src/CLUBB_core/saturation.F90 (diff)
The file was modified src/CLUBB_core/advance_clubb_core_module.F90 (diff)
The file was modified src/CLUBB_core/model_flags.F90 (diff)
The file was modified src/CLUBB_core/mixing_length.F90 (diff)
Commit e21e2713eab0f3f228189a4b407c80d4f241038f by noreply
Breaking up column loop in mono_flux_limiter. This may not be the final form for GPUization, but it's definitely a start, no longer do we have to copy single column variables to multicolumn ones anywhere. (#1051)

The file was modified src/CLUBB_core/mono_flux_limiter.F90 (diff)
Commit dda5e8c57edb41b73340c0f9578d7c327b18e076 by noreply
Adding tridiag_lu solver (#1056)

* Adding tridiag_lu solver

* Changing low to lower in tridiag_lu and penta_lu, also fixing up some spacing.

* Making variables that represent matrix solutions more consistently named.
The file was addedsrc/CLUBB_core/tridiag_lu_solver.F90
The file was modified src/CLUBB_core/matrix_solver_wrapper.F90 (diff)
The file was modified src/CLUBB_core/model_flags.F90 (diff)
The file was modified src/CLUBB_core/lapack_wrap.F90 (diff)
The file was modified src/CLUBB_core/penta_lu_solver.F90 (diff)
Commit f9eb64fb27f4b0515602e0f46848fc644035cfaf by Vince Larson
Adds to tuner error bars on bias removal (arrow) plots

and also adds bar graphs that show how each parameter contributes to the bias removal.
The file was modified utilities/sens_matrix/sens_matrix_dashboard.py (diff)
Commit 95217702784b7eddc848ef0d6f7ee705c10d7752 by Vince Larson
Adding OpenACC data directives for mixing length and adg routines

OpenACC structured data regions are added to optimize the data transfers
between CPU and GPU. These data regions will converted to unstrucutred
data region in the later optimization phase.
Results are bit for bit.
The file was modified src/CLUBB_core/adg1_adg2_3d_luhar_pdf.F90 (diff)
The file was modified src/CLUBB_core/mixing_length.F90 (diff)
Commit a0f5313ee697be2153704f9d4b9775cde7d717a1 by Gunther Huebler
Fixing error causing GPU code not to run. Some variables to be copied were labelled as (ngrdcol,nz) when it should be (:ngrdcol,:nz). I've just removed the data length specifiers completely since they are not neccesary in general.
The file was modified src/CLUBB_core/adg1_adg2_3d_luhar_pdf.F90 (diff)
The file was modified src/CLUBB_core/stats_clubb_utilities.F90 (diff)
The file was modified src/CLUBB_core/saturation.F90 (diff)
Commit 822ec13b0db0f3beb4eb93d796d5221a0d3c5f93 by Vince Larson
Adds to dashboard plots error bars for

bias removal plot, a colored correlation matrix,
a matrix of linear-based 2-point bounds on parameter perturbations,
and a web-page version of the 3-dot subplots.
The file was modified utilities/sens_matrix/sens_matrix_dashboard.py (diff)
Commit 1025d807ab1f3d5e8d3a8deb72595f2314b1cec5 by Vince Larson
Adds to dashboard a bar plot that separates nonlinear

and linear contributions to bias removal.

Also abbreviates the clubb parameter names in the plots.
The file was modified utilities/sens_matrix/sens_matrix_dashboard.py (diff)
Commit cfd87ac680ebb26e2fdb7b1aab7a8b8b4fc75320 by Vince Larson
Added option (-i) to run_tuner.bash script to enable pre-tuning standalone runs. README will be updated.
The file was modified README (diff)
The file was modified run_scripts/run_tuner.bash (diff)
Commit 0fafc6b0b1f1a6058d37bf3db4bb3708204504db by 37674341+huebleruwm
Pushing column loop into calculate_thvm
The file was modified src/CLUBB_core/calc_pressure.F90 (diff)
The file was modified src/CLUBB_core/advance_clubb_core_module.F90 (diff)
The file was modified src/input_interpret.F90 (diff)
The file was modified src/clubb_driver.F90 (diff)
Commit 8c7230fecb877d04fb129ef5e143e0993b4b29b1 by 37674341+huebleruwm
Removing update_pressure since it is no longer called anywhere in clubb or host models. The addition of this subroutine was discussed in larson-group/e3sm#6 and the removal of the call to it was discussed in larson-group/clubb#926.
The file was modified src/CLUBB_core/calc_pressure.F90 (diff)
Commit 2f84d7c748f143990316004c66ebda5486de5752 by Gunther Huebler
Removing update_pressure from public list. This was causing compilation crashes. RESOLVED:8c7230fecb877d04fb129ef5e143e0993b4b29b1
The file was modified src/CLUBB_core/calc_pressure.F90 (diff)
Commit 5850944600089fe2cb244ca1b08973231b6d91d3 by Gunther Huebler
Fixing bug, arrays given a dummy index in 0fafc6b0b1f1a6058d37bf3db4bb3708204504db are declared nsize, but are only used up to nlevels, thus we need the (1,1:nlevels) specifier when passing them. This issue was only caught by our _debug tests, so that's good evidence the new flags we added to initialize unused to memory was effective.
The file was modified src/input_interpret.F90 (diff)
Commit c9a950dbbf76e82a3cda0ab2d65f29cd5f28df12 by 37674341+huebleruwm
GPUizing some helping procedures.
The file was modified src/CLUBB_core/grid_class.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/turbulent_adv_pdf.F90 (diff)
Commit 7d6dfad026e40eaf30f29ffa17c23dfbed882040 by 37674341+huebleruwm
Removing sigma_sqd_w from the acc data copyout statement. This is a bug which was causing the code to crash when not using managed memory.
The file was modified src/CLUBB_core/adg1_adg2_3d_luhar_pdf.F90 (diff)
Commit 47cd566e64abb0e774abd20c2ec97deed8dd3ab5 by noreply
Porting pdf_closure subroutine with OpenACC (#1059)

* Porting pdf_closure subroutine with OpenACC

OpenACC directives are added to pdf_closure subroutine. The necessary
structured data region is also added for optimzing data movement across
kernels. There is opportunity to task parallelize using streams and
will be explored in the future.

Answers are bit for bit.

* Fixing the copyin directives

* Making work without managed memory.
The file was modified src/CLUBB_core/pdf_utilities.F90 (diff)
The file was modified src/CLUBB_core/pdf_closure_module.F90 (diff)
Commit b361c61e93c25e1a491a5ff4fdbe5cbcc1f0f735 by cernikt
made graphing for netcdf_var collector general. #1040
The file was modified utilities/read_sam_moments/netcdf_var_collector.py (diff)
Commit f4a832bf41d24a08e9b5be84713c057dfa98084e by bmg2
Adding wp3_on_wp2_cfl_num to CLUBB's output stats.
The file was modified src/CLUBB_core/stats_clubb_utilities.F90 (diff)
The file was modified input/stats/all_stats.in (diff)
The file was modified src/CLUBB_core/advance_clubb_core_module.F90 (diff)
The file was modified input/stats/standard_stats.in (diff)
The file was modified src/CLUBB_core/stats_zm_module.F90 (diff)
The file was modified src/CLUBB_core/stats_variables.F90 (diff)
Commit 28e0fce01e7815ba9476ef6de24e556755f142d4 by bmg2
Added wp3_on_wp2_cfl_num to the VariableGroupNondimMoments.py file for
pyplotgen use.
The file was modified postprocessing/pyplotgen/config/VariableGroupNondimMoments.py (diff)
Commit f41e9c4d0b929e0bcbfb84ee6705ab3b979a6520 by noreply
Update VariableGroupNondimMoments.py

Fixed a typo
The file was modified postprocessing/pyplotgen/config/VariableGroupNondimMoments.py (diff)
Commit d3264a2623c048a97b2dd6d8bb43f14c0e496f0c by 37674341+huebleruwm
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.
The file was modified src/clubb_driver.F90 (diff)
Commit fa914b7afea4b486d22cdaa23fb1fa70c0578559 by 37674341+huebleruwm
Removing usage of gr from pdf_closure. It was only ever used for nz, which is now fed in directly.
The file was modified src/CLUBB_core/pdf_closure_module.F90 (diff)
The file was modified src/CLUBB_core/advance_clubb_core_module.F90 (diff)
The file was modified src/CLUBB_core/adg1_adg2_3d_luhar_pdf.F90 (diff)
Commit 981b9ba9bc9b5d80edc82f52f502ab9bcce097db by noreply
Clubb ticket #1025: Implemented way to make esa tuner reproducible, h… (#1068)

* Clubb ticket #1025: Implemented way to make esa tuner reproducible, hid error output of optional diagnostic variables behind check, fixed parallelization issue with tuner, esa max_iters parameter is now in stats namelist, fixed issue with TUNER compiler directive, some small fixes.
- New namelist variables prescribed_rand_seed and l_use_prescribed_rand_seed determine if the esa tuner will use a random or a fixed value as random seed. Added descriptions to README.
- Added max_iters to stats namelist to make it more modifiable.
- Renamed stp_adjst_intercept_in and stp_adjst_slope_in to stp_adjst_shift_in and stp_adjst_factor_in, respectively, to better reflect their influence on step size.
- The error output in src/CLUBB_core/pdf_closure_module.F90 for the diagnostic variables wprtp2, wpthlp2, wprtpthlp, and rcp2 is now hidden behind existence checks for these variables. And a clarification was added to "#ifdef TUNER" directive.
- NetCDF file access caused the tuner to crash in parallel mode (-fopenmp flag in config file and multiple cases). Adding an $OMP CRITICAL structure around the call to stats_init in clubb_driver.F90 fixed that.
- Fixed compile/README. Config files are specified with the -c option.
- The -t option in run_scripts/run_tuner.bash interfered with the previous usage of the TUNER compiler directive. Renamed the old TUNER directive to NR_SP, a short for "numerical recipes, single precision". TUNER now is the option to "turn on" code changes required to run the tuner.
The file was modified src/clubb_driver.F90 (diff)
The file was modified input_misc/tuner/README (diff)
The file was modified src/clubb_tuner.F90 (diff)
The file was modified compile/compile.bash (diff)
The file was modified input_misc/tuner/error_dycoms2_rf02_ds.in (diff)
The file was modified src/CLUBB_core/pdf_closure_module.F90 (diff)
The file was modified input_misc/tuner/error_dycoms2_rf02_nd.in (diff)
The file was modified input_misc/tuner/error_gabls2.in (diff)
The file was modified input_misc/tuner/error_four_cases.in (diff)
The file was modified src/error.F90 (diff)
The file was modified input_misc/tuner/error_fire.in (diff)
The file was modified input_misc/tuner/error_lba.in (diff)
The file was modified input_misc/tuner/error_bomex.in (diff)
The file was addedinput_misc/tuner/error_bomex_fire.in
The file was modified input_misc/tuner/error_dycoms2_rf01.in (diff)
The file was modified input_misc/tuner/error_rico.in (diff)
The file was modified input_misc/tuner/error_ticket_756.in (diff)
The file was modified compile/README (diff)
The file was modified README (diff)
The file was modified input_misc/tuner/error_gabls3_night.in (diff)
The file was modified src/G_unit_test_types/tuner_tests.F90 (diff)
The file was modified src/enhanced_simann.F90 (diff)
The file was modified input_misc/tuner/error_arm_97.in (diff)
The file was modified input_misc/tuner/error_wangara.in (diff)
The file was modified input_misc/tuner/error_atex.in (diff)
The file was modified input_misc/tuner/error_arm.in (diff)
The file was modified input_misc/tuner/error_nov11_altocu.in (diff)
The file was modified input_misc/tuner/error_all.in (diff)
The file was modified input_misc/tuner/error_dycoms2_rf02_do.in (diff)
Commit 965964e81cc6b58ffbf3213af1d2488080b3371a by cernikt
added autocommit message maker to clubb so I have an easier time testing it
The file was addedutilities/autocommit_message_maker/autocommit_message_maker.py
Commit 6e4204729c1b525b0f2fde3d7c715f5982fc79c3 by cernikt
changes to integrate message maker into gitUpdate scripts
The file was modified utilities/autocommit_message_maker/autocommit_message_maker.py (diff)
Commit be6ab481c56acfc66d65990889dba011d6bcd36a by cernikt
Oops, I made 1 small error, should be consistent now.
The file was modified utilities/autocommit_message_maker/autocommit_message_maker.py (diff)
Commit 9aeea149d5970cb99218344f8bde576e1f036d21 by bmg2
Implementing changes to the initial conditions.
This commit contains code changes related to the modified initial
conditions for convergence test simulations. These code changes can be
activated by setting l_modify_ic_with_cubic_int = .true. in
the namelist on a case-by-case basis.

Along with this option, the sounding profiles are also modified for
the BOMEX, RICO, DYCOMS2_RF02 and Wangara cases.

-- For BOMEX, RICO, Wangara cases, we add more height levels in the
    original sounding profiles so that the cubic spline interpolation
    produces consistent profiles with those with linear interpolation

-- For DYCOMS2_RF02, instead of using the formulations in the code to
    derive the initial condition profiles (which will results in the
    grid-spacing dependent initial condition when we refine grid), we
    construct a sounding profiles (still use the same formulas as in
    the src/sounding.F90) on a high-resolution grid (refine the standard
    grid by a factor of 2^7), then save the profile in
    dycoms2_rf02_sounding.in. In this way, the model initiliazation will
    always read the same sounding profile for initialization when user
    refine the vertical model grid.

Originally committed by Shixuan.
The file was modified src/clubb_driver.F90 (diff)
The file was modified input/case_setups/rico_silhs_model.in (diff)
The file was modified input/case_setups/dycoms2_rf02_sounding.in (diff)
The file was modified input/case_setups/bomex_sounding.in (diff)
The file was modified input/case_setups/dycoms2_rf02_do_model.in (diff)
The file was modified input/case_setups/rico_model.in (diff)
The file was modified input/case_setups/rico_sounding.in (diff)
The file was modified input/case_setups/bomex_model.in (diff)
The file was modified input/case_setups/dycoms2_rf02_morr_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_nd_model.in (diff)
The file was modified input/case_setups/dycoms2_rf02_so_model.in (diff)
The file was modified src/sounding.F90 (diff)
The file was modified input/case_setups/wangara_model.in (diff)
The file was modified input/case_setups/wangara_sounding.in (diff)
Commit a6682998e27e3d01b8ffeb4ec2774872e7311aa4 by bmg2
This commit most definitely does not change any bits,
but commit 67878ef was BIT_CHANGING for the DYCOMS-II RF02 family
of cases, RICO (and RICO SILHS), BOMEX, and Wangara.
The file was modified README (diff)
Commit 0e087bee28254a2bc2da5869a28352e1374b2b91 by bmg2
Add scripts to configure and run convergence test
This commit contains new scripts created to configure and run
convergence test simulations. There are four scripts:

1. run_scripts/run_cnvg_test_multi_cases.csh. This script is used to
    compile and run convergence simulations with specific configurations
    (see details in scripts for explations). After the simulations,the
    space-time convergence plots will also be generated.

2.run_scripts/convergence_config.py: this script "called" by the
   first script to generate the namelist file for CLUBB-SCM simulations.
   With this script, the modified configuration will be applied in the
   case run directory, while the files in default clubb will not be
   touched

3.run_scripts/convergence_function.py: this script contains function
   to modify the initial condition profile for convergence test
   simulations. It is called by run_scripts/convergence_config.py
   when the model is configured to use modified initial conditions

4.run_scripts/plot_l2_convergence.py: this is a sample script to
   generate the space-time convergence plots

Originally committed by Shixuan
The file was addedrun_scripts/convergence_config.py
The file was addedrun_scripts/convergence_function.py
The file was addedrun_scripts/run_cnvg_test_multi_cases.csh
The file was addedrun_scripts/plot_l2_convergence.py
Commit 53c717bb7dd9bddcd720cba58c46d77b7ad36c9c by bmg2
reorgnize the scripts for convergence test simulations
Move the script associated with convergence test simulation
in the folder of run_scripts/convergence_run

Originally committed by Shixuan
The file was removedrun_scripts/convergence_function.py
The file was addedrun_scripts/convergence_run/plot_l2_convergence.py
The file was addedrun_scripts/convergence_run/run_cnvg_test_multi_cases.csh
The file was removedrun_scripts/plot_l2_convergence.py
The file was removedrun_scripts/run_cnvg_test_multi_cases.csh
The file was removedrun_scripts/convergence_config.py
The file was addedrun_scripts/convergence_run/convergence_config.py
The file was addedrun_scripts/convergence_run/convergence_function.py
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/grid_class.F90 (diff)
The file was modified src/CLUBB_core/pdf_closure_module.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/turbulent_adv_pdf.F90 (diff)
The file was modified src/CLUBB_core/advance_clubb_core_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/adg1_adg2_3d_luhar_pdf.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/rico_model.in (diff)
The file was modified src/clubb_driver.F90 (diff)
The file was modified input/case_setups/dycoms2_rf02_so_model.in (diff)
The file was modified input/case_setups/rico_silhs_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_nd_model.in (diff)
The file was modified input/case_setups/dycoms2_rf02_morr_model.in (diff)
The file was modified input/case_setups/bomex_model.in (diff)
The file was modified input/case_setups/dycoms2_rf02_ds_model.in (diff)
The file was modified input/case_setups/wangara_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)
Commit 9512061ddd7b2a7d1009a787409055495fbd39c5 by noreply
Fixed an old notation change in the README
The file was modified README (diff)
Commit 5cb6f1b9b80536e8a57e8d5f64a73136c824b0a0 by noreply
Update README

Did this not work because I didn't include all 40 characters of the git hash?
BIT_CHANGING:9aeea149d5970cb99218344f8bde576e1f036d21
The file was modified README (diff)
Commit 903169aafe5cfd2f7cae35adef3d31e6f51641fe by noreply
Making 'a_const' into a CLUBB tunable parameter. (#1072)

* Converting the sfc_varnce_module.F90 parameter 'a_const' into a CLUBB tunable parameter.

Results should be bit-for-bit since it will be set to 1.8 and with l_vary_convect_depth=F
this is the standard value.

Some discussion in ticket #994.

* Completing requested changes, see PR #1072.
The file was modified input_misc/tuner/error_gabls3_night.in (diff)
The file was modified input_misc/tuner/error_all.in (diff)
The file was modified input_misc/tuner/error_lba.in (diff)
The file was modified src/G_unit_test_types/spurious_source_test.F90 (diff)
The file was modified input_misc/tuner/error_fire.in (diff)
The file was modified input_misc/tuner/error_atex.in (diff)
The file was modified input_misc/tuner/error_gabls2.in (diff)
The file was modified src/error.F90 (diff)
The file was modified input/tunable_parameters_Lscale/tunable_parameters.in (diff)
The file was modified input_misc/tuner/error_rico.in (diff)
The file was modified input_misc/tuner/error_four_cases.in (diff)
The file was modified src/clubb_thread_test.F90 (diff)
The file was modified src/jacobian.F90 (diff)
The file was modified src/G_unit_test_types/pdf_parameter_tests.F90 (diff)
The file was modified src/CLUBB_core/clubb_api_module.F90 (diff)
The file was modified input_misc/tuner/error_bomex_fire.in (diff)
The file was modified input_misc/tuner/error_wangara.in (diff)
The file was modified input_misc/tuner/error_dycoms2_rf01.in (diff)
The file was modified input_misc/tuner/error_bomex.in (diff)
The file was modified input_misc/tuner/error_arm_97.in (diff)
The file was modified input_misc/tuner/error_dycoms2_rf02_nd.in (diff)
The file was modified src/clubb_standalone.F90 (diff)
The file was modified input/tunable_parameters_e3sm/tunable_parameters.in (diff)
The file was modified src/CLUBB_core/parameter_indices.F90 (diff)
The file was modified input_misc/tuner/error_arm.in (diff)
The file was modified src/CLUBB_core/advance_clubb_core_module.F90 (diff)
The file was modified input_misc/tuner/error_dycoms2_rf02_do.in (diff)
The file was modified input_misc/tuner/error_ticket_756.in (diff)
The file was modified input_misc/tuner/error_nov11_altocu.in (diff)
The file was modified input/tunable_parameters/tunable_parameters.in (diff)
The file was modified input_misc/tuner/error_dycoms2_rf02_ds.in (diff)
The file was modified src/CLUBB_core/sfc_varnce_module.F90 (diff)
The file was modified input/tunable_parameters_compatible_r8029/tunable_parameters.in (diff)
The file was modified src/CLUBB_core/parameters_tunable.F90 (diff)
Commit 14c03cc05cfddd0fc31d3845fc13111b3ac08d3a by noreply
Update README

I should've added the answer-changing tag to my previous commit:
BIT_CHANGING:903169a.

That commit doesn't really change answers, but adds a new tunable parameter which will show up in the output files and therefore they will differ from previous output files.
The file was modified README (diff)
Commit 2c597f4960cdb75b2bee46e56a511bd56fd722e2 by noreply
Update README

Oops didn't include all git hash characters:
BIT_CHANGING:903169aafe5cfd2f7cae35adef3d31e6f51641fe
The file was modified README (diff)
Commit 5cbf4f80a34cfafd2fd164415af5ec7d6239bcdd by noreply
Pdf closure driver gpuization (#1071)

* GPUizing pdf_closure_driver, testing still needed, bug likely.

* Making data movement better. Also fixed some random things. Still need to return returns.

* Adding back a couple return statments. Moving a comment where it should be. GPUizing a missed loop.

* Making arguements list satisfy standards.

* Making arguements list satisfy standards. Also adding max(1,hydrometdim) to hydromet inputs.

* Capitalizing K

* Making the error case in compute_cloud_cover behavior a bit differently. This allows the error to be detected immediately by GPU runs as well.

* Calling compute_cloud_cover only needs to be done if l_use_cloud_cover = .true.
The file was modified src/CLUBB_core/T_in_K_module.F90 (diff)
The file was modified src/CLUBB_core/sigma_sqd_w_module.F90 (diff)
The file was modified src/CLUBB_core/pdf_closure_module.F90 (diff)
The file was modified src/CLUBB_core/advance_clubb_core_module.F90 (diff)
The file was modified src/CLUBB_core/Skx_module.F90 (diff)
Commit b6496cec72690bbaa9195b116d01555338953797 by noreply
Update README


RESOLVED:8e473e08b858df61c5c5116e37e26f3df2431a0b
Above committed on March 8th, 2023
BIT_CHANGING:5cbf4f80a34cfafd2fd164415af5ec7d6239bcdd
Above was committed on March 14th, 2023
The file was modified README (diff)
Commit fb4556e4cc4cb3d4b6df3520370a28a824f357ef by Gunther Huebler
Moving compute_cloud_cover outside of if ( l_use_cloud_cover ) then statement, the cloud_cover and rcm_in_layer variables they compute aren't output in clubb_standalone, but are in cam, causing cam bit diff tests to break.
The file was modified src/CLUBB_core/advance_clubb_core_module.F90 (diff)
Commit 0cf0157ebf0dfe165d07da57520f34cbf1173bb8 by Gunther Huebler
Undoing README update, 1 space = 1 byte and we should maximize file sizes to deter hackers from stealing our data. Also BIT_CHANGING:fb4556e4cc4cb3d4b6df3520370a28a824f357ef for configs where l_use_cloud_cover = .false., which means I was wrong about this ever not being bit changing, so I must've either only tested with l_use_cloud_cover = .true. or only tested the multicol diffs when I put compute_cloud_cover inside the if statement.
The file was modified README (diff)
Commit dffad1daafea675ddb568df7159dc83c952baab7 by Gunther Huebler
Adding Skthl_zm to the update host list, I missed this in the last PR. I noticed this by comparing results with and without managed memory, now I've checked BFBness with arm, mpace_b, mc3e, and gabls2.
The file was modified src/CLUBB_core/advance_clubb_core_module.F90 (diff)
Commit d6db663fb3c7cd893d3d68786c486254e8a28ebb by noreply
Small GPU fixes (#1076)

* Fixing small things that I caught by adding the default(present) onto acc loops.

* Moving default(present) to the end because it looks nicer there.
The file was modified src/CLUBB_core/advance_clubb_core_module.F90 (diff)
The file was modified src/CLUBB_core/mixing_length.F90 (diff)
The file was modified src/CLUBB_core/Skx_module.F90 (diff)
The file was modified src/CLUBB_core/parameters_model.F90 (diff)
The file was modified src/CLUBB_core/pdf_closure_module.F90 (diff)
The file was modified src/CLUBB_core/sigma_sqd_w_module.F90 (diff)
The file was modified src/CLUBB_core/grid_class.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/T_in_K_module.F90 (diff)
The file was modified src/CLUBB_core/pdf_utilities.F90 (diff)
The file was modified src/CLUBB_core/adg1_adg2_3d_luhar_pdf.F90 (diff)
The file was modified src/CLUBB_core/turbulent_adv_pdf.F90 (diff)
Commit 5cd77e018ec1ca2d920bd34b5500529068b95749 by noreply
Adds blank line to trigger nightly tests
The file was modified README (diff)
Commit 475d569931a16ce1187c26757a0913e53c62abe5 by bmg2
Code changes to implement modificiations on wp3 clippings
This commit contains code changes to implement modifications of skewness
clippings on wp3 in src/CLUBB_core/clip_explicit.F90. The default method attempts
to apply smaller (larger) clippings below (above) 100m AGL level, which
can cause a discontinuities around 100m AGL level. This clippings is
found to trigger sawthooth oscillations in wp3 when linear diffusion is
used. Such swathooth oscillations are eleminated if a smoothed Heaviside
function is introduced to obtain a smooth transition of clippings at
around 100m AGL level. The changes is necessary to obtain the first
order convergence in CLUBB-SCM when lienar diffusion is used.

Previously committed by Shixuan.
The file was modified src/CLUBB_core/model_flags.F90 (diff)
The file was modified src/CLUBB_core/advance_wp2_wp3_module.F90 (diff)
The file was modified src/G_unit_test_types/pdf_parameter_tests.F90 (diff)
The file was modified src/clubb_driver.F90 (diff)
The file was modified src/CLUBB_core/clubb_api_module.F90 (diff)
The file was modified src/clubb_tuner.F90 (diff)
The file was modified src/G_unit_test_types/spurious_source_test.F90 (diff)
The file was modified input/tunable_parameters/configurable_model_flags.in (diff)
The file was modified src/CLUBB_core/advance_clubb_core_module.F90 (diff)
The file was modified src/CLUBB_core/clip_explicit.F90 (diff)
Commit 4b16d833e86ad23ef6ea81de67c38c596ebccd25 by bmg2
This commit contains code changes to implement modifications on limiters in three places:

1. remove the limiters in denominator of equation for
   brunt_vaisala_freq_sqd_smth, which affects the computed
   eddy dissipation time scale in turbulent fluxes (wpxp).
   (in mixing_length.F90)

2. reduce the threshold values of limiters in the equation
   for richardson number (sqrt_Ri_zm)
   (in mixing_length.F90)

3. introduce the smoothed max/min function for limiters in
   equation of Cx_fnc_Richardson.
   (in advance_helper_module.F90).

After the modification, we also apply a zt2m(zm2zt) smoothing
on the calculated quantities. These modifications are found to
be benificial for improving solution convergence in CLUBB-SCM

The code changes are controlled by a newly introduced flag named
"l_modify_limiters_for_cnvg_test", which is set to .false. (meaning that
the modificaitons on limiters is turned off) by default.

Originally committed by Shixuan.
The file was modified src/CLUBB_core/mixing_length.F90 (diff)
The file was modified src/CLUBB_core/advance_clubb_core_module.F90 (diff)
The file was modified src/G_unit_test_types/spurious_source_test.F90 (diff)
The file was modified src/CLUBB_core/model_flags.F90 (diff)
The file was modified src/clubb_tuner.F90 (diff)
The file was modified src/clubb_driver.F90 (diff)
The file was modified input/tunable_parameters/configurable_model_flags.in (diff)
The file was modified src/CLUBB_core/advance_helper_module.F90 (diff)
The file was modified src/G_unit_test_types/pdf_parameter_tests.F90 (diff)
The file was modified src/CLUBB_core/clubb_api_module.F90 (diff)