An updated revised MM5 surface layer scheme with multiple options for similarity functions#2340
Open
prabhakar1508 wants to merge 47 commits into
Open
An updated revised MM5 surface layer scheme with multiple options for similarity functions#2340prabhakar1508 wants to merge 47 commits into
prabhakar1508 wants to merge 47 commits into
Conversation
wrf-model#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.
…-model#2143) 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 (wrf-model#2136) TYPE: bug fix KEYWORDS: registry, path SOURCE: internal DESCRIPTION OF CHANGES: Problem: PR wrf-model#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 wrf-model#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 (wrf-model#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 wrf-model#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 (wrf-model#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 wrf-model#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 <jack.bartlett20@imperial.ac.uk>
…rf-model#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) (wrf-model#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. (wrf-model#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 <weiwang@ucar.edu>
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 <rcabell@users.noreply.github.com> Co-authored-by: Andrew Song <andrewsoong@users.noreply.github.com>
…#2242) 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 <sengers@ID7065.iwes.fraunhofer.de> Co-authored-by: Balthazar Arnoldus Maria Sengers <lueb4688@hpcl002.cm.cluster>
… Canopy Model (wrf-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 <49653612+massimodisidoro@users.noreply.github.com> Co-authored-by: dudhia <dudhia@ucar.edu> Co-authored-by: Yuxuan Xie <77427610+cug-xyx@users.noreply.github.com>
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 wrf-model#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 wrf-model#2095 (notably the CI/CD GitHub worklow) and instead leverages this point in PR wrf-model#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 (Haiqin.Li@noaa.gov, 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 <weiwang@ucar.edu>
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 wrf-model#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: [Barry.H.Lynn@gmail.com](mailto:Barry.H.Lynn@gmail.com); [Barry.Lynn@Weather-It-Is.com](mailto:Barry.Lynn@Weather-It-Is.com) (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: new feature KEYWORDS: Community Fire Behavior Model, CFBM, fire behavior, fire atmosphere coupling SOURCE: Pedro A. Jimenez and Masih Eghdami DESCRIPTION OF CHANGES: A new fire behavior model, the Community Fire Behavior Model (CFBM, https://gmd.copernicus.org/preprints/gmd-2024-124/gmd-2024-124.pdf) is added. The model runs with MPI compilation, just one mpi task for the moment, and also in hybrid compilation MPI+OpenMP (only one MPI task for the moment). To compile the model with the CFBM enabled compile with CMake (`./configure_new`) and use `-DENABLE_CFBM=ON` as part of the cmake forwarded options or go through the prompts of `./configure_new` and select `ENABLE_CFBM`. TESTS CONDUCTED: 1. CFBM was compared with the existing fire behavior modeling producing similar results when models are configured in a similar manner. Bit for bit results when changing the number of OpenMP threads. RELEASE NOTE: Coupling the Community Fire Behavior model (Jimenez y Munot et al., 2024): https://gmd.copernicus.org/preprints/gmd-2024-124/gmd-2024-124.pdf
) TYPE: bugfix KEYWORDS: uninitialized SOURCE: internal DESCRIPTION OF CHANGES: Problem: The domain type `fieldlist` is a derived type used to store state vars within the `grid`. Thus, this type facilitates many of the read, write, and general control of state variables defined within the registry. Throughout the code, character fields such as `MemoryOrder` are accessed and read to determine branching logic for how a particular state var should be handled. Not all fields are required to be defined within the registry, and this leads to uninitialized values within a newly created instance of `fieldlist`. Solution: Rather than correcting the registry generated code that assigns state vars, a better solution is to fix the upstream type definition to always start with initialized default vales. This fixes sporadic undefined behavior arising from accessing these fields, sometimes resulting in total model crash or indefinite hangs as MPI synchronization calls take different branching logic.
TYPE: bugfix KEYWORDS: build, make, cmake SOURCE: internal DESCRIPTION OF CHANGES: Problem: PR wrf-model#2269 introduced the GFL submodule replacing the older GF implementation. In doing so, the related files' dependencies and additions to both builds was not done completely. Solution: Add object dependencies for make build. Remove old file reference and update with new files in cmake build.
TYPE: bugfix KEYWORDS: cmake SOURCE: internal DESCRIPTION OF CHANGES: Problem: PR wrf-model#2277 added a new submodule and referenced new files, but the files were not properly added to the CMake build. Solution: Fix the CMake build issue caused by missing files introduced in PR wrf-model#2277
Bug fixes for PR wrf-model#2242 TYPE: bug fix KEYWORDS: wind, fitch SOURCE: Balthazar Sengers, Fraunhofer IWES, Germany DESCRIPTION OF CHANGES: Changes made: - removed 3 lines of code in the original Fitch WFP that actually were part of the new correction - added better first estimate for the axial induction factor; one that corrects for the grid size - added some comments for clarifications
Certain parts of the code were not properly clearing data handles stored in `grid` variable, and this change makes any call to `close_dataset` always clear the value. TYPE: bug fix KEYWORDS: io, data_handle DESCRIPTION OF CHANGES: Problem: As the code is written right now, responsibility of tracking of data handles is spread across the code base: * module_io.F handles the global list and what is available * autogenerated code clears grid % *_oid values * written code must also manage clearing old oid values * and so on... For example, this issue is made evident when using the subroutine `med_read_qna_emissions()` which does not appropriately clear the grid % auxinput17_oid. While this may be seen as an issue with this specific code segment, the design of IO data handle management has lead to easily mismanaged data handles being kept around after freeing. Solution: While a full code refactor of all occurrences of clearing data handles would be ideal, the simplest and most concise fix is to have the `free_handle` subroutine clear the data handle each time it is called. This resolves the bug and DOES NOT (or rather should not) affect the code in any negative way. As any call to `free_handle` effectively relinquishes ownership of that data handle it should ALWAYS be assumed that the data handle passed in *can* and *should* be cleared, even if subsequently reacquired as that would potentially acquire a different data handle. TESTS CONDUCTED: 1. Verified reproducible error that revealed this issue to be resolved when implementing these changes
Updating the pointer to MYNN-EDMF submodule TYPE: bug fix KEYWORDS: MYNN-EDMF downdraft SOURCE: Joseph Olson DESCRIPTION OF CHANGES: Problem: Two bugs were found by the new automated CI testing One update to the mixing of anthropogenic aerosols was made recently. Solution: Update the pointer to the top of the MYNN-EDMF repository to bring in the fixes/modifications LIST OF MODIFIED FILES: list of changed files (use `git diff --name-status develop` to get formatted list) M phys/MYNN-EDMF TESTS CONDUCTED: 1. Do mods fix problem? Yes 2. Are the Jenkins tests all passing?
TYPE: new feature KEYWORDS: surface layer, turbulent form drag SOURCE: Songyou Hong DESCRIPTION OF CHANGES: Turbulent form drag (TOFD) was added in computing surface drag (kim_tofd=.true., default). A factor for TOFD was added (tofd_factor=.003, default). LIST OF MODIFIED FILES: M arch/Externals.cfg M dyn_em/module_first_rk_step_part1.F M phys/module_sf_sfclayrev.F M phys/module_surface_driver.F TESTS CONDUCTED: The Jenkins tests are all passing. RELEASE NOTE: This PR adds a scale-aware turbulent orographic form drag option (kim_tofd) in revised MM5 surface layer scheme. The default value for the option is on and it would increase surface drag. Use this new option with care.
The purpose for this PR is to update the refactored MYNN surface layer scheme, which has now been more fully debugged and has been tested in both WRF and MPAS. TYPE: enhancement KEYWORDS: MYNN-SFC version 6.0.0 refactored HRRR SOURCE: Joseph B. Olson DESCRIPTION OF CHANGES: The Main Problem: This scheme was refactored starting from the CCPP version, which has a few distinctions from WRF/MPAS that required further work to fully integrate into both WRF and MPAS. Solutions: 1. Corrected the conversions of mixing ratio/specific humidity. 2. added output of variables qgh and cqs, which are needed in some mode frameworks for some configurations 3. Some tuning was done for sf_mynn_sfcflux_land = 1 to work better when initializing off of RAP/HRRR/RRFS and using RUC LSM. If using Noah LSM, it will default to the Chen et al. (variable Czil) approach. 4. Added the infrastructure for bathymetry-dependent z0, which is expected to be compared with other approaches (possibly from WFIP3 data) and possibly tweaked in the near future. 5. Added automated CI testing in "MYNN-SFC/tests", which further help check for code errors for every PR to the MYNN-SFC repository. This helped find a few bugs in relatively unused configurations. LIST OF MODIFIED FILES: list of changed files (use `git diff --name-status master` to get formatted list) M phys/MYNN-SFC M phys/module_surface_driver.F TESTS CONDUCTED: 1. Do mods fix problem? Yes, case study testing with debug flags active. 2. Are the Jenkins tests all passing?
TYPE: bugfix KEYWORDS: syntax SOURCE: internal DESCRIPTION OF CHANGES: Problem: PR wrf-model#2272 adds invalid Fortran syntax Solution: Resolve syntax issue
TYPE: bugfix KEYWORDS: cmake SOURCE: internal DESCRIPTION OF CHANGES: Problem: New files were added with PR wrf-model#2270, but were not added to the CMake build Solution: Fix the CMake build issue caused by PR wrf-model#2270
TYPE: enhancement KEYWORDS: orographic drag SOURCE: Songyou Hong (NCAR) DESCRIPTION OF CHANGES: YSU GWDO was revised following the study of Hong et al. (2025, WAF), now is called as Korean Integrated Model (KIM) GWDO. KIM GWDO requires additional maximum orography file, "ELVMAX" in WPS. Non-hydrostatic effect of Xu et al. (2024, JAS) was also added (gwd_if_nonhyd=.true., default). Factor for the effective grid spacing was added (gwd_dx_factor=2.0, default). LIST OF MODIFIED FILES: m Registry/Registry.EM_COMMON m arch/Externals.cfg m dyn_em/module_first_rk_step_part1.F m phys/module_bl_gwdo.F m phys/module_pbl_driver.F TESTS CONDUCTED: 1. Tested in MPAS. 2. The Jenkins tests are all passing. RELEASE NOTE: Orographic gravity drag option gwd_opt = 1 is updated in this PR. Other added options are gwd_dx_factor = 2 (effective grid size) and gwd_if_nonhyd = .true. (nonhydrostatic effect option). Requires the use of updated WPS.
Modification from tempo v3.0.0 to v3.0.4 (that pertain to WRF) TYPE: enhancement KEYWORDS: tempo SOURCE: Anders Jensen NOAA/GSL DESCRIPTION OF CHANGES: Bugfixes: - Bug fix for initialization of precipitation diagnostic Modifications (mostly for speedup and better memory useage) - global dt variable was removed and replaced with local variables to prevent parallel compute issues - 3D diagnostics data type was changed to `intent(inout)` from `intent(out)` to reduce the number of calls to `allocate` - microphysical process tendencies data type was changed from allocatable to a pointer contiguous in memory for better memory handling and efficiency ISSUE: Related to PR wrf-model#2270
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 wrf-model#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) (wrf-model#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.
Collaborator
|
This should be routed to the develop branch, but also the number of files changed may indicate you did not start with a clean version of our repository. The files changed should be only the few you changed. We can't review it until this is fixed. |
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Purpose: Inclusion of an updated revised MM5 surface layer scheme with multiple options for similarity functions in stable and convective conditions
TYPE: new feature
KEYWORDS: Updated revised MM5 surface layer scheme, various similarity functions, stable and convective conditions, new namelist flags, new surface layer option
SOURCE: Prabhakar Namdev (Indian Institute of Technology Delhi, India; Karlsruhe Institute of Technology, Germany; Prabhakarnmdv587@gmail.com), Maithili Sharan (Indian Institute of Technology Delhi, India), Piyush Srivastava (Indian Institute of Technology Roorkee, India ), Saroj Kanta Mishra (Indian Institute of Technology Delhi)
DESCRIPTION OF CHANGES:
Problem:
This proposal outlines the scientific advancements, novelty, and community benefits of the updated code. Currently, the following functional forms of similarity or stability correction functions are used in the revised MM5 surface layer scheme for computing the surface fluxes in the WRF model:
We have updated this by incorporating the following functional forms:
(i) Stable conditions
In addition to the default one (Cheng and Brutsaert, 2005), the following functions are incorporated:
(ii) Unstable conditions
In addition to the default functions by Fairall et al. (1996), the following functional forms are also incorporated:
model proposed by Kader and Yaglom (1990)
A separate surface layer module from the current schemes available in the WRF model is designed. It is based on the revised MM5 surface layer scheme (Jimenez et al., 2012) and named as the IITD surface layer scheme (sfclayrev_IITD). It includes a variety of expressions for similarity functions stated above in both stable and unstable conditions, taking into account the fact that their performance is spatially and temporally dependent. Therefore, the surface layer scheme should have a provision for the choice of similarity functions for both stable and unstable conditions. This module has two flags corresponding to stable (psimh_stab_opt) and unstable (psimh_unstab_opt) conditions. The flag "psimh_stab_opt" can take values from 0, 1, 2, 3, 4, 5, and 6, corresponding to the different similarity functions: 0 is default (Cheng and Brutsaert 2005), 1 (Grachev et al., 2007), 2 (Srivastava et al., 2020), 3 (Gryanik et al., 2020), 4 (Holtslag et al., 1990), 5 (Beljaars and Holtslag, 1991), 6 (Dyulkerke et al., 1991). The flag "psimh_unstab_opt" can take values from 0, 1, 2, and 3, corresponding to the different similarity functions in unstable conditions: 0 is default (Fairall et al., 1996), 1 (Businger et al., 1971), 2 (Carl et al., 1973), and 3 (Zeng et al., 1998, based on the three sublayer model by Kader and Yaglom, 1990). In this way, the user will have the flexibility to choose any choice of similarity functions for computing surface fluxes.
The updated module (sfclayrev_IITD) can be used by choosing sf_sfclay_physics=8 in the namelist.input file. The updated module is already evaluated with turbulence measurements over Indian land as well as the CASES99 and ERA5-land reanalysis datasets.
Two of the research articles related to the updated scheme are already published in the Geoscientific Model Development and Atmospheric Research journals. References for the same are provided below:
Solution:
We wish to point out that some of these functions are capable of dealing with the situation in low wind strong stable/unstable conditions. The incorporated functional forms based on the three sublayer model proposed by Kader and Yaglom (1990) are able to predict the observed non-monotonic behaviour of the drag coefficient (C D ) in unstable conditions reported in various studies (Srivastava and Sharan, 2015; 2021; Maurya et al., 2023; Mosso et al., 2024). Some of these functional forms are recently developed and applicable for a wide range of atmospheric stability conditions.
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 main/depend.common
M phys/Makefile
M phys/module_fddagd_driver.F
M phys/module_fddaobs_driver.F
M phys/module_physics_init.F
A phys/module_sf_sfclayrev_IITD.F
M phys/module_surface_driver.F
M share/module_check_a_mundo.F
TESTS CONDUCTED:
RELEASE NOTE:
This introduces an updated version of the revised MM5 surface layer scheme, providing multiple options for similarity functions under both stable and convective conditions that can be chosen using namelist flags. The implementation is based on the following studies: