forked from wrf-model/WPS
-
Notifications
You must be signed in to change notification settings - Fork 2
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
WPS 4.3.1 #22
Open
letmaik
wants to merge
67
commits into
wps-cmake
Choose a base branch
from
letmaik/4.3.1
base: wps-cmake
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
WPS 4.3.1 #22
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Merge bug-fixes from the v4.1 release into the develop branch. This merge also connects the v4.1 tag to future development on the develop branch. * master: Remove "(PRE-RELEASE)" from the version number in the README file Add 'modis_15s_lake' option for LANDUSEF data in GEOGRID.TBL.ARW eliminate the output=no option to the QNC (cloud drop number concentration) variable Update grib tables to add new HRRR fields. Ammend one varaible name. Leave old code in g2 library's intmath.f code with comment Fix string comparison Add configuration stanza for POWER running Linux with XL compilers Fix mismatch integer kind in IAND intrinsic calls in g2 library Update comments in Vtable.GFS. Add history of important GFS changes. Adjust pressure-level RH from GEFS as is done for GFS, CDAS, and ECMWF. Add LOGSFP entry to METGRID.TBL.ARW Update version number to 4.1
This merge adds a new optional dataset of irrigation to the GEOGRID.TBL. This dataset is 0.0833 degree (1/12 degree) resolution, about 9 km. The resulting field, named irrigation, is a 2-d field of percentages (0 - 100). In anticipation of other irrigation data sets becoming available, this dataset is located under the generic directory "irrigation" and then in the data-specific "fao" subdirectory. The data is sourced from http://www.fao.org/aquastat/en/geospatial-information/global-maps-irrigated-areas. The dataset supports the new WRF model option sf_surf_irr_scheme =1, 2 and 3. * irrigation: change the path and interp option as default add new irrigation dataset to table
All of the soil data is missing in domain 252
This merge updates the GRIB codes in the Vtable.RAP.hybrid.ncep table, and it also adds additional microphysical (QNC) and aerosol (QNWFA, QNIFA) fields. * varTable_RAP_hybrid_mp: 31 MB, not 15.5 MB size domain 252 does not have sufficient data, domain 130 does update GRIB2 parameters based on newer version RAP and HRRR models at NCEP
The version number is set in the top-level README, the compile script, and the geogrid and metgrid global attributes.
…culation When the calc_ecmwf_p utility is provided with a subset of ECMWF model levels, it may happen that the allocated 'tt' array contains non-zero values (because it was not previously initialized). This leads to errors in the calculation of the GHT field due to the use of uninitialized memory. Thanks to Hugo Hartmann (GitHub: hugohartmann) for identifying this issue and suggesting the fix in this commit.
Prior to this commit, the code in rd_grib2.F compared the starting latitude for a field on a Gaussian grid with the scaling factor, and if the starting latitude was larger than the scaling factor, the starting latitude was scaled. However, this fails when the starting latitude is negative, in which case no scaling is applied, and downstream code fails due to an invalid starting latitude in the resulting intermediate file. The fix in this commit is to simply compare the magnitude of the starting latitude with the scaling factor, and if the former exceeds the latter, then scaling of the starting latitude is applied.
…land use The 'landmask_water' entry in the GEOGRID.TBL.ARW file for the 'modis_15s_lake' land use dataset previously only identified category 17 as a water category, leading to an incorrect landmask field in the geogrid output. This commit updates the 'landmask_water' entry to identify both category 17 and category 21 as water categories. Thanks to GitHub user markelg for finding the issue addressed by this commit.
…f-model#144) This merge fixes a potential error in the calculation of the GHT field in the calc_ecmwf_p utility due to the use of uninitialized memory. When the calc_ecmwf_p utility is provided with a subset of ECMWF model levels, it may happen that the allocated 'tt' array contains non-zero values (because it was not previously initialized). This leads to errors in the calculation of the GHT field due to the use of uninitialized memory. Thanks to Hugo Hartmann for identifying this issue and suggesting the fix in this merge. This merge fixes issue wrf-model#136 . * calc_ecmwf_mem_initialization: Initialize arrays in calc_ecmwf_p to avoid potential error in GHT calculation
This merge adds category 21 as a water category for the modis_15s_lake land use dataset to give correct computation of the landmask field. The 'landmask_water' entry in the GEOGRID.TBL.ARW file for the 'modis_15s_lake' land use dataset previously only identified category 17 as a water category, leading to an incorrect landmask field in the geogrid output. This merge updates the 'landmask_water' entry to identify both category 17 and category 21 as water categories. Thanks to GitHub user markelg for finding the issue addressed by this merge. This merge fixes issue wrf-model#132 . * modis_15s_lake_bug: Add missing category 21 for landmask calculation with modis_15s_lake land use
The XL compiler identified calls to the MIN and MAX intrinsics in module_map_utils with inconsistent kind type parameters of the arguments: "module_map_utils.f90", line 819.44: 1513-041 (S) Arguments of the wrong type were specified for the INTRINSIC procedure "max". ** map_utils === End of Compilation 1 === 1501-511 Compilation failed for file module_map_utils.f90. This commit changes the kind type parameter of the literal arguments to MIN and MAX at line 808 of module_map_utils.F in the ijll_ps routine to HIGH.
… stanza For compatibility with other systems, the binary files (principally, the intermediate files) created by the WPS programs should be written in big-endian byte order. Accordingly, the -qufmt=be option has been added to the FFLAGS and F77FLAGS variables in the POWER/Linux stanza.
…del#147) This PR adds the -qufmt=be option to FFLAGS and F77FLAGS in the XL/POWER/Linux configuration stanza. For compatibility with other systems, the binary files (principally, the intermediate files) created by the WPS programs should be written in big-endian byte order. Adding the -qufmt=be compiler option to the FFLAGS and F77FLAGS variables in the POWER/Linux stanza accomplishes this. This PR fixes issue wrf-model#129 . * xl_power_linux_big_endian: Add -qufmt=be to FFLAGS and F77FLAGS for XL/POWER/Linux configuration stanza
…odel#148) This merge fixes an inconsistency in the kind types of arguments to the MIN and MAX intrinsics in module_map_utils. The XL compiler identified calls to the MIN and MAX intrinsics in module_map_utils with inconsistent kind type parameters of the arguments: "module_map_utils.f90", line 819.44: 1513-041 (S) Arguments of the wrong type were specified for the INTRINSIC procedure "max". ** map_utils === End of Compilation 1 === 1501-511 Compilation failed for file module_map_utils.f90. This merge changes the kind type parameter of the literal arguments to MIN and MAX at line 808 of module_map_utils.F in the ijll_ps routine to HIGH. * xl_map_utils_intrinsic_fix: Fix inconsistent kind types of arguments to MIN/MAX in module_map_utils
This configuration stanza has been used to successfully build the WPS on ORNL Summit using the PGI 19.9 compilers.
Following the change in the preceding commit, this commit modifies the g2print code to ensure that negative starting latitudes for Gaussian grids are scaled appropriately.
This merge adds a new configuration stanza for building with the PGI compilers on Linux/POWER9 systems. This configuration stanza has been used to successfully build the WPS on ORNL Summit using the PGI 19.9 compilers. * pgi_power_stanza: Add configuration stanza for PGI compilers on Linux/POWER9
…#145) This merge fixes an issue in scaling negative starting latitudes in GRIB2 datasets on a Gaussian grid. Prior to the changes in this merge, the code in rd_grib2.F compared the starting latitude for a field on a Gaussian grid with the scaling factor, and if the starting latitude was larger than the scaling factor, the starting latitude was scaled. However, this fails when the starting latitude is negative, in which case no scaling is applied, and downstream code fails due to an invalid starting latitude in the resulting intermediate file. The fix in this merge is to simply compare the magnitude of the starting latitude with the scaling factor, and if the former exceeds the latter, then scaling of the starting latitude is performed. Thanks to Linda Maoyi for identifying the issue addressed in this merge. This merge fixes issue wrf-model#142 . * fix_negative_start_lat: Fix scaling of negative starting latitude for Gaussian grids in g2print Fix scaling of starting latitude in GRIB2 datasets on a Gaussian grid
This merge finalizes the v4.2 release by adding changes from the 'release-v4.2' branch onto the 'master' branch. * release-v4.2: Fix scaling of negative starting latitude for Gaussian grids in g2print Add configuration stanza for PGI compilers on Linux/POWER9 Add -qufmt=be to FFLAGS and F77FLAGS for XL/POWER/Linux configuration stanza Fix inconsistent kind types of arguments to MIN/MAX in module_map_utils Add missing category 21 for landmask calculation with modis_15s_lake land use Fix scaling of starting latitude in GRIB2 datasets on a Gaussian grid Initialize arrays in calc_ecmwf_p to avoid potential error in GHT calculation Update version number to 4.2 31 MB, not 15.5 MB size domain 252 does not have sufficient data, domain 130 does change the path and interp option as default add new irrigation dataset to table update GRIB2 parameters based on newer version RAP and HRRR models at NCEP
The util/plotfmt.ncl script did not work with Lambert Conformal (LC) projections. ``` >ncl util/plotfmt.ncl 'filename="FILE:2020-04-19_00"' Copyright (C) 1995-2019 - All Rights Reserved University Corporation for Atmospheric Research NCAR Command Language Version 6.6.2 The use of this software is governed by a License Agreement. See http://www.ncl.ucar.edu/ for more details. (0) ================================================== (0) VAR = PMSL__201300 (0) hdate = '2020-04-19_00:00:00' (0) units = 'Pa' (0) desc = 'Sea-level Pressure' (0) field = 'PMSL' (0) map_source = 'NCEP RAP Model GRID 130' (0) version = 5 (0) xfcst = 0 (0) xlvl = 201300 (0) nx/ny = 451/337 (0) iproj = 3 (0) lat0/lon0 = 16.281/233.862 (0) head_real(8) = 13.545 (0) head_real(9) = 13.545 (0) head_real(10) = 265 (0) head_real(11) = 25 (0) head_real(12) = 25 (0) head_real(13) = 6371.23 fatal:Variable (lon) is undefined fatal:["Execute.c":8637]:Execute: Error occurred at or near line 196 in file util/plotfmt.ncl ``` Here is line 196 ``` 189 ; Read 2D data 190 191 slab = wrf_wps_rddata_int(istatus,nx,ny) 192 193 slab@_FillValue = -1e+30 194 slab!1 = "lon" 195 slab!0 = "lat" 196 slab&lon = lon 197 slab&lat = lat 198 slab@units = units ``` For the LC projections, the fields `lat` and `lon` are not required, and so are never defined. The assignments using `lat` and `lon`, and the subsequent deallocation of those two fields are both removed from the run-time processing with `if` tests for the LC projection. While providing a fix for this, Ming additionally added the lat lon lines on the LC plots. This is by adding two extra lines in the LC projection `if` block. Only a single file is modified: util/plotfmt.ncl
This merge enables plotfmt.ncl to be used datasets on a Lambert Conformal projection * plotfmt_lambert: Fix plotfmt.ncl for use with Lambert Conformal projections
This merge brings changes from the v4.2 release into the develop branch. It also connects the v4.2 tag to future development on the develop branch. * master: Fix scaling of negative starting latitude for Gaussian grids in g2print Add configuration stanza for PGI compilers on Linux/POWER9 Add -qufmt=be to FFLAGS and F77FLAGS for XL/POWER/Linux configuration stanza Fix inconsistent kind types of arguments to MIN/MAX in module_map_utils Add missing category 21 for landmask calculation with modis_15s_lake land use Fix scaling of starting latitude in GRIB2 datasets on a Gaussian grid Initialize arrays in calc_ecmwf_p to avoid potential error in GHT calculation Update version number to 4.2
I am doing some paleo-downscaling with WRF, and have to ungrib a set of files that contain data at 3-digit years (e.g. year 450). Ungrib.exe was unable to extract data from these files, as hdate 450-01-01_00:00:00 > hsave 0000-00-00_00:00:00 was not evaluated as true in one of the internal loops. This was apparently caused by a formatting error when hdate was created. I simply turned the year format from 'i4' to 'i4.4' on lines 26,30,34 and 38; which forces a leading zero (just as in other formatted time units). I did the same in 'geth_newdate.F', too. hdate 0450-01-01_00:00:00 > hsave 0000-00-00_00:00:00 The above is now .true., so ungrib.exe works for 3-digit years as well.
I am doing some paleo-downscaling with WRF, and have to ungrib a set of files that contain data at 3-digit years (e.g. year 450). Ungrib.exe was unable to extract data from these files, as hdate 450-01-01_00:00:00 > hsave 0000-00-00_00:00:00 was not evaluated as true in one of the internal loops. This was apparently caused by a formatting error when hdate was created. I simply turned the year format from 'I4' to 'I4.4' on lines 241,245,249 and 253; which forces a leading zero (just as in other formatted time units). I did the same in 'build_hdate.F', too. hdate 0450-01-01_00:00:00 > hsave 0000-00-00_00:00:00 The above is now .true., so ungrib.exe works for 3-digit years as well.
The information for users in the NARR Vtable accidentally includes an additional letter after "www". Once this change is made, sure enough, we can download the NARR static data. This is not a compiled file, so has no impact on the source build. This part of the NARR Vtable is not processed by ungrib, it is purely a comment. Changes to be committed: modified: ungrib/Variable_Tables/Vtable.NARR
…unt for new missing values and that the GEFS Landsea field doesn't match the soil fields.
Update rrpr.F to correctly process the land surface fields in the September 2020 GEFS files. The GEFS changes were similar to the GFS changes in July 2017 which includes a new missing value for soil fields. The landmask in the grib file does not match the soil fields, so a landmask is created from the soil temperature field. Without this fix the soil temperature and moisture can be zero which causes WRF to blow up. If NCEP eventually fixes this problem we may need to revisit this processing. * GEFS_Sep2020_landmask_fix: Changes to rrpr.F for the September 2020 update to GEFS.
Only three of the WPS components -- geogrid, metgrid, and int2nc -- require the WRF I/O libraries. Even if none of these components was needed, it was previously still necessary to either compile WRF or to make manual changes to the configure script. This commit introduces logic in the configure script to check for a command- line argument, --nowrf, that, if present, disables checks in the configure script for a compiled WRF directory. This enables, for example, the compilation of the ungrib program without needing to compile the WRF model.
This merge adds a new option, --nowrf, to the configure script so that the WPS can be configured without a compiled WRF model. Only three of the WPS components -- geogrid, metgrid, and int2nc -- require the WRF I/O libraries. Even if none of these components was needed, it was previously still necessary to either compile WRF or to make manual changes to the configure script. This merge introduces logic in the configure script to check for a command- line argument, --nowrf, that, if present, disables checks in the configure script for a compiled WRF directory. This enables, for example, the compilation of the ungrib program without needing to compile the WRF model. * configure_no_wrf: Add --nowrf option to configure script, for configuring without WRF
This merge corrects the default resolution for the OL3SS field in the GEOGRID.TBL.ARW file. The previous default resolution for the OL3SS field was 2.5 minutes, which doesn't agree with the default resolution for related fields. The correct default resolution for this field should 10 minutes. * fix-gwd-tbl: correct default resolution data for OL3SS
This merge adds the 20 new GWD fields needed by gwd_opt=3 to the NoahMP, Chem, and Fire GEOGRID.TBL files. * fix-tables: add new GWD fields to NoahMP, Chem and Fire tables
The version number is set in the top-level README, the compile script, and the geogrid and metgrid global attributes.
- Set interval_seconds to 10800 - Removed io_form_geogrid and io_form_metgrid variables, as currently we only recommend setting these to 2 (default) - Removed comment regarding using V3.9 settings for geog_data_res (outdated)
…rf-model#178) This merge updates the namelist.wps file for consistency with updates to WRF's namelist.input (see WRF #1513), and it also makes minor improvements to decrease user confusion. - Set interval_seconds to 10800 - namelists are set up specifically for GFS data, which is usually available every three hours. - Remove io_form_geogrid and io_form_metgrid variables, as currently we recommend only setting these to 2, which is the default value. - Removed old comment regarding using V3.9 settings for geog_data_res. * update_namelist_wrf_consistency: Updated namelist.wps for consistency with updates to namelist.input
This merge finalizes the v4.3 release by adding changes from the 'release-v4.3' branch onto the 'master' branch. * release-v4.3: Updated namelist.wps for consistency with updates to namelist.input Update version number to 4.3 add new GWD fields to NoahMP, Chem and Fire tables correct default resolution data for OL3SS Add --nowrf option to configure script, for configuring without WRF Changes to rrpr.F for the September 2020 update to GEFS. updated namelist values to match case updates for default namelist.input Add 20 new GWD fields for WRF gwd_opt = 3 update GEOGRID tables for NoahMP, fire and chem remove tile drainage dynamic irrigation added GEOGRID.TBL.ARW.noahmp Fix URL for NARR static data grib1 data Update geth_newdate.F Update build_hdate.F Fix plotfmt.ncl for use with Lambert Conformal projections
The version number is set in the top-level README, the compile script, and the geogrid and metgrid global attributes.
…module.F In calls to ext_{int,ncd,gr1}_put_dom_ti_{integer,real} in output_module.F, the 'Data' dummy argument is an array, but a scalar actual argument was provided. This error was picked up by the GNU Fortran 11.1.0 compiler: output_module.f90:1733:41: 1733 | var_value, & | 1 ...... 1761 | var_value, & | 2 Error: Rank mismatch between actual argument at (1) and actual argument at (2) (rank-1 and scalar) output_module.f90:1678:41: 1678 | var_value, & | 1 ...... 1706 | var_value, & | 2 Error: Rank mismatch between actual argument at (1) and actual argument at (2) (rank-1 and scalar) The fix adopted by this commit is to simply make the scalar var_value into a temporary size-1 array with (/var_value/).
…odule.F In calls to ext_{int,ncd,gr1}_get_dom_ti_{integer,real} in input_module.F, the 'Data' dummy argument is an array, but a scalar actual argument was provided. This error was picked up by the GNU Fortran 11.1.0 compiler: input_module.f90:881:41: 881 | var_value, & | 1 ...... 909 | var_value, & | 2 Error: Rank mismatch between actual argument at (1) and actual argument at (2) (rank-1 and scalar) input_module.f90:822:41: 822 | var_value, & | 1 ...... 854 | var_value, & | 2 Error: Rank mismatch between actual argument at (1) and actual argument at (2) (rank-1 and scalar) The fix adopted by this commit is to declare a local array for use as the actual argument, and to copy the first element of this array to var_value after a successful call to ext_{int,ncd,gr1}_get_dom_ti_{integer,real}.
…el#184) This merge corrects the actual argument rank in several calls to WRF I/O API routines for reading and writing domain time-independent attributes. For more details, see the commit messages of the two commits in this merge. * fix_ioapi_put_get_args: Fix incorrect argument rank in calls to ext_*_get_dom_ti_* in input_module.F Fix incorrect argument rank in calls to ext_*_put_dom_ti_* in output_module.F
…pilers Newer GNU compilers (in particular, major versions later than 9) appear to require the -fallow-argument-mismatch option in order to successfully compile certain modules that make calls to Fortran 77 routines that operate on various datatypes: for example, the MPI_Bcast call can broadcast various data types, and without the Fortran 90+ module interface, there are no overloaded explicit interfaces for supported argument types, leading newer GNU Fortran compiler releases to generate errors about inconsistent/mismatched argument types. The configure script now builds a test program that determines whether the Fortran compiler being used is GNU Fortran with a major version later than 9, and sets the FCCOMPAT variable to -fallow-argument-mismatch in the configure.wps file if so (and sets FCCOMPAT to an empty string otherwise). Since Make treats undefined variables as empty strings, the FCCOMPAT variable only needs to be defined for configuration options where it will be needed, i.e., configuration options that use the GNU Fortran compiler. Other compiler could follow what has been done in this commit to define FCCOMPAT as needed through the use of additional test programs (and through the addition of FCCOMPAT to other configuration stanzas).
This merge adds new variables to the HRRR variable list in the params.f file (found in ungrib/src/ngl/g2). * add-vars: Add newer variables to HRRR var list
…ather than list-directed output
This merge changes several print statements in g2print.F to use an explicit format statement rather than list-directed output. * print1: Fix print format in g2print.F by using an explicit format statement rather than list-directed output
…l#187) This merge addresses build failures when newer GNU compilers are used. Newer GNU compilers (in particular, major versions later than 9) appear to require the -fallow-argument-mismatch option in order to successfully compile certain modules that make calls to Fortran 77 routines that operate on various datatypes: for example, the MPI_Bcast call can broadcast various data types, and without the Fortran 90+ module interface, there are no overloaded explicit interfaces for supported argument types, leading newer GNU Fortran compiler releases to generate errors about inconsistent/mismatched argument types. The configure script now builds a test program that determines whether the Fortran compiler being used is GNU Fortran with a major version later than 9, and sets the FCCOMPAT variable to -fallow-argument-mismatch in the configure.wps file if so (and sets FCCOMPAT to an empty string otherwise). Since Make treats undefined variables as empty strings, the FCCOMPAT variable only needs to be defined for configuration options where it will be needed, i.e., configuration options that use the GNU Fortran compiler. Other compiler could follow what has been done in this commit to define FCCOMPAT as needed through the use of additional test programs (and through the addition of FCCOMPAT to other configuration stanzas). * gnu_argument_mismatch: Add FCCOMPAT flags to postamble and throughout Makefiles when compiling Fortran Allow configure script to define new FCCOMPAT flags for newer GNU compilers
This merge finalizes the v4.3.1 release by adding changes from the 'release-v4.3.1' branch onto the 'master' branch. * release-v4.3.1: Fix print format in g2print.F by using an explicit format statement rather than list-directed output Add FCCOMPAT flags to postamble and throughout Makefiles when compiling Fortran Allow configure script to define new FCCOMPAT flags for newer GNU compilers Add newer variables to HRRR var list Fix incorrect argument rank in calls to ext_*_get_dom_ti_* in input_module.F Fix incorrect argument rank in calls to ext_*_put_dom_ti_* in output_module.F Update version number to 4.3.1
WPS Version 4.3.1 This minor release of the WPS fixes several small issues in the WPS code and should have no impact on the WPS output. * Modify several print statements in the g2print utility * Add new HRRR variables to variable tables in the g2 library * Correct compilation issues with newer GNU Fortran compiler versions (10.1.0 and later)
letmaik
force-pushed
the
letmaik/4.3.1
branch
3 times, most recently
from
March 1, 2022 21:26
bac970b
to
2521970
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.