Skip to content

Limit aerosol optics range warnings to active bins#2349

Open
saneku wants to merge 23 commits into
wrf-model:developfrom
saneku:fix-mie-optics-empty-bin-warnings
Open

Limit aerosol optics range warnings to active bins#2349
saneku wants to merge 23 commits into
wrf-model:developfrom
saneku:fix-mie-optics-empty-bin-warnings

Conversation

@saneku

@saneku saneku commented Jun 7, 2026

Copy link
Copy Markdown
Contributor

Limit aerosol optics range warnings to active bins

TYPE: bug fix

KEYWORDS: Mie, refractive index, diagnostics, aerosols

SOURCE: Alexander Ukhov (KAUST)

DESCRIPTION OF CHANGES:
Problem:
The aerosol optics Mie calculation clamps refractive indices to lookup-table bounds before interpolation. For empty
or nearly empty optical bins, fallback refractive indices such as (1.5,0.0) can trigger repeated range-warning
messages, especially when zero imaginary refractive index values are compared against the table's small negative
upper bound. This produces excessive log output without indicating a meaningful optical impact.

Solution:
The existing refractive-index clamping behavior is preserved. The diagnostic warning messages are now printed only when the particle number concentration in the optical bin is significant. For upper-bound imaginary-index warnings, diagnostics are also suppressed for effectively zero absorption using abs(refi).gt.1.e-12. This keeps the interpolation guard in place while avoiding warning spam from empty or trace aerosol bins. Warnings are still retained for active aerosol bins whose refractive indices fall outside the lookup-table range.

LIST OF MODIFIED FILES:
M chem/module_optical_averaging.F

TESTS CONDUCTED:
Test simulations were conducted. The simulation results are unchanged, and the excessive refractive-index range warnings no longer appear in the model output.

RELEASE NOTE:
Suppresses repeated WRF-Chem aerosol optics refractive-index range warnings from empty or trace optical bins while
preserving existing Mie lookup-table clamping behavior.

weiwangncar and others added 23 commits March 24, 2026 16:37
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 wrf-model#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:
…2318)

TYPE: bug fix

KEYWORDS: make, dependencies

SOURCE: internal

DESCRIPTION OF CHANGES:
Problem:
PR wrf-model#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`
…odel#2319)

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:
wrf-model#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.
…-model#2323)

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 <lluis.fita@hydra.cima.fcen.uba.ar>
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
…2336)

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
…l#2346)

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
@saneku saneku requested a review from a team as a code owner June 7, 2026 10:05
@weiwangncar weiwangncar changed the base branch from release-v4.8.0 to develop June 7, 2026 21:44
@weiwangncar weiwangncar requested review from a team as code owners June 7, 2026 21:44
@weiwangncar

Copy link
Copy Markdown
Collaborator

The regression test results:

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

jordanschnell
jordanschnell previously approved these changes Jun 9, 2026
@saneku saneku dismissed jordanschnell’s stale review June 9, 2026 15:37

The merge-base changed after approval.

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.

10 participants