Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move shalwater_init to physics_init #1998

Merged
merged 1 commit into from
Jan 31, 2024

Conversation

weiwangncar
Copy link
Collaborator

@weiwangncar weiwangncar commented Jan 28, 2024

TYPE: code clean up

KEYWORDS: shalwater_init

SOURCE: internal

DESCRIPTION OF CHANGES:
Move the call to shallow water roughness length initialization routine from module_sf_sfclayrev.F to module_physics_init.F

This is in preparation to make sfclayrev module ccpp-compliant, and potential make the initialization and physics available to other surface layer modules.

LIST OF MODIFIED FILES:
M phys/module_physics_init.F
M phys/module_sf_sfclayrev.F

TESTS CONDUCTED:

  1. Should not change how the variable is initialized.
  2. The Jenkins tests are all passing.

RELEASE NOTE: This PR moves the call to shalwater_init from module_sf_sfclayrev.F to module_physics_init.F.

- module_sf_sfclayrev.F: removed the call to shalwater_init, and moved subroutine to
  module_physics_init.F.
- module_physics_init.F: added call to shalwater_init, and subroutine.
@weiwangncar weiwangncar requested a review from a team as a code owner January 28, 2024 05:16
@weiwangncar
Copy link
Collaborator Author

The regression test results:

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

@weiwangncar
Copy link
Collaborator Author

@hawbecker Can you review this PR? We need to clean up the revised surface layer scheme so that it would be easily made CCPP-compliant. Thanks!

@dudhia
Copy link
Collaborator

dudhia commented Jan 29, 2024

@weiwangncar Thanks for doing this. We need confirmation that it works as before.

@weiwangncar
Copy link
Collaborator Author

weiwangncar commented Jan 29, 2024

@dudhia @hawbecker I did a test using the code before and after this move, I get identical model output after 1-h forecast.

@dudhia
Copy link
Collaborator

dudhia commented Jan 29, 2024

@dudhia @hawbecker I did a test using the code before and after this move, I get identical model output after 1-h forecast.

with the option turned on?

@weiwangncar
Copy link
Collaborator Author

@dudhia Yes, of course.

Copy link
Collaborator

@dudhia dudhia left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this needed because this change is also in the sfclayrev commit?

@weiwangncar
Copy link
Collaborator Author

Is this needed because this change is also in the sfclayrev commit?

Yes, it is.

@weiwangncar
Copy link
Collaborator Author

@smileMchen Can you review this PR too?

@weiwangncar weiwangncar merged commit 43fc9a4 into wrf-model:develop Jan 31, 2024
1 of 5 checks passed
mwseefeldt pushed a commit to mwseefeldt/WRF that referenced this pull request Oct 9, 2024
commit 0a11865f97680fdd6865b278ea29d910e5db3ed7
Merge: a8eb8468 b11c63ea
Author: Anthony Islas <aislas@ucar.edu>
Date:   Wed May 8 17:33:15 2024 -0700

    Merge branch 'release-v4.6.0' of github.com:wrf-model/WRF

commit b11c63ea97b8a5e565135b68ac7c1701cf4c251d
Author: Anthony Islas <128631809+islas@users.noreply.github.com>
Date:   Wed May 8 16:32:03 2024 -0700

    Updating version for v4.6.0 (#2042)

    TYPE: text only

    KEYWORDS: v4.6.0, release, version_decl, README

    SOURCE: internal

    DESCRIPTION OF CHANGES:
    Updated the top-level README and inc/version_decl files to reflect V4.6.0, in preparation for the v4.6.0 release

    LIST OF MODIFIED FILES:
    M README
    M inc/version_decl

    TESTS CONDUCTED:

    No tests necessary - text only

commit c3a7139ae8ae088ca2c23f19856857b9e2a694f6
Author: weiwangncar <weiwang@ucar.edu>
Date:   Mon May 6 17:31:54 2024 -0600

    add texts to make routines exactly the same as in shared-physics (#2041)

    TYPE:  text only

    KEYWORDS: doxygen comments, shared physics routines

    SOURCE: internal

    DESCRIPTION OF CHANGES:
    Added some doxygen comments to make routines in physics_mmm/ the same as those in future MMM shared physics repository.

    LIST OF MODIFIED FILES:
    M       phys/physics_mmm/cu_ntiedtke.F90
    M       phys/physics_mmm/mp_wsm6_effectRad.F90

    TESTS CONDUCTED:
    The Jenkins tests are all passing.

commit a977865db9a32a73b3bc4c50d29d4db175003f2f
Author: weiwangncar <weiwang@ucar.edu>
Date:   Mon Apr 29 10:07:07 2024 -0600

    Remove print max/min w in microphysics driver (#2040)

    TYPE: almost text only

    KEYWORDS: extra print, microphysics driver

    SOURCE: internal

    DESCRIPTION OF CHANGES:
    Problem:
    PR-1876 accidentally turned on a diagnostic print for max and min vertical motions.

    Solution:
    The print is removed as in previous code.

    LIST OF MODIFIED FILES:
    M       phys/module_microphysics_driver.F

    TESTS CONDUCTED:
    The Jenkins tests are all passing.

commit bbc791528f2ed202dc1fdfb8a8105d38bfcb5d2c
Author: dudhia <dudhia@ucar.edu>
Date:   Wed Apr 17 09:53:20 2024 -0600

    Correct diffusion coefficients for tke in LES (#2034)

    TYPE: bug-fix

    KEYWORDS: Diffusion of tke

    SOURCE: internal (issue raised by Branko Kosovic)

    DESCRIPTION OF CHANGES:
    Problem:
    Reported in #2026 For km_opt=2, tke diffusion should be twice momentum diffusion, but was twice heat diffusion (three times larger). For km_opt=5 it was 3 times momentum diffusion instead of twice.

    Solution:
    xkmv and xkmh passed into diffusion routines for tke calls instead of xkhv and xkhh.

    ISSUE: For use when this PR closes an issue.
    Fixes #2026

    LIST OF MODIFIED FILES:
    modified:   dyn_em/module_diffusion_em.F

    TESTS CONDUCTED:
    1. LES case was run with shalconv sounding to verify the change.
    2. The Jenkins tests are all passing.

    RELEASE NOTE: km_opt=2 and km_opt=5 tke diffusion was reduced to one third its value to match theory.

commit dbbb563a144deb28fa6e0a85d5586261212cacda
Author: weiwangncar <weiwang@ucar.edu>
Date:   Tue Apr 16 12:16:02 2024 -0600

    Final bug fixes and tuning for MYNN PBL in v4.6 (#2037)

    TYPE: bug fix + tuning

    KEYWORDS: MYNN EDMF

    SOURCE: Joseph Olson (NOAA-GSL)

    DESCRIPTION OF CHANGES:
    Problems:
    1. overly diminished TKE in stable PBL - always dropping to the lower limit
    2. negative mass flux area fractions found (rarely) with activation criteria change from flt to fltv.
    3. edmf diagnostics erroneously included rho.

    Solution:
    1. retuning of mixing lengths and stability function for momentum - mostly just limit changes.
    2. check for mf transfer of heat out of the lowest layer was modified
    3. removed rho.

    LIST OF MODIFIED FILES:
    phys/module_bl_mynn.F

    TESTS CONDUCTED:
    1. Tested in RRFSv1.
    2. The Jenkins tests are all passing.

    This commit contains the final tuning of the MYNN for RRFSv1, and part of the update for 4.6 (together with PR-1938 and 1996).

commit 30e547cd447660743a9f0cfe06923b2cc92fe08f
Author: weiwangncar <weiwang@ucar.edu>
Date:   Thu Apr 11 21:59:16 2024 -0600

    Add PXLSM change from PR-2023 (#2035)

    Pleim-Xiu LSM MODIS LCZ Compatibility & Surface Evaporation Update

    TYPE: bug fix & physics refinement

    KEYWORDS: MODIS, LCZ, P-X LSM, Latent Heat Flux

    SOURCE: Robert Gilliam & Jon Pleim, US EPA

    DESCRIPTION OF CHANGES:
    Problem:

    User indicated that the P-X LSM errored for MODIS LCZ 61 NUM_LAND_CAT configuration.
    Currently, we account for evaporation from transpiration, soil in both vegetated and non-veg parts, and wet leaves. But we only account for the latent heat effects on Tg from transpiration and evaporation from non-veg soil.
    This fix adds latent heat effects on Tg from soil in vegetated parts and from wet leaves.
    Fix for rare case where GRDFLX goes NaN because of a divide by zero based on a soil parameter when a water cell turns to sea ice.
    Solution:
    Logic checks in module_physics_init.F and module_sf_pxlsm.F were adjusted for 61 category inputs. P-X LSM data table, module_sf_pxlsm_data.F was updated for MODIS 61 categories. Default for LCZ 51-61 was set to MODIS urban class. We also added updates for the evaporation from vegetation and wet canopy.

    ISSUE:
    Fixes: #1965

    LIST OF MODIFIED FILES:
    M phys/module_physics_init.F
    M phys/module_sf_pxlsm.F
    M phys/module_sf_pxlsm_data.F

    TESTS CONDUCTED:

    - Tested 61 class LCZ with PX LSM for a 1 day simulation with updated codes. Ran base MODIS 21 class scheme with same code before and after LCZ update. The results were identical after a 24 hour simulation. This confirms updates do not impact other MODIS settings in the P-X LSM. The MODIS 21 was by nature not identical to the MODIS 61, but similar enough and differences follow underlying differences in MODIS datasets.
    - The Jenkins tests are all passing.

    RELEASE NOTE:
    Pleim-Xiu LSM is now compatible with 61 category MODIS LCZ landuse dataset. A mode of latent heat effects on Tg from vegetated parts and from wet leaves is added to Pleim-Xiu LSM.

commit 46dc7401bff616ae7740bd46be144abc28d57244
Author: tanyasmirnova <38667904+tanyasmirnova@users.noreply.github.com>
Date:   Wed Apr 10 19:47:07 2024 -0600

    Update RUC LSM to the latest version used in version 1 of RRFS. (#2028)

    TYPE: bug fix, enhancement

    KEYWORDS: snow model, irrigation, conductivities

    SOURCE: Tanya Smirnova, NOAA/GSL

    DESCRIPTION OF CHANGES:

    1. Changes to the snow model. Added options to compute thermal snow conductivity and snow cover fraction:
    isncond_opt = 1 or 2 (1 is default, 2 is recommended to use) isncov_opt = 1, 2 or 3 (1 is default, 2 is recommended to use for more accurate SCF)
    2. Changes to irrigation scheme, use real-time vegetation fraction as an indicator of crops maturity.
    3. Changes to soil diffusional and hydraulic conductivities.

    LIST OF MODIFIED FILES:
    M phys/module_sf_ruclsm.F

    TESTS CONDUCTED:
    - Tested in RRFS
    - The Jenkins tests are all passing.

    RELEASE NOTE: This PR modifies the RUC LSM to add options to the snow model, use real-time vegetation fraction as an indicator for irrigation scheme, and change soil diffusional and hydraulic conductivities.

commit f630b3d7d12bb703161d0605f85ae3974a03ce24
Author: Anthony Islas <128631809+islas@users.noreply.github.com>
Date:   Tue Apr 2 14:56:23 2024 -0700

    Fix issue with generalized compiler version output using the wrong flags (#2030)

    Fix issue with generalized compiler version output using the wrong flags

    TYPE: bug fix

    KEYWORDS: compile, version

    SOURCE: internal

    DESCRIPTION OF CHANGES:
    Problem:
    A generalized compile version check was proposed in #1987. This logic was implemented in #1942 but the originating logic contains a bug where the `-V` and `--version` flag commands' output is flipped.

    Solution:
    Use `-V` in the appropriate spot when `$status` is zero for the `-V` check, and respectively for the `--version` check.

    LIST OF MODIFIED FILES:
    M       compile

    TESTS CONDUCTED:
    1. With previous bad logic the compile log output shows a compiler error as the wrong flag is used to output version info. With the fix, the correct output now shows in the compile log.

commit 0b68af0d7f397ccee9a6402530a6f4927bf8a65f
Author: weiwangncar <weiwang@ucar.edu>
Date:   Wed Mar 27 16:03:46 2024 -0600

    correct the logic to use specific humidity or mixing ratio directly (#2031)

    TYPE: bug fix

    KEYWORDS: real, use_sh_qv

    SOURCE: internal

    DESCRIPTION OF CHANGES:
    The logic to control whether specific humidity or mixing ratio is used instead of RH is wrong (PR-1959) when either SH or Qv is available. It is corrected in this PR.

    LIST OF MODIFIED FILES:
    M dyn_em/module_initialize_real.F

    TESTS CONDUCTED:

    Tested before and after this change. The data without SH is not affected, and the data with SH (EC model level data) is now used directly if use_sh_qv is set to true.
    The Jenkins tests are all passing.

commit 9c09ef9ed4617a7daf0fd03d3556bca7f6b7e604
Author: weiwangncar <weiwang@ucar.edu>
Date:   Tue Mar 26 16:11:54 2024 -0600

    remove unneeded depends (#2029)

    TYPE: bug fix, clean up

    KEYWORDS: dependencies, unused

    SOURCE: internal

    DESCRIPTION OF CHANGES:
    Problem:
    Some dependency is declared twice, some are no longer needed.

    Solution:
    Remove un-used dependencies. Complimentary to PR-1950.

    LIST OF MODIFIED FILES:
    M      main/depend.common

    TESTS CONDUCTED:
    1. Tested on Derecho with 6 proc to compile
    2. The Jenkins tests are all passing.

commit 9e265af51ddb41cd1993d55289e13a5bcb3ae0c4
Author: Soren Rasmussen <soren@ucar.edu>
Date:   Fri Mar 15 14:10:23 2024 -0700

    Hydro CMake and Updates (#2009)

    TYPE: new feature, bug fixes, enhancement

    KEYWORDS: CMake, Build System, Hydro

    SOURCE: Soren Rasmussen and Ryan Cabell, NCAR

    DESCRIPTION OF CHANGES:
    - Build Systems:
      - CMake build system added and renaming .F and .f90 files to .F90 so they automatically get preprocessed and the editor recognizes them as free-form
      - added compiler info to all netcdf output files
      - Alma support added
      - Cray compiler fixes:
        - Removes comma after write statement and changes A*-B*C statements to A*(-B)*C
        - Use assumed shape / volatile arrays with ext libs - Replace timestep multiple check with mod operator
      - Update CMake with proper MPI and PGI/NVHPC support

    - General:
       - whitespace cleanup

    - MPI
      - Optimized inefficient MPI routines. Converted MPP_LAND p2p MPI to collectives, Remove unneeded mpp_land_sync() calls

    - Routing changes
      - Add scrape of outer edge of domain so water doesn't pile up
      - Remove 'FATAL ERROR' from SMCRT depletion message
      - Add to retro IO option (NWM)
      - routing bugfix: removed CHANN_K from debug print statement. The variable is unitialized and can change values every time executable is run.
      - bugfix: unallocated variables

    - Nudging
      - Update nudging_io to NF90 API
      - Since NetCDF subroutines have been converted to nf90 we can remove the 'include netcdf.inc' statements

    - Config
      - config debug: fixes in read_crocus_namelist subroutine

    TESTS CONDUCTED:
    1. Currently testing hydro's WRF testcase on new CMake and old Makefile build systems. PR will be draft until fully tested.

    RELEASE NOTE: Hydro has added CMake build option. General bug fixes and code cleanup. MPI routine made more efficient. All hydro file suffixes are now `.F90`.

    LIST OF MODIFIED FILES:

    ```
    M       CMakeLists.txt
    A       hydro/CMakeLists.txt
    M       hydro/CPL/WRF_cpl/Makefile
    R094    hydro/CPL/WRF_cpl/module_wrf_HYDRO.F    hydro/CPL/WRF_cpl/module_wrf_HYDRO.F90
    R096    hydro/CPL/WRF_cpl/module_wrf_HYDRO_downscale.F  hydro/CPL/WRF_cpl/module_wrf_HYDRO_downscale.F90
    R093    hydro/CPL/WRF_cpl/wrf_drv_HYDRO.F       hydro/CPL/WRF_cpl/wrf_drv_HYDRO.F90
    A       hydro/Data_Rec/CMakeLists.txt
    M       hydro/Data_Rec/Makefile
    D       hydro/Data_Rec/module_RT_data.F
    R069    hydro/Data_Rec/module_gw_gw2d_data.F    hydro/Data_Rec/module_RT_data.F90
    A       hydro/Data_Rec/module_gw_gw2d_data.F90
    R099    hydro/Data_Rec/module_namelist.F        hydro/Data_Rec/module_namelist.F90
    A       hydro/Data_Rec/module_namelist_inc.F90
    A       hydro/Data_Rec/module_rt_inc.F90
    A       hydro/Debug_Utilities/CMakeLists.txt
    M       hydro/Debug_Utilities/Makefile
    R100    hydro/Debug_Utilities/debug_dump_variable.F     hydro/Debug_Utilities/debug_dump_variable.F90
    A       hydro/HYDRO_drv/CMakeLists.txt
    M       hydro/HYDRO_drv/Makefile
    R099    hydro/HYDRO_drv/module_HYDRO_drv.F      hydro/HYDRO_drv/module_HYDRO_drv.F90
    A       hydro/IO/CMakeLists.txt
    M       hydro/IO/Makefile
    R100    hydro/IO/netcdf_layer.f90       hydro/IO/netcdf_layer.F90
    A       hydro/MPP/CMakeLists.txt
    R094    hydro/MPP/CPL_WRF.F     hydro/MPP/CPL_WRF.F90
    M       hydro/MPP/Makefile
    R099    hydro/MPP/hashtable.F   hydro/MPP/hashtable.F90
    R100    hydro/MPP/module_mpp_GWBUCKET.F hydro/MPP/module_mpp_GWBUCKET.F90
    R100    hydro/MPP/module_mpp_ReachLS.F  hydro/MPP/module_mpp_ReachLS.F90
    D       hydro/MPP/mpp_land.F
    A       hydro/MPP/mpp_land.F90
    A       hydro/OrchestratorLayer/CMakeLists.txt
    M       hydro/OrchestratorLayer/Makefile
    R099    hydro/OrchestratorLayer/config.f90      hydro/OrchestratorLayer/config.F90
    R098    hydro/OrchestratorLayer/io_manager.f90  hydro/OrchestratorLayer/io_manager.F90
    R094    hydro/OrchestratorLayer/orchestrator.f90        hydro/OrchestratorLayer/orchestrator.F90
    A       hydro/Routing/CMakeLists.txt
    M       hydro/Routing/Makefile
    R099    hydro/Routing/Noah_distr_routing.F      hydro/Routing/Noah_distr_routing.F90
    R100    hydro/Routing/Noah_distr_routing_overland.F     hydro/Routing/Noah_distr_routing_overland.F90
    R100    hydro/Routing/Noah_distr_routing_subsurface.F   hydro/Routing/Noah_distr_routing_subsurface.F90
    A       hydro/Routing/Overland/CMakeLists.txt
    M       hydro/Routing/Overland/Makefile
    R099    hydro/Routing/Noah_distr_routing.F      hydro/Routing/Noah_distr_routing.F90
    R100    hydro/Routing/Noah_distr_routing_overland.F     hydro/Routing/Noah_distr_routing_overland.F90
    R100    hydro/Routing/Noah_distr_routing_subsurface.F   hydro/Routing/Noah_distr_routing_subsurface.F90
    A       hydro/Routing/Overland/CMakeLists.txt
    M       hydro/Routing/Overland/Makefile
    R100    hydro/Routing/Overland/module_overland.F        hydro/Routing/Overland/module_overland.F90
    R100    hydro/Routing/Overland/module_overland_control.F        hydro/Routing/Overland/module_overland_control.F90
    R098    hydro/Routing/Overland/module_overland_mass_balance.F   hydro/Routing/Overland/module_overland_mass_balance.F90
    R100    hydro/Routing/Overland/module_overland_routing_properties.F     hydro/Routing/Overland/module_overland_routing_properties.F90
    R100    hydro/Routing/Overland/module_overland_streams_and_lakes.F      hydro/Routing/Overland/module_overland_streams_and_lakes.F90
    R100    hydro/Routing/Overland/overland_tests.F hydro/Routing/Overland/overland_tests.F90
    A       hydro/Routing/Reservoirs/CMakeLists.txt
    A       hydro/Routing/Reservoirs/Level_Pool/CMakeLists.txt
    M       hydro/Routing/Reservoirs/Level_Pool/Makefile
    R100    hydro/Routing/Reservoirs/Level_Pool/module_levelpool.F  hydro/Routing/Reservoirs/Level_Pool/module_levelpool.F90
    R100    hydro/Routing/Reservoirs/Level_Pool/module_levelpool_properties.F       hydro/Routing/Reservoirs/Level_Pool/module_levelpool_properties.F90
    R100    hydro/Routing/Reservoirs/Level_Pool/module_levelpool_state.F    hydro/Routing/Reservoirs/Level_Pool/module_levelpool_state.F90
    R100    hydro/Routing/Reservoirs/Level_Pool/module_levelpool_tests.F    hydro/Routing/Reservoirs/Level_Pool/module_levelpool_tests.F90
    M       hydro/Routing/Reservoirs/Makefile
    A       hydro/Routing/Reservoirs/Persistence_Level_Pool_Hybrid/CMakeLists.txt
    M       hydro/Routing/Reservoirs/Persistence_Level_Pool_Hybrid/Makefile
    R100    hydro/Routing/Reservoirs/Persistence_Level_Pool_Hybrid/module_persistence_levelpool_hybrid.F    hydro/Routing/Reservoirs/Persistence_Level_Pool_Hybrid/module_persisten\
    ce_levelpool_hybrid.F90
    R100    hydro/Routing/Reservoirs/Persistence_Level_Pool_Hybrid/module_persistence_levelpool_hybrid_properties.F hydro/Routing/Reservoirs/Persistence_Level_Pool_Hybrid/module_p\
    ersistence_levelpool_hybrid_properties.F90
    R100    hydro/Routing/Reservoirs/Persistence_Level_Pool_Hybrid/module_persistence_levelpool_hybrid_state.F      hydro/Routing/Reservoirs/Persistence_Level_Pool_Hybrid/module_p\
    ersistence_levelpool_hybrid_state.F90
    R100    hydro/Routing/Reservoirs/Persistence_Level_Pool_Hybrid/module_persistence_levelpool_hybrid_tests.F      hydro/Routing/Reservoirs/Persistence_Level_Pool_Hybrid/module_p\
    ersistence_levelpool_hybrid_tests.F90
    A       hydro/Routing/Reservoirs/RFC_Forecasts/CMakeLists.txt
    M       hydro/Routing/Reservoirs/RFC_Forecasts/Makefile
    R100    hydro/Routing/Reservoirs/RFC_Forecasts/module_rfc_forecasts.F   hydro/Routing/Reservoirs/RFC_Forecasts/module_rfc_forecasts.F90
    R100    hydro/Routing/Reservoirs/RFC_Forecasts/module_rfc_forecasts_properties.F        hydro/Routing/Reservoirs/RFC_Forecasts/module_rfc_forecasts_properties.F90
    R100    hydro/Routing/Reservoirs/RFC_Forecasts/module_rfc_forecasts_state.F     hydro/Routing/Reservoirs/RFC_Forecasts/module_rfc_forecasts_state.F90
    R100    hydro/Routing/Reservoirs/RFC_Forecasts/module_rfc_forecasts_tests.F     hydro/Routing/Reservoirs/RFC_Forecasts/module_rfc_forecasts_tests.F90
    R100    hydro/Routing/Reservoirs/module_reservoir.F     hydro/Routing/Reservoirs/module_reservoir.F90
    R100    hydro/Routing/Reservoirs/module_reservoir_read_rfc_time_series_data.F   hydro/Routing/Reservoirs/module_reservoir_read_rfc_time_series_data.F90
    R100    hydro/Routing/Reservoirs/module_reservoir_read_timeslice_data.F hydro/Routing/Reservoirs/module_reservoir_read_timeslice_data.F90
    R100    hydro/Routing/Reservoirs/module_reservoir_utilities.F   hydro/Routing/Reservoirs/module_reservoir_utilities.F90
    R100    hydro/Routing/Reservoirs/reservoir_tests.F      hydro/Routing/Reservoirs/reservoir_tests.F90
    A       hydro/Routing/Subsurface/CMakeLists.txt
    M       hydro/Routing/Subsurface/Makefile
    R100    hydro/Routing/Subsurface/module_subsurface.F    hydro/Routing/Subsurface/module_subsurface.F90
    R100    hydro/Routing/Subsurface/module_subsurface_grid_transform.F     hydro/Routing/Subsurface/module_subsurface_grid_transform.F90
    R100    hydro/Routing/Subsurface/module_subsurface_input.F      hydro/Routing/Subsurface/module_subsurface_input.F90
    R100    hydro/Routing/Subsurface/module_subsurface_output.F     hydro/Routing/Subsurface/module_subsurface_output.F90
    R100    hydro/Routing/Subsurface/module_subsurface_properties.F hydro/Routing/Subsurface/module_subsurface_properties.F90
    R100    hydro/Routing/Subsurface/module_subsurface_state.F      hydro/Routing/Subsurface/module_subsurface_state.F90
    R098    hydro/Routing/Subsurface/module_subsurface_static_data.F        hydro/Routing/Subsurface/module_subsurface_static_data.F90
    R100    hydro/Routing/Subsurface/subsurface_tests.F     hydro/Routing/Subsurface/subsurface_tests.F90
    R097    hydro/Routing/module_GW_baseflow.F      hydro/Routing/module_GW_baseflow.F90
    R099    hydro/Routing/module_HYDRO_io.F hydro/Routing/module_HYDRO_io.F90
    R088    hydro/Routing/module_HYDRO_utils.F      hydro/Routing/module_HYDRO_utils.F90
    R098    hydro/Routing/module_NWM_io.F   hydro/Routing/module_NWM_io.F90
    R099    hydro/Routing/module_NWM_io_dict.F      hydro/Routing/module_NWM_io_dict.F90
    R100    hydro/Routing/module_RT.F       hydro/Routing/module_RT.F90
    R094    hydro/Routing/module_UDMAP.F    hydro/Routing/module_UDMAP.F90
    R099    hydro/Routing/module_channel_routing.F  hydro/Routing/module_channel_routing.F90
    R100    hydro/Routing/module_date_utilities_rt.F        hydro/Routing/module_date_utilities_rt.F90
    R097    hydro/Routing/module_gw_gw2d.F  hydro/Routing/module_gw_gw2d.F90
    R099    hydro/Routing/module_lsm_forcing.F      hydro/Routing/module_lsm_forcing.F90
    R093    hydro/Routing/module_noah_chan_param_init_rt.F  hydro/Routing/module_noah_chan_param_init_rt.F90
    R099    hydro/Routing/module_reservoir_routing.F        hydro/Routing/module_reservoir_routing.F90
    M       hydro/arc/Makefile.NoahMP
    A       hydro/nudging/CMakeLists.txt
    M       hydro/nudging/Makefile
    R100    hydro/nudging/module_date_utils_nudging.F       hydro/nudging/module_date_utils_nudging.F90
    R090    hydro/nudging/module_nudging_io.F       hydro/nudging/module_nudging_io.F90
    R085    hydro/nudging/module_nudging_utils.F    hydro/nudging/module_nudging_utils.F90
    R100    hydro/nudging/module_stream_nudging.F   hydro/nudging/module_stream_nudging.F90
    A       hydro/utils/CMakeLists.txt
    M       hydro/utils/Makefile
    R100    hydro/utils/module_hydro_stop.F hydro/utils/module_hydro_stop.F90
    R100    hydro/utils/module_version.F    hydro/utils/module_version.F90
    ```

commit 01228e7dfc0c4c257a7511e028088eddf3dfb388
Author: joshi994 <160153650+joshi994@users.noreply.github.com>
Date:   Fri Mar 15 13:54:11 2024 -0400

    The net longwave flux absorbed by the building wall, RB2, in module_sf_urban.F is underestimating the value by a factor of emissivty of the wall, EPSG, as it is multiplied twice. I corrected the equation in the aforementioned module. (#2016)

    TYPE: Bug fix

    KEYWORDS: Longwave flux, radiation/energy balance, Surface temperature, Urban climate, SLUCM

    SOURCE: Parag Joshi (Brookhaven National Lab), Katia Lamer (Brookhaven National Lab)

    DESCRIPTION OF CHANGES:
    Problem:
    The net long wave fluxes absorbed by the building walls is being underestimated due to multiplication of the emissivity twice in the equation. The command/lines that evaluate RB2 in the module_sf_urban.F (Lines 1300 and 1419 of WRF version-4.5.2) reflect the net long wave fluxes absorbed by building walls.

    Solution:
    The code has been corrected by referring to the equation A9 of in the article, Kusaka & Kimora 2004, Journal of Applied Meteorology.

    ISSUE: For use when this PR closes an issue.
    Fixes #2011

    LIST OF MODIFIED FILES:
    M    module_sf_urban.F

    TESTS CONDUCTED:
    1. Tests were conducted by the LSM group at NCAR/RAL.
    2. It passed Jenkins tests.

    RELEASE NOTE: Correcting the net long wave fluxes for application in modeling urban climate using Single Layer Urban Canopy Model (SLUCM). It slightly improved 2-m temperature in urban area.

commit 95eb02c21e0493e1311208a7fe5f1db8b78e9244
Author: weiwangncar <weiwang@ucar.edu>
Date:   Wed Feb 28 14:43:02 2024 -0700

    Add prints for parameters used in auto_levels_opt = 2 in real.exe (#2015)

    TYPE: enhancement

    KEYWORDS: auto_levels_opt, dzbot, dzstretch

    SOURCE: internal

    DESCRIPTION OF CHANGES:
    Problem:
    Lack of information in the standard output when running real.exe using auto_levels_opt = 2.

    Solution:
    Adds print for parameters used to define vertical levels.

    LIST OF MODIFIED FILES:
    M     dyn_em/module_initialize_real.F

    TESTS CONDUCTED:
    1. Now print like the following is added to output from running real.exe:
       p_top =    1000. Pa, dzbot =   30.0 m, dzstretch_s/u =   1.20  1.02
    2. The Jenkins tests are all passing.

    RELEASE NOTE: This PR adds a print for parameters used when running real.exe using auto_levels_opt = 2 option, which is the default.

commit e1ebb1052d433093a0395337ef1465d336545c25
Author: Ted Mansell <37668594+MicroTed@users.noreply.github.com>
Date:   Wed Feb 28 15:40:57 2024 -0600

     Makes mp_zero_out affect only the 'moist' array. New separate flags for scalar/chem/tracer (#2010)

    TYPE:  bug fix

    KEYWORDS: mp_zero_out

    SOURCE: Ted Mansell (NOAA)

    DESCRIPTION OF CHANGES:
    This fixes the side-effect of mp_zero_out being applied not only to the moist array, but also to the scalar/chem/tracer arrays using the same threshold. This behavior would be unexpected from the documentation (readme) which indicated that only mixing ratios were affected.  This PR restricts mp_zero_out to the moist array and adds a separate mp_zero_out_all flag to apply it to all the arrays in the off chance that somebody needs to replicate the previous behavior.

    ISSUE: Addresses https://github.com/wrf-model/WRF/issues/2007

    LIST OF MODIFIED FILES:
    M  Registry/Registry.EM_COMMON
    M  dyn_em/solve_em.F
    M  run/README.namelist
    M  wrftladj/solve_em_ad.F
    M  wrftladj/solve_em_tl.F

    TESTS CONDUCTED:
    The Jenkins tests have passed.

    RELEASE NOTE: The behavior of the  mp_zero_out flag was changed affect only the 'moist' array, whereas previously it also caused the scalar/chem/tracer arrays to also be set to zero for values below threshold. Now there is a separate flag (mp_zero_out_all) if one wishes to reproduce the old behavior.

commit e2da0f64d8149588d058e97524f905d455389036
Author: Anthony Islas <128631809+islas@users.noreply.github.com>
Date:   Wed Feb 28 13:51:21 2024 -0700

    CMake build of diffwrf binaries (#2013)

    TYPE: enhancement

    KEYWORDS: cmake, diffwrf

    SOURCE: internal

    DESCRIPTION OF CHANGES:
    Problem:
    New CMake build did not create binaries for io_* `diffwrf`

    Solution:
    Slight restructure of certain targets to allow for easy creation of the diffwrf executables. Since previously all `diffwrf` binaries were named the same, to house them int the same `install/bin/` location they have been prefix with the type of io or shorthand of that option ( io_int -> `diffwrf_int`, io_netcdf -> `diffwrf_nc`, io_netcdfpar -> `diffwrf_ncpar` ).

    LIST OF MODIFIED FILES:
    M       CMakeLists.txt
    M       external/io_int/CMakeLists.txt
    M       external/io_netcdf/CMakeLists.txt
    M       external/io_netcdfpar/CMakeLists.txt

    TESTS CONDUCTED:
    1. Diffwrf execs should now be located in cmake install location

    RELEASE NOTE:
    CMake build of diffwrf binaries

commit 794843fe72a92b373401660625bdcc08e1fd8409
Author: epn09 <14163153+epn09@users.noreply.github.com>
Date:   Fri Feb 23 02:05:20 2024 +0900

    Fix AHE option 2 and a problem with mosaic (#2005)

    This PR fixes 2 issues from the original PR#1986: 1. FRC_URB2D declaration for mosaic option; and 2. AHE option 2 should be added before PBL physics is called. This PR also removes a few un-used variables in surface_driver.

    LIST OF MODIFIED FILES:
    M       dyn_em/module_first_rk_step_part1.F
    M       phys/module_pbl_driver.F
    M       phys/module_sf_noahdrv.F
    M       phys/module_surface_driver.F

    TESTS CONDUCTED:
    The Jenkins tests are all passing.

commit 2e15abb75d1fa04e3a99e7dc2e775a2c2de7927d
Author: Changgui Lin <72630106+ahheo@users.noreply.github.com>
Date:   Wed Feb 21 04:45:58 2024 +0800

    Resolves building issues (WRF/WRF-chem) with Intel compilers (ifx/icx) (#1942)

    TYPE: bug fix

    KEYWORDS: Missing/Wrong Prototypes in C code, WRF-Chem

    SOURCE: Changgui Lin

    DESCRIPTION OF CHANGES:
    Problem:
    Problem: Most C code written long ago. No prototypes were used. See PR#1823. And, this pr is kind of an extension to PR#1823 addressing the same issue for building WRF-chem.

    Solution:
    Add missing prototypes; rearrange function order to support new Intel oneAPI compiler

    RELEASE NOTE: This PR fixed missing and/or wrong prototypes in C code to support successful compilation of WRF-Chem when using the Intel oneAPI compiler ifx/icx.

commit d66b39985c5cfaa9e550ae4de48b849b66e031e7
Author: Anthony Islas <128631809+islas@users.noreply.github.com>
Date:   Fri Feb 16 09:51:54 2024 -0700

    CMake Build (#1896)

    TYPE: new feature

    KEYWORDS: CMake, build, make

    SOURCE: internal

    DESCRIPTION OF CHANGES:
    Problem:
    The current WRF build system is fragile with many pitfalls making it difficult for users to build & add to it without perpetuating existing problems. Many options exist across various layers of files, languages, and option control-flow.

    Solution:
    *This requires CMake version 3.20 or newer*
    A redesign of the build system from the ground up, maintaining the interfacing feel and knowledge accumulated in `arch/configure.defaults`. Condense option selection and control to single locations and as best as possible reduce the complexity of this control.

    This will be a work in progress as gaps are identified in reproducing the full functionality of the makefile build system. Currently only `em_real` and `em_ideal` have limited supported

    Brief how to use:
    As this is a work in progress, the original `configure` and `compile` scripts have been left as-is. Alongside them are now `configure_new` and `compile_new` which walk a user through a slightly similar experience of configuring & compiling WRF.

    A simple usage example would be:
    ```bash
    # Ensure you have cmake 3.20+ and configuration environment set up
    ./configure_new
    # Follow prompts to select configuration
    ./compile_new [-j N]
    ```

    Notable differences are :
    * Submodule code must be checked out beforehand and is not checked out during the compile process
    * Stanzas presented to a user are only those for which the compiler exists in the current environment
    * `!!` warnings appear for subconfigurations (MPI) that would not be supported in the current environment
    * DM/SM selection is now done after selecting a base configuration rather than an individual configuration # within a family of compilers
    * Compilation via `compile_new` does not take target to build as an argument - parallel `-j N` jobs still supported
    * Users do not need to set `NETCDF` or `LD_LIBRARY_PATH` variables
    * Base binaries do not have `.exe` extension, but symlinks are provided
    * Binaries, test setups, and everything else generated from compilation is copy-placed (not softlinked) to a separate location - default is `./install`. This means the equivalent `test/em_real/wrf.exe` is now at `install/test/em_real/wrf.exe`

    LIST OF MODIFIED FILES:
    A       CMakeLists.txt
    A       arch/configure_reader.py
    A       chem/CMakeLists.txt
    A       cleanCMake.sh
    A       cmake/c_preproc.cmake
    A       cmake/confcheck.cmake
    A       cmake/gitinfo.cmake
    A       cmake/m4_preproc.cmake
    A       cmake/modules/FindJasper.cmake
    A       cmake/modules/FindRPC.cmake
    A       cmake/modules/FindnetCDF-Fortran.cmake
    A       cmake/modules/FindnetCDF.cmake
    A       cmake/modules/FindpnetCDF.cmake
    A       cmake/printOption.cmake
    A       cmake/target_copy.cmake
    A       cmake/template/WRFConfig.cmake.in
    A       cmake/template/arch_config.cmake
    A       cmake/template/commit_decl.cmake
    A       cmake/wrf_case_setup.cmake
    A       cmake/wrf_get_version.cmake
    A       compile_new
    A       confcheck/CMakeLists.txt
    A       configure_new
    A       dyn_em/CMakeLists.txt
    A       external/CMakeLists.txt
    A       external/RSL_LITE/CMakeLists.txt
    A       external/atm_ocn/CMakeLists.txt
    A       external/esmf_time_f90/CMakeLists.txt
    A       external/fftpack/fftpack5/CMakeLists.txt
    A       external/io_adios2/CMakeLists.txt
    A       external/io_esmf/CMakeLists.txt
    A       external/io_grib1/CMakeLists.txt
    A       external/io_grib1/MEL_grib1/CMakeLists.txt
    A       external/io_grib1/WGRIB/CMakeLists.txt
    A       external/io_grib1/grib1_util/CMakeLists.txt
    A       external/io_grib2/CMakeLists.txt
    A       external/io_grib2/bacio-1.3/CMakeLists.txt
    A       external/io_grib2/g2lib/CMakeLists.txt
    A       external/io_grib2/g2lib/utest/CMakeLists.txt
    A       external/io_grib_share/CMakeLists.txt
    A       external/io_int/CMakeLists.txt
    A       external/io_netcdf/CMakeLists.txt
    A       external/io_netcdfpar/CMakeLists.txt
    A       external/io_phdf5/CMakeLists.txt
    A       external/io_pio/CMakeLists.txt
    A       external/io_pnetcdf/CMakeLists.txt
    A       external/ioapi_share/CMakeLists.txt
    A       frame/CMakeLists.txt
    A       inc/CMakeLists.txt
    A       main/CMakeLists.txt
    A       phys/CMakeLists.txt
    A       share/CMakeLists.txt
    A       test/em_b_wave/CMakeLists.txt
    A       test/em_convrad/CMakeLists.txt
    A       test/em_fire/CMakeLists.txt
    A       test/em_grav2d_x/CMakeLists.txt
    A       test/em_heldsuarez/CMakeLists.txt
    A       test/em_hill2d_x/CMakeLists.txt
    A       test/em_les/CMakeLists.txt
    A       test/em_quarter_ss/CMakeLists.txt
    A       test/em_real/CMakeLists.txt
    A       test/em_scm_xy/CMakeLists.txt
    A       test/em_seabreeze2d_x/CMakeLists.txt
    A       test/em_squall2d_x/CMakeLists.txt
    A       test/em_squall2d_y/CMakeLists.txt
    A       test/em_tropical_cyclone/CMakeLists.txt
    A       tools/CMakeLists.txt
    A       tools/CodeBase/CMakeLists.txt
    A       doc/README.cmake_build
    M       tools/fseek_test.c
    M       README
    M       arch/configure.defaults

    - Modified file include an adjustment to a compile test to allow the test to be conducted in an out-of-source build manner as prescribed by CMake. Default logic of this test to still test on the existence of `Makefile`

    TESTS CONDUCTED:
    1. In various instances this build is faster and more reliable with meaningful diagnostics when errors occur

    RELEASE NOTE:
    Introduction of a CMake build system for em_real and em_ideal

commit 5db9f7fcef70c118de7ce624eebfcd12d9e4c711
Author: jordanschnell <jordan.schnell@noaa.gov>
Date:   Wed Feb 14 11:19:14 2024 -0500

    Add KPP configure option to search for alternative version of libfl (#2008)

    TYPE:  enhancement

    KEYWORDS: chem, KPP, configure_kpp, Derecho

    SOURCE: internal

    DESCRIPTION OF CHANGES:
    Problem: KPP would not compile on Derecho due to name differences in libfl: only libfl.so exists, not libfl.a.

    Solution:
    Add flag to search for alternative name, libfl.so.

    LIST OF MODIFIED FILES:

    M chem/KPP/configure_kpp

    TESTS CONDUCTED:
    - Compiles with old intel compilers with libfl.a and compiles on Derecho with libfl.so
    - It passes regression tests.

    RELEASE NOTE: KPP configure option for alternative libfl name, libfl.so, in addition to libfl.a.

commit 3cadf04277ac3a050e65461efb6aa939349c60a8
Author: Cenlin_He <cenlinhe@ucar.edu>
Date:   Tue Feb 6 17:26:10 2024 -0700

    [Resubmit for PR #1881] New option for SLUCM to use global distributed urban aerodynamic parameters (#1986)

    TYPE: new feature

    KEYWORDS: SLUCM, urban parameters, anthropogenic heat

    SOURCE: Do Ngoc Khanh (Tokyo Institute of Technology)

    DESCRIPTION OF CHANGES:
    This PR adds a new feature to WRF SLUCM by allowing consideration of spatially varying global distributed urban parameters and spatially hourly monthly varying anthropogenic heat.

    LIST OF MODIFIED FILES:
    M Registry/Registry.EM_COMMON
    M Registry/registry.dimspec
    M dyn_em/module_first_rk_step_part1.F
    M dyn_em/module_initialize_real.F
    M phys/module_pbl_driver.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 phys/noahmp
    M share/output_wrf.F

    TESTS CONDUCTED:

    - The modification has been tested and used in previous publications.
    Initial development: Varquez, A. C. G., Nakayoshi, M., & Kanda, M. (2015). The effects of highly detailed urban roughness parameters on a sea-breeze numerical simulation. Boundary-layer meteorology, 154, 449-469. https://doi.org/10.1007/s10546-014-9985-4
    Global extension: Khanh, D. N., Varquez, A. C., & Kanda, M. (2023). Impact of urbanization on exposure to extreme warming in megacities. Heliyon, 9, e15511. https://doi.org/10.1016/j.heliyon.2023.e15511
    - The Jenkins tests are all passing.

    RELEASE NOTE: This modification adds two options (use_distributed_aerodynamics and distributed_ahe_opt) to WRF SLUCM (sf_urban_physics = 1) so that spatially varying urban morphological parameters (building height, plan area index, frontal area index, roughness length for momentum, and displacement height) can be considered.

commit 53f346023824ecad3d11252c1ca82912099a35ac
Author: weiwangncar <weiwang@ucar.edu>
Date:   Mon Feb 5 10:19:33 2024 -0700

    Fix compile on Cygwin (#2003)

    TYPE: bug fix

    KEYWORDS: compilation, Cygwin, doc files

    SOURCE:  Daniel Wesloh (Penn State)

    DESCRIPTION OF CHANGES:
    Problem:
    Compiling WRF failed on Cygwin due to lack of netCDF4

    Solution:
    Match assumptions about `USENETCDFPAR` (#1743 would also fix this) and pass flags to allow legacy Fortran constructs (disallowed by default with GCC 10)

    ISSUE: For use when this PR closes an issue.
    Fixes #1271

    LIST OF MODIFIED FILES:
    M       configure
    M       doc/README.cygwin.md
    M       doc/README.netcdf4par

    TESTS CONDUCTED:
    1. Checked whether model compiles on Cygwin in DWesl/wrf#1
    2. The Jenkins tests have passed.

    RELEASE NOTE: Fix compilation on Cygwin.

commit bcd3e504c818cc766e4eb40b26e2226ea626a057
Author: Sergey Osipov <Serega.Osipov@gmail.com>
Date:   Fri Feb 2 19:30:23 2024 +0100

    Bug fix for chem_opt=100 (vbs_het), racm_soa_vbs_het_kpp initialization (#2000)

    TYPE:bug fix

    KEYWORDS: racm_soa_vbs_het_kpp, aerosols

    SOURCE: Sergey Osipov (KAUST)

    DESCRIPTION OF CHANGES:
    Problem:
    The bug was introduced after splitting chem_opt 100 and 106. Currently, the chemistry initialization always calls for module_aerosol_soa_vbs routine, leaving the module_aerosol_soa_vbs_HET and corresponding data constants unitialized. As a result, aerosol concentrations are set to 0 after the first time integration (10**-16).

    To verify the bug fix, initialize WRF-Chem with non-trivial IC and save the next time step into nc. Check that values are non-trivial (e.g., so4aj, soila).

    Solution:
    Differentiate between module_aerosol_soa_vbs and module_aerosol_soa_vbs_het initialization routines

    LIST OF MODIFIED FILES:
    M    Registry/registry.chem
    M    chem/chemics_init.F
    M    chem/module_aerosols_soa_vbs_het.F

    TESTS CONDUCTED:
    - The Jenkins tests are all passing.

    RELEASE NOTE: This PR fixes a bug introduced after splitting chem_opt 100 and 106, which left  the module_aerosol_soa_vbs_HET and corresponding data  uninitialized.

commit 3491d8e297c32340ea97c41c312e82fcd67f232b
Author: RenChuanhua <51021628+RenChuanhua@users.noreply.github.com>
Date:   Sat Feb 3 02:20:55 2024 +0800

    The WRF-SoilN-chem: a dynamic ammonia emission model  (#1826)

    TYPE: enhancement

    KEYWORDS: ammonia emission, soil, dynamic, chem, gas phase.

    SOURCE: RenChuanhua and Huangxin, Nanjing University.

    DESCRIPTION OF CHANGES:
    Problem:
    The traditional monthly emission inventory cannot characterize the variation of ammonia emission intensity under different meteorological conditions, which leads to the simulation bias of secondary inorganic aerosol (such as nitrate and sulfate).

    Solution:
    The meteorological dependent dynamic emission factor (empirical function) is added to the emission file, which can calculate the ammonia emission rate according to hourly meteorological conditions and soil conditions.

    LIST OF MODIFIED FILES: list of changed files:
    Registry/Registry.EM_COMMON
    Registry/registry.chem
    chem/chem_driver.F
    chem/emissions_driver.F

    TESTS CONDUCTED:
    We compiled and ran the revised model to simulate 2019 East China region, and it can run smoothly, and the running speed has not decreased significantly. Compared with the traditional static emission inventory, the NH3 and nitrate concentrations obtained by dynamic model are obviously optimized.

    The code has passed the regression tests.

    RELEASE NOTE: This PR adds the meteorological dependent dynamic emission factor (empirical function) to the emission file, which may help correct simulation bias of secondary inorganic aerosol (such as nitrate and sulfate).

    The whole source code and input dataset (binary data needed to be embedded into WPS geog_data_path) and model userguide can be found in:
    https://github.com/RenChuanhua/wrf-nh3-chem_v1.0

    Ren, C., Huang, X., Liu, T., Song, Y., Wen, Z., Liu, X., Ding, A., and Zhu, T.: A dynamic ammonia emission model and the online coupling with WRF-Chem (WRF-SoilN-Chem v1.0): development and evaluation, Geosci. Model Dev. Discuss. [preprint], https://doi.org/10.5194/gmd-2022-231, 2022.

commit cb5fb2f48859e6dd772e4db4efdde9f32fd6fc38
Author: weiwangncar <weiwang@ucar.edu>
Date:   Fri Feb 2 11:13:19 2024 -0700

    Shared physics sfclayrev (#1997)

    TYPE: enhancement, new feature

    KEYWORDS: shared physics, revised MM5 sfclay scheme

    SOURCE: internal

    DESCRIPTION OF CHANGES:
    Add revised MM5 surface layer scheme from the shared physics directory, which is ccpp-compliant. Also added salinity effect in the shared physics subroutine. It also includes change made in [PR-1924.](https://github.com/wrf-model/WRF/pull/1924)

    The CCPP-compliant revised MM5 surface layer code will be residing in phys/physics_mmm/ directory. Currently it is a copy of the code from the future MMM-physics repo, plus the salinity change made recently in WRF.

    LIST OF MODIFIED FILES:
    M       arch/postamble
    M       arch/preamble
    M       clean
    M       main/depend.common
    M       phys/Makefile
    M       phys/module_physics_init.F
    M       phys/module_sf_sfclayrev.F
    M       phys/module_surface_driver.F
    A       phys/physics_mmm/sf_sfclayrev.F90

    TESTS CONDUCTED:
    1. The runs before and after this change produce bit-for-bit results when compiled with -d option.
    2. The Jenkins tests are all passing.

    RELEASE NOTE: Add revised MM5 surface layer scheme from the future shared MMM-physics repository.

commit c6cc0c537725a1d38352fec46c3a184eb70fb227
Author: weiwangncar <weiwang@ucar.edu>
Date:   Fri Feb 2 09:01:46 2024 -0700

    Shared physics nTiedtke (#1994)

    TYPE: enhancement, new feature

    KEYWORDS: shared physics, new Tiedtke

    SOURCE: internal

    DESCRIPTION OF CHANGES:
    This PR adds new Tiedtke scheme from the shared physics directory, which is ccpp-compliant.

    The CCPP-compliant new Tiedtke code will be residing in phys/physics_mmm/ directory. Currently it is a copy of the code from the future MMM-physics repo.

    LIST OF MODIFIED FILES:
    M       arch/postamble
    M       arch/preamble
    M       clean
    M       main/depend.common
    M       phys/Makefile
    M       phys/module_cu_ntiedtke.F
    M       phys/module_cumulus_driver.F
    A       phys/physics_mmm/cu_ntiedtke.F90

    TESTS CONDUCTED:
    1.  The runs before and after this change produce bit-for-bit results when compiled with -d option.
    2. The Jenkins tests are all passing.

    RELEASE NOTE:  Add new Tiedtke cumulus scheme from the future shared MMM-physics repository.

commit 81410a36a3f784c8d90e871698e998cae6a0c9fe
Author: weiwangncar <weiwang@ucar.edu>
Date:   Thu Feb 1 17:57:18 2024 -0700

    Shared physics wsm6 (#1993)

    TYPE: enhancement, new feature

    KEYWORDS: shared physics, WSM6

    SOURCE: internal

    DESCRIPTION OF CHANGES:
    Add WSM6 microphysics scheme from the shared physics directory, which is ccpp-compliant.

    Solution:
    The CCPP-compliant WSM6 MP code will be residing in phys/physics_mmm/ directory. Currently it is a copy of the code from the future MMM-physics repo.

    LIST OF MODIFIED FILES:
    M main/depend.common
    M phys/Makefile
    M phys/module_microphysics_driver.F
    M phys/module_mp_wsm6.F
    M phys/module_physics_init.F
    A phys/physics_mmm/module_libmassv.F90
    A phys/physics_mmm/mp_radar.F90
    A phys/physics_mmm/mp_wsm6.F90
    A phys/physics_mmm/mp_wsm6_effectRad.F90
    M share/module_model_constants.F

    TESTS CONDUCTED:
    - The runs before and after this change produce bit-for-bit results when compiled with -d option.
    - The regression tests have passed.

    RELEASE NOTE: Add WSM6 microphysics scheme from the future shared MMM-physics repository.

commit e86f1a361e37fa080a09f23592863e9c671c2beb
Author: weiwangncar <weiwang@ucar.edu>
Date:   Thu Feb 1 15:24:13 2024 -0700

    Shared physics YSU PBL (#1991)

    TYPE: enhancement, new feature

    KEYWORDS: shared physics, ysu pbl

    SOURCE: internal

    DESCRIPTION OF CHANGES:
    Add YSU PBL scheme from the shared physics directory, which is ccpp-compliant.

    Solution:
    The CCPP-compliant YSU PBL code will be residing in phys/physics_mmm/ directory. Currently it is a copy of the code from the future MMM-physics repo.

    LIST OF MODIFIED FILES:
    M       Registry/Registry.EM_COMMON
    M       arch/postamble
    M       arch/preamble
    M       clean
    M       main/depend.common
    M       phys/Makefile
    M       phys/module_bl_ysu.F
    M       phys/module_pbl_driver.F
    M       phys/module_physics_init.F
    A       phys/physics_mmm/bl_ysu.F90

    TESTS CONDUCTED:
    1. Option runs before and after the change do not produce identical results with 'configure -d'. But we do not think the results are wrong.
    2. The Jenkins tests have passed.

    RELEASE NOTE: Add YSU PBL scheme from the future shared MMM-physics repository.

commit f8530bba0b43a9ce49e415a95966bedbb2dac7c1
Author: weiwangncar <weiwang@ucar.edu>
Date:   Thu Feb 1 14:19:02 2024 -0700

    Add shared physics gwdo (#1989)

    TYPE: enhancement, new feature

    KEYWORDS: shared physics, gwdo scheme

    SOURCE: internal

    DESCRIPTION OF CHANGES:
    This PR makes use of the GWDO code (gwd_opt=1) from the future MMM-physics repository, which are CCPP-compliant.

    The CCPP-compliant GWDO code will be residing in phys/physics_mmm/ directory. Currently it is a copy of the code from the future MMM-physics repo. The file, module_bl_gwdo.F, has been changed to be a driver to call the actual physics routine in physics_mmm/.

    LIST OF MODIFIED FILES:
    M arch/postamble
    M arch/preamble
    M clean
    M main/depend.common
    M phys/Makefile
    M phys/module_bl_gwdo.F
    M phys/module_pbl_driver.F
    A phys/physics_mmm/bl_gwdo.F90
    M wrftladj/module_pbl_driver_ad.F

    TESTS CONDUCTED:
    - Option run before and after the change produced bit-for-bit results when compiled with -d option.
    - The Jenkins tests are all passing.

    RELEASE NOTE: Add gwdo (gwd_opt=1) code from the future shared MMM-physics repository.

commit b0062882574e290e8f6a23b0500390bc8c6b936b
Author: jordanschnell <jordan.schnell@noaa.gov>
Date:   Thu Feb 1 16:09:12 2024 -0500

    Fix Typo in WRF-Chem Registry (#2001)

    TYPE: Bug Fix

    KEYWORDS: N2O5 het, MADE

    SOURCE: internal

    DESCRIPTION OF CHANGES:
    Problem: Error when trying to use namelist option

    Solution:
    Fix Typo

    LIST OF MODIFIED FILES:
    M Registry/registry.chem

    TESTS CONDUCTED:
    It has passed the regression tests.

    RELEASE NOTE: Fixes n2o5 heterogenous namelist option for MADE schemes.

commit 379b4df8a61a44481878a49af8c638986525eaed
Author: Kasra Shamsaei <75144521+kasrash@users.noreply.github.com>
Date:   Thu Feb 1 09:04:03 2024 -0800

    Truncated Gaussian Heat and Smoke Release Formulation for WRF-Fire (#1926)

    TYPE: new feature

    KEYWORDS: WRF-Fire, Heat Release, Smoke, Plume, Gaussian

    SOURCE: Kasra Shamsaei (University of Nevada, Reno), Tim Juliano, Branko Kosovic (NCAR/RAL)

    DESCRIPTION OF CHANGES:
    Problem:
    The current fire heat distribution in the WRF-Fire does not conserve the heat fluxes from the fire. In this new scheme, the fire heat is conserved while distributed in the atmosphere. Additionally, the current smoke tracer release scheme in WRF-Fire was over-simplified.

    Solution:
    We introduce a Truncated Gaussian fire heat and smoke distribution scheme in WRF-Fire to overcome the mentioned limitation of fire heat distribution and have a higher fidelity model to release fire smoke tracers. Several namelist options are added in order for the user to choose the desired release scheme and adjust the parameter.

    LIST OF MODIFIED FILES:
    Registry/registry.fire
    phys/module_fr_fire_atm.F
    phys/module_fr_fire_driver.F
    phys/module_fr_fire_driver_wrf.F

    TESTS CONDUCTED:
    1. The new scheme is explained and its effects are analyzed against real-world measurements in the following paper for historic fires simulations:
    Shamsaei, K.; Juliano, T.W.; Roberts, M.; Ebrahimian, H.; Lareau, N.P.; Rowell, E.; Kosovic, B. The Role of Fuel Characteristics and Heat Release Formulations in Coupled Fire-Atmosphere Simulation. Fire 2023, 6, 264. https://doi.org/10.3390/fire6070264
    2. It passed the regression tests.

    RELEASE NOTE: Add new Truncated Gaussian scheme to distribute fire heat and smoke in the atmosphere.

commit 211ae28b9888c6eb0a84e346b4912c01c45efcd1
Author: juntangc <107206367+juntangc@users.noreply.github.com>
Date:   Wed Jan 31 21:18:47 2024 -0600

    loop permute, to help better memory access, vectorization (#1890)

    TYPE: enhancement

    KEYWORDS: loop permute, vectorization

    SOURCE: Jun Tang (Amazon)

    DESCRIPTION OF CHANGES:
    Problem:
    GCC is not able to permute the loop so that the inner loop is along fast dimension of the arrays and not able to vectorize loops with conditional statement

    Solution:
    This patch allows memory access in the inner loop along the faster dimension of the data arrays; and this patch also breaks down some larger loops with conditional statement to allow partial vectorization.

    LIST OF MODIFIED FILES:
    M dyn_em/module_advect_em.F
    M dyn_em/module_big_step_utilities_em.F
    M dyn_em/module_em.F
    M phys/module_ra_rrtmg_lw.F
    M phys/module_ra_rrtmg_sw.F
    M phys/module_radiation_driver.F

    TESTS CONDUCTED:
    1.  I have seen 2-3% improvement in performance for CONUS 2.5 km benchmark (GCC). WRF outputs have been compared before and after the patch; the output models are bit-for-bit matching for CONUS 12km and CONUS 2.5 km models; the diff are generated using diffwrf.py script.
    2. It passed regression tests.
    3. NCAR also tested the change, and they produce bit-for-bit results.

    RELEASE NOTE: This PR allows memory access in the inner loop along the faster dimension of the data arrays in some routines; and in other modules breaks down some larger loops with conditional statement to allow partial vectorization. It particularly benefits with GCC (i.e. gfortran).

commit 710add07fe87ad6d6de7ac29a3b6489b59b8931d
Author: Joseph Olson <joeolson42@users.noreply.github.com>
Date:   Wed Jan 31 19:06:35 2024 -0700

    Syncing MYNN-EDMF + bug fix (#1996)

    TYPE: bug fix, enhancement

    KEYWORDS: subgrid clouds, mass flux, local diffusion

    SOURCE: Joseph Olson and Laura Fowler

    DESCRIPTION OF CHANGES:
    Problems:

    1. bug fix for momentum transport - minor impact
    2. underdiffusive in very stable conditions, especially high latitudes. This reveals itself as a cold bias at high latitudes in RRFS and the TKE is too often hitting the lower limit.
    3. cosmetic issue with cloud fractions in unsaturated grid cells with nonzero mixing ratios
    4. uninitialized scalars in unused subroutine planned for deletion

    Solutions (1-1 mapping with problems listed above):

    1. added the missing rho to the mass flux components in the u and v tridiagonal vectors.
    2. reverted the blending of the mixing lengths to same as HRRRv4 and tweaked some parameters to slightly increase the diffusion, mostly isolated to very stable conditions.
    3. relaxed some limits and combined the ice and snow cloud fraction check together.
    4. replaced uninitialized variables with variables that are initialized (changed names). Still plan to remove this subroutine after the downdrafts are fully revised (very close).

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

    TESTS CONDUCTED:
    - Do mods fix problem? (1) Yes, (2) alleviated, (3) Yes, (4) Yes. Single case studies were performed. Full retrospective tests are ongoing. All physics changes hav a small impact.
    - Te Jenkins tests are all passing.

commit 43fc9a41ed6b2d87be9b83baa7879c263974b25d
Author: weiwangncar <weiwang@ucar.edu>
Date:   Wed Jan 31 14:58:26 2024 -0700

    This is in preparation to make sfclayrev module ccpp-compliant: (#1998)

    TYPE: enhancement

    KEYWORDS: shalwater_init, shallow water roughness length

    SOURCE: internal

    DESCRIPTION OF CHANGES:
    Move the call to shallow water roughness length initialization routine from module_sf_sfclayrev.F to module_physics_init.F

    This is in preparation to make sfclayrev module ccpp-compliant, and potential make the initialization and physics available to other surface layer modules.

    LIST OF MODIFIED FILES:
    M       phys/module_physics_init.F
    M       phys/module_sf_sfclayrev.F

    TESTS CONDUCTED:
    1. Should not change how the variable is initialized.
    2. The Jenkins tests are all passing.

    RELEASE NOTE: This PR moves the call to shalwater_init from module_sf_sfclayrev.F to module_physics_init.F.

commit 9b08bf28b56698df2aeda154afab2d7843a89c50
Author: Anthony Islas <128631809+islas@users.noreply.github.com>
Date:   Wed Jan 31 14:56:15 2024 -0700

    Add missing module_wind_mav.o dep to module_physics_init.o (#1999)

    TYPE: bug

    KEYWORDS: make, dependency

    SOURCE: internal

    DESCRIPTION OF CHANGES:
    Problem:
    PR #1944 adds module_wind_mav to module_physics_init, but does not update the main/depend.common file to add the dependency during compilation

    Solution:
    Add module_wind_mav.o as a dependency to module_physics_init.o in the main/depend.common file

    ISSUE:
    Fixes comment noted in #1944

    LIST OF MODIFIED FILES:
    M main/depend.common

    TESTS CONDUCTED:
    - Local compilation in single job mode -j 1 should work now.
    - It passed regression tests.

commit 240c6f3faee93aff9eaf9995e9cb2f185f8f273c
Author: Anthony Islas <128631809+islas@users.noreply.github.com>
Date:   Thu Jan 25 01:02:32 2024 +0000

    Rectify many of the missing dependencies (#1950)

    TYPE: bug fix

    KEYWORDS: make, dependencies

    SOURCE: internal

    DESCRIPTION OF CHANGES:
    Problem:
    Occasionally and non-deterministically the WRF make compilation will fail due to erroneous depend rules or missing rules which result in essentially either (1) race conditions relying on modules to just happen to be compiled in time for use (2) when rules are followed, subsequent dependencies are missing and compilation fails or (3) complete recompilation of certain files.

    For instance, if one takes a look at a build log, one could see that module_mp_thompson.o is compiled twice - once as module_mp_thompson.o and again as ../phys/module_mp_thompson.o.

    This is not or rarely observed in the current regression tests because compilation is done three times as a stop-gap to avoid this issue.

    Solution:
    Add missing dependencies and fix malformed dependencies.

    LIST OF MODIFIED FILES:
    M main/depend.common

    TESTS CONDUCTED:
    - Cannot be observed in current regression tests as they are designed to obscure this very issue. Can be observed with many single individual compilations.
    - It passed the regression tests.

    RELEASE NOTE: Fix missing or erroneous dependencies in make rules.

commit 0c4ed5f7006d4754c44a3a47e43b195c116e491e
Author: weiwangncar <weiwang@ucar.edu>
Date:   Wed Jan 24 12:17:45 2024 -0700

    add salinity effect in sfclay and sfclayrev (#1963)

    TYPE: enhancement

    KEYWORDS: salinity effect, saturation vapor pressure, ocean

    SOURCE: internal

    DESCRIPTION OF CHANGES:
    Problem:
    The salinity effect of ocean is not considered when computing saturation vapor pressure.

    Solution:
    Add the effect in the MM5 and revised MM5 surface layer schemes. The 0.98 factor (set in the code as SALINITY_FACTOR) is an approximation for salinity of 34 part per thousands, and applied for saturation specific humidity. Here the approximation is applied to saturation mixing ratio. The lakemask field is used to exclude this effect from inland lakes.

    LIST OF MODIFIED FILES:
    M phys/module_sf_sfclay.F
    M phys/module_sf_sfclayrev.F
    M phys/module_surface_driver.F

    TESTS CONDUCTED:
    - Tested in many tropical cyclone cases.
    - The Jenkins tests are all passing.

    RELEASE NOTE: Add salinity effect in MM5 and revised MM5 surface layer schemes. The effect is lower the saturation vapor pressure over ocean by about 2%.

commit 3a504662659672d96ee45867e903fc3a3ad02955
Author: weiwangncar <weiwang@ucar.edu>
Date:   Wed Jan 24 11:33:45 2024 -0700

    Use Qv or specific humidity in interpolation if they are available (#1959)

    TYPE: enhancement

    KEYWORDS: Qv, specific humidity, vertical interpolation

    SOURCE: internal

    DESCRIPTION OF CHANGES:
    Problem:
    In current real program, if either water mixing ratio (Qv) or specific humidity (SH) is available, it first converts it to RH, perform vertical interpolation using RH, and then compute Qv for the model input. Assuming Qv and SH are coming from other model's native levels, which tends to be plenty and generally true, it should not be necessary to go through this Qv (SH) to RH, and RH to Qv steps.

    Solution:
    Use the flag_qv and flag_sh to avoid using interpolated RH (even though RH is still computed and vertically interpolated). If flag_sh is 1, SH is converted to Qv or mixing ratio. Then Qv is interpolated vertically. A namelist, use_sh_qv, is added for user to choose to do so if SH or Qv data is available. A test case shows that there is some differences in the final Qv in the lower levels (a bit less Qv), particularly near terrain slopes.

    LIST OF MODIFIED FILES:
    M Registry/Registry.EM_COMMON
    M dyn_em/module_initialize_real.F
    M run/README.namelist

    TESTS CONDUCTED:
    - It doesn't affect existing option if RH is the only incoming variable. Tested the code, and it gives bit-for-bit results before and after this change.
    - The Jenkins tests are all passing.

    RELEASE NOTE: If water mixing ratio or specific humidity is available in the metgrid output, they can be used directly in vertical interpolation. Previously these fields are first converted to RH, interpolated vertically, and the water vapor mixing ratio is computed at model levels. Now one can use the new namelist, use_sh_qv = T to choose to use SH or Qv data directly.

commit c50bf2aa962f8df4b96e54c7449d6c543a06bb7d
Author: YulongMa <yulong.ma@wsu.edu>
Date:   Thu Jan 25 02:31:05 2024 +0800

    Add three new wind farm parameterizations and their ensembles  (#1944)

    TYPE: new feature

    KEYWORDS: wind farm parameterization, windfarm wake option

    SOURCE: Cristina Archer (UDEL), Yulong Ma(UDEL;GWA-MWF) and Ahmad Vasel-Be-Hagh(Tennessee Technological University)

    DESCRIPTION OF CHANGES:
    Three new wind farm parameterizations and their ensembles have been added. The key innovation of these parameterizations is their ability to directly account for the individual and overlapping sub-grid wakes of wind turbines within a wind farm. This feature was absent in the Fitch parameterization previously used in WRF. Additionally, the three parameterizations differ in their representation of wakes (e.g., top-hat or Gaussian) and their superposition methods (e.g., sum of squared deficits, squared velocities, or empirical fittings).
    The new namelist option windfarm_wake_model can be used to select one of the three wind farm parameterizations, the windfarm_overlap_method namelist option can be used to select the desired wake superposition method.
    We recommend to use the new wind farm parameterizations, particularly for coarse resolution, high turbine density, and wind directions aligned with the turbine columns.

    LIST OF MODIFIED FILES:
    dyn_em/module_first_rk_step_part1.F
    phys/module_pbl_driver.F
    phys/module_physics_init.F
    phys/module_wind_jensen.F
    phys/Makefile
    Registry/Registry.EM_COMMON
    run/README.namelist

    TESTS CONDUCTED:
    1. Code tested as shown in references.
    2. The Jenkins tests are all passing.

    RELEASE NOTE:
    This PR adds options for three new wind farm parameterizations and their ensembles to account for the individual and overlapping sub-grid wakes of wind turbines within a wind farm. It is recommended to use the new wind farm parameterizations, particularly for coarse resolution, high turbine density, and wind directions aligned with the turbine columns. References:
    Ma, Yulong, Cristina L. Archer, and Ahmadreza Vasel-Be-Hagh. "The Jensen wind farm parameterization." Wind Energy Science 7.6 (2022): 2407-2431.
    Ma, Yulong, Cristina L. Archer, and Ahmad Vasel‐Be‐Hagh. "Comparison of individual versus ensemble wind farm parameterizations inclusive of sub‐grid wakes for the WRF model." Wind Energy 25.9 (2022): 1573-1595.

commit 554b12c81b081e068e24a0111ee360b528bb97b0
Author: Cenlin_He <cenlinhe@ucar.edu>
Date:   Wed Jan 24 11:14:12 2024 -0700

    Update WRF develop with bug fix for LAI initialization for urban pxiel in Noah-MP (#1990)

    TYPE: bug fix

    KEYWORDS: LAI, urban, Noah-MP

    SOURCE: Cenlin He (NCAR/RAL)

    DESCRIPTION OF CHANGES:
    Problem:
    Before bug fix, Noah-MP (v4.5 and earlier versions) initializes leaf mass from the table parameter based on land type. However, this causes model crash if the LCZ capability is activated for urban pixel, because the LCZ land type index (51-61) is out of the MODIS or USGS land type number. This code is in module_sf_noahmpdrv.F file.

    Solution:
    Add an if-statement to assign default natural vegetation type for urban pixels with large land type index to represent rural portion of the urban pixel.

    This is related to a reported Noah-MP issue (NCAR/noahmp#104).

    LIST OF MODIFIED FILES:
    phys/noahmp/drivers/wrf/module_sf_noahmpdrv.F

    TESTS CONDUCTED:
    - The mods fix the problem
    - It passed the regression tests.

    RELEASE NOTE: This PR fixed a bug in Noah-MP for uninitialized leaf area index when LCZ is used.

commit 9f8ecd7964a0ef77ab1861309c6d7c79ec6df249
Author: Ted Mansell <37668594+MicroTed@users.noreply.github.com>
Date:   Tue Jan 23 12:36:49 2024 -0600

    Make sure that USENETCDFPAR is not undefined (#1988)

    TYPE: bug fix

    KEYWORDS:  make

    SOURCE: Ted Mansell (NOAA/NSSL)

    DESCRIPTION OF CHANGES:
    Problem: Logic failure in top level Makefile with some versions of make (don't remember which) if USENETCDFPAR is undefined

    Solution:
    Making sure that at USENETCDFPAR is set to either 0 or 1 in the configure script fixes the issue.

    LIST OF MODIFIED FILES: configure

    TESTS: it passed regression tests.

commit 6156b78dfd350e0514d2455badcd7eab9b7d2d31
Author: Cenlin_He <cenlinhe@ucar.edu>
Date:   Tue Jan 23 11:32:59 2024 -0700

    Update urban LCZ parameter table with more reasonable values (#1969)

    TYPE: enhancement

    KEYWORDS: urban, parameter

    SOURCE: Reported by Benjamin Fersch (Karlsruhe Institute of Technology, Germany), fixed by Alberto Martilli (CIEMAT, Spain)

    DESCRIPTION OF CHANGES:
    Problem:
    Current urban LCZ parameter table includes some unreasonable values for urban morphology (e.g., too large road width) and thermal properties (e.g., CAPR, CAPB, CAPG, AKSR, AKPB, AKPG). The LCZ classification is mainly a classification based on morphology, rather than thermal properties, so it should use the same thermal properties for different LCZs unless users have specific information from other local data sources.

    Solution:
    Use morphological parameters correspond to mid-range values of Stewart and Oke 2012, and all the LCZ classes have the same thermal properties.

    ISSUE: [For use when this PR closes an issue.](https://github.com/wrf-model/WRF/issues/1954)

    LIST OF MODIFIED FILES:
    URBPARM_LCZ.TBL

    TESTS CONDUCTED:
    1. The mods fix the problem.
    2. It passed regression tests.

    RELEASE NOTE: Update urban LCZ parameter table (URBPARM_LCZ.TBL) with more reasonable values.

commit e18082cd6a59f0c2452878a5a821b72b4b066ee2
Author: Ted Mansell <37668594+MicroTed@users.noreply.github.com>
Date:   Tue Jan 23 12:14:34 2024 -0600

    Add 3-moment option to NSSL microphysics (plus other minor scheme updates) (#1876)

    TYPE: enhancement

    KEYWORDS: microphysic…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants