Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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 ```
- Loading branch information