Skip to content
Success

Changes

Summary

  1. Lots of small loop pushes (details)
  2. 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)
  3. Small refactoring to mfl_xm_lhs, just removing need to pass in gr. (details)
  4. Final loop pushes needed before the grid change. (details)
  5. Replacing use of gr with nz (details)
  6. Replacing use of gr with nz (details)
  7. added -heap-arrays tag to FFlags on Makefile to fix jenkins testing error (details)
  8. Makefile came with a few other accidental changes, these have been corrected. (details)
  9. 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)
  10. 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)
  11. Adding column index to gr arrays, hard coding to 1 since sam only uses single column calls. (details)
  12. Removing the zt2zm interface from clubb_api and making the api calls just redirect to the grid class interface for it. (details)
  13. Pushing column loop into mean advection procedures. (details)
  14. Little loop push (details)
  15. Moving above/below index of grid weights to last dimension. (details)
  16. Hardcoding 1 into uses of gr arrays where single column versions of gr is used. (details)
  17. Pushing loop into fill_holes. (details)
  18. Forgot small change. (details)
  19. Making compatible with latest clubb change. (details)
  20. Making linear_interpolated_azt_2D and linear_interpolated_azm_2D subroutines just to avoid a needless data copy. (details)
  21. Making update_xp2_mc 2D and creating interface for 1D calls. (details)
  22. Fixing units in stats_zt_module.F90 (details)
  23. Fixing a bug in mono_flux_limiter.F90. (#1026) (details)
  24. Fixing a bug. (details)
  25. I changed the w_up_in_cloud code in 2 ways: (details)
  26. I added stats output for w_down_in_cloud to all_stats.in. (details)
  27. Modified for the latest changes to CLUBB. (details)
  28. adding line to fix mpi configuration in micro drizzle test (details)
  29. I altered the w_up_in_cloud and w_down_in_cloud code so that a (details)
  30. I have optimized the new w_up_in_cloud and w_down_in_cloud code by (details)
  31. 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)
  32. Removing fill_holes_multiplicative and replacing magic numbers with parameters from constants_clubb. larson-group/clubb#972 (details)
  33. Moving vertical_avg and vertical_integral to advance_helper_module. larson-group/clubb#972 (details)
  34. Moving vertical_avg and vertical_integral to advance_helper_module. larson-group/clubb#972 (details)
  35. Making compatible with latest clubb change. (details)
  36. 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)
  37. Adding comments. (details)
  38. Adding initial subroutine calc_ice_cloud_frac_component. (details)
  39. 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)
  40. Comment update (details)
  41. 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)
  42. Improvements. Netcdf output is now functional and we can detect errors with multiple columns even when the standard output is identical. (details)
  43. Updating column num input in config flags. larson-group/clubb#1033 (details)
  44. Adding comments, setting to num_standalone_columns=1 by default, and preventing multicolumn output when l_stats=false. larson-group/clubb#1033 (details)
  45. Improvements. Netcdf output is now functional and we can detect errors with multiple columns even when the standard output is identical. (details)
  46. Namelists need to be closed with a '/', and omitting it will break many tests. (details)
  47. 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)
  48. Adds commented-out line that prevents the monotonic flux (details)
  49. Updating monotonic flux limiter code to remove spikes. (#1038) (details)
  50. Creating new flags to control monotonic flux limiter (#1039) (details)
  51. Creating new flags to control monotonic flux limiter (#1039) (details)
  52. Updating for changes to CLUBB.  See https://github.com/larson-group/clubb/pull/1039. (details)
  53. I am adding cloudy_updraft_frac and cloudy_downdraft_frac as (details)
  54. Updating SAM-CLUBB for the latest changes to the call to (details)
  55. Minor adjustment to eliminate spikes in thlm tendencies from the monotonic flux limiter. (#1043) (details)
  56. Making interface for matrix solvers. (details)
  57. Making tridag tridiag everywhere, making sol soln, and adding intent comments. (details)
  58. A different way of dealing with monotonic flux limiter spikes (#1046) (details)
  59. Steffens tuner fixer branch (#1041) (details)
  60. Making compatible with latest clubb changes. (details)
  61. Adding capability to change matrix solving method via clubb_config_flags. (details)
  62. Fixing small bug, need to pass _copy arrays to prevent lapack mangling the real ones. (details)
  63. Adding capability to change matrix solving method via clubb_config_flags. (details)
  64. Making GPU and CPU versions of the penta_lu solver the same as discussed in larson-group/clubb#1024. (details)
  65. Replacing $ with & in namelist definition to make consistent. (details)
  66. I added "smooth" max clipping for invrs_tau_shear, which is a variable (details)
  67. ADG1_pdf_driver subroutine port with OpenACC (details)
  68. 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)
  69. I can now safely remove all the "ifdef E3SM" statements from CLUBB's (details)
  70. Pushing column loop into lapack wrap. (details)
  71. Restructuring and Porting of Compute_mixing_length subroutine(Phase 1) (#1052) (details)
  72. Restructuring and Porting of Compute_mixing_length subroutine(Phase 2) (#1054) (details)
  73. 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)
  74. Adding tridiag_lu solver (#1056) (details)
  75. Adding OpenACC data directives for mixing length and adg routines (details)
  76. 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)
  77. GPUizing sat_mixrat_ice_2D. (details)
  78. Pushing column loop into calculate_thvm (details)
  79. 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)
  80. Removing update_pressure from public list. This was causing compilation crashes. RESOLVED:8c7230fecb877d04fb129ef5e143e0993b4b29b1 (details)
  81. GPUizing some helping procedures. (details)
  82. 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)
  83. Porting pdf_closure subroutine with OpenACC (#1059) (details)
  84. Adding wp3_on_wp2_cfl_num to CLUBB's output stats. (details)
  85. Removing usage of gr from pdf_closure. It was only ever used for nz, which is now fed in directly. (details)
  86. Clubb ticket #1025: Implemented way to make esa tuner reproducible, h… (#1068) (details)
  87. Gpu updates (#1070) (details)
  88. Implements Thomas Toniazzo's bug fix for spike removal (details)
  89. Making 'a_const' into a CLUBB tunable parameter. (#1072) (details)
  90. Making 'a_const' into a CLUBB tunable parameter. (#1072) (details)
  91. Updating for changes to CLUBB.  See PR #1072. (details)
  92. Pdf closure driver gpuization (#1071) (details)
  93. 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)
  94. 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)
  95. Small GPU fixes (#1076) (details)
  96. Code changes to implement modificiations on wp3 clippings (details)
  97. Code changes to implement modificiations on wp3 clippings (details)
  98. This commit contains code changes to implement modifications on limiters in three places: (details)
  99. This commit contains code changes to implement modifications on limiters in three places: (details)
  100. Updated for recent changes to CLUBB. (details)
  101. changing tunable_parameters (details)
  102. changing tunable_parameters (details)
  103. changing tunable_parameters (details)
  104. Advance xm wpxp gpuization (#1077) (details)
  105. 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)
  106. 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)
  107. 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)
  108. Lscale GPUization (#1079) (details)
  109. gfortran does not like intent(out) specifiers for functions. (details)
  110. GPUizing Various Small Routines (#1080) (details)
  111. 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)
  112. 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)
  113. this is another commit that cahnges nothing that will trigger the gitUpdate scripts (details)
  114. adding an update that changes nothing and is just a test for the autoupdate script (details)
  115. Making CLUBB's splatting scheme implicit and smoother (#1075) (details)
  116. Calc sfc varnce GPUization (#1081) (details)
  117. Reducing C_wp2_splat to 0.25 (from 2.0) for new implicit splatting code. (details)
  118. Reducing C_wp2_splat to 0.25 (from 2.0) for new implicit splatting code. (details)
  119. Removed Space From clip_explicit (details)
  120. making changes to trigger autoudpate for test, these commits do nothing (details)
  121. making changes to trigger autoudpate for test, these commits do nothing (details)
  122. Here is another commit that changes nothing (details)
  123. Here is another commit that changes nothing (details)
  124. change to trigger updates (details)
  125. change to calc pressure to trigger autoupdate (details)
  126. 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)
  127. GPUizing most of advance_clubb_core (#1084) (details)
  128. advance_wp2_wp3 with explicitly managed memory  (#1085) (details)
  129. advance_xp2_xpyp with explicitly managed memory (#1086) (details)
  130. advance_windm_edsclrm with explicitly managed memory (#1087) (details)
  131. Moving data statements to outter most parts of clubb and little fix in advance_wp2_wp3 (#1088) (details)
  132. Data movement improvement (#1089) (details)
  133. CLUBB ticket #1069: (#1092) (details)
  134. CLUBB ticket #1069: (#1092) (details)
  135. Added bv_efold changes for CLUBB API calls (details)
  136. Changing "Fnc" to "fnc" for consistency and easy search. (details)
  137. Memory usage optimizations (#1091) (details)
  138. Making compatible with latest clubb changes. (details)
  139. Openacc tweaks and cleanup (#1097) (details)
  140. Loop to `nz-1` instead of `nz` because upper boundary condition (details)
  141. Openacc tweaks and cleanup 2 (#1099) (details)
  142. Bit changing changes (#1104) (details)
  143. Adding wp_coef and wp_coef_zt to acc data statements. (details)
  144. Bv efold bit changing (#1095) (details)
  145. Fixed some oversights for the bv_efold commits and increased string length for tuning field names for invrs_tau variables - CLUBB ticket #1069 (#1106) (details)
  146. BIT_CHANGING! brunt_vaisala_freq_sqd_mixed now replaces brunt_vaisala_freq_sqd for later calculations - CLUBB ticket #1102 (details)
  147. BIT_CHANGING for lscale setup. Updated configurable_model_flags.in and model_flags.F90 - CLUBB ticket #1102 (#1108) (details)
  148. Likely BIT_CHANGING because of added output fields. Added code outputting C6_term and different Brunt Vaisala frequencies to disk - CLUBB ticket #1102 (#1109) (details)
  149. Changed sqrt_Ri_zm to Ri_zm in preparation of changing the exponent for calculation of invrs_tau_wpxp_zm in mixing_length.F90 - CLUBB ticket #1102 (#1110) (details)
  150. BIT_CHANGING! Removed Richardson_num and all corresponding code - CLUBB ticket #1102 (#1111) (details)
  151. Tunable Richardson number exponent - CLUBB ticket #1102 (#1114) (details)
  152. Tunable Richardson number exponent - CLUBB ticket #1102 (#1114) (details)
  153. Raw-copy updating SRC/CLUBB (details)
  154. Raw-copy updating CLUBB_PARAMETERS (details)
  155. Deletes svn id tag, will trigger host-model nightly tests. (details)
  156. Raw-copy updating SRC/CLUBB (details)
  157. Update clubb_sgs.F90 (details)
  158. Add library calls to allow SAM to compile with new icx intel compiler (#154) (details)
  159. Remove svn id tag in order to trigger nightly tests. (details)
  160. Removed 3rd svn id tag in order to trigger nightly tests (details)
  161. Finally removing scratch variables. (#1116) (details)
  162. Latest batch of non-bit changing code changes - CLUBB ticket #1115 (#1119) (details)
  163. BIT_CHANGING! Fixed some issues with wpxp_Ri_exp, changed z_displace value - CLUBB ticket #1115 (#1120) (details)
  164. Updated CLUBB so that adj_low_res_nu (which can be called on its own (details)
  165. Updated the CLUBB interface for recent changes to CLUBB. (details)
  166. Removing begin_height and end_height as outputs from setup_grid. They (details)
  167. Updated for recent changes to CLUBB. (details)
  168. Z displace tunable (#1122) (details)
  169. Z displace tunable (#1122) (details)
  170. Update clubb_sgs.F90 (details)
  171. Making work with latest clubb changes. (details)
  172. Changing stat_indices to stats_metadata_type (details)
  173. New Stats Indices Type (#1118) (details)
  174. New Stats Indices Type (#1118) (details)
  175. Changing order of sqrt and **3 to improve stability, see clubb#1126. Since this is a change to the order of operations, it is BIT_CHANGING. (details)
  176. Setting the minimum tolerance to be epsilon, this is BIT_CHANGING but only for single precision. See larson-group/clubb#1126 (details)
  177. BIT_CHANGING! Updated taus code calculations - CLUBB ticket #1115 (#1125) (details)
  178. Added non-trapezoidal zm interpolation for cloud_frac (#1127) (details)
  179. Re-adjusted cap for invrs_tau_wpxp in src/CLUBB_core/mixing_length.F90 (details)
  180. Adding boundary conditions for the wp3_term_ta_ADG1_lhs subroutine. (details)
  181. For single loop vectors, removing the "collapse(2)" from the acc statements. (details)
  182. Added new Brunt-Väisälä frequency plots to pyplotgen's VariableGroupTaus (details)
  183. Adds commas to fix bug (details)
  184. Updating the code to set the bottom of the thermodynamic level grid for (details)
  185. Commit to enforce a fixed-point boundary condition of wp3=0 at (details)
  186. With wp3 now being set to a fixed-point boundary condition value (details)
  187. Threadpublic (#1133) (details)
  188. Threadpublic (#1133) (details)
  189. Threadpublic (#1133) (details)
  190. Making compatible with latest clubb change. (details)
  191. Removing awkward nan check in favor of a default for Ncnp2_on_Ncnm2 (details)
  192. Fixing bug by changing saturation_equation to match namelist argument, also adding it to namelist. (details)
  193. Adding new argument list variables to openacc copyin statements (details)
  194. Setting l_smooth_Heaviside_tau_wpxp to .true. by default (details)
  195. I am altering the mean advection code in preparation for ghost point (details)
  196. Fixing tridiag solver bug. See https://github.com/larson-group/clubb/issues/1139 (details)
  197. Slight rework to acc data statements. This allows us to use return calls in advance_clubb_core again. See https://github.com/larson-group/clubb/issues/1139 (details)
  198. Fixing small GPU stats bug (details)
  199. Changing xm to out in mono flux solver. There is no need for it to be inout, and it confused me for a bit so I'm fixing it. (details)
  200. Adding clubb specific compiler flag -DCLUBB_GPU, intended for use with openmp or openacc running on the GPU. Also adding a compiler flags, -DCUDA, and case statment for generating random numbers in silhs. (details)
  201. Adding clubb specific compiler flag -DCLUBB_GPU, intended for use with openmp or openacc running on the GPU. Also adding a compiler flags, -DCUDA, and case statment for generating random numbers in silhs. (details)
  202. Now that the value of wp3 is being set to a boundary value of 0 (details)
  203. This is (amazingly) BIT_CHANGING. The differences are due to some compiler optimizations, see https://github.com/larson-group/clubb/pull/1133\#issuecomment-1865156979. (details)
  204. Removing backslashes. These should be slashes, but gnu,intel,nvidia generate code that treats slashes as whitespace and backslashes as a character, while cray treats backslashes as whitespace as well. This is easily fixed by using quotes, and in the meantime we will change the backslashes to forward slashes. See https://github.com/larson-group/clubb/issues/1138\#issuecomment-1910844013 (details)
  205. Fixing a bug where the Lscale used in calculating the damping (details)
  206. adding equals sign cuz I've had it up to here with this typo! (details)
  207. fixing bug, name of wm_zt was left as "wm" (details)
  208. Add blank line in order to trigger Jenkins tests for CAM (details)
  209. Small acc tweaks (#1144) (details)
  210. Removes comment about Numerical Recipes (details)
  211. OpenMP Optimizations (#1146) (details)
  212. Adding comment to explain unusual code choice. (details)
  213. Adding sum part to comment (details)
  214. Putting ngrdcol in clubb_params (#1147) (details)
  215. Fixing bug with C6 parameters, see https://github.com/larson-group/clubb/pull/1147. This is technically BIT_CHANGING, but only when C6thl != C6thlb and l_diag_Lscale_from_tau=.false. (details)
  216. Making compatible with latest clubb changes. (details)
  217. At the ghost point below the surface, which does not matter in (details)
  218. The code that advances um and vm when l_predict_upwp_vpwp is turned off (details)
  219. It was discovered that the location where the ghost point values (details)
  220. It was discovered that the location where the ghost point values (details)
  221. I accidentally committed a couple things in the previous commit (details)
  222. While it doesn't affect results, I fixed what appears to be an (details)
  223. I am updating the loop in subroutine diagnose_xpwp so that it doesn't (details)
  224. This commit is being made to keep the stats zt output from the (details)
  225. I am committing a bug fix to the code that calculates mixed Brunt (details)
  226. I am committing a stats change to the ghost point values of zt (details)
  227. Committing some thresholding around positive-definite fields after (details)
  228. Changing the linear interpolation in the zt2zm function at momentum (details)
  229. I'm changing the way ddzt handles the derivative over momentum level 1. (details)
  230. Moved the ghost-point setting of xm(1) = xm(2) to the last line (details)
  231. Optional arguments are just best sometimes (#1150) (details)
  232. Fixing bug. RESOLVED:556370c6406e6b943b88affbe7728a5036b1ba22, this was catchable by using debugging flags, but seems to otherwise cause no issues. Investigating I found that it only clips the below ground level, so that must not have been affecting other levels. This is technically BIT_CHANGING since it resolves an issue. (details)
  233. Making num_draw_points in fill_holes a constant. We were already using this value as a constant everywhere, but passing a constant by argument list makes it difficult/impossible for a compiler to optimize using that constant, unless it does inlining. Now, rather than passing the constant num_hf_draw_points (or sometimes a hardcoded 2) we just use num_hf_draw_points directly from constants_clubb. This massively improves the performance of a loop in fill holes when using nvhpc+omp, which was the motivation for this, but should also improve the performance on CPUs. Everything is BFB. (details)
  234. Making compatible with latest clubb changes. (details)
  235. I am committing code that effectively ignores the values of certain (details)
  236. I am moving the advance_xm_wpxp setting of xm(1) = xm(2) from the (details)
  237. Adding extra exclamation to acc statement to comment it out. (details)
  238. gr%zm should be used here instead of gr%zt, since these are (details)
  239. Thermodynamic-level (zt) values should be used with zt-variable (details)
  240. Fixing small GPU bug in advance_xm, also fixing a bug with sclrpthvp that's only detectable when were running 1 column on GPUs. (details)
  241. Fixing a bug. Does not change default results. (details)
  242. The variable rc_coef_zm needed to be passed in and saved from (details)
  243. Making the f in f90 capital for consistency. (details)
  244. Making the only change required to make clubb run with openacc in cam. (details)
  245. Ri zm calc (Part 1) - Combine and move call to  calc_brunt_vaisala_freq_sqd (#1154) (details)
  246. Ri_zm calc (Part 1.5) - Adjusted signature of diagnose_Lscale_from_tau #1145 (#1155) (details)
  247. Adds blank line so that I can note BIT_CHANGING:5df5fcb3d6c51d6af2e8017d270336eefa75ad3e (details)
  248. Ri_zm calc (Part 2) - Move the brunt_vaisala smoothing into calc_brunt_vaisala_freq_sqd (#1156) (details)
  249. Spack updates (#156) (details)
  250. This code in adj_low_res_nu was using the ghost point when (details)
  251. I am updating the SILHS code that calculates k_lh_start to work (details)
  252. I am committing changes to stats output for cloud_cover, rcm_in_layer, (details)
  253. There were furhter issues found with the k_lh_start code. (details)
  254. Ri_zm calc (Part 3) - Moving calculations for Ri_zm out of diagnose_Lscale_from_taus (#1157) (details)
  255. In my previous commit, I changed the domain of the maxloc commands (details)
  256. This commit brings the stats output from the all cases run with (details)
  257. Committing a change that will initialize this set of variables (details)
  258. Making a change to the l_C2_cloud_frac option with advance_xp2_xpyp. (details)
  259. Fixing bug. qclvar copying is handled by the api, but we were deleting it with an unstructured data statement. I added this due as a fix before thinking qclvar was a local variable, which happened because I mixed up the CLUBB_CAM and CLUBBND_CAM flags. https://github.com/larson-group/cam/issues/175 (details)
  260. removing cheyenne-related content and adding new content for (details)
  261. Fixing GPU bug. There is a vertical dependency with wpxp. This is what was breaking the ECT test, see larson-group/cam#175 (details)
  262. Fixing bugs that are only caught when not outputting w_[up/down]_in_cloud stats or if l_host_applies_sfc_fluxes=.true. The l_host_applies_sfc_fluxes=.true. isn't testable (at least not in clubb_standalone), and I just caught that visually. The cloudy_updraft_frac and cloudy_downdraft_frac fields not being set were only noticable in cam, because we always run with iw_up_in_cloud>0 and iw_down_in_cloud>0 to output stats. (details)
  263. Moving pdf_params copying to copyin. This is the data structure that contains pointers, and these pointers will be different on the host and device, so it is bad in theory to copy the structure back to the CPU as it might overwrite cpu memory pointers with gpu memory pointers. In practice though I've seen no problems caused by this, I'm just making this commit preemptively, and it has already been tested with the ECT test. (details)
  264. Fixing mpirun command in the derecho and casper batch scripts. (details)
  265. Editing the LES setup script to give instructions for UCAR computers. (details)
  266. Added zt2zm2zt-smoothing to remove noise in MPACE_B winds (#1161) (details)
  267. Added zt2zm2zt-smoothing to remove noise in MPACE_B winds (#1161) (details)
  268. Moving PosInf to clubb_model_settings.F90 (details)
  269. Updated for ghostless version of CLUBB. (details)
  270. Updating to the latest version of CLUBB. (details)
  271. Nightly clubb plots (#1167) (details)
  272. Clubb ghost exorcism (#1159) (details)
  273. Clubb ghost exorcism (#1159) (details)
  274. Variable name correction in acc data statement. (details)
  275. Splitting zeros_vector into versions with nzt or nzm size to match sizes in subroutine. (details)
  276. Making radf size correct in api and clubb_driver. (details)
  277. Ri_zm calc (Part 4) - Implementing calc_Ri_zm (#1160) (details)
  278. Ri zm calc4 (#1168) (details)
  279. Well, this will probably anger the Grim Reaper, but I have finally (details)
  280. Change variables from a1 and a3 to a1_coef and a3_coef (details)
  281. change loop index to sclr and edsclr for sclr_dim and edsclr_dim (#1173) (details)
  282. Ri zm calc5 (#1175) (details)
  283. Removing duplicate definition of edsclr when CLUBB_CAM is defined. (details)
  284. Ri zm calc6 (#1177) (details)
  285. refactor code to remove compiler warnings for exceeding 100 characters per line and unused variables and parameters (#1179) (details)
  286. refactor code to remove compiler warnings for exceeding 100 characters per line and unused variables and parameters (#1179) (details)
  287. reduce compiler warnings (#1180) (details)
  288. reduce compiler warnings (#1180) (details)
  289. Removing the target attributes wherever possible. These are artifacts from when gr and the the stats types were globals, and got naively copied when these were pushed through the call stack. (details)
  290. Removing the target attributes wherever possible. These are artifacts from when gr and the the stats types were globals, and got naively copied when these were pushed through the call stack. (details)
  291. Remove radf variable from CLUBB call (details)
  292. Remove radf variable from call to CLUBB (details)
The file was modified advance_wp2_wp3_module.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 diffusion.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 mean_adv.F90 (diff)
The file was modified advance_windm_edsclrm_module.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 calc_pressure.F90 (diff)
The file was modified parameters_tunable.F90 (diff)
The file was modified sponge_layer_damping.F90 (diff)
The file was modified adg1_adg2_3d_luhar_pdf.F90 (diff)
The file was modified advance_helper_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 mixing_length.F90 (diff)
The file was modified mono_flux_limiter.F90 (diff)
The file was modified diffusion.F90 (diff)
The file was modified stats_clubb_utilities.F90 (diff)
The file was modified advance_xm_wpxp_module.F90 (diff)
The file was modified clip_explicit.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
The file was modified grid_class.F90 (diff)
The file was modified pdf_closure_module.F90 (diff)
The file was modified advance_xp2_xpyp_module.F90 (diff)
The file was modified fill_holes.F90 (diff)
The file was modified pos_definite_module.F90 (diff)
The file was modified advance_windm_edsclrm_module.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified advance_xp3_module.F90 (diff)
The file was modified setup_clubb_pdf_params.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 silhs_api_module.F90 (diff)
The file was modified latin_hypercube_driver_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_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 advance_xm_wpxp_module.F90 (diff)
The file was modified advance_xp2_xpyp_module.F90 (diff)
The file was modified mean_adv.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 mean_adv.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 mono_flux_limiter.F90 (diff)
The file was modified grid_class.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/clubb_sgs.F90 (diff)
The file was modified SRC/SGS_CLUBB/sgs.F90 (diff)
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/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 advance_wp2_wp3_module.F90 (diff)
The file was modified advance_xm_wpxp_module.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
The file was modified advance_xp2_xpyp_module.F90 (diff)
The file was modified fill_holes.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/SGS_CLUBB/clubb_sgs.F90 (diff)
The file was modified SRC/MICRO_M2005_UWM/microphysics.F90 (diff)
The file was modified SRC/micro_field_utils.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 clubb_api_module.F90 (diff)
The file was modified advance_xp2_xpyp_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 mono_flux_limiter.F90 (diff)
The file was modified stats_zm_module.F90 (diff)
The file was modified stats_variables.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 advance_clubb_core_module.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
The file was modified pdf_closure_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 stats_clubb_utilities.F90 (diff)
The file was modified stats_variables.F90 (diff)
The file was modified stats_zt_module.F90 (diff)
The file was modified pdf_closure_module.F90 (diff)
The file was modified advance_clubb_core_module.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 advance_wp2_wp3_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_clubb_core_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_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)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified constants_clubb.F90 (diff)
The file was modified fill_holes.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 clubb_api_module.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified advance_helper_module.F90 (diff)
The file was modified stats_clubb_utilities.F90 (diff)
The file was modified fill_holes.F90 (diff)
The file was modified mono_flux_limiter.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 clubb_api_module.F90 (diff)
The file was modified T_in_K_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 mixing_length.F90 (diff)
The file was modified advance_helper_module.F90 (diff)
The file was modified pdf_closure_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)
The file was modified saturation.F90 (diff)
The file was modified clubb_api_module.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 advance_clubb_core_module.F90 (diff)
The file was modified stats_clubb_utilities.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_xm_wpxp_module.F90 (diff)
The file was modified mono_flux_limiter.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified model_flags.F90 (diff)
The file was modified clubb_api_module.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 advance_clubb_core_module.F90 (diff)
The file was modified pdf_closure_module.F90 (diff)
The file was modified stats_variables.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
The file was modified stats_zt_module.F90 (diff)
The file was modified stats_clubb_utilities.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 mono_flux_limiter.F90 (diff)
The file was modified advance_windm_edsclrm_module.F90 (diff)
The file was addedpenta_lu_solver.F90
The file was modified advance_xm_wpxp_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_xp2_xpyp_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 matrix_solver_wrapper.F90 (diff)
The file was modified penta_lu_solver.F90 (diff)
The file was modified lapack_wrap.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 numerical_check.F90 (diff)
The file was modified grid_class.F90 (diff)
The file was modified pdf_closure_module.F90 (diff)
The file was modified sfc_varnce_module.F90 (diff)
The file was modified constants_clubb.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 advance_xm_wpxp_module.F90 (diff)
The file was modified mono_flux_limiter.F90 (diff)
The file was modified advance_windm_edsclrm_module.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified model_flags.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
The file was modified advance_xp2_xpyp_module.F90 (diff)
The file was modified matrix_solver_wrapper.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 matrix_solver_wrapper.F90 (diff)
The file was modified lapack_wrap.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 constants_clubb.F90 (diff)
The file was modified model_flags.F90 (diff)
The file was modified saturation.F90 (diff)
The file was modified mixing_length.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 model_flags.F90 (diff)
The file was modified saturation.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified mixing_length.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 penta_lu_solver.F90 (diff)
The file was addedtridiag_lu_solver.F90
The file was modified lapack_wrap.F90 (diff)
The file was modified model_flags.F90 (diff)
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 calc_pressure.F90 (diff)
The file was modified advance_clubb_core_module.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 turbulent_adv_pdf.F90 (diff)
The file was modified saturation.F90 (diff)
The file was modified grid_class.F90 (diff)
The file was modified mean_adv.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_utilities.F90 (diff)
The file was modified pdf_closure_module.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 grid_class.F90 (diff)
The file was modified pdf_closure_module.F90 (diff)
The file was modified saturation.F90 (diff)
The file was modified pdf_utilities.F90 (diff)
The file was modified adg1_adg2_3d_luhar_pdf.F90 (diff)
The file was modified turbulent_adv_pdf.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified mean_adv.F90 (diff)
The file was modified mixing_length.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 parameters_tunable.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified sfc_varnce_module.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
The file was modified parameter_indices.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 Skx_module.F90 (diff)
The file was modified sigma_sqd_w_module.F90 (diff)
The file was modified T_in_K_module.F90 (diff)
The file was modified pdf_closure_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 mixing_length.F90 (diff)
The file was modified sigma_sqd_w_module.F90 (diff)
The file was modified adg1_adg2_3d_luhar_pdf.F90 (diff)
The file was modified turbulent_adv_pdf.F90 (diff)
The file was modified mean_adv.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 T_in_K_module.F90 (diff)
The file was modified Skx_module.F90 (diff)
The file was modified saturation.F90 (diff)
The file was modified parameters_model.F90 (diff)
The file was modified pdf_utilities.F90 (diff)
The file was modified grid_class.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 advance_wp2_wp3_module.F90 (diff)
The file was modified clip_explicit.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 model_flags.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_helper_module.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)
The file was modified model_flags.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 mono_flux_limiter.F90 (diff)
The file was modified advance_helper_module.F90 (diff)
The file was modified grid_class.F90 (diff)
The file was modified diffusion.F90 (diff)
The file was modified matrix_solver_wrapper.F90 (diff)
The file was modified advance_xm_wpxp_module.F90 (diff)
The file was modified parameters_model.F90 (diff)
The file was modified turbulent_adv_pdf.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified clip_explicit.F90 (diff)
The file was modified mean_adv.F90 (diff)
The file was modified fill_holes.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 grid_class.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified mixing_length.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 sigma_sqd_w_module.F90 (diff)
The file was modified interpolation.F90 (diff)
The file was modified advance_helper_module.F90 (diff)
The file was modified Skx_module.F90 (diff)
The file was modified calc_pressure.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 sfc_varnce_module.F90 (diff)
The file was modified stats_variables.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 stats_zm_module.F90 (diff)
The file was modified advance_wp2_wp3_module.F90 (diff)
The file was modified advance_xp2_xpyp_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 sfc_varnce_module.F90 (diff)
The file was modified advance_helper_module.F90 (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 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 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_helper_module.F90 (diff)
The file was modified advance_clubb_core_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 clip_explicit.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified advance_wp2_wp3_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_clubb_core_module.F90 (diff)
The file was modified advance_windm_edsclrm_module.F90 (diff)
The file was modified advance_helper_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_xp2_xpyp_module.F90 (diff)
The file was modified advance_wp2_wp3_module.F90 (diff)
The file was modified pdf_closure_module.F90 (diff)
The file was modified mono_flux_limiter.F90 (diff)
The file was modified advance_helper_module.F90 (diff)
The file was modified fill_holes.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified clip_explicit.F90 (diff)
Commit 20ca5caead8ec3ad50ac7b996339efbcc48a6412 by noreply
CLUBB ticket #1069: (#1092)

- Added tunable parameter bv_efold
- Removed extraneous use statement in src/CLUBB_core/advance_xm_wpxp_module.F90
- Removed obsolete flag l_update_pressure from input/tunable_parameters_Lscale/configurable_model_flags.in
- Changed tmp_calc_min -> tmp_calc in src/CLUBB_core/advance_helper_module.F90
The file was modified clubb_api_module.F90 (diff)
The file was modified advance_xm_wpxp_module.F90 (diff)
The file was modified parameter_indices.F90 (diff)
The file was modified advance_helper_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 parameters_tunable.F90 (diff)
Commit e35cb4b162ef470d738d15bda20b2067721ac0b8 by noreply
CLUBB ticket #1069: (#1092)

- Added tunable parameter bv_efold
- Removed extraneous use statement in src/CLUBB_core/advance_xm_wpxp_module.F90
- Removed obsolete flag l_update_pressure from input/tunable_parameters_Lscale/configurable_model_flags.in
- Changed tmp_calc_min -> tmp_calc in src/CLUBB_core/advance_helper_module.F90
The file was modified tunable_parameters.in (diff)
Commit 919d552ce1c42bb871387acfa843579b984b81da by Vince Larson
Added bv_efold changes for CLUBB API calls
The file was modified SRC/SGS_CLUBB/clubb_sgs.F90 (diff)
Commit 42253d9234a3c885d4c8017fa21efee44b8d3f80 by benjamin.andrew.stephens
Changing "Fnc" to "fnc" for consistency and easy search.
The file was modified advance_clubb_core_module.F90 (diff)
Commit a10584a92f2734f4671151e039920a780f1ae1c1 by noreply
Memory usage optimizations (#1091)

* Fixing merge conflict

* Fixing a bug.

* Restoring correct default flag value

* Undoing changes that push stats variables into pdf_closure. That change may be included in a small future refactoring.

* Making same sclr_dim changes to hydromet_dim
The file was modified advance_xm_wpxp_module.F90 (diff)
The file was modified mixing_length.F90 (diff)
The file was modified advance_xp2_xpyp_module.F90 (diff)
The file was modified clip_explicit.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 advance_windm_edsclrm_module.F90 (diff)
Commit 4fc849e5411ca3918dfb306c5d93d6c5a82b1b15 by Gunther Huebler
Making compatible with latest clubb changes.
The file was modified SRC/SGS_CLUBB/clubb_sgs.F90 (diff)
Commit 08cf4c792a67a0b4866c749b34a4ac7a987a3198 by noreply
Openacc tweaks and cleanup (#1097)

* Chaning acc declare statements to acc enter data statement

* Making acc statements more consistent

* Making lapack useable while using openacc. Lapack is still run on the CPU

* Updating setup_clubb_core to now accept clubb_config_flags as an input, and adding warning in case clubb is running with lapack but was compiled with openacc.
The file was modified mixing_length.F90 (diff)
The file was modified sigma_sqd_w_module.F90 (diff)
The file was modified diffusion.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 clubb_api_module.F90 (diff)
The file was modified fill_holes.F90 (diff)
The file was modified matrix_solver_wrapper.F90 (diff)
The file was modified clip_explicit.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 advance_windm_edsclrm_module.F90 (diff)
The file was modified mono_flux_limiter.F90 (diff)
The file was modified turbulent_adv_pdf.F90 (diff)
The file was modified grid_class.F90 (diff)
The file was modified mean_adv.F90 (diff)
The file was modified interpolation.F90 (diff)
The file was modified advance_xp2_xpyp_module.F90 (diff)
The file was modified sfc_varnce_module.F90 (diff)
The file was modified advance_helper_module.F90 (diff)
Commit 40e8eb850e5cc930b2f734acf3504fb8d9e340a5 by noreply
Loop to `nz-1` instead of `nz` because upper boundary condition

is set in the lines immediately below.
The file was modified mean_adv.F90 (diff)
Commit 1238826836d00367458527d254d2b3c9d7f87e93 by noreply
Openacc tweaks and cleanup 2 (#1099)

* Making all end parallel directives specify end loop

* Replacing last acc declare in a procedure with acc enter/exit data commands

* Removing pure declarations, turns out they dont really improve performance and openmp isn't allowed within them.

* Adding explicit directives to penta_lu and tridiag_lu, as opposed to the previously used kernels directive. Also splitting up a loop to improve GPU performance.

* Splitting up a couple loops for performance reasons.

* Missed one somehow
The file was modified clip_explicit.F90 (diff)
The file was modified tridiag_lu_solver.F90 (diff)
The file was modified advance_windm_edsclrm_module.F90 (diff)
The file was modified mean_adv.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
The file was modified fill_holes.F90 (diff)
The file was modified corr_varnce_module.F90 (diff)
The file was modified grid_class.F90 (diff)
The file was modified advance_xp3_module.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 diffusion.F90 (diff)
The file was modified numerical_check.F90 (diff)
The file was modified advance_helper_module.F90 (diff)
The file was modified advance_wp2_wp3_module.F90 (diff)
The file was modified clip_semi_implicit.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 turbulent_adv_pdf.F90 (diff)
The file was modified calc_roots.F90 (diff)
The file was modified adg1_adg2_3d_luhar_pdf.F90 (diff)
The file was modified penta_lu_solver.F90 (diff)
Commit e9ae50fd67886661f7d03ab3549044e5c2c9517a by noreply
Bit changing changes (#1104)

* Moving functions called inside loops to their own 2D subroutines. This is for performance, but is also BIT_CHANGING.

* Correct range of values to calculate for term_dp1_lhs

* Comments and cleanup

* Slight change to Skx_func, this is mathematically equivalent but BIT_CHANGING. This is faster on GPUs, and doesn't seem to have a signficiant impact on CPU performance.

* Introducing wp_coef and wp_coef_zt to reduce needed computations. This changes order of operations, so it is BIT_CHANGING.
The file was modified advance_xp2_xpyp_module.F90 (diff)
The file was modified mean_adv.F90 (diff)
The file was modified Skx_module.F90 (diff)
Commit 6fa34ce2d5ff0c26b7dcf4fed129a8d32ce7dc69 by Gunther Huebler
Adding wp_coef and wp_coef_zt to acc data statements.
The file was modified advance_xp2_xpyp_module.F90 (diff)
Commit c0fdc2b307c5f63608c72f08ab493fce4516a741 by noreply
Bv efold bit changing (#1095)

BIT_CHANGING! Added e-folding code for mixed Brunt Vaisala frequency - CLUBB ticket #1069
- Included usage for bv_efold in src/CLUBB_core/advance_helper_module.F90
- Added intent(out) for correction_stability in subroutine calc_correction_stability
- Removed brunt_vaisala_freq_sqd_plus
- Idiot proofed interaction between l_diag_Lscale_from_tau and l_use_invrs_tau_N2_iso
- Moved stat_update_var(invrs_tau_wp3_zm) out of if ( l_diag_Lscale_from_tau )
- Fixed some typos in src/CLUBB_core/stats_zt_module.F90
- Added comment about to input_misc/tuner/README about t_variables adn input/stats/tuning_stats.in
The file was modified mixing_length.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified advance_helper_module.F90 (diff)
The file was modified stats_zt_module.F90 (diff)
Commit 4ebc70252b6ce52cfdb7883770217c34fd2e2107 by noreply
Fixed some oversights for the bv_efold commits and increased string length for tuning field names for invrs_tau variables - CLUBB ticket #1069 (#1106)

This commit is NOT bit changing
- Removed remaining mentions of brunt_vaisala_freq_sqd_plus
- Added assignment for invrs_tau_wp3_zm in Lscale mode in advance_clubb_core
- Increased length of string variables hoc_v, les_v, and t_variables in src/error.F90 to accomodate tuning for invrs_tau fields
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified advance_helper_module.F90 (diff)
Commit 395023c230e9f1ddaa7411d592718b573ab65d15 by noreply
BIT_CHANGING! brunt_vaisala_freq_sqd_mixed now replaces brunt_vaisala_freq_sqd for later calculations - CLUBB ticket #1102

Changes in src/CLUBB_core/mixing_length.F90:
- brunt_vaisala_freq_sqd_mixed is now used to calculate brunt_vaisala_freq_sqd_smth and brunt_vaisala_freq_sqd_clipped instead of brunt_vaisala_freq_sqd
- Removed 0.1 factor for bkgnd term in calculation of invrs_tau_xp2_zm
- Commented out clipping of invrs_tau_xp2_zm to 0.003 and lower out of cloud
The file was modified mixing_length.F90 (diff)
Commit 7afb2bd7070e5e83204950c8b94a12b73b8f88fd by noreply
BIT_CHANGING for lscale setup. Updated configurable_model_flags.in and model_flags.F90 - CLUBB ticket #1102 (#1108)

- Added new flags to inut/tunable_parameters_Lscale/configurable_model_flags.in
- Changed default setting for l_use_tke_in_wp3_pr_turb_term in model_flags.F90 from false to true
The file was modified model_flags.F90 (diff)
Commit 5256cf04633fd71551f6bd29ee0632494b611a93 by noreply
Likely BIT_CHANGING because of added output fields. Added code outputting C6_term and different Brunt Vaisala frequencies to disk - CLUBB ticket #1102 (#1109)

- Added C6_term and bv_freq fields to all_stats.F90 and standard_stats.F90
- Added new fields to VariableGroupTaus.py in pyplotgen
- Added calls to stat_update_var to advance_clubb_core_module.F90
- Modified stats_variables.F90 and stats_zm_module.F90 accordingly
The file was modified stats_variables.F90 (diff)
The file was modified stats_zm_module.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
Commit 0735b8dca68da8eec17c24fca269223d8756e97a by noreply
Changed sqrt_Ri_zm to Ri_zm in preparation of changing the exponent for calculation of invrs_tau_wpxp_zm in mixing_length.F90 - CLUBB ticket #1102 (#1110)

BIT_CHANGING! Changed sqrt_Ri_zm to Ri_zm in preparation of changing the exponent for calculation of invrs_tau_wpxp_zm in mixing_length.F90 - CLUBB ticket #1102
Changes in input/stats/all_stats.in, src/CLUBB_core/advance_clubb_core_module.F90, src/CLUBB_core/mixing_length.F90, src/CLUBB_core/stats_variables.F90, and src/CLUBB_core/stats_zm_module.F90
Ri_zm was added to input/stats/standard_stats.in
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified mixing_length.F90 (diff)
The file was modified stats_variables.F90 (diff)
The file was modified stats_zm_module.F90 (diff)
Commit 62e535382820e1ebdd77dbb79de655e217e552d9 by noreply
BIT_CHANGING! Removed Richardson_num and all corresponding code - CLUBB ticket #1102 (#1111)

This commit is BIT_CHANGING because:
1. the output field Richardson_num was removed.
2. Since the flag l_use_shear_turb_freq_sqd was removed, the variable shear_sqd is now always written to disk. That means previously, the outputted field shear_sqd was 0 everywhere whereas now it is not anymore. The calculation of shear_sqd within CLUBB did not change!
- Removed mentions in input/stats/all_stats.in and standards_stats.in
- Removed mentions in src/CLUBB_core/stats_variables.F90 and stats_zm_module.F90
- In src/CLUBB_core/advance_helper_module.F90 removed mentions to [i]Richardson_num[_clipped], as well as l_use_shear_turb_freq_sqd, l_Richardson_vert_avg, and turb_freq_sqd sinc those are only used for calculation of Richardson_num.
The file was modified stats_zm_module.F90 (diff)
The file was modified advance_helper_module.F90 (diff)
The file was modified stats_variables.F90 (diff)
Commit 4263da9f7ae792444654c9d5acefb27ba5db0e06 by noreply
Tunable Richardson number exponent - CLUBB ticket #1102 (#1114)

BIT_CHANGING! Added the exponent to the Richardson number in the calculation of the invrs_tau_wpxp threshold term in src/CLUBB_core/mixing_length.F90  to the list of tunable parameters.
This is bit changing due to the difference in Fortran between taking the sqrt and the .5th power.
The file was modified mixing_length.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
The file was modified parameters_tunable.F90 (diff)
The file was modified parameter_indices.F90 (diff)
Commit e59f7732ad64c2330f9a51fe673a2c471c1d85f3 by noreply
Tunable Richardson number exponent - CLUBB ticket #1102 (#1114)

BIT_CHANGING! Added the exponent to the Richardson number in the calculation of the invrs_tau_wpxp threshold term in src/CLUBB_core/mixing_length.F90  to the list of tunable parameters.
This is bit changing due to the difference in Fortran between taking the sqrt and the .5th power.
The file was modified tunable_parameters.in (diff)
Commit da7fedcbd01590aea425d6cffe7f60be0e1f1ca6 by root
Raw-copy updating SRC/CLUBB
The file was modified SRC/CLUBB/model_flags.F90 (diff)
The file was modified SRC/CLUBB/advance_helper_module.F90 (diff)
The file was modified SRC/CLUBB/parameters_tunable.F90 (diff)
The file was modified SRC/CLUBB/stats_variables.F90 (diff)
The file was modified SRC/CLUBB/clubb_api_module.F90 (diff)
The file was modified SRC/CLUBB/parameter_indices.F90 (diff)
The file was modified SRC/CLUBB/stats_zm_module.F90 (diff)
The file was modified SRC/CLUBB/mixing_length.F90 (diff)
The file was modified SRC/CLUBB/advance_clubb_core_module.F90 (diff)
Commit a94a7af5f49efba3664f7c4ef423b0ebcf573ddd by root
Raw-copy updating CLUBB_PARAMETERS
The file was modified CLUBB_PARAMETERS/tunable_parameters.in (diff)
Commit 1a7e15ee602ebadad150327e1e40ac59800ea1dc by noreply
Deletes svn id tag, will trigger host-model nightly tests.
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified SRC/CLUBB/advance_clubb_core_module.F90 (diff)
Commit 833289feb7ac2157c4ccf7e74b32313947cc17c5 by 42725900+domkesteffen
Update clubb_sgs.F90

Added CLUBB parameter wpxp_Ri_exp
The file was modified SRC/SGS_CLUBB/clubb_sgs.F90 (diff)
Commit d95570b09d8b83aa95560e42e4fd66b7e2899c32 by noreply
Add library calls to allow SAM to compile with new icx intel compiler (#154)

The file was modified SRC/cstuff.c (diff)
The file was modified SRC/TIMING/t_stop.c (diff)
Commit 8be88d0f94ca7883638a1e87415cb48dc0d03ca0 by noreply
Remove svn id tag in order to trigger nightly tests.
The file was modified advance_helper_module.F90 (diff)
Commit ffdd91c97979046cdbe2f9502cb3047a482c6da7 by noreply
Removed 3rd svn id tag in order to trigger nightly tests
The file was modified advance_windm_edsclrm_module.F90 (diff)
Commit 9ca3f47f2c7361719136ed64975e29e55f893626 by noreply
Finally removing scratch variables. (#1116)

* Finally removing scratch variables.

* Zeroing out below ground levels to prevent NaN in stats.
The file was modified stats_clubb_utilities.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
The file was modified stats_variables.F90 (diff)
Commit 22872a5139682034753065f97d05099ddf2e3a47 by noreply
Latest batch of non-bit changing code changes - CLUBB ticket #1115 (#1119)

- Added new folder input/tunable_parameters_tauMatchLscale/ for latest taus code setup reproducing the master Lscale output.
- Changes in src/CLUBB_core_mixing_length.F90:
   - Renamed ddzt_umvm -> ddzt_umvm_sqd
             ddzt_umvm_clipped -> ddzt_umvm_sqd_clipped
             sqrt_ddzt_umvm -> norm_ddzt_umvm
             smooth_sqrt_ddzt_umvm -> smooth_norm_ddzt_umvm
             Ri_zm_clipped -> Ri_zm_smooth in some places
   - Made some variable replacements for consistency's sake
- Fixed path of log files in run_scripts/run_bindiff_all.py
The file was modified mixing_length.F90 (diff)
Commit 337f2b0a17376a45c2c1ac2250b6cff75f15d6ad by noreply
BIT_CHANGING! Fixed some issues with wpxp_Ri_exp, changed z_displace value - CLUBB ticket #1115 (#1120)

- Removed commented lines from tunable_parameters.in file in input/tunable_parameters_tauMatchLscale
- Increased z_displace value from 10 to 25. This value was chosen so that the taus code with the parameter and flag settings in input/tunable_parameters_tauMatchLscale match the master Lscale output below clouds
- Fixed some issues with the new parameter wpxp_Ri_exp:
   - Moved new exponentiation to a place so that it emulates the previous version with sqrt(Ri_zm)
   - Adjusted code for l_smooth_min_max=true to match the default version
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified mixing_length.F90 (diff)
Commit f7c02bb877ebac54c69c91bc0bbde80bb9f84360 by bmg2
Updated CLUBB so that adj_low_res_nu (which can be called on its own
or called through calling setup_parameters) no longer uses
momentum_heights and thermodynamic_heights, but rather makes use
of gr%zm and gr%zt, which are always set and available by the
time the calls are made.
The file was modified clubb_api_module.F90 (diff)
The file was modified parameters_tunable.F90 (diff)
Commit e522e5115ef0c35a61e345d281508cabd4203d86 by bmg2
Updated the CLUBB interface for recent changes to CLUBB.
The file was modified SRC/SGS_CLUBB/clubb_sgs.F90 (diff)
Commit 6e985b7481ae287afeaf0a548e131482930840fe by bmg2
Removing begin_height and end_height as outputs from setup_grid. They
are only necessary as local variables inside of setup_grid.
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
The file was modified grid_class.F90 (diff)
Commit 933ddceb33a45238f8b639cdafca3bbe55c9c42a by bmg2
Updated for recent changes to CLUBB.
The file was modified SRC/SGS_CLUBB/clubb_sgs.F90 (diff)
Commit 3e0adc18b4f8221be03da5e8670357090c34fd4d by noreply
Z displace tunable (#1122)

CLUBB ticket #1115
Added the previously hard-coded z_displace as a tunable parameter.
The file was modified mixing_length.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
The file was modified parameters_tunable.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified parameter_indices.F90 (diff)
Commit 9d0394c0b8514426c19c923d998fcc49675afecd by noreply
Z displace tunable (#1122)

CLUBB ticket #1115
Added the previously hard-coded z_displace as a tunable parameter.
The file was modified tunable_parameters.in (diff)
Commit dbb2eecd8b43407d03d1901934aa82fbefcc452e by 42725900+domkesteffen
Update clubb_sgs.F90

Added z_displace as new tunable parameter
The file was modified SRC/SGS_CLUBB/clubb_sgs.F90 (diff)
Commit 1b990bc8ffd1260539b810327a7833de5ef9f61f by Gunther Huebler
Making work with latest clubb changes.
The file was modified SRC/SGS_CLUBB/clubb_sgs.F90 (diff)
The file was modified SRC/setdata_module.F90 (diff)
The file was modified SRC/SGS_CLUBB/sgs.F90 (diff)
The file was modified SRC/main.F90 (diff)
Commit c42bb744c90f9095306a9dbb3f6b43c52d81ca37 by Gunther Huebler
Changing stat_indices to stats_metadata_type
The file was modified SRC/SGS_CLUBB/sgs.F90 (diff)
The file was modified SRC/setdata_module.F90 (diff)
The file was modified SRC/main.F90 (diff)
The file was modified SRC/SGS_CLUBB/clubb_sgs.F90 (diff)
Commit 0eb82e3d60c5fd567e1f24a0015d2c6fd8f21069 by noreply
New Stats Indices Type (#1118)

* Grouping stats indices into a derived type and making that accessible globally, for now. This does not run yet, but a checkpoint I wish to save.

* Checkpoint to save

* Checkpoint

* It actually works now and is BFB with every case.

* Starting to push the new derived type through the argument list.

* The new dervied type, now stats_metadata, has been fed through the argument list.

* Moved l_stats_samp into stats_metadata

* Moved all the other stats_variables into stats_metadata

* Small cleanup

* Fixes a stats bug when calling compute_sample_mean in silhs.

* Arrays in stats_metadata need only be allocated once, but we may want to call the stats init routines to set up more stats variables. So now we check for allocation before allocating. Also made the stat_indices type publicly available through clubb_api.

* This should be initialized to 0. The new changes in cam were able to tease this out, which is a good sign.

* A couple more to initialize to zero.

* Moving stats_metadata to before stats_ variables in argument lists, just for consistency.

* Changing stat_indices to stats_metadata_type
The file was modified stats_lh_sfc_module.F90 (diff)
The file was modified mixing_length.F90 (diff)
The file was modified stats_variables.F90 (diff)
The file was modified precipitation_fraction.F90 (diff)
The file was modified stats_sfc_module.F90 (diff)
The file was modified clip_explicit.F90 (diff)
The file was modified mono_flux_limiter.F90 (diff)
The file was modified stats_zt_module.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)
The file was modified output_grads.F90 (diff)
The file was modified advance_xp3_module.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified numerical_check.F90 (diff)
The file was modified stats_zm_module.F90 (diff)
The file was modified stats_rad_zt_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 stats_clubb_utilities.F90 (diff)
The file was modified setup_clubb_pdf_params.F90 (diff)
The file was modified stats_rad_zm_module.F90 (diff)
The file was modified stats_lh_zt_module.F90 (diff)
The file was modified advance_helper_module.F90 (diff)
The file was modified fill_holes.F90 (diff)
The file was modified stats_type_utilities.F90 (diff)
The file was modified pdf_closure_module.F90 (diff)
The file was modified sfc_varnce_module.F90 (diff)
Commit 1fff41b95831158920098a46667c5bee20b406fd by noreply
New Stats Indices Type (#1118)

* Grouping stats indices into a derived type and making that accessible globally, for now. This does not run yet, but a checkpoint I wish to save.

* Checkpoint to save

* Checkpoint

* It actually works now and is BFB with every case.

* Starting to push the new derived type through the argument list.

* The new dervied type, now stats_metadata, has been fed through the argument list.

* Moved l_stats_samp into stats_metadata

* Moved all the other stats_variables into stats_metadata

* Small cleanup

* Fixes a stats bug when calling compute_sample_mean in silhs.

* Arrays in stats_metadata need only be allocated once, but we may want to call the stats init routines to set up more stats variables. So now we check for allocation before allocating. Also made the stat_indices type publicly available through clubb_api.

* This should be initialized to 0. The new changes in cam were able to tease this out, which is a good sign.

* A couple more to initialize to zero.

* Moving stats_metadata to before stats_ variables in argument lists, just for consistency.

* Changing stat_indices to stats_metadata_type
The file was modified output_2D_samples_module.F90 (diff)
The file was modified latin_hypercube_driver_module.F90 (diff)
The file was modified silhs_api_module.F90 (diff)
Commit 94ceac8b9273b15c668961304300e0f042f9844c by Gunther Huebler
Changing order of sqrt and **3 to improve stability, see clubb#1126. Since this is a change to the order of operations, it is BIT_CHANGING.
The file was modified Skx_module.F90 (diff)
Commit 80f7ee00a316e443c95eeb822d14eb5ba4b10b83 by Gunther Huebler
Setting the minimum tolerance to be epsilon, this is BIT_CHANGING but only for single precision. See larson-group/clubb#1126
The file was modified constants_clubb.F90 (diff)
Commit 55b6329613ecf69fa8cd632b83ddc2dbf60f6471 by noreply
BIT_CHANGING! Updated taus code calculations - CLUBB ticket #1115 (#1125)

- Changed invrs_tau_xp2/wp2 calculations to match the wpxp calculation:
   Those now have a brunt_freq_pos and a brunt_freq_out_cloud term
- Changed tmp_calc magic number from .007 to .001
- Changed upper clipping bound for Ri_zm from 12 to 2 in invrs_tau_wpxp calculation
- Reversed accidental changes to input_misc/tuner/error_four_cases.in
The file was modified mixing_length.F90 (diff)
Commit 71caa87dc4bf283982e72d7a5d548f0e19d36ca7 by noreply
Added non-trapezoidal zm interpolation for cloud_frac (#1127)

- Added a calculation for `cloud_frac_zm` when `l_call_pdf_closure_twice=false` and `l_trapezoidal_rule_zt=false`
This is BIT_CHANGING if `l_call_pdf_closure_twice=false` and `l_trapezoidal_rule_zt=false` since, in that case, `cloud_frac_zm` is now nonzero.
- Some minor formatting fixes
- Some minor fixes to pyplotgen's source code
- Added `a3_coef_min` to Lscale tunable_parameters.in
The file was modified mixing_length.F90 (diff)
The file was modified advance_helper_module.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
Commit 46dce38d9a340446c91e745aeb1cc059437e2d95 by Steffen Domke
Re-adjusted cap for invrs_tau_wpxp in src/CLUBB_core/mixing_length.F90
BIT_CHANGING! CLUBB ticket #1115
The file was modified mixing_length.F90 (diff)
Commit 22b99ad5e75002985bbb982a508764c345927aec by Brian Griffin
Adding boundary conditions for the wp3_term_ta_ADG1_lhs subroutine.
The value of wp3_zm at the model lower and upper boundaries is now
assumed to be 0 for simplicity and conservation.
The file was modified advance_wp2_wp3_module.F90 (diff)
Commit 961f848884a3fce181c64c6c0ddc3fa73c33120e by Brian Griffin
For single loop vectors, removing the "collapse(2)" from the acc statements.

This commit is not bit changing, but the previous commit to this branch
was BIT_CHANGING:902d6caed8a4533f59f4165106276959b4f90895
The file was modified advance_wp2_wp3_module.F90 (diff)
Commit 3ba52c6cb91becf07a3cd181ae018428675298bd by Vince Larson
Added new Brunt-Väisälä frequency plots to pyplotgen's VariableGroupTaus
CLUBB ticket #1132, BIT_CHANGING because new output fields were added
- Added 3 new Brunt-Väisälä output fields:
    - bv_freq_sqd_smth: The smoothed bv_mixed which is used to calculate the invrs_taus
    - bv_freq_pos: The positive part of the sqrt of bv_freq_sqd_smth
    - bv_freq_out_cloud: The out-of-cloud part of bv_freq_pos
- Added the plots of those fields to VariableGroupTaus
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified mixing_length.F90 (diff)
The file was modified stats_zm_module.F90 (diff)
The file was modified stats_variables.F90 (diff)
Commit 59de6e143a1bdbf3e43d13f67d71deb63affdde2 by noreply
Adds commas to fix bug
The file was modified advance_clubb_core_module.F90 (diff)
Commit 20d6130562d60f6c2c17972cdc5a81de5dacd861 by Brian Griffin
Updating the code to set the bottom of the thermodynamic level grid for
diffusion at thermodynamic level 2 -- the first level above the surface.

This is being done in preparation for ghostless gridding.
The file was modified diffusion.F90 (diff)
Commit cebdb21aff77c08197f427a89df4712ee1fa5de0 by Brian Griffin
Commit to enforce a fixed-point boundary condition of wp3=0 at
thermodynamic level k = 2, the first above-ground thermodynamic level.

This is being done in preparation for ghostless gridding.

This commit is BIT_CHANGING.

Results are much more similar to the previous results than using
using zero-flux as the lower boundary condition for wp3.
The file was modified advance_wp2_wp3_module.F90 (diff)
Commit 39e110e1e0d3a674a66ff616a403f81f470fa877 by bmg2
With wp3 now being set to a fixed-point boundary condition value
of 0 at the current thermodynamic level 2 (first t-lev above the
surface), it is not necessary to loop over level 2 within the code
for each wp3 term.

This commit is BIT_CHANGING, but only for the wp3 budget terms
(e.g. wp3_ta) in the zt output file at level k = 2. It doesn't change
the actual answer. All other variables are bit-for-bit identical.
The file was modified advance_wp2_wp3_module.F90 (diff)
Commit 69a0500429869014c93503d18cff3ccfd516dc6d by noreply
Threadpublic (#1133)

* Initial threadprivate removals and simple changes.

* model flags update, incomplete

* Some updates, almost working

* Added saturation_formula and l_host_applies_sfc_fluxes to clubb_config_flags

* Accompanying changes to flags lists

* Changes to corrrelation array setup

* Adding more flag checking

* Forgot to set l_host_applies_sfc_fluxes in initialize_clubb_config_flags_type and commit adding l_implemented to the argument loit

* Adding saturation parameters to api

* Most of the way through passing sclr_dim, hydromet_dim, edsclr_dim, and sclr_tol through arguemnt lists. Moved first_write breaking silhs stats aparently, and bit changing due to the way we were writing sclr_tol for cases that have sclr_dim=0 (arm different, gabls2 BFB).

* Removing accidentally commited files.

* Fixed silhs output, all cases BFB but sclr_tol is saved differently to stats files in cases where sclr_dim = 0, so this is bc also bc:fb20458d5212b007c79c17613201af637bbc3d7e since that introduced the difference.

* Changing stats logicals back to false, only set to true for testing. So technically BIT_CHANGING

* Starting array_vars changes.

* No more global scalar indices

* Starting to remove hydromet indices

* Finished the annoying part with the microphysics interfaces.

* No more global variables in array_index. All cases BFB relative to last commit.

* No more global pdf_dim, Ncnp2_on_Ncnm2 now set via argument list, and added temporary hydromet_dim_glob because I thought it would fix a bug but it didn't, it might in the future though, so I left it in for now, it will be removed soon.

* Added nan checking before overriding default value for Ncnp2_on_Ncnm2

* Finished hydromet_dim argument listing and removed global versions of it as well as sclr_dim, edsclr_dim, and sclr_tol.

* open_netcdf_for_writing does nothing if nvars=0 for a stats file, which is understandable, but now that we call first_write immediately after we need that also to check for nvar=0

* Adding better error messages to stats_init

* The nvidia compiler does not like zero size arrays.

* Adding defaults for scalar arrays values in clubb driver, and adding an error check after calling stats_init.

* Reverting accidental changes to clubb_thread_test

* Changing name of scarr/scalar_array to sclr_idx and hydromet_array to hm_metadata

* Adding new types to _api

* Fixing erroneous name changes.

* Fixing bug introduced in 65987c8a77496f7bb10bfd28717345b1f63de1b7

* Removing print

* QuadTune: updates setup in order to read in 30x30
regional files automatically.

For #910.

* Updating the code to set the bottom of the thermodynamic level grid for
diffusion at thermodynamic level 2 -- the first level above the surface.

This is being done in preparation for ghostless gridding.

* Commit to enforce a fixed-point boundary condition of wp3=0 at
thermodynamic level k = 2, the first above-ground thermodynamic level.

This is being done in preparation for ghostless gridding.

This commit is bc.

Results are much more similar to the previous results than using
using zero-flux as the lower boundary condition for wp3.

* With wp3 now being set to a fixed-point boundary condition value
of 0 at the current thermodynamic level 2 (first t-lev above the
surface), it is not necessary to loop over level 2 within the code
for each wp3 term.

This commit is BIT_CHANGING, but only for the wp3 budget terms
(e.g. wp3_ta) in the zt output file at level k = 2. It doesn't change
the actual answer. All other variables are bit-for-bit identical.

* Removing omp parallel test line

* Removing parameter declarion around l_quintic_poly_interp. Having this be a parameter causes bit changes when using -O2

---------

Co-authored-by: vlarson <vlarson@uwm.edu>
Co-authored-by: bmg929 <bmg2@uwm.edu>
The file was modified saturation.F90 (diff)
The file was modified sponge_layer_damping.F90 (diff)
The file was modified advance_xp3_module.F90 (diff)
The file was modified adg1_adg2_3d_luhar_pdf.F90 (diff)
The file was modified advance_helper_module.F90 (diff)
The file was modified setup_clubb_pdf_params.F90 (diff)
The file was modified sfc_varnce_module.F90 (diff)
The file was modified stats_clubb_utilities.F90 (diff)
The file was modified advance_xm_wpxp_module.F90 (diff)
The file was modified mixing_length.F90 (diff)
The file was modified array_index.F90 (diff)
The file was modified advance_windm_edsclrm_module.F90 (diff)
The file was modified stats_zt_module.F90 (diff)
The file was modified index_mapping.F90 (diff)
The file was modified numerical_check.F90 (diff)
The file was modified fill_holes.F90 (diff)
The file was modified model_flags.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
The file was modified parameters_model.F90 (diff)
The file was modified pdf_closure_module.F90 (diff)
The file was modified diagnose_correlations_module.F90 (diff)
The file was modified clip_explicit.F90 (diff)
The file was modified new_hybrid_pdf_main.F90 (diff)
The file was modified stats_zm_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 stat_file_module.F90 (diff)
The file was modified precipitation_fraction.F90 (diff)
The file was modified corr_varnce_module.F90 (diff)
The file was modified error_code.F90 (diff)
The file was modified output_netcdf.F90 (diff)
Commit 35fc46d7836554463c61b24ac2d907be78a99d0a by noreply
Threadpublic (#1133)

* Initial threadprivate removals and simple changes.

* model flags update, incomplete

* Some updates, almost working

* Added saturation_formula and l_host_applies_sfc_fluxes to clubb_config_flags

* Accompanying changes to flags lists

* Changes to corrrelation array setup

* Adding more flag checking

* Forgot to set l_host_applies_sfc_fluxes in initialize_clubb_config_flags_type and commit adding l_implemented to the argument loit

* Adding saturation parameters to api

* Most of the way through passing sclr_dim, hydromet_dim, edsclr_dim, and sclr_tol through arguemnt lists. Moved first_write breaking silhs stats aparently, and bit changing due to the way we were writing sclr_tol for cases that have sclr_dim=0 (arm different, gabls2 BFB).

* Removing accidentally commited files.

* Fixed silhs output, all cases BFB but sclr_tol is saved differently to stats files in cases where sclr_dim = 0, so this is bc also bc:fb20458d5212b007c79c17613201af637bbc3d7e since that introduced the difference.

* Changing stats logicals back to false, only set to true for testing. So technically BIT_CHANGING

* Starting array_vars changes.

* No more global scalar indices

* Starting to remove hydromet indices

* Finished the annoying part with the microphysics interfaces.

* No more global variables in array_index. All cases BFB relative to last commit.

* No more global pdf_dim, Ncnp2_on_Ncnm2 now set via argument list, and added temporary hydromet_dim_glob because I thought it would fix a bug but it didn't, it might in the future though, so I left it in for now, it will be removed soon.

* Added nan checking before overriding default value for Ncnp2_on_Ncnm2

* Finished hydromet_dim argument listing and removed global versions of it as well as sclr_dim, edsclr_dim, and sclr_tol.

* open_netcdf_for_writing does nothing if nvars=0 for a stats file, which is understandable, but now that we call first_write immediately after we need that also to check for nvar=0

* Adding better error messages to stats_init

* The nvidia compiler does not like zero size arrays.

* Adding defaults for scalar arrays values in clubb driver, and adding an error check after calling stats_init.

* Reverting accidental changes to clubb_thread_test

* Changing name of scarr/scalar_array to sclr_idx and hydromet_array to hm_metadata

* Adding new types to _api

* Fixing erroneous name changes.

* Fixing bug introduced in 65987c8a77496f7bb10bfd28717345b1f63de1b7

* Removing print

* QuadTune: updates setup in order to read in 30x30
regional files automatically.

For #910.

* Updating the code to set the bottom of the thermodynamic level grid for
diffusion at thermodynamic level 2 -- the first level above the surface.

This is being done in preparation for ghostless gridding.

* Commit to enforce a fixed-point boundary condition of wp3=0 at
thermodynamic level k = 2, the first above-ground thermodynamic level.

This is being done in preparation for ghostless gridding.

This commit is bc.

Results are much more similar to the previous results than using
using zero-flux as the lower boundary condition for wp3.

* With wp3 now being set to a fixed-point boundary condition value
of 0 at the current thermodynamic level 2 (first t-lev above the
surface), it is not necessary to loop over level 2 within the code
for each wp3 term.

This commit is BIT_CHANGING, but only for the wp3 budget terms
(e.g. wp3_ta) in the zt output file at level k = 2. It doesn't change
the actual answer. All other variables are bit-for-bit identical.

* Removing omp parallel test line

* Removing parameter declarion around l_quintic_poly_interp. Having this be a parameter causes bit changes when using -O2

---------

Co-authored-by: vlarson <vlarson@uwm.edu>
Co-authored-by: bmg929 <bmg2@uwm.edu>
The file was modified configurable_model_flags.in (diff)
Commit 14c8636ab5c46f3f20204fae38b1eeb765bc804c by noreply
Threadpublic (#1133)

* Initial threadprivate removals and simple changes.

* model flags update, incomplete

* Some updates, almost working

* Added saturation_formula and l_host_applies_sfc_fluxes to clubb_config_flags

* Accompanying changes to flags lists

* Changes to corrrelation array setup

* Adding more flag checking

* Forgot to set l_host_applies_sfc_fluxes in initialize_clubb_config_flags_type and commit adding l_implemented to the argument loit

* Adding saturation parameters to api

* Most of the way through passing sclr_dim, hydromet_dim, edsclr_dim, and sclr_tol through arguemnt lists. Moved first_write breaking silhs stats aparently, and bit changing due to the way we were writing sclr_tol for cases that have sclr_dim=0 (arm different, gabls2 BFB).

* Removing accidentally commited files.

* Fixed silhs output, all cases BFB but sclr_tol is saved differently to stats files in cases where sclr_dim = 0, so this is bc also bc:fb20458d5212b007c79c17613201af637bbc3d7e since that introduced the difference.

* Changing stats logicals back to false, only set to true for testing. So technically BIT_CHANGING

* Starting array_vars changes.

* No more global scalar indices

* Starting to remove hydromet indices

* Finished the annoying part with the microphysics interfaces.

* No more global variables in array_index. All cases BFB relative to last commit.

* No more global pdf_dim, Ncnp2_on_Ncnm2 now set via argument list, and added temporary hydromet_dim_glob because I thought it would fix a bug but it didn't, it might in the future though, so I left it in for now, it will be removed soon.

* Added nan checking before overriding default value for Ncnp2_on_Ncnm2

* Finished hydromet_dim argument listing and removed global versions of it as well as sclr_dim, edsclr_dim, and sclr_tol.

* open_netcdf_for_writing does nothing if nvars=0 for a stats file, which is understandable, but now that we call first_write immediately after we need that also to check for nvar=0

* Adding better error messages to stats_init

* The nvidia compiler does not like zero size arrays.

* Adding defaults for scalar arrays values in clubb driver, and adding an error check after calling stats_init.

* Reverting accidental changes to clubb_thread_test

* Changing name of scarr/scalar_array to sclr_idx and hydromet_array to hm_metadata

* Adding new types to _api

* Fixing erroneous name changes.

* Fixing bug introduced in 65987c8a77496f7bb10bfd28717345b1f63de1b7

* Removing print

* QuadTune: updates setup in order to read in 30x30
regional files automatically.

For #910.

* Updating the code to set the bottom of the thermodynamic level grid for
diffusion at thermodynamic level 2 -- the first level above the surface.

This is being done in preparation for ghostless gridding.

* Commit to enforce a fixed-point boundary condition of wp3=0 at
thermodynamic level k = 2, the first above-ground thermodynamic level.

This is being done in preparation for ghostless gridding.

This commit is bc.

Results are much more similar to the previous results than using
using zero-flux as the lower boundary condition for wp3.

* With wp3 now being set to a fixed-point boundary condition value
of 0 at the current thermodynamic level 2 (first t-lev above the
surface), it is not necessary to loop over level 2 within the code
for each wp3 term.

This commit is BIT_CHANGING, but only for the wp3 budget terms
(e.g. wp3_ta) in the zt output file at level k = 2. It doesn't change
the actual answer. All other variables are bit-for-bit identical.

* Removing omp parallel test line

* Removing parameter declarion around l_quintic_poly_interp. Having this be a parameter causes bit changes when using -O2

---------

Co-authored-by: vlarson <vlarson@uwm.edu>
Co-authored-by: bmg929 <bmg2@uwm.edu>
The file was modified silhs_api_module.F90 (diff)
The file was modified output_2D_samples_module.F90 (diff)
The file was modified latin_hypercube_driver_module.F90 (diff)
The file was modified transform_to_pdf_module.F90 (diff)
The file was modified silhs_importance_sample_module.F90 (diff)
Commit b5bc5fa8fda0d316e073bd803e366634c5c4c126 by Gunther Huebler
Making compatible with latest clubb change.
The file was modified SRC/SGS_CLUBB/sgs.F90 (diff)
The file was modified SRC/main.F90 (diff)
The file was addedSRC/micro_field_utils.mod
The file was modified SRC/SGS_CLUBB/clubb_sgs.F90 (diff)
The file was modified SRC/stepout_module.F90 (diff)
The file was modified SRC/SGS_CLUBB/stat_clubb.F90 (diff)
The file was modified SRC/micro_field_utils.F90 (diff)
The file was modified SRC/setdata_module.F90 (diff)
The file was modified SRC/statistics.F90 (diff)
Commit 6d345f45f5c0b3f99bd6b7c54cdf3b6c650943fa by Gunther Huebler
Removing awkward nan check in favor of a default for Ncnp2_on_Ncnm2
The file was modified corr_varnce_module.F90 (diff)
Commit 0f0ec05ba6839ea12c32ae2a6ac766843d1c5f92 by Gunther Huebler
Fixing bug by changing saturation_equation to match namelist argument, also adding it to namelist.
The file was modified SRC/SGS_CLUBB/clubb_sgs.F90 (diff)
Commit f759e61ac5c41dc5fe9615136b3347fcbef3aff4 by Gunther Huebler
Adding new argument list variables to openacc copyin statements
The file was modified advance_clubb_core_module.F90 (diff)
Commit 9b85ea408b8e57b9efedf77e8dfe30685fe3b04b by Gunther Huebler
Setting l_smooth_Heaviside_tau_wpxp to .true. by default
The file was modified configurable_model_flags.in (diff)
Commit 830db1eac248ed03a0f52bf1d7402393b227b49e by bmg2
I am altering the mean advection code in preparation for ghost point
removal, since the mean advection code incorporates the ghost point
in its current calculations.

The lower boundary is now treated in the same manner as the
upper boundary, where a zero derivative over the boundary is assumed.
Any interaction of the current ghost level with the model code is
now removed from the mean advection calculation.

The results are bit-for-bit for most cases, but not all of them.
They are not necessarily expected to be bit-for-bit. There are
no discernable differences on plots of priority cases. However,
this commit is technically BIT_CHANGING.
The file was modified mean_adv.F90 (diff)
Commit ce785a929450dec9c013e6702b1bc9dcbc872b35 by Gunther Huebler
Fixing tridiag solver bug. See https://github.com/larson-group/clubb/issues/1139
The file was modified tridiag_lu_solver.F90 (diff)
Commit e27a93ac46e46daa6d71e41f24993f9155dc0202 by Gunther Huebler
Slight rework to acc data statements. This allows us to use return calls in advance_clubb_core again. See https://github.com/larson-group/clubb/issues/1139
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
Commit 33a2cb66dae21387f7a43e079180b02f622df464 by Gunther Huebler
Fixing small GPU stats bug
The file was modified mixing_length.F90 (diff)
Commit cf82acebf4a1cc31f092af210fd2e7970452e069 by Gunther Huebler
Changing xm to out in mono flux solver. There is no need for it to be inout, and it confused me for a bit so I'm fixing it.
The file was modified mono_flux_limiter.F90 (diff)
Commit a1fd38a0ba17ef79fa0590646eb851fce4079bdb by Gunther Huebler
Adding clubb specific compiler flag -DCLUBB_GPU, intended for use with openmp or openacc running on the GPU. Also adding a compiler flags, -DCUDA, and case statment for generating random numbers in silhs.
The file was modified advance_clubb_core_module.F90 (diff)
Commit 4b9838afa120e0a06c36eebb8e98027d0587dbba by Gunther Huebler
Adding clubb specific compiler flag -DCLUBB_GPU, intended for use with openmp or openacc running on the GPU. Also adding a compiler flags, -DCUDA, and case statment for generating random numbers in silhs.
The file was modified latin_hypercube_driver_module.F90 (diff)
Commit 623ed86ffb5b16dbcd6b72aa76e4aede6c38be6b by bmg2
Now that the value of wp3 is being set to a boundary value of 0
at the first thermodynamic grid level above the surface, it doesn't
make sense to loop over budget terms anymore at that particular level,
since they don't factor in the solution and give a false impression.

With this commit, wp3 budget terms now start their loop at level 3.

This commit is BIT_CHANGING, but the only thing that changes are
budget stats for a couple of wp3 budget terms. The solution
does not actually change.
The file was modified advance_wp2_wp3_module.F90 (diff)
Commit d6d044841a3c4fca653f4822509f1f9ceacfd0eb by Gunther Huebler
This is (amazingly) BIT_CHANGING. The differences are due to some compiler optimizations, see https://github.com/larson-group/clubb/pull/1133\#issuecomment-1865156979.
The file was modified model_flags.F90 (diff)
Commit 89925a4e642c7993be58226934ff9a3cdf9a0d79 by Gunther Huebler
Removing backslashes. These should be slashes, but gnu,intel,nvidia generate code that treats slashes as whitespace and backslashes as a character, while cray treats backslashes as whitespace as well. This is easily fixed by using quotes, and in the meantime we will change the backslashes to forward slashes. See https://github.com/larson-group/clubb/issues/1138\#issuecomment-1910844013
The file was modified input_names.F90 (diff)
Commit f66e6de3fd5790a95a3e2ac792e58129985540fe by bmg2
Fixing a bug where the Lscale used in calculating the damping
coefficient in advance_xm_wpxp_module.F90 should be Lscale_zm,
since the term is calculated on momentum grid levels.

Along the way, I found out that I could streamline the code
by passing in the value of Lscale_zm that was already calculated
(interpolated from Lscale) in advance_clubb_core. This value
could be passed into both advance_xm_wpxp and calc_stability_correction,
and then fed down.

This results of this code change are bit-for-bit identical with the
previous revision, most likely because this code only matters when
certain flags are flipped that are not used by default.
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified advance_helper_module.F90 (diff)
The file was modified advance_xm_wpxp_module.F90 (diff)
Commit aa0b5742c1ecb87b896f03ad526ad9483bcc707d by benjamin.andrew.stephens
adding equals sign cuz I've had it up to here with this typo!
The file was modified model_flags.F90 (diff)
Commit 7533e5fc4247ea19f60309050610a3f35229436a by Vince Larson
fixing bug, name of wm_zt was left as "wm"
The file was modified stats_zt_module.F90 (diff)
Commit 9719713bc9b25dda36e2a076736d36d8052eb2a7 by noreply
Add blank line in order to trigger Jenkins tests for CAM

In particular, Brian Griffin's code change from 7 Feb 2024,

BIT_CHANGING:595e2c13024c1e913815d56ae724823a82bddc03

changes answers when using l_diag_Lscale_from_tau=.false.

This code change was brought into the CAM repo in this commit:

BIT_CHANGING:d275ac17f3e53d65641c3210df33ce0fad4e5aef
The file was modified clubb_api_module.F90 (diff)
Commit 4e3c5f2e0080925f0890ec6e36446f5dc1a67d85 by noreply
Small acc tweaks (#1144)

* Removing unneccesary acc declare statements.

* Removing use of acc routine in favor of new 1D array routine for smooth_max.

* The new tmp_calc_ngrdcol should be copied regardless of flag

* tmp_calc_ngrdcol also needs to be deleted unconditionally.

* Making separate conditional acc copy for edsclrdim variables.

* Adding ifdefs around prints inside of openacc kernel

* Making erf_cache and exp_cache scalars, there was no need for them to be arrays.

* Making update host statements with sclr_dim or edsclr_dim conditional. Without these we get runtime errors with cray+openacc

* Removed files
The file was modified advance_helper_module.F90 (diff)
The file was modified constants_clubb.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified model_flags.F90 (diff)
The file was modified sfc_varnce_module.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
The file was modified mixing_length.F90 (diff)
The file was modified pdf_closure_module.F90 (diff)
The file was modified mono_flux_limiter.F90 (diff)
Commit 09d7b40ad3f996bb73b0f8689947f758705f5311 by noreply
Removes comment about Numerical Recipes
The file was modified advance_clubb_core_module.F90 (diff)
Commit e46bd6ab09c336755a83f2ea26efbc6e06641564 by noreply
OpenMP Optimizations (#1146)

* Small changes to improve omp performance.

* Some more small changes to help openmp

* Adhering to standards a little better by specifying _core_rknd
The file was modified advance_xm_wpxp_module.F90 (diff)
The file was modified mono_flux_limiter.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_wp2_wp3_module.F90 (diff)
Commit b3370acbc97df9a7f10cd183dbc0bb0d68036c49 by Gunther Huebler
Adding comment to explain unusual code choice.
The file was modified fill_holes.F90 (diff)
Commit 2211b4ac393092503821aab54176124651ab4ba8 by Gunther Huebler
Adding sum part to comment
The file was modified fill_holes.F90 (diff)
Commit 215f23ff2481515749a198c29db74d1005114b75 by noreply
Putting ngrdcol in clubb_params (#1147)

* Initial changes to make clubb_params have an ngrdcol dimension. All BFB on CPU and GPU.

* pdf_closure done

* pdf_closure missed changes

* calc_Lscale_directly changes and removed accidentally added files

* advance_xp2_xpyp done

* Missed file

* Added space here because the addition of this line in the last commit is to prevent Ri_zm from being uninitialized when using l_diag_Lscale_from_tau=.false.

* advance_wp2_wp3 done

* advance_xm_wpxp done

* Fixed bugs found by checking l_modify_limiters_for_cnvg_test=.true.

* Fixed bug found by checking l_diffuse_rtm_and_thlm and l_stability_correct_Kh_N2_zm

* Removing slightly redundant logic

* Swapping back order of l_gamma_skw if statements. I'm not sure why I swapped them in the first place.
The file was modified advance_wp2_wp3_module.F90 (diff)
The file was modified advance_xm_wpxp_module.F90 (diff)
The file was modified advance_helper_module.F90 (diff)
The file was modified clip_explicit.F90 (diff)
The file was modified advance_clubb_core_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 clubb_api_module.F90 (diff)
The file was modified adg1_adg2_3d_luhar_pdf.F90 (diff)
The file was modified parameters_tunable.F90 (diff)
The file was modified new_hybrid_pdf_main.F90 (diff)
The file was modified sfc_varnce_module.F90 (diff)
The file was modified advance_xp2_xpyp_module.F90 (diff)
The file was modified mixing_length.F90 (diff)
The file was modified Skx_module.F90 (diff)
Commit a39122dbb717c71138d553a1cf1f8cfaa7670d0b by Gunther Huebler
Fixing bug with C6 parameters, see https://github.com/larson-group/clubb/pull/1147. This is technically BIT_CHANGING, but only when C6thl != C6thlb and l_diag_Lscale_from_tau=.false.
The file was modified advance_xm_wpxp_module.F90 (diff)
Commit e9e1784e795b395e12909219867bcbd7fe8a8306 by Gunther Huebler
Making compatible with latest clubb changes.
The file was modified SRC/SGS_CLUBB/clubb_sgs.F90 (diff)
Commit 9e61ef088724b119d7c7f61a21b4c3d306058bcf by bmg2
At the ghost point below the surface, which does not matter in
the calculations, a value of 0 is now being entered for
thermodynamic-level output stats coef_wprtp2_implicit,
term_wprtp2_explicit, etc.

Why would we do this? The answer is "Why Not??!!!!"

This is being done to keep the trunk results bit-for-bit with
the clubb_ghost_exorcism branch, which is no longer loops over
the ghost level below the surface in the region of code
where these stats are recorded.

In terms of the master, this commit is technically BIT_CHANGING.
However, only for these 6 output terms at the ghost point.
The file was modified advance_xp2_xpyp_module.F90 (diff)
Commit 68d7df96e0daefd601d9649c886f68401a780ba1 by bmg2
The code that advances um and vm when l_predict_upwp_vpwp is turned off
(as found in advance_windm_edsclrm) was accessing the ghost point in
one spot. I rewrote it in the exact way the code in the
clubb_ghost_exorcism branch is written so that it makes the same
calculation without referencing the ghost point.

I also rewrote a couple stats by outputting a value of 0 at the ghost
point to maintain stat consistency between the master and the ghost
exorcism branch.

This commit is BIT_CHANGING, but only when the l_predict_upwp_vpwp
flag is set to false (which is not the case by default).
The file was modified advance_windm_edsclrm_module.F90 (diff)
Commit c73af292ada7bbb25efdfaedd2ad423e2bc78873 by bmg2
It was discovered that the location where the ghost point values
of um and vm were set equal to their respective values at the first
thermodynamic level above the surface was not ideal. Their
assignment occurred before the love nudge (l_uv_nudge). Then,
the love nudge came along and altered their values so that
um(1) no longer equaled um(2) -- and analogous for vm(1) and vm(2) --
for a half dozen cases. In addition to making the code inconsistent,
it also caused bit-for-bitness differences between the master
and clubb_ghost_exorcism branches. For those reasons, this
BIT_CHANGING commit is being made.
The file was modified configurable_model_flags.in (diff)
Commit 79a203f9281c29c1f249395c0cd9beb28851684f by bmg2
It was discovered that the location where the ghost point values
of um and vm were set equal to their respective values at the first
thermodynamic level above the surface was not ideal. Their
assignment occurred before the love nudge (l_uv_nudge). Then,
the love nudge came along and altered their values so that
um(1) no longer equaled um(2) -- and analogous for vm(1) and vm(2) --
for a half dozen cases. In addition to making the code inconsistent,
it also caused bit-for-bitness differences between the master
and clubb_ghost_exorcism branches. For those reasons, this
BIT_CHANGING commit is being made.
The file was modified advance_windm_edsclrm_module.F90 (diff)
Commit 4fae617e65511ba69bfa7029c5a9289ab2165194 by bmg2
I accidentally committed a couple things in the previous commit
that weren't supposed to be committed, so I am undoing that immediately
The file was modified configurable_model_flags.in (diff)
Commit 09e6e7258c51f674efc6aefc0285458f1e74a2ce by bmg2
While it doesn't affect results, I fixed what appears to be an
obvious bug in advance_xm_wpxp. If everything is at a singular zm
level, the referenced height shouldn't be gr%zt, but rather gr%zm.
The file was modified advance_xm_wpxp_module.F90 (diff)
Commit 5694aa6f6ccaca0ba89e4c4a54119edfbc05ed4b by bmg2
I am updating the loop in subroutine diagnose_xpwp so that it doesn't
loop over the model upper or lower boundaries. Calculations at those
levels are irrelevant to the results, and their inclusion causes
bitness differences between the master and clubb_ghost_exorcism
branches. Since this code change causes differences in the zm
stats file at the upper and lower boundaries for a few fields, this
commit is technically BIT_CHANGING, although it should be noted
that it does not change the simulation results.
The file was modified advance_xm_wpxp_module.F90 (diff)
Commit 04935f95e72f2d182d6717d69c9e950ad3d38713 by bmg2
This commit is being made to keep the stats zt output from the
master branch inline with the output from the clubb_ghost_exorcism
branch. In short, the only change is that the value of
a couple of inputs relative to wpxp turbulent advection from
thermodynamic level 1 are set to 0 for stats output in order to
keep the master and ghost exorcism branches bit-for-bit with
each other. The output at those levels are not used in
any calculations and are unnecessary. However, this change
is technically BIT_CHANGING.
The file was modified advance_xm_wpxp_module.F90 (diff)
Commit 76244e00c736bd5bbc29f55e9fc41095e0107054 by bmg2
I am committing a bug fix to the code that calculates mixed Brunt
Vaisala frequency. The variable ice_supersat_frac was used directly
in calculations that are supposed to take place on a momentum level.
The fix is to interpolated ice_supersat_frac to momentum levels before
use. This commit is BIT_CHANGING.
The file was modified advance_helper_module.F90 (diff)
Commit a9608e5509c2494c9805c0f6a754f254c5f20c7e by bmg2
I am committing a stats change to the ghost point values of zt
stats output variables found in the monotonic flux limiter. These
values are all being set simply to 0 at the ghost point for
purposes of providing an easy comparison to stats output files
from the clubb_ghost_exorcism branch. The code change is
not at all answer changing. However, it is technically BIT_CHANGING.
The file was modified mono_flux_limiter.F90 (diff)
Commit 1a044ef468ede907dbb651c69bef76e264906b4b by bmg2
Committing some thresholding around positive-definite fields after
a zt2zm statement. This commit does not change the results in our
CLUBB standalone cases.
The file was modified setup_clubb_pdf_params.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified advance_helper_module.F90 (diff)
The file was modified mixing_length.F90 (diff)
The file was modified calc_pressure.F90 (diff)
The file was modified advance_xp3_module.F90 (diff)
The file was modified advance_xp2_xpyp_module.F90 (diff)
Commit 15e15c30d8454b66017207782a4e949282420a2c by bmg2
Changing the linear interpolation in the zt2zm function at momentum
level 1 from an interpolation between the ghost point and the first
level above the surface to simply a "drop down" of the value found
at the first level above the surface.

This is being done ahead of the removal of the ghost point from the
model.

Results of this change are BIT_CHANGING.
The file was modified grid_class.F90 (diff)
Commit f3b2d7a6a63ceea30a960b27be61c18ea0279b71 by bmg2
I'm changing the way ddzt handles the derivative over momentum level 1.
Previously, it was based on the differential between the ghost point and
the first level above the surface. Now, the value of the derivative at
momentum level 2 is simply being dropped down to momentum level 1.

This is being done in advance of ghost point removal.

The results of this commit are BIT_CHANGING.
The file was modified grid_class.F90 (diff)
Commit 13811b3b0775ce0412d5ca84a1c0e8787e3823f6 by bmg2
Moved the ghost-point setting of xm(1) = xm(2) to the last line
of the subroutine so this command doesn't get overwritten.

This is technically BIT_CHANGING because it alters rtm (and some
rtm-related calculations) at the ghost point, but it is not
answer changing.

This is being done in preparation for ghost point removal.
The file was modified advance_xm_wpxp_module.F90 (diff)
Commit 6db5d3c85dd296d8ccafe66f5e7e20b241d37188 by noreply
Optional arguments are just best sometimes (#1150)

* Adding optional argument to zm2zt/zt2zm to act as threshold. This cuts down on lots of bulk and reduces the chances of breaking the GPU code. All BFB.

* Removing TODO

* Replacing hardcoded 0.0_core_rknd with zero_threshold
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified advance_xm_wpxp_module.F90 (diff)
The file was modified calc_pressure.F90 (diff)
The file was modified advance_xp2_xpyp_module.F90 (diff)
The file was modified setup_clubb_pdf_params.F90 (diff)
The file was modified advance_xp3_module.F90 (diff)
The file was modified mixing_length.F90 (diff)
The file was modified advance_windm_edsclrm_module.F90 (diff)
The file was modified grid_class.F90 (diff)
The file was modified advance_helper_module.F90 (diff)
The file was modified advance_wp2_wp3_module.F90 (diff)
Commit d6ca5b0e6179de58c7571bea8650e3cd93c3de5e by Gunther Huebler
Fixing bug. RESOLVED:556370c6406e6b943b88affbe7728a5036b1ba22, this was catchable by using debugging flags, but seems to otherwise cause no issues. Investigating I found that it only clips the below ground level, so that must not have been affecting other levels. This is technically BIT_CHANGING since it resolves an issue.
The file was modified advance_clubb_core_module.F90 (diff)
Commit c2849fa3c750562ffdd5abd6bc9937c081e66226 by Gunther Huebler
Making num_draw_points in fill_holes a constant. We were already using this value as a constant everywhere, but passing a constant by argument list makes it difficult/impossible for a compiler to optimize using that constant, unless it does inlining. Now, rather than passing the constant num_hf_draw_points (or sometimes a hardcoded 2) we just use num_hf_draw_points directly from constants_clubb. This massively improves the performance of a loop in fill holes when using nvhpc+omp, which was the motivation for this, but should also improve the performance on CPUs. Everything is BFB.
The file was modified advance_xp2_xpyp_module.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
The file was modified fill_holes.F90 (diff)
The file was modified advance_xm_wpxp_module.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified advance_wp2_wp3_module.F90 (diff)
Commit ecc32fd475a7a380a33f9361537db3f4741a1962 by Gunther Huebler
Making compatible with latest clubb changes.
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 0e6f459a8ca2110f661d78019a1f717ff9b9407a by bmg2
I am committing code that effectively ignores the values of certain
zt stats at the ghost level by setting them to 0. This is done to
allow for bit-for-bitness comparisons between the master branch
and the clubb_ghost_exorcism branch.

Technically, since zt stat file output at the irrelevant ghost
level is changed for some variables, this commit is BIT_CHANGING.

Effectively, this commit doesn't change squat in terms of model results.
The file was modified advance_xm_wpxp_module.F90 (diff)
Commit 4b4adc89f8fe60d9e9f89fadcab3f1f6c9499250 by bmg2
I am moving the advance_xm_wpxp setting of xm(1) = xm(2) from the
end of xm_clipping_and_stats to the very end of advance_xm_wpxp, right
before the return to advance_clubb_core. The reason I am doing this
is the nudging was done after setting xm(1) = xm(2) and would alter
the results. This is no longer the case, as setting xm(1) = xm(2)
is now being done after nudging.

This is being done in advance of removal of the ghost point from CLUBB.
This helps ensure a bit-for-bit match between the ghost exorcism branch and the
master branch.

This commit technically alter fields such as um, vm, um_bt, vm_bt,
wpup2, wpvp2, and shear at level 1 only. Thus, this commit is
technically BIT_CHANGING.

Effectively, once again, this commit doesn't change squat.
The file was modified advance_xm_wpxp_module.F90 (diff)
Commit 243d18ebd39084235f84c52d7ed538639bd23f95 by Gunther Huebler
Adding extra exclamation to acc statement to comment it out.
The file was modified advance_xm_wpxp_module.F90 (diff)
Commit 0ce993b309b89a592fddf5c7df4d8384d3514723 by bmg2
gr%zm should be used here instead of gr%zt, since these are
momentum-level variables being calculated. Results are BIT_CHANGING.
The file was modified mixing_length.F90 (diff)
Commit 880007854a85598da82ccefa4724c4ddbda5f7d6 by bmg2
Thermodynamic-level (zt) values should be used with zt-variable
calculations. This commit changes results (but not visibly)
for the l_avg_Lscale code, but since this code is not the default
in CLUBB, the code remains bit-for-bit since the last commit.
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified mixing_length.F90 (diff)
Commit 805374a14b770257f081e083488dadbf95467044 by Gunther Huebler
Fixing small GPU bug in advance_xm, also fixing a bug with sclrpthvp that's only detectable when were running 1 column on GPUs.
The file was modified clubb_api_module.F90 (diff)
The file was modified advance_xm_wpxp_module.F90 (diff)
Commit c7232ab0ff8a01c790b8ae8d7126696eeed84cc6 by bmg2
Fixing a bug. Does not change default results.
The file was modified advance_clubb_core_module.F90 (diff)
Commit 27bcd976257a9e518b3fef5318e1bb964f3fea74 by bmg2
The variable rc_coef_zm needed to be passed in and saved from
timestep-to-timestep rather than rc_coef. The results of this
change are BIT_CHANGING.
The file was modified advance_helper_module.F90 (diff)
The file was modified advance_xm_wpxp_module.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
Commit 3d2c815522ee350d0dcb01d72877541e8317a593 by Gunther Huebler
Making the f in f90 capital for consistency.
The file was removedmt95.f90
The file was addedmt95.F90
Commit 6ab16812ec6b8e1d0e8e98f5dd02e0794363299b by Gunther Huebler
Making the only change required to make clubb run with openacc in cam.
The file was modified advance_clubb_core_module.F90 (diff)
Commit d5fb86b1bd228c5b17c18f63a17c0a37fead40ae by noreply
Ri zm calc (Part 1) - Combine and move call to  calc_brunt_vaisala_freq_sqd (#1154)

#1145 Combined call to `calc_brunt_vaisala_freq_sqd` in `advance_clubb_core` for both Lscale and taus code - BITCHANGING

Call for taus code was moved out and in front of `diagnose_Lscale_from_tau` call and `zm2zt2zm` smoothing of `thlm` was removed.

BITCHANGING for taus code due to removed smoothing.
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified advance_helper_module.F90 (diff)
The file was modified mixing_length.F90 (diff)
Commit 323b3445d15537a72479ff1c41c59edd6b74f646 by noreply
Ri_zm calc (Part 1.5) - Adjusted signature of diagnose_Lscale_from_tau #1145 (#1155)

Ri_zm calc (Part 1.5) - Adjusted signature of diagnose_Lscale_from_tau #1145
The file was modified mixing_length.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
Commit 96205889b3e27c8f482383f28de8a6dd08d36adb by noreply
Adds blank line so that I can note BIT_CHANGING:5df5fcb3d6c51d6af2e8017d270336eefa75ad3e
The file was modified advance_clubb_core_module.F90 (diff)
Commit 1af8762fc4b0c31a64535f1cb6689d893d036926 by noreply
Ri_zm calc (Part 2) - Move the brunt_vaisala smoothing into calc_brunt_vaisala_freq_sqd (#1156)

CLUBB ticket #1145

Includes previous steps:
* First step: Move call to calc_bv
* Ri_zm calc (Part 1.5) - Adjusted signature of diagnose_Lscale_from_tau #1145

Newest changes: Ri_zm calc (Part 2) - Move brunt_vaisala smoothing into calc_brunt_vaisala_freq_sqd

`brunt_vaisala_frq_sqd_smth` is now calculated in subroutine `calc_brunt_vaisala_freq_sqd` and it is now written to disk in `advance_clubb_core` with all the other `brunt_vaisala` variables.

Unfortunately, I had to make a couple more changes since moving this calculation into `calc_brunt_vaisala_freq_sqd` meant that any subroutine involved in calling `calc_stability_correction` would need to get `l_modify_limiters_for_cnvg_test` fed in, because `calc_brunt_vaisala_freq_sqd` is also called in `calc_stability_correction`.

This commit is BIT_CHANGING since `brunt_vaisala_frq_sqd_smth` used to be all zeros before this change in Lscale mode and now it is actually calculated. BFB in taus code.
The file was modified advance_xm_wpxp_module.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified mixing_length.F90 (diff)
The file was modified advance_helper_module.F90 (diff)
Commit 3a5ba59e93df7a18da1558756104d3373b5fb2f5 by noreply
Spack updates (#156)

* Initial changes to get code working with spack. Also a lot of cleanup+enhancements to make running easier. https://github.com/larson-group/sys_admin/issues/829

* Adding flag to disable uninit check for intel. This seems to be new for ifx and causes problems easily. A similar issue was noted for cam when compiling with intel, see https://github.com/larson-group/sys_admin/issues/829\#issuecomment-2209596620. Problems with this option are also discussed on this thread https://community.intel.com/t5/Intel-Fortran-Compiler/MemorySanitizer-use-of-uninitialized-value/td-p/1512631

* Making changes to jenkins tests to get running with new system and new Makefile changes.

* Renaming the pgi test to use nvhpc
The file was modified Makefile (diff)
The file was modified runsam.bash (diff)
The file was addedjenkins_tests/sam_clubb_nvhpc_build/Jenkinsfile
The file was removedjenkins_tests/sam_clubb_pgi_build/Jenkinsfile
The file was modified jenkins_tests/sam_micro_drizzle_intel_test/Jenkinsfile (diff)
The file was modified Build (diff)
The file was modified jenkins_tests/sam_clubb_silhs_gfortran_build/Jenkinsfile (diff)
Commit c5fc4e56b888f2b322372097522a5695b3b1386f by bmg2
This code in adj_low_res_nu was using the ghost point when
grid_type = 2. This has now been changed to not include the ghost
level. This code is BIT_CHANGING.
The file was modified parameters_tunable.F90 (diff)
Commit 916b5a9793d042cc969aec6dabc5abbda67f2100 by bmg2
I am updating the SILHS code that calculates k_lh_start to work
consistently with ghostless CLUBB. This commit is BIT_CHANGING.
The file was modified latin_hypercube_driver_module.F90 (diff)
Commit fddad9485d30abe6c743a4be0445fdfe3a6a0a2e by bmg2
I am committing changes to stats output for cloud_cover, rcm_in_layer,
and z_cloud base owing to the gymnastics it takes to avoid the
ghost point in calculations. These changes are BIT_CHANGING, but
they don't change the answer.
The file was modified stats_clubb_utilities.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
Commit 6bb6d06fa0a70a779d86161b235282f847ef604e by bmg2
There were furhter issues found with the k_lh_start code.

The code would find that sometimes, the maximum location of rcm
in cloud would occur at the ghost level, k = 1, and set that level
as k_lh_start for SILHS. This is undesirable for two reasons:
1) k_lh_start should be set around a legimate, "within domain" grid
level; and
2) Setting k_lh_start to 1 is unachievable for the ghostless branch
of the model, making a match between the master and clubb_ghost_exorcism
branhes unattainable.

The issue is corrected here by allowing the maxloc function to only
search over "in-domain levels" for maximum cloud. The results are
BIT_CHANGING.
The file was modified latin_hypercube_driver_module.F90 (diff)
Commit 8662dc283f8186f9dc900d82a63fbc46abc65851 by noreply
Ri_zm calc (Part 3) - Moving calculations for Ri_zm out of diagnose_Lscale_from_taus (#1157)

CLUBB tocket #1145
BIT_CHANGING for lscale since Ri_zm was not calculated before.

1. mixing_length.F90:
- Removed unused input variables from diagnose_Lscale_from_taus: um, vm, exner, p_in_Pa, rtm, thlm, thvm, rcm, saturation_formula, l_brunt_vaisala_freq_moist, l_use_thvm_in_bv_freq, l_modify_limiters_for_cnvg_test; added ddzt_umvm_sqd as input; changed Ri_zm from out to in
- Removed unused brunt_vaisala_freq_sqd variables from diagnose_Lscale_from_tau
- Removed calculations for Ri_zm and ddzt_umvm_sqd
- Fixed some line length issues

2. advance_helper_module.F90
- Removed unused input variables and imports
- Fixed some line length issues

3. advance_clubb_core_module.F90
- Added calculations for ddzt_umvm_sqd and Ri_zm
- Adjusted subroutine calls
- Fixed some line length issues
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified advance_helper_module.F90 (diff)
The file was modified mixing_length.F90 (diff)
Commit fd2a66ac11b726371135f2233834e2e87562682c by bmg2
In my previous commit, I changed the domain of the maxloc commands
in the computation of k_lh_start to check over the arrays from
levels 2:nz. However, when that happens, the output will be offset
by 1. Consider a situation where the rcm max is at level 2. By being
passed 2 through nz only, maxloc will return a value of 1. I needed
to add +1 to the output to rectify this issue. The results
are BIT_CHANGING.
The file was modified latin_hypercube_driver_module.F90 (diff)
Commit 0df67106e4001e1eda48b4740fe1b065df06cd77 by bmg2
This commit brings the stats output from the all cases run with
the master branch (using the default configuration) in
bit-for-bit agreement with the stats output from all cases run
with the clubb_ghost_exorcism branch. Of course, this agreement
ignores the ghost level output in the zt files run with the
master branch. This commit is technically BIT_CHANGING because
it alters a few stats for a couple cases, but does not change results.
The file was modified stats_clubb_utilities.F90 (diff)
The file was modified precipitation_fraction.F90 (diff)
Commit 3e891b5d456b4ea869955e73e012cdd21813c1d9 by bmg2
Committing a change that will initialize this set of variables
under all circumstances. This change does not affect output
except when the New Hybrid PDF is used. In the case of the
New Hybrid PDF, the variables F_rt, F_thl, F_rt_min, F_rt_max,
F_thl_min, and F_thl_max were never initialized and never set
(they are not part of the New Hybrid PDF -- only in the original
New PDF), resulting NaN values being output to stat files.
The file was modified pdf_closure_module.F90 (diff)
Commit 23f82fdc538b5a645dba8762085bfa621791cf47 by bmg2
Making a change to the l_C2_cloud_frac option with advance_xp2_xpyp.
Cloud fraction needed to be interpolated to momentum levels for
proper use in the code.

Since this code change does not change CLUBB's default configuration,
results are bit-for-bit for the default configuration.
The file was modified advance_xp2_xpyp_module.F90 (diff)
Commit 9109926fff1ccf00b6495ec70ae57350d85a32ce by Gunther Huebler
Fixing bug. qclvar copying is handled by the api, but we were deleting it with an unstructured data statement. I added this due as a fix before thinking qclvar was a local variable, which happened because I mixed up the CLUBB_CAM and CLUBBND_CAM flags. https://github.com/larson-group/cam/issues/175
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
Commit 4016cd1964bf1f823be39c6275e7e663d8e41b13 by benjamin.andrew.stephens
removing cheyenne-related content and adding new content for
derecho and casper machines.
The file was removedSCRIPTS/CHEYENNE/run_sam.cheyenne
The file was addedSCRIPTS/UCAR/run_sam.casper
The file was addedSCRIPTS/UCAR/run_sam.derecho
The file was modified SCRIPTS/LES_setup/setup_LES_KK_micro.bash (diff)
Commit c304d15ab5483f1e7f0b0de1b9f01f06fb7d09b9 by Gunther Huebler
Fixing GPU bug. There is a vertical dependency with wpxp. This is what was breaking the ECT test, see larson-group/cam#175
The file was modified mono_flux_limiter.F90 (diff)
Commit 32a74a3cbba967b1b3558708ca78d7929dee6d60 by Gunther Huebler
Fixing bugs that are only caught when not outputting w_[up/down]_in_cloud stats or if l_host_applies_sfc_fluxes=.true. The l_host_applies_sfc_fluxes=.true. isn't testable (at least not in clubb_standalone), and I just caught that visually. The cloudy_updraft_frac and cloudy_downdraft_frac fields not being set were only noticable in cam, because we always run with iw_up_in_cloud>0 and iw_down_in_cloud>0 to output stats.
The file was modified pdf_closure_module.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
Commit 55c6276fbb2a1eb3db01e7b71a7909c22b694d3d by Gunther Huebler
Moving pdf_params copying to copyin. This is the data structure that contains pointers, and these pointers will be different on the host and device, so it is bad in theory to copy the structure back to the CPU as it might overwrite cpu memory pointers with gpu memory pointers. In practice though I've seen no problems caused by this, I'm just making this commit preemptively, and it has already been tested with the ECT test.
The file was modified clubb_api_module.F90 (diff)
Commit e2e09f6e2ad17b4fa461937c1c48328bb502ed7b by benjamin.andrew.stephens
Fixing mpirun command in the derecho and casper batch scripts.
The file was modified SCRIPTS/UCAR/run_sam.derecho (diff)
The file was modified SCRIPTS/UCAR/run_sam.casper (diff)
Commit 639a2929338c80ed393b93f2c55b50baad05b91a by benjamin.andrew.stephens
Editing the LES setup script to give instructions for UCAR computers.
The file was modified SCRIPTS/LES_setup/setup_LES_KK_micro.bash (diff)
Commit d135c3d79b104de8ec0d611cf9854c542ee16919 by noreply
Added zt2zm2zt-smoothing to remove noise in MPACE_B winds (#1161)

BIT_CHANGING

In order to remove noise in the wind fields in MPACE_B, we added some smoothing.

* Added `zt2zm2zt`-smoothing to `diagnose_upxp` calls in `advance_xm_wpxp`
* Added `zm2zt2zm`-smoothing to `wp2` and `em` vars fed into `wp3_term_pr_turb_rhs` in `advance_wp2_wp3`
* Changed C_wp2_splat to 0.00 in default tunable_parameters.in
The file was modified advance_xm_wpxp_module.F90 (diff)
The file was modified advance_wp2_wp3_module.F90 (diff)
Commit a38c90830d6f11dea4c8abe6f341d22368e3e1b3 by noreply
Added zt2zm2zt-smoothing to remove noise in MPACE_B winds (#1161)

BIT_CHANGING

In order to remove noise in the wind fields in MPACE_B, we added some smoothing.

* Added `zt2zm2zt`-smoothing to `diagnose_upxp` calls in `advance_xm_wpxp`
* Added `zm2zt2zm`-smoothing to `wp2` and `em` vars fed into `wp3_term_pr_turb_rhs` in `advance_wp2_wp3`
* Changed C_wp2_splat to 0.00 in default tunable_parameters.in
The file was modified tunable_parameters.in (diff)
Commit 9153bbbc08436d993c2bb238095026e750059b72 by Gunther Huebler
Moving PosInf to clubb_model_settings.F90
The file was modified parameters_model.F90 (diff)
Commit 641a3da63ff867cb33c6228d1cfb5207b68c6572 by bmg2
Updated for ghostless version of CLUBB.
The file was modified SRC/CLUBB/grid_class.F90 (diff)
The file was modified SRC/CLUBB/pos_definite_module.F90 (diff)
The file was modified SRC/CLUBB/sponge_layer_damping.F90 (diff)
The file was modified SRC/SILHS/output_2D_samples_module.F90 (diff)
The file was modified SRC/SGS_CLUBB/sgs.F90 (diff)
The file was modified SRC/SILHS/transform_to_pdf_module.F90 (diff)
The file was modified SRC/CLUBB/numerical_check.F90 (diff)
The file was modified SRC/stepout_module.F90 (diff)
The file was modified SRC/CLUBB/clip_explicit.F90 (diff)
The file was modified SRC/CLUBB/pdf_closure_module.F90 (diff)
The file was modified SRC/CLUBB/advance_windm_edsclrm_module.F90 (diff)
The file was modified SRC/CLUBB/diffusion.F90 (diff)
The file was modified SRC/CLUBB/advance_xp2_xpyp_module.F90 (diff)
The file was modified SRC/SILHS/est_kessler_microphys_module.F90 (diff)
The file was modified SRC/CLUBB/turbulent_adv_pdf.F90 (diff)
The file was modified SRC/CLUBB/stats_type.F90 (diff)
The file was modified SRC/SGS_CLUBB/stat_clubb.F90 (diff)
The file was modified SRC/CLUBB/advance_helper_module.F90 (diff)
The file was modified SRC/SGS_CLUBB/clubbvars.F90 (diff)
The file was modified SRC/CLUBB/mixing_length.F90 (diff)
The file was modified SRC/CLUBB/advance_xp3_module.F90 (diff)
The file was modified SRC/SILHS/silhs_api_module.F90 (diff)
The file was modified SRC/CLUBB/parameters_model.F90 (diff)
The file was modified SRC/CLUBB/mono_flux_limiter.F90 (diff)
The file was modified SRC/CLUBB/stats_clubb_utilities.F90 (diff)
The file was modified SRC/micro_field_utils.F90 (diff)
The file was modified SRC/CLUBB/mean_adv.F90 (diff)
The file was modified SRC/CLUBB/sfc_varnce_module.F90 (diff)
The file was modified SRC/SGS_CLUBB/clubb_sgs.F90 (diff)
The file was modified SRC/CLUBB/advance_wp2_wp3_module.F90 (diff)
The file was modified SRC/CLUBB/parameters_tunable.F90 (diff)
The file was modified SRC/CLUBB/advance_clubb_core_module.F90 (diff)
The file was modified SRC/CLUBB/adg1_adg2_3d_luhar_pdf.F90 (diff)
The file was modified SRC/MICRO_M2005_UWM/microphysics.F90 (diff)
The file was modified SRC/CLUBB/hydromet_pdf_parameter_module.F90 (diff)
The file was modified SRC/SILHS/lh_microphys_var_covar_module.F90 (diff)
The file was modified SRC/CLUBB/fill_holes.F90 (diff)
The file was modified SRC/CLUBB/clubb_api_module.F90 (diff)
The file was modified SRC/CLUBB/sigma_sqd_w_module.F90 (diff)
The file was modified SRC/CLUBB/precipitation_fraction.F90 (diff)
The file was modified SRC/CLUBB/setup_clubb_pdf_params.F90 (diff)
The file was modified SRC/CLUBB/calc_pressure.F90 (diff)
The file was modified SRC/SILHS/latin_hypercube_driver_module.F90 (diff)
The file was modified SRC/CLUBB/Skx_module.F90 (diff)
The file was modified SRC/CLUBB/advance_xm_wpxp_module.F90 (diff)
Commit 54361922bf9e85b072e7b13e863123146e98eed2 by bmg2
Updating to the latest version of CLUBB.

If the call to set random initial perturbations are commented out,
a bit-for-bit match can be obtained to results from the current master
branch.
The file was modified SRC/CLUBB/advance_xm_wpxp_module.F90 (diff)
The file was modified SRC/CLUBB/advance_wp2_wp3_module.F90 (diff)
The file was modified SRC/SGS_CLUBB/sgs.F90 (diff)
The file was modified SRC/CLUBB/parameters_model.F90 (diff)
The file was modified SRC/SGS_CLUBB/clubb_sgs.F90 (diff)
Commit 0c35bdb2e850e41bab982505438cc7b575c3cde4 by noreply
Nightly clubb plots (#1167)

* Making step to plot output, copy to pub folder, then create an index.html file to display all plots in that folder.

* Small tweaks

* Small fixes in pyplotgen.

* Copy needs -r

* Using jenkins env variables and switching to scp/ssh commands to allow plots to be generated and created on any machine.

* Adding quotes are env variable usage

* Pyplotgen addition to create a git_info file containing branch and commit name.

* Script should handle the pyplotgen _generated_on_... suffix.

* Making script only run arm again during testing.

* More robust way to get git branch in pyplotgen.

* Testing single quotes

* Making all cases run again.

* Undoing most pyplotgen changes. Making create_plot_list script general and take in a directory. Returning short run test mode.

* Update to create git_info line

* Making all cases run again and adding plot support for ifort.

* Adding plot step to nvhpc gpu diffness test.

* Fixing error

* Reverting diffness script, making new one specifically for plotting.

* Changes to allow plotting of previous output.

* Setting O0 for testing

* Branch folder restructure.

* Making tests run all cases again and update master output only.

* Clean up and naming changes.

* Addin -O2 back.

* Small update to pyplotgen to make title reflect name of output specified in command.

* This cuda call doesn't work with the subscript for some reason.

* Making only priority cases run for GPU plot test and preventin it from running on carson
The file was modified latin_hypercube_driver_module.F90 (diff)
Commit 90c974765822217b0693858a0ac0f115c5b964a2 by noreply
Clubb ghost exorcism (#1159)

* I am adding grid_class_new.F90 to the code as a copy of grid_class.F90.

The first step toward removing the ghost level from the model is to
modify the grid file. Having a second grid file in play will allow
functions and subroutines that are undergoing modification earlier in
this process to use the new file, while functions and subroutines that
have not yet been modified will continue to use the old grid file
until they can be modified.

At the end of this process, the old grid file will be able to be
removed and grid_class_new.F90 will simply be able to be renamed
grid_class.F90 at that point.

In this commit, I have altered the schematic and the comments
at the very start of the module to be "ghostless".

* Updated grid_class for the changes to the grid interpolation weighting
functions for the new "ghostless" ascending grid.

* Committing some updates to the new grid class file for ghostless
ascending.

* Updating to match recent changes made to grid_class.F90.

* I finished the removal of the ghost level from the entirety of the new
grid_class file. This standalone file compiles successfully.

* Removing the sources of compiler warnings in grid_class_new.F90 (these
were carried over from grid_class.F90).

* Committing progress in advance_wp2_wp3_module.F90 with regards to
ghostless grid.

* I am committing the updated version of grid_class_new.F90 that allows
all cases to run, regardless of grid_type.

* Fixed a bug in grid_class_new.F90

When grid_type = 2, the calculations of the indices begin_height and
end_height are based on the thermodynamic level grids. Those grid indices
should be used in the call to setup_grid_heights, where the array of
thermodynamic_heights, from index begin_height to index end_height,
should become gr%zt.

When grid_type - 3, the calculations of the indices begin_height and
end_height are based on the momentum grid levels.

Either way, momentum_heights and thermodynamic_heights should both
have the array from begin_height to end_height passed in. When
grid_type = 2, only the thermodynamic height array is relevant in
the setup. When grid_type = 3, only the momentum height array is
relevant in the setup.

* For thermodynamic_height, 1:nzmax-1 is the entire array, but I
entered this for a clarification, especially considering the
following check block.

* Updated grid_class_new to better handle the begin_height and end_height indices.

* Some modifications to advance_wp2_wp3

* Committed some temporary code.

* committed some temporary changes to clubb_api_module.

* Making a bunch of commits to clubb_driver that are mainly temporary for
interface and printing purposes.

* Deghosted another subroutine.

* Updated wp2_term_ta_lhs to use the new gridding.

* De-ghosting wp2_terms_ac_pr2_lhs

* De-ghosted wp2_term_pr3_rhs

* Deghosting wp3_term_tp_lhs.

* Deghosted wp3_terms_ac_pr2_lhs

* Updated the wp3_term_ta_ADG1_lhs subroutine to use boundary conditions
where wp3 (at the top level and bottom momentum levels of the model)
is assumed to have a value of 0.

* For single loop vectors, removing the "collapse(2)" from the acc
statements.

This commit is not bit changing, but the previous commit to this branch
was BIT_CHANGING:902d6caed8a4533f59f4165106276959b4f90895

* I updated wp3_term_ta_explicit_rhs for the ghostless grid.

When l_explicit_turbulent_adv_wp3 is turned on, the results from
this branch exactly match those found on the master branch.

* Updating diffusion_zm_lhs for "Ghostless" gridding.

* Fixed a typo in the comments that was introduced in the previous commit.

* Updated for "ghostless" diffusion.

* With wp3 now being set to a fixed-point boundary condition value
of 0 at the current thermodynamic level 1 (first t-lev above the
surface), it is not necessary to loop over level 1 within the code
for each wp3 term.

Also contains code to enforce a fixed-point boundary condition
of wp3=0 at the first thermodynamic level above the surface.

* Restoring diffusion to the way it should be for the exorcised ghost grid
prior to the most recent master merge. Lines for the ghost point were
accidentally added during the merge commit.

* Updated code to correct wp3_bp1 and wp3_pr2 budget terms so that
they still match bit-for-bit what is found in the master branch.

* Updating term_ma_zm_lhs for ghostless gridding. Results are bit-for-bit
identical.

* After debugging, I am now committing the ghostless version of
term_ma_zt_lhs.

* Updating the clubb_ghost_exorcism branch for ghostless wp23 rhs,
lhs, and solve.

This revision runs; however, there are still some issues tracking
down the source of problems in maintaining bit-for-bit results.

* Updated to maintain bit-for-bitness with the master code.

* Finished exorcising the ghost from advance_wp2_wp3_module.F90.

* Small openacc changes to fix GPU runs

* Adjusting new hybrid PDF code to continue to match the master branch
bit-for-bit while construction continues.

* Committing the first portion of a nomenclature change where the number
of momentum vertical grid levels is denoted as nzm rather than nz.

* Changing the notation of the number of grid levels on the momentum grid,
previously nz, to nzm in some files.

* Changed some comments and a little bit of code in the new grid_class
file to provide a better description.

* Updated sigma_sqd_w_module for ghostless gridding.

* I added the new "ghostless" discretization to turbulent_adv_pdf.F90,
and also appropriately altered the points in the code where the
turbulent advection subroutines are called from in
advance_xm_wpxp_module.F90 and advance_xp2_xpyp_module.F90.

The code produced bit-for-bit results in regards to the standard
configuration, the new hybrid PDF configuration, and also for the
configuration with the godunov flags turned on.

* Altered many of the lower-level subroutines in
advance_xp2_xpyp_module.F90 for ghostless gridding.

* Upgraded subroutine calc_xp2_xpyp_ta_terms for ghostless discretization.

This should alter the results when the new_hybrid PDF is used in
conjunction with upwind discretization, but it doesn't alter the
results for anything else.

* Completed making advance_xp2_xpyp ghostless.

* Completed the de-ghosting of advance_windm_edsclrm.

Results are BIT_CHANGING because the ghost level was interacting with
the results.

* The call to calc_xpwp from advance_microphys was not supposed to be
updated yet. It wound up being sort of "partially updated" for
ghostless gridding, which was a bug that led to some diagnostic output
fields not being bit-for-bit. In this commit, I returned it to its prior
form so that zm output files once again retain bit-for-bit status
between this branch and the master.

* The ghost point interface statements after the return from
advance_windm_edsclrm needed to be encased in the same conditional
statements that the calculations occurred in with the aforementioned
subroutine. This change fixes a bug where a handful of cases had results
that were not bit-for-bit from revisions before this code was added.

* Fixed bug where the wrong stats were being recorded to the stats
for coef_wpthlp2_implicit, etc.

* I am committing a bug fix to the implicit surface flux calculation
in the eddy-diffusivity wind code (which is used when
l_predict_upwp_vpwp is turned off).

I am also committing some temporary ghost point interface stats code
within advance_windm_edsclrm.

* I updated the diagrams in advance_windm_edsclrm to reflect the
new ghostless grid.

* I improved the description section of advance_windm_edsclrm.

* Made numerous low-level subroutines ghostless within
advance_xm_wpxp_module.F90. Maintained bit-for-bit results
with the master branch.

* I am updating the xm wpxp code that calls the wpxp turbulent advection
term based on your PDF and option for ghostless gridding.

* Updating some of the lower-level functions of the monotonic flux limiter
for ghostless gridding.

* I have updated the monotonic flux limiter for ghostless gridding!

* A couple of redundant declarations were brought in on the last merge.

* Committing further updates to ghostless gridding, including:

1) Further modifications to advance_xm_wpxp, which includes branching
out in Brunt-Vaisala frequency calculations in advance_helper;

2) Update in calculating the initial pressure;

and 3) updating grid class new to use the same "value drop down"
in the zt2zm function and "derivative drop down" in the ddzt function
that are now used in grid_class in the master.

Results are bit-for-bit identical with the master.

* Updated xm_wpxp_lhs for ghostless gridding.

* Made xm_wpxp_rhs ghostless.

* Updated xm_wpxp_solve for ghostless gridding!

* Updating pos_definite_module.F90 for ghostless gridding.

* Updated vertical hole filling and xm clipping and stats for
ghost point removal.

Results are still bit-for-bit with the master branch.

* Updated advance_xm_wpxp to remove the ghost point.

* Updating some zt stats to use a value of 0 for the "ghost" level.

* Updated subroutine compute_mixing_length for ghostless gridding.

* Removing the ghost point from calculate_Lscale_directly

* Added a "ghostbuster" option (-g) in the run_bindiff_all.py python
script that omits the "ghost" level from the comparison for _zt.nc
output files when envoked.

* I de-ghosted the l_diagnose_Lscale_from_tau code.

* Fixing a couple bugs with the merge.

* De-ghosted a couple of subroutines with advance_helper_module.F90.

* Code wasn't compiling because of too many characters on one line.

* De-ghosted precipitation_fraction.F90.

* De-ghosted more code, including sfc_varnce_module.F90.

* De-ghosted numerical_check.F90

* Committing a chunk of code that effectively "finishes off" the
deghosting of CLUBB core, although results aren't there yet and it still
needs more debugging.

* This corrects the bug where an error would occur when trying to compare
a run with a ghost level to a run without a ghost level.

* Commiting some necessary ghost point removal code.

* Updated the calculations of rcm_in_layer and cloud_cover for ghostless
gridding.

* I removed the ghost point from all the files within the Benchmark_cases
directory.

* I am committing code that removes the ghost level from
setup_clubb_pdf_params and most of the collection of CLUBB's
microphysics schemes.

* Fixing a bug in SILHS where sample point values were being overwritten
at level 1.

* I fixed some bugs in the ghostless version of the Morrison microphysics
driver.

* I fixed some array declaration mismatches in silhs_api_module.F90.

* I have deghosted the call to the code that calculates microphysics
tendencies and everything below it.

* Performed a de-ghosting, as well as an improvement that ensures
that mean sedimentation is always conservative (excluding the
amount of hydrometeor that leaves the domain at the surface),
to all subroutines at the level of microphys_lhs and lower
in advance_microphys_module.F90. This includes all
process-related subroutines like those that govern
sedimentation or turbulent sedimentation.

Gee, how is it possible that such are large amount of work
gets done when there's no office. It must have been magic
elves who did it. I mean, a physical office must be key
to every element of functioning in life, right?

* Reversing the accidental stats file commit I made in the previous
commit.

* Updating the "leftovers" from the previous merge to make it consistent
with the call syntax in the new, ghostless CLUBB.

* Updated the turbulent sedimentation code to handle upper and lower
boundary conditions in a better manner.

* I have finished de-ghosting the entirety of advance_microphys_module.F90
and all codes that are underneath its umbrella.

* I finished de-ghosting the radiation portion of CLUBB.

* I have removed the ghost level from hydrostatic_module.F90.

* I removed the ghost point from parameters_tunable and started
referencing the ghostless grid through the entirety of clubb_api_module
as well as in all of the G-unit tests.

* Deghosted another file. Not too many left.

* Deghosted sounding.F90

* I have deghosted clubb_driver.F90 and everything below its umbrella,
which is a huge benchmark in this process.

* It is not necessary to de-ghost the source code for the tuner, since
the information on what levels it is tuning for is fed in from input
files.

Within the tuner input files, I have adjusted the tuning ranges by 1
to compensate for the fact that the ghost level has now been entirely
removed from the model.

* Got rid of some unnecessary "use grid_class" statements that were
still referencing the old grid.

* I have found a bug in the ghostless SILHS code in the SILHS
code that calculates the variances and covariances of moisture
and heat (that are fed back into the model predictive equations).
In short, variables that were used to store the grid mean values
of thl, rt, and w were being set to 0 at level 1. This was fine
when level 1 was the ghost level, but level 1 is no longer the
ghost level. This was root cause of the issue.

* The line that sets rand_pool at level 1 that was merged in during
the previous merge commit needs to be removed.

* These lines also needed to be fixed because they were supposed to
be changed to nzt / 2 after the previous merge commit.

* Correcting a bug in coamps microphysics regarded the unnecessary
interpolation of hydrometeor sedimentation velocities to the zm grid.
This interpolation is a bug because CLUBB expects hydrometeor velocities
output on the zt grid.

* I am committing a fix to the _ta budget terms. It will fix the error
messages as well allow for budget term agreement between the master
and clubb_ghost_exorcism branches.

* Fixing an error in the ghostless budget stats for turbulent
sedimentation.

* After the merge, I am once again updating the merged code for
ghost level removal.

* Getting rid of leftover ghost removal junk that was still lying around.

* I needed to pass p_sfc inside CLUBB core to help set the value
of p_in_Pa_zm at level 1.

* C11_Skw_fnc is a zt variable, while Cx_fnc_Richardson is a zm variable.
The offset is to keep results the same between the current master
branch and the clubb_ghost_exorcism branch when the l_use_C11_Richardson
flag is enabled.

* Fixed a bug.

* I found a couple more instances where the api had dimensions switched
around.

* Eliminated diffusion_cloud_frac_zt_lhs, which is unused code that isn't
even hooked up (called from) anywhere in the model anymore.

* Changes that also needed to be made with the previous commit.

* The source of the array out-of-bounds error.

* Moving grid_class_new back to grid_class!

* Reminder notes in case input_fields gets used in the future.

* I accidentally committed input fields related changes to rico_model.in
that weren't meant to be committed in the previous commit. I am undoing
those now.

* Having clubb thermodynamic level 1 below the surface is no longer
the stanard scenario!

---------

Co-authored-by: Gunther Huebler <huebler@uwm.edu>
The file was modified pos_definite_module.F90 (diff)
The file was modified mixing_length.F90 (diff)
The file was modified advance_xp2_xpyp_module.F90 (diff)
The file was modified stats_clubb_utilities.F90 (diff)
The file was modified sfc_varnce_module.F90 (diff)
The file was modified parameters_tunable.F90 (diff)
The file was modified precipitation_fraction.F90 (diff)
The file was modified adg1_adg2_3d_luhar_pdf.F90 (diff)
The file was modified advance_helper_module.F90 (diff)
The file was modified fill_holes.F90 (diff)
The file was modified stats_type.F90 (diff)
The file was modified mono_flux_limiter.F90 (diff)
The file was modified hydromet_pdf_parameter_module.F90 (diff)
The file was modified mean_adv.F90 (diff)
The file was modified sigma_sqd_w_module.F90 (diff)
The file was modified advance_xp3_module.F90 (diff)
The file was modified advance_wp2_wp3_module.F90 (diff)
The file was modified numerical_check.F90 (diff)
The file was modified turbulent_adv_pdf.F90 (diff)
The file was modified setup_clubb_pdf_params.F90 (diff)
The file was modified clip_explicit.F90 (diff)
The file was modified Skx_module.F90 (diff)
The file was modified calc_pressure.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
The file was modified pdf_closure_module.F90 (diff)
The file was modified grid_class.F90 (diff)
The file was modified advance_windm_edsclrm_module.F90 (diff)
The file was modified sponge_layer_damping.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified diffusion.F90 (diff)
The file was modified advance_xm_wpxp_module.F90 (diff)
Commit 3b4700eb924086aac1093d1401fb4f59c7a66b50 by noreply
Clubb ghost exorcism (#1159)

* I am adding grid_class_new.F90 to the code as a copy of grid_class.F90.

The first step toward removing the ghost level from the model is to
modify the grid file. Having a second grid file in play will allow
functions and subroutines that are undergoing modification earlier in
this process to use the new file, while functions and subroutines that
have not yet been modified will continue to use the old grid file
until they can be modified.

At the end of this process, the old grid file will be able to be
removed and grid_class_new.F90 will simply be able to be renamed
grid_class.F90 at that point.

In this commit, I have altered the schematic and the comments
at the very start of the module to be "ghostless".

* Updated grid_class for the changes to the grid interpolation weighting
functions for the new "ghostless" ascending grid.

* Committing some updates to the new grid class file for ghostless
ascending.

* Updating to match recent changes made to grid_class.F90.

* I finished the removal of the ghost level from the entirety of the new
grid_class file. This standalone file compiles successfully.

* Removing the sources of compiler warnings in grid_class_new.F90 (these
were carried over from grid_class.F90).

* Committing progress in advance_wp2_wp3_module.F90 with regards to
ghostless grid.

* I am committing the updated version of grid_class_new.F90 that allows
all cases to run, regardless of grid_type.

* Fixed a bug in grid_class_new.F90

When grid_type = 2, the calculations of the indices begin_height and
end_height are based on the thermodynamic level grids. Those grid indices
should be used in the call to setup_grid_heights, where the array of
thermodynamic_heights, from index begin_height to index end_height,
should become gr%zt.

When grid_type - 3, the calculations of the indices begin_height and
end_height are based on the momentum grid levels.

Either way, momentum_heights and thermodynamic_heights should both
have the array from begin_height to end_height passed in. When
grid_type = 2, only the thermodynamic height array is relevant in
the setup. When grid_type = 3, only the momentum height array is
relevant in the setup.

* For thermodynamic_height, 1:nzmax-1 is the entire array, but I
entered this for a clarification, especially considering the
following check block.

* Updated grid_class_new to better handle the begin_height and end_height indices.

* Some modifications to advance_wp2_wp3

* Committed some temporary code.

* committed some temporary changes to clubb_api_module.

* Making a bunch of commits to clubb_driver that are mainly temporary for
interface and printing purposes.

* Deghosted another subroutine.

* Updated wp2_term_ta_lhs to use the new gridding.

* De-ghosting wp2_terms_ac_pr2_lhs

* De-ghosted wp2_term_pr3_rhs

* Deghosting wp3_term_tp_lhs.

* Deghosted wp3_terms_ac_pr2_lhs

* Updated the wp3_term_ta_ADG1_lhs subroutine to use boundary conditions
where wp3 (at the top level and bottom momentum levels of the model)
is assumed to have a value of 0.

* For single loop vectors, removing the "collapse(2)" from the acc
statements.

This commit is not bit changing, but the previous commit to this branch
was BIT_CHANGING:902d6caed8a4533f59f4165106276959b4f90895

* I updated wp3_term_ta_explicit_rhs for the ghostless grid.

When l_explicit_turbulent_adv_wp3 is turned on, the results from
this branch exactly match those found on the master branch.

* Updating diffusion_zm_lhs for "Ghostless" gridding.

* Fixed a typo in the comments that was introduced in the previous commit.

* Updated for "ghostless" diffusion.

* With wp3 now being set to a fixed-point boundary condition value
of 0 at the current thermodynamic level 1 (first t-lev above the
surface), it is not necessary to loop over level 1 within the code
for each wp3 term.

Also contains code to enforce a fixed-point boundary condition
of wp3=0 at the first thermodynamic level above the surface.

* Restoring diffusion to the way it should be for the exorcised ghost grid
prior to the most recent master merge. Lines for the ghost point were
accidentally added during the merge commit.

* Updated code to correct wp3_bp1 and wp3_pr2 budget terms so that
they still match bit-for-bit what is found in the master branch.

* Updating term_ma_zm_lhs for ghostless gridding. Results are bit-for-bit
identical.

* After debugging, I am now committing the ghostless version of
term_ma_zt_lhs.

* Updating the clubb_ghost_exorcism branch for ghostless wp23 rhs,
lhs, and solve.

This revision runs; however, there are still some issues tracking
down the source of problems in maintaining bit-for-bit results.

* Updated to maintain bit-for-bitness with the master code.

* Finished exorcising the ghost from advance_wp2_wp3_module.F90.

* Small openacc changes to fix GPU runs

* Adjusting new hybrid PDF code to continue to match the master branch
bit-for-bit while construction continues.

* Committing the first portion of a nomenclature change where the number
of momentum vertical grid levels is denoted as nzm rather than nz.

* Changing the notation of the number of grid levels on the momentum grid,
previously nz, to nzm in some files.

* Changed some comments and a little bit of code in the new grid_class
file to provide a better description.

* Updated sigma_sqd_w_module for ghostless gridding.

* I added the new "ghostless" discretization to turbulent_adv_pdf.F90,
and also appropriately altered the points in the code where the
turbulent advection subroutines are called from in
advance_xm_wpxp_module.F90 and advance_xp2_xpyp_module.F90.

The code produced bit-for-bit results in regards to the standard
configuration, the new hybrid PDF configuration, and also for the
configuration with the godunov flags turned on.

* Altered many of the lower-level subroutines in
advance_xp2_xpyp_module.F90 for ghostless gridding.

* Upgraded subroutine calc_xp2_xpyp_ta_terms for ghostless discretization.

This should alter the results when the new_hybrid PDF is used in
conjunction with upwind discretization, but it doesn't alter the
results for anything else.

* Completed making advance_xp2_xpyp ghostless.

* Completed the de-ghosting of advance_windm_edsclrm.

Results are BIT_CHANGING because the ghost level was interacting with
the results.

* The call to calc_xpwp from advance_microphys was not supposed to be
updated yet. It wound up being sort of "partially updated" for
ghostless gridding, which was a bug that led to some diagnostic output
fields not being bit-for-bit. In this commit, I returned it to its prior
form so that zm output files once again retain bit-for-bit status
between this branch and the master.

* The ghost point interface statements after the return from
advance_windm_edsclrm needed to be encased in the same conditional
statements that the calculations occurred in with the aforementioned
subroutine. This change fixes a bug where a handful of cases had results
that were not bit-for-bit from revisions before this code was added.

* Fixed bug where the wrong stats were being recorded to the stats
for coef_wpthlp2_implicit, etc.

* I am committing a bug fix to the implicit surface flux calculation
in the eddy-diffusivity wind code (which is used when
l_predict_upwp_vpwp is turned off).

I am also committing some temporary ghost point interface stats code
within advance_windm_edsclrm.

* I updated the diagrams in advance_windm_edsclrm to reflect the
new ghostless grid.

* I improved the description section of advance_windm_edsclrm.

* Made numerous low-level subroutines ghostless within
advance_xm_wpxp_module.F90. Maintained bit-for-bit results
with the master branch.

* I am updating the xm wpxp code that calls the wpxp turbulent advection
term based on your PDF and option for ghostless gridding.

* Updating some of the lower-level functions of the monotonic flux limiter
for ghostless gridding.

* I have updated the monotonic flux limiter for ghostless gridding!

* A couple of redundant declarations were brought in on the last merge.

* Committing further updates to ghostless gridding, including:

1) Further modifications to advance_xm_wpxp, which includes branching
out in Brunt-Vaisala frequency calculations in advance_helper;

2) Update in calculating the initial pressure;

and 3) updating grid class new to use the same "value drop down"
in the zt2zm function and "derivative drop down" in the ddzt function
that are now used in grid_class in the master.

Results are bit-for-bit identical with the master.

* Updated xm_wpxp_lhs for ghostless gridding.

* Made xm_wpxp_rhs ghostless.

* Updated xm_wpxp_solve for ghostless gridding!

* Updating pos_definite_module.F90 for ghostless gridding.

* Updated vertical hole filling and xm clipping and stats for
ghost point removal.

Results are still bit-for-bit with the master branch.

* Updated advance_xm_wpxp to remove the ghost point.

* Updating some zt stats to use a value of 0 for the "ghost" level.

* Updated subroutine compute_mixing_length for ghostless gridding.

* Removing the ghost point from calculate_Lscale_directly

* Added a "ghostbuster" option (-g) in the run_bindiff_all.py python
script that omits the "ghost" level from the comparison for _zt.nc
output files when envoked.

* I de-ghosted the l_diagnose_Lscale_from_tau code.

* Fixing a couple bugs with the merge.

* De-ghosted a couple of subroutines with advance_helper_module.F90.

* Code wasn't compiling because of too many characters on one line.

* De-ghosted precipitation_fraction.F90.

* De-ghosted more code, including sfc_varnce_module.F90.

* De-ghosted numerical_check.F90

* Committing a chunk of code that effectively "finishes off" the
deghosting of CLUBB core, although results aren't there yet and it still
needs more debugging.

* This corrects the bug where an error would occur when trying to compare
a run with a ghost level to a run without a ghost level.

* Commiting some necessary ghost point removal code.

* Updated the calculations of rcm_in_layer and cloud_cover for ghostless
gridding.

* I removed the ghost point from all the files within the Benchmark_cases
directory.

* I am committing code that removes the ghost level from
setup_clubb_pdf_params and most of the collection of CLUBB's
microphysics schemes.

* Fixing a bug in SILHS where sample point values were being overwritten
at level 1.

* I fixed some bugs in the ghostless version of the Morrison microphysics
driver.

* I fixed some array declaration mismatches in silhs_api_module.F90.

* I have deghosted the call to the code that calculates microphysics
tendencies and everything below it.

* Performed a de-ghosting, as well as an improvement that ensures
that mean sedimentation is always conservative (excluding the
amount of hydrometeor that leaves the domain at the surface),
to all subroutines at the level of microphys_lhs and lower
in advance_microphys_module.F90. This includes all
process-related subroutines like those that govern
sedimentation or turbulent sedimentation.

Gee, how is it possible that such are large amount of work
gets done when there's no office. It must have been magic
elves who did it. I mean, a physical office must be key
to every element of functioning in life, right?

* Reversing the accidental stats file commit I made in the previous
commit.

* Updating the "leftovers" from the previous merge to make it consistent
with the call syntax in the new, ghostless CLUBB.

* Updated the turbulent sedimentation code to handle upper and lower
boundary conditions in a better manner.

* I have finished de-ghosting the entirety of advance_microphys_module.F90
and all codes that are underneath its umbrella.

* I finished de-ghosting the radiation portion of CLUBB.

* I have removed the ghost level from hydrostatic_module.F90.

* I removed the ghost point from parameters_tunable and started
referencing the ghostless grid through the entirety of clubb_api_module
as well as in all of the G-unit tests.

* Deghosted another file. Not too many left.

* Deghosted sounding.F90

* I have deghosted clubb_driver.F90 and everything below its umbrella,
which is a huge benchmark in this process.

* It is not necessary to de-ghost the source code for the tuner, since
the information on what levels it is tuning for is fed in from input
files.

Within the tuner input files, I have adjusted the tuning ranges by 1
to compensate for the fact that the ghost level has now been entirely
removed from the model.

* Got rid of some unnecessary "use grid_class" statements that were
still referencing the old grid.

* I have found a bug in the ghostless SILHS code in the SILHS
code that calculates the variances and covariances of moisture
and heat (that are fed back into the model predictive equations).
In short, variables that were used to store the grid mean values
of thl, rt, and w were being set to 0 at level 1. This was fine
when level 1 was the ghost level, but level 1 is no longer the
ghost level. This was root cause of the issue.

* The line that sets rand_pool at level 1 that was merged in during
the previous merge commit needs to be removed.

* These lines also needed to be fixed because they were supposed to
be changed to nzt / 2 after the previous merge commit.

* Correcting a bug in coamps microphysics regarded the unnecessary
interpolation of hydrometeor sedimentation velocities to the zm grid.
This interpolation is a bug because CLUBB expects hydrometeor velocities
output on the zt grid.

* I am committing a fix to the _ta budget terms. It will fix the error
messages as well allow for budget term agreement between the master
and clubb_ghost_exorcism branches.

* Fixing an error in the ghostless budget stats for turbulent
sedimentation.

* After the merge, I am once again updating the merged code for
ghost level removal.

* Getting rid of leftover ghost removal junk that was still lying around.

* I needed to pass p_sfc inside CLUBB core to help set the value
of p_in_Pa_zm at level 1.

* C11_Skw_fnc is a zt variable, while Cx_fnc_Richardson is a zm variable.
The offset is to keep results the same between the current master
branch and the clubb_ghost_exorcism branch when the l_use_C11_Richardson
flag is enabled.

* Fixed a bug.

* I found a couple more instances where the api had dimensions switched
around.

* Eliminated diffusion_cloud_frac_zt_lhs, which is unused code that isn't
even hooked up (called from) anywhere in the model anymore.

* Changes that also needed to be made with the previous commit.

* The source of the array out-of-bounds error.

* Moving grid_class_new back to grid_class!

* Reminder notes in case input_fields gets used in the future.

* I accidentally committed input fields related changes to rico_model.in
that weren't meant to be committed in the previous commit. I am undoing
those now.

* Having clubb thermodynamic level 1 below the surface is no longer
the stanard scenario!

---------

Co-authored-by: Gunther Huebler <huebler@uwm.edu>
The file was modified est_kessler_microphys_module.F90 (diff)
The file was modified lh_microphys_var_covar_module.F90 (diff)
The file was modified silhs_api_module.F90 (diff)
The file was modified output_2D_samples_module.F90 (diff)
The file was modified transform_to_pdf_module.F90 (diff)
The file was modified latin_hypercube_driver_module.F90 (diff)
Commit 5063ce59ebf30494012df2da0a8d9e1f5cc94589 by Gunther Huebler
Variable name correction in acc data statement.
The file was modified advance_helper_module.F90 (diff)
Commit 8553509b703bf07dd4c56fee55c47f11652aa7e2 by Gunther Huebler
Splitting zeros_vector into versions with nzt or nzm size to match sizes in subroutine.
The file was modified advance_xp2_xpyp_module.F90 (diff)
Commit c571fcfd510bd0c8721aadb8a37380212ac2b4ff by Gunther Huebler
Making radf size correct in api and clubb_driver.
The file was modified clubb_api_module.F90 (diff)
Commit 5d6de8e6e5c208f82bfb0bccc4ebf05346f9825a by noreply
Ri_zm calc (Part 4) - Implementing calc_Ri_zm (#1160)

* Ri_zm calc (Part 4) - Implementing calc_Ri_zm
CLUBB tocket #1145

1. advance_helper_module.F90
- Implemented calc_Ri_zm
- Replaced Ri_zm calculations in compute_Cx_fnc_Richardson

2. advance_clubb_core_module.F90
Replaced Ri_zm calculations in advance_clubb_core
The file was modified advance_helper_module.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
Commit 841d3a1606139e363e09e8bab9f6fda4a41f871e by noreply
Ri zm calc4 (#1168)

Bug fix for Ri_zm calc (Part 4) commit
CLUBB tocket #1145

* Added missing acc loop directive in calc_Ri_zm
The file was modified advance_helper_module.F90 (diff)
Commit 4cbb7d19a3edec730aa008d7f0acbfe51978902c by bmg2
Well, this will probably anger the Grim Reaper, but I have finally
removed the SICL from CLUBB (as discussed a number of months ago).

That term is now expunged from the entirety of CLUBB, including all
source code, stats files, and postprocessing files.

This change is technically BIT_CHANGING because two stats variables,
wprtp_sicl and wpthlp_sicl, have been removed from stats output files.

However, all results remain exactly the same.
The file was modified advance_xm_wpxp_module.F90 (diff)
The file was removedclip_semi_implicit.F90
The file was modified stats_variables.F90 (diff)
The file was modified stats_zm_module.F90 (diff)
Commit c631c7d3db48f650d77a570b2534e358aa02f1a8 by Vince Larson
Change variables from a1 and a3 to a1_coef and a3_coef
For issue #977
The file was modified advance_wp2_wp3_module.F90 (diff)
The file was modified advance_xm_wpxp_module.F90 (diff)
The file was modified advance_xp2_xpyp_module.F90 (diff)
Commit 3ab47e7b81c1bc1b6d5b8ee0fc7ab285614ae7c3 by noreply
change loop index to sclr and edsclr for sclr_dim and edsclr_dim (#1173)

Whenever a loop is dimensioned sclr_dim, use sclr as the loop index. Whenever a loop is dimensioned edsclr_dim, use edsclr as the loop index.

Added changes and tested for binary differences with the following flags for the gabls2 case:
l_host_applies_sfc_fluxes=true/false
l_call_pdf_closure_twice=true/false
l_lmm_stepping=true/false
l_explicit_turbulent_adv_wpxp=true/false

See #987.
The file was modified adg1_adg2_3d_luhar_pdf.F90 (diff)
The file was modified sfc_varnce_module.F90 (diff)
The file was modified stats_zm_module.F90 (diff)
The file was modified advance_xp3_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 stats_clubb_utilities.F90 (diff)
The file was modified advance_windm_edsclrm_module.F90 (diff)
The file was modified stats_zt_module.F90 (diff)
The file was modified numerical_check.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified pdf_closure_module.F90 (diff)
Commit 77d72936a35198cc193e31782139908254a6b3f3 by noreply
Ri zm calc5 (#1175)

* Ri_zm calc (Part 5) - Implementing calc_Ri_zm
CLUBB tocket #1145

Cleaning up subroutine compute_Cx_fnc_Richardson
1) In advance_helper_module.F90:
- Removed superfluous inputs
- Added Brunt Väisälä frequency variables, shear_sqd, and Lscale_zm as inputs
- Removed call to calc_brunt_vaisala_freq_sqd
- Removed zt2zm(Lscale)
- Removed calculation and stat_update_var of shear_sqd

2) In advance_clubb_core:
- Added stat_update_var for shear_sqd
- Adjusted call to compute_Cx_fnc_Richardson

3) Renamed netcdf variable `shear_sqd` to `ddzt_umvm_sqd` to keep variable names consistent.
The file was modified stats_zm_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 stats_variables.F90 (diff)
Commit fd8b67834697b6fae2a1933b212ba571e5a45e68 by Gunther Huebler
Removing duplicate definition of edsclr when CLUBB_CAM is defined.
The file was modified advance_clubb_core_module.F90 (diff)
Commit afaafca1b208625a00b7f826cae0d25251d2ad0d by noreply
Ri zm calc6 (#1177)

* Ri_zm calc (Part 6) - Implementing calc_Ri_zm
CLUBB tocket #1145

Eliminating call to calc_stability_correction in advance_xm_wpxp
1) In advance_xm_wpxp_module.F90:
- Eliminated call to calc_stability_correction in calc_xm_wpxp_lhs_terms
- stability_correction is now passed through advance_xm_wpxp to calc_xm_wpxp_lhs_terms
- Cleaned up input lists

2) In advance_clubb_core:
- Adjusted call to advance_xm_wpxp

3) Adjusted spurious_source_test
The file was modified advance_xm_wpxp_module.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
Commit d52dc47a7c76ddc46b521d0fff0482f25ea91e5e by noreply
refactor code to remove compiler warnings for exceeding 100 characters per line and unused variables and parameters (#1179)

The file was modified transform_to_pdf_module.F90 (diff)
The file was modified silhs_api_module.F90 (diff)
The file was modified lh_microphys_var_covar_module.F90 (diff)
The file was modified output_2D_samples_module.F90 (diff)
The file was modified latin_hypercube_driver_module.F90 (diff)
Commit af499c027fac8a33da80b1430c7f2f1425d3553a by noreply
refactor code to remove compiler warnings for exceeding 100 characters per line and unused variables and parameters (#1179)

The file was modified saturation.F90 (diff)
The file was modified stats_sfc_module.F90 (diff)
The file was modified advance_windm_edsclrm_module.F90 (diff)
The file was modified tridiag_lu_solver.F90 (diff)
The file was modified mono_flux_limiter.F90 (diff)
The file was modified fill_holes.F90 (diff)
The file was modified new_pdf_main.F90 (diff)
The file was modified model_flags.F90 (diff)
The file was modified penta_lu_solver.F90 (diff)
The file was modified stats_rad_zt_module.F90 (diff)
The file was modified advance_helper_module.F90 (diff)
The file was modified mt95.F90 (diff)
The file was modified output_netcdf.F90 (diff)
The file was modified corr_varnce_module.F90 (diff)
The file was modified stats_type_utilities.F90 (diff)
The file was modified advance_xp2_xpyp_module.F90 (diff)
The file was modified adg1_adg2_3d_luhar_pdf.F90 (diff)
The file was modified mean_adv.F90 (diff)
The file was modified stats_lh_zt_module.F90 (diff)
The file was modified parameters_tunable.F90 (diff)
The file was modified diffusion.F90 (diff)
The file was modified stats_lh_sfc_module.F90 (diff)
The file was modified stats_zt_module.F90 (diff)
The file was modified grid_class.F90 (diff)
The file was modified advance_wp2_wp3_module.F90 (diff)
The file was modified stats_rad_zm_module.F90 (diff)
The file was modified numerical_check.F90 (diff)
The file was modified setup_clubb_pdf_params.F90 (diff)
The file was modified stats_zm_module.F90 (diff)
The file was modified pdf_closure_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 clip_explicit.F90 (diff)
The file was modified mixing_length.F90 (diff)
The file was modified precipitation_fraction.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_xp3_module.F90 (diff)
The file was modified sfc_varnce_module.F90 (diff)
The file was modified lapack_wrap.F90 (diff)
The file was modified Skx_module.F90 (diff)
The file was modified stats_clubb_utilities.F90 (diff)
Commit 004d3f520a1adab77ee44de70ebc6caca27074eb by noreply
reduce compiler warnings (#1180)

* refactor code to remove warnings for exceeding 100 characters per line

* remove unused variables

* remove unused parameters #1174

* fix for the GPU

* remove new unused parameters

* remove unused dummy arguments

* make small changes to reduce compiler warnings

* put solve_name back in as input variable to band_solve methods
The file was modified silhs_api_module.F90 (diff)
The file was modified latin_hypercube_driver_module.F90 (diff)
Commit c3912e04050490382fe3e514cd9e4763ff18ecb8 by noreply
reduce compiler warnings (#1180)

* refactor code to remove warnings for exceeding 100 characters per line

* remove unused variables

* remove unused parameters #1174

* fix for the GPU

* remove new unused parameters

* remove unused dummy arguments

* make small changes to reduce compiler warnings

* put solve_name back in as input variable to band_solve methods
The file was modified clip_explicit.F90 (diff)
The file was modified advance_helper_module.F90 (diff)
The file was modified matrix_solver_wrapper.F90 (diff)
The file was modified advance_xp2_xpyp_module.F90 (diff)
The file was modified advance_windm_edsclrm_module.F90 (diff)
The file was modified advance_xm_wpxp_module.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
The file was modified stats_clubb_utilities.F90 (diff)
The file was modified numerical_check.F90 (diff)
The file was modified advance_wp2_wp3_module.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified mixing_length.F90 (diff)
Commit 034fb232520b1d0f7afa52036f8d25aa53e0d713 by Gunther Huebler
Removing the target attributes wherever possible. These are artifacts from when gr and the the stats types were globals, and got naively copied when these were pushed through the call stack.
The file was modified latin_hypercube_driver_module.F90 (diff)
The file was modified silhs_api_module.F90 (diff)
Commit f0871e6ebc1641bac7b34aa169aa92e42a4ff13e by Gunther Huebler
Removing the target attributes wherever possible. These are artifacts from when gr and the the stats types were globals, and got naively copied when these were pushed through the call stack.
The file was modified setup_clubb_pdf_params.F90 (diff)
The file was modified stats_zt_module.F90 (diff)
The file was modified stats_zm_module.F90 (diff)
The file was modified stats_sfc_module.F90 (diff)
The file was modified turbulent_adv_pdf.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
The file was modified fill_holes.F90 (diff)
The file was modified diffusion.F90 (diff)
The file was modified grid_class.F90 (diff)
The file was modified advance_helper_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 advance_xp3_module.F90 (diff)
The file was modified mixing_length.F90 (diff)
The file was modified stats_lh_sfc_module.F90 (diff)
The file was modified stats_rad_zm_module.F90 (diff)
The file was modified stats_rad_zt_module.F90 (diff)
The file was modified advance_xm_wpxp_module.F90 (diff)
The file was modified stats_lh_zt_module.F90 (diff)
The file was modified calc_pressure.F90 (diff)
The file was modified mono_flux_limiter.F90 (diff)
The file was modified clip_explicit.F90 (diff)
The file was modified stats_clubb_utilities.F90 (diff)
The file was modified sfc_varnce_module.F90 (diff)
The file was modified sponge_layer_damping.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified parameters_tunable.F90 (diff)
The file was modified pos_definite_module.F90 (diff)
The file was modified precipitation_fraction.F90 (diff)
The file was modified advance_wp2_wp3_module.F90 (diff)
Commit 2ef3f37556bfcf08c474e6953814504db81c3ff0 by noreply
Remove radf variable from CLUBB call 

For pull request #1183 and ticket #1152.
The file was modified advance_wp2_wp3_module.F90 (diff)
The file was modified advance_clubb_core_module.F90 (diff)
The file was modified clubb_api_module.F90 (diff)
Commit e2a3ade475ec851c7e0c5f32ae31d41ae8dc8014 by noreply
Remove radf variable from call to CLUBB

For pull request #158 and ticket larson-group/clubb#1152.
The file was modified SRC/SGS_CLUBB/clubb_sgs.F90 (diff)