-
Notifications
You must be signed in to change notification settings - Fork 700
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
Conversation
- 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.
The regression test results:
|
@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! |
@weiwangncar Thanks for doing this. We need confirmation that it works as before. |
@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? |
@dudhia Yes, of course. |
There was a problem hiding this 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?
Yes, it is. |
@smileMchen Can you review this PR too? |
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…
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:
RELEASE NOTE: This PR moves the call to shalwater_init from module_sf_sfclayrev.F to module_physics_init.F.