[pull] master from wrf-model:master#7
Merged
Conversation
#2185) TYPE: bug fix KEYWORDS: WRF-Chem, dry air density SOURCE: NOAA GSL, Alexander Ukhov (KAUST) DESCRIPTION OF CHANGES: Problem: It was found that dry air density was miscalculated. Solution: Removed unnecessary factor. Simulations before and after did not show any significant difference, as expected. LIST OF MODIFIED FILES: M chem/module_chem_utilities.F TESTS CONDUCTED: The Jenkins tests are all passing. RELEASE NOTE: Fixed calculation of dry air density in module_chem_utilities.F. The bug had a very minor effect.
TYPE: enhancement KEYWORDS: testing, devops, github, workflow SOURCE: internal DESCRIPTION OF CHANGES: Problem: The CI/CD testing framework using github actions is set to trigger on PR label events. However, labels are not just used for testing and will trigger the workflow. While the workflow does have checks in place to skip any labels that aren't meant to trigger testing, this skipped workflow status will override any previous actual test status. This can be confusing if two labels are applied at the same time, one being a test label, and only one status appears showing a skipped workflow. Unique naming of workflow runs does not mitigate this problem as the posted status is tied to the workflow internal id and not the run name. Solution: Convert the main workflow that hosts the test sets into a dispatch workflow, meaning it must manually be triggered. This has the intended effect of decoupling the workflow id from any PR and will not normally show up as a status at the bottom of PRs solving the issue of independent labels overriding each other. To solve the workflow no longer appearing within PR statuses, the github REST API is used to create a commit status pointing to its respective workflow run via `target_url` along with the current state of the job. As the main workflow must manually be triggered, a new entry point proxy workflow is used to filter test labels and request a test run if needed. This paradigm allows events to be triggered within a PR context, simplifying gathering the data necessary to run the correct PR branch. Furthermore, the entry point will still suffer the initial problem of status override on multiple labels, but this should be acceptable as actual test labels will create their own commit statuses once queued. The dispatch workflow is unable to be run within the context of PR merge refs, nor the head of the branch from a fork (as that would run the workflow in _that_ fork). Thus, the dispatch workflow is run using the base ref of the PR if from a fork, or the head ref *ONLY IF* originating from the parent repo of the workflow. This means testing of the immediate changes to the workflow can only be observed within the PR of an internal repo branch, limiting development slightly. The benefits, however, are a cleaned up status reporting AND increased security as no runner code that isn't already within a branch of the repository will be executed. One should still ensure the underlying tests are okay to run TESTS CONDUCTED: 1. Testing was done in independent fork to demonstrate initial issue and feasibility of this solution.
… generation (#2136) TYPE: bug fix KEYWORDS: registry, path SOURCE: internal DESCRIPTION OF CHANGES: Problem: PR #1975 added the ability for registry code to be generated out-of-source. To do this, a provided path is used and prepended to include statements within registry files. The max path length checks to create the search path string in a `char*` does not take into account the combined prepend path + relative file path length. When this happens, no obvious errors occur, but a buffer overflow causes malformed registry code to be used, eventually leading to failed compilation. Solution: Use a max path length that checks both the relative file path length and combined length when using the prepended path. As failure to pass this will result in erroneous code, the error messages have been updated to convey that as well. TESTS CONDUCTED: 1. Tested with CMake build using an absolute path greater than ~128. Without these changes the registry code will pass but compilation will fail. With these changes, that path length works and paths > 256 will fail at the registry code generation step. RELEASE NOTE: Bug fix for registry path length checks when doing out-of-source code generation
TYPE: Bug Fix KEYWORDS: CCE, compilation errors, Cray SOURCE: Miroslaw Andrejczuk (HPE) DESCRIPTION OF CHANGES: Problem: There were few errors reported by Cray compiler when building WRF-CHEM code. In chem/module_optical_averaging.F comma after write statements triggered error when building, and for chem/module_mosaic_addemiss.F compiler complained that because subroutine mosaic_dust_gocartemis has an optional argument an interface to this routine is needed in module itself. Solution: Remove commas after write statements in module_optical_averaging.F. Move _END MODULE module_mosaic_addemiss_ statement in the file to include subroutine mosaic_dust_gocartemis in the module definition. ISSUE: For use when this PR closes an issue. Fixes #2252 LIST OF MODIFIED FILES: chem/module_mosaic_addemiss.F chem/module_optical_averaging.F TESTS CONDUCTED: 1. With those changes I can build wrf/em_real with CCE 2. The Jenkins tests are all passing.
…emory deallocation (#2240) TYPE: Bug fix KEYWORDS: seg fault, diag_nwp2 SOURCE: Menda Chasteen DESCRIPTION OF CHANGES: Running with `diag_nwp2 = 1` leads to a segmentation fault related to prematurely deallocating `dz8w` in [start_em.F](https://github.com/wrf-model/WRF/blob/f52c197ed39d12e087d02c50f412d90d418f6186/dyn_em/start_em.F#L2004). This PR fixes the error by moving the deallocate statement to after the `trad_fields` call. LIST OF MODIFIED FILES: dyn_em/start_em.F TESTS CONDUCTED: The regression tests are all passing. RELEASE NOTE: This PR fixes a seg fault error due to early deallocation of array dz8w for diag_nwp2=2 option in start_em.F.
TYPE: bug fix KEYWORDS: chem, make SOURCE: internal DESCRIPTION OF CHANGES: Problem: PR #2018 Changed how KPP helper programs generate code by now accepting relative paths. The relative path passed into `tuv_kpp` for the first part of generation is wrong and should match the relative paths used in the other calls. Using the wrong path causes KPP compilation with the make build to fail with incorrect Fortran syntax in the kpp mechanism case selection. Solution: Change the `tuv_kpp` relative path to match all other calls, thus operating on the same set of files generated in that directory. TESTS CONDUCTED: 1. With these edits, make compilation now passes
… with -D (#2249) Prevent floating point exception in phys/module_mp_radar.F when debugging with -D related to new variables in UDM scheme. TYPE: bug fix KEYWORDS: debug, radar, microphysics, UDM, -D SOURCE: Jack Bartlett (Imperial College London) DESCRIPTION OF CHANGES: Problem: Lines 225 and 226 in phys/module_mp_radar.F trigger a floating point exception when debugging with option -D and using any microphysics scheme which calls `radar_init` except the UDM scheme because `xam_h` and `xbm_h` are not initialised in any other microphysics scheme. Solution: Initialise `xam_h` and `xbm_h` at 0 and check if they have been given a value greater than 0 before finding their reciprocals. ISSUE: For use when this PR closes an issue. Fixes #2248 LIST OF MODIFIED FILES: list of changed files (use `git diff --name-status master` to get formatted list) phys/module_mp_radar.F TESTS CONDUCTED: Only tested by trying `mp_physics=8` with debugging option -D and the new fixes (which previously triggered a fpe). Co-authored-by: Jack Bartlett <[email protected]>
…2091) TYPE: enhancement KEYWORDS: cmake, configuration SOURCE: internal DESCRIPTION OF CHANGES: Problem: The current solution for implicitly matching symbols between C and Fortran relies on user-modification of a stanza for their system. While stanzas can be configured to a specific architecture and options selection, this approach is limited and overly specific to user configuration when it could be programmatically determined. Likewise, if a new stanza is introduced it will likely only be tested by one user on their particular system. Thus, if this stanza could be used elsewhere but needs underscores on C symbols for Fortran usage it will not be evident why the stanza does not work for this new user. Solution: Programmatically determine if underscores are needed in C compilation in the CMake build. Sanitize out any definition of underscore in the stanza so that CMake configuration checks take precedence.
…lls (via .gitattributes) (#2155) PURPOSE: instruct GitHub to create empty, instead of incomplete, release tarballs (via .gitattributes) TYPE: enhancement KEYWORDS: release, gitmodules SOURCE: @slayoo DESCRIPTION OF CHANGES: Problem:  Solution: Make the auto-generated files empty (seems that disabling auto-generation entirely is not supported) ISSUE: none ? LIST OF MODIFIED FILES: `.gitattributes` added TESTS CONDUCTED: Tested to work in another project: https://github.com/gnudatalanguage/gdl/blob/master/.gitattributes
TYPE: text only KEYWORDS: em_les, e_vert, namelist.input, default SOURCE: internal DESCRIPTION OF CHANGES: Problem: The default namelist.input file in the em_les case directory had e_vert set to 40, 100, 41, which may confuse beginner users. If they leave as-is when running a nested simulation, they will get an ideal.exe error Solution: Changed the setting to "e_vert = 40, 40, 40." LIST OF MODIFIED FILES: M test/em_les/namelist.input TESTS CONDUCTED: No test needed - text only
…d, etc. (#2261) This PR corrects the units designations of the gravity wave drag diagnostics variables dusfcg, dvsfcg, dtaux3d and dtauy3d as follows: The units for the “dusfcg” and “dvsfcg” variables are currently “Pa m s^{-1}” when they actually should simply be “Pa”. These variables represent the vertical integral of “d(tau)/dz”, which turns out to be the GWD at the surface, whose units are “Pa”. The units for the “dtaux” and “dtauy” variables are currently “m s^{-1}” when they actually should be “m s^{-2}”. These variables represent the vertical divergence of the horizontal GWD momentum flux ( (-1/rho) * d(tau)/dz ), where tau is the GWD momentum flux or “wave stress” (units are Pascal). This code change is text only, and does not change the model results.
TYPE: no impact, text only KEYWORDS: surface layer option, tropical suite SOURCE: internal DESCRIPTION OF CHANGES: This PR switches the surface layer option in tropical suite from 91 (MM5 option) to 1, the revised MM5 option. The change is consistent with the 'mesoscale-reference' suite physics in MPAS starting from v8.2.0. LIST OF MODIFIED FILES: M share/module_check_a_mundo.F TESTS CONDUCTED: Yes RELEASE NOTE: This PR changes the surface layer option in tropical suite from old MM5 option (sf_sfclay_physics = 91) to revised MM5 option (sf_sfclay_physics = 1).
TYPE: Bug fix and new feature KEYWORDS: volcanic eruption, emiss_opt_vol, ash, so2, water vapor, sulfate SOURCE: Alexander Ukhov (KAUST) DESCRIPTION OF CHANGES: Problem: There is a bug in the gravitational settling of the ash. Large ash particles have a very high falling speed. Solution: Fix the bug and introduce the correction factor for large ash particles. New additions: - Added calculation of optical properties of ash and sulfate aerosol - Added diagnostics for ash, SO2, and sulfate. This can be used fora mass balance check - Added emissions of water vapor and sulfate aerosols - Added new emiss_opt_vol=3, which implies the new emission preprocessing method (avoiding prep_chem_source.exe) - Many other small corrections and improvements. More details in the following GMD paper: A. Ukhov, G. Stenchikov, J. Schnell, R. Ahmadov, U. Rizza, G. Grell, and I. Hoteit. Enhancing volcanic eruption simulations with the wrf-chem v4.8. Geoscientific Model Development, 18(23):9805–9825, 2025. doi: 10.5194/gmd-18-9805-2025. URL https://gmd.copernicus.org/articles/18/9805/2025/. It will also be in upcoming Ukhov et al., 'In the Wake of the Hayli Gubbi Eruption', 2026. LIST OF MODIFIED FILES: M Registry/registry.chem M chem/CMakeLists.txt M chem/Makefile M chem/aerosol_driver.F M chem/chem_driver.F M chem/chemics_init.F M chem/depend.chem M chem/dry_dep_driver.F M chem/emissions_driver.F M chem/mechanism_driver.F M chem/module_chem_utilities.F M chem/module_ctrans_grell.F M chem/module_optical_averaging.F M chem/module_vash_settling.F A chem/module_volc_chem.F M chem/module_wetdep_ls.F M chem/optical_driver.F M share/mediation_integrate.F TESTS CONDUCTED: 1. See publications. 2. The Jenkins tests are all passing. RELEASE NOTE: This PR fixes a bug for gravitational settling of the ash, and adds new capabilities to simulate volcanic eruptions. --------- Co-authored-by: weiwangncar <[email protected]>
TYPE: enhancement/new features KEYWORDS: MYNN-EDMF, turbulence, clouds, downdrafts, closure levels SOURCE: Joseph Olson (NOAA-GSL) DESCRIPTION OF CHANGES: Problem(s): 1. Excessive low-level clouds, especially over water 2. prototype version of downdrafts was not well tested, 3. excessive near-surface mixing in very stable conditions. 4. Checks in module_check_a_mundo.F needed updates associated with the incoming changes. Also there was a redundant check that needed to be removed. Solution(s): 1. revised subgrid clouds option (bl_mynn_cloudpdf = 2) improved upon the excessive low-level clouds previously noted. 2. More testing of the downdrafts has been performed and several changes were made to improve the scale-awareness as well as the underlying physical representation of downdrafts. Still requires more testing with significantly different vertical resolution. Not active by default but considered more reliable. 3. A handful of related revisions/tunings was made to improve low level jet structures in stable conditions. This touched the LBC for TKE, Prandtl number regulation, and a mixing length revision. All have been documented in the updated tech note ([doi:10.25923/rahr-sj70](https://doi.org/10.25923/rahr-sj70)). 4. module_check_a_mundo.F has been modified to work with the updated MYNN-EDMF options. LIST OF MODIFIED FILES: M Registry/Registry.EM_COMMON M dyn_em/module_first_rk_step_part1.F M phys/MYNN-EDMF M phys/module_pbl_driver.F M share/module_check_a_mundo.F TESTS CONDUCTED: 1. WFIP3 case studies (using WRF) show robust improvement in stable LLJ conditions. Realtime testing (mostly in MPAS) show improvements relative to HRRR. Some of this was previewed in the last WRF/MPAS workshop but more modifications have been made since. 2. The Jenkins tests are all passing. RELEASE NOTE: The MYNN-EDMF submodule has been updated to be consistent with the updated [NOAA Tech Note](https://doi.org/10.25923/rahr-sj70). This same version of the MYNN-EDMF submodule will be implemented into MPAS (next), then CCPP. Some recent updates include (1) revised subgrid clouds option (bl_mynn_cloudpdf = 2) improves the low-level clouds. (2) more testing of the downdrafts has been performed and several changes were made to improve the scale-awareness as well as the underlying physical representation of downdrafts. (3) a handful of related revisions/tunings was made to improve low level jet structures in stable conditions for several WFIP3 cases. All have been documented in the updated tech note ([doi:10.25923/rahr-sj70](https://doi.org/10.25923/rahr-sj70)). Beware of the new MYNN-EDMF-specific options (bl_mynn_mixaerosols, bl_mynn_mixnumcon, and bl_mynn_mixscalars). Their defaults may not be suitable for your research/applications, but in general, we suggest to use this options and set scalar_pblmix=0 and tracer_pblmix=0, since the MYNN can perform the associated nonlocal mixing.
TYPE: bug fix, enhancement, new submodule version KEYWORDS: MYNN-SFC, submodule SOURCE: Joseph Olson (NOAA-GSL) and Xia Sun (NOAA-GSL) DESCRIPTION OF CHANGES: Problem: - Different versions of this scheme exist in different models, making updates more tedious. - Some minor bugs were found, such as SPP implementation to the thermal/moisture roughness lengths over water and reports of lacking restart reproducibility - The use of shared namelist variables (iz0tlnd and isftcflx) carried different meaning for different surface layer schemes. Need MYNN-specific variables. Solution: - Centralize development in submodule repository and hook up to all models (WRF, MPAS, CCPP) - implement bug fixes - added new MYNN-specific options (sf_mynnsfc_sfcflux_land and sf_mynnsfc_sfcflux_water), which will be carried to all other model frameworks, and removed the use the shared options that carry different meaning in different surface layer schemes. LIST OF MODIFIED FILES: M .gitmodules M Makefile M Registry/Registry.EM_COMMON M dyn_em/module_first_rk_step_part1.F M main/depend.common M phys/CMakeLists.txt A phys/MYNN-SFC M phys/Makefile M phys/module_physics_init.F D phys/module_sf_mynn.F M phys/module_surface_driver.F TESTS CONDUCTED: 1. Do mods fix problem? Yes. 2. All tests have been performed on the JET system with a recent version of the intel compiler. Tests were performed with a comprehensive set of debug flags. Additional testing is still in progress. Some minor updates are anticipated over the next couple weeks. 3. The Jenkins tests are all passing. RELEASE NOTE: The MYNN surface layer scheme has been updated to the [new modularized submodule version](https://github.com/NCAR/MYNN-SFC). The original form of this version was taken from the CCPP but it has been decomposed into 3 different modules for land, water, and ice. This helps to centralize all future development in submodule repository that will soon hook up to all models (WRF, MPAS, CCPP). Some minor bug fixes have been implemented, including a fix for using SPP in the water submodule. New MYNN-specific options (sf_mynnsfc_sfcflux_land and sf_mynnsfc_sfcflux_water) have been added to replace the shared options (iz0tlnd and isftcflx) that carried different meaning for different surface layer schemes.
TYPE: no impact KEYWORDS: git, submodule, manage_externals SOURCE: internal DESCRIPTION OF CHANGES: Problem: MMM-physics (under `phys/physics_mmm`) is currently the only external repository tracked with only manage_externals. This makes manage_externals and git two failure points for a proper clone of WRF to succeed. Solution: Add MMM-physics as a git submodule using the original path of `phys/physics_mmm`). To avoid confusion in managing two locations of the submodule (one in `.gitmodules` and the other in `arch/Externals.cfg`) the MMM-physics repo is removed from manage_externals. From a user perspective, no change to the build process is evident. TESTS CONDUCTED: 1. Build proceeds as normal from a fresh clone.
TYPE: new feature KEYWORDS: Microphysics, Operational models SOURCE: Anders Jensen NOAA/GSL DESCRIPTION OF CHANGES: Problem: Microphysics development of a Thompson-Eidhammer based scheme for operational applications has advanced to a submodule, TEMPO. This new development should be made available to WRF users. Solution: Connect TEMPO to WRF. A cleaned and refactored version of TEMPO is being tested in the UFS community's MPAS. Additionally, a PR, MPAS-Dev/MPAS-Model#1393, to add TEMPO to NCAR's MPAS is in progress. This current PR will allow the community to use this same microphysics across the UFS, MPAS, and WRF. LIST OF MODIFIED FILES: M .gitmodules M main/depends.common M Makefile M clean M phys/Makefile M phys/module_physics_init.F M phys/module_microphysics_driver.F M Registry.EM_COMMON M dyn_em/module_initialize_real.F TESTS CONDUCTED: 1. compiled and ran em_quarter_ss 2. restart test with em_quarter_ss 3. bit-for-bit with different number of processes using em_quarter_ss. 4. Passed regression tests. RELEASE NOTE: TEMPO is the Thompson-Eidhammer Microphysics Parameterization for Operations. TEMPO lives here: https://github.com/NCAR/TEMPO and technical documentation lives here: https://ncar.github.io/TEMPO/. TEMPO specific release notes are here: https://github.com/NCAR/TEMPO/releases/tag/tempo_v3.0.0 TEMPO version 3.0.0 is the current release version. TEMPO is being tested in the ufs-community fork of MPAS for next-generation convection-allowing forecast systems (https://github.com/ufs-community/MPAS-Model). Thus, TEMPO is being continually evaluated for improvement. Additionally, there is a PR in progress to connect TEMPO (v3.0.0) to NCAR's MPAS (MPAS-Dev/MPAS-Model#1393). The version of TEMPO currently in the CCPP (https://github.com/ufs-community/ccpp-physics) will be updated to v3.0.0 soonish. TEMPO is connected to WRF, MPAS, and CCPP as a submodule, and the same v3.0.0 code will be connected to WRF (this PR), MPAS, and CCPP. In WRF, supported namelist options include `tempo_aerosolaware==1` to use the aerosol-aware version, and `tempo_hailaware==1` to use the hail-aware version. Both options are on by default. Key improvements include: - TEMPO is in a submodule that allows for flexibility when connecting TEMPO to dynamical cores - Code modularity was been improved and technical documentation has been added - Bux fix for cloud droplet number concentration during evaporation - Surface emissions of water-friendly aerosols have been reduced based on a sensitivity simulation that aimed to better constrain water-friendly aerosol concentrations over 24-36 hour forecast periods and reduce the accumulation of aerosols in the atmosphere - A few modifications were made to graupel number concentration tendencies (when using the hail-aware option) for processes that cause rain to freeze to increase reflectivity in deep convective storms - Added simple sedimentation tests - Added unit tests - Added a program to build lookup tables with MPI capability - Lookup tables have been unified
TYPE: enhancement KEYWORDS: cmake, netcdf, netcdf-fortran, nf-config SOURCE: internal DESCRIPTION OF CHANGES: Problem: As nf-config does not provide an equivalent --libdir output we must derive the info ourselves. --flibs provided the info previously, but it may be more practical to use the --prefix output and search suspected suffixes instead as --flibs contains other libraries' link info. Solution: Use output of --prefix from nf-config as the primary source of library dir. To handle the cases where --prefix is empty, we still fall back to --flibs and if that proves insufficient then the as a last resort one directory above the include directory can be used as a substitute for the prefix. TESTS CONDUCTED: 1. Tested with netCDF-Fortran v4.6.2, modifying nf-config to emulate fallback if clauses RELEASE NOTE: Better nf-config libdir detection in CMake build
TYPE: enhancement KEYWORDS: cmake, da SOURCE: internal DESCRIPTION OF CHANGES: Problem: The current CMake build does not support building the DA core Solution: Allow the selection and building of the DA core. Some minor changes to source code were made to facilitate the compilation without resorting to in situ file rewrites with `sed`. These changes fix compilation errors with `iargc` intrinsic function in gfortran but still allow the original make / cpp preprocessing to work as originally done. A notable difference to the original DA build is that no source code is copied or duplicated into the folders. Instead in the respective folders used for shared source code between cores if a DA build is requested only select files are compiled. Otherwise the full set of files in those directories is used. Additionally, WAVELET, CRTM, and BUFR can be selected as CMake options (not environment variables). All are defaulted to on in this iteration.
TYPE: bugfix, enhancement KEYWORDS: syncing WRF-Hydro/hydro, gage-assisted diversion, bugfixes SOURCE: internal hydro team + contributor - Soren Rasmussen, NSF NCAR - Ryan Cabell, NSF NCAR - Andrew Song, Inner Mongolia Meteorological Service / China Meteorological Administration (Wrote PR#829) DESCRIPTION OF CHANGES: This PR updates the hydro directory to the [NCAR/wrf_hydro_nwm_public](https://github.com/NCAR/wrf_hydro_nwm_public) repository. It includes the following PRs - NCAR/wrf_hydro_nwm_public#756 - NCAR/wrf_hydro_nwm_public#811 - NCAR/wrf_hydro_nwm_public#816 - NCAR/wrf_hydro_nwm_public#823 - NCAR/wrf_hydro_nwm_public#829 - NCAR/wrf_hydro_nwm_public#827 - NCAR/wrf_hydro_nwm_public#855 - NCAR/wrf_hydro_nwm_public#856 - NCAR/wrf_hydro_nwm_public#861 - NCAR/wrf_hydro_nwm_public#862 LIST OF MODIFIED FILES: ``` $ git diff --name-status develop M hydro/CMakeLists.txt M hydro/CPL/WRF_cpl/CMakeLists.txt M hydro/Data_Rec/module_namelist.F90 M hydro/Data_Rec/module_namelist_inc.F90 M hydro/HYDRO_drv/module_HYDRO_drv.F90 M hydro/Makefile M hydro/OrchestratorLayer/config.F90 M hydro/Routing/CMakeLists.txt A hydro/Routing/Diversions/CMakeLists.txt A hydro/Routing/Diversions/Makefile A hydro/Routing/Diversions/module_diversions.F90 A hydro/Routing/Diversions/module_diversions_timeslice.F90 M hydro/Routing/Makefile M hydro/Routing/module_channel_routing.F90 M hydro/arc/Makefile.mpp D hydro/arc/Makefile.seq M hydro/arc/macros.mpp.cray_fortran M hydro/arc/macros.mpp.gfort M hydro/arc/macros.mpp.ifort D hydro/arc/macros.mpp.ifort.luna D hydro/arc/macros.mpp.ifort.summit_has D hydro/arc/macros.mpp.ifort.theia M hydro/arc/macros.mpp.linux D hydro/arc/macros.seq.IBM.xlf90_r D hydro/arc/macros.seq.gfort D hydro/arc/macros.seq.ifort D hydro/arc/macros.seq.linux D hydro/arc/macros.theia.debug D hydro/arc/macros.yellowstone D hydro/arc/macros.yellowstone.debug M hydro/configure M hydro/nudging/CMakeLists.txt A hydro/nudging/io/CMakeLists.txt R098 hydro/nudging/module_nudging_io.F90 hydro/nudging/io/module_nudging_io.F90 M hydro/utils/CMakeLists.txt A hydro/utils/fortglob/CMakeLists.txt A hydro/utils/fortglob/Makefile A hydro/utils/fortglob/fortglob.F90 A hydro/utils/fortglob/libfortglob.c A hydro/utils/fortglob/libfortglob.h ``` TESTS CONDUCTED: **NOTE THAT THE PR IS IN DRAFT UNTIL TESTING IS COMPLETE**. Current building and running 1. [WRF-Hydro Front Range, CO testcase](https://wrf-hydro.readthedocs.io/en/latest/appendices.html#a2-coupled-wrf-wrf-hydro-test-case-user-guide) 2. Testing multiple configurations of Make and CMake build systems RELEASE NOTE: Hydro bug fixes plus modifications to add initial support for gage-assisted diversions in channel routing, which requires a new optional Diversion netCDF parameter file. This adds a C compiler dependency --------- Co-authored-by: Ryan Cabell <[email protected]> Co-authored-by: Andrew Song <[email protected]>
TYPE: bug fix KEYWORDS: fitch, wind farm parameterization, turbine, wind farm, wind energy SOURCE: Balthazar Sengers, Fraunhofer IWES, Germany DESCRIPTION OF CHANGES: Problem: 1. In the standard Fitch wind farm parameterization, the local (grid cell) wind speed is used to calculate power and thrust. This wind speed is however reduced because of induction. Power and thrust curves (look-up tables) are determined using free inflow wind speed. 2. The turbine thrust is a relevant metric that is not outputted. Solution: 1. The axial induction factor is calculated and used to correct the local (grid cell) wind speed back to the free inflow wind speed. This is done in 2 iterations. Code becomes an additional option for 'windfarm_opt=1' called windfarm_induction = 1 (default on) where 0 is old version. 2. The turbine thrust is calculated and passed through so it can be outputted now. LIST OF MODIFIED FILES: M Registry/Registry.EM_COMMON M dyn_em/module_first_rk_step_part1.F M phys/module_pbl_driver.F M phys/module_wind_fitch.F A doc/licenses/fraunhofer_license.txt TESTS CONDUCTED: 1. Yes, demonstrated in paper: https://doi.org/10.5194/wes-9-1689-2024 2. The regression tests have passed. RELEASE NOTE: This PR corrects local (grid cell) wind speed to free wind speed using axial induction correction proposed by Vollmer et al. (2024) https://doi.org/10.5194/wes-9-1689-2024 in Fitch wind farm parameterization. The fix can be turned off by using windfarm_induction = 0. --------- Co-authored-by: sengers <[email protected]> Co-authored-by: Balthazar Arnoldus Maria Sengers <[email protected]>
… Canopy Model (#2272) **TYPE:** new feature **KEYWORDS:** urban canopy models, urban trees, nature-based solutions, urban grass, urban hydrology, radiative view factors **SOURCE:** Yuqi Huang (University of Oklahoma), Chenghao Wang (University of Oklahoma), Cenlin He (NCAR) **DESCRIPTION OF CHANGES:** _Problem:_ The current WRF-urban modeling system employs a single-layer urban canopy model (SLUCM) that assumes a dry street canyon. While a green roof module exists, ground vegetation and street trees are not represented. As a result, key nature-based solution (NbS) processes such as evapotranspiration, radiative shading, and soil–vegetation–atmosphere interactions are not captured. In addition, radiative exchanges involving trees are not explicitly resolved. A version of the urban tree module within SLUCM was developed and tested for the contiguous U.S. but only accounted for shading in a simplified way: - Wang, C., Wang, Z. H., & Yang, J. (2018). Cooling effect of urban trees on the built environment of contiguous United States. Earth's Future, 6(8), 1066–1081. https://doi.org/10.1029/2018EF000891 _Solution:_ This PR introduces urban ground vegetation and street trees into the single-layer urban canopy model. Round-shaped urban trees are explicitly represented, resolving evapotranspiration, shading, and root water uptake. Radiative exchanges between trees and surrounding urban elements are solved using newly implemented analytical view factors. The development is largely based on the Arizona State University Single-Layer Urban Canopy Model (ASLUM v3.1) and its hydrologically enhanced version, ASLUM-Hydro, and extends their capabilities within the WRF-Urban framework. See the following two papers for ASLUM v3.1 and ASLUM-Hydro: - Wang, C., Wang, Z. H., & Ryu, Y. H. (2021). A single-layer urban canopy model with transmissive radiation exchange between trees and street canyons. Building and Environment, 191, 107593. https://doi.org/10.1016/j.buildenv.2021.107593 - Huang, Y., Wang, C., & Wang, Z. H. (2025). Multi-parameterization of hydrological processes in an urban canopy model. Building and Environment, 113567. https://doi.org/10.1016/j.buildenv.2025.113567 This PR also includes the following fixes: 1. Shadow option: The default of `SHADOW` was changed to `.true.`. In the previous default setting, street-canyon shadowing was not considered. We can switch this back if you think the default should remain unchanged. 2. Impervious water retention: Minor bug fixes related to water retention depth over impervious surfaces. These only apply when `IMP_SCHEME == 2` (the default in the table is 1). 3. Radiative (green) roof term (`GROPTION = 1`): Changed `RGR = EPSV*(RX-SIG*(TA**4.)/60.)` to `RGR = EPSV*(RX-SIG*(TGRP**4.)/60.)`. This is a bug fix. Note that the default table value for `GROPTION` is 0. **LIST OF MODIFIED FILES:** M Registry/Registry.EM_COMMON M dyn_em/module_first_rk_step_part1.F M dyn_em/start_em.F M phys/module_physics_init.F M phys/module_sf_clm.F M phys/module_sf_noahdrv.F M phys/module_sf_urban.F M phys/module_surface_driver.F M run/URBPARM.TBL M run/URBPARM_LCZ.TBL M run/URBPARM_UZE.TBL M wrftladj/module_physics_init_ad.F M wrftladj/module_physics_init_tl.F M wrftladj/start_em_ad.F M wrftladj/start_em_tl.F **TESTS CONDUCTED:** - Successfully tested in offline mode coupled with the HRLDAS system - Demonstrated systematic performance improvements across 20 global urban sites when evaluated against flux-tower observations from the Urban-PLUMBER project - Successfully compiled on the NCAR Derecho system - Short-term online WRF simulations are currently ongoing - Have passed the regression tests. **Note:** Successful compilation requires Noah-MP-related source files that arenot included in WRF v3.7.1, including a modified version of`module_sf_noahmpdrv.F`. These changes will be addressed in a separatePR dedicated to Noah-MP. **RELEASE NOTE:** This PR introduces urban ground vegetation and street trees into the single-layer urban canopy model and it is based on the following two manuscripts in development: - Huang, Y., Wang, C., & He, C. Integrating nature-based solutions intothe WRF-urban modeling system. Manuscript in prepration. - Wang, C., Huang, Y., Miller, D. L., Katz, D., & Ghosh, A. K. Analytical view factors for urban canopy models with trees: model development and case study in New York City. Manuscript in preparation.
TYPE: enhancement KEYWORDS: Noah-MP, refactored code SOURCE: Cenlin He (NCAR), Tzu-Shun Lin (NCAR) DESCRIPTION OF CHANGES: This PR includes necessary code changes to couple WRF with the latest refactored Noah-MP v5.1.2 via git submodule mechanisms. Compared to Noah-MP v4.7 in WRF v4.7.1, the Noah-MP v5.1.2 has several added new model physics: 1. add new snow compaction scheme (with namelist option control) developed by Abolafia-Rosenzweig et al 2024 (JAMES; https://doi.org/10.1029/2023MS003869) (NCAR/noahmp#174) 2. improved spring wheat parameters developed by Zhang et al 2023 (GMD; https://doi.org/10.5194/gmd-16-3809-2023) (NCAR/noahmp#175) 3. add new wetland scheme (with namelist option control) developed by Zhang et al 2022 (WRR; https://doi.org/10.1029/2021WR030573) (NCAR/noahmp#186) 4. couple SNICAR v3 snow albedo scheme into Noah-MP (with namelist option control) developed by Lin et al 2024 (JHM; https://doi.org/10.1175/JHM-D-24-0082.1) (NCAR/noahmp#187) 5. add new snow cover scheme (with namelist option control) developed by Abolafia-Rosenzweig et al 2025 (JAMES; doi:10.1029/2024MS004704) (NCAR/noahmp#191) LIST OF MODIFIED FILES: M CMakeLists.txt M Makefile M Registry/Registry.EM_COMMON M Registry/registry.dimspec M Registry/registry.noahmp M arch/Config.pl M chem/depend.chem M chem/module_uoc_dust.F M clean M dyn_em/module_first_rk_step_part1.F M dyn_em/start_em.F M main/CMakeLists.txt M main/depend.common M phys/CMakeLists.txt M phys/Makefile M phys/module_diag_misc.F M phys/module_diagnostics_driver.F M phys/module_physics_init.F M phys/module_sf_clm.F M phys/module_surface_driver.F M phys/noahmp M run/README.namelist M run/README.physics_files M share/mediation_wrfmain.F M share/output_wrf.F M test/em_real/CMakeLists.txt M test/em_real/examples.namelist TESTS CONDUCTED: - The code compiles successfully on NCAR's HPC (Derecho) using both intel and gfortran/gcc compilers. The test runs are also successful including that with activated MMF groundwater scheme, urban scheme, and different combinations of PBL, microphysics, and surface layer schemes. (tested by Cenlin He and Tzu-Shun Lin from NCAR), and has passed the regression tests. - Regression tests have passed. RELEASE NOTE: Coupling with refactored Noah-MP v5.1.2. This new version of NoahMP has a few new options and improvements compared to the previous Noah-MP v4.7 in WRF v4.7.1. See PR for details. --------- Co-authored-by: Massimo D'isidoro <[email protected]> Co-authored-by: dudhia <[email protected]> Co-authored-by: Yuxuan Xie <[email protected]>
This PR introduces a set of tests that allows replication of the [WRF Coop Tests](https://github.com/kkeene44/wrf-coop/blob/update-v16/build.csh) which are normally run as regression tests for PRs. TYPE: enhancement KEYWORDS: testing, cicd, continuous integration SOURCE: internal DESCRIPTION OF CHANGES: Problem: The current regression tests found in the WRF Coop repository suffer from a few key design points: 1. located in a separate repository allowing code divergence and extra maintenance burden 2. confusing layout due to multiple repositories and data file locations 3. test logic obfuscation due to actual code to be executed auto-generated 4. limited execution tightly coupled to a containerized environment PR #2095 tried to remedy this using `hpc-workflows`, however the framework likewise suffered from issues: 1. manual unconventional environment management 2. duplication of effort between tests and lack of support for dependencies between common actions (e.g. re-using builds across multiple tests) 3. limited support for extensibility outside of argument manipulation Solution: This PR does not aim to entirely replace PR #2095 (notably the CI/CD GitHub worklow) and instead leverages this point in PR #2095: > 3. Write CI/CD tests in a simple and generally CI/CD framework-agnostic method where definitions of these also reside _within the WRF repo_ These tests follow this same mantra of _"CI/CD framework-agnostic"_ such that they can more or less be a drop in replacement only for the `hpc-workflows`-based tests. The tests will cover the WRF Coop Test Cases (provided is a default configuration for Derecho): | Tests | | | ------------- | ------------- | | em_real | em_realG | | em_realA | em_realH | | em_realB | em_realI | | em_realC | em_realJ | | em_realD | em_realK | | em_realE | em_realL | | em_realF | various build tests | The tests are now written in the [SANE Workflows](https://github.com/islas/sane_workflows) framework, which solves most of the issues faced by the other two setups. Data is still spread across multiple locations, but that is separate from the testing code. The structure of the tests is as follows: ``` .sane/ #< The root directory in WRF where the testing code is kept └── wrf #< A subfolder to make all python-imports look like `import wrf` ├── custom_actions │ └── run_wrf.py #< A module that has our custom reusable classes to setup initial conditions and model runs ├── hosts │ ├── derecho_envs.jsonc #< The environments that derecho.jsonc has │ └── derecho.jsonc #< Definition of derecho HPC system for this framework ├── scripts #< A subfolder to house all our shell helper scripts that do the bulk of the work │ ├── buildCMake.sh │ ├── buildMake.sh │ ├── compare_wrf.sh #< Use diffwrf to compare two runs │ ├── run_init.sh #< Configurable to run initial conditions (em_real.exe or ideal.exe) │ ├── run_wrf_restart.sh #< Runs wrf.exe again in previous run folder and compares history │ └── run_wrf.sh #< Runs wrf.exe └── tests #< Where our tests live ├── builds │ └── builds.py #< Python module that sets up ALL our compilation tests (make + cmake) └── regtests └── wrf_coop.py #< Python module that sets up the WRF Coop em_real* tests ``` Documentation for this new framework can be found at: https://sane-workflows.readthedocs.io/en/latest/ One could run these tests on Derecho using the following commands (inside a WRF repo clone): ```bash python3 -m venv .venv/wrf_testing source .venv/wrf_testing/bin/activate python3 -m pip install --pre sane-workflows # Runs the em_real test case sane_runner --path .sane/ --actions em_real --run ```
TYPE: enhancement KEYWORDS: cmake, pnetcdf SOURCE: internal DESCRIPTION OF CHANGES: Problem: The CMake build does not support PnetCDF detection and thus the `external/io_pnetcdf/` code cannot be built. Solution: Write a FindPnetCDF.cmake package that provides the appropriate imported target to link against and does precursory library matching if there is a dependency on netCDF C. Update the cmake code in `external/io_pnetcdf/` to build, with minor adjustments that make the CMake and Make builds compatible. The package uses the same rules of the netCDF packages, utilizing `pnetcdf-config` in the `PATH` as the source of information, or otherwise found via standard `find_package()` mechanics, e.g. `PnetCDF_ROOT`. TESTS CONDUCTED: 1. Tested CMake and Make builds with PnetCDF in environment on local machine and Derecho. RELEASE NOTE: CMake PnetCDF Find Package
TYPE: new feature KEYWORDS: submodule, cumulus, parameterization, scale-aware, aerosol-aware SOURCE: Haiqin Li ([email protected], CIRES/CU Boulder at NOAA/GSL) DESCRIPTION OF CHANGES: The Grell-Freitas (GF) cumulus convection is replaced with the Grell-Freitas-Li (GFL) submodule, which is consistent in WRF, MPAS and CCPP. It will be easy to access the GFL updates via the hash pointer of submodule. LIST OF MODIFIED FILES: M .gitmodules M Registry/Registry.EM_COMMON M dyn_em/module_big_step_utilities_em.F M dyn_em/module_convtrans_prep.F M dyn_em/module_em.F M phys/Makefile M phys/module_cumulus_driver.F M phys/module_lightning_driver.F M phys/module_physics_addtendc.F M phys/module_physics_init.F M share/module_check_a_mundo.F M wrftladj/module_cumulus_driver_ad.F M wrftladj/module_cumulus_driver_tl.F D module_cu_gf_ctrans.F D module_cu_gf_deep.F D module_cu_gf_sh.F D module_cu_gf_wrfdrv.F M chem/chem_driver.F M chem/KPP/compile_wkc TESTS CONDUCTED: 1. It was tested with a NWP case and a WRF_Chem case. 2. It passed regression tests. RELEASE NOTE: The Grell–Freitas (GF) cumulus convection scheme has been further developed as the Grell–Freitas–Li (GFL) submodule, which is implemented consistently across WRF, MPAS, and CCPP. Major updates include improved aerosol–convection interactions, several simplified approaches for cold-pool parameterization, and a new scale-awareness feature with subsidence spreading. References: Li, H., G. Grell, and Freitas, S. (2026): Aerosol-dependence of cumulus convection in the United Forecast System (UFS) Weather Model, to be submitted. Grell, G., S., Freitas, and Li, H. (2026): A New Scale Aware Technique for Convective Parameterizations, to be submitted. --------- Co-authored-by: weiwangncar <[email protected]>
Enhance model output to include CORDEX output demands and new potential useful diagnostics TYPE: new feature KEYWORDS: CORDEX, diagnostics, post-process, impact studies, scheme free diagnostics SOURCE: Lluís Fita Centro de Investigaciones del Mar y la Atmósfera (CIMA), IRL IFAECI UBA-CONICET-CNRS-IRD, Argentina DESCRIPTION OF CHANGES: Problem: The CORDEX-WRF module was initially dedicated to provide the outputs [requested](https://github.com/WCRP-CORDEX/data-request-table) in any [CORDEX](https://cordex.org/) exercise. This tends to be a tedious post-processing work, in sometimes is as long as the simulation by it self. the goal is to provide the diagnostics whilst the integration of the simulation. Enormously reducing the need for post-processing by increasing a little the integration time of the model. Solution: A new module has been created which adds about 150 new diagnostics to the model output. Aside to provide an answer to an specific climate related demand from the CORDEX WRF community, it grew fast to provide: - Additional non-specific CORDEX diagnostics - Generic definitions of certain diagnostics that might be scheme dependent - Introduction of additional variables in the integration-time p-level vertical interpolation ISSUE: For use when this PR closes an issue. Fixes #2243 LIST OF MODIFIED FILES: list of changed files (use `git diff --name-status master` to get formatted list) ``` A README.cordex M README.md M Registry/Registry.EM_COMMON M Registry/Registry.EM_COMMON.var A Registry/registry.cordex M Registry/registry.diags M Registry/registry.em_shared_collection M dyn_em/solve_em.F M dyn_em/start_em.F M frame/module_driver_constants.F M main/depend.common M phys/Makefile A phys/module_diag_cordex.F M phys/module_diag_pld.F M phys/module_diagnostics_driver.F A phys/module_diagvar_cordex.F M phys/module_physics_init.F ``` TESTS CONDUCTED: 1. Do mods fix problem? How can that be demonstrated, and was that test conducted? 2. Are the Jenkins tests all passing? Independent tests have been performed aimed to show the correct performance of the module RELEASE NOTE: First version (v1.3) of the module was accompanied by an article in GMD: Lluís Fita, Jan Polcher, Theodore M. Giannaros, Torge Lorenz, Josipa Milovac, Giannis Sofiadis, Eleni Katragkou and Sophie Bastin, 2019: CORDEX-WRF v1.3: development of a module for the Weather Research and Forecasting (WRF) model to support the CORDEX community, Geosci. Model Dev., 12, 1029-1066, 2019, doi [10.5194/gmd-12-1029-2019](https://www.geosci-model-dev.net/12/1029/2019/gmd-12-1029-2019.html) Current version of the module is v.3 and it provides about 150 new diagnostics a new section in the `namelist.input` labelled `&cdxwrf` with new parameters. Outputs are grouped in 3 files: - `wrfcdx_d<domain>_<date>`: main output file at `auxhist19` with most of the variables - `wrfhfcdx_d<domain>_<date>`: high-frequency (e,g, 10 minutes) output file at `auxhist18` only for `RAIN` and `COLMAX` implemented to assist the tracking convective systems - `wrfpress_d<domain>_<date>`: p-level interpolated variables at `auxhist23` with the additional variables You can find more details in the [CDXWRF WIKI](https://wiki.cima.fcen.uba.ar/mediawiki/index.php/CDXWRF) This work was made possible by the participation of the co-authors of the article, talks with a lot of different researchers from a lot of different countries and even other sciences. Thanks to all of them
TYPE: new feature KEYWORDS: dynamic lightning, cloud-to-ground-Lightning, Intracloud Lightning SOURCE: [[email protected]](mailto:[email protected]); [[email protected]](mailto:[email protected]) (Weather It Is, LTD and Hebrew University of Jerusalem), internal DESCRIPTION OF THE SCHEME: A new dynamic lightning scheme is added. The scheme of *Lynn et al. (2012)* is a *prognostic lightning parameterization*, though it is *not* an explicit microphysical charging–discharge scheme. Rather than predicting electric charge or electric fields directly, the scheme predicts the temporal evolution of a bulk *potential electric energy* associated with deep convection. The prognostic variable evolves from time step to time step and is driven by measures of convective intensity, primarily the vertical velocity and the mass content of key hydrometeors. Lightning discharges are triggered diagnostically when the accumulated potential electric energy exceeds prescribed threshold values, representing the onset of electrical breakdown. Following discharge, the potential energy is reduced, allowing subsequent recharge as convection continues. The DLS includes a simple scale-aware formulation that adjusts charging intensity relative to the original 4 km configuration. To run the Dynamic Lightning Scheme add these parameters to the physics section of namelist.input ``` dyn_lightning_option = 1, 1, 1, coul_pos = 0.000035, 0.000035,0.000035, coul_neg = 0.000035, 0.000035,0.000035, coul_neu = 0.000035, 0.000035,0.000035, ``` These are charging coefficients are set for `mp_physics = 28, 28, 28,` and can be modified for other microphysical schemes, if needed. For instance, if a scheme does not produce very much cloud water, these values might need to be raised. One could also modify, j_pos, j_neg, and j_neu, which are threshold values for the breakdown field that control what magnitude of "electric potential energy" must build up to produce an event for each (see Registry/registry.dyn_light). But, this is not recommended as a first step. References Lynn, B. H., Yair, Y., Price, C., Kelman, G., & Clark, A. J. (2012). Predicting cloud-to-ground and intracloud lightning in weather forecast models. Weather and Forecasting, 27, 1470–1488. https://doi.org/10.1175/WAF-D-11-00144.1 Lynn, B. H., Kelman, G., & Ellrod, G. (2015). An evaluation of the efficacy of using observed lightning to improve convective lightning forecasts. Weather and Forecasting, 30, 405–423. https://doi.org/10.1175/WAF-D-13-00028.1 Lynn, B. H., Yair, Y., Shpund, J., Levi, Y., Qie, X., & Khain, A. (2020). Using factor separation to elucidate the respective contributions of desert dust and urban pollution to the 4 January 2020 Tel Aviv lightning and flash flood disaster. Journal of Geophysical Research: Atmospheres, 125, e2020JD033520. https://doi.org/10.1029/2020JD033520 Federico, S., Torcasio, R. C., Lagasio, M., Lynn, B. H., Puca, S., & Dietrich, S. (2022). A Year-Long Total Lightning Forecast over Italy with a Dynamic Lightning Scheme and WRF. Remote Sensing, 14, 3244. https://doi.org/10.3390/rs14143244 Federico, S., Torcasio, R. C., Popova, J., Sokol, Z., Pop, L., Lagasio, M., Lynn, B. H., Puca, S., & Dietrich, S. (2024). Improving the lightning forecast with the WRF model and lightning data assimilation: Results of a two-seasons numerical experiment over Italy. Atmospheric Research, 304, 107382. https://doi.org/10.1016/j.atmosres.2024.107382 LIST OF MODIFIED FILES: list of changed files (use `git diff --name-status master` to get formatted list) A Registry/registry.dyn_light M Registry/registry.em_shared_collection M dyn_em/solve_em.F M phys/Makefile M phys/module_microphysics_driver.F A phys/module_calc_lpi_new.F A phys/module_ltng_pe.F A phys/module_ltng_strokes.F M run/README.namelist TESTS CONDUCTED: The Jenkins tests are all passing. RELEASE NOTE: A new dynamic lightning scheme is added. The scheme of Lynn et al. (2012) is a prognostic lightning parameterization and it predicts the temporal evolution of a bulk potential electric energy associated with deep convection. Activated by dyn_lightning_option = 1. The DLS includes a simple scale-aware formulation that adjusts charging intensity relative to the original 4 km configuration.
TYPE: bug fix KEYWORDS: em_tropical_cyclone, halo depth SOURCE: Wen-Pu Ho (National Central University, Taiwan) DESCRIPTION OF CHANGES: Problem: Some loops were hardcoded to start from index 1. This fails to properly account for the ghost cells required in decomposed sub-domains, leading to segmentation fault when running ideal.exe for the em_tropical_cyclone case in MPI (parallel) environment. Solution: Fix hardcoded loop indices for proper handling in MPI-decomposed domains, and broadcast base state variables with MPI function. ISSUE: Fixes #2294 LIST OF MODIFIED FILES: dyn_em/module_initialize_tropical_cyclone.F TESTS CONDUCTED: Tested with idealized TC initialization using MPI processes. RELEASE NOTE: This PR fixed an issue with not being able to execute idealized initialization program of tropical cyclone case with MPI.
…nanjiang) (#2289) TYPE: text only KEYWORDS: WRF, NOAH-MP, Xinanjiang scheme SOURCE: Haiqing SONG (宋海清) Ecological and Agricultural Meteorology Center of Inner Mongolia & Inner Mongolia Meteorological Satellite Remote Sensing Center, China DESCRIPTION OF CHANGES: Update the typo in Registry.EM_COMMON and README.namelist (Xiananjiang to Xinanjiang) LIST OF MODIFIED FILES: list of changed files (use git diff --name-status master to get formatted list) M run/README.namelist M Registry/Registry.EM_COMMON
This PR fixes a crash when TEMPO is run in combination with aer_opt=3 TYPE: bug fix KEYWORDS: TEMPO, aer_opt=3 SOURCE: Joseph Olson (NOAA-GSL) DESCRIPTION OF CHANGES: Problem: Model crashes because two arrays are left unallocated Solution: 1. Include taod5503d and taod5502d in the tempo_aerosolaware package 2. Add a safety check in module_check_a_mundo.F to guard against misconfigurations LIST OF MODIFIED FILES: list of changed files (use `git diff --name-status develop` to get formatted list) M Registry/Registry.EM_COMMON M share/module_check_a_mundo.F TESTS CONDUCTED: 1. Do mods fix problem? Yes. Testing in single case study. 2. Are the Jenkins tests all passing?
TYPE: enhancement
KEYWORDS: Shin-Hong, YSU, top-down mixing, shared MMM-physics
SOURCE: Songyou Hong
DESCRIPTION OF CHANGES:
SHINHONG PBL occasionally would fail in global models. This PR includes
the following changes:
1. Entrainment ratio and depth at the PBL top were reformulated.
2. Topdown mixing and building canopy moduels in the YSU PBL were
revised and incorporated into revised the SHINHONG scheme.
3. In the revised scheme, one can select nonlocal mixing flux term:
either counter-gradient (YSU type) or eddy-mass flux (SHINHONG type). In
the namelist,
- shinhong_nonlocal_flux=.true., default for YSU nonlocal flux, .true.
for SHINHONG nonlocal flux
- shinhong_scu_mixng = .false., default, for stratocumulus downward
mixing (revised TOPDOWN mixing in the YSU scheme
- shinhong_ke_dissipation=.false., defalult, for additional heating due
to kinetic turbulent mixing
The new Shin-Hong PBL is now merged with YSU PBL via a namelist switch
and moved to shared MMM-physics repository.
LIST OF MODIFIED FILES:
m Registry/Registry.EM_COMMON
m arch/Externals.cfg
m .gitmodules
m dyn_em/module_first_rk_step_part1.F
m main/depend.common
m phys/Makefile
m phys/module_bl_shinhong.F
m phys/module_pbl_driver.F
m phys/module_physics_init.F
TESTS CONDUCTED:
Regression tests have passed.
RELEASE NOTE: New version of Shin-Hong PBL that combines YSU scheme
replaces bl_pbl_physics =11. Other new options are: shinhong_scu_mixing
(top-down mixing, default off), shinhong_nonlocal_flux (gamma (f) or
mass flux (t), default on), shinhong_ke_dissipation (tke dissipation
heating, default off). The code is moved to shared MMM-physics
repository, and available in phys/physics_mmm after compilation.
TYPE: bug fix and namelist change KEYWORDS: registry, new options kim_tofd and tofd_factor SOURCE: internal DESCRIPTION OF CHANGES: Problem: A merge conflict is uncovered in Registry file. Solution: Resolve the conflict. Also move kim_tofd and tofd_factor from namelist group dynamics to physics, and change the default value for km_tofd to false. LIST OF MODIFIED FILES: M Registry/Registry.EM_COMMON TESTS CONDUCTED: Jenkins tests have passed. RELEASE NOTE: See original PR-2284.
TYPE: bug fix KEYWORDS: cmake, shinhong, pbl SOURCE: internal DESCRIPTION OF CHANGES: Problem: PR #2286 added `bl_shinhong.F90` to the MMM-physics repo but only added it to the make build. Solution: Add the new file to the CMake build as well. TESTS CONDUCTED: 1. Confirmed that after this ARW core builds in cmake
TYPE: bug fix KEYWORDS: GFL, seg fault SOURCE: Haiqin Li and internal DESCRIPTION OF CHANGES: Three dimensional Qc and Qi were not passed to the GFL scheme where they are used to compute cloud fraction by the CPS. This PR points to an updated GFL where cloud fraction as well as reflectivity due to the CPS are disabled for now in WRF. LIST OF MODIFIED FILES: Only update the pointer to the GFL repository TESTS CONDUCTED: 1. Tests are run on NOAA HPC and Derecho and seg fault problem is resolved. 2. The Jenkins tests all passing. RELEASE NOTE:
TYPE: bug fix KEYWORDS: make, dependencies SOURCE: internal DESCRIPTION OF CHANGES: Problem: PR #2276 added some new modules that were not included as dependencies in `main/depend.common` Solution: Add the new files to the dependencies for the `module_microphysics_driver` object rule TESTS CONDUCTED: 1. Tested compilation of idealized cases using `-j 1`
This PR provides a significant update to the downdraft component of the MYNN-EDMF with minor tweaks elsewhere. This submodule update to WRF will be the same version added to the community version of MPAS next. TYPE: enhancement KEYWORDS: MYNN-EDMF, downdrafts, clouds SOURCE: Joseph Olson (NOAA/GSL) DESCRIPTION OF CHANGES: Problem: 1. The downdraft component forced by cloud-top cooling, which has only been lightly tested. 2. There was also an analytical method for specifying a profile of tke production forced by cloud-top cooling. This has also received limited testing. Solution: 1. Blend the downdrafts with the analytical profile specification of TKE production to provide one fairly well tested option. 2. Extend the analytical profile method to single-layer fog as well as clouds aloft that are decoupled from the surface. This allows this method to be used in tandem (and consistently) with the downdraft component. 3. Add 5 2d diagnostic variables that have been extremely useful in developing the downdraft component. 4. Related to forecasting clouds in the marine boundary layer, change the max for qnwfa in the common file to have no impact above the marine pbl while still limiting it to reasonable values within the marine pbl--a useful hack to not allow the poor qnwfa specifications from the climatology to create excessive fog over cold coastal waters (i.e., near NY and Boston). LIST OF MODIFIED FILES: list of changed files (use `git diff --name-status release-v4.8.0` to get formatted list) M Registry/Registry.EM_COMMON M dyn_em/module_first_rk_step_part1.F M phys/MYNN-EDMF M phys/module_pbl_driver.F M run/README.namelist TESTS CONDUCTED: 1. Do mods fix problem? Yes. How can that be demonstrated, and was that test conducted? Case studies, with all debug flags used. 5. Are the Jenkins tests all passing? RELEASE NOTE: The update to the MYNN-EDMF includes a significant revision to the downdraft component, which has undergone development specifically for improving the over-forecasting of fog over cold SSTs.
**Critical bug fix for WRF-urban-NbS module for WRF v4.8 release** **TYPE:** bug fix **KEYWORDS:** urban canopy models, urban trees, nature-based solutions, urban grass, urban hydrology, radiative view factors **SOURCE:** Yuqi Huang (University of Oklahoma), Chenghao Wang (University of Oklahoma) **DESCRIPTION OF CHANGES:** #### Problem: We have identified bugs in our recent testing and evaluation of the new WRF-urban-NbS module (see this existing PR: #2272). This PR fixes several critical issues in the urban nbs implementation in the single-layer urban canopy model, including both minor corrections and major physics-related updates affecting radiative transfer, tree temperature treatment, soil moisture control on transpiration, and vegetated-ground thermal behavior. Corresponding updates are also included in urban TBL files. The changes are intended to improve physical consistency, numerical robustness, and parameter consistency for the WRF-urban-NbS module. #### Solution: _Major Fixes:_ 1. Made vegetated ground fraction (FVG) urban-type dependent - Replaced the previous scalar-style handling of `FVG` with `FVG_TBL(UTYPE)`. - Updated TBL files accordingly. - This ensures vegetated ground fraction is read consistently with other urban-category-dependent parameters. 2. Moved the tree view-factor calculation outside the shortwave-only branch - The analytical tree view-factor calculation is now called independently of the shortwave shadow logic. - This avoids restricting tree radiative geometry to the shortwave pathway only and improves consistency for broader radiative exchange. 3. Added an optional prognostic tree-temperature scheme (new feature in namelist) - Introduced TTscheme in URBPARM.TBL and corresponding logic in `module_sf_urban.F`. - `TTscheme = 0`: diagnostic/residual treatment (default) - `TTscheme = 1`: prognostic/resistance-based treatment (This allows tree temperature to evolve independently rather than being tied directly to canyon air temperature.) 4. Revised the `W2` formulation used in stomatal resistance - Replaced the previous mid-layer approximation with a thickness-weighted soil moisture average over the upper vegetated-ground layers. - This provides a more consistent moisture control on stomatal resistance and tree transpiration. 5. Removed the vegetation scaling factor applied to soil thermal conductivity - The previous reduction factor on `KVG` was removed. - This avoids artificially suppressing conductive heat transfer into deeper vegetated-ground soil layers. _Minor Fixes:_ 1. Updated the effective ground temperature treatment - Revised the `TGE/TGEP` update so that the effective ground temperature is computed after the surface temperatures are updated. 2. Updated root water uptake state - Added explicit update of root uptake (`SROOTP = SROOT`) to keep the moisture state evolution consistent. 3. Corrected the canyon humidity derivative - Updated the `QC` derivative/Jacobian terms to include vegetated-ground contributions in the denominator. - This improves consistency of the coupled canyon temperature-humidity solve. 4. Moved tree and vegetated-ground albedo to URBPARM.TBL - Added `ALBT` and `ALBVG` as table-driven parameters rather than keeping tree albedo hard-coded in the source file. 5. Updating TBL files to support the fixes above: - FVG is now specified by urban type - added `TTscheme` - added `ALBVG` - added `ALBT` 6. Code annotation cleanup LIST OF MODIFIED FILES: (`git diff --name-only release-v4.8.0 urban-nbs-fix-v4.8`) - phys/module_sf_urban.F - run/URBPARM.TBL - run/URBPARM_LCZ.TBL - run/URBPARM_UZE.TBL **TESTS CONDUCTED:** Our simulations demonstrated that these modifications are necessary to ensure model performance and physical consistency.
TYPE: bug fix KEYWORDS: NTU mp, Floating-point exception SOURCE: Tzu-Chin Tsai of CWA and internal DESCRIPTION OF CHANGES: Problem: Running the model with ifx compiler gives a floating-point exception error. Solution: A fix is identified to fix the error. LIST OF MODIFIED FILES: M phys/module_mp_ntu.F TESTS CONDUCTED: 1. With the fix, the code runs well again. 2. Are the Jenkins tests all passing? RELEASE NOTE: This PR fixes a floating-point exception error identified by ifx, the Intel-oneapi compiler.
TYPE: bug fix
KEYWORDS: MPI parallelization with CFBM
SOURCE: Pedro Jimenez (NCAR/RAL)
DESCRIPTION OF CHANGES:
Problem:
MPI parallelization with CFBM only run with 1 MPI task.
It also adds the bilinear interpolation of atmospheric variables in the
fire grid.
Solution:
We have allowed for parallelization using multiple MPI tasks.
ISSUE: N/A
LIST OF MODIFIED FILES:
M Registry/Registry.EM_COMMON
A doc/README.cfbm
M dyn_em/module_first_rk_step_part1.F
M dyn_em/start_em.F
M phys/fire_behavior
M share/module_check_a_mundo.F
TESTS CONDUCTED:
1. We run test with 1, 2, and 3 MPI tasks and we get bit for bit results
2. Are the Jenkins tests all passing? Yes
Test Type | Expected | Received | Failed
= = = = = = = = = = = = = = = = = = = = = = = = = = = =
Number of Tests : 23 24
Number of Builds : 60 57
Number of Simulations : 158 150 0
Number of Comparisons : 95 86 0
Failed Simulations are:
None
Which comparisons are not bit-for-bit:
None
RELEASE NOTE: Allowing for multiple MPI tasks when running the Community
Fire Behavior model
Bug fix for sea-ice and some miscellaneous updates to the land/ice components. This also includes MYNN-related updates to README.namelist. TYPE: bug fix KEYWORDS: MYNN-SFC, sea-ice, cleanup SOURCE: Joseph Olson (NOAA-GSL) DESCRIPTION OF CHANGES: Problem: The logic for calling each component (land/ice/water) required the xice variable to be set into the mynnsfc_driver. Solution: Added the xice variable to be set into the mynnsfc_driver. I also improved the debug output to help isolate/correct this problem. These changes propagated to the other (non-ice) components too. LIST OF MODIFIED FILES: list of changed files (use `git diff --name-status release-v4.8.0` to get formatted list) M phys/MYNN-SFC M phys/module_surface_driver.F M run/README.namelist TESTS CONDUCTED: 1. Do mods fix problem? Yes. How can that be demonstrated, and was that test conducted? case studies with improved debugging output. 2. Are the Jenkins tests all passing?
TYPE: bug fix KEYWORDS: mp, udm SOURCE: Songyou Hong DESCRIPTION OF CHANGES: Add initialization for a variable in sedimentation, and a missing hail deposition term in ice generation. The former prevents unphysical surface rain in early model integration, and the latter has a negligible effect. LIST OF MODIFIED FILES: M phys/module_mp_udm.F TESTS CONDUCTED: The Jenkins tests are all passing. RELEASE NOTE: This PR fixes a missed variable initialization and missed hail deposition term in ice generation.
TYPE: text only KEYWORDS: new nml, README.namelist SOURCE: Songyou Hong Add a few new namelists for updated ShinHong PBL and revised MM5 surface layer scheme. LIST OF MODIFIED FILES: M run/README.namelist TESTS CONDUCTED: Test change only. RELEASE NOTE: Supplementary to PR-2284 and 2286.
TYPE: bug fix KEYWORDS: WRF-urban, nature-based solutions SOURCE: Chenghao Wang (University of Oklahoma) Problem: With the new NbS code merged, runs using Noah-MP + SLUCM (`sf_urban_physics=1`) work as expected, but runs using Noah-MP + BEP/BEM (`sf_urban_physics=2/3`) fail. In the failing configurations, the model aborts early with allocator/HDF5 errors such as corrupted double-linked list or malloc-related aborts. Solution: We moved `XXXVG_URB2D` initialization into that same SLUCM-only (`sf_urban_physics == 1`) block for consistency with the other NbS fields. For BEP/BEP+BEM (`sf_urban_physics = 2/3`), NbS SLUCM-only arrays may be unallocated. Writing to an unallocated field can corrupt heap metadata. The corruption may not fail immediately and can later appear as an malloc abort (e.g., corrupted double-linked list) when opening `wrfbdy_d01`. This change prevents that invalid write path. LIST OF MODIFIED FILES: M phys/module_sf_urban.F TESTS CONDUCTED: Successful nested WRF run with NoahMP + BEP/BEM RELEASE NOTE: Supplementary to PR-2272.
- Updated to Tempo v3.0.5 with minor bugfixes and formatting changes (https://github.com/NCAR/TEMPO/releases/tag/tempo_v3.0.5) - Changed hail size units to meters fro mm - Added Tempo information to README.namelist file.
TYPE: text only KEYWORDS: TEMPO, mp_physics=88, module_initialize_real, print, error SOURCE: Internal DESCRIPTION OF CHANGES: Problem: Previously-added code to module_initialize_real checked to ensure if using TEMPO microphysics (option 88) with tempo_hailware=1 and tempo_aerosolaware=1, without setting wif_input_opt=1, the model stopped with a fatal error. However, the error message only implied the user set mp_physics to 28 or 29. Solution: Included mp_physics=88 in the error message. LIST OF MODIFIED FILES: M dyn_em/module_initialize_real.F TESTS CONDUCTED: 1. Mods fix the problem. Running real.exe now gives an error message that includes an mp_physics=88 (TEMPO) setting. 2. The Jenkins tests are all passing with this text only change.
TYPE: text only KEYWORDS: Grell-Freitas-Li, readme SOURCE: internal DESCRIPTION OF CHANGES: Change GF to GFL, and add GFL to one of the options ishallow can work with. LIST OF MODIFIED FILES: M run/README.namelist TESTS CONDUCTED: Text only change. RELEASE NOTE: Complementary to PR-2269.
TYPE: bug fix KEYWORDS: typo, pre-compilation flag, README, update compilation SOURCE: L. Fita (CIMA - IFAECI, Argentina) DESCRIPTION OF CHANGES: Problem: There was a typo in one of the pre-compilation flags. Because of that diagnostic 2m relative huimidity (`HURS`) was not computed, neither other variables that relayed on it. `README.cordex` hold old information in how to install and compile the code that require update Solution: Fix typo and update README file. LIST OF MODIFIED FILES: M doc/README.cordex M phys/module_diag_cordex.F M phys/module_diagnostics_driver.F M Registry/registry.cordex M configure TESTS CONDUCTED: 1. Correction was made and re-compile. When re-running the simulation variables where properly computed 2. The Jenkins tests are all passing. RELEASE NOTE: Fix of initial inclusion of CORDEX-WRF module into main WRF code. https://wiki.cima.fcen.uba.ar/index.php/CDXWRF Lluís Fita, Jan Polcher, Theodore M. Giannaros, Torge Lorenz, Josipa Milovac, Giannis Sofiadis, Eleni Katragkou and Sophie Bastin, 2019: CORDEX-WRF v1.3: development of a module for the Weather Research and Forecasting (WRF) model to support the CORDEX community, Geosci. Model Dev., 12, 1029-1066, 2019, [https://doi.org/10.5194/gmd-12-1029-2019](https://www.geosci-model-dev.net/12/1029/2019/gmd-12-1029-2019.html) Since v1.3 of the CORDEX-WRF module has been a large amount of collaborations, requests and enhancements that has been testing, upgrading and using the module. The list of names will be long. To all of them, we are sincerely thankful. It reflects the core spirit of the module to provide a useful resource for the modelling regional climate community and beyond. Athony Islas (NCAR) simplified the compilation of the module. --------- Co-authored-by: Lluis Fita Borrell <[email protected]> Co-authored-by: Lluis Fita Borrell <lluis@debian-BULLSEYE-live-builder-AMD64>
TYPE: bug fix KEYWORDS: shinhong, ysu, pbl, mmm-physics, downward mixing SOURCE: internal DESCRIPTION OF CHANGES: Problem: The previous submodule commit contains issues with respect to floating point errors and overly downward mixing in the ShinHong PBL scheme. The YSU PBL scheme also exhibits the latter behavior. Solution: Update the tracked submodule SHA to the new fixes. Please refer to the submodule itself for more details on the fixes: NCAR/MMM-physics#18 NCAR/MMM-physics#19
This PR makes the MYNN-EDMF in WRF consistent with the ongoing PR to get the MYNN-EDMF into MPAS. TYPE: update MYNN-EDMF pointer, feature removed KEYWORDS: MYNN-EDMF, icloud_bl SOURCE: Joseph Olson (NOAA-GSL) DESCRIPTION OF CHANGES: Problem: 1. Need to sync the versions of the MYNN-EDMF linked to WRF and MPAS 2. "icloud_bl" is not used in MPAS. Instead, the coupling of the MYNN-EDMF clouds to the radiation uses a different flag (config_radt_cld_scheme = "cld_fraction_mynn") in the cloudiness driver. In WRF, icloud_bl is still used to determine the coupling to radiation, but we no longer need to use icloud_bl to allocate the subgrid cloud arrays (qc_bl, qi_bl, and cldfra_bl). They are now moved to the MYNN-EDMF package. This just simplifies the code and we no longer need to pipe icloud_bl into the MYNN-EDMF scheme. Solution: Update the MYNN-EDMF pointer and remove the additional icloud_bl-related package. LIST OF MODIFIED FILES: list of changed files (use `git diff --name-status master` to get formatted list) M Registry/Registry.EM_COMMON M dyn_em/module_first_rk_step_part1.F M phys/MYNN-EDMF M phys/module_pbl_driver.F
TYPE: bug fix KEYWORDS: eot, radiation SOURCE: internal DESCRIPTION OF CHANGES: Fractional year and a parameter used in Equation of Time calculation did match the reference (https://gml.noaa.gov/grad/solcalc/solareqns.PDF). This PR fixes both. LIST OF MODIFIED FILES: M phys/module_radiation_driver.F M phys/module_ra_rrtmg_swf.F (this line is commented out) TESTS CONDUCTED: 1. The eot now matches the reference equation. 2. Are the Jenkins tests all passing? RELEASE NOTE: This PR fixes fractional year calculation and a parameter used in the equation.
TYPE: bug fix KEYWORDS: AOCC, vectorization SOURCE: Will Hatheway DESCRIPTION OF CHANGES: Problem: The AOCC stanza in arch/configure.defaults contains a misspelled LLVM optimizer option. This PR provides the fix. Solution: Fix the typo in the compiler flag. LIST OF MODIFIED FILES: M arch/configure.defaults
TYPE: text only KEYWORDS: TEMPO, tempo_aerosolaware, tempo_hailaware SOURCE: internal DESCRIPTION OF CHANGES: Options to use aerosol and 2-mom hail are turned off by default. To turn either of them on, set tempo_aerosolaware = 1 and tempo_hailaware = 1 in &hysics namelist record. LIST OF MODIFIED FILES: M Registry/Registry.EM_COMMON
Update README and inc/version_decl to new version v4.8.0 TYPE: text only KEYWORDS: version update SOURCE: internal DESCRIPTION OF CHANGES: Problem: None Solution: None
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )