Skip to content

Comments

Develop#6

Closed
cenlinhe wants to merge 7 commits intocouple_noahmpv512from
develop
Closed

Develop#6
cenlinhe wants to merge 7 commits intocouple_noahmpv512from
develop

Conversation

@cenlinhe
Copy link
Owner

The first line should be a single-line "purpose" for this change

TYPE: choose one of [bug fix, enhancement, new feature, feature removed, no impact, text only]

KEYWORDS: 5 to 10 words related to commit, separated by commas

SOURCE: Either "developer's name (affiliation)" .XOR. "internal" for a WRF Dev committee member

DESCRIPTION OF CHANGES:
Problem:
Generally or specifically, what was wrong and needed to be addressed?

Solution:
What was down algorithmically and in the source code to address the problem?

ISSUE: For use when this PR closes an issue.
Fixes wrf-model#123

LIST OF MODIFIED FILES: list of changed files (use git diff --name-status master to get formatted list)

TESTS CONDUCTED:

  1. Do mods fix problem? How can that be demonstrated, and was that test conducted?
  2. Are the Jenkins tests all passing?

RELEASE NOTE: Include a stand-alone message suitable for the inclusion in the minor and annual releases. A publication citation is appropriate.

islas and others added 7 commits February 10, 2026 11:41
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.
@cenlinhe cenlinhe closed this Feb 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants