Skip to content
Success

Changes

Summary

  1. Gunthers branch (#996) (details)
  2. Various simple changes to improve performance. All bit-for-bit. (details)
  3. Pushing loop into calc_stability_correction. (details)
  4. Small bug fix. (details)
  5. Another similar small bug fix. (details)
  6. Adding in comments to the Jenkinsfiles to clarify advanced syntax usage and commands with unclear purpose. (details)
  7. Gunthers branch (#999) (details)
  8. Renamed smth_range to heaviside_smth_range (details)
  9. Added tot_vartn_normlzd statistics. Renamed sclr in advance_helper_module to scalar to be more consistent with clubb naming schemes. (details)
  10. Implemented three further normalized variation stats. Included a (most likely temporary) check because in a few cases, denominator for normalization would be 0. (details)
  11. Changed priorities of total normalized variation stats, included error handling in total normalized variation stats. (details)
  12. Renamed pdf_output_filename. Added grid_level constant to avoid magic numbers in stats_update_var_pt calls. (details)
  13. Gunthers branch 2 (#1002) (details)
  14. Bugfix for merge #1000. stderr was not imported in stat_clubb_utilities.F90, causing compilation to fail. (details)
  15. Renaming the new case from SHEAR_DRIVEN to NEUTRAL, and associated mentions in files. (details)
  16. Added ability to apply smooth min max functions in mixing_length.F90 (details)
  17. Updated deprecated documentation of smooth min and max functions in advance_helper_module.F90. https://github.com/larson-group/clubb/issues/965 (details)
  18. Checked whether results really are identical even with round-off when we have l_smooth_min_max=T and smooth_min_max_mag=zero. Next commit rolls some of these changes back for merge into master. https://github.com/larson-group/clubb/issues/965 (details)
  19. Added test cases to smooth_min_max_tests.F90 and updated documentation. (details)
  20. removed SAM_CLUBB_standards.tex, SAM_CLUBB.tex, SAM_code_notes.tex, and SAM6.10_guide.doc larson-group/sys_admin#622 (details)
  21. COrrecting a couple of omissions from when I was renaming the shear_driven case to "neutral". (details)
  22. Constructing rcm within SILHS (as rcm_pdf) (#1011) (details)
  23. Constructing rcm within SILHS (as rcm_pdf) (#1011) (details)
  24. Updating for changes to CLUBB.  See https://github.com/larson-group/clubb/commit/e4f125ba067ba8083f917e0e06b6b2398483d3e4. (details)
  25. Almost final loop pushes (#1012) (details)
  26. Making compatible with latest clubb change. (details)
  27. Making pdf_implicit_coefs_terms a type containing 2D arrays. (#1014) (details)
  28. The G_unit tests never allocated pdf_implicit_coefs_terms. It's unclear to me how these were working before, but it seems that something about making these 2D allocatable arrays exposed the bug. (details)
  29. Making zt2zm calls with pdf_implicit_coefs_terms use the 2D version. (details)
  30. Removing setup_grid and setup_parameters functionality from setup_clubb_core. This is beacuse in host models the required grid information may not be known during the setup process, resulting in dummy arguments for setup_clubb_core and the grid and paramters being setup during runtime anyway. Now, in the host models we can call these subroutines immediately after setup_clubb_core to maintain identical functionality (sam, wrf), and in others we can wait to call these until the main timestepping procedure (cam,e3sm). (details)
  31. Making compatible with latest clubb change. (details)
  32. Making 2D versions of setup_grid and setup_parameters. (details)
  33. Making lmin a scalar again, twas a mistake to make it an array, it can only take on one value. (details)
  34. Making nu_vert_res_dep a type containing arrays, as opposed to being an array of types. (details)
  35. Lots of small loop pushes (details)
  36. Small bug fix. This was not a bit changing bug, but could cause crashes if we compile with floating point trapping in a multicolumn run. (details)
  37. Small refactoring to mfl_xm_lhs, just removing need to pass in gr. (details)
  38. Final loop pushes needed before the grid change. (details)
  39. Replacing use of gr with nz (details)
  40. Replacing use of gr with nz (details)
  41. added -heap-arrays tag to FFlags on Makefile to fix jenkins testing error (details)
  42. Makefile came with a few other accidental changes, these have been corrected. (details)
  43. The big grid change. Converting gr from being an array of types containing 1D arrays, to a type containing 2D arrays. All cases BFB, cam multicolumn+silhs BFB, and cam multicolumn (no silhs) with backwards compatible settings BFB. (details)
  44. The big grid change. Converting gr from being an array of types containing 1D arrays, to a type containing 2D arrays. All cases BFB, cam multicolumn+silhs BFB, and cam multicolumn (no silhs) with backwards compatible settings BFB. (details)
  45. Adding column index to gr arrays, hard coding to 1 since sam only uses single column calls. (details)
  46. Removing the zt2zm interface from clubb_api and making the api calls just redirect to the grid class interface for it. (details)
  47. Pushing column loop into mean advection procedures. (details)
  48. Little loop push (details)
  49. Moving above/below index of grid weights to last dimension. (details)
  50. Hardcoding 1 into uses of gr arrays where single column versions of gr is used. (details)
  51. Pushing loop into fill_holes. (details)
  52. Forgot small change. (details)
  53. Making compatible with latest clubb change. (details)
  54. Making linear_interpolated_azt_2D and linear_interpolated_azm_2D subroutines just to avoid a needless data copy. (details)
  55. Making update_xp2_mc 2D and creating interface for 1D calls. (details)
  56. Fixing units in stats_zt_module.F90 (details)
  57. Fixing a bug in mono_flux_limiter.F90. (#1026) (details)
  58. Fixing a bug. (details)
  59. I changed the w_up_in_cloud code in 2 ways: (details)
  60. I added stats output for w_down_in_cloud to all_stats.in. (details)
  61. Modified for the latest changes to CLUBB. (details)
  62. adding line to fix mpi configuration in micro drizzle test (details)
  63. I altered the w_up_in_cloud and w_down_in_cloud code so that a (details)
  64. I have optimized the new w_up_in_cloud and w_down_in_cloud code by (details)
  65. Refactored fill_holes_vertical to make GPUization simple. This is BIT_CHANGING, but results are bit-for-bit when using -O0 optimization, thus it is not answer changing. The first pass over each grid column will not parallelize well, the k-loop needs to be done in serial. Maximum parallelization has been exposed for the global hole-filling though, at the cost of occasionally doing unneccesary calculations. larson-group/clubb#972. (details)
  66. Removing fill_holes_multiplicative and replacing magic numbers with parameters from constants_clubb. larson-group/clubb#972 (details)
  67. Moving vertical_avg and vertical_integral to advance_helper_module. larson-group/clubb#972 (details)
  68. Moving vertical_avg and vertical_integral to advance_helper_module. larson-group/clubb#972 (details)
  69. Making compatible with latest clubb change. (details)
  70. Removing elementalness from sat_vapor_press_liq and making interal procedures subroutines rather than functions to prevent unneccesary data copies. Doing the same for thlm2T_in_K since it is often used in conjunction with sat_vapor_press_liq. Bit-for-bit confirmed with O0 using all single column cases with or without l_diag_Lscale_from_tau, and with cam_coarse_res. larson-group/clubb#972 (details)
  71. Adding comments. (details)
  72. Adding initial subroutine calc_ice_cloud_frac_component. (details)
  73. Cleaning up new subroutine calc_liquid_cloud_frac_component, and making sat_mixrat_ice a subroutine that works the same way as sat_mixrat_liq. larson-group/clubb#972 (details)
  74. Comment update (details)
  75. Removing these paratheses is BIT_CHANGING since it modifies the order of operations, but allows for the multiplication and subraction to be done in parallel for complex pipelines. (details)
  76. Improvements. Netcdf output is now functional and we can detect errors with multiple columns even when the standard output is identical. (details)
  77. Updating column num input in config flags. larson-group/clubb#1033 (details)
  78. Adding comments, setting to num_standalone_columns=1 by default, and preventing multicolumn output when l_stats=false. larson-group/clubb#1033 (details)
  79. Improvements. Netcdf output is now functional and we can detect errors with multiple columns even when the standard output is identical. (details)
  80. Namelists need to be closed with a '/', and omitting it will break many tests. (details)
  81. Making save variables in the multicol code threadprivate, this fixes the openmp test. Also changing the way we name and save the multicol output, this allows the parallel run to run with multiple columns. I've reflected the changes in comments where relevant. larson-group/clubb#1033 (details)
  82. Adds commented-out line that prevents the monotonic flux (details)
  83. Updating monotonic flux limiter code to remove spikes. (#1038) (details)
  84. Creating new flags to control monotonic flux limiter (#1039) (details)
  85. Creating new flags to control monotonic flux limiter (#1039) (details)
  86. Updating for changes to CLUBB.  See https://github.com/larson-group/clubb/pull/1039. (details)
  87. I am adding cloudy_updraft_frac and cloudy_downdraft_frac as (details)
  88. Updating SAM-CLUBB for the latest changes to the call to (details)
  89. Minor adjustment to eliminate spikes in thlm tendencies from the monotonic flux limiter. (#1043) (details)
  90. Making interface for matrix solvers. (details)
  91. Making tridag tridiag everywhere, making sol soln, and adding intent comments. (details)
  92. A different way of dealing with monotonic flux limiter spikes (#1046) (details)
  93. Steffens tuner fixer branch (#1041) (details)
  94. Making compatible with latest clubb changes. (details)
  95. Adding capability to change matrix solving method via clubb_config_flags. (details)
  96. Fixing small bug, need to pass _copy arrays to prevent lapack mangling the real ones. (details)
  97. Adding capability to change matrix solving method via clubb_config_flags. (details)
  98. Making GPU and CPU versions of the penta_lu solver the same as discussed in larson-group/clubb#1024. (details)
  99. Replacing $ with & in namelist definition to make consistent. (details)
  100. I added "smooth" max clipping for invrs_tau_shear, which is a variable (details)
  101. ADG1_pdf_driver subroutine port with OpenACC (details)
  102. Replacing old elemental ADG1_w_closure with new GPUized one. Making G_unit tests work with new version. Also making mixt_frac_max_mag a scalar since it was only being used as such. larson-group/clubb#1049 (details)
  103. I can now safely remove all the "ifdef E3SM" statements from CLUBB's (details)
  104. Pushing column loop into lapack wrap. (details)
  105. Restructuring and Porting of Compute_mixing_length subroutine(Phase 1) (#1052) (details)
  106. Restructuring and Porting of Compute_mixing_length subroutine(Phase 2) (#1054) (details)
  107. 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)
  108. Adding tridiag_lu solver (#1056) (details)
  109. Adding OpenACC data directives for mixing length and adg routines (details)
  110. 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)
  111. GPUizing sat_mixrat_ice_2D. (details)
  112. Pushing column loop into calculate_thvm (details)
  113. 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)
  114. Removing update_pressure from public list. This was causing compilation crashes. RESOLVED:8c7230fecb877d04fb129ef5e143e0993b4b29b1 (details)
  115. GPUizing some helping procedures. (details)
  116. 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)
  117. Porting pdf_closure subroutine with OpenACC (#1059) (details)
  118. Adding wp3_on_wp2_cfl_num to CLUBB's output stats. (details)
  119. Removing usage of gr from pdf_closure. It was only ever used for nz, which is now fed in directly. (details)
  120. Clubb ticket #1025: Implemented way to make esa tuner reproducible, h… (#1068) (details)
  121. Gpu updates (#1070) (details)
  122. Implements Thomas Toniazzo's bug fix for spike removal (details)
  123. Making 'a_const' into a CLUBB tunable parameter. (#1072) (details)
  124. Making 'a_const' into a CLUBB tunable parameter. (#1072) (details)
  125. Updating for changes to CLUBB.  See PR #1072. (details)
  126. Pdf closure driver gpuization (#1071) (details)
  127. 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)
  128. 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)
  129. Small GPU fixes (#1076) (details)
  130. Code changes to implement modificiations on wp3 clippings (details)
  131. Code changes to implement modificiations on wp3 clippings (details)
  132. This commit contains code changes to implement modifications on limiters in three places: (details)
  133. This commit contains code changes to implement modifications on limiters in three places: (details)
  134. Updated for recent changes to CLUBB. (details)
  135. changing tunable_parameters (details)
  136. changing tunable_parameters (details)
  137. changing tunable_parameters (details)
  138. Advance xm wpxp gpuization (#1077) (details)
  139. Small tweaks to fix some GPU bugs. Some variables were uninitialized on the CPU while we were saving them. This could only have been caught by comparing consecutive runs and checking _zt and _zm files, even then few cases were having problems. (details)
  140. Fixing a labelling error in redirect_interpolated_azt_2D and similar procedures, since this interpolates to zt the input should be zm. I think this was my fault, so I cleaned all the zt2zm and zm2zt things up to make it a little nicer. Also ordered the routines _k _1D _2D to make it easier to jump around, it was a bit confusing as they were out of order and the typo really made it hard. (details)
  141. Making it so sclr_tol is set to 0 before the specified sclr_tol_in. This is so that it is initialized to 0 in the case that sclr_dim = 0, since now we are setting it to have a minimum allocation size of 1 and would otherwise have a garbage value. This is what broke the clubb_openmp_gfortran_test. (details)
  142. Lscale GPUization (#1079) (details)
  143. gfortran does not like intent(out) specifiers for functions. (details)
  144. GPUizing Various Small Routines (#1080) (details)
  145. This commit is a commit that changes absolutely nothing. It is meant to trigger a change in the git update scripts, so that I can start the commit message logging in the autocommit updates larson-group/sys_admin#797 (details)
  146. This commit is a commit that changes absolutely nothing. It is meant to trigger a change in the git update scripts, so that I can start the commit message logging in the autocommit updates larson-group/sys_admin#797 (details)
  147. this is another commit that cahnges nothing that will trigger the gitUpdate scripts (details)
  148. adding an update that changes nothing and is just a test for the autoupdate script (details)
  149. Making CLUBB's splatting scheme implicit and smoother (#1075) (details)
  150. Calc sfc varnce GPUization (#1081) (details)
  151. Reducing C_wp2_splat to 0.25 (from 2.0) for new implicit splatting code. (details)
  152. Reducing C_wp2_splat to 0.25 (from 2.0) for new implicit splatting code. (details)
  153. Removed Space From clip_explicit (details)
  154. making changes to trigger autoudpate for test, these commits do nothing (details)
  155. making changes to trigger autoudpate for test, these commits do nothing (details)
  156. Here is another commit that changes nothing (details)
  157. Here is another commit that changes nothing (details)
  158. change to trigger updates (details)
  159. change to calc pressure to trigger autoupdate (details)
  160. GPUizing Lscale_width_vert_avg. Loops have been restructured for simplicity, and algorithm has a different starting value to avoid k dependency. Results are BFB. (#1083) (details)
  161. GPUizing most of advance_clubb_core (#1084) (details)
  162. advance_wp2_wp3 with explicitly managed memory  (#1085) (details)
  163. advance_xp2_xpyp with explicitly managed memory (#1086) (details)
  164. advance_windm_edsclrm with explicitly managed memory (#1087) (details)
  165. Moving data statements to outter most parts of clubb and little fix in advance_wp2_wp3 (#1088) (details)
  166. Data movement improvement (#1089) (details)
Commit 22792d68ce4f823ad5ac389361dae0f25f10bcd8 by noreply
Gunthers branch (#996)

* Pushing column loop into xm_wpxp_clipping_and_stats and monotonic_turbulent_flux_limit. This essentially completes advance_xm_wpxp for now. larson-group/clubb#972

* Replacing the i loop iterator for scalars with sclr.

* Pushing loop into advance_xp2_wpxp.

* Moving the lhs_dp1 calculation to outside of xp2_xpyp_lhs. This gives us more flexibility, since we want to pass lhs_dp1 into xp2_xpyp_implicit_stats.

* Moving the lmm_stepping and stats calls to immediately after calls to xp2_xpyp_solve. This is because xp2_xpyp_implicit_stats saves things that are saved by scratch variables, and these scratch variables are set by the lhs and rhs setup calls. So for the multiple lhs routine, we need to save the scratch variables immediately after these calls before overwriting them by calling lhs and rhs again for a different variable. Since the stats also saves the variable were solving for, we also have to move the lmm_stepping to before this call.

* Removing need for stats scratch variables by passing lhs terms to save through agument lists. This makes everything better in every way.

* Adding slicing for some lhs arrays being saved in stats. This was causing bit changing in a few lhs terms when run in multicolumn.

* Changing names of dp1 variables for up2 and vp2. Surrounding where they're set to be within a l_stats_samp.

* Breaking up column loop in advance_xp2_xpyp and pushing column loop into calc_xp2_xpyp_ta_terms. larson-group/cam#972

* Breaking up column loop in calc_xp2_xpyp_ta_terms.

* Pushing loop into solve_xp2_xpyp_with_single_lhs.

* Fixing mangled merge.

* Pushing loops down.

* Pushing loops and small cleanup.
The file was modified advance_xp2_xpyp_module.F90 (diff)
Commit 027ddbb31fdc89dc29b576b69ae24dcc7cb5b790 by Gunther Huebler
Various simple changes to improve performance. All bit-for-bit.
The file was modified pdf_utilities.F90 (diff)
The file was modified advance_xp2_xpyp_module.F90 (diff)
The file was modified pdf_closure_module.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
Commit 9fbc4c9718f0b333f1cfb08f5b2a134fcd849070 by Gunther Huebler
Pushing loop into calc_stability_correction.
The file was modified advance_xm_wpxp_module.F90 (diff)
The file was modified advance_helper_module.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified advance_xp2_xpyp_module.F90 (diff)
Commit f6bb40b687635af5c4c333c02024c3fea93be31d by Gunther Huebler
Another similar small bug fix.
The file was modified advance_xp2_xpyp_module.F90 (diff)
Commit 99eb7c12fda3b8367b96d54094ba6d5b87ff64f6 by pbroels
Adding in comments to the Jenkinsfiles to clarify advanced syntax usage and commands with unclear purpose.
The file was modified jenkins_tests/sam_clubb_code_copy/Jenkinsfile (diff)
The file was modified jenkins_tests/sam_clubb_silhs_gfortran_build/Jenkinsfile (diff)
The file was modified jenkins_tests/sam_micro_drizzle_intel_test/Jenkinsfile (diff)
The file was modified jenkins_tests/sam_clubb_pgi_build/Jenkinsfile (diff)
Commit e2ec97eca0f3244643d61e5d258d7341d579b9ad by noreply
Gunthers branch (#999)

* Reworking the flow to make it good.

* Cleaning up.

* Pushing loop into advance_xp2_wpxp.

* Forgot to commit advance_clubb_core.

* Slight improvement to logic of lhs_diff_zm_crank calculation, and fixing stats but present when lhs_diff_zm_crank=true.

* Pushing lots of loops down.

* Changing dimension ordering.

* Cleaning up. This completes advance_wp2_wp3. larson-group/clubb#972

* Changing capitalization of intents.
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified advance_wp2_wp3_module.F90 (diff)
Commit 592d69e2936ee8ce9c706d21a606fe2ed89c5a7f by 68997723+JanGrn
Renamed smth_range to heaviside_smth_range
The file was modified advance_helper_module.F90 (diff)
The file was modified mixing_length.F90 (diff)
Commit c9ccb33dd2dd17ed51136d49262370f980d34efa by 68997723+JanGrn
Added tot_vartn_normlzd statistics. Renamed sclr in advance_helper_module to scalar to be more consistent with clubb naming schemes.
The file was modified stats_sfc_module.F90 (diff)
The file was modified stats_clubb_utilities.F90 (diff)
The file was modified stats_variables.F90 (diff)
The file was modified advance_helper_module.F90 (diff)
Commit e68c14bd04dd6715f4eead46f5252b1cae3d909e by 68997723+JanGrn
Implemented three further normalized variation stats. Included a (most likely temporary) check because in a few cases, denominator for normalization would be 0.
The file was modified stats_sfc_module.F90 (diff)
The file was modified stats_variables.F90 (diff)
The file was modified stats_clubb_utilities.F90 (diff)
Commit 36748fbe6efa8a82b6c846fc8ec914e90114bdfb by 68997723+JanGrn
Changed priorities of total normalized variation stats, included error handling in total normalized variation stats.
The file was modified stats_clubb_utilities.F90 (diff)
Commit 28fb91ccebb1790cc90b29cc7fe8b0b211b727eb by 68997723+JanGrn
Renamed pdf_output_filename. Added grid_level constant to avoid magic numbers in stats_update_var_pt calls.
The file was modified stats_clubb_utilities.F90 (diff)
Commit 8b65b741ae34ba9ef8287f3fcafd627092d4ba13 by noreply
Gunthers branch 2 (#1002)

* Pushing loop down through advance_windm. Other files needed to be touched because they were using a simple function, xpwp_func, which has been replaced in relevenant places by the few lines of code it takes to do.

* Cleaned up intents

* Moving xpwp calcuations back to procedure, but making procedure a 1/2D interface in advance helper. Other various small tweaks as well.
The file was modified setup_clubb_pdf_params.F90 (diff)
The file was modified advance_windm_edsclrm_module.F90 (diff)
The file was modified advance_helper_module.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
Commit 488bf543bb77e0f48a1958074bd8d468f4421f76 by 68997723+JanGrn
Bugfix for merge #1000. stderr was not imported in stat_clubb_utilities.F90, causing compilation to fail.
The file was modified stats_clubb_utilities.F90 (diff)
Commit c8881c3913d3bf82c215fe8af27e6d27da2f7f40 by benjamin.andrew.stephens
Renaming the new case from SHEAR_DRIVEN to NEUTRAL, and associated mentions in files.

See https://github.com/larson-group/clubb/issues/991.
The file was addedNEUTRAL/prm.les
The file was removedSHEAR_DRIVEN/domain.f90.les
The file was removedSHEAR_DRIVEN/lsf
The file was addedNEUTRAL/sfc
The file was removedSHEAR_DRIVEN/snd
The file was removedSHEAR_DRIVEN/grd
The file was addedNEUTRAL/snd
The file was removedSHEAR_DRIVEN/README
The file was removedSHEAR_DRIVEN/prm.les
The file was addedNEUTRAL/README
The file was addedNEUTRAL/domain.f90.les
The file was addedNEUTRAL/grd
The file was modified SCRIPTS/LES_setup/setup_LES_KK_micro.bash (diff)
The file was addedNEUTRAL/lsf
The file was removedSHEAR_DRIVEN/sfc
Commit 612b58c17db79d410f0d7c183c582f38d1ccb1b5 by 68997723+JanGrn
Added ability to apply smooth min max functions in mixing_length.F90
The file was modified advance_helper_module.F90 (diff)
The file was modified mixing_length.F90 (diff)
Commit 2d9fdafb4596ebd4063d961bc3d1b18c0dbcff3d by 68997723+JanGrn
Updated deprecated documentation of smooth min and max functions in advance_helper_module.F90. https://github.com/larson-group/clubb/issues/965
The file was modified advance_helper_module.F90 (diff)
Commit f050454be526c9ec53c1d5445ba5ea554477010c by 68997723+JanGrn
Checked whether results really are identical even with round-off when we have l_smooth_min_max=T and smooth_min_max_mag=zero. Next commit rolls some of these changes back for merge into master. https://github.com/larson-group/clubb/issues/965
The file was modified advance_helper_module.F90 (diff)
The file was modified mixing_length.F90 (diff)
Commit d540581ca5c6736c20a89d3b168cd0048f6bf3a2 by 68997723+JanGrn
Added test cases to smooth_min_max_tests.F90 and updated documentation.
The file was modified mixing_length.F90 (diff)
Commit 312b71b16529ae216c04189c49f66a05752d1cbb by cernikt
removed SAM_CLUBB_standards.tex, SAM_CLUBB.tex, SAM_code_notes.tex, and SAM6.10_guide.doc larson-group/sys_admin#622
The file was removedDOC/SAM_CLUBB.tex
The file was removedDOC/SAM_CLUBB_standards.tex
The file was removedDOC/SAM6.10_guide.doc
The file was removedDOC/SAM_code_notes.tex
Commit 4a5bf1865b151f96d5460e2aaddf0de756310411 by benjamin.andrew.stephens
COrrecting a couple of omissions from when I was renaming the shear_driven case to "neutral".

See https://github.com/larson-group/clubb/issues/991.
The file was addedSRC/surface.neutral
The file was removedSRC/surface.shear_driven
The file was modified SCRIPTS/LES_setup/setup_LES_KK_micro.bash (diff)
Commit e3cdb98eb6cc532f8ef187f2d1cc56481a75d1f5 by noreply
Constructing rcm within SILHS (as rcm_pdf) (#1011)

* Constructing rcm within SILHS (as rcm_pdf) to avoid having to pass rcm directly to SILHS. Relevant to possibly moving PDF call placement
into the "post" position in CAM.

See https://github.com/ESCOMP/CAM/issues/582.

* Reconstructing rcm inside of setup_pdf_parameters instead of passing it through
the argument lists.  Might help NCAR move the PDF call placement to "post" position
in CAM.

See https://github.com/larson-group/clubb/issues/997.

* Adding descriptive comment.
The file was modified setup_clubb_pdf_params.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
Commit f6c58abafbfc4b18957f9eedff60deeb321bad32 by noreply
Constructing rcm within SILHS (as rcm_pdf) (#1011)

* Constructing rcm within SILHS (as rcm_pdf) to avoid having to pass rcm directly to SILHS. Relevant to possibly moving PDF call placement
into the "post" position in CAM.

See https://github.com/ESCOMP/CAM/issues/582.

* Reconstructing rcm inside of setup_pdf_parameters instead of passing it through
the argument lists.  Might help NCAR move the PDF call placement to "post" position
in CAM.

See https://github.com/larson-group/clubb/issues/997.

* Adding descriptive comment.
The file was modified latin_hypercube_driver_module.F90 (diff)
The file was modified silhs_api_module.F90 (diff)
Commit 56d698f9776ce2802dfc991ed50a8dc952f0ec95 by benjamin.andrew.stephens
Updating for changes to CLUBB.  See https://github.com/larson-group/clubb/commit/e4f125ba067ba8083f917e0e06b6b2398483d3e4.
The file was modified SRC/SGS_CLUBB/clubb_sgs.F90 (diff)
Commit db5164bb7ed0c78ce4f06f92e7bf6118d10addf3 by noreply
Almost final loop pushes (#1012)

* Pushing loop into clip_rcm

* Pushing column loop into trapezoid routines.

* Pushing column loop into clip_covar routines.

* Pushing column loop into clip_variance and clip_skewness.

* Replacing sgn_turbulent_velocity with built in fortran sign

* Removing gr from argument list of stats calls, replacing with just nz

* Replacing some usages of gr with just the number of vertical levels

* Replacing some usages of gr with just the number of vertical levels again

* Missed a couple files to commit

* Pushing some loops and removing need for gr to be passed into some routines.

* Pushing loop into advance_xp3

* Pushing loop into mixing length

* Some more loop pushing

* Pushing some loops into mono_flux limit, skipping the lhs routine since it's a bit tricky at the moment, will do after change to grid class.

* Removing gr from argument list of stats accumulate

* Precalculating zt2zm so that we can use 2d version

* Precalculating um/vm ddzt so that we can use 2d version

* Precalculating things to use 2d version of zt2zm

* Making 2d version of cubic interp for grid class

* Small modifications to sponge damping code argument lists

* Renaming some variables
The file was modified advance_helper_module.F90 (diff)
The file was modified stats_type_utilities.F90 (diff)
The file was modified turbulent_adv_pdf.F90 (diff)
The file was modified grid_class.F90 (diff)
The file was modified advance_wp2_wp3_module.F90 (diff)
The file was modified setup_clubb_pdf_params.F90 (diff)
The file was modified new_pdf_main.F90 (diff)
The file was modified new_tsdadg_pdf.F90 (diff)
The file was modified advance_xm_wpxp_module.F90 (diff)
The file was modified adg1_adg2_3d_luhar_pdf.F90 (diff)
The file was modified advance_windm_edsclrm_module.F90 (diff)
The file was modified mixing_length.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
The file was modified clip_explicit.F90 (diff)
The file was modified mono_flux_limiter.F90 (diff)
The file was modified new_pdf.F90 (diff)
The file was modified sponge_layer_damping.F90 (diff)
The file was modified advance_xp3_module.F90 (diff)
The file was modified fill_holes.F90 (diff)
The file was modified pdf_closure_module.F90 (diff)
The file was modified pos_definite_module.F90 (diff)
The file was modified new_hybrid_pdf_main.F90 (diff)
The file was modified LY93_pdf.F90 (diff)
The file was modified numerical_check.F90 (diff)
The file was modified stats_clubb_utilities.F90 (diff)
The file was modified advance_xp2_xpyp_module.F90 (diff)
Commit 9701c2054c2b0228fdaf8aefb5844479ef68c66b by Gunther Huebler
Making compatible with latest clubb change.
The file was modified SRC/SGS_CLUBB/clubb_sgs.F90 (diff)
The file was modified SRC/micro_field_utils.F90 (diff)
The file was modified SRC/MICRO_M2005_UWM/microphysics.F90 (diff)
Commit 113beb1ec6663fcef3f6bb75c7ee971ab3c0fa45 by noreply
Making pdf_implicit_coefs_terms a type containing 2D arrays. (#1014)

The file was modified advance_xp2_xpyp_module.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
The file was modified new_hybrid_pdf_main.F90 (diff)
The file was modified advance_xm_wpxp_module.F90 (diff)
The file was modified advance_wp2_wp3_module.F90 (diff)
The file was modified new_pdf_main.F90 (diff)
The file was modified pdf_closure_module.F90 (diff)
The file was modified pdf_parameter_module.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
Commit 7bc6f76ec8b70bc1789f90b554dca47122c40001 by Gunther Huebler
The G_unit tests never allocated pdf_implicit_coefs_terms. It's unclear to me how these were working before, but it seems that something about making these 2D allocatable arrays exposed the bug.
The file was modified new_hybrid_pdf_main.F90 (diff)
The file was modified new_pdf_main.F90 (diff)
Commit de73c4eefaee2b50045b4f5e706868e84b0f4550 by Gunther Huebler
Making zt2zm calls with pdf_implicit_coefs_terms use the 2D version.
The file was modified advance_xp2_xpyp_module.F90 (diff)
Commit 3643c78f6fe2260f971bba96ead125858b665f1c by Gunther Huebler
Removing setup_grid and setup_parameters functionality from setup_clubb_core. This is beacuse in host models the required grid information may not be known during the setup process, resulting in dummy arguments for setup_clubb_core and the grid and paramters being setup during runtime anyway. Now, in the host models we can call these subroutines immediately after setup_clubb_core to maintain identical functionality (sam, wrf), and in others we can wait to call these until the main timestepping procedure (cam,e3sm).
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
Commit b709f9e50c7ce9642fe0a6c0dcd874a14a472c76 by Gunther Huebler
Making compatible with latest clubb change.
The file was modified SRC/SGS_CLUBB/clubb_sgs.F90 (diff)
Commit c623b91a9bf812b85b51b575233ad00e8b98f16c by Gunther Huebler
Making 2D versions of setup_grid and setup_parameters.
The file was modified parameters_tunable.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
The file was modified grid_class.F90 (diff)
Commit 69aaa53016d97c134fc63c8ebc1a7c029d2b6074 by Gunther Huebler
Making lmin a scalar again, twas a mistake to make it an array, it can only take on one value.
The file was modified parameters_tunable.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
The file was modified mixing_length.F90 (diff)
Commit 02455edff630a52bd333d2b0013748e4bce7e9ff by Gunther Huebler
Making nu_vert_res_dep a type containing arrays, as opposed to being an array of types.
The file was modified parameters_tunable.F90 (diff)
The file was modified advance_xm_wpxp_module.F90 (diff)
The file was modified advance_xp2_xpyp_module.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified advance_windm_edsclrm_module.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
The file was modified advance_wp2_wp3_module.F90 (diff)
The file was modified turbulent_adv_pdf.F90 (diff)
The file was modified advance_xm_wpxp_module.F90 (diff)
The file was modified advance_windm_edsclrm_module.F90 (diff)
The file was modified advance_wp2_wp3_module.F90 (diff)
The file was modified mono_flux_limiter.F90 (diff)
The file was modified mean_adv.F90 (diff)
The file was modified advance_xp2_xpyp_module.F90 (diff)
The file was modified diffusion.F90 (diff)
Commit a64cacf0a77189a2f5e834d18911b1b3e6594a7b by 37674341+huebleruwm
Small bug fix. This was not a bit changing bug, but could cause crashes if we compile with floating point trapping in a multicolumn run.
The file was modified mixing_length.F90 (diff)
Commit fcfffe10437ae1515c57311853370d6d071411ac by 37674341+huebleruwm
Small refactoring to mfl_xm_lhs, just removing need to pass in gr.
The file was modified mono_flux_limiter.F90 (diff)
Commit 9f6a4e357eb6f213de0fa9831082355536bebc4b by 37674341+huebleruwm
Final loop pushes needed before the grid change.
The file was modified grid_class.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
The file was modified fill_holes.F90 (diff)
The file was modified latin_hypercube_driver_module.F90 (diff)
Commit f705e8f2f08c20a6f082647a6064051033d83bc2 by cernikt
added -heap-arrays tag to FFlags on Makefile to fix jenkins testing error
The file was modified Makefile (diff)
Commit 32cdf1eb92d93a5b37cbb9598275b59d07ff3c50 by cernikt
Makefile came with a few other accidental changes, these have been corrected.
The file was modified Makefile (diff)
Commit fece46637566b9e53ed2e20894a4f53cc2f617da by 37674341+huebleruwm
The big grid change. Converting gr from being an array of types containing 1D arrays, to a type containing 2D arrays. All cases BFB, cam multicolumn+silhs BFB, and cam multicolumn (no silhs) with backwards compatible settings BFB.
The file was modified advance_helper_module.F90 (diff)
The file was modified fill_holes.F90 (diff)
The file was modified stats_clubb_utilities.F90 (diff)
The file was modified diffusion.F90 (diff)
The file was modified advance_windm_edsclrm_module.F90 (diff)
The file was modified pdf_closure_module.F90 (diff)
The file was modified turbulent_adv_pdf.F90 (diff)
The file was modified pos_definite_module.F90 (diff)
The file was modified clip_explicit.F90 (diff)
The file was modified mono_flux_limiter.F90 (diff)
The file was modified advance_xp2_xpyp_module.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
The file was modified grid_class.F90 (diff)
The file was modified advance_xm_wpxp_module.F90 (diff)
The file was modified setup_clubb_pdf_params.F90 (diff)
The file was modified adg1_adg2_3d_luhar_pdf.F90 (diff)
The file was modified sponge_layer_damping.F90 (diff)
The file was modified calc_pressure.F90 (diff)
The file was modified advance_xp3_module.F90 (diff)
The file was modified parameters_tunable.F90 (diff)
The file was modified advance_wp2_wp3_module.F90 (diff)
The file was modified mixing_length.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
Commit dcb05d4849a9fd845627278f534f82c5d95b5424 by 37674341+huebleruwm
The big grid change. Converting gr from being an array of types containing 1D arrays, to a type containing 2D arrays. All cases BFB, cam multicolumn+silhs BFB, and cam multicolumn (no silhs) with backwards compatible settings BFB.
The file was modified latin_hypercube_driver_module.F90 (diff)
The file was modified silhs_api_module.F90 (diff)
Commit a5246bded5cc0663b22915390a12a390b1c47c67 by Gunther Huebler
Adding column index to gr arrays, hard coding to 1 since sam only uses single column calls.
The file was modified SRC/SGS_CLUBB/clubb_sgs.F90 (diff)
Commit b283dcad1f9b9a9c6574f5c7466bd8125a80a917 by 37674341+huebleruwm
Removing the zt2zm interface from clubb_api and making the api calls just redirect to the grid class interface for it.
The file was modified clubb_api_module.F90 (diff)
Commit 64ef912040e0e808923bb5c9354e39c0d4ddbe87 by 37674341+huebleruwm
Pushing column loop into mean advection procedures.
The file was modified advance_wp2_wp3_module.F90 (diff)
The file was modified advance_windm_edsclrm_module.F90 (diff)
The file was modified advance_xp2_xpyp_module.F90 (diff)
The file was modified mono_flux_limiter.F90 (diff)
The file was modified mean_adv.F90 (diff)
The file was modified advance_xm_wpxp_module.F90 (diff)
The file was modified advance_xm_wpxp_module.F90 (diff)
Commit dd7ed27deff26acabf5edfe1932224e64ae68f5e by 37674341+huebleruwm
Moving above/below index of grid weights to last dimension.
The file was modified grid_class.F90 (diff)
The file was modified turbulent_adv_pdf.F90 (diff)
The file was modified mean_adv.F90 (diff)
The file was modified advance_wp2_wp3_module.F90 (diff)
The file was modified mono_flux_limiter.F90 (diff)
Commit 2813c59e885fa41ced8cbb7d9fe47eabd62d61d8 by Gunther Huebler
Hardcoding 1 into uses of gr arrays where single column versions of gr is used.
The file was modified SRC/SGS_CLUBB/stat_clubb.F90 (diff)
The file was modified SRC/MICRO_M2005_UWM/microphysics.F90 (diff)
The file was modified SRC/SGS_CLUBB/sgs.F90 (diff)
The file was modified SRC/SGS_CLUBB/clubb_sgs.F90 (diff)
The file was modified SRC/micro_field_utils.F90 (diff)
Commit 61e346b94dc205f46ddb43e037f2758a535a20b3 by 37674341+huebleruwm
Pushing loop into fill_holes.
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
The file was modified advance_xm_wpxp_module.F90 (diff)
The file was modified fill_holes.F90 (diff)
The file was modified advance_xp2_xpyp_module.F90 (diff)
The file was modified advance_wp2_wp3_module.F90 (diff)
The file was modified advance_xm_wpxp_module.F90 (diff)
Commit 27148d170d4f0c61c1aac3756f86bc63294b71ed by Gunther Huebler
Making compatible with latest clubb change.
The file was modified SRC/micro_field_utils.F90 (diff)
The file was modified SRC/SGS_CLUBB/clubb_sgs.F90 (diff)
The file was modified SRC/MICRO_M2005_UWM/microphysics.F90 (diff)
Commit add842c9f5797774559dce57ce5f51a506523344 by 37674341+huebleruwm
Making linear_interpolated_azt_2D and linear_interpolated_azm_2D subroutines just to avoid a needless data copy.
The file was modified grid_class.F90 (diff)
Commit dc9e57ed7bdf35c97640ff0ddc87e39a6a51897b by 37674341+huebleruwm
Making update_xp2_mc 2D and creating interface for 1D calls.
The file was modified advance_xp2_xpyp_module.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
Commit ed460b8da54ec8c8672698204b962b1f2c0bba76 by noreply
Fixing units in stats_zt_module.F90

This change will be BIT_CHANGING because it will affect the descriptions of variables in the netcdf files, but will not change answers.
The file was modified stats_zt_module.F90 (diff)
Commit 8d3e4542fb9b0c14babe8621eca51648539827a8 by noreply
Fixing a bug in mono_flux_limiter.F90. (#1026)

* Fixing a bug in mono_flux_limiter.F90.  This code was outputting "xm" instead of "wpxp" in several places.

This commit is BIT_CHANGING since it will affect the netcdf output for these variables, even though there
is no real change to answers.

* Renaming wpthlp_entermfl to wpthlp_enter_mfl which is more consistent with other variable names.

This is BIT_CHANGING due to changing the name and description in the output netcdf files.

* Renaming a few more instances of wpthlp_entermfl to wpthlp_enter_mfl.
The file was modified stats_variables.F90 (diff)
The file was modified stats_zm_module.F90 (diff)
The file was modified mono_flux_limiter.F90 (diff)
The file was modified pdf_closure_module.F90 (diff)
Commit 9434be0736f63802f57dc200dad4c6eae62f68be by bmg2
I changed the w_up_in_cloud code in 2 ways:

1)  The denominator term is now the "cloudy updraft" frac in each
PDF component, rather than just the PDF component cloud_frac.  This
is more consistent with the quantity being integrated.

2)  I also added a w_down_in_cloud for cloudy downdraft velocity.

Since these fields are not output as part of standard stats, this
commit will be bit-for-bit for the normal CLUBB output files.
The file was modified pdf_closure_module.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
Commit d0bd6bf033fe043e0218e55cf4059316e0d308e4 by bmg2
I added stats output for w_down_in_cloud to all_stats.in.

Since this stat was not added to standard_stats.in, official results
will still be bit-for-bit.
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified pdf_closure_module.F90 (diff)
The file was modified stats_clubb_utilities.F90 (diff)
The file was modified stats_zt_module.F90 (diff)
The file was modified stats_variables.F90 (diff)
Commit 429cdca64b054f2191b7656e76d1aefbe7c8c502 by bmg2
Modified for the latest changes to CLUBB.
The file was modified SRC/SGS_CLUBB/clubb_sgs.F90 (diff)
Commit c3df4b35a3ea7f0a68ffd33562ab2df95948546e by cernikt
adding line to fix mpi configuration in micro drizzle test
The file was modified jenkins_tests/sam_micro_drizzle_intel_test/Jenkinsfile (diff)
Commit a7de6b09f4f0e09b48f663e2432b3e98b29bfe60 by bmg2
I altered the w_up_in_cloud and w_down_in_cloud code so that a
thresholding is used similar to what is seen in the cloud fraction
and cloud water code.  If the PDF component mean of w more than
the maximum allow number of standard deviations away from 0, the
PDF component is either all-updrafty or all-downdrafty, and the
code avoids expensive computations where large magnitude values
can potentially be fed into ERF or EXP.

Of course, the results are not bit-for-bit with the previous version,
meaning that there are some situations where these thresholds come
into effect.  However, plots of all cases show no visible differences
in w_up_in_cloud and w_down_in_cloud.

Since w_up_in_cloud and w_down_in_cloud are not included in normal
stats output, this commit does not change the bit-for-bitness of
CLUBB code.
The file was modified pdf_closure_module.F90 (diff)
Commit 493cf3aafada57c53b1508b2b5990ce0a7dcafea by bmg2
I have optimized the new w_up_in_cloud and w_down_in_cloud code by
only doing repeated operations one time and then saving them as a
local variable.

Since the numerical order of operations changes for the argument
to the EXP term, the results will differ at the level of numerical
round-off, making this revision not bit-for-bit with the last revision.
This only affects the w_up_in_cloud and w_down_in_cloud statistical
output variables, which in turn are not output as part of
standard_stats.in.
The file was modified pdf_closure_module.F90 (diff)
Commit ab4282b0f6e0a3a1e3404836c96121fb79a872d4 by 37674341+huebleruwm
Refactored fill_holes_vertical to make GPUization simple. This is BIT_CHANGING, but results are bit-for-bit when using -O0 optimization, thus it is not answer changing. The first pass over each grid column will not parallelize well, the k-loop needs to be done in serial. Maximum parallelization has been exposed for the global hole-filling though, at the cost of occasionally doing unneccesary calculations. larson-group/clubb#972.
The file was modified clubb_api_module.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified fill_holes.F90 (diff)
The file was modified advance_xp2_xpyp_module.F90 (diff)
The file was modified advance_wp2_wp3_module.F90 (diff)
The file was modified advance_xm_wpxp_module.F90 (diff)
Commit b0eeb2ebed4160829305c9a13bc60818b045fb22 by 37674341+huebleruwm
Removing fill_holes_multiplicative and replacing magic numbers with parameters from constants_clubb. larson-group/clubb#972
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified advance_wp2_wp3_module.F90 (diff)
The file was modified advance_xm_wpxp_module.F90 (diff)
The file was modified fill_holes.F90 (diff)
The file was modified advance_xp2_xpyp_module.F90 (diff)
The file was modified constants_clubb.F90 (diff)
Commit 0a21a67e8c0d8373ae4315241b338842259b1d69 by 37674341+huebleruwm
Moving vertical_avg and vertical_integral to advance_helper_module. larson-group/clubb#972
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified fill_holes.F90 (diff)
The file was modified stats_clubb_utilities.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
The file was modified mono_flux_limiter.F90 (diff)
The file was modified advance_helper_module.F90 (diff)
Commit 18677b4114aff3b59943c43e9207fc7a8630060e by 37674341+huebleruwm
Moving vertical_avg and vertical_integral to advance_helper_module. larson-group/clubb#972
The file was modified latin_hypercube_driver_module.F90 (diff)
Commit b0a22e3ceb0eee4eb4acd9cec7fb987f1c26040d by Gunther Huebler
Making compatible with latest clubb change.
The file was modified SRC/MICRO_M2005_UWM/microphysics.F90 (diff)
The file was modified SRC/micro_field_utils.F90 (diff)
The file was modified SRC/SGS_CLUBB/clubb_sgs.F90 (diff)
Commit 09720448888edc3117ea736bfa140a0c60bd6f04 by 37674341+huebleruwm
Removing elementalness from sat_vapor_press_liq and making interal procedures subroutines rather than functions to prevent unneccesary data copies. Doing the same for thlm2T_in_K since it is often used in conjunction with sat_vapor_press_liq. Bit-for-bit confirmed with O0 using all single column cases with or without l_diag_Lscale_from_tau, and with cam_coarse_res. larson-group/clubb#972
The file was modified advance_helper_module.F90 (diff)
The file was modified pdf_closure_module.F90 (diff)
The file was modified mixing_length.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified saturation.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
The file was modified stats_clubb_utilities.F90 (diff)
The file was modified T_in_K_module.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
The file was modified saturation.F90 (diff)
The file was modified T_in_K_module.F90 (diff)
The file was modified grid_class.F90 (diff)
Commit bf79a8d55fe3ca7aacc106b68052a316cc3e359e by 37674341+huebleruwm
Adding initial subroutine calc_ice_cloud_frac_component.
The file was modified pdf_closure_module.F90 (diff)
Commit 60041d793c8fa3229f278a20ec6bdd9fc468f39f by 37674341+huebleruwm
Cleaning up new subroutine calc_liquid_cloud_frac_component, and making sat_mixrat_ice a subroutine that works the same way as sat_mixrat_liq. larson-group/clubb#972
The file was modified stats_clubb_utilities.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified pdf_closure_module.F90 (diff)
The file was modified saturation.F90 (diff)
The file was modified pdf_closure_module.F90 (diff)
Commit f2673f56e2eb850b910f74fa7f50ed589a9aebb3 by 37674341+huebleruwm
Removing these paratheses is BIT_CHANGING since it modifies the order of operations, but allows for the multiplication and subraction to be done in parallel for complex pipelines.
The file was modified saturation.F90 (diff)
Commit b480b13af511769f302c830635ad3f8c915ee90b by 37674341+huebleruwm
Improvements. Netcdf output is now functional and we can detect errors with multiple columns even when the standard output is identical.
The file was modified configurable_model_flags.in (diff)
Commit 88c58d4e28a3bc4094b7951c216637cac85846aa by 37674341+huebleruwm
Updating column num input in config flags. larson-group/clubb#1033
The file was modified configurable_model_flags.in (diff)
Commit 82413778356ea633e6af15192b30673e29973261 by 37674341+huebleruwm
Adding comments, setting to num_standalone_columns=1 by default, and preventing multicolumn output when l_stats=false. larson-group/clubb#1033
The file was modified configurable_model_flags.in (diff)
Commit fb2e67620ac50c35b5cf20cb5e18a1a96d504a86 by 37674341+huebleruwm
Improvements. Netcdf output is now functional and we can detect errors with multiple columns even when the standard output is identical.
The file was modified output_netcdf.F90 (diff)
Commit b3d012fd57fce4fdfdba880ae6842e9b039143ee by Gunther Huebler
Namelists need to be closed with a '/', and omitting it will break many tests.
The file was modified configurable_model_flags.in (diff)
Commit d1147f62ff1c5ba047a6a5be4714968f253f2683 by Gunther Huebler
Making save variables in the multicol code threadprivate, this fixes the openmp test. Also changing the way we name and save the multicol output, this allows the parallel run to run with multiple columns. I've reflected the changes in comments where relevant. larson-group/clubb#1033
The file was modified configurable_model_flags.in (diff)
Commit 7e894655b82f891a5b60ba4e0e6670ff3c0fa5b0 by noreply
Adds commented-out line that prevents the monotonic flux

limiter from acting on rtm.  The comments are included to remind us of how to do this in case we choose to do so in the future.
The file was modified advance_xm_wpxp_module.F90 (diff)
Commit 4ba46bf534c3ed32f9227282f94b102f7006918e by noreply
Updating monotonic flux limiter code to remove spikes. (#1038)

Also putting a commented out code change in advance_xm_wpxp,
in case shutting of the flux limiter entirely for rtm is preferred.

See https://github.com/NCAR/amwg_dev/discussions/134 for discussion.

This commit will be BIT_CHANGING although the differences are only
obvious in sensitive cases like arm_97.
The file was modified mono_flux_limiter.F90 (diff)
Commit f30bf0d926336356fdb094f944cfb1174a1ec225 by noreply
Creating new flags to control monotonic flux limiter (#1039)

* Creating new flags to control monotonic flux limiter and the IF statement fix for the spikes found in CAM.

* Removing no-longer-necessary logical l_mono_flux_lim.

* Adding requested changes from PR (intent statements and editing error statement).

* Accidentally set flag to false. Changing to true.
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
The file was modified advance_xm_wpxp_module.F90 (diff)
The file was modified model_flags.F90 (diff)
The file was modified mono_flux_limiter.F90 (diff)
Commit f508c31512366c87e72e70ee26ba6d5e99869d18 by noreply
Creating new flags to control monotonic flux limiter (#1039)

* Creating new flags to control monotonic flux limiter and the IF statement fix for the spikes found in CAM.

* Removing no-longer-necessary logical l_mono_flux_lim.

* Adding requested changes from PR (intent statements and editing error statement).

* Accidentally set flag to false. Changing to true.
The file was modified configurable_model_flags.in (diff)
Commit 2c455c0350775d45d36b6ab922e4bbc56664e09e by 59519056+bstephens82
Updating for changes to CLUBB.  See https://github.com/larson-group/clubb/pull/1039.
The file was modified SRC/SGS_CLUBB/clubb_sgs.F90 (diff)
Commit 3bdab2ca5a22a425da62f8cae4c8e01097f44fa8 by bmg2
I am adding cloudy_updraft_frac and cloudy_downdraft_frac as
outputs to the calculate_w_up_in_cloud code.

These fields are non-interactive for the standard set of cases.
Thus, all cases are bit-for-bit identical.

However, for the w_up_in_cloud and w_down_in_cloud results themselves,
it is possible that results might not be bit-for-bit since
the location of the max(eps, ...) clipping in the denominator
is changed.  However, results should not be appreciable different.
The file was modified clubb_api_module.F90 (diff)
The file was modified pdf_closure_module.F90 (diff)
The file was modified stats_zt_module.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified stats_clubb_utilities.F90 (diff)
The file was modified stats_variables.F90 (diff)
Commit e8059d328d577d6e12021e8fbf6cc081b91e6eb8 by bmg2
Updating SAM-CLUBB for the latest changes to the call to
advance_clubb_core_api.
The file was modified SRC/SGS_CLUBB/clubb_sgs.F90 (diff)
Commit 200706b307be40ceb42f6121bd0f7d1be2b116c6 by noreply
Minor adjustment to eliminate spikes in thlm tendencies from the monotonic flux limiter. (#1043)

See https://github.com/NCAR/amwg_dev/discussions/134.

This commit will be BIT_CHANGING. Differences are mainly noticeable in the more sensitive cases.
The file was modified mono_flux_limiter.F90 (diff)
Commit 952c923222bf8901dc9b388f286872a73e6c609d by 37674341+huebleruwm
Making interface for matrix solvers.
The file was modified advance_xp2_xpyp_module.F90 (diff)
The file was addedmatrix_solver_wrapper.F90
The file was modified advance_wp2_wp3_module.F90 (diff)
The file was modified advance_windm_edsclrm_module.F90 (diff)
The file was modified mono_flux_limiter.F90 (diff)
The file was addedpenta_lu_solver.F90
The file was modified advance_xm_wpxp_module.F90 (diff)
The file was modified lapack_wrap.F90 (diff)
Commit 6d88c22f60109415cdedeafb87ef6ab88ca1b07e by 37674341+huebleruwm
Making tridag tridiag everywhere, making sol soln, and adding intent comments.
The file was modified advance_xm_wpxp_module.F90 (diff)
The file was modified lapack_wrap.F90 (diff)
The file was modified penta_lu_solver.F90 (diff)
The file was modified matrix_solver_wrapper.F90 (diff)
Commit 5baacd72ae885dceeb8a535b8d190c8be73a6931 by noreply
A different way of dealing with monotonic flux limiter spikes (#1046)

* A different way of dealing with monotonic flux limiter spikes in CAM, by increasing the value
of thl_tol_mfl.  ALso reverts the earlier fix.  BIT_CHANGING.

See https://github.com/NCAR/amwg_dev/discussions/134#discussioncomment-4165447.

* Reducing value of thl_tol_mfl from 0.5 to 0.2.

This will be BIT_CHANGING.
The file was modified constants_clubb.F90 (diff)
The file was modified mono_flux_limiter.F90 (diff)
Commit 269513ec0b95ddee2bff960d0c74a4ceccb8feef by noreply
Steffens tuner fixer branch (#1041)

* Clubb ticket #1025: Implemented changes dealing with pdf_params%thl1/2 and wp2 floating point errors occurring in tuning runs. BIT_CHANGING
- Added command-line option -t/--tuner to compile.bash which enables the -DTUNER compiler flag.
- Added line to gfortran compilation config file to easily disable openMP
- Added a couple error messages and cleaned up some instances of error handling in src/error.F90, src/clubb_driver.F90, and src/CLUBB_core/advance_clubb_core_module.F90
- Added global constant wp2_max in src/CLUBB_core/constants_clubb.F90 which sets the upper bound for wp2
- In pdf_closure, added sanity checks for pdf_params%thl1/2 (>=190K, <=1000K)
- Added debug warning in src/CLUBB_core/advance_wp2_wp3_module.F90 when wp2 is clipped.
- Added wp2_sfc clipping in src/CLUBB_core/sfc_varnce_module.F90
- Added debug_level_check to NaN check in clubb_driver.F90
- Added mention of the new compiler option to the README
The file was modified advance_wp2_wp3_module.F90 (diff)
The file was modified sfc_varnce_module.F90 (diff)
The file was modified grid_class.F90 (diff)
The file was modified numerical_check.F90 (diff)
The file was modified constants_clubb.F90 (diff)
The file was modified pdf_closure_module.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
Commit ece810498e8b5d2d7ad8157b3c7b973b50c4ff69 by Gunther Huebler
Making compatible with latest clubb changes.
The file was modified SRC/SGS_CLUBB/clubb_sgs.F90 (diff)
Commit 127883ca8f0dce455123056d72efb0cdef4794ca by 37674341+huebleruwm
Adding capability to change matrix solving method via clubb_config_flags.
The file was modified advance_wp2_wp3_module.F90 (diff)
The file was modified mono_flux_limiter.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified advance_xm_wpxp_module.F90 (diff)
The file was modified matrix_solver_wrapper.F90 (diff)
The file was modified model_flags.F90 (diff)
The file was modified advance_xp2_xpyp_module.F90 (diff)
The file was modified advance_windm_edsclrm_module.F90 (diff)
Commit d8493869b48641432cac85c681884b5d5bf203a6 by 37674341+huebleruwm
Fixing small bug, need to pass _copy arrays to prevent lapack mangling the real ones.
The file was modified matrix_solver_wrapper.F90 (diff)
Commit dfe3de1dce4262b2b40a10da8d6f76de1feb3d88 by 37674341+huebleruwm
Adding capability to change matrix solving method via clubb_config_flags.
The file was modified configurable_model_flags.in (diff)
Commit 4588198937b2b4dcc148fc980125b5ea87fa3354 by 37674341+huebleruwm
Making GPU and CPU versions of the penta_lu solver the same as discussed in larson-group/clubb#1024.
The file was modified penta_lu_solver.F90 (diff)
Commit 9e641b5d2bbeb4f1e6b070989ca087a65367101f by Gunther Huebler
Replacing $ with & in namelist definition to make consistent.
The file was modified configurable_model_flags.in (diff)
Commit 65b7c1dd0001b0cb328a3b61ffa72e228b14c91c by bmg2
I added "smooth" max clipping for invrs_tau_shear, which is a variable
that is supposed to be positive definite, yet was obtaining negative
values at the model lower boundary owing to linear extension at the
boundaries as part of the linear interpolation call.

This change is BIT_CHANGING.
The file was modified mixing_length.F90 (diff)
Commit ac76c76a553d2c52a3156258c0afe41f66bea786 by 37674341+huebleruwm
ADG1_pdf_driver subroutine port with OpenACC

Added OpenACC related flags in linux_x86_64_nvhpc_casper.bash
You can enable/disable OpenACC compilation using OPENACC=true/false.
Added OpenACC directives in ADG1_pdf_driver subroutine.
The file was modified adg1_adg2_3d_luhar_pdf.F90 (diff)
Commit 512e68baec75eb6f5abc36582d6407fb9dceb189 by 37674341+huebleruwm
Replacing old elemental ADG1_w_closure with new GPUized one. Making G_unit tests work with new version. Also making mixt_frac_max_mag a scalar since it was only being used as such. larson-group/clubb#1049
The file was modified adg1_adg2_3d_luhar_pdf.F90 (diff)
Commit 936783d00f3c1e950c0092e31b019249b16042f7 by bmg2
I can now safely remove all the "ifdef E3SM" statements from CLUBB's
parameters_tunable.F90.  This code is now located in the clubb_intr.F90
portion of E3SM.
The file was modified parameters_tunable.F90 (diff)
Commit 38f9da3d580e38623856fb89bf73e274c5207f79 by 37674341+huebleruwm
Pushing column loop into lapack wrap.
The file was modified lapack_wrap.F90 (diff)
The file was modified matrix_solver_wrapper.F90 (diff)
Commit 21426fea400c37cfd10dbde5beb0f96690a2f838 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 saturation.F90 (diff)
The file was modified mixing_length.F90 (diff)
The file was modified constants_clubb.F90 (diff)
The file was modified model_flags.F90 (diff)
Commit 38b63ff28ea145707d4ee1d9469013ee20b1697b 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 advance_clubb_core_module.F90 (diff)
The file was modified saturation.F90 (diff)
The file was modified mixing_length.F90 (diff)
The file was modified model_flags.F90 (diff)
Commit 9f86ec344fcdd14a084c6249520c33815e225c24 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 mono_flux_limiter.F90 (diff)
Commit a5ae081b3485ebbd6b470a1bf077eaf8ba2a2979 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 modified lapack_wrap.F90 (diff)
The file was modified penta_lu_solver.F90 (diff)
The file was modified model_flags.F90 (diff)
The file was addedtridiag_lu_solver.F90
The file was modified matrix_solver_wrapper.F90 (diff)
Commit 79e3b2b05f93ffc04d514aad915c1a0aaec0f45f 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 mixing_length.F90 (diff)
The file was modified adg1_adg2_3d_luhar_pdf.F90 (diff)
Commit 466f229f2b977abcc4be9ac96c4ac11b818d1d37 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 adg1_adg2_3d_luhar_pdf.F90 (diff)
The file was modified saturation.F90 (diff)
The file was modified stats_clubb_utilities.F90 (diff)
Commit ef8ea9df21e00777179b628e5deaf68842411ecd by 37674341+huebleruwm
Pushing column loop into calculate_thvm
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified calc_pressure.F90 (diff)
Commit b0a3a8fc353a232b661ebe6fa26c264d59904993 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 calc_pressure.F90 (diff)
Commit 6f870bb99c6f94145ebef421ea0435ac083e84f1 by Gunther Huebler
Removing update_pressure from public list. This was causing compilation crashes. RESOLVED:8c7230fecb877d04fb129ef5e143e0993b4b29b1
The file was modified calc_pressure.F90 (diff)
Commit 4ed2ca7249d959da9e95b40faf2475fb3322f174 by 37674341+huebleruwm
GPUizing some helping procedures.
The file was modified grid_class.F90 (diff)
The file was modified mean_adv.F90 (diff)
The file was modified turbulent_adv_pdf.F90 (diff)
The file was modified saturation.F90 (diff)
Commit 5543d4fdcd60911bcef0658fc693b9ddc50a0e4a 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 adg1_adg2_3d_luhar_pdf.F90 (diff)
Commit 02732556bd0ed380f305bb59f5e421e5a4c615a8 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 pdf_closure_module.F90 (diff)
The file was modified pdf_utilities.F90 (diff)
Commit 74d62d932283ec7f668d1ab7a7eb5cf4c2518e31 by bmg2
Adding wp3_on_wp2_cfl_num to CLUBB's output stats.
The file was modified stats_zm_module.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified stats_clubb_utilities.F90 (diff)
The file was modified stats_variables.F90 (diff)
Commit 2cfb4126e2acaad338d58387801f2f0e69f2be66 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 adg1_adg2_3d_luhar_pdf.F90 (diff)
The file was modified pdf_closure_module.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
Commit 90851771d55ebaeb104a3bd7edae92ffd4a248a6 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 pdf_closure_module.F90 (diff)
Commit 61ea0db56546ea2946cb3c0ee368fd57752c1451 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 turbulent_adv_pdf.F90 (diff)
The file was modified adg1_adg2_3d_luhar_pdf.F90 (diff)
The file was modified pdf_utilities.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified mean_adv.F90 (diff)
The file was modified saturation.F90 (diff)
The file was modified mixing_length.F90 (diff)
The file was modified pdf_closure_module.F90 (diff)
The file was modified grid_class.F90 (diff)
Commit fdf454198c75d605df4d989599620e23c42135fe 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 mono_flux_limiter.F90 (diff)
Commit e2ffb7330b8d80d9d895759c6a1781239ec00141 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 advance_clubb_core_module.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
The file was modified sfc_varnce_module.F90 (diff)
The file was modified parameter_indices.F90 (diff)
The file was modified parameters_tunable.F90 (diff)
Commit ea8e240b701e58890146b050319eb71c919a70e0 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 tunable_parameters.in (diff)
Commit a1e67efa7d98dfad48c03bfbc3d73585bd9dc457 by benjamin.andrew.stephens
Updating for changes to CLUBB.  See PR #1072.
The file was modified SRC/SGS_CLUBB/clubb_sgs.F90 (diff)
Commit 1463a2c08c088d8c28aaf6831e88e234b76bdddd 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 pdf_closure_module.F90 (diff)
The file was modified sigma_sqd_w_module.F90 (diff)
The file was modified Skx_module.F90 (diff)
The file was modified T_in_K_module.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
Commit 6dd01b5920350c08035fa76d513f4086340a43f7 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 advance_clubb_core_module.F90 (diff)
Commit f635d227db08b38aa005bebbc8d0e63c4d6ea9ce 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 advance_clubb_core_module.F90 (diff)
Commit adba51a83aea7bd6e044720c58e4d27596b235fa 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 saturation.F90 (diff)
The file was modified pdf_utilities.F90 (diff)
The file was modified Skx_module.F90 (diff)
The file was modified T_in_K_module.F90 (diff)
The file was modified mixing_length.F90 (diff)
The file was modified adg1_adg2_3d_luhar_pdf.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified pdf_closure_module.F90 (diff)
The file was modified mean_adv.F90 (diff)
The file was modified grid_class.F90 (diff)
The file was modified turbulent_adv_pdf.F90 (diff)
The file was modified sigma_sqd_w_module.F90 (diff)
The file was modified parameters_model.F90 (diff)
Commit 7435d1c799f340302393782cc58d5f7eaeb608ef 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 model_flags.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified advance_wp2_wp3_module.F90 (diff)
The file was modified clip_explicit.F90 (diff)
Commit 43c7d40b518380bcd2ac664595a15a9d60fc1e23 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 configurable_model_flags.in (diff)
Commit 16fcc9ba1c2ab85f00a4d798dccf7a59cbfc718b 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 advance_clubb_core_module.F90 (diff)
The file was modified model_flags.F90 (diff)
The file was modified mixing_length.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
The file was modified advance_helper_module.F90 (diff)
Commit bbdd1ade0e614bb47e5341e8f9fb0f853320cd37 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 configurable_model_flags.in (diff)
Commit 0c36e4d0e18216f9e07c93f9d23a4ee6cda7772b by bmg2
Updated for recent changes to CLUBB.
The file was modified SRC/SGS_CLUBB/clubb_sgs.F90 (diff)
Commit 7b3e07a340d0a20ceb50121b98b17575a70940d1 by cernikt
changing tunable_parameters
The file was modified tunable_parameters.in (diff)
Commit 75f7b52f068621eb5ee822dd7949639fefcebe59 by cernikt
changing tunable_parameters
The file was modified tunable_parameters.in (diff)
Commit f0d6b74bd5227cb61694f641b178a1d9d7a22f27 by cernikt
changing tunable_parameters
The file was modified tunable_parameters.in (diff)
Commit 781ef9dfc3079f5d20cf22f044eac5970443c1b9 by noreply
Advance xm wpxp gpuization (#1077)

* Initial commit for GPUizing advance_xm_wpxp.

* GPUizing fill_holes_vertical

* 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.

* 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.

* Adding default(present) to all acc loop statements. Also adding azt to a copyin statement, which was missed previously. All BFB.

* Incemental update, not well tested yet.

* Removing some copies and making the sclr_dim change.

* Fixing a bug that only seemed detectable with astex_a209. We need to pass only single arrays to functions, calling ddzt( nz, ngrdcol, gr, rho_ds_zt * K_zt_nu ) was resulting in rho_ds_zt * K_zt_nu being evluated on the CPU, but the values were only valid on the GPU. So we need to evaluate that expression on the GPU, save it into an array (currently K_zt_nu_tmp), then pass that to ddzt.

* GPUizing calc_turb_adv_range

* GPUizing mono_flux_limiter

* Cleaning up data statments and a couple other things.

* Updated for some different options.

* More updates needed for various options.

* Reverting accidental flag change

* Should be the final changes, all options tested now.

* Replacing some comments in monoflux limiter, and also modifying it to make it BFB on CPUs. Also changing incorrect error conditions on tridiag.

* Adding max_x_allowable to update host statement, missed previous.

* Properly naming tmp variables and variables calculated from ddzt and ddzm start with ddzt_ and ddzm_.

* Replacing constants with named ones from constants_clubb.

* Replacing hard coded numbers in lhs variables representing the number of bands they contain with fortran parameters.
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified advance_helper_module.F90 (diff)
The file was modified parameters_model.F90 (diff)
The file was modified clip_explicit.F90 (diff)
The file was modified mean_adv.F90 (diff)
The file was modified turbulent_adv_pdf.F90 (diff)
The file was modified diffusion.F90 (diff)
The file was modified matrix_solver_wrapper.F90 (diff)
The file was modified mono_flux_limiter.F90 (diff)
The file was modified advance_xm_wpxp_module.F90 (diff)
The file was modified fill_holes.F90 (diff)
The file was modified grid_class.F90 (diff)
Commit 4e5ef2859907a8a3e8b44fea718de72c509ae1a4 by Gunther Huebler
Small tweaks to fix some GPU bugs. Some variables were uninitialized on the CPU while we were saving them. This could only have been caught by comparing consecutive runs and checking _zt and _zm files, even then few cases were having problems.
The file was modified advance_xm_wpxp_module.F90 (diff)
Commit 9552ab496758875cdb5dff86d47d80e2d3a7cb0f by Gunther Huebler
Fixing a labelling error in redirect_interpolated_azt_2D and similar procedures, since this interpolates to zt the input should be zm. I think this was my fault, so I cleaned all the zt2zm and zm2zt things up to make it a little nicer. Also ordered the routines _k _1D _2D to make it easier to jump around, it was a bit confusing as they were out of order and the typo really made it hard.
The file was modified grid_class.F90 (diff)
Commit c3bec1875abeade74fe0dd0cd38cb5361e7cac8f by Gunther Huebler
Making it so sclr_tol is set to 0 before the specified sclr_tol_in. This is so that it is initialized to 0 in the case that sclr_dim = 0, since now we are setting it to have a minimum allocation size of 1 and would otherwise have a garbage value. This is what broke the clubb_openmp_gfortran_test.
The file was modified parameters_model.F90 (diff)
Commit 40a65a54f061974152b9431e88a562d557f70dc5 by noreply
Lscale GPUization (#1079)

* Making 2 new functions zm2zt2zm and zt2zm2zt to handle smoothing by interpolation. Replaced the spots in clubb I know that uses this to smooth things. This is just a nice to have and could allow for easy optimizations in the future by inlining the interpolations. All cases BFB on CPU and GPU, checked all relevant options too.

* GPUizing diagnose_Lscale_from_tau

* Removing some unused variables.

* Moving acc data statements from calc_Lscale_directly up to advance_clubb_core.

* Removing an unused variable.

* GPUizing the l_smooth_min_max option.

* GPUizing l_avg_Lscale

* Changes to variable names to avoid gross long names only used once.
The file was modified clip_explicit.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified mixing_length.F90 (diff)
The file was modified grid_class.F90 (diff)
The file was modified advance_helper_module.F90 (diff)
Commit 7094e3620ee063af2bd55a8f072cb32ce3858c4b by Gunther Huebler
gfortran does not like intent(out) specifiers for functions.
The file was modified grid_class.F90 (diff)
Commit e12416aef4fd25ee8f843abab95e16d9a186d57e by noreply
GPUizing Various Small Routines (#1080)

* GPUizing compute_Cx_fnc_Richardson

* GPUizing term_wp2_splat and term_wp3_splat

* GPUizing xp3_LG_2005_ansatz

* GPUizing calculate_thvm

* GPUizing pvertinterp even though I don't think we care about the l_do_expldiff_rtm_thlm flag

* Fixing bug. Setting l_do_expldiff_rtm_thlm causes us to use edsclrm, so we need to also ensure that edsclrm > 1 (1 because it uses a edsclr_dim-1 index)

* Pushing some data statements up the call tree.
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified Skx_module.F90 (diff)
The file was modified sigma_sqd_w_module.F90 (diff)
The file was modified calc_pressure.F90 (diff)
The file was modified advance_helper_module.F90 (diff)
The file was modified interpolation.F90 (diff)
Commit 0dbf4fc79c628d0d783a67b545a14792662177a3 by cernikt
This commit is a commit that changes absolutely nothing. It is meant to trigger a change in the git update scripts, so that I can start the commit message logging in the autocommit updates larson-group/sys_admin#797
The file was modified grid_class.F90 (diff)
Commit fb9b5e177deabcd39ce0cf36b7b1f0fd883f4af6 by cernikt
This commit is a commit that changes absolutely nothing. It is meant to trigger a change in the git update scripts, so that I can start the commit message logging in the autocommit updates larson-group/sys_admin#797
The file was modified math_utilities.F90 (diff)
Commit 8360118ab54c355ad8a86ed330ade644c4bdcbd8 by cernikt
this is another commit that cahnges nothing that will trigger the gitUpdate scripts
The file was modified interpolation.F90 (diff)
Commit fa866723ef299b5e7c3574bb3f45f38f3fcb07f5 by cernikt
adding an update that changes nothing and is just a test for the autoupdate script
The file was modified clip_explicit.F90 (diff)
Commit e7a5c0ce02567906f9003eb1b1a1cf5ca94bca4c by noreply
Making CLUBB's splatting scheme implicit and smoother (#1075)

* Introducing rough implicit splatting scheme into CLUBB.  Not yet implicit for wp3.

* Implementing implicit splatting for wp3.

* Further improvements to implicit splatting code, including

- smoothing of the BV freq used for splatting
- adding a new variable 'bv_freq_sqd_splat' to stats
- add the new variable to pyplotgen standard output

See PR #1075 and issue #994.

* Some cleanup.

* More cleanup, and adding comments.

* More comments.

* Updating implicit splatting scheme.

* Updates to resolve PR requests.

Updates associated with implicit splatting will be BIT_CHANGING.
The file was modified stats_zm_module.F90 (diff)
The file was modified advance_xp2_xpyp_module.F90 (diff)
The file was modified stats_variables.F90 (diff)
The file was modified advance_wp2_wp3_module.F90 (diff)
The file was modified sfc_varnce_module.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified advance_helper_module.F90 (diff)
Commit 08475cfca3f2571fc6342c8137f1c64d61bd6857 by noreply
Calc sfc varnce GPUization (#1081)

* Initial loop push for calc_sfc_varnce

* BIT_CHANGING:3b086a40085284aa49c71d32c001d20153a8ddb4 the last commit is bit changing for only some cases and only when using higher than -02 optimization. uf min seems to be the first calculation that starting to differ bitwise. Using the check_multicol script confirms the differences are small.

* Adding a tweak to surface values in the extra columns. This helped me check calc_sfc_varance, since we were not changing any arrays that would've affected calculations there.

* Small optimization, making wstar and ustar2 scalars.

* GPUizing calc_sfc_varnce

* Removing conditional around some stats calls. Now we will always save sfc values to stats, because this will change stats files when gr%zm(i,1) > sfc_elevation, this is potentially BIT_CHANGING.

* Merging with latest clubb changes and making work on GPUs again.

This contained 2 commits that are BIT_CHANGING in some situations.
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified advance_helper_module.F90 (diff)
The file was modified sfc_varnce_module.F90 (diff)
Commit e462b213d8d0ca63221050f70a6ff8a52467b203 by benjamin.andrew.stephens
Reducing C_wp2_splat to 0.25 (from 2.0) for new implicit splatting code.

Also fixing bug that shows up when l_brunt_vaisala_freq_moist = T.  This
will hopefully help to get some failing CAM tests running again.

See #1074 and PR #1075 for info.

This is BIT_CHANGING for all cases due to the new tunable parameter value.
The file was modified tunable_parameters.in (diff)
Commit 3daa3257c2033ab03757a3c5bed4d780fae45770 by benjamin.andrew.stephens
Reducing C_wp2_splat to 0.25 (from 2.0) for new implicit splatting code.

Also fixing bug that shows up when l_brunt_vaisala_freq_moist = T.  This
will hopefully help to get some failing CAM tests running again.

See #1074 and PR #1075 for info.

This is BIT_CHANGING for all cases due to the new tunable parameter value.
The file was modified advance_helper_module.F90 (diff)
Commit a9af25eeab72b59dae5bd30bd315b35c8c78961a by cernikt
Removed Space From clip_explicit

This is another commit that changes absolutely nothing, and only exists to test autocommit changes
The file was modified clip_explicit.F90 (diff)
Commit a7df38330f8cf210f542a395c8b1df60b166859b by cernikt
making changes to trigger autoudpate for test, these commits do nothing

here is a body to the commit as well
The file was modified calendar.F90 (diff)
Commit c5d25471ddb6daf201a8dc99ed95aca1b1f6091c by cernikt
making changes to trigger autoudpate for test, these commits do nothing

here is a body to the commit as well
The file was modified math_utilities.F90 (diff)
Commit 571c3fab16ab4f1315e272fa536064a8dc4720f0 by cernikt
Here is another commit that changes nothing

Here is the body
The file was modified calendar.F90 (diff)
Commit 10561ea5166e8f1045de302b117e2d6526332337 by cernikt
Here is another commit that changes nothing

Here is the body
The file was modified math_utilities.F90 (diff)
Commit 81f82f5ff2f9a5f7047d2c810aeff0ac5c296b43 by cernikt
change to trigger updates

this is the last batch
The file was modified endian.F90 (diff)
Commit c2e0cf01861d6d2e292f0cc51c24a83c8ab1e711 by cernikt
change to calc pressure to trigger autoupdate

body
The file was modified calc_pressure.F90 (diff)
Commit 8287750b397ac2e5d927bb4efe23a830f94c4362 by noreply
GPUizing Lscale_width_vert_avg. Loops have been restructured for simplicity, and algorithm has a different starting value to avoid k dependency. Results are BFB. (#1083)

The file was modified advance_clubb_core_module.F90 (diff)
The file was modified advance_helper_module.F90 (diff)
Commit c7c530d40612ef299f0a4a02b7c19b9141ff7991 by noreply
GPUizing most of advance_clubb_core (#1084)

The file was modified advance_clubb_core_module.F90 (diff)
Commit f5f1d7adc31786cff8a7f24873958345b989d143 by noreply
advance_wp2_wp3 with explicitly managed memory  (#1085)

* GPUizing most of advance_clubb_core

* GPUizing most of advance_wp2_wp3 based off Supreeths openacc branch

* Cleanup and small fixes.

* Converting data statement to declare statement to return the return.

* Small changes to prevent data copies
The file was modified advance_wp2_wp3_module.F90 (diff)
The file was modified clip_explicit.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
Commit 78ebf2ff4d7e6b804bf322a713fe95448a09291d by noreply
advance_xp2_xpyp with explicitly managed memory (#1086)

* GPUizing most of advance_clubb_core

* GPUizing most of advance_wp2_wp3 based off Supreeths openacc branch

* Cleanup and small fixes.

* Converting data statement to declare statement to return the return.

* Small changes to prevent data copies

* Initial advance_xp2_xpyp GPUization, adapted from Supreeth's branch, clubb_openacc, to work without managed memory.

* Small cleanup

* Tweaks to reduce data copies

* Small change

* More GPUization and some cleanup

* Final little fixes

* Removing magic logicals
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified advance_xp2_xpyp_module.F90 (diff)
Commit 3f3703f99ebea92453249f1d9614b64ea1fdc6be by noreply
advance_windm_edsclrm with explicitly managed memory (#1087)

* Initial commit for advance_windm_edsclrm adapted from Supreeth's branch

* Final fixes

* Accidentally undid fix

* Returning returns
The file was modified advance_helper_module.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified advance_windm_edsclrm_module.F90 (diff)
Commit 543091c32308120ba9fe22873baa81050ac05292 by noreply
Moving data statements to outter most parts of clubb and little fix in advance_wp2_wp3 (#1088)

The file was modified advance_clubb_core_module.F90 (diff)
The file was modified advance_wp2_wp3_module.F90 (diff)
Commit 63cc96a19e5b8bd47a08bdc600b8d158741ab2e9 by noreply
Data movement improvement (#1089)

* Various reductions in data movement

* Bug fix

* Optimizations to fill_holes, this involves precalculating a multiplication an a division, so this is BIT_CHANGING.

* Missed a small part

* Small fix
The file was modified advance_wp2_wp3_module.F90 (diff)
The file was modified clip_explicit.F90 (diff)
The file was modified advance_xp2_xpyp_module.F90 (diff)
The file was modified advance_helper_module.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified fill_holes.F90 (diff)
The file was modified mono_flux_limiter.F90 (diff)
The file was modified pdf_closure_module.F90 (diff)