From 08d35368ad9277dde1f567c262abdb43ad2be667 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 8 Feb 2024 09:33:42 -0700 Subject: [PATCH] Update develop-ref after #2803, #2806, #2810, #2811, and #2812 (#2817) * Store change of sonar.login to sonar.token. * Hotfix to develop, updating aclocal.m4 and config.h.in to what is created when running bootstrap inside the dtcenter/met-base:v3.1 Docker image. Updates autoconf 2.69 output to 2.71. * Adding -lnetcdf to configure_lib_args for NetCDF-CXX compilation * Added eckit and atlas loads and paths * Added atlas and eckit loads and paths * Changing -j to "-j 5" as the recommended value * Update ensemble-stat.rst Fixed incorrect path to obs error table * Updated values for GRIB2CLIB_NAME and BUFRLIB_NAME * Updated for proj, eckit, and atlas * Feature #2761 develop seneca (#2762) * Per #2761, define runtime python version for testing rather than using the default version which no longer exists in /usr/local * Per #2761, fix setting ci-skip-all * Per #2761, patching test_util.R to use the -C command line option for ncdiff. I did test running comp_dir.sh with this change and confirmed that it now runs to completion. * #2652 Added find_var_by_standard_name and separated common codes to find_xy_vars * #2757 Get the email list from the environment variable MET_CRON_EMAIL_LIST__MET (or MET_CRON_EMAIL_LIST_) * #2757 THe SonarQube token and URL are replaced by ujsing the environment variable SONAR_TOKEN_VALUE and SONAR_SERVER_URL * #2757 The SonarQube token and URL are replaced with the pre-defined strings, SONAR_TOKEN_VALUE and SONAR_SERVER_URL * Bugfix #2670 develop --enable-python (#2768) * #2755 Added a header count and checking header count instead of using header id (hid) * Update install_met_env.acorn_py3.10 * Update install_met_env.wcoss2_py3.10 * Feature #2776 cleanup (#2777) * Per #2776, delete stale prob_pair_info.h/.cc, wwmca_utils.h/.cc, and rmw_analysis_utils.h/.cc files that were not being compiled by their Makefiles. * Per #2776, update Makefile to compile the test_read_rmw utility. * Per #2776, add Makefile for the vx_python3_utils test utility directory. * add rpath for atlas and eckit lib dirs so dynamic libraries can be found when running on seneca * only set -L and -I arguments for atlas and eckit if the appropriate environment variable is set -- this matches how it is handled for other external library dependencies * Per #2776, just whitespace and capitalization --------- Co-authored-by: George McCabe <23407799+georgemccabe@users.noreply.github.com> * Bugfix #2782 develop MASSDEN (#2783) * Per #2782, port over fixes from the bugfix_2782_main_v11.1_MASSDEN branch over to the bugfix branch for develop. Will also add new GRIB2 filtering options in this branch. * Per #2782, add support for 4 new GRIB2 filtering options for GRIB2_aerosol_type, GRIB2_aerosol_interval_type, GRIB2_aerosol_size_lower, and GRIB2_aerosol_size_upper. These are useful in filtering the MASSDEN records in the RRFS smoke output files. * Per #2782, fix aerosol_size_lower() and aersol_size_upper() inline definitions. * Per #2782, add a unit test for GRIB2 table 4.48. * Per #2782, switch from strict equality to using the is_eq() function when checking the GRIB2_aerosol_size_lower and upper values since they're doubles and not ints. * Feature #2701 ismn (#2758) * Add support for ISMN soil moisture data * Per #2701, update ascii2nc.cc with the ismn file option. * Per #2701, update ascii2nc docs * Per #2701, store the depth for precip as 0. * Per #2701, parse the ISMN observation value from the correct column. * Per #2701, every time I run ascii2nc to I see a log message for 'DEBUG 1: Number of NDBC skipped files due to no lookup 0'. This is printed by the NdbcHandler destructor. Update the logic to only print a debug level 3 log message when the number of missing locations is greater than 0, 'DEBUG 3: Skipped 5 NDBC files whose locations are not defined in 'MET_BASE/table_files/ndbc_stations.xml'. Set the MET_NDBC_STATIONS environment variable to override this file.' * Per #2701, as instructed by @anewman89, store the average of the depth values rather than the maximum value. * Per #2701, add a test of processing the ISMN data through ascii2nc. * Per #2701, fix parsing of year and month to subtract 1900 and 1, respectively. * Per #2701, set use_var_id to true for ISMN inputs * Per #2701, even though we're mapping obs data to GRIB code names and units, we want to encode them with use_var_id = true and so we need to keep track of those var_id values. * Per #2701, fix typo in the name of the ascii2nc netcdf output file. --------- Co-authored-by: MET Tools Test Account * Feature 2753 comp script config (#2771) * set dynamic library file extension to .dylib if running on MacOS and .so otherwise * Added disabling of jasper documentation for compiliation on Hera * Updated * remove extra export of compiler env vars * include full path to log file so it is easier to file the log file to examine when a command fails * send cmake output to a log file * remove redundant semi-colon * use full path to log file so it is easier to examine on failure * use run_cmd to catch if rm command fails * Modifications for compilation on hera, gaea, and orion * Updating * fixed variable name * clean up if/else statements * set TIFF_LIBRARY_RELEASE argument to use full path to dynamic library file to prevent failure installing proj library * set LDFLAGS so that LDFLAGS value set in the user's environment will also be used * Updated based on gaea, orion, and hera installs * Updated * change extension of dynamic library files only if architecture is arm64 because older Macs still use .so * added netcdf library to args to prevent error installing NetCDF-CXX when PROJ has been installed in the same run of the script -- PATH is set in the COMPILE_PROJ if block that causes this flag from being added automatically * clean up how rpath and -L are added to LDFLAGS so that each entry is separate -- prevents errors installing on Mac arm64 because multiple rpath values aren't read using :. Also use MET_PROJLIB * Updated * removed -ltiff from MET libs * only add path to rpath and -L arguments if they are not already included in LDFLAGS * changed from using LIB_TIFF (full path to tiff lib file) to use TIFF_LIB_DIR (dir containing tiff lib file). Added TIFF_INCLUDE_DIR to proj compilation and -DJAS_ENABLE_DOC to jasper compliation taken from @jprestop branch * update comments * ensure all MET_* and MET_*LIB variables are added to the rpath for consistency * remove unnecessary if block and only export LDFLAGS at the end of setting locally * Updated * Added section for adding /lib64 and rearranged placement of ADDTL_DIR * Commenting out the running of the Jasper lib tests * Updating and/or removing files * Updating and/or removing files * Latest udpates which include the addition of the tiff library for proj * Remove commented out line. Co-authored-by: John Halley Gotway * Make indentation consistent. Co-authored-by: John Halley Gotway * Make indentation consistent. Co-authored-by: John Halley Gotway * Make indentation consistent. Co-authored-by: John Halley Gotway --------- Co-authored-by: George McCabe <23407799+georgemccabe@users.noreply.github.com> Co-authored-by: John Halley Gotway * #2697 Share the temporary file for blocking * #2697 Reduced the temporary files for pb2nc * Moved typedef unixtime from vx_cal.h to time_array.h * #2697 Changed static const to constexpr for SonarQube (code smell) * Removing ${MAKE_ARGS} in some locations Removing ${MAKE_ARGS} from "make install" and "make test" for MET. Removing "met" prefix from met.configure.log because we really need config.log for any detail. It is confusing to have met.configure.log when that does not contain useful information. * #2673 Removed unused variable grid_x and grid_y * #2673 Renamed the shadowed variable n to nd * #2673 Use nullptr instead of literal 0 * #2673 Moved down namespace declarations. Removed unused variables * #2673 Reduced the scope of variables * #2673 Use nullptr instead of literal 0 * #2673 Removed unused variables * #2673 Renamed ex to ex2 which becomes shadowed variable * #2673 Removed always true condition * #2673 Moved down namespace declarations. Use nullptr instead of literal 0 * #2673 Use nullptr instead of literal 0. Removed unused variables * #2673 Moved down namespace declarations. * #2673 Added namespace std to string * #2673 Removed unsued variables. Check nullptr of gt * #2673 Moved down namespace declarations. * #2673 Added namespace std to string * #2772 Added quit_msg * Feature #2547 Read WRF output files natively (#2790) * Per #2547, add the file_type = NETCDF_WRF configuration option. * Per #2547, rename vx_data2d_nc_interp as vx_data2d_nc_wrf and vx_data2d_nccf as vx_data2d_nc_cf. * Per #2547, rename nccf files as nc_cf for consistency throughout * Per #2547, rename Pinterp classes as Wrf * only set -L and -I arguments for atlas and eckit if the appropriate environment variable is set -- this matches how it is handled for other external library dependencies * add rpath for atlas and eckit lib dirs so dynamic libraries can be found when running on seneca * ignore directory automatically created by CLion * rename pinterp variables and classes to Wrf * more rename and fix typos * per #2547, add support for reading WRF files by adding support for different X/Y/Z dimensions, read X/Y/Z dimension names when reading a field instead of storing them per file, track if data is staggered in X/Y/Z dimension (still need to add DataPlane function to destagger data), handle pressure field that also includes time dimension * per #2547, add DataPlane function to handle staggering of grid * per #2547, change file type returned from pinterp to wrf * per #2547, call function to stagger DataPlane if necessary * per #2547, keep store if variable is on pressure levels and only read pressure field if it is * ignore cmake directory * per #2547, support U_PL, U_ZL, U, and U where is an integer in is_u_wind and the same for is_v_wind * change regex to match zero or more instances of a number after U or V instead of 1 or more to include the fields named U and V * error and exit if var with unsupported subgrid dimension is processed * clean up logging * only destagger Z dimension for bottom_top_stag because other _stag Z dimensions don't need to be destaggered, clean up logic to read X/Y/Z dimension info * Per #2547, instead of checking dimensions of all vars in file, check dimensions for the var that is being read. Only read pressure var if the z dimension matches the var to read. Set class variable DimNames instead of local gDimNames so dump function will work as expected * per #2547, support reading variable that corresponds to dimension with different name as dimension and includes a time dimension, e.g. P_PL(Time, num_press_levels_stag) * per #2547, added unit tests to process WRF out data with plot_data_plane and grid_stat * merged develop and resolved conflicts * rename lib from pinterp to wrf * rename lib * fixed incorrect merge changes * fixed broken unit test format * Per #2547, restore the mention of NAK.poly to Appendix B. * Change model to WRF Co-authored-by: John Halley Gotway * change obtype to WRF Co-authored-by: John Halley Gotway * plot higher vertical level to get non-zero output Co-authored-by: John Halley Gotway * indentation Co-authored-by: John Halley Gotway --------- Co-authored-by: John Halley Gotway * #2772 Use JSON for attrubutes and numpy serialization dor 2D data instead of NetCDF * Hotfix to the develop branch after PR #2790 merged the feature_2547_wrf branch into develop. Rerunning bootstrap on the project machine seneca produces 2 small differences that should also be incorporated into develop. * Feature 2588 install rewrite (#2791) * updated first 3 sections * updated spacing * adding the Environment Variables to Run Script section * adding in the remainder of the google doc changes * trying to fix duplicate explicit target name issue * fixing required_external_libraries_to_build_met links * HDF4 testing double underscore * adding double underscores for HDF5 and HDF-EOS2 and changing library back * fixing HDF5 web link name * Added formatting, made minor edits, removed manual build instructions sections * Removed reference to sample-test-case which no longer exists * Resolving errors * Minor formatting change * Updated apptainer instructions, new version references * Formatting updates and removal of first person language * fixed code blocks * Resolving error * Removed first person references * Removed reference to met_directory_structure * updated bolding, removed end section * Changing X.Y.X references to X.Y.Z * updating thru Using the compile_MET_all.sh Script * fixing spacing for ATLAS web address * Fixed broken internal reference to installation due to typo * adding version numbers * fixing Recommended-Components MET * 3.4.2 section updates * fixing spacing * adding a period and more dropdown menus * fixing spacing * loose ends * removing space * removing bold * External Library handling in compile_MET_all.sh section updates * installation directory view * installation directory after * attempting to add figures via the web updating Executing the compile_MET_all.sh script section * fixing bolds, italics etc. * updating last half of doc * loose ends * loose ends * adding more dropdown menus * fixing dropdown menu and testing automatic version * testing automatic version * confirmed automatic version cannot be added to italics or code blocks * another round of updates * fixing indents * creating a table * fixing table * fixing table 2 * more loose end changes * more changes * hopefully final updates * trying a fancy new csv table * troubleshooting csv table * correcting table name * adding a grid table * fixing grid table * removing csv table * Per #2588, update to the environment variables table. * Delete docs/Users_Guide/environment_variables_table.csv * Per #2785, add new example installation files * updating small changes in the first half of the documentation * new dropdown menu and fixing some links * trying to fix line spacing in dropdown * take 2 fixing spacing * take 3 fix spacing * env var order * removing "s" * small changes * un capitalizing S * A few minor changes --------- Co-authored-by: j-opatz Co-authored-by: Julie Prestopnik Co-authored-by: j-opatz <59586397+j-opatz@users.noreply.github.com> Co-authored-by: John Halley Gotway * Minor hotfix to develop to fix a typo in the comments of the PB2NC config files. * Feature #2796 develop gha node20 (#2797) * Per #2796, update actions/checkout@v3 to actions/checkout@v4. * Per #2796, update to actions/upload-artifact@v4 and actions/setup-python@v5. * Per #2796, update to download-artifact@v4 and actions/github-script@v7 * Feature #2796 develop gha_node20, fix artifact names (#2799) * Per #2796, update actions/checkout@v3 to actions/checkout@v4. * Per #2796, update to actions/upload-artifact@v4 and actions/setup-python@v5. * Per #2796, update to download-artifact@v4 and actions/github-script@v7 * Per #2796, update testing workflow for update-artifact v4 version which requires unique artifact names. ci-run-unit * Per #2796, merge the logs into a single artifact. ci-run-unit * Per #2796, renaming rc_leads and rc as 1c and 2c, respectively for consistency purposes. Note that this commit should result in just a logs_compile artifact being created... and not doing the log merging step. * Per #2796, update the compilation workflow to make the log artifact names unique. * #2772 Change nan and inf to -9999 on reading ASCII input if failed to parse * Feature #2801 warnings (#2802) * Per #2801, add new time_offset_warning config option. * Per #2810, update MetConfig class to parse and check the time_offset_warning config option. * Per #2801, update Grid-Stat, MODE, PCP-Combine, Series-Analysis, Wavelet-Stat, and the WWMCA tool to call MetConfig::time_offset_warning() to decide whether to print a Warning or Debug(3) log message about initialization or valid time differences. * Per #2801, no change to content. Just removing unneeded whitespace. * Per #2801, remove extra empty line foromw m warning message. * Per #2801, remove extra empty line from MODE warning messages. --------- Co-authored-by: MET Tools Test Account * #2772 Initial release, Separated from point.py * #2772 Added point_nc.py * #2772 Changed write_tmp_nc and read_tmp_nc to write_tmp_py and read_tmp_py * #2772 Removed python_key_point_data & python_key_point_data_list and replaced them to tmp_point_var_name and tmp_point_data * #2772 Renamed tmp_nc_base_name, tmp_nc_file_var_name & tmp_nc_point_var_name to tmp_py_base_name, tmp_file_var_name, & tmp_point_var_name * #2772 More log messages for error * #2772 Changed API (log_msg to log_message) * #2772 Use met_point_nc_tools instead of met_point_tools * #2772 Changed APIs * #2772 Changed API * #2772 Changed default temp output format to JSON ande numpoy serialization * #2772 Allow to keep the temporary files by using the environment variable * Added log message if the temprary fiule was not deleted * Feature #2745 mvmode enhancements (#2779) * Working mvmode with percentile thresholds and grid_type fixes, plus more unit tests * separated multivar and traditional mode frontend classes to simplify the mode executive class design * documentation changes to go with changes to percentiles and data_type * Cleanup and bugfix to doc * Bug fix to doc * Another bugfix attempt * synching up development.seneca with what is in the develop branch * added clone() method to all the vx_data2d var_info classes * Fix multivar_name/level definitions in UG * bug fix regarding accessing the config to create a verification grid * Update docs/Users_Guide/mode.rst * Update docs/Users_Guide/mode.rst * Per #2745, commit changes to Makefile.am/.in files after running bootstrap on this feature branch on seneca. * Per #2745, no real code changes. Just whitespace. --------- Co-authored-by: MET Tools Test Account Co-authored-by: Tracy Hertneky Co-authored-by: John Halley Gotway * Per #2772, added MET_PYTHON_EXE to various test cases and removed what would have been a duplicate after adding MET_PYTHON_EXE * Per #2772, add documentation about 3 new environment variables. * Per #2772, tweak the wording. * Fixing typo * Feature #2772 python_embedding_tmp_file (#2807) Co-authored-by: Howard Soh * Feature #2805 filter_set_hdr (#2806) * Per #2805, update STATAnalysisJob::dump_stat_line() to take an optional argument to indicate whether the set_hdr options should be applied. Update Stat-Analysis to only call dump_stat_line() with set_hdr for filter jobs. * Per #2805, update User's Guide with -set_hdr info. * Per #2805, the -set_hdr option doesn't apply to tc_stat * Per #2805, modify one Stat-Analysis filter job to demonstrate that the -set_hdr job command option is now applied to the -dump_row output. * Per #2805, enhance the R differencing logic to handle NA strings in the header columns. Previously, differences that include the NA string were ignored. This enhances the compareStatLty() function to handle NA strings properly. * Per #2805, no real code change. Just whitespace. --------- Co-authored-by: MET Tools Test Account * Feature 2772 python embedding fill value (#2810) * #2772 Update masked value to -9999. Renamed error_messageg to error_message * #2772 Renamed error_messageg to error_message * #2772 Accept 4th argument as user defined fill value. * #2772 Added python_numpy_plot_data_plane_missing which processes user defined fill value --------- Co-authored-by: Howard Soh * Feature #2809 nc_laea (#2811) * Per #2809 work in progress parsing LAEA grids from MET NetCDF files. * Per #2809, update the LaeaData struct to store the spheroid_name as a character array. I tried very hard to store this as a string instead but ran into lots of problems with segfaults when deleting the allocated structs. Using a fixed length character array while making calls to the m_strncpy() and m_strlen() utility functions enables the code to work properly while hopefully minimizing SonarQube findings. * Per #2809, call m_strncpy() to set LaeaData::spheroid_name * Per #2809, add tests to pcp_combine and plot_data_plane to demonstrate the reading the LAEA data from MET NetCDF files. * Per #2809, correct the expected PostScript file output name in unit_plot_data_plane.xml * Feature #2809 v12.0.0_beta3 (#2814) * Per #2809, update copyright to 2024 * Per #2809, add release v12.0.0-beta3 release notes. * Feature #2769 tc_diag_driver_v0.11.0 (#2812) * Per #2769, update to tc_diag_driver version 0.11.0. * Per #2769, add tmp_nc_diag_flag config option to retain temporary files. * Per #2769, change default regrdding method from NEAREST to BILIN. * Per #2769, add checks to make sure input files exist. * Fix the handling of diagnostic name and units strings. Both are limited to 7 characters but the units are enclosed in parantheses, increasing the field width to 9. If the strings are too long, truncate them and print warnings like this: WARNING: OutFileInfo::write_cira_diag_vals() -> long diagnostic name "850TANGXXX" truncated to "850TANG"! WARNING: OutFileInfo::write_cira_diag_vals() -> long diagnostic units string "(10^7C/MXXX)" truncated to "(10^7C/M)"! Pad the first 2 columns out to widths of 7 and 9 and set the inter-column spacing between columns 2 and 3 to 0. This could technically introduce parsing problems when the units are 7 characters long and the values have 5 digits, but this is the logic needed to exactly replicate the existing output. * Just whitespace * Per #2769, remove the tmp_nc_diag_flag TC-Diag config file option in favor of the MET_KEEP_TEMP_FILE environment variable option that Howard is adding on his feature_2772_python_embedding_json branch. I did add documentation about that option here even though the functionality is coming from Howard's branch. * Per #2769, remove tmp_nc_diag_flag that has been removed. * Per #2769, remove mention of tmp_nc_diag_flag option that has been removed. * Per #2769, upgrade to METbaseimage version 3.2 to provide SciPy in the Python environment which is needed by TC-Diag. * Per #2769, add SciPy to the list of required Python packages. * Per #2769, tweak AppendixF details. * Per #2769, update release date for MET-12.0.0-beta3 to be 20240207 since we didn't get it out on the 6th. --------- Co-authored-by: MET Tools Test Account Co-authored-by: root Co-authored-by: Julie Prestopnik Co-authored-by: Christina Kalb Co-authored-by: John Halley Gotway Co-authored-by: Howard Soh Co-authored-by: Howard Soh Co-authored-by: George McCabe <23407799+georgemccabe@users.noreply.github.com> Co-authored-by: metplus-bot <97135045+metplus-bot@users.noreply.github.com> Co-authored-by: lisagoodrich <33230218+lisagoodrich@users.noreply.github.com> Co-authored-by: j-opatz Co-authored-by: j-opatz <59586397+j-opatz@users.noreply.github.com> Co-authored-by: davidalbo Co-authored-by: Tracy Hertneky --- .github/jobs/set_job_controls.sh | 2 +- .../build_docker_and_trigger_metplus.yml | 2 +- data/config/TCDiagConfig_default | 4 +- data/copyright_notice.txt | 2 +- docs/Users_Guide/appendixF.rst | 14 +- docs/Users_Guide/release-notes.rst | 30 + docs/Users_Guide/tc-diag.rst | 8 +- docs/conf.py | 6 +- docs/version | 1 - internal/scripts/docker/Dockerfile | 2 +- internal/scripts/docker/Dockerfile.copy | 2 +- internal/test_unit/config/TCDiagConfig_ian | 4 +- internal/test_unit/xml/unit_pcp_combine.xml | 12 + .../test_unit/xml/unit_plot_data_plane.xml | 15 + internal/test_unit/xml/unit_python.xml | 19 + .../test_util/basic/vx_config/test_config.cc | 2 +- .../test_util/basic/vx_config/test_lookup.cc | 2 +- .../test_util/basic/vx_config/test_lookup2.cc | 2 +- .../test_util/basic/vx_config/test_lookup3.cc | 2 +- .../test_util/basic/vx_config/test_met_478.cc | 2 +- .../test_util/basic/vx_config/test_string.cc | 2 +- .../vx_config/test_string_then_config.cc | 2 +- .../test_util/basic/vx_config/test_thresh.cc | 2 +- .../basic/vx_config/test_user_func.cc | 2 +- .../test_util/basic/vx_log/test_logger.cc | 2 +- .../test_util/basic/vx_log/test_reg_exp.cc | 2 +- .../test_util/basic/vx_util/test_add_rows.cc | 2 +- .../basic/vx_util/test_ascii_header.cc | 2 +- .../basic/vx_util/test_command_line.cc | 2 +- .../basic/vx_util/test_data_plane.cc | 2 +- .../basic/vx_util/test_table_float.cc | 2 +- .../libcode/vx_data2d/dump_default_table.cc | 2 +- .../libcode/vx_data2d/test_table_read.cc | 2 +- .../libcode/vx_data2d_factory/test_factory.cc | 2 +- .../libcode/vx_data2d_factory/test_is_grib.cc | 2 +- .../libcode/vx_data2d_grib/test_read_grib1.cc | 2 +- .../libcode/vx_data2d_nc_cf/test_read_nccf.cc | 2 +- .../vx_data2d_nc_met/test_read_nc_met.cc | 2 +- .../libcode/vx_geodesy/test_spheroid.cc | 2 +- .../libcode/vx_grid/test_grid_area.cc | 2 +- .../vx_nc_util/test_pressure_levels.cc | 2 +- .../libcode/vx_physics/test_thermo.cc | 2 +- .../libcode/vx_plot_util/test_map_region.cc | 2 +- internal/test_util/libcode/vx_ps/test_ps.cc | 2 +- .../vx_series_data/test_series_data.cc | 2 +- .../test_util/libcode/vx_solar/test_ra_dec.cc | 2 +- .../test_util/libcode/vx_tc_util/test_read.cc | 2 +- .../libcode/vx_tc_util/test_read_prob.cc | 2 +- .../libcode/vx_tc_util/test_read_rmw.cc | 2 +- .../other/mode_time_domain/test_velocity.cc | 2 +- scripts/python/examples/read_ascii_numpy.py | 35 +- scripts/python/met/logger.py | 8 +- scripts/python/met/point.py | 2 +- scripts/python/tc_diag/compute_tc_diag.py | 13 + .../python/tc_diag/config/post_resample.yml | 8 +- .../tc_diag/config/post_resample_nest.yml | 8 +- .../python/tc_diag/tc_diag_driver/__init__.py | 2 +- .../tc_diag_driver/computation_engine.py | 15 + .../tc_diag/tc_diag_driver/diag_vars.py | 418 ++++++---- .../tc_diag/tc_diag_driver/met_diag_vars.py | 167 ++-- .../tc_diag_driver/met_post_process.py | 4 + .../tc_diag_driver/post_resample_driver.py | 8 +- .../python/tc_diag/tc_diag_driver/results.py | 124 ++- src/basic/enum_to_string/code.cc | 2 +- src/basic/enum_to_string/code.h | 2 +- src/basic/enum_to_string/enum.tab.h | 2 +- src/basic/enum_to_string/enum_to_string.cc | 2 +- src/basic/enum_to_string/enum_to_string.h | 2 +- src/basic/enum_to_string/info.cc | 2 +- src/basic/enum_to_string/info.h | 2 +- src/basic/enum_to_string/scope.cc | 2 +- src/basic/enum_to_string/scope.h | 2 +- src/basic/vx_cal/date_to_mjd.cc | 2 +- src/basic/vx_cal/day_dif.cc | 2 +- src/basic/vx_cal/day_of_week.cc | 2 +- src/basic/vx_cal/doyhms_to_unix.cc | 2 +- src/basic/vx_cal/is_dst.cc | 2 +- src/basic/vx_cal/is_leap_year.cc | 2 +- src/basic/vx_cal/mdyhms_to_unix.cc | 2 +- src/basic/vx_cal/mjd_to_date.cc | 2 +- src/basic/vx_cal/time_array.cc | 2 +- src/basic/vx_cal/time_array.h | 2 +- src/basic/vx_cal/time_strings.cc | 2 +- src/basic/vx_cal/unix_string.cc | 2 +- src/basic/vx_cal/unix_to_mdyhms.cc | 2 +- src/basic/vx_cal/vx_cal.h | 2 +- src/basic/vx_config/builtin.cc | 2 +- src/basic/vx_config/builtin.h | 2 +- src/basic/vx_config/calculator.cc | 2 +- src/basic/vx_config/calculator.h | 2 +- src/basic/vx_config/celltype_to_string.cc | 2 +- src/basic/vx_config/celltype_to_string.h | 2 +- src/basic/vx_config/config_constants.h | 2 +- src/basic/vx_config/config_file.cc | 2 +- src/basic/vx_config/config_file.h | 2 +- src/basic/vx_config/config_funcs.cc | 2 +- src/basic/vx_config/config_funcs.h | 2 +- src/basic/vx_config/config_gaussian.h | 2 +- src/basic/vx_config/config_util.cc | 2 +- src/basic/vx_config/config_util.h | 2 +- .../vx_config/configobjecttype_to_string.cc | 2 +- .../vx_config/configobjecttype_to_string.h | 2 +- src/basic/vx_config/data_file_type.h | 2 +- src/basic/vx_config/dictionary.cc | 2 +- src/basic/vx_config/dictionary.h | 2 +- src/basic/vx_config/grdfiletype_to_string.cc | 2 +- src/basic/vx_config/grdfiletype_to_string.h | 2 +- src/basic/vx_config/icode.cc | 2 +- src/basic/vx_config/icode.h | 2 +- src/basic/vx_config/idstack.cc | 2 +- src/basic/vx_config/idstack.h | 2 +- src/basic/vx_config/number_stack.cc | 2 +- src/basic/vx_config/number_stack.h | 2 +- src/basic/vx_config/object_types.h | 2 +- src/basic/vx_config/scanner_stuff.h | 2 +- src/basic/vx_config/temp_file.cc | 2 +- src/basic/vx_config/temp_file.h | 2 +- src/basic/vx_config/threshold.cc | 2 +- src/basic/vx_config/threshold.h | 2 +- src/basic/vx_config/vx_config.h | 2 +- src/basic/vx_log/concat_string.cc | 2 +- src/basic/vx_log/concat_string.h | 2 +- src/basic/vx_log/file_fxns.cc | 2 +- src/basic/vx_log/file_fxns.h | 2 +- src/basic/vx_log/indent.cc | 2 +- src/basic/vx_log/indent.h | 2 +- src/basic/vx_log/logger.cc | 2 +- src/basic/vx_log/logger.h | 2 +- src/basic/vx_log/str_wrappers.cc | 2 +- src/basic/vx_log/str_wrappers.h | 2 +- src/basic/vx_log/string_array.cc | 2 +- src/basic/vx_log/string_array.h | 2 +- src/basic/vx_log/vx_log.h | 2 +- src/basic/vx_math/affine.cc | 2 +- src/basic/vx_math/affine.h | 2 +- src/basic/vx_math/angles.cc | 2 +- src/basic/vx_math/angles.h | 2 +- src/basic/vx_math/hist.cc | 2 +- src/basic/vx_math/hist.h | 2 +- src/basic/vx_math/is_bad_data.h | 2 +- src/basic/vx_math/legendre.cc | 2 +- src/basic/vx_math/legendre.h | 2 +- src/basic/vx_math/math_constants.h | 2 +- src/basic/vx_math/nint.cc | 2 +- src/basic/vx_math/nint.h | 2 +- src/basic/vx_math/nti.cc | 2 +- src/basic/vx_math/nti.h | 2 +- src/basic/vx_math/ptile.cc | 2 +- src/basic/vx_math/ptile.h | 2 +- src/basic/vx_math/pwl.cc | 2 +- src/basic/vx_math/pwl.h | 2 +- src/basic/vx_math/trig.h | 2 +- src/basic/vx_math/viewgravity_to_string.cc | 2 +- src/basic/vx_math/viewgravity_to_string.h | 2 +- src/basic/vx_math/vx_math.h | 2 +- src/basic/vx_math/vx_vector.cc | 2 +- src/basic/vx_math/vx_vector.h | 2 +- src/basic/vx_util/CircularTemplate.cc | 2 +- src/basic/vx_util/CircularTemplate.h | 2 +- src/basic/vx_util/GridOffset.cc | 2 +- src/basic/vx_util/GridOffset.h | 2 +- src/basic/vx_util/GridPoint.cc | 2 +- src/basic/vx_util/GridPoint.h | 2 +- src/basic/vx_util/GridTemplate.cc | 2 +- src/basic/vx_util/GridTemplate.h | 2 +- src/basic/vx_util/RectangularTemplate.cc | 2 +- src/basic/vx_util/RectangularTemplate.h | 2 +- src/basic/vx_util/ascii_header.cc | 2 +- src/basic/vx_util/ascii_header.h | 2 +- src/basic/vx_util/ascii_table.cc | 2 +- src/basic/vx_util/ascii_table.h | 2 +- src/basic/vx_util/asciitablejust_to_string.cc | 2 +- src/basic/vx_util/asciitablejust_to_string.h | 2 +- src/basic/vx_util/bool_array.h | 2 +- src/basic/vx_util/bool_to_string.h | 2 +- src/basic/vx_util/check_endian.cc | 2 +- src/basic/vx_util/check_endian.h | 2 +- src/basic/vx_util/comma_string.cc | 2 +- src/basic/vx_util/comma_string.h | 2 +- src/basic/vx_util/command_line.cc | 2 +- src/basic/vx_util/command_line.h | 2 +- src/basic/vx_util/conversions.cc | 2 +- src/basic/vx_util/conversions.h | 2 +- src/basic/vx_util/crc_array.h | 2 +- src/basic/vx_util/crr_array.h | 2 +- src/basic/vx_util/data_cube.cc | 2 +- src/basic/vx_util/data_cube.h | 2 +- src/basic/vx_util/data_line.cc | 2 +- src/basic/vx_util/data_line.h | 2 +- src/basic/vx_util/data_plane.cc | 2 +- src/basic/vx_util/data_plane.h | 2 +- src/basic/vx_util/data_plane_util.cc | 2 +- src/basic/vx_util/data_plane_util.h | 2 +- src/basic/vx_util/empty_string.h | 2 +- src/basic/vx_util/file_exists.cc | 2 +- src/basic/vx_util/file_exists.h | 2 +- src/basic/vx_util/file_linecount.cc | 2 +- src/basic/vx_util/file_linecount.h | 2 +- src/basic/vx_util/file_size.cc | 2 +- src/basic/vx_util/file_size.h | 2 +- src/basic/vx_util/filename_suffix.cc | 2 +- src/basic/vx_util/filename_suffix.h | 2 +- src/basic/vx_util/fix_float.cc | 2 +- src/basic/vx_util/fix_float.h | 2 +- src/basic/vx_util/get_filenames.cc | 2 +- src/basic/vx_util/get_filenames.h | 2 +- src/basic/vx_util/grib_constants.cc | 2 +- src/basic/vx_util/grib_constants.h | 2 +- src/basic/vx_util/handle_openmp.cc | 2 +- src/basic/vx_util/handle_openmp.h | 2 +- src/basic/vx_util/int_array.h | 2 +- src/basic/vx_util/interp_mthd.cc | 2 +- src/basic/vx_util/interp_mthd.h | 2 +- src/basic/vx_util/interp_util.cc | 2 +- src/basic/vx_util/interp_util.h | 2 +- src/basic/vx_util/is_number.cc | 2 +- src/basic/vx_util/is_number.h | 2 +- src/basic/vx_util/long_array.cc | 2 +- src/basic/vx_util/long_array.h | 2 +- src/basic/vx_util/main.h | 2 +- src/basic/vx_util/make_path.cc | 2 +- src/basic/vx_util/make_path.h | 2 +- src/basic/vx_util/mask_poly.cc | 2 +- src/basic/vx_util/mask_poly.h | 2 +- src/basic/vx_util/memory.cc | 2 +- src/basic/vx_util/memory.h | 2 +- src/basic/vx_util/met_buffer.cc | 2 +- src/basic/vx_util/met_buffer.h | 2 +- src/basic/vx_util/ncrr_array.h | 2 +- src/basic/vx_util/normalize.cc | 2 +- src/basic/vx_util/normalize.h | 2 +- src/basic/vx_util/num_array.cc | 2 +- src/basic/vx_util/num_array.h | 2 +- src/basic/vx_util/observation.cc | 2 +- src/basic/vx_util/observation.h | 2 +- src/basic/vx_util/ordinal.cc | 2 +- src/basic/vx_util/ordinal.h | 2 +- src/basic/vx_util/polyline.cc | 2 +- src/basic/vx_util/polyline.h | 2 +- src/basic/vx_util/python_line.cc | 2 +- src/basic/vx_util/python_line.h | 2 +- src/basic/vx_util/read_fortran_binary.cc | 2 +- src/basic/vx_util/read_fortran_binary.h | 2 +- src/basic/vx_util/roman_numeral.cc | 2 +- src/basic/vx_util/roman_numeral.h | 2 +- src/basic/vx_util/smart_buffer.cc | 2 +- src/basic/vx_util/smart_buffer.h | 2 +- src/basic/vx_util/stat_column_defs.h | 2 +- src/basic/vx_util/string_fxns.cc | 2 +- src/basic/vx_util/string_fxns.h | 2 +- src/basic/vx_util/substring.cc | 2 +- src/basic/vx_util/substring.h | 2 +- src/basic/vx_util/thresh_array.cc | 2 +- src/basic/vx_util/thresh_array.h | 2 +- src/basic/vx_util/two_d_array.h | 2 +- src/basic/vx_util/two_to_one.cc | 2 +- src/basic/vx_util/two_to_one.h | 2 +- src/basic/vx_util/util_constants.h | 2 +- src/basic/vx_util/vx_util.h | 2 +- src/basic/vx_util_math/so3.cc | 2 +- src/basic/vx_util_math/so3.h | 2 +- src/libcode/vx_afm/afm.cc | 2 +- src/libcode/vx_afm/afm.h | 2 +- src/libcode/vx_afm/afm_keywords.cc | 2 +- src/libcode/vx_afm/afm_keywords.h | 2 +- src/libcode/vx_afm/afm_line.cc | 2 +- src/libcode/vx_afm/afm_line.h | 2 +- src/libcode/vx_afm/afm_token.cc | 2 +- src/libcode/vx_afm/afm_token.h | 2 +- src/libcode/vx_afm/afm_token_types.h | 2 +- src/libcode/vx_afm/afmkeyword_to_string.cc | 2 +- src/libcode/vx_afm/afmkeyword_to_string.h | 2 +- src/libcode/vx_afm/afmtokentype_to_string.cc | 2 +- src/libcode/vx_afm/afmtokentype_to_string.h | 2 +- .../vx_analysis_util/analysis_utils.cc | 2 +- src/libcode/vx_analysis_util/analysis_utils.h | 2 +- src/libcode/vx_analysis_util/by_case_info.cc | 2 +- src/libcode/vx_analysis_util/by_case_info.h | 2 +- src/libcode/vx_analysis_util/mode_atts.cc | 2 +- src/libcode/vx_analysis_util/mode_atts.h | 2 +- src/libcode/vx_analysis_util/mode_job.cc | 2 +- src/libcode/vx_analysis_util/mode_job.h | 2 +- src/libcode/vx_analysis_util/mode_line.cc | 2 +- src/libcode/vx_analysis_util/mode_line.h | 2 +- src/libcode/vx_analysis_util/stat_job.cc | 2 +- src/libcode/vx_analysis_util/stat_job.h | 2 +- src/libcode/vx_analysis_util/stat_line.cc | 2 +- src/libcode/vx_analysis_util/stat_line.h | 2 +- src/libcode/vx_analysis_util/time_series.cc | 2 +- src/libcode/vx_analysis_util/time_series.h | 2 +- .../vx_analysis_util/vx_analysis_util.h | 2 +- .../vx_bool_calc/tokentype_to_string.cc | 2 +- .../vx_bool_calc/tokentype_to_string.h | 2 +- src/libcode/vx_color/color.cc | 2 +- src/libcode/vx_color/color.h | 2 +- src/libcode/vx_color/color_list.cc | 2 +- src/libcode/vx_color/color_list.h | 2 +- src/libcode/vx_color/color_parser.h | 2 +- src/libcode/vx_color/color_table.cc | 2 +- src/libcode/vx_color/vx_color.h | 2 +- src/libcode/vx_data2d/data2d_utils.cc | 2 +- src/libcode/vx_data2d/data2d_utils.h | 2 +- src/libcode/vx_data2d/data_class.cc | 2 +- src/libcode/vx_data2d/data_class.h | 2 +- src/libcode/vx_data2d/level_info.cc | 2 +- src/libcode/vx_data2d/level_info.h | 2 +- src/libcode/vx_data2d/leveltype_to_string.cc | 2 +- src/libcode/vx_data2d/leveltype_to_string.h | 2 +- src/libcode/vx_data2d/mask_filters.cc | 2 +- src/libcode/vx_data2d/mask_filters.h | 2 +- src/libcode/vx_data2d/table_lookup.cc | 2 +- src/libcode/vx_data2d/table_lookup.h | 2 +- src/libcode/vx_data2d/var_info.cc | 2 +- src/libcode/vx_data2d/var_info.h | 2 +- src/libcode/vx_data2d/vx_data2d.h | 2 +- .../vx_data2d_factory/data2d_factory.cc | 2 +- .../vx_data2d_factory/data2d_factory.h | 2 +- .../vx_data2d_factory/data2d_factory_utils.cc | 2 +- .../vx_data2d_factory/data2d_factory_utils.h | 2 +- src/libcode/vx_data2d_factory/is_bufr_file.cc | 2 +- src/libcode/vx_data2d_factory/is_bufr_file.h | 2 +- src/libcode/vx_data2d_factory/is_grib_file.cc | 2 +- src/libcode/vx_data2d_factory/is_grib_file.h | 2 +- .../vx_data2d_factory/is_netcdf_file.cc | 2 +- .../vx_data2d_factory/is_netcdf_file.h | 2 +- .../vx_data2d_factory/parse_file_list.cc | 2 +- .../vx_data2d_factory/parse_file_list.h | 2 +- .../vx_data2d_factory/var_info_factory.cc | 2 +- .../vx_data2d_factory/var_info_factory.h | 2 +- .../vx_data2d_factory/vx_data2d_factory.h | 2 +- src/libcode/vx_data2d_grib/data2d_grib.cc | 2 +- src/libcode/vx_data2d_grib/data2d_grib.h | 2 +- .../vx_data2d_grib/data2d_grib_utils.cc | 2 +- .../vx_data2d_grib/data2d_grib_utils.h | 2 +- src/libcode/vx_data2d_grib/grib_classes.cc | 2 +- src/libcode/vx_data2d_grib/grib_classes.h | 2 +- src/libcode/vx_data2d_grib/grib_strings.cc | 2 +- src/libcode/vx_data2d_grib/grib_strings.h | 2 +- src/libcode/vx_data2d_grib/grib_utils.cc | 2 +- src/libcode/vx_data2d_grib/grib_utils.h | 2 +- src/libcode/vx_data2d_grib/var_info_grib.cc | 2 +- src/libcode/vx_data2d_grib/var_info_grib.h | 2 +- src/libcode/vx_data2d_grib/vx_data2d_grib.h | 2 +- src/libcode/vx_data2d_grib/vx_grib_classes.h | 2 +- src/libcode/vx_data2d_grib2/data2d_grib2.cc | 12 +- src/libcode/vx_data2d_grib2/data2d_grib2.h | 2 +- src/libcode/vx_data2d_grib2/var_info_grib2.cc | 2 +- src/libcode/vx_data2d_grib2/var_info_grib2.h | 2 +- src/libcode/vx_data2d_nc_cf/data2d_nc_cf.cc | 2 +- src/libcode/vx_data2d_nc_cf/data2d_nc_cf.h | 2 +- src/libcode/vx_data2d_nc_cf/nc_cf_file.cc | 2 +- src/libcode/vx_data2d_nc_cf/nc_cf_file.h | 2 +- src/libcode/vx_data2d_nc_cf/var_info_nc_cf.cc | 2 +- src/libcode/vx_data2d_nc_cf/var_info_nc_cf.h | 2 +- src/libcode/vx_data2d_nc_cf/vx_data2d_nc_cf.h | 2 +- src/libcode/vx_data2d_nc_met/data2d_nc_met.cc | 2 +- src/libcode/vx_data2d_nc_met/data2d_nc_met.h | 2 +- src/libcode/vx_data2d_nc_met/get_met_grid.cc | 734 ++++++++---------- src/libcode/vx_data2d_nc_met/get_met_grid.h | 2 +- src/libcode/vx_data2d_nc_met/met_file.cc | 2 +- src/libcode/vx_data2d_nc_met/met_file.h | 2 +- .../vx_data2d_nc_met/var_info_nc_met.cc | 2 +- .../vx_data2d_nc_met/var_info_nc_met.h | 2 +- .../vx_data2d_nc_met/vx_data2d_nc_met.h | 2 +- src/libcode/vx_data2d_nc_wrf/data2d_nc_wrf.cc | 2 +- src/libcode/vx_data2d_nc_wrf/data2d_nc_wrf.h | 2 +- src/libcode/vx_data2d_nc_wrf/get_wrf_grid.cc | 2 +- src/libcode/vx_data2d_nc_wrf/get_wrf_grid.h | 2 +- .../vx_data2d_nc_wrf/var_info_nc_wrf.cc | 2 +- .../vx_data2d_nc_wrf/var_info_nc_wrf.h | 2 +- .../vx_data2d_nc_wrf/vx_data2d_nc_wrf.h | 2 +- src/libcode/vx_data2d_nc_wrf/wrf_file.cc | 2 +- src/libcode/vx_data2d_nc_wrf/wrf_file.h | 2 +- src/libcode/vx_data2d_python/data2d_python.cc | 2 +- src/libcode/vx_data2d_python/data2d_python.h | 2 +- .../dataplane_from_numpy_array.cc | 2 +- .../dataplane_from_numpy_array.h | 2 +- .../vx_data2d_python/dataplane_from_xarray.cc | 2 +- .../vx_data2d_python/dataplane_from_xarray.h | 2 +- .../vx_data2d_python/grid_from_python_dict.cc | 2 +- .../vx_data2d_python/grid_from_python_dict.h | 2 +- .../vx_data2d_python/python_dataplane.cc | 2 +- .../vx_data2d_python/python_dataplane.h | 2 +- .../vx_data2d_python/var_info_python.cc | 2 +- .../vx_data2d_python/var_info_python.h | 2 +- src/libcode/vx_data2d_ugrid/data2d_ugrid.cc | 2 +- src/libcode/vx_data2d_ugrid/data2d_ugrid.h | 2 +- src/libcode/vx_data2d_ugrid/ugrid_file.cc | 2 +- src/libcode/vx_data2d_ugrid/ugrid_file.h | 2 +- src/libcode/vx_data2d_ugrid/var_info_ugrid.cc | 2 +- src/libcode/vx_data2d_ugrid/var_info_ugrid.h | 2 +- src/libcode/vx_data2d_ugrid/vx_data2d_ugrid.h | 2 +- src/libcode/vx_geodesy/spheroid.cc | 2 +- src/libcode/vx_geodesy/spheroid.h | 2 +- src/libcode/vx_geodesy/vx_geodesy.h | 2 +- src/libcode/vx_gis/dbf_file.cc | 2 +- src/libcode/vx_gis/dbf_file.h | 2 +- src/libcode/vx_gis/shapetype_to_string.cc | 2 +- src/libcode/vx_gis/shapetype_to_string.h | 2 +- src/libcode/vx_gis/shp_array.h | 2 +- src/libcode/vx_gis/shp_file.cc | 2 +- src/libcode/vx_gis/shp_file.h | 2 +- src/libcode/vx_gis/shp_point_record.cc | 2 +- src/libcode/vx_gis/shp_point_record.h | 2 +- src/libcode/vx_gis/shp_poly_record.cc | 2 +- src/libcode/vx_gis/shp_poly_record.h | 2 +- src/libcode/vx_gis/shp_types.h | 2 +- src/libcode/vx_gis/shx_file.cc | 2 +- src/libcode/vx_gis/shx_file.h | 2 +- src/libcode/vx_gis/vx_gis.h | 2 +- src/libcode/vx_gnomon/gnomon.cc | 2 +- src/libcode/vx_gnomon/gnomon.h | 2 +- src/libcode/vx_grid/earth_rotation.cc | 2 +- src/libcode/vx_grid/earth_rotation.h | 2 +- src/libcode/vx_grid/find_grid_by_name.cc | 21 +- src/libcode/vx_grid/find_grid_by_name.h | 2 +- src/libcode/vx_grid/gaussian_grid.cc | 2 +- src/libcode/vx_grid/gaussian_grid.h | 2 +- src/libcode/vx_grid/gaussian_grid_defs.h | 2 +- src/libcode/vx_grid/goes_grid.cc | 2 +- src/libcode/vx_grid/goes_grid.h | 2 +- src/libcode/vx_grid/goes_grid_defs.h | 2 +- src/libcode/vx_grid/grid_base.cc | 3 +- src/libcode/vx_grid/grid_base.h | 2 +- src/libcode/vx_grid/laea_grid.cc | 17 +- src/libcode/vx_grid/laea_grid_defs.h | 9 +- src/libcode/vx_grid/latlon_grid.cc | 2 +- src/libcode/vx_grid/latlon_grid.h | 2 +- src/libcode/vx_grid/latlon_grid_defs.h | 2 +- src/libcode/vx_grid/latlon_xyz.cc | 2 +- src/libcode/vx_grid/latlon_xyz.h | 2 +- src/libcode/vx_grid/lc_grid.cc | 2 +- src/libcode/vx_grid/lc_grid.h | 2 +- src/libcode/vx_grid/lc_grid_defs.h | 2 +- src/libcode/vx_grid/merc_grid.cc | 2 +- src/libcode/vx_grid/merc_grid.h | 2 +- src/libcode/vx_grid/merc_grid_defs.h | 2 +- src/libcode/vx_grid/rot_latlon_grid.cc | 2 +- src/libcode/vx_grid/rot_latlon_grid.h | 2 +- src/libcode/vx_grid/semilatlon_grid.cc | 2 +- src/libcode/vx_grid/semilatlon_grid.h | 2 +- src/libcode/vx_grid/semilatlon_grid_defs.h | 2 +- src/libcode/vx_grid/st_grid.cc | 2 +- src/libcode/vx_grid/st_grid.h | 2 +- src/libcode/vx_grid/st_grid_defs.h | 2 +- src/libcode/vx_grid/tcrmw_grid.cc | 2 +- src/libcode/vx_grid/tcrmw_grid.h | 2 +- src/libcode/vx_grid/unstructured_grid.cc | 2 +- src/libcode/vx_grid/unstructured_grid.h | 2 +- src/libcode/vx_grid/unstructured_grid_defs.h | 2 +- src/libcode/vx_grid/vx_grid.h | 2 +- src/libcode/vx_gsl_prob/gsl_bvn.cc | 2 +- src/libcode/vx_gsl_prob/gsl_bvn.h | 2 +- src/libcode/vx_gsl_prob/gsl_cdf.cc | 2 +- src/libcode/vx_gsl_prob/gsl_cdf.h | 2 +- src/libcode/vx_gsl_prob/gsl_randist.cc | 2 +- src/libcode/vx_gsl_prob/gsl_randist.h | 2 +- src/libcode/vx_gsl_prob/gsl_statistics.cc | 2 +- src/libcode/vx_gsl_prob/gsl_statistics.h | 2 +- src/libcode/vx_gsl_prob/gsl_wavelet2d.cc | 2 +- src/libcode/vx_gsl_prob/gsl_wavelet2d.h | 2 +- src/libcode/vx_gsl_prob/vx_gsl_prob.h | 2 +- src/libcode/vx_nav/nav.cc | 2 +- src/libcode/vx_nav/nav.h | 2 +- src/libcode/vx_nc_obs/met_point_data.cc | 2 +- src/libcode/vx_nc_obs/met_point_data.h | 2 +- src/libcode/vx_nc_obs/nc_obs_util.cc | 2 +- src/libcode/vx_nc_obs/nc_obs_util.h | 2 +- src/libcode/vx_nc_obs/nc_point_obs.cc | 2 +- src/libcode/vx_nc_obs/nc_point_obs.h | 2 +- src/libcode/vx_nc_obs/nc_point_obs_in.cc | 2 +- src/libcode/vx_nc_obs/nc_point_obs_in.h | 2 +- src/libcode/vx_nc_obs/nc_point_obs_out.cc | 2 +- src/libcode/vx_nc_obs/nc_point_obs_out.h | 2 +- src/libcode/vx_nc_obs/nc_summary.cc | 2 +- src/libcode/vx_nc_obs/nc_summary.h | 2 +- src/libcode/vx_nc_util/grid_output.cc | 2 +- src/libcode/vx_nc_util/grid_output.h | 2 +- src/libcode/vx_nc_util/load_tc_data.cc | 2 +- src/libcode/vx_nc_util/load_tc_data.h | 2 +- src/libcode/vx_nc_util/nc_constants.h | 2 +- src/libcode/vx_nc_util/nc_utils.cc | 2 +- src/libcode/vx_nc_util/nc_utils.h | 2 +- src/libcode/vx_nc_util/nc_var_info.cc | 2 +- src/libcode/vx_nc_util/nc_var_info.h | 2 +- src/libcode/vx_nc_util/vx_nc_util.h | 2 +- src/libcode/vx_nc_util/write_netcdf.cc | 2 +- src/libcode/vx_nc_util/write_netcdf.h | 2 +- src/libcode/vx_pb_util/copy_bytes.cc | 2 +- src/libcode/vx_pb_util/copy_bytes.h | 2 +- src/libcode/vx_pb_util/do_blocking.cc | 2 +- src/libcode/vx_pb_util/do_blocking.h | 2 +- src/libcode/vx_pb_util/do_unblocking.cc | 2 +- src/libcode/vx_pb_util/do_unblocking.h | 2 +- src/libcode/vx_pb_util/pblock.cc | 2 +- src/libcode/vx_pb_util/pblock.h | 2 +- src/libcode/vx_pb_util/vx_pb_util.h | 2 +- src/libcode/vx_physics/thermo.cc | 2 +- src/libcode/vx_physics/thermo.h | 2 +- src/libcode/vx_plot_util/data_plane_plot.cc | 2 +- src/libcode/vx_plot_util/data_plane_plot.h | 2 +- src/libcode/vx_plot_util/map_region.cc | 2 +- src/libcode/vx_plot_util/map_region.h | 2 +- src/libcode/vx_plot_util/vx_plot_util.cc | 2 +- src/libcode/vx_plot_util/vx_plot_util.h | 2 +- .../pointdata_from_array.cc | 2 +- .../pointdata_from_array.h | 2 +- .../vx_pointdata_python/pointdata_python.cc | 2 +- .../vx_pointdata_python/pointdata_python.h | 2 +- .../vx_pointdata_python/python_pointdata.cc | 2 +- .../vx_pointdata_python/python_pointdata.h | 2 +- src/libcode/vx_ps/documentmedia_to_string.cc | 2 +- src/libcode/vx_ps/documentmedia_to_string.h | 2 +- .../vx_ps/documentorientation_to_string.cc | 2 +- .../vx_ps/documentorientation_to_string.h | 2 +- src/libcode/vx_ps/fontfamily_to_string.cc | 2 +- src/libcode/vx_ps/fontfamily_to_string.h | 2 +- src/libcode/vx_ps/ps_text.cc | 2 +- src/libcode/vx_ps/ps_text.h | 2 +- src/libcode/vx_ps/table_helper.cc | 2 +- src/libcode/vx_ps/table_helper.h | 2 +- src/libcode/vx_ps/vx_ps.cc | 2 +- src/libcode/vx_ps/vx_ps.h | 2 +- src/libcode/vx_pxm/pbm.cc | 2 +- src/libcode/vx_pxm/pbm.h | 2 +- src/libcode/vx_pxm/pcm.cc | 2 +- src/libcode/vx_pxm/pcm.h | 2 +- src/libcode/vx_pxm/pgm.cc | 2 +- src/libcode/vx_pxm/pgm.h | 2 +- src/libcode/vx_pxm/ppm.cc | 2 +- src/libcode/vx_pxm/ppm.h | 2 +- src/libcode/vx_pxm/pxm_base.cc | 2 +- src/libcode/vx_pxm/pxm_base.h | 2 +- src/libcode/vx_pxm/pxm_utils.cc | 2 +- src/libcode/vx_pxm/pxm_utils.h | 2 +- src/libcode/vx_pxm/vx_pxm.h | 2 +- src/libcode/vx_python3_utils/global_python.h | 2 +- src/libcode/vx_python3_utils/python3_dict.cc | 2 +- src/libcode/vx_python3_utils/python3_dict.h | 2 +- src/libcode/vx_python3_utils/python3_list.cc | 2 +- src/libcode/vx_python3_utils/python3_list.h | 2 +- src/libcode/vx_python3_utils/wchar_argv.cc | 2 +- src/libcode/vx_python3_utils/wchar_argv.h | 2 +- src/libcode/vx_regrid/vx_regrid.cc | 2 +- src/libcode/vx_regrid/vx_regrid.h | 2 +- src/libcode/vx_regrid/vx_regrid_budget.cc | 2 +- src/libcode/vx_render/ascii85_filter.cc | 2 +- src/libcode/vx_render/ascii85_filter.h | 2 +- src/libcode/vx_render/bit_filter.cc | 2 +- src/libcode/vx_render/bit_filter.h | 2 +- src/libcode/vx_render/flate_filter.cc | 2 +- src/libcode/vx_render/flate_filter.h | 2 +- src/libcode/vx_render/hex_filter.cc | 2 +- src/libcode/vx_render/hex_filter.h | 2 +- src/libcode/vx_render/ps_filter.cc | 2 +- src/libcode/vx_render/ps_filter.h | 2 +- src/libcode/vx_render/psout_filter.cc | 2 +- src/libcode/vx_render/psout_filter.h | 2 +- src/libcode/vx_render/render_pbm.cc | 2 +- src/libcode/vx_render/render_pcm.cc | 2 +- src/libcode/vx_render/render_pgm.cc | 2 +- src/libcode/vx_render/render_ppm.cc | 2 +- src/libcode/vx_render/renderinfo.cc | 2 +- src/libcode/vx_render/renderinfo.h | 2 +- src/libcode/vx_render/rle_filter.cc | 2 +- src/libcode/vx_render/rle_filter.h | 2 +- src/libcode/vx_render/uc_queue.cc | 2 +- src/libcode/vx_render/uc_queue.h | 2 +- src/libcode/vx_render/vx_render.h | 2 +- src/libcode/vx_series_data/series_data.cc | 2 +- src/libcode/vx_series_data/series_data.h | 2 +- src/libcode/vx_series_data/series_pdf.cc | 2 +- src/libcode/vx_series_data/series_pdf.h | 2 +- src/libcode/vx_shapedata/engine.cc | 2 +- src/libcode/vx_shapedata/engine.h | 2 +- src/libcode/vx_shapedata/interest.cc | 2 +- src/libcode/vx_shapedata/interest.h | 2 +- src/libcode/vx_shapedata/mode_columns.h | 2 +- src/libcode/vx_shapedata/mode_conf_info.cc | 2 +- src/libcode/vx_shapedata/mode_conf_info.h | 2 +- src/libcode/vx_shapedata/mode_data_field.h | 2 +- src/libcode/vx_shapedata/mode_data_type.h | 2 +- src/libcode/vx_shapedata/mode_field_info.cc | 2 +- src/libcode/vx_shapedata/mode_field_info.h | 2 +- src/libcode/vx_shapedata/mode_input_data.h | 2 +- src/libcode/vx_shapedata/moments.cc | 2 +- src/libcode/vx_shapedata/moments.h | 2 +- src/libcode/vx_shapedata/node.cc | 2 +- src/libcode/vx_shapedata/node.h | 2 +- src/libcode/vx_shapedata/set.cc | 2 +- src/libcode/vx_shapedata/set.h | 2 +- src/libcode/vx_shapedata/shape.h | 2 +- src/libcode/vx_shapedata/shapedata.cc | 2 +- src/libcode/vx_shapedata/shapedata.h | 2 +- src/libcode/vx_shapedata/vx_shapedata.h | 2 +- src/libcode/vx_solar/astro_constants.h | 2 +- src/libcode/vx_solar/siderial.cc | 2 +- src/libcode/vx_solar/siderial.h | 2 +- src/libcode/vx_solar/solar.cc | 2 +- src/libcode/vx_solar/solar.h | 2 +- src/libcode/vx_stat_out/stat_columns.cc | 2 +- src/libcode/vx_stat_out/stat_columns.h | 2 +- src/libcode/vx_stat_out/stat_hdr_columns.cc | 2 +- src/libcode/vx_stat_out/stat_hdr_columns.h | 2 +- src/libcode/vx_stat_out/vx_stat_out.h | 2 +- src/libcode/vx_statistics/apply_mask.cc | 2 +- src/libcode/vx_statistics/apply_mask.h | 2 +- src/libcode/vx_statistics/compute_ci.cc | 2 +- src/libcode/vx_statistics/compute_ci.h | 2 +- src/libcode/vx_statistics/compute_stats.cc | 2 +- src/libcode/vx_statistics/compute_stats.h | 2 +- src/libcode/vx_statistics/contable.cc | 2 +- src/libcode/vx_statistics/contable.h | 2 +- src/libcode/vx_statistics/contable_nx2.cc | 2 +- src/libcode/vx_statistics/contable_stats.cc | 2 +- src/libcode/vx_statistics/ens_stats.cc | 2 +- src/libcode/vx_statistics/ens_stats.h | 2 +- src/libcode/vx_statistics/grid_closed_poly.cc | 2 +- src/libcode/vx_statistics/grid_closed_poly.h | 2 +- src/libcode/vx_statistics/met_stats.cc | 2 +- src/libcode/vx_statistics/met_stats.h | 2 +- src/libcode/vx_statistics/obs_error.cc | 2 +- src/libcode/vx_statistics/obs_error.h | 2 +- src/libcode/vx_statistics/pair_base.cc | 2 +- src/libcode/vx_statistics/pair_base.h | 2 +- .../vx_statistics/pair_data_ensemble.cc | 2 +- .../vx_statistics/pair_data_ensemble.h | 2 +- src/libcode/vx_statistics/pair_data_point.cc | 2 +- src/libcode/vx_statistics/pair_data_point.h | 2 +- src/libcode/vx_statistics/read_climo.cc | 2 +- src/libcode/vx_statistics/read_climo.h | 2 +- src/libcode/vx_statistics/vx_statistics.h | 2 +- src/libcode/vx_summary/summary_calc.cc | 2 +- src/libcode/vx_summary/summary_calc.h | 2 +- src/libcode/vx_summary/summary_calc_max.cc | 2 +- src/libcode/vx_summary/summary_calc_max.h | 2 +- src/libcode/vx_summary/summary_calc_mean.cc | 2 +- src/libcode/vx_summary/summary_calc_mean.h | 2 +- src/libcode/vx_summary/summary_calc_median.cc | 2 +- src/libcode/vx_summary/summary_calc_median.h | 2 +- src/libcode/vx_summary/summary_calc_min.cc | 2 +- src/libcode/vx_summary/summary_calc_min.h | 2 +- .../vx_summary/summary_calc_percentile.cc | 2 +- .../vx_summary/summary_calc_percentile.h | 2 +- src/libcode/vx_summary/summary_calc_range.cc | 2 +- src/libcode/vx_summary/summary_calc_range.h | 2 +- src/libcode/vx_summary/summary_calc_stdev.cc | 2 +- src/libcode/vx_summary/summary_calc_stdev.h | 2 +- src/libcode/vx_summary/summary_calc_sum.cc | 2 +- src/libcode/vx_summary/summary_calc_sum.h | 2 +- src/libcode/vx_summary/summary_key.cc | 2 +- src/libcode/vx_summary/summary_key.h | 2 +- src/libcode/vx_summary/summary_obs.cc | 2 +- src/libcode/vx_summary/summary_obs.h | 2 +- .../vx_summary/time_summary_interval.cc | 2 +- .../vx_summary/time_summary_interval.h | 2 +- src/libcode/vx_summary/vx_summary.h | 2 +- src/libcode/vx_tc_util/atcf_line_base.cc | 2 +- src/libcode/vx_tc_util/atcf_line_base.h | 2 +- src/libcode/vx_tc_util/atcf_offsets.h | 2 +- src/libcode/vx_tc_util/atcf_prob_line.cc | 2 +- src/libcode/vx_tc_util/atcf_prob_line.h | 2 +- src/libcode/vx_tc_util/atcf_track_line.cc | 2 +- src/libcode/vx_tc_util/atcf_track_line.h | 2 +- src/libcode/vx_tc_util/diag_file.cc | 2 +- src/libcode/vx_tc_util/diag_file.h | 2 +- src/libcode/vx_tc_util/gen_shape_info.cc | 2 +- src/libcode/vx_tc_util/gen_shape_info.h | 2 +- src/libcode/vx_tc_util/genesis_info.cc | 2 +- src/libcode/vx_tc_util/genesis_info.h | 2 +- src/libcode/vx_tc_util/pair_data_genesis.cc | 2 +- src/libcode/vx_tc_util/pair_data_genesis.h | 2 +- src/libcode/vx_tc_util/prob_gen_info.cc | 2 +- src/libcode/vx_tc_util/prob_gen_info.h | 2 +- src/libcode/vx_tc_util/prob_info_array.cc | 2 +- src/libcode/vx_tc_util/prob_info_array.h | 2 +- src/libcode/vx_tc_util/prob_info_base.cc | 2 +- src/libcode/vx_tc_util/prob_info_base.h | 2 +- src/libcode/vx_tc_util/prob_rirw_info.cc | 2 +- src/libcode/vx_tc_util/prob_rirw_info.h | 2 +- src/libcode/vx_tc_util/prob_rirw_pair_info.cc | 2 +- src/libcode/vx_tc_util/prob_rirw_pair_info.h | 2 +- src/libcode/vx_tc_util/tc_columns.cc | 2 +- src/libcode/vx_tc_util/tc_columns.h | 2 +- src/libcode/vx_tc_util/tc_hdr_columns.cc | 2 +- src/libcode/vx_tc_util/tc_hdr_columns.h | 2 +- src/libcode/vx_tc_util/tc_stat_line.cc | 2 +- src/libcode/vx_tc_util/tc_stat_line.h | 2 +- src/libcode/vx_tc_util/track_info.cc | 2 +- src/libcode/vx_tc_util/track_info.h | 2 +- src/libcode/vx_tc_util/track_pair_info.cc | 2 +- src/libcode/vx_tc_util/track_pair_info.h | 2 +- src/libcode/vx_tc_util/track_point.cc | 2 +- src/libcode/vx_tc_util/track_point.h | 2 +- src/libcode/vx_tc_util/vx_tc_nc_util.cc | 2 +- src/libcode/vx_tc_util/vx_tc_nc_util.h | 2 +- src/libcode/vx_tc_util/vx_tc_util.h | 2 +- .../vx_time_series/compute_swinging_door.cc | 2 +- .../vx_time_series/compute_swinging_door.h | 2 +- .../vx_time_series/time_series_util.cc | 2 +- src/libcode/vx_time_series/time_series_util.h | 2 +- src/libcode/vx_time_series/vx_time_series.h | 2 +- src/tools/core/ensemble_stat/ensemble_stat.cc | 2 +- src/tools/core/ensemble_stat/ensemble_stat.h | 2 +- .../ensemble_stat/ensemble_stat_conf_info.cc | 2 +- .../ensemble_stat/ensemble_stat_conf_info.h | 2 +- src/tools/core/grid_stat/grid_stat.cc | 2 +- src/tools/core/grid_stat/grid_stat.h | 2 +- .../core/grid_stat/grid_stat_conf_info.cc | 2 +- .../core/grid_stat/grid_stat_conf_info.h | 2 +- src/tools/core/mode/cluster_page.cc | 2 +- src/tools/core/mode/combine_boolplanes.cc | 2 +- src/tools/core/mode/combine_boolplanes.h | 2 +- src/tools/core/mode/fcst_enlarge_page.cc | 2 +- src/tools/core/mode/mode.cc | 2 +- src/tools/core/mode/mode_exec.cc | 2 +- src/tools/core/mode/mode_exec.h | 2 +- src/tools/core/mode/mode_frontend.cc | 2 +- src/tools/core/mode/mode_frontend.h | 2 +- src/tools/core/mode/mode_ps_file.cc | 2 +- src/tools/core/mode/mode_ps_file.h | 2 +- src/tools/core/mode/mode_ps_table_defs.h | 2 +- src/tools/core/mode/mode_superobject.h | 2 +- src/tools/core/mode/mode_usage.cc | 2 +- src/tools/core/mode/mode_usage.h | 2 +- src/tools/core/mode/multivar_data.cc | 2 +- src/tools/core/mode/multivar_data.h | 2 +- src/tools/core/mode/multivar_frontend.cc | 2 +- src/tools/core/mode/multivar_frontend.h | 2 +- src/tools/core/mode/objects_from_netcdf.cc | 2 +- src/tools/core/mode/objects_from_netcdf.h | 2 +- src/tools/core/mode/obs_enlarge_page.cc | 2 +- src/tools/core/mode/overlap_page.cc | 2 +- src/tools/core/mode/page_1.cc | 2 +- src/tools/core/mode/plot_engine.cc | 2 +- src/tools/core/mode_analysis/config_to_att.cc | 2 +- src/tools/core/mode_analysis/config_to_att.h | 2 +- src/tools/core/mode_analysis/mode_analysis.cc | 2 +- src/tools/core/pcp_combine/pcp_combine.cc | 2 +- src/tools/core/point_stat/point_stat.cc | 2 +- src/tools/core/point_stat/point_stat.h | 2 +- .../core/point_stat/point_stat_conf_info.cc | 2 +- .../core/point_stat/point_stat_conf_info.h | 2 +- .../core/series_analysis/series_analysis.cc | 2 +- .../core/series_analysis/series_analysis.h | 2 +- .../series_analysis_conf_info.cc | 2 +- .../series_analysis_conf_info.h | 2 +- .../core/stat_analysis/aggr_stat_line.cc | 2 +- src/tools/core/stat_analysis/aggr_stat_line.h | 2 +- .../core/stat_analysis/parse_stat_line.cc | 2 +- .../core/stat_analysis/parse_stat_line.h | 2 +- .../stat_analysis/skill_score_index_job.cc | 2 +- .../stat_analysis/skill_score_index_job.h | 2 +- src/tools/core/stat_analysis/stat_analysis.cc | 2 +- src/tools/core/stat_analysis/stat_analysis.h | 2 +- .../core/stat_analysis/stat_analysis_job.cc | 2 +- .../core/stat_analysis/stat_analysis_job.h | 2 +- src/tools/core/wavelet_stat/wavelet_stat.cc | 2 +- src/tools/core/wavelet_stat/wavelet_stat.h | 2 +- .../wavelet_stat/wavelet_stat_conf_info.cc | 2 +- .../wavelet_stat/wavelet_stat_conf_info.h | 2 +- src/tools/dev_utils/chk4copyright.cc | 2 +- src/tools/dev_utils/gen_climo_bin.cc | 2 +- src/tools/dev_utils/gribtab.dat_to_flat.cc | 2 +- src/tools/dev_utils/insitu_nc_file.cc | 2 +- src/tools/dev_utils/insitu_nc_file.h | 2 +- src/tools/dev_utils/insitu_nc_to_ascii.cc | 2 +- src/tools/dev_utils/met_nc_file.cc | 2 +- src/tools/dev_utils/met_nc_file.h | 2 +- src/tools/dev_utils/nceptab_to_flat.cc | 2 +- src/tools/dev_utils/pbtime.cc | 2 +- src/tools/dev_utils/reformat_county_data.cc | 2 +- src/tools/dev_utils/reformat_map_data.cc | 2 +- .../dev_utils/shapefiles/make_mapfiles.cc | 2 +- src/tools/dev_utils/swinging_door.cc | 2 +- src/tools/other/ascii2nc/aeronet_handler.cc | 2 +- src/tools/other/ascii2nc/aeronet_handler.h | 2 +- src/tools/other/ascii2nc/airnow_handler.cc | 2 +- src/tools/other/ascii2nc/airnow_handler.h | 2 +- src/tools/other/ascii2nc/airnow_locations.cc | 2 +- src/tools/other/ascii2nc/airnow_locations.h | 2 +- src/tools/other/ascii2nc/ascii2nc.cc | 2 +- .../other/ascii2nc/ascii2nc_conf_info.cc | 2 +- src/tools/other/ascii2nc/ascii2nc_conf_info.h | 2 +- src/tools/other/ascii2nc/file_handler.cc | 2 +- src/tools/other/ascii2nc/file_handler.h | 2 +- src/tools/other/ascii2nc/ismn_handler.cc | 2 +- src/tools/other/ascii2nc/ismn_handler.h | 2 +- src/tools/other/ascii2nc/little_r_handler.cc | 2 +- src/tools/other/ascii2nc/little_r_handler.h | 2 +- src/tools/other/ascii2nc/met_handler.cc | 2 +- src/tools/other/ascii2nc/met_handler.h | 2 +- src/tools/other/ascii2nc/ndbc_handler.cc | 2 +- src/tools/other/ascii2nc/ndbc_handler.h | 2 +- src/tools/other/ascii2nc/ndbc_locations.cc | 2 +- src/tools/other/ascii2nc/ndbc_locations.h | 2 +- src/tools/other/ascii2nc/python_handler.cc | 2 +- src/tools/other/ascii2nc/python_handler.h | 2 +- src/tools/other/ascii2nc/surfrad_handler.cc | 2 +- src/tools/other/ascii2nc/surfrad_handler.h | 2 +- src/tools/other/ascii2nc/wwsis_handler.cc | 2 +- src/tools/other/ascii2nc/wwsis_handler.h | 2 +- src/tools/other/gen_ens_prod/gen_ens_prod.cc | 2 +- src/tools/other/gen_ens_prod/gen_ens_prod.h | 2 +- .../gen_ens_prod/gen_ens_prod_conf_info.cc | 2 +- .../gen_ens_prod/gen_ens_prod_conf_info.h | 2 +- src/tools/other/gen_vx_mask/gen_vx_mask.cc | 2 +- src/tools/other/gen_vx_mask/gen_vx_mask.h | 2 +- src/tools/other/gis_utils/gis_dump_dbf.cc | 2 +- src/tools/other/gis_utils/gis_dump_shp.cc | 2 +- src/tools/other/gis_utils/gis_dump_shx.cc | 2 +- src/tools/other/grid_diag/grid_diag.cc | 2 +- src/tools/other/grid_diag/grid_diag.h | 2 +- .../other/grid_diag/grid_diag_conf_info.cc | 2 +- .../other/grid_diag/grid_diag_conf_info.h | 2 +- src/tools/other/gsi_tools/conv_offsets.h | 2 +- src/tools/other/gsi_tools/conv_record.cc | 2 +- src/tools/other/gsi_tools/conv_record.h | 2 +- src/tools/other/gsi_tools/ftto.h | 2 +- src/tools/other/gsi_tools/gsi_record.cc | 2 +- src/tools/other/gsi_tools/gsi_record.h | 2 +- src/tools/other/gsi_tools/gsi_util.cc | 2 +- src/tools/other/gsi_tools/gsi_util.h | 2 +- src/tools/other/gsi_tools/gsid2mpr.cc | 2 +- src/tools/other/gsi_tools/gsid2mpr.h | 2 +- src/tools/other/gsi_tools/gsidens2orank.cc | 2 +- src/tools/other/gsi_tools/gsidens2orank.h | 2 +- src/tools/other/gsi_tools/rad_config.cc | 2 +- src/tools/other/gsi_tools/rad_config.h | 2 +- src/tools/other/gsi_tools/rad_offsets.h | 2 +- src/tools/other/gsi_tools/rad_record.cc | 2 +- src/tools/other/gsi_tools/rad_record.h | 2 +- src/tools/other/ioda2nc/ioda2nc.cc | 2 +- src/tools/other/ioda2nc/ioda2nc_conf_info.cc | 2 +- src/tools/other/ioda2nc/ioda2nc_conf_info.h | 2 +- src/tools/other/lidar2nc/calipso_5km.cc | 2 +- src/tools/other/lidar2nc/calipso_5km.h | 2 +- src/tools/other/lidar2nc/hdf_utils.cc | 2 +- src/tools/other/lidar2nc/hdf_utils.h | 2 +- src/tools/other/lidar2nc/lidar2nc.cc | 2 +- src/tools/other/madis2nc/madis2nc.cc | 2 +- src/tools/other/madis2nc/madis2nc.h | 2 +- .../other/madis2nc/madis2nc_conf_info.cc | 2 +- src/tools/other/madis2nc/madis2nc_conf_info.h | 2 +- src/tools/other/mode_graphics/cgraph.h | 2 +- src/tools/other/mode_graphics/cgraph_font.cc | 2 +- src/tools/other/mode_graphics/cgraph_font.h | 2 +- src/tools/other/mode_graphics/cgraph_main.cc | 2 +- src/tools/other/mode_graphics/cgraph_main.h | 2 +- .../cgraphbase_plottype_to_string.cc | 2 +- .../cgraphbase_plottype_to_string.h | 2 +- src/tools/other/mode_graphics/color_stack.cc | 2 +- src/tools/other/mode_graphics/color_stack.h | 2 +- src/tools/other/mode_graphics/gs_ps_map.h | 2 +- .../mode_graphics/mode_nc_output_file.cc | 2 +- .../other/mode_graphics/mode_nc_output_file.h | 2 +- .../other/mode_graphics/plot_mode_field.cc | 2 +- src/tools/other/mode_graphics/sincosd.h | 2 +- src/tools/other/mode_time_domain/2d_att.cc | 2 +- src/tools/other/mode_time_domain/2d_att.h | 2 +- .../other/mode_time_domain/2d_att_array.cc | 2 +- .../other/mode_time_domain/2d_att_array.h | 2 +- src/tools/other/mode_time_domain/2d_columns.h | 2 +- .../other/mode_time_domain/2d_moments.cc | 2 +- src/tools/other/mode_time_domain/2d_moments.h | 2 +- src/tools/other/mode_time_domain/3d_att.cc | 2 +- src/tools/other/mode_time_domain/3d_att.h | 2 +- .../mode_time_domain/3d_att_pair_array.cc | 2 +- .../mode_time_domain/3d_att_pair_array.h | 2 +- .../mode_time_domain/3d_att_single_array.cc | 2 +- .../mode_time_domain/3d_att_single_array.h | 2 +- src/tools/other/mode_time_domain/3d_conv.cc | 2 +- .../other/mode_time_domain/3d_moments.cc | 2 +- src/tools/other/mode_time_domain/3d_moments.h | 2 +- .../other/mode_time_domain/3d_pair_columns.h | 2 +- .../mode_time_domain/3d_single_columns.h | 2 +- .../other/mode_time_domain/3d_txt_header.h | 2 +- src/tools/other/mode_time_domain/fo_graph.cc | 2 +- src/tools/other/mode_time_domain/fo_graph.h | 2 +- src/tools/other/mode_time_domain/fo_node.cc | 2 +- src/tools/other/mode_time_domain/fo_node.h | 2 +- .../other/mode_time_domain/fo_node_array.cc | 2 +- .../other/mode_time_domain/fo_node_array.h | 2 +- .../other/mode_time_domain/interest_calc.cc | 2 +- .../other/mode_time_domain/interest_calc.h | 2 +- src/tools/other/mode_time_domain/mm_engine.cc | 2 +- src/tools/other/mode_time_domain/mm_engine.h | 2 +- src/tools/other/mode_time_domain/mtd.cc | 2 +- .../other/mode_time_domain/mtd_config_info.cc | 2 +- .../other/mode_time_domain/mtd_config_info.h | 2 +- src/tools/other/mode_time_domain/mtd_file.h | 2 +- .../other/mode_time_domain/mtd_file_base.cc | 2 +- .../other/mode_time_domain/mtd_file_base.h | 2 +- .../other/mode_time_domain/mtd_file_float.cc | 2 +- .../other/mode_time_domain/mtd_file_float.h | 2 +- .../other/mode_time_domain/mtd_file_int.cc | 2 +- .../other/mode_time_domain/mtd_file_int.h | 2 +- .../other/mode_time_domain/mtd_nc_defs.h | 2 +- .../other/mode_time_domain/mtd_nc_output.cc | 2 +- .../other/mode_time_domain/mtd_nc_output.h | 2 +- .../other/mode_time_domain/mtd_partition.cc | 2 +- .../other/mode_time_domain/mtd_partition.h | 2 +- .../other/mode_time_domain/mtd_read_data.cc | 2 +- .../other/mode_time_domain/mtd_read_data.h | 2 +- .../other/mode_time_domain/mtd_txt_output.cc | 2 +- .../other/mode_time_domain/mtd_txt_output.h | 2 +- .../mode_time_domain/mtdfiletype_to_string.cc | 2 +- .../mode_time_domain/mtdfiletype_to_string.h | 2 +- src/tools/other/mode_time_domain/nc_grid.cc | 2 +- src/tools/other/mode_time_domain/nc_grid.h | 2 +- .../other/mode_time_domain/nc_utils_local.cc | 2 +- .../other/mode_time_domain/nc_utils_local.h | 2 +- .../other/modis_regrid/cloudsat_swath_file.cc | 2 +- .../other/modis_regrid/cloudsat_swath_file.h | 2 +- src/tools/other/modis_regrid/data_averager.cc | 2 +- src/tools/other/modis_regrid/data_averager.h | 2 +- .../modis_regrid/data_plane_to_netcdf.cc | 2 +- .../other/modis_regrid/data_plane_to_netcdf.h | 2 +- src/tools/other/modis_regrid/modis_file.cc | 2 +- src/tools/other/modis_regrid/modis_file.h | 2 +- src/tools/other/modis_regrid/modis_regrid.cc | 2 +- src/tools/other/modis_regrid/sat_utils.cc | 2 +- src/tools/other/modis_regrid/sat_utils.h | 2 +- src/tools/other/pb2nc/closepb.f | 2 +- src/tools/other/pb2nc/dumppb.f | 2 +- src/tools/other/pb2nc/numpbmsg.f | 2 +- src/tools/other/pb2nc/openpb.f | 2 +- src/tools/other/pb2nc/pb2nc.cc | 2 +- src/tools/other/pb2nc/pb2nc_conf_info.cc | 2 +- src/tools/other/pb2nc/pb2nc_conf_info.h | 2 +- src/tools/other/pb2nc/readpb.f | 2 +- .../other/plot_data_plane/plot_data_plane.cc | 2 +- .../other/plot_point_obs/plot_point_obs.cc | 2 +- .../other/plot_point_obs/plot_point_obs.h | 2 +- .../plot_point_obs_conf_info.cc | 2 +- .../plot_point_obs/plot_point_obs_conf_info.h | 2 +- src/tools/other/point2grid/point2grid.cc | 2 +- .../other/point2grid/point2grid_conf_info.cc | 2 +- .../other/point2grid/point2grid_conf_info.h | 2 +- .../regrid_data_plane/regrid_data_plane.cc | 2 +- .../shift_data_plane/shift_data_plane.cc | 2 +- src/tools/other/wwmca_tool/af_cp_file.cc | 2 +- src/tools/other/wwmca_tool/af_cp_file.h | 2 +- src/tools/other/wwmca_tool/af_file.cc | 2 +- src/tools/other/wwmca_tool/af_file.h | 2 +- src/tools/other/wwmca_tool/af_pt_file.cc | 2 +- src/tools/other/wwmca_tool/af_pt_file.h | 2 +- src/tools/other/wwmca_tool/ave_interp.cc | 2 +- src/tools/other/wwmca_tool/ave_interp.h | 2 +- .../wwmca_tool/gridhemisphere_to_string.cc | 2 +- .../wwmca_tool/gridhemisphere_to_string.h | 2 +- src/tools/other/wwmca_tool/interp_base.cc | 2 +- src/tools/other/wwmca_tool/interp_base.h | 2 +- src/tools/other/wwmca_tool/max_interp.cc | 2 +- src/tools/other/wwmca_tool/max_interp.h | 2 +- src/tools/other/wwmca_tool/min_interp.cc | 2 +- src/tools/other/wwmca_tool/min_interp.h | 2 +- src/tools/other/wwmca_tool/nc_output.cc | 2 +- src/tools/other/wwmca_tool/nearest_interp.cc | 2 +- src/tools/other/wwmca_tool/nearest_interp.h | 2 +- src/tools/other/wwmca_tool/wwmca_plot.cc | 2 +- src/tools/other/wwmca_tool/wwmca_ref.cc | 2 +- src/tools/other/wwmca_tool/wwmca_ref.h | 2 +- src/tools/other/wwmca_tool/wwmca_regrid.cc | 2 +- .../tc_utils/rmw_analysis/rmw_analysis.cc | 2 +- .../tc_utils/rmw_analysis/rmw_analysis.h | 2 +- .../rmw_analysis/rmw_analysis_conf_info.cc | 2 +- .../rmw_analysis/rmw_analysis_conf_info.h | 2 +- src/tools/tc_utils/tc_diag/python_tc_diag.cc | 2 +- src/tools/tc_utils/tc_diag/python_tc_diag.h | 2 +- src/tools/tc_utils/tc_diag/tc_diag.cc | 41 +- src/tools/tc_utils/tc_diag/tc_diag.h | 10 +- .../tc_utils/tc_diag/tc_diag_conf_info.cc | 2 +- .../tc_utils/tc_diag/tc_diag_conf_info.h | 2 +- src/tools/tc_utils/tc_dland/tc_dland.cc | 2 +- src/tools/tc_utils/tc_dland/tc_poly.cc | 2 +- src/tools/tc_utils/tc_dland/tc_poly.h | 2 +- src/tools/tc_utils/tc_gen/tc_gen.cc | 2 +- src/tools/tc_utils/tc_gen/tc_gen.h | 2 +- src/tools/tc_utils/tc_gen/tc_gen_conf_info.cc | 2 +- src/tools/tc_utils/tc_gen/tc_gen_conf_info.h | 2 +- src/tools/tc_utils/tc_pairs/tc_pairs.cc | 2 +- src/tools/tc_utils/tc_pairs/tc_pairs.h | 2 +- .../tc_utils/tc_pairs/tc_pairs_conf_info.cc | 2 +- .../tc_utils/tc_pairs/tc_pairs_conf_info.h | 2 +- src/tools/tc_utils/tc_rmw/tc_rmw.cc | 2 +- src/tools/tc_utils/tc_rmw/tc_rmw.h | 2 +- src/tools/tc_utils/tc_rmw/tc_rmw_conf_info.cc | 2 +- src/tools/tc_utils/tc_rmw/tc_rmw_conf_info.h | 2 +- .../tc_utils/tc_rmw/tc_rmw_wind_converter.cc | 2 +- .../tc_utils/tc_rmw/tc_rmw_wind_converter.h | 2 +- src/tools/tc_utils/tc_stat/tc_stat.cc | 2 +- src/tools/tc_utils/tc_stat/tc_stat.h | 2 +- .../tc_utils/tc_stat/tc_stat_conf_info.cc | 2 +- .../tc_utils/tc_stat/tc_stat_conf_info.h | 2 +- src/tools/tc_utils/tc_stat/tc_stat_files.cc | 2 +- src/tools/tc_utils/tc_stat/tc_stat_files.h | 2 +- src/tools/tc_utils/tc_stat/tc_stat_job.cc | 2 +- src/tools/tc_utils/tc_stat/tc_stat_job.h | 2 +- 999 files changed, 2000 insertions(+), 1708 deletions(-) delete mode 100644 docs/version diff --git a/.github/jobs/set_job_controls.sh b/.github/jobs/set_job_controls.sh index 3517fbf65c..9c39a50716 100755 --- a/.github/jobs/set_job_controls.sh +++ b/.github/jobs/set_job_controls.sh @@ -6,7 +6,7 @@ run_unit_tests=false run_diff=false run_update_truth=false met_base_repo=met-base -met_base_tag=v3.1 +met_base_tag=v3.2 input_data_version=develop truth_data_version=develop diff --git a/.github/workflows/build_docker_and_trigger_metplus.yml b/.github/workflows/build_docker_and_trigger_metplus.yml index 23aafdfd76..13606d5ed3 100644 --- a/.github/workflows/build_docker_and_trigger_metplus.yml +++ b/.github/workflows/build_docker_and_trigger_metplus.yml @@ -29,7 +29,7 @@ jobs: env: SOURCE_BRANCH: ${{ steps.get_branch_name.outputs.branch_name }}-lite MET_BASE_REPO: met-base - MET_BASE_TAG: v3.1 + MET_BASE_TAG: v3.2 - name: Push Docker Image run: .github/jobs/push_docker_image.sh diff --git a/data/config/TCDiagConfig_default b/data/config/TCDiagConfig_default index d5061c82c9..a75c7b42b8 100644 --- a/data/config/TCDiagConfig_default +++ b/data/config/TCDiagConfig_default @@ -85,8 +85,8 @@ domain_info = [ // May be set separately in each data "field" array entry // regrid = { - method = NEAREST; - width = 1; + method = BILIN; + width = 2; vld_thresh = 0.5; shape = SQUARE; } diff --git a/data/copyright_notice.txt b/data/copyright_notice.txt index 9485776ce6..956ab6f963 100644 --- a/data/copyright_notice.txt +++ b/data/copyright_notice.txt @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/docs/Users_Guide/appendixF.rst b/docs/Users_Guide/appendixF.rst index bfdc451e30..dc81f0cd96 100644 --- a/docs/Users_Guide/appendixF.rst +++ b/docs/Users_Guide/appendixF.rst @@ -22,15 +22,19 @@ In order to use Python embedding, a local Python installation must be available 3. **NumPy** Python package -4. **netCDF4** Python package +4. **Pandas** Python package -5. **Pandas** Python package +5. **Xarray** Python package -6. **Xarray** Python package +6. **YAML** Python package -7. **YAML** Python package +7. **SciPy** Python package -Users should be aware that in some cases, the C-language Python header files and libraries may be deleted at the end of the Python installation process, and they may need to confirm their availability prior to compiling MET. Once the user has confirmed the above requirements are satisfied, they can compile the MET software for Python embedding by passing the **\-\-enable-python** option to the **configure** script on the command line. This will link the MET C++ code directly to the Python libraries. The **NumPy** and **netCDF4** Python packages are required by the Python scripts included with the MET software that facilitate the passing of data in memory and the reading and writing of temporary files when Python embedding is used. The **YAML** Python package is required by the tropical cyclone diagnostics Python scripts called by the TC-Diag tool. +8. **netCDF4** Python package + +Users should be aware that in some cases, the C-language Python header files and libraries may be deleted at the end of the Python installation process, and they may need to confirm their availability prior to compiling MET. Once the user has confirmed the above requirements are satisfied, they can compile the MET software for Python embedding by passing the **\-\-enable-python** option to the **configure** script on the command line. This will link the MET C++ code directly to the Python libraries. + +The **NumPy**, **Xarray**, and **Pandas** Python packages are required by the Python scripts included with the MET software that facilitate the passing of data in memory. The *SciPy** and **YAML** Python packages are required by the tropical cyclone diagnostics Python scripts called by the TC-Diag tool. The **netCDF4** package is used for reading and writing temporary files for Python embedding, but only when the **MET_PYTHON_TMP_FORMAT** environment variable is set to `netcdf` at runtime. In addition to using **\-\-enable-python** with **configure** as mentioned above, the following environment variables must also be set prior to executing **configure**: **MET_PYTHON_BIN_EXE**, **MET_PYTHON_CC**, and **MET_PYTHON_LD**. These may either be set as environment variables or as command line options to **configure**. These environment variables are used when building MET to enable the compiler to find the requisite Python executable, header files, and libraries in the user's local filesystem. Fortunately, Python provides a way to set these variables properly. This frees the user from the necessity of having any expert knowledge of the compiling and linking process. Along with the **Python** executable in the users local Python installation, there should be another executable called **python3-config**, whose output can be used to set these environment variables as follows: diff --git a/docs/Users_Guide/release-notes.rst b/docs/Users_Guide/release-notes.rst index 147dbe602e..c762149df0 100644 --- a/docs/Users_Guide/release-notes.rst +++ b/docs/Users_Guide/release-notes.rst @@ -9,6 +9,36 @@ When applicable, release notes are followed by the GitHub issue number which des enhancement, or new feature (`MET GitHub issues `_). Important issues are listed **in bold** for emphasis. +MET Version 12.0.0-beta3 Release Notes (20240207) +------------------------------------------------- + + .. dropdown:: Repository, build, and test + + * Enhance METbaseimage to install SciPy Python package needed by the MET TC-Diag tool (`METbaseimage#20 `_). + * Remove the SonarQube token from the properties file (`#2757 `_). + * Repository cleanup of stale code and configuration consistency (`#2776 `_). + * Add new example installation configuration files for Intel compiler users (`#2785 `_). + * Update GitHub actions workflows to switch from node 16 to node 20 (`#2796 `_). + + .. dropdown:: Bugfixes + + * Bugfix: Fix support for NSIDC v4 Climate Data Record data on Polar Stereographic grids in CF-compliant NetCDF files (`#2652 `_). + * Bugfix: Fix Python embedding failure when providing a single point observation (`#2755 `_). + * Bugfix: Fix MET to compile without the optional `--enable-python` configuration option (`#2760 `_). + * Bugfix: Fix the parsing of level values for GRIB2 template 4.48 data (`#2782 `_). + + .. dropdown:: Enhancements + + * **Add support for native WRF output files already on pressure levels** (`#2547 `_). + * Enhance ASCII2NC to read ISMN point observations of soil moisture and temperature (`#2701 `_). + * **Major enhancements to multivariate MODE** (`#2745 `_). + * Enhance TC-Diag to use tc_diag_driver version 0.11.0 (`#2769 `_). + * Switch from writing temporary Python files in NetCDF to JSON and NumPy serialization (`#2772 `_). + * Revise the use of temporary files in PB2NC (`#2792 `_). + * Enhance MET to make warnings messages about time differences configurable (`#2801 `_). + * Enhance Stat-Analysis to apply the `-set_hdr` option to filter jobs (`#2805 `_). + * Enhance MET to parse LAEA grids from the MET NetCDF file format (`#2809 `_). + MET Version 12.0.0-beta2 Release Notes (20231117) ------------------------------------------------- diff --git a/docs/Users_Guide/tc-diag.rst b/docs/Users_Guide/tc-diag.rst index 7bc2448c53..4f1d4630ee 100644 --- a/docs/Users_Guide/tc-diag.rst +++ b/docs/Users_Guide/tc-diag.rst @@ -63,6 +63,8 @@ Optional Arguments for tc_diag 6. The **-v level** option indicates the desired level of verbosity. The contents of "level" will override the default setting of 2. Setting the verbosity to 0 will make the tool run with no log messages, while increasing the verbosity above 1 will increase the amount of logging. +.. note:: Setting the **MET_KEEP_TEMP_FILE** (:numref:`met_keep_temp_file`) environment variable retains the temporary NetCDF cylindrical coordinate files for development, testing, and debugging purposes. + tc_diag Configuration File -------------------------- @@ -155,13 +157,13 @@ Configuring regridding options .. code-block:: none regrid = { - method = NEAREST; - width = 1; + method = BILIN; + width = 2; vld_thresh = 0.5; shape = SQUARE; } -The **regrid** dictionary is common to multiple MET tools and is described in :numref:`config_options`. It specifies how the input data should be regridded to cylindrical coordinates prior to compute diagnostics. It can be specified separately in each **data.field** array entry, described below. The default setting uses nearest neighbor interpolation for all fields. +The **regrid** dictionary is common to multiple MET tools and is described in :numref:`config_options`. It specifies how the input data should be regridded to cylindrical coordinates prior to compute diagnostics. It can be specified separately in each **data.field** array entry, described below. The default setting uses bilinear interpolation for all fields. Configuring Fields, Levels, and Domains ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/docs/conf.py b/docs/conf.py index 91d59e0727..ad28a7dd63 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -20,11 +20,11 @@ project = 'MET' author = 'UCAR/NCAR, NOAA, CSU/CIRA, and CU/CIRES' author_list = 'Prestopnik, J., H. Soh, L. Goodrich, B. Brown, R. Bullock, J. Halley Gotway, K. Newman, J. Opatz, T. Jensen' -version = '12.0.0-beta2' +version = '12.0.0-beta3' verinfo = version release = f'{version}' -release_year = '2023' -release_date = f'{release_year}-11-17' +release_year = '2024' +release_date = f'{release_year}-02-07' copyright = f'{release_year}, {author}' # -- General configuration --------------------------------------------------- diff --git a/docs/version b/docs/version deleted file mode 100644 index b915cf62d2..0000000000 --- a/docs/version +++ /dev/null @@ -1 +0,0 @@ -10.1.0-beta2 diff --git a/internal/scripts/docker/Dockerfile b/internal/scripts/docker/Dockerfile index 7ba0bcf0f6..c5daf58492 100644 --- a/internal/scripts/docker/Dockerfile +++ b/internal/scripts/docker/Dockerfile @@ -1,5 +1,5 @@ ARG MET_BASE_REPO=met-base -ARG MET_BASE_TAG=v3.1 +ARG MET_BASE_TAG=v3.2 FROM dtcenter/${MET_BASE_REPO}:${MET_BASE_TAG} MAINTAINER John Halley Gotway diff --git a/internal/scripts/docker/Dockerfile.copy b/internal/scripts/docker/Dockerfile.copy index bcfe4417a6..4d3d9476cd 100644 --- a/internal/scripts/docker/Dockerfile.copy +++ b/internal/scripts/docker/Dockerfile.copy @@ -1,5 +1,5 @@ ARG MET_BASE_REPO=met-base-unit-test -ARG MET_BASE_TAG=v3.1 +ARG MET_BASE_TAG=v3.2 FROM dtcenter/${MET_BASE_REPO}:${MET_BASE_TAG} MAINTAINER John Halley Gotway diff --git a/internal/test_unit/config/TCDiagConfig_ian b/internal/test_unit/config/TCDiagConfig_ian index 267a65d9dd..62a5c1bb5d 100644 --- a/internal/test_unit/config/TCDiagConfig_ian +++ b/internal/test_unit/config/TCDiagConfig_ian @@ -77,8 +77,8 @@ domain_info = [ // May be set separately in each data "field" array entry // regrid = { - method = NEAREST; - width = 1; + method = BILIN; + width = 2; vld_thresh = 0.5; shape = SQUARE; } diff --git a/internal/test_unit/xml/unit_pcp_combine.xml b/internal/test_unit/xml/unit_pcp_combine.xml index b2de557363..a49e220d79 100644 --- a/internal/test_unit/xml/unit_pcp_combine.xml +++ b/internal/test_unit/xml/unit_pcp_combine.xml @@ -376,4 +376,16 @@ + + &MET_BIN;/pcp_combine + \ + -add &DATA_DIR_MODEL;/grib2/ukv/ukv_agl_temperature_1.5_12.grib2 \ + 'name="TMP"; level="Z1.5"; lead_time="24";' \ + &OUTPUT_DIR;/pcp_combine/ukv_agl_temperature_1.5.nc + + + &OUTPUT_DIR;/pcp_combine/ukv_agl_temperature_1.5.nc + + + diff --git a/internal/test_unit/xml/unit_plot_data_plane.xml b/internal/test_unit/xml/unit_plot_data_plane.xml index 2337c7a705..5c56a389d8 100644 --- a/internal/test_unit/xml/unit_plot_data_plane.xml +++ b/internal/test_unit/xml/unit_plot_data_plane.xml @@ -536,6 +536,21 @@ + + &MET_BIN;/plot_data_plane + \ + &OUTPUT_DIR;/pcp_combine/ukv_agl_temperature_1.5.nc \ + &OUTPUT_DIR;/plot_data_plane/ukv_agl_temperature_laea_met_nc.ps \ + 'name="TMP_Z1.5"; level="(*,*)";' \ + -title "MET NetCDF LAEA 1.5m Temperature" \ + -v 1 + + + &OUTPUT_DIR;/plot_data_plane/ukv_agl_temperature_laea_met_nc.ps + + + + &MET_BIN;/plot_data_plane \ diff --git a/internal/test_unit/xml/unit_python.xml b/internal/test_unit/xml/unit_python.xml index f6e011dc0d..af782db022 100644 --- a/internal/test_unit/xml/unit_python.xml +++ b/internal/test_unit/xml/unit_python.xml @@ -115,6 +115,25 @@ + + + &MET_BIN;/plot_data_plane + + MET_PYTHON_EXE &MET_PYTHON_EXE; + + \ + PYTHON_NUMPY \ + &OUTPUT_DIR;/python/letter_numpy_0_to_missing.ps \ + 'name = "&MET_BASE;/python/examples/read_ascii_numpy.py &DATA_DIR_PYTHON;/letter.txt LETTER 0.0";' \ + -plot_range 0.0 255.0 \ + -title "Python enabled numpy plot_data_plane" \ + -v 1 + + + &OUTPUT_DIR;/python/letter_numpy_0_to_missing.ps + + + &MET_BIN;/plot_data_plane \ diff --git a/internal/test_util/basic/vx_config/test_config.cc b/internal/test_util/basic/vx_config/test_config.cc index 0d713d8c78..05d3581bad 100644 --- a/internal/test_util/basic/vx_config/test_config.cc +++ b/internal/test_util/basic/vx_config/test_config.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/internal/test_util/basic/vx_config/test_lookup.cc b/internal/test_util/basic/vx_config/test_lookup.cc index 5106add9df..8ec2dce12b 100644 --- a/internal/test_util/basic/vx_config/test_lookup.cc +++ b/internal/test_util/basic/vx_config/test_lookup.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/internal/test_util/basic/vx_config/test_lookup2.cc b/internal/test_util/basic/vx_config/test_lookup2.cc index e50a4866d6..cb2a1d2f52 100644 --- a/internal/test_util/basic/vx_config/test_lookup2.cc +++ b/internal/test_util/basic/vx_config/test_lookup2.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/internal/test_util/basic/vx_config/test_lookup3.cc b/internal/test_util/basic/vx_config/test_lookup3.cc index e8d36d3383..f708b74fee 100644 --- a/internal/test_util/basic/vx_config/test_lookup3.cc +++ b/internal/test_util/basic/vx_config/test_lookup3.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/internal/test_util/basic/vx_config/test_met_478.cc b/internal/test_util/basic/vx_config/test_met_478.cc index 8731ddfcb3..dfbd992260 100644 --- a/internal/test_util/basic/vx_config/test_met_478.cc +++ b/internal/test_util/basic/vx_config/test_met_478.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/internal/test_util/basic/vx_config/test_string.cc b/internal/test_util/basic/vx_config/test_string.cc index 12af038195..a29c4f0bdc 100644 --- a/internal/test_util/basic/vx_config/test_string.cc +++ b/internal/test_util/basic/vx_config/test_string.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/internal/test_util/basic/vx_config/test_string_then_config.cc b/internal/test_util/basic/vx_config/test_string_then_config.cc index e39d5cd0ce..3cc275c6b8 100644 --- a/internal/test_util/basic/vx_config/test_string_then_config.cc +++ b/internal/test_util/basic/vx_config/test_string_then_config.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/internal/test_util/basic/vx_config/test_thresh.cc b/internal/test_util/basic/vx_config/test_thresh.cc index a80f666e20..44677e6984 100644 --- a/internal/test_util/basic/vx_config/test_thresh.cc +++ b/internal/test_util/basic/vx_config/test_thresh.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/internal/test_util/basic/vx_config/test_user_func.cc b/internal/test_util/basic/vx_config/test_user_func.cc index 1dfdfa2c89..02fbe15773 100644 --- a/internal/test_util/basic/vx_config/test_user_func.cc +++ b/internal/test_util/basic/vx_config/test_user_func.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/internal/test_util/basic/vx_log/test_logger.cc b/internal/test_util/basic/vx_log/test_logger.cc index 56a0d6f426..5189efe1ea 100644 --- a/internal/test_util/basic/vx_log/test_logger.cc +++ b/internal/test_util/basic/vx_log/test_logger.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/internal/test_util/basic/vx_log/test_reg_exp.cc b/internal/test_util/basic/vx_log/test_reg_exp.cc index c60c16a581..8dd5e7b8b6 100644 --- a/internal/test_util/basic/vx_log/test_reg_exp.cc +++ b/internal/test_util/basic/vx_log/test_reg_exp.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/internal/test_util/basic/vx_util/test_add_rows.cc b/internal/test_util/basic/vx_util/test_add_rows.cc index 2071126b0e..1673cd4dd5 100644 --- a/internal/test_util/basic/vx_util/test_add_rows.cc +++ b/internal/test_util/basic/vx_util/test_add_rows.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/internal/test_util/basic/vx_util/test_ascii_header.cc b/internal/test_util/basic/vx_util/test_ascii_header.cc index 9fafb84158..707f2e1b14 100644 --- a/internal/test_util/basic/vx_util/test_ascii_header.cc +++ b/internal/test_util/basic/vx_util/test_ascii_header.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/internal/test_util/basic/vx_util/test_command_line.cc b/internal/test_util/basic/vx_util/test_command_line.cc index 49b1c9cc21..6d725b9702 100644 --- a/internal/test_util/basic/vx_util/test_command_line.cc +++ b/internal/test_util/basic/vx_util/test_command_line.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/internal/test_util/basic/vx_util/test_data_plane.cc b/internal/test_util/basic/vx_util/test_data_plane.cc index f0935dbebb..e2e45d134f 100644 --- a/internal/test_util/basic/vx_util/test_data_plane.cc +++ b/internal/test_util/basic/vx_util/test_data_plane.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/internal/test_util/basic/vx_util/test_table_float.cc b/internal/test_util/basic/vx_util/test_table_float.cc index 0222d1c31a..58786a01e7 100644 --- a/internal/test_util/basic/vx_util/test_table_float.cc +++ b/internal/test_util/basic/vx_util/test_table_float.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/internal/test_util/libcode/vx_data2d/dump_default_table.cc b/internal/test_util/libcode/vx_data2d/dump_default_table.cc index b55f3d5c23..c0b35bbf94 100644 --- a/internal/test_util/libcode/vx_data2d/dump_default_table.cc +++ b/internal/test_util/libcode/vx_data2d/dump_default_table.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/internal/test_util/libcode/vx_data2d/test_table_read.cc b/internal/test_util/libcode/vx_data2d/test_table_read.cc index 4f30ea6a08..f9108ea8f6 100644 --- a/internal/test_util/libcode/vx_data2d/test_table_read.cc +++ b/internal/test_util/libcode/vx_data2d/test_table_read.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/internal/test_util/libcode/vx_data2d_factory/test_factory.cc b/internal/test_util/libcode/vx_data2d_factory/test_factory.cc index 4abc7c325a..2bf5104a33 100644 --- a/internal/test_util/libcode/vx_data2d_factory/test_factory.cc +++ b/internal/test_util/libcode/vx_data2d_factory/test_factory.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/internal/test_util/libcode/vx_data2d_factory/test_is_grib.cc b/internal/test_util/libcode/vx_data2d_factory/test_is_grib.cc index 7a40331cbc..81fdee389a 100644 --- a/internal/test_util/libcode/vx_data2d_factory/test_is_grib.cc +++ b/internal/test_util/libcode/vx_data2d_factory/test_is_grib.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/internal/test_util/libcode/vx_data2d_grib/test_read_grib1.cc b/internal/test_util/libcode/vx_data2d_grib/test_read_grib1.cc index c148eab073..41ffc307d0 100644 --- a/internal/test_util/libcode/vx_data2d_grib/test_read_grib1.cc +++ b/internal/test_util/libcode/vx_data2d_grib/test_read_grib1.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/internal/test_util/libcode/vx_data2d_nc_cf/test_read_nccf.cc b/internal/test_util/libcode/vx_data2d_nc_cf/test_read_nccf.cc index 7b8b5aa660..9f5e2eff8e 100644 --- a/internal/test_util/libcode/vx_data2d_nc_cf/test_read_nccf.cc +++ b/internal/test_util/libcode/vx_data2d_nc_cf/test_read_nccf.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/internal/test_util/libcode/vx_data2d_nc_met/test_read_nc_met.cc b/internal/test_util/libcode/vx_data2d_nc_met/test_read_nc_met.cc index 2476dbe39b..ab278bda51 100644 --- a/internal/test_util/libcode/vx_data2d_nc_met/test_read_nc_met.cc +++ b/internal/test_util/libcode/vx_data2d_nc_met/test_read_nc_met.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/internal/test_util/libcode/vx_geodesy/test_spheroid.cc b/internal/test_util/libcode/vx_geodesy/test_spheroid.cc index 168f2a58ef..8127d1c63c 100644 --- a/internal/test_util/libcode/vx_geodesy/test_spheroid.cc +++ b/internal/test_util/libcode/vx_geodesy/test_spheroid.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/internal/test_util/libcode/vx_grid/test_grid_area.cc b/internal/test_util/libcode/vx_grid/test_grid_area.cc index b6cc4674f9..f0e450557e 100644 --- a/internal/test_util/libcode/vx_grid/test_grid_area.cc +++ b/internal/test_util/libcode/vx_grid/test_grid_area.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/internal/test_util/libcode/vx_nc_util/test_pressure_levels.cc b/internal/test_util/libcode/vx_nc_util/test_pressure_levels.cc index 4ede77c96e..4826f467de 100644 --- a/internal/test_util/libcode/vx_nc_util/test_pressure_levels.cc +++ b/internal/test_util/libcode/vx_nc_util/test_pressure_levels.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/internal/test_util/libcode/vx_physics/test_thermo.cc b/internal/test_util/libcode/vx_physics/test_thermo.cc index 7d2c2560a3..4b6cfa84fe 100644 --- a/internal/test_util/libcode/vx_physics/test_thermo.cc +++ b/internal/test_util/libcode/vx_physics/test_thermo.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/internal/test_util/libcode/vx_plot_util/test_map_region.cc b/internal/test_util/libcode/vx_plot_util/test_map_region.cc index a858f1cd86..a7cd736fb8 100644 --- a/internal/test_util/libcode/vx_plot_util/test_map_region.cc +++ b/internal/test_util/libcode/vx_plot_util/test_map_region.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/internal/test_util/libcode/vx_ps/test_ps.cc b/internal/test_util/libcode/vx_ps/test_ps.cc index f9645b59cc..ff6e819039 100644 --- a/internal/test_util/libcode/vx_ps/test_ps.cc +++ b/internal/test_util/libcode/vx_ps/test_ps.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/internal/test_util/libcode/vx_series_data/test_series_data.cc b/internal/test_util/libcode/vx_series_data/test_series_data.cc index 1cf0bac28e..513bb00aa3 100644 --- a/internal/test_util/libcode/vx_series_data/test_series_data.cc +++ b/internal/test_util/libcode/vx_series_data/test_series_data.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/internal/test_util/libcode/vx_solar/test_ra_dec.cc b/internal/test_util/libcode/vx_solar/test_ra_dec.cc index b2283b643e..f0d1391c38 100644 --- a/internal/test_util/libcode/vx_solar/test_ra_dec.cc +++ b/internal/test_util/libcode/vx_solar/test_ra_dec.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/internal/test_util/libcode/vx_tc_util/test_read.cc b/internal/test_util/libcode/vx_tc_util/test_read.cc index 3883bfc69b..7319be3b33 100644 --- a/internal/test_util/libcode/vx_tc_util/test_read.cc +++ b/internal/test_util/libcode/vx_tc_util/test_read.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/internal/test_util/libcode/vx_tc_util/test_read_prob.cc b/internal/test_util/libcode/vx_tc_util/test_read_prob.cc index c1c478a1cd..37423b0751 100644 --- a/internal/test_util/libcode/vx_tc_util/test_read_prob.cc +++ b/internal/test_util/libcode/vx_tc_util/test_read_prob.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/internal/test_util/libcode/vx_tc_util/test_read_rmw.cc b/internal/test_util/libcode/vx_tc_util/test_read_rmw.cc index ff813e27cb..59f002200c 100644 --- a/internal/test_util/libcode/vx_tc_util/test_read_rmw.cc +++ b/internal/test_util/libcode/vx_tc_util/test_read_rmw.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/internal/test_util/tools/other/mode_time_domain/test_velocity.cc b/internal/test_util/tools/other/mode_time_domain/test_velocity.cc index a38e70d2a7..7750013f39 100644 --- a/internal/test_util/tools/other/mode_time_domain/test_velocity.cc +++ b/internal/test_util/tools/other/mode_time_domain/test_velocity.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/scripts/python/examples/read_ascii_numpy.py b/scripts/python/examples/read_ascii_numpy.py index 5692472b10..342121f2ff 100644 --- a/scripts/python/examples/read_ascii_numpy.py +++ b/scripts/python/examples/read_ascii_numpy.py @@ -1,5 +1,6 @@ import os import sys +import numpy from met.dataplane import dataplane ########################################### @@ -67,33 +68,47 @@ def set_dataplane_attrs(): ## load the data into the numpy array ## -if len(sys.argv) != 3: - dataplane.quit("read_ascii_numpy.py -> Must specify exactly one input file and a name for the data.") +SCRIPT_NAME = "read_ascii_numpy.py ->" +if len(sys.argv) < 3: + dataplane.quit(f"{SCRIPT_NAME} Must specify exactly one input file and a name for the data.") +elif len(sys.argv) > 4: + dataplane.quit(f"{SCRIPT_NAME} Have not supported arguments [{sys.argv[4:]}]") # Read the input file as the first argument input_file = os.path.expandvars(sys.argv[1]) data_name = sys.argv[2] try: - log("Input File:\t" + repr(input_file)) - log("Data Name:\t" + repr(data_name)) + user_fill_value = None + try: + if len(sys.argv) > 3: + user_fill_value = float(sys.argv[3]) + except: + log(f"{SCRIPT_NAME} Ignored argument {sys.argv[3]}") + pass + + log(f"{SCRIPT_NAME} Input File:\t{repr(input_file)}") + log(f"{SCRIPT_NAME} Data Name:\t{repr(data_name)}") if os.path.exists(input_file): # read_2d_text_input() reads n by m text data and returns 2D numpy array met_data = dataplane.read_2d_text_input(input_file) if met_data is None: - dataplane.quit(f" Fail to build met_data from {input_file}") + dataplane.quit(f"{SCRIPT_NAME} Fail to build met_data from {input_file}") else: - log("Data Shape:\t" + repr(met_data.shape)) - log("Data Type:\t" + repr(met_data.dtype)) + log(f"{SCRIPT_NAME} Data Shape:\t{repr(met_data.shape)}") + log(f"{SCRIPT_NAME} Data Type:\t{repr(met_data.dtype)}") + if user_fill_value is not None: + met_data = numpy.ma.masked_values(met_data, user_fill_value) + log(f"{SCRIPT_NAME} Python Type:\t{type(met_data)}") else: - dataplane.quit(f"input {input_file} does exist!!!") + dataplane.quit(f"{SCRIPT_NAME} input {input_file} does exist!!!") except: import traceback traceback.print_exc() - dataplane.quit(f"Unknown error with {sys.argv[0]}: ") + dataplane.quit(f"{SCRIPT_NAME} Unknown error with {sys.argv[0]}: ") attrs = set_dataplane_attrs() -log("Attributes:\t" + repr(attrs)) +log(f"{SCRIPT_NAME} Attributes:\t{repr(attrs)}") # Sets fill_value if it exists at the dataplane #attrs['fill_value'] = 255 # for letter.txt diff --git a/scripts/python/met/logger.py b/scripts/python/met/logger.py index db58286e07..a85de36d1f 100644 --- a/scripts/python/met/logger.py +++ b/scripts/python/met/logger.py @@ -18,7 +18,7 @@ def append_error_prompt(msg): return f'{logger.ERROR_P}: {msg}' @staticmethod - def error_messageg(msg): + def error_message(msg): msgs = msg if isinstance(msg, list) else [msg] msgs.insert(0, '') msgs.append('') @@ -62,7 +62,7 @@ def get_met_fill_value(self): return met_base.MET_FILL_VALUE def error_msg(self, msg): - logger.error_messageg(msg) + logger.error_message(msg) def get_prompt(self): return met_base_tools.get_prompt() @@ -116,7 +116,7 @@ def convert_to_array(ndarray_data): for byte_data in ndarray_data: array_data.append(byte_data.decode("utf-8").rstrip()) elif isinstance(ndarray_data, (np.ma.MaskedArray, np.ma.core.MaskedArray)): - array_data = np.ma.getdata(ndarray_data, subok=False).tolist() + array_data = ndarray_data.filled(fill_value=-9999).tolist() elif isinstance(ndarray_data, np.ndarray): array_data = ndarray_data.tolist() else: @@ -126,7 +126,7 @@ def convert_to_array(ndarray_data): @staticmethod def convert_to_ndarray(array_data): if isinstance(array_data, (np.ma.MaskedArray, np.ma.core.MaskedArray)): - ndarray_data = np.ma.getdata(array_data, subok=False) + ndarray_data = array_data.filled(fill_value=-9999) elif isinstance(array_data, np.ndarray): ndarray_data = array_data else: diff --git a/scripts/python/met/point.py b/scripts/python/met/point.py index 624173c2a4..eb85c3711d 100644 --- a/scripts/python/met/point.py +++ b/scripts/python/met/point.py @@ -797,7 +797,7 @@ def convert_point_data(point_data, check_all_records=False, input_type='csv'): csv_point_data.check_csv_point_data(check_all_records) tmp_point_data = csv_point_data.get_point_data() else: - met_base.error_messageg(f'convert_point_data(() Not supported input type: {input_type}') + met_base.error_message(f'convert_point_data(() Not supported input type: {input_type}') return tmp_point_data def get_empty_point_obs(): diff --git a/scripts/python/tc_diag/compute_tc_diag.py b/scripts/python/tc_diag/compute_tc_diag.py index 66b1fef2c6..6a0523784e 100644 --- a/scripts/python/tc_diag/compute_tc_diag.py +++ b/scripts/python/tc_diag/compute_tc_diag.py @@ -85,6 +85,19 @@ def main(): land_filename = os.path.expandvars(args.land_file) data_filename = os.path.expandvars(args.data_file) + # Validate inputs + if not os.path.isfile(config_filename): + print("Error: Input Config File (" + config_filename + ") does not exist!") + sys.exit(1) + + if not os.path.isfile(land_filename): + print("Error: Input Land File (" + land_filename + ")does not exist!") + sys.exit(1) + + if not os.path.isfile(data_filename): + print("Error: Input Data File (" + data_filename + ") does not exist!") + sys.exit(1) + # Print verbose arguments if args.verbose: print("Python Script:\t" + os.path.expandvars(sys.argv[0])) diff --git a/scripts/python/tc_diag/config/post_resample.yml b/scripts/python/tc_diag/config/post_resample.yml index cbac0fa3e0..5ee8519c66 100644 --- a/scripts/python/tc_diag/config/post_resample.yml +++ b/scripts/python/tc_diag/config/post_resample.yml @@ -100,23 +100,25 @@ pressure_independent_computation_specs: callable: *div_vort_func output_vars: [850DVRG, 850VORT] kwargs: {u_name: *u_vert_name, v_name: *v_vert_name, level_hPa: 850, radius_km: *div_vort_max_km} + units: [/S, /S] div_vort_200: callable: *div_vort_func output_vars: [200DVRG, 200VORT] kwargs: {u_name: *u_vert_name, v_name: *v_vert_name, level_hPa: 200, radius_km: *div_vort_max_km} + units: [/S, /S] shear: batch_order: 1 callable: tc_diag_driver.met_diag_vars.shear output_vars: [SHR_MAG, SHR_HDG] - kwargs: {u_name: u, v_name: v, bottom_hPa: 850, top_hPa: 200} + kwargs: {u_name: U, v_name: V, bottom_hPa: 850, top_hPa: 200} unit_converters: [tc_diag_driver.met_post_process.mps_to_kt, pass] units: [KT, DEG] TGRD: batch_order: 1 callable: tc_diag_driver.met_diag_vars.temperature_gradient - kwargs: {u_name: u, v_name: v, bottom_hPa: 850, top_hPa: 700} + kwargs: {u_name: U, v_name: V, bottom_hPa: 850, top_hPa: 700} units: "10^7C/M" sounding_computation_specs: @@ -161,4 +163,4 @@ comment_format: | * 850VORT, 200DVRG averaged from {div_vort_min}-{div_vort_max} km around storm center [x10^7 /s, x10^7 /s] * * 850TANG averaged from {rad_tan_min}-{rad_tan_max} km around storm center [x10 m/s] * * T, R, Z, P averaged from {therm_min}-{therm_max} km around storm center [x10 C, %, dm, mb] * - * TPW averaged from {tpw_min}-{tpw_max} km around storm center [mm] * + * TPW averaged from {tpw_min}-{tpw_max} km around storm center [mm] * \ No newline at end of file diff --git a/scripts/python/tc_diag/config/post_resample_nest.yml b/scripts/python/tc_diag/config/post_resample_nest.yml index d2c397cbd3..fbe3255e55 100644 --- a/scripts/python/tc_diag/config/post_resample_nest.yml +++ b/scripts/python/tc_diag/config/post_resample_nest.yml @@ -100,23 +100,25 @@ pressure_independent_computation_specs: callable: *div_vort_func output_vars: [850DVRG, 850VORT] kwargs: {u_name: *u_vert_name, v_name: *v_vert_name, level_hPa: 850, radius_km: *div_vort_max_km} + units: [/S, /S] div_vort_200: callable: *div_vort_func output_vars: [200DVRG, 200VORT] kwargs: {u_name: *u_vert_name, v_name: *v_vert_name, level_hPa: 200, radius_km: *div_vort_max_km} + units: [/S, /S] shear: batch_order: 1 callable: tc_diag_driver.met_diag_vars.shear output_vars: [SHR_MAG, SHR_HDG] - kwargs: {u_name: u, v_name: v, bottom_hPa: 850, top_hPa: 200} + kwargs: {u_name: U, v_name: V, bottom_hPa: 850, top_hPa: 200} unit_converters: [tc_diag_driver.met_post_process.mps_to_kt, pass] units: [KT, DEG] TGRD: batch_order: 1 callable: tc_diag_driver.met_diag_vars.temperature_gradient - kwargs: {u_name: u, v_name: v, bottom_hPa: 850, top_hPa: 700} + kwargs: {u_name: U, v_name: V, bottom_hPa: 850, top_hPa: 700} units: "10^7C/M" sounding_computation_specs: @@ -161,4 +163,4 @@ comment_format: | * 850VORT, 200DVRG averaged from {div_vort_min}-{div_vort_max} km around storm center [x10^7 /s, x10^7 /s] * * 850TANG averaged from {rad_tan_min}-{rad_tan_max} km around storm center [x10 m/s] * * T, R, Z, P averaged from {therm_min}-{therm_max} km around storm center [x10 C, %, dm, mb] * - * TPW averaged from {tpw_min}-{tpw_max} km around storm center [mm] * + * TPW averaged from {tpw_min}-{tpw_max} km around storm center [mm] * \ No newline at end of file diff --git a/scripts/python/tc_diag/tc_diag_driver/__init__.py b/scripts/python/tc_diag/tc_diag_driver/__init__.py index 3e2f46a3a3..ae6db5f176 100644 --- a/scripts/python/tc_diag/tc_diag_driver/__init__.py +++ b/scripts/python/tc_diag/tc_diag_driver/__init__.py @@ -1 +1 @@ -__version__ = "0.9.0" +__version__ = "0.11.0" diff --git a/scripts/python/tc_diag/tc_diag_driver/computation_engine.py b/scripts/python/tc_diag/tc_diag_driver/computation_engine.py index 2e67698e61..b419ff0800 100644 --- a/scripts/python/tc_diag/tc_diag_driver/computation_engine.py +++ b/scripts/python/tc_diag/tc_diag_driver/computation_engine.py @@ -251,6 +251,21 @@ def get_result_names(computations: List[DiagComputation]) -> List[str]: return names +def get_all_result_units( + pressure_indedpendent: List[DiagComputation], sounding: List[DiagComputation] +) -> Tuple[List[str], List[str]]: + pi_var_units = get_result_units(pressure_indedpendent) + snd_var_units = get_result_units(sounding) + return pi_var_units, snd_var_units + + +def get_result_units(computations: List[DiagComputation]) -> List[str]: + units = [] + for c in computations: + units.extend(c.units) + return units + + def get_computation_batches( pressure_indedpendent: List[DiagComputation], sounding: List[DiagComputation] ) -> List[ComputationBatch]: diff --git a/scripts/python/tc_diag/tc_diag_driver/diag_vars.py b/scripts/python/tc_diag/tc_diag_driver/diag_vars.py index 1de8fe6ef1..37788c309d 100644 --- a/scripts/python/tc_diag/tc_diag_driver/diag_vars.py +++ b/scripts/python/tc_diag/tc_diag_driver/diag_vars.py @@ -10,7 +10,7 @@ import logging import pathlib import sys -from typing import Optional, TextIO, Tuple +from typing import Callable, Optional, TextIO, Tuple import numpy as np import pandas as pd @@ -27,45 +27,51 @@ def debug_cyl_grid_dump( - hour: int, - grib_dataset: xr.Dataset, - cylindrical_grid_interpolator: cg.CylindricalGridInterpolator, - output_filename: str, - grib_var_name: str, - level_hPa: Optional[int] = None, - unit_converter: str = None, - **_kwargs) -> float: + hour: int, + grib_dataset: xr.Dataset, + cylindrical_grid_interpolator: cg.CylindricalGridInterpolator, + output_filename: str, + grib_var_name: str, + level_hPa: Optional[int] = None, + unit_converter: str = None, + **_kwargs, +) -> float: LOGGER.info( "Started debug dump of %s converted to cylindrical grid in file: %s", - grib_var_name, output_filename) + grib_var_name, + output_filename, + ) data = _obtain_data_at_level(grib_dataset, grib_var_name, level_hPa) data = _convert(data, unit_converter) lerp = cylindrical_grid_interpolator data_on_grid = lerp(data) - out_fname = output_filename.format(grib_var_name=grib_var_name, - level_hPa=level_hPa, - hour=hour) + out_fname = output_filename.format( + grib_var_name=grib_var_name, level_hPa=level_hPa, hour=hour + ) data_vars = {grib_var_name: (["theta_radians", "radius_km"], data_on_grid)} theta_radians = lerp.theta_2d_radians[:, 0] radius_km = lerp.rad_2d_km[0, :] - ds = xr.Dataset(data_vars=data_vars, - coords=dict(theta_radians=theta_radians, - radius_km=radius_km)) + ds = xr.Dataset( + data_vars=data_vars, + coords=dict(theta_radians=theta_radians, radius_km=radius_km), + ) ds.to_netcdf(path=out_fname) LOGGER.info( "Finished debug dump of %s converted to cylindrical grid in file: %s", - grib_var_name, output_filename) + grib_var_name, + output_filename, + ) # Have to return a float. return np.nan -def _obtain_data_at_level(grib_dataset: xr.Dataset, - grib_var_name: str, - level_hPa: Optional[int] = None) -> np.ndarray: +def _obtain_data_at_level( + grib_dataset: xr.Dataset, grib_var_name: str, level_hPa: Optional[int] = None +) -> np.ndarray: if level_hPa is None: data = grib_dataset[grib_var_name].values else: @@ -73,8 +79,7 @@ def _obtain_data_at_level(grib_dataset: xr.Dataset, return data -def _convert(data: np.ndarray, - unit_converter: Optional[str] = None) -> np.ndarray: +def _convert(data: np.ndarray, unit_converter: Optional[str] = None) -> np.ndarray: if unit_converter is not None: uc = ce.get_callable_from_import_path(unit_converter) data = uc(data) @@ -83,71 +88,103 @@ def _convert(data: np.ndarray, def mean_in_radius_range( - grib_dataset: xr.Dataset, - cylindrical_grid_interpolator: cg.CylindricalGridInterpolator, - min_radius_km: float, - max_radius_km: float, - grib_var_name: str, - level_hPa: Optional[int] = None, - unit_converter: str = None, - **_kwargs) -> float: - LOGGER.info("Started mean in radius average: %s %s", grib_var_name, - str(level_hPa)) + grib_dataset: xr.Dataset, + cylindrical_grid_interpolator: cg.CylindricalGridInterpolator, + min_radius_km: float, + max_radius_km: float, + grib_var_name: str, + level_hPa: Optional[int] = None, + unit_converter: str = None, + **_kwargs, +) -> float: + LOGGER.info("Started mean in radius average: %s %s", grib_var_name, str(level_hPa)) data = _obtain_data_at_level(grib_dataset, grib_var_name, level_hPa) data = _convert(data, unit_converter) lerp = cylindrical_grid_interpolator data_on_grid = lerp(data) - mean = area_average(data_on_grid, lerp.rad_2d_km, min_radius_km, - max_radius_km) - LOGGER.info("Finished mean in radius average: %s %s", grib_var_name, - str(level_hPa)) + mean = area_average(data_on_grid, lerp.rad_2d_km, min_radius_km, max_radius_km) + LOGGER.info("Finished mean in radius average: %s %s", grib_var_name, str(level_hPa)) return mean -#TODO: Add unit tests, possible move to diag_lib -def area_average(data_on_grid: np.ndarray, radii_2d_km: np.ndarray, - min_radius_km: float, max_radius_km: float) -> float: +# TODO: Add unit tests, possible move to diag_lib +def area_average( + data_on_grid: np.ndarray, + radii_2d_km: np.ndarray, + min_radius_km: float, + max_radius_km: float, +) -> float: mask = (radii_2d_km >= min_radius_km) & (radii_2d_km <= max_radius_km) numerator = np.sum(data_on_grid[mask] * radii_2d_km[mask]) denominator = np.sum(radii_2d_km[mask]) return numerator / denominator -def track_row_lookup(track_row: pd.DataFrame, - column_name: str, - convert_to_0_360: bool = False, - **_kwargs): - LOGGER.info("Started track row lookup: %s convert_to_0_360: %d", - column_name, convert_to_0_360) +def track_row_lookup( + track_row: pd.DataFrame, column_name: str, convert_to_0_360: bool = False, **_kwargs +): + LOGGER.info( + "Started track row lookup: %s convert_to_0_360: %d", + column_name, + convert_to_0_360, + ) val = track_row[column_name][0] if convert_to_0_360: val %= 360 - LOGGER.info("Finished track row lookup: %s convert_to_0_360: %d val: %f", - column_name, convert_to_0_360, val) + LOGGER.info( + "Finished track row lookup: %s convert_to_0_360: %d val: %f", + column_name, + convert_to_0_360, + val, + ) return val -def shear(hour: int, results: hr_results.ForecastHourResults, u_name: str, - v_name: str, bottom_hPa: float, top_hPa: float, - **_kwargs) -> Tuple[float, float]: +def shear( + hour: int, + results: hr_results.ForecastHourResults, + u_name: str, + v_name: str, + bottom_hPa: float, + top_hPa: float, + uv_converter: Optional[Callable[[float], float]] = None, + **_kwargs, +) -> Tuple[float, float]: LOGGER.info( "Started shear calculations hour: %d u_name: %s v_name: %s bottom_hPa: %f top_hPa: %f", - hour, u_name, v_name, bottom_hPa, top_hPa) + hour, + u_name, + v_name, + bottom_hPa, + top_hPa, + ) u = _shear_component(hour, results, u_name, bottom_hPa, top_hPa) v = _shear_component(hour, results, v_name, bottom_hPa, top_hPa) + if uv_converter is not None: + u = uv_converter(u) + v = uv_converter(v) r, theta = _u_v_to_r_theta(u, v) LOGGER.info( "Finished shear calculations hour: %d u_name: %s v_name: %s bottom_hPa: %f top_hPa: %f", - hour, u_name, v_name, bottom_hPa, top_hPa) + hour, + u_name, + v_name, + bottom_hPa, + top_hPa, + ) return r, theta -def _shear_component(hour: int, results: hr_results.ForecastHourResults, - var_name: str, bottom_hPa: float, - top_hPa: float) -> float: +def _shear_component( + hour: int, + results: hr_results.ForecastHourResults, + var_name: str, + bottom_hPa: float, + top_hPa: float, +) -> float: at_all_levels = results.soundings[var_name].sel(forecast_hour=hour) at_bottom = at_all_levels.interp(level_hPa=bottom_hPa) at_top = at_all_levels.interp(level_hPa=top_hPa) @@ -172,13 +209,25 @@ def _u_v_to_r_theta(u: float, v: float) -> Tuple[float, float]: return r, theta -def temperature_gradient(hour: int, results: hr_results.ForecastHourResults, - u_name: str, v_name: str, bottom_hPa: int, - top_hPa: int, tc_lat: float, **_kwargs) -> float: - bottom_u, top_u = _component_at_levels(results, u_name, hour, bottom_hPa, - top_hPa) - bottom_v, top_v = _component_at_levels(results, v_name, hour, bottom_hPa, - top_hPa) +def temperature_gradient( + hour: int, + results: hr_results.ForecastHourResults, + u_name: str, + v_name: str, + bottom_hPa: int, + top_hPa: int, + tc_lat: float, + uv_converter: Optional[Callable[[float], float]] = None, + **_kwargs, +) -> float: + bottom_u, top_u = _component_at_levels(results, u_name, hour, bottom_hPa, top_hPa) + bottom_v, top_v = _component_at_levels(results, v_name, hour, bottom_hPa, top_hPa) + + if uv_converter is not None: + bottom_u = uv_converter(bottom_u) + top_u = uv_converter(top_u) + bottom_v = uv_converter(bottom_v) + top_v = uv_converter(top_v) f = 2.0 * 7.292e-5 * np.sin(tc_lat * 0.017453) r = 287.0 @@ -192,13 +241,15 @@ def temperature_gradient(hour: int, results: hr_results.ForecastHourResults, return tgrd -def _component_at_levels(results: hr_results.ForecastHourResults, - var_name: str, hour: int, bottom_hPa: int, - top_hPa: int) -> Tuple[float, float]: - bottom = results.soundings[var_name].sel(forecast_hour=hour, - level_hPa=bottom_hPa) - top = results.soundings[var_name].sel(forecast_hour=hour, - level_hPa=top_hPa) +def _component_at_levels( + results: hr_results.ForecastHourResults, + var_name: str, + hour: int, + bottom_hPa: int, + top_hPa: int, +) -> Tuple[float, float]: + bottom = results.soundings[var_name].sel(forecast_hour=hour, level_hPa=bottom_hPa) + top = results.soundings[var_name].sel(forecast_hour=hour, level_hPa=top_hPa) return bottom, top @@ -212,8 +263,8 @@ def always_missing(**_kwargs) -> float: @dataclasses.dataclass class LUTExtents: - """Class that stores distance to land LUT meta-data. - """ + """Class that stores distance to land LUT meta-data.""" + ll_lon: float ll_lat: float ur_lon: float @@ -236,6 +287,7 @@ class LandLUT: Bilinear interpolation will be performed on the values from the LUT. The interpolation will be performed across the date-line if necessary. """ + UNITS = "km" def __init__(self, distances: np.ndarray, extents: LUTExtents): @@ -265,11 +317,7 @@ def distance(self, lon: float, lat: float) -> float: w_0_0 = self._inverse_distance(lon, i, lat, j) w_0_1 = self._inverse_distance(lon, i_right, lat, j, wrap_dx=wrap_dx) w_1_0 = self._inverse_distance(lon, i, lat, j_up) - w_1_1 = self._inverse_distance(lon, - i_right, - lat, - j_up, - wrap_dx=wrap_dx) + w_1_1 = self._inverse_distance(lon, i_right, lat, j_up, wrap_dx=wrap_dx) weight_total = w_0_0 + w_0_1 + w_1_0 + w_1_1 w_0_0 /= weight_total @@ -286,12 +334,7 @@ def distance(self, lon: float, lat: float) -> float: return lerp_dist - def _inverse_distance(self, - lon: float, - i: int, - lat: float, - j: int, - wrap_dx=False): + def _inverse_distance(self, lon: float, i: int, lat: float, j: int, wrap_dx=False): if wrap_dx: dx = lon - (self.extents.ur_lon + self.extents.lon_spacing) else: @@ -308,8 +351,7 @@ def _inverse_distance(self, return 1 / np.sqrt(dx**2 + dy**2) -def read_land_lut_file( - lut_filename: pathlib.Path) -> Tuple[np.ndarray, LUTExtents]: +def read_land_lut_file(lut_filename: pathlib.Path) -> Tuple[np.ndarray, LUTExtents]: """Reads a simple ascii LUT of distances from land on a global grid. Args: @@ -333,8 +375,9 @@ def _get_header_info(header_line: str) -> LUTExtents: ll_lat, ur_lat, lat_spacing = map(float, header_tokens[4:7]) nx = int(header_tokens[3]) ny = int(header_tokens[7]) - extents = LUTExtents(ll_lon, ll_lat, ur_lon, ur_lat, nx, ny, lon_spacing, - lat_spacing) + extents = LUTExtents( + ll_lon, ll_lat, ur_lon, ur_lat, nx, ny, lon_spacing, lat_spacing + ) return extents @@ -369,40 +412,57 @@ def get_land_lut(land_lut_filename: pathlib.Path) -> LandLUT: return LandLUT(distances, extents) -def distance_to_land_lookup(land_lut: LandLUT, - hour: int, - track_row: pd.DataFrame, - lon_column_name: str = "lon", - lat_column_name: str = "lat", - **_kwargs) -> float: +def distance_to_land_lookup( + land_lut: LandLUT, + hour: int, + track_row: pd.DataFrame, + lon_column_name: str = "lon", + lat_column_name: str = "lat", + **_kwargs, +) -> float: LOGGER.info( "Started distance to land lookup for hour: %d using column names: %s, %s.", - hour, lon_column_name, lat_column_name) + hour, + lon_column_name, + lat_column_name, + ) lon = track_row_lookup(track_row, lon_column_name, convert_to_0_360=True) lat = track_row_lookup(track_row, lat_column_name) distance = land_lut.distance(lon, lat) LOGGER.info( "Finished distance to land lookup: %f for hour: %d using column names: %s, %s.", - distance, hour, lon_column_name, lat_column_name) + distance, + hour, + lon_column_name, + lat_column_name, + ) return distance -def storm_r_theta(model_track: pd.DataFrame, - hour: int, - model_time: dt.datetime, - time_delta_hours: int = 6, - lon_column_name: str = "lon", - lat_column_name: str = "lat", - tau_column_name: str = "tau", - time_column_name: str = "yyyymmddhh", - **_kwargs) -> Tuple[float, float]: +def storm_r_theta( + model_track: pd.DataFrame, + hour: int, + model_time: dt.datetime, + time_delta_hours: int = 6, + lon_column_name: str = "lon", + lat_column_name: str = "lat", + tau_column_name: str = "tau", + time_column_name: str = "yyyymmddhh", + **_kwargs, +) -> Tuple[float, float]: LOGGER.info( "Started storm r, theta calculation hour:%d, model_time:%s, " "time_delta_hours:%d, lon_column_name:%s, lat_column_name:%s, " - "tau_column_name:%s, time_column_name:%s", hour, model_time, - time_delta_hours, lon_column_name, lat_column_name, tau_column_name, - time_column_name) + "tau_column_name:%s, time_column_name:%s", + hour, + model_time, + time_delta_hours, + lon_column_name, + lat_column_name, + tau_column_name, + time_column_name, + ) mt_rows = model_track.loc[model_track[time_column_name] == model_time] min_tau = min(mt_rows[tau_column_name]) max_tau = max(mt_rows[tau_column_name]) @@ -422,10 +482,8 @@ def storm_r_theta(model_track: pd.DataFrame, upper_offset = 0 delta_t = time_delta_hours - lower_row = mt_rows.loc[mt_rows[tau_column_name] == hour + - lower_offset].iloc[0] - upper_row = mt_rows.loc[mt_rows[tau_column_name] == hour + - upper_offset].iloc[0] + lower_row = mt_rows.loc[mt_rows[tau_column_name] == hour + lower_offset].iloc[0] + upper_row = mt_rows.loc[mt_rows[tau_column_name] == hour + upper_offset].iloc[0] lower_lon = lower_row[lon_column_name] % 360 lower_lat = lower_row[lat_column_name] @@ -444,52 +502,79 @@ def storm_r_theta(model_track: pd.DataFrame, LOGGER.info( "Finished storm r:%f, theta:%f calculation hour:%d, model_time:%s, " "time_delta_hours:%d, lon_column_name:%s, lat_column_name:%s, " - "tau_column_name:%s, time_column_name:%s", r, theta, hour, model_time, - time_delta_hours, lon_column_name, lat_column_name, tau_column_name, - time_column_name) + "tau_column_name:%s, time_column_name:%s", + r, + theta, + hour, + model_time, + time_delta_hours, + lon_column_name, + lat_column_name, + tau_column_name, + time_column_name, + ) return r, theta def radial_and_tangential_area_average( - grib_dataset: xr.Dataset, - cylindrical_grid_interpolator: cg.CylindricalGridInterpolator, - u_name: str, v_name: str, level_hPa: int, min_radius_km: float, - max_radius_km: float, **_kwargs) -> Tuple[float, float]: + grib_dataset: xr.Dataset, + cylindrical_grid_interpolator: cg.CylindricalGridInterpolator, + u_name: str, + v_name: str, + level_hPa: int, + min_radius_km: float, + max_radius_km: float, + **_kwargs, +) -> Tuple[float, float]: """Computes area average of azimuthally averaged radial & tangential winds.""" radial_azavg, tan_azavg, radii = _gen_azimuthal_avg_of_radial_tan_winds( - grib_dataset, cylindrical_grid_interpolator, u_name, v_name, level_hPa) + grib_dataset, cylindrical_grid_interpolator, u_name, v_name, level_hPa + ) # Area average of the azimuthal averages - radial_radius_avg = area_average(radial_azavg, radii, min_radius_km, - max_radius_km) - tan_radius_avg = area_average(tan_azavg, radii, min_radius_km, - max_radius_km) + radial_radius_avg = area_average(radial_azavg, radii, min_radius_km, max_radius_km) + tan_radius_avg = area_average(tan_azavg, radii, min_radius_km, max_radius_km) return radial_radius_avg, tan_radius_avg def divergence_vorticity( - grib_dataset: xr.Dataset, - cylindrical_grid_interpolator: cg.CylindricalGridInterpolator, - u_name: str, v_name: str, level_hPa: int, radius_km: float, - **_kwargs) -> Tuple[float]: + grib_dataset: xr.Dataset, + cylindrical_grid_interpolator: cg.CylindricalGridInterpolator, + u_name: str, + v_name: str, + level_hPa: int, + radius_km: float, + **_kwargs, +) -> Tuple[float]: LOGGER.info( "Started computing divergence and vorticity u_name:%s, v_name:%s, level_hPa:%d, radius_km:%f", - u_name, v_name, level_hPa, radius_km) + u_name, + v_name, + level_hPa, + radius_km, + ) radial_azavg, tan_azavg, radii = _gen_azimuthal_avg_of_radial_tan_winds( - grib_dataset, cylindrical_grid_interpolator, u_name, v_name, level_hPa) + grib_dataset, cylindrical_grid_interpolator, u_name, v_name, level_hPa + ) - divergence, vorticity = _div_vort(radii, radius_km, radial_azavg, - tan_azavg) + divergence, vorticity = _div_vort(radii, radius_km, radial_azavg, tan_azavg) LOGGER.info( "Finished computing divergence:%f and vorticity:%f u_name:%s, v_name:%s, level_hPa:%d, radius_km:%f", - divergence, vorticity, u_name, v_name, level_hPa, radius_km) + divergence, + vorticity, + u_name, + v_name, + level_hPa, + radius_km, + ) return divergence, vorticity -def _div_vort(radii: np.ndarray, radius: float, radial_azavg: np.ndarray, - tan_azavg: np.ndarray) -> Tuple[float, float]: +def _div_vort( + radii: np.ndarray, radius: float, radial_azavg: np.ndarray, tan_azavg: np.ndarray +) -> Tuple[float, float]: closest_radius_km, radius_index = _nearest_radius(radii, radius) radius_m = closest_radius_km * 1000 @@ -499,8 +584,7 @@ def _div_vort(radii: np.ndarray, radius: float, radial_azavg: np.ndarray, return divergence, vorticity -def _nearest_radius(radii: np.ndarray, - desired_radius: float) -> Tuple[float, int]: +def _nearest_radius(radii: np.ndarray, desired_radius: float) -> Tuple[float, int]: if np.nanmax(radii) < desired_radius: raise ValueError( f"Desired radius: {desired_radius} larger than max radius: {np.max(radii)}" @@ -513,10 +597,12 @@ def _nearest_radius(radii: np.ndarray, def _gen_azimuthal_avg_of_radial_tan_winds( - grib_dataset: xr.Dataset, - cylindrical_grid_interpolator: cg.CylindricalGridInterpolator, - u_name: str, v_name: str, - level_hPa: int) -> Tuple[np.ndarray, np.ndarray, np.ndarray]: + grib_dataset: xr.Dataset, + cylindrical_grid_interpolator: cg.CylindricalGridInterpolator, + u_name: str, + v_name: str, + level_hPa: int, +) -> Tuple[np.ndarray, np.ndarray, np.ndarray]: """Produces azimuthally averaged radial & tangential winds from grib u,v""" # Interpolate u, v to the desired pressure level u = grib_dataset[u_name].interp(level=level_hPa).values @@ -527,8 +613,7 @@ def _gen_azimuthal_avg_of_radial_tan_winds( u_cyl = lerp(u) v_cyl = lerp(v) - radial_azavg, tan_azavg = _rad_tan_azavg(u_cyl, v_cyl, - lerp.theta_2d_radians, 0) + radial_azavg, tan_azavg = _rad_tan_azavg(u_cyl, v_cyl, lerp.theta_2d_radians, 0) # Get the 1D array of radii corresponding to the azimuthally averaged data. radii = lerp.rad_2d_km[0, :] @@ -536,14 +621,12 @@ def _gen_azimuthal_avg_of_radial_tan_winds( return radial_azavg, tan_azavg, radii -def _rad_tan_azavg(u_cyl: np.ndarray, v_cyl: np.ndarray, - theta_2d_radians: np.ndarray, - avg_axis: int) -> Tuple[np.ndarray, np.ndarray]: +def _rad_tan_azavg( + u_cyl: np.ndarray, v_cyl: np.ndarray, theta_2d_radians: np.ndarray, avg_axis: int +) -> Tuple[np.ndarray, np.ndarray]: # Convert to radial and tangential wind - radial = u_cyl * np.cos(theta_2d_radians) + v_cyl * np.sin( - theta_2d_radians) - tangential = -u_cyl * np.sin(theta_2d_radians) + v_cyl * np.cos( - theta_2d_radians) + radial = u_cyl * np.cos(theta_2d_radians) + v_cyl * np.sin(theta_2d_radians) + tangential = -u_cyl * np.sin(theta_2d_radians) + v_cyl * np.cos(theta_2d_radians) # Compute the azimuthal averages radial_azavg = cg.azimuthal_average(radial, axis=avg_axis) @@ -552,14 +635,21 @@ def _rad_tan_azavg(u_cyl: np.ndarray, v_cyl: np.ndarray, return radial_azavg, tan_azavg -def average_rmw(grib_dataset: xr.Dataset, - cylindrical_grid_interpolator: cg.CylindricalGridInterpolator, - u_surface_name: str, v_surface_name: str, radius_km: float, - **_kwargs) -> float: +def average_rmw( + grib_dataset: xr.Dataset, + cylindrical_grid_interpolator: cg.CylindricalGridInterpolator, + u_surface_name: str, + v_surface_name: str, + radius_km: float, + **_kwargs, +) -> float: LOGGER.info( "Starting calculation of average rmw u_surface_name:%s " - "v_surface_name:%s radius_km:%f", u_surface_name, v_surface_name, - radius_km) + "v_surface_name:%s radius_km:%f", + u_surface_name, + v_surface_name, + radius_km, + ) u = grib_dataset[u_surface_name].values v = grib_dataset[v_surface_name].values @@ -567,18 +657,22 @@ def average_rmw(grib_dataset: xr.Dataset, u_cyl = lerp(u) v_cyl = lerp(v) - avg_rmw_km = post_cyl_avg_rmw(u_cyl, v_cyl, radius_km, - lerp.rad_2d_km[0, :]) + avg_rmw_km = post_cyl_avg_rmw(u_cyl, v_cyl, radius_km, lerp.rad_2d_km[0, :]) LOGGER.info( "Finished calculation of average rmw:%f u_surface_name:%s " - "v_surface_name:%s radius_km:%f", avg_rmw_km, u_surface_name, - v_surface_name, radius_km) + "v_surface_name:%s radius_km:%f", + avg_rmw_km, + u_surface_name, + v_surface_name, + radius_km, + ) return avg_rmw_km -def post_cyl_avg_rmw(u_cyl: np.ndarray, v_cyl: np.ndarray, radius_km: float, - radii_1d_km: np.ndarray) -> float: +def post_cyl_avg_rmw( + u_cyl: np.ndarray, v_cyl: np.ndarray, radius_km: float, radii_1d_km: np.ndarray +) -> float: speed = np.sqrt(u_cyl**2 + v_cyl**2) # Figure out the index of the largest radius <= radius_km @@ -590,11 +684,11 @@ def post_cyl_avg_rmw(u_cyl: np.ndarray, v_cyl: np.ndarray, radius_km: float, selected_i = i # Slice the speed array so that it no longer includes data for radii > radius_km - speed = speed[:, 0:selected_i + 1] + speed = speed[:, 0 : selected_i + 1] # Get the radius of the max speed at each azimuth max_wind_indices = np.nanargmax(speed, axis=1) rmw_at_each_azimuth = radii_1d_km[max_wind_indices] avg_rmw_km = np.nanmean(rmw_at_each_azimuth) - return avg_rmw_km \ No newline at end of file + return avg_rmw_km diff --git a/scripts/python/tc_diag/tc_diag_driver/met_diag_vars.py b/scripts/python/tc_diag/tc_diag_driver/met_diag_vars.py index 64b3efc0d1..bad59c5844 100644 --- a/scripts/python/tc_diag/tc_diag_driver/met_diag_vars.py +++ b/scripts/python/tc_diag/tc_diag_driver/met_diag_vars.py @@ -5,7 +5,7 @@ import pandas as pd import xarray as xr -from tc_diag_driver import diag_vars +from tc_diag_driver import diag_vars, met_post_process from tc_diag_driver import results as fcresults SHEAR_THETA_UNITS = "degrees" @@ -24,8 +24,9 @@ def kwarg_lookup(lookup_name: str, **kwargs: Dict[str, Any]) -> float: return kwargs[lookup_name] -def dataset_lookup(input_data: xr.Dataset, var_name: str, - **_kwargs: Dict[str, Any]) -> float: +def dataset_lookup( + input_data: xr.Dataset, var_name: str, **_kwargs: Dict[str, Any] +) -> float: var = input_data[var_name][0] return var @@ -34,44 +35,51 @@ def _with_units(data: float, units: str) -> xr.DataArray: return xr.DataArray(data=data, attrs={"units": units}) -def average_rmw(input_data: xr.Dataset, radii_1d: xr.DataArray, - u_surface_name: str, v_surface_name: str, radius_km: float, - **_kwargs: Dict[str, Any]) -> xr.DataArray: +def average_rmw( + input_data: xr.Dataset, + radii_1d: xr.DataArray, + u_surface_name: str, + v_surface_name: str, + radius_km: float, + **_kwargs: Dict[str, Any] +) -> xr.DataArray: usurf = input_data[u_surface_name][0] vsurf = input_data[v_surface_name][0] # The function expects usurf and vsurf to be azimuth x radii, but the NC # files use the opposite convention, so transposing the arrays is necessary. - avg_rmw = diag_vars.post_cyl_avg_rmw(usurf.data.T, vsurf.data.T, radius_km, - radii_1d.data) + avg_rmw = diag_vars.post_cyl_avg_rmw( + usurf.data.T, vsurf.data.T, radius_km, radii_1d.data + ) units = radii_1d.attrs["units"] da_avg_rmw = _with_units(avg_rmw, units) return da_avg_rmw -def area_average(input_data: xr.Dataset, - radii_2d: np.ndarray, - min_radius_km: float, - max_radius_km: float, - var_name: str, - level_hPa: Optional[int] = None, - levels_dimen: Optional[str] = None, - **_kwargs: Dict[str, Any]) -> xr.DataArray: +def area_average( + input_data: xr.Dataset, + radii_2d: np.ndarray, + min_radius_km: float, + max_radius_km: float, + var_name: str, + level_hPa: Optional[int] = None, + levels_dimen: Optional[str] = None, + **_kwargs: Dict[str, Any] +) -> xr.DataArray: if level_hPa is None: var = input_data[var_name][0] else: var = input_data[var_name].sel(**{levels_dimen: level_hPa})[0] - avg = diag_vars.area_average(var.data, radii_2d, min_radius_km, - max_radius_km) + avg = diag_vars.area_average(var.data, radii_2d, min_radius_km, max_radius_km) units = var.attrs["units"] da_avg = _with_units(avg, units) return da_avg -def distance_to_land_lookup(lon: float, lat: float, - land_lut: diag_vars.LandLUT, - **_kwargs: Dict[str, Any]) -> xr.DataArray: +def distance_to_land_lookup( + lon: float, lat: float, land_lut: diag_vars.LandLUT, **_kwargs: Dict[str, Any] +) -> xr.DataArray: distance_km = land_lut.distance(lon, lat) units = land_lut.UNITS da_distance = _with_units(distance_km, units) @@ -79,28 +87,38 @@ def distance_to_land_lookup(lon: float, lat: float, def storm_r_theta( - track: pd.DataFrame, forecast_hour: int, init_time: dt.datetime, - **_kwargs: Dict[str, Any]) -> Tuple[xr.DataArray, xr.DataArray]: - storm_r, storm_theta = diag_vars.storm_r_theta(track, forecast_hour, - init_time) + track: pd.DataFrame, + forecast_hour: int, + init_time: dt.datetime, + **_kwargs: Dict[str, Any] +) -> Tuple[xr.DataArray, xr.DataArray]: + storm_r, storm_theta = diag_vars.storm_r_theta(track, forecast_hour, init_time) da_r = _with_units(storm_r, STORM_R_UNITS) da_theta = _with_units(storm_theta, STORM_THETA_UNITS) return da_r, da_theta def radial_and_tangential_area_average( - input_data: xr.Dataset, radii_1d: xr.DataArray, theta_2d: np.ndarray, - u_name: str, v_name: str, level_hPa: int, min_radius_km: float, - max_radius_km: float, - **_kwargs: Dict[str, Any]) -> Tuple[xr.DataArray, xr.DataArray]: + input_data: xr.Dataset, + radii_1d: xr.DataArray, + theta_2d: np.ndarray, + u_name: str, + v_name: str, + level_hPa: int, + min_radius_km: float, + max_radius_km: float, + **_kwargs: Dict[str, Any] +) -> Tuple[xr.DataArray, xr.DataArray]: u = input_data[u_name] v = input_data[v_name] rad_azavg, tan_azavg = _rad_tan(level_hPa, u, v, theta_2d) - radial_avg = diag_vars.area_average(rad_azavg, radii_1d.values, - min_radius_km, max_radius_km) - tan_avg = diag_vars.area_average(tan_azavg, radii_1d.values, min_radius_km, - max_radius_km) + radial_avg = diag_vars.area_average( + rad_azavg, radii_1d.values, min_radius_km, max_radius_km + ) + tan_avg = diag_vars.area_average( + tan_azavg, radii_1d.values, min_radius_km, max_radius_km + ) units = u.attrs["units"] da_radial = _with_units(radial_avg, units) da_tan = _with_units(tan_avg, units) @@ -108,8 +126,9 @@ def radial_and_tangential_area_average( return da_radial, da_tan -def _rad_tan(level_hPa: int, u: xr.DataArray, v: xr.DataArray, - theta_2d: np.ndarray) -> Tuple[np.ndarray, np.ndarray]: +def _rad_tan( + level_hPa: int, u: xr.DataArray, v: xr.DataArray, theta_2d: np.ndarray +) -> Tuple[np.ndarray, np.ndarray]: u_cyl = u.interp(pressure=level_hPa).values[0, :, :] v_cyl = v.interp(pressure=level_hPa).values[0, :, :] @@ -117,15 +136,22 @@ def _rad_tan(level_hPa: int, u: xr.DataArray, v: xr.DataArray, return rad_azavg, tan_azavg -def div_vort(input_data: xr.Dataset, level_hPa: int, u_name: xr.DataArray, - v_name: xr.DataArray, theta_2d: np.ndarray, - radii_1d: xr.DataArray, radius_km: float, - **_kwargs: Dict[str, Any]) -> Tuple[xr.DataArray, xr.DataArray]: +def div_vort( + input_data: xr.Dataset, + level_hPa: int, + u_name: xr.DataArray, + v_name: xr.DataArray, + theta_2d: np.ndarray, + radii_1d: xr.DataArray, + radius_km: float, + **_kwargs: Dict[str, Any] +) -> Tuple[xr.DataArray, xr.DataArray]: u = input_data[u_name] v = input_data[v_name] rad_azavg, tan_azavg = _rad_tan(level_hPa, u, v, theta_2d) - divergence, vorticity = diag_vars._div_vort(radii_1d, radius_km, rad_azavg, - tan_azavg) + divergence, vorticity = diag_vars._div_vort( + radii_1d, radius_km, rad_azavg, tan_azavg + ) divergence *= DIV_VORT_SCALE vorticity *= DIV_VORT_SCALE @@ -136,11 +162,28 @@ def div_vort(input_data: xr.Dataset, level_hPa: int, u_name: xr.DataArray, return da_div, da_vort -def shear(forecast_hour: int, results: fcresults.ForecastHourResults, - u_name: str, v_name: str, bottom_hPa: int, top_hPa: int, - **_kwargs: Dict[str, Any]) -> Tuple[xr.DataArray, xr.DataArray]: - shear_r, shear_theta = diag_vars.shear(forecast_hour, results, u_name, - v_name, bottom_hPa, top_hPa) +def shear( + forecast_hour: int, + results: fcresults.ForecastHourResults, + u_name: str, + v_name: str, + bottom_hPa: int, + top_hPa: int, + should_convert_uv_from_10kt_to_mps=True, + **_kwargs: Dict[str, Any] +) -> Tuple[xr.DataArray, xr.DataArray]: + converter = None + if should_convert_uv_from_10kt_to_mps: + converter = met_post_process.ten_kt_to_mps + shear_r, shear_theta = diag_vars.shear( + forecast_hour, + results, + u_name, + v_name, + bottom_hPa, + top_hPa, + uv_converter=converter, + ) r_units = results.soundings[u_name].attrs["units"] da_r = _with_units(shear_r, r_units) @@ -149,13 +192,31 @@ def shear(forecast_hour: int, results: fcresults.ForecastHourResults, return da_r, da_theta -def temperature_gradient(forecast_hour: int, - results: fcresults.ForecastHourResults, u_name: str, - v_name: str, bottom_hPa: int, top_hPa: int, - lat: float, **_kwargs: Dict[str, - Any]) -> xr.DataArray: - grad = diag_vars.temperature_gradient(forecast_hour, results, u_name, - v_name, bottom_hPa, top_hPa, lat) +def temperature_gradient( + forecast_hour: int, + results: fcresults.ForecastHourResults, + u_name: str, + v_name: str, + bottom_hPa: int, + top_hPa: int, + lat: float, + should_convert_uv_from_10kt_to_mps=True, + **_kwargs: Dict[str, Any] +) -> xr.DataArray: + converter = None + if should_convert_uv_from_10kt_to_mps: + converter = met_post_process.ten_kt_to_mps + + grad = diag_vars.temperature_gradient( + forecast_hour, + results, + u_name, + v_name, + bottom_hPa, + top_hPa, + lat, + uv_converter=converter, + ) grad *= TGRD_SCALE da_grad = _with_units(grad, TGRD_UNITS) diff --git a/scripts/python/tc_diag/tc_diag_driver/met_post_process.py b/scripts/python/tc_diag/tc_diag_driver/met_post_process.py index 34ebf1be21..c662279e01 100644 --- a/scripts/python/tc_diag/tc_diag_driver/met_post_process.py +++ b/scripts/python/tc_diag/tc_diag_driver/met_post_process.py @@ -12,6 +12,10 @@ def mps_to_10kt(value: float) -> float: return scale10(mps_to_kt(value)) +def ten_kt_to_mps(value: float) -> float: + return (value / 10.0) / MPS_TO_KT + + def k_to_10c(value: float) -> float: return (value + KELVIN_TO_CELCIUS) * 10 diff --git a/scripts/python/tc_diag/tc_diag_driver/post_resample_driver.py b/scripts/python/tc_diag/tc_diag_driver/post_resample_driver.py index 252e54c91e..445470ca52 100644 --- a/scripts/python/tc_diag/tc_diag_driver/post_resample_driver.py +++ b/scripts/python/tc_diag/tc_diag_driver/post_resample_driver.py @@ -203,8 +203,14 @@ def _prep_diag_calculations( snd_comps = ce.diag_computations_from_entry(sounding_computation_specs) pi_result_names, snd_result_names = ce.get_all_result_names(pi_comps, snd_comps) + pi_result_units, snd_result_units = ce.get_all_result_units(pi_comps, snd_comps) results = fcresults.ForecastHourResults( - [forecast_hour], levels_hPa, pi_result_names, snd_result_names + [forecast_hour], + levels_hPa, + pi_result_names, + snd_result_names, + pi_result_units, + snd_result_units, ) batches = ce.get_computation_batches(pi_comps, snd_comps) diff --git a/scripts/python/tc_diag/tc_diag_driver/results.py b/scripts/python/tc_diag/tc_diag_driver/results.py index 32552bd4ce..b81612f87c 100644 --- a/scripts/python/tc_diag/tc_diag_driver/results.py +++ b/scripts/python/tc_diag/tc_diag_driver/results.py @@ -5,58 +5,100 @@ class ForecastHourResults: - """Stores diag var results for a given forecast hour. - """ - def __init__(self, forecast_hours: List[int], levels_hPa: List[int], - pressure_independent_var_names: List[str], - sounding_var_names: List[str]): + """Stores diag var results for a given forecast hour.""" + + def __init__( + self, + forecast_hours: List[int], + levels_hPa: List[int], + pressure_independent_var_names: List[str], + sounding_var_names: List[str], + pressure_independent_units: Optional[List[str]] = None, + sounding_units: Optional[List[str]] = None, + ): self.forecast_hours = forecast_hours self.levels_hPa = levels_hPa soundings_shape = (len(forecast_hours), len(levels_hPa)) - soundings_coords = { - "forecast_hour": forecast_hours, - "level_hPa": levels_hPa - } - self.soundings = self._init_dataset(soundings_shape, soundings_coords, - ("forecast_hour", "level_hPa"), - sounding_var_names) + soundings_coords = {"forecast_hour": forecast_hours, "level_hPa": levels_hPa} + self.soundings = self._init_dataset( + soundings_shape, + soundings_coords, + ("forecast_hour", "level_hPa"), + sounding_var_names, + ) # All the other variables just have forecast hour as the coordinates # For convenience - hour_results_shape = (len(forecast_hours)) + hour_results_shape = len(forecast_hours) hour_results_coords = {"forecast_hour": forecast_hours} self.pressure_independent = self._init_dataset( - hour_results_shape, hour_results_coords, ("forecast_hour"), - pressure_independent_var_names) - - def _init_dataset(self, shape: Tuple[int], coords: Dict["str", List[int]], - dims: List[str], var_names: List[str]) -> xr.Dataset: + hour_results_shape, + hour_results_coords, + ("forecast_hour"), + pressure_independent_var_names, + ) + + if pressure_independent_units is not None: + self._add_predefined_units( + self.pressure_independent, + pressure_independent_var_names, + pressure_independent_units, + ) + + if sounding_units is not None: + self._add_predefined_units( + self.soundings, sounding_var_names, sounding_units + ) + + def _add_predefined_units( + self, ds: xr.Dataset, names: List[str], units: List[str] + ) -> None: + if len(names) != len(units): + raise ValueError( + f"Length of names: {len(names)} does not match units: {len(units)}" + ) + + for name, unit in zip(names, units): + if unit is None: + continue + + ds[name].attrs["units"] = unit + + def _init_dataset( + self, + shape: Tuple[int], + coords: Dict["str", List[int]], + dims: List[str], + var_names: List[str], + ) -> xr.Dataset: data_arrays = {} for var_name in var_names: empty_array = np.full(shape, np.nan) - da = xr.DataArray(empty_array, - name=var_name, - dims=dims, - coords=coords) + da = xr.DataArray(empty_array, name=var_name, dims=dims, coords=coords) data_arrays[var_name] = da return xr.Dataset(data_vars=data_arrays, coords=coords) - def add_pressure_independent_result(self, - var_name: str, - hour: int, - result: Union[float, xr.DataArray], - units: Optional[str] = None) -> None: + def add_pressure_independent_result( + self, + var_name: str, + hour: int, + result: Union[float, xr.DataArray], + units: Optional[str] = None, + ) -> None: da = self.pressure_independent[var_name] self._add_units(da, result, units) da.loc[hour] = result - def _should_add_units(self, array: xr.DataArray, - result: Union[float, xr.DataArray], - provided_units: Optional[str]) -> bool: + def _should_add_units( + self, + array: xr.DataArray, + result: Union[float, xr.DataArray], + provided_units: Optional[str], + ) -> bool: if not hasattr(array, "attrs"): return False @@ -74,20 +116,26 @@ def _should_add_units(self, array: xr.DataArray, return True - def add_sounding_result(self, - var_name: str, - hour: int, - level_hPa: int, - result: float, - units: Optional[str] = None) -> None: + def add_sounding_result( + self, + var_name: str, + hour: int, + level_hPa: int, + result: float, + units: Optional[str] = None, + ) -> None: da = self.soundings[var_name] self._add_units(da, result, units) da.loc[hour, level_hPa] = result - def _add_units(self, array: xr.DataArray, - result: Union[float, xr.DataArray], units: Optional[str]): + def _add_units( + self, + array: xr.DataArray, + result: Union[float, xr.DataArray], + units: Optional[str], + ): if self._should_add_units(array, result, units): if units is not None: array.attrs["units"] = units diff --git a/src/basic/enum_to_string/code.cc b/src/basic/enum_to_string/code.cc index d9d7ee84ae..93f2b1e6c0 100644 --- a/src/basic/enum_to_string/code.cc +++ b/src/basic/enum_to_string/code.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/enum_to_string/code.h b/src/basic/enum_to_string/code.h index 3b978669f1..efde17c47e 100644 --- a/src/basic/enum_to_string/code.h +++ b/src/basic/enum_to_string/code.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/enum_to_string/enum.tab.h b/src/basic/enum_to_string/enum.tab.h index 2835702b38..dc366102cd 100644 --- a/src/basic/enum_to_string/enum.tab.h +++ b/src/basic/enum_to_string/enum.tab.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/enum_to_string/enum_to_string.cc b/src/basic/enum_to_string/enum_to_string.cc index 0045f23735..7760d47c26 100644 --- a/src/basic/enum_to_string/enum_to_string.cc +++ b/src/basic/enum_to_string/enum_to_string.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/enum_to_string/enum_to_string.h b/src/basic/enum_to_string/enum_to_string.h index 254acd402d..16ed9c34d7 100644 --- a/src/basic/enum_to_string/enum_to_string.h +++ b/src/basic/enum_to_string/enum_to_string.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/enum_to_string/info.cc b/src/basic/enum_to_string/info.cc index 224ea9df07..af5e9d4f2e 100644 --- a/src/basic/enum_to_string/info.cc +++ b/src/basic/enum_to_string/info.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/enum_to_string/info.h b/src/basic/enum_to_string/info.h index 644337e4ca..fe18444827 100644 --- a/src/basic/enum_to_string/info.h +++ b/src/basic/enum_to_string/info.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/enum_to_string/scope.cc b/src/basic/enum_to_string/scope.cc index 7f0734f651..fc69bddf92 100644 --- a/src/basic/enum_to_string/scope.cc +++ b/src/basic/enum_to_string/scope.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/enum_to_string/scope.h b/src/basic/enum_to_string/scope.h index 4e1467c8a0..ee27397451 100644 --- a/src/basic/enum_to_string/scope.h +++ b/src/basic/enum_to_string/scope.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_cal/date_to_mjd.cc b/src/basic/vx_cal/date_to_mjd.cc index 7891d0650e..bf69f24ea1 100644 --- a/src/basic/vx_cal/date_to_mjd.cc +++ b/src/basic/vx_cal/date_to_mjd.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_cal/day_dif.cc b/src/basic/vx_cal/day_dif.cc index 4f1a237beb..53b6d0b47d 100644 --- a/src/basic/vx_cal/day_dif.cc +++ b/src/basic/vx_cal/day_dif.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_cal/day_of_week.cc b/src/basic/vx_cal/day_of_week.cc index a1fa8145ad..88cc1c1c62 100644 --- a/src/basic/vx_cal/day_of_week.cc +++ b/src/basic/vx_cal/day_of_week.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_cal/doyhms_to_unix.cc b/src/basic/vx_cal/doyhms_to_unix.cc index 67993a4f15..6580edb004 100644 --- a/src/basic/vx_cal/doyhms_to_unix.cc +++ b/src/basic/vx_cal/doyhms_to_unix.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_cal/is_dst.cc b/src/basic/vx_cal/is_dst.cc index fbe41e58a0..44bd77d7ca 100644 --- a/src/basic/vx_cal/is_dst.cc +++ b/src/basic/vx_cal/is_dst.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_cal/is_leap_year.cc b/src/basic/vx_cal/is_leap_year.cc index 78d06eb0d5..d37854d690 100644 --- a/src/basic/vx_cal/is_leap_year.cc +++ b/src/basic/vx_cal/is_leap_year.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_cal/mdyhms_to_unix.cc b/src/basic/vx_cal/mdyhms_to_unix.cc index 8d59bba64a..55489c80e5 100644 --- a/src/basic/vx_cal/mdyhms_to_unix.cc +++ b/src/basic/vx_cal/mdyhms_to_unix.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_cal/mjd_to_date.cc b/src/basic/vx_cal/mjd_to_date.cc index 755d65f4a8..da660d679f 100644 --- a/src/basic/vx_cal/mjd_to_date.cc +++ b/src/basic/vx_cal/mjd_to_date.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_cal/time_array.cc b/src/basic/vx_cal/time_array.cc index 674ef644c6..8f511caf81 100644 --- a/src/basic/vx_cal/time_array.cc +++ b/src/basic/vx_cal/time_array.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_cal/time_array.h b/src/basic/vx_cal/time_array.h index 807aec977e..2062b9ef34 100644 --- a/src/basic/vx_cal/time_array.h +++ b/src/basic/vx_cal/time_array.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_cal/time_strings.cc b/src/basic/vx_cal/time_strings.cc index cd1c9f8f27..02a5ead7bb 100644 --- a/src/basic/vx_cal/time_strings.cc +++ b/src/basic/vx_cal/time_strings.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_cal/unix_string.cc b/src/basic/vx_cal/unix_string.cc index acb4c4a486..09b3f28b2b 100644 --- a/src/basic/vx_cal/unix_string.cc +++ b/src/basic/vx_cal/unix_string.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_cal/unix_to_mdyhms.cc b/src/basic/vx_cal/unix_to_mdyhms.cc index dd3de3a864..e85e671d75 100644 --- a/src/basic/vx_cal/unix_to_mdyhms.cc +++ b/src/basic/vx_cal/unix_to_mdyhms.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_cal/vx_cal.h b/src/basic/vx_cal/vx_cal.h index f7d553a55b..5cccd82ab7 100644 --- a/src/basic/vx_cal/vx_cal.h +++ b/src/basic/vx_cal/vx_cal.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_config/builtin.cc b/src/basic/vx_config/builtin.cc index 2d4c76446e..86e254547c 100644 --- a/src/basic/vx_config/builtin.cc +++ b/src/basic/vx_config/builtin.cc @@ -4,7 +4,7 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_config/builtin.h b/src/basic/vx_config/builtin.h index 5a049f9da7..d729e8a2a6 100644 --- a/src/basic/vx_config/builtin.h +++ b/src/basic/vx_config/builtin.h @@ -4,7 +4,7 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_config/calculator.cc b/src/basic/vx_config/calculator.cc index a87cdf25c1..9b87fbbb74 100644 --- a/src/basic/vx_config/calculator.cc +++ b/src/basic/vx_config/calculator.cc @@ -4,7 +4,7 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_config/calculator.h b/src/basic/vx_config/calculator.h index b21c67edfc..075fb3e015 100644 --- a/src/basic/vx_config/calculator.h +++ b/src/basic/vx_config/calculator.h @@ -4,7 +4,7 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_config/celltype_to_string.cc b/src/basic/vx_config/celltype_to_string.cc index a1646688b3..226f8c50c7 100644 --- a/src/basic/vx_config/celltype_to_string.cc +++ b/src/basic/vx_config/celltype_to_string.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_config/celltype_to_string.h b/src/basic/vx_config/celltype_to_string.h index 28b348189a..a2f5af5c06 100644 --- a/src/basic/vx_config/celltype_to_string.h +++ b/src/basic/vx_config/celltype_to_string.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_config/config_constants.h b/src/basic/vx_config/config_constants.h index 4b51aa15ac..56908edd31 100644 --- a/src/basic/vx_config/config_constants.h +++ b/src/basic/vx_config/config_constants.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_config/config_file.cc b/src/basic/vx_config/config_file.cc index 0ca0bf5aa0..edc4acedc2 100644 --- a/src/basic/vx_config/config_file.cc +++ b/src/basic/vx_config/config_file.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_config/config_file.h b/src/basic/vx_config/config_file.h index 0af9da6a6c..fb39ee942b 100644 --- a/src/basic/vx_config/config_file.h +++ b/src/basic/vx_config/config_file.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_config/config_funcs.cc b/src/basic/vx_config/config_funcs.cc index 7419761953..b5091f32fd 100644 --- a/src/basic/vx_config/config_funcs.cc +++ b/src/basic/vx_config/config_funcs.cc @@ -3,7 +3,7 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_config/config_funcs.h b/src/basic/vx_config/config_funcs.h index 0eb86fb67c..72d08cbebd 100644 --- a/src/basic/vx_config/config_funcs.h +++ b/src/basic/vx_config/config_funcs.h @@ -4,7 +4,7 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_config/config_gaussian.h b/src/basic/vx_config/config_gaussian.h index 909a3540ff..f7866388d5 100644 --- a/src/basic/vx_config/config_gaussian.h +++ b/src/basic/vx_config/config_gaussian.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_config/config_util.cc b/src/basic/vx_config/config_util.cc index 3d02ba2aed..84bd369f5b 100644 --- a/src/basic/vx_config/config_util.cc +++ b/src/basic/vx_config/config_util.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_config/config_util.h b/src/basic/vx_config/config_util.h index 47bee9e65e..d8137919cb 100644 --- a/src/basic/vx_config/config_util.h +++ b/src/basic/vx_config/config_util.h @@ -1,6 +1,6 @@ //////////////////////////////////////////////////////////////////////// // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_config/configobjecttype_to_string.cc b/src/basic/vx_config/configobjecttype_to_string.cc index 3b1c3902a3..91d34685bc 100644 --- a/src/basic/vx_config/configobjecttype_to_string.cc +++ b/src/basic/vx_config/configobjecttype_to_string.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_config/configobjecttype_to_string.h b/src/basic/vx_config/configobjecttype_to_string.h index f63aafaae6..4ede2039e9 100644 --- a/src/basic/vx_config/configobjecttype_to_string.h +++ b/src/basic/vx_config/configobjecttype_to_string.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_config/data_file_type.h b/src/basic/vx_config/data_file_type.h index 376685f7a6..618e1cccb5 100644 --- a/src/basic/vx_config/data_file_type.h +++ b/src/basic/vx_config/data_file_type.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_config/dictionary.cc b/src/basic/vx_config/dictionary.cc index b6181c843f..bc1a34bff0 100644 --- a/src/basic/vx_config/dictionary.cc +++ b/src/basic/vx_config/dictionary.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_config/dictionary.h b/src/basic/vx_config/dictionary.h index 32371c630d..742789000b 100644 --- a/src/basic/vx_config/dictionary.h +++ b/src/basic/vx_config/dictionary.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_config/grdfiletype_to_string.cc b/src/basic/vx_config/grdfiletype_to_string.cc index e82450caf8..e6f5b11b89 100644 --- a/src/basic/vx_config/grdfiletype_to_string.cc +++ b/src/basic/vx_config/grdfiletype_to_string.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_config/grdfiletype_to_string.h b/src/basic/vx_config/grdfiletype_to_string.h index 6f28805478..6b44a35670 100644 --- a/src/basic/vx_config/grdfiletype_to_string.h +++ b/src/basic/vx_config/grdfiletype_to_string.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_config/icode.cc b/src/basic/vx_config/icode.cc index bc8d8aadc7..0b5dfa631d 100644 --- a/src/basic/vx_config/icode.cc +++ b/src/basic/vx_config/icode.cc @@ -2,7 +2,7 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_config/icode.h b/src/basic/vx_config/icode.h index 5968c8daa7..d344b797dd 100644 --- a/src/basic/vx_config/icode.h +++ b/src/basic/vx_config/icode.h @@ -4,7 +4,7 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_config/idstack.cc b/src/basic/vx_config/idstack.cc index b18b961262..30db99ecfe 100644 --- a/src/basic/vx_config/idstack.cc +++ b/src/basic/vx_config/idstack.cc @@ -4,7 +4,7 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_config/idstack.h b/src/basic/vx_config/idstack.h index 27eacd28df..7c274744d4 100644 --- a/src/basic/vx_config/idstack.h +++ b/src/basic/vx_config/idstack.h @@ -2,7 +2,7 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_config/number_stack.cc b/src/basic/vx_config/number_stack.cc index c49ea25a03..872f477399 100644 --- a/src/basic/vx_config/number_stack.cc +++ b/src/basic/vx_config/number_stack.cc @@ -4,7 +4,7 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_config/number_stack.h b/src/basic/vx_config/number_stack.h index e659df6fc4..298a1b73ca 100644 --- a/src/basic/vx_config/number_stack.h +++ b/src/basic/vx_config/number_stack.h @@ -4,7 +4,7 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_config/object_types.h b/src/basic/vx_config/object_types.h index a6d7dd6656..e60bc58135 100644 --- a/src/basic/vx_config/object_types.h +++ b/src/basic/vx_config/object_types.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_config/scanner_stuff.h b/src/basic/vx_config/scanner_stuff.h index ce0e60b12f..176f021b63 100644 --- a/src/basic/vx_config/scanner_stuff.h +++ b/src/basic/vx_config/scanner_stuff.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_config/temp_file.cc b/src/basic/vx_config/temp_file.cc index 85d5528a49..0a8ab6c715 100644 --- a/src/basic/vx_config/temp_file.cc +++ b/src/basic/vx_config/temp_file.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_config/temp_file.h b/src/basic/vx_config/temp_file.h index 998aed9be2..14bdbac123 100644 --- a/src/basic/vx_config/temp_file.h +++ b/src/basic/vx_config/temp_file.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_config/threshold.cc b/src/basic/vx_config/threshold.cc index da057355e3..d1b62a135e 100644 --- a/src/basic/vx_config/threshold.cc +++ b/src/basic/vx_config/threshold.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_config/threshold.h b/src/basic/vx_config/threshold.h index 50e12efd76..3eb74b5a0b 100644 --- a/src/basic/vx_config/threshold.h +++ b/src/basic/vx_config/threshold.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_config/vx_config.h b/src/basic/vx_config/vx_config.h index d92e4e93ba..b83de71065 100644 --- a/src/basic/vx_config/vx_config.h +++ b/src/basic/vx_config/vx_config.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_log/concat_string.cc b/src/basic/vx_log/concat_string.cc index ff9e9c1701..353bd44c5d 100644 --- a/src/basic/vx_log/concat_string.cc +++ b/src/basic/vx_log/concat_string.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_log/concat_string.h b/src/basic/vx_log/concat_string.h index c5d6e0f8c3..9dcf80e5cd 100644 --- a/src/basic/vx_log/concat_string.h +++ b/src/basic/vx_log/concat_string.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_log/file_fxns.cc b/src/basic/vx_log/file_fxns.cc index e3ac30e48f..fd0e19938f 100644 --- a/src/basic/vx_log/file_fxns.cc +++ b/src/basic/vx_log/file_fxns.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_log/file_fxns.h b/src/basic/vx_log/file_fxns.h index f521947cfa..2ae7037a55 100644 --- a/src/basic/vx_log/file_fxns.h +++ b/src/basic/vx_log/file_fxns.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_log/indent.cc b/src/basic/vx_log/indent.cc index 918fca7020..ce07dfbe29 100644 --- a/src/basic/vx_log/indent.cc +++ b/src/basic/vx_log/indent.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_log/indent.h b/src/basic/vx_log/indent.h index a0b6896de7..9b28a591f3 100644 --- a/src/basic/vx_log/indent.h +++ b/src/basic/vx_log/indent.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_log/logger.cc b/src/basic/vx_log/logger.cc index 6e8785e041..50199434c6 100644 --- a/src/basic/vx_log/logger.cc +++ b/src/basic/vx_log/logger.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_log/logger.h b/src/basic/vx_log/logger.h index 3c431e53e4..7f0e2ca95a 100644 --- a/src/basic/vx_log/logger.h +++ b/src/basic/vx_log/logger.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_log/str_wrappers.cc b/src/basic/vx_log/str_wrappers.cc index 4361388d71..0f58d0ab86 100644 --- a/src/basic/vx_log/str_wrappers.cc +++ b/src/basic/vx_log/str_wrappers.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_log/str_wrappers.h b/src/basic/vx_log/str_wrappers.h index 6cbc2aea19..bce38d203e 100644 --- a/src/basic/vx_log/str_wrappers.h +++ b/src/basic/vx_log/str_wrappers.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_log/string_array.cc b/src/basic/vx_log/string_array.cc index 03116b5e3d..20aaa25118 100644 --- a/src/basic/vx_log/string_array.cc +++ b/src/basic/vx_log/string_array.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_log/string_array.h b/src/basic/vx_log/string_array.h index b6eb213eed..41103fa513 100644 --- a/src/basic/vx_log/string_array.h +++ b/src/basic/vx_log/string_array.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_log/vx_log.h b/src/basic/vx_log/vx_log.h index adbac8d826..ce8a8132cb 100644 --- a/src/basic/vx_log/vx_log.h +++ b/src/basic/vx_log/vx_log.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_math/affine.cc b/src/basic/vx_math/affine.cc index f4899de86d..c2dcc01cda 100644 --- a/src/basic/vx_math/affine.cc +++ b/src/basic/vx_math/affine.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_math/affine.h b/src/basic/vx_math/affine.h index 3d05713d77..38f744a010 100644 --- a/src/basic/vx_math/affine.h +++ b/src/basic/vx_math/affine.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_math/angles.cc b/src/basic/vx_math/angles.cc index 7d58842f33..71044245f5 100644 --- a/src/basic/vx_math/angles.cc +++ b/src/basic/vx_math/angles.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_math/angles.h b/src/basic/vx_math/angles.h index 3a47154d86..0131f42227 100644 --- a/src/basic/vx_math/angles.h +++ b/src/basic/vx_math/angles.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_math/hist.cc b/src/basic/vx_math/hist.cc index d1eb05750c..fb3cfa52c6 100644 --- a/src/basic/vx_math/hist.cc +++ b/src/basic/vx_math/hist.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_math/hist.h b/src/basic/vx_math/hist.h index 53521b1a35..dbee0e445b 100644 --- a/src/basic/vx_math/hist.h +++ b/src/basic/vx_math/hist.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_math/is_bad_data.h b/src/basic/vx_math/is_bad_data.h index af173a8755..8b3f3ce7f7 100644 --- a/src/basic/vx_math/is_bad_data.h +++ b/src/basic/vx_math/is_bad_data.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_math/legendre.cc b/src/basic/vx_math/legendre.cc index 682ba30027..6d1b87317c 100644 --- a/src/basic/vx_math/legendre.cc +++ b/src/basic/vx_math/legendre.cc @@ -4,7 +4,7 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_math/legendre.h b/src/basic/vx_math/legendre.h index 23979cb5c6..6fcb1b508a 100644 --- a/src/basic/vx_math/legendre.h +++ b/src/basic/vx_math/legendre.h @@ -4,7 +4,7 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_math/math_constants.h b/src/basic/vx_math/math_constants.h index 69aeadc121..f47901e452 100644 --- a/src/basic/vx_math/math_constants.h +++ b/src/basic/vx_math/math_constants.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_math/nint.cc b/src/basic/vx_math/nint.cc index 76e4cb6780..b536774303 100644 --- a/src/basic/vx_math/nint.cc +++ b/src/basic/vx_math/nint.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_math/nint.h b/src/basic/vx_math/nint.h index ea171604f1..9fda728c59 100644 --- a/src/basic/vx_math/nint.h +++ b/src/basic/vx_math/nint.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_math/nti.cc b/src/basic/vx_math/nti.cc index 5c4c9b6003..f89f3aa6a7 100644 --- a/src/basic/vx_math/nti.cc +++ b/src/basic/vx_math/nti.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_math/nti.h b/src/basic/vx_math/nti.h index 9676043ac4..c62895b47b 100644 --- a/src/basic/vx_math/nti.h +++ b/src/basic/vx_math/nti.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_math/ptile.cc b/src/basic/vx_math/ptile.cc index 9812403a84..31d3152284 100644 --- a/src/basic/vx_math/ptile.cc +++ b/src/basic/vx_math/ptile.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_math/ptile.h b/src/basic/vx_math/ptile.h index c77d353f06..c9a9685927 100644 --- a/src/basic/vx_math/ptile.h +++ b/src/basic/vx_math/ptile.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_math/pwl.cc b/src/basic/vx_math/pwl.cc index 5e8fc7cb7f..0622c07312 100644 --- a/src/basic/vx_math/pwl.cc +++ b/src/basic/vx_math/pwl.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_math/pwl.h b/src/basic/vx_math/pwl.h index 5f3eae81df..3cc564ba2e 100644 --- a/src/basic/vx_math/pwl.h +++ b/src/basic/vx_math/pwl.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_math/trig.h b/src/basic/vx_math/trig.h index 6ea52adcc6..b8d416d93a 100644 --- a/src/basic/vx_math/trig.h +++ b/src/basic/vx_math/trig.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_math/viewgravity_to_string.cc b/src/basic/vx_math/viewgravity_to_string.cc index ed8dbefb66..9a7034fbcf 100644 --- a/src/basic/vx_math/viewgravity_to_string.cc +++ b/src/basic/vx_math/viewgravity_to_string.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_math/viewgravity_to_string.h b/src/basic/vx_math/viewgravity_to_string.h index c6d81dde6a..967a81f6b8 100644 --- a/src/basic/vx_math/viewgravity_to_string.h +++ b/src/basic/vx_math/viewgravity_to_string.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_math/vx_math.h b/src/basic/vx_math/vx_math.h index 73ab93ce52..82dbfcb4f7 100644 --- a/src/basic/vx_math/vx_math.h +++ b/src/basic/vx_math/vx_math.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_math/vx_vector.cc b/src/basic/vx_math/vx_vector.cc index fd6c7f0645..3d9ea15a06 100644 --- a/src/basic/vx_math/vx_vector.cc +++ b/src/basic/vx_math/vx_vector.cc @@ -4,7 +4,7 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_math/vx_vector.h b/src/basic/vx_math/vx_vector.h index e272f1bd8d..425287b564 100644 --- a/src/basic/vx_math/vx_vector.h +++ b/src/basic/vx_math/vx_vector.h @@ -4,7 +4,7 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/CircularTemplate.cc b/src/basic/vx_util/CircularTemplate.cc index 8ccff67933..593b1eedec 100644 --- a/src/basic/vx_util/CircularTemplate.cc +++ b/src/basic/vx_util/CircularTemplate.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/CircularTemplate.h b/src/basic/vx_util/CircularTemplate.h index dd93972f01..9ba5d9417c 100644 --- a/src/basic/vx_util/CircularTemplate.h +++ b/src/basic/vx_util/CircularTemplate.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/GridOffset.cc b/src/basic/vx_util/GridOffset.cc index c6e6756176..628370bc59 100644 --- a/src/basic/vx_util/GridOffset.cc +++ b/src/basic/vx_util/GridOffset.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/GridOffset.h b/src/basic/vx_util/GridOffset.h index ec37bf1c3c..52d579ef4f 100644 --- a/src/basic/vx_util/GridOffset.h +++ b/src/basic/vx_util/GridOffset.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/GridPoint.cc b/src/basic/vx_util/GridPoint.cc index 61db3e73ba..8ddd5f31b9 100644 --- a/src/basic/vx_util/GridPoint.cc +++ b/src/basic/vx_util/GridPoint.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/GridPoint.h b/src/basic/vx_util/GridPoint.h index d5003671cf..4e3cacd53e 100644 --- a/src/basic/vx_util/GridPoint.h +++ b/src/basic/vx_util/GridPoint.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/GridTemplate.cc b/src/basic/vx_util/GridTemplate.cc index 832183084d..9534c81015 100644 --- a/src/basic/vx_util/GridTemplate.cc +++ b/src/basic/vx_util/GridTemplate.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/GridTemplate.h b/src/basic/vx_util/GridTemplate.h index 130e65d476..6682cc10af 100644 --- a/src/basic/vx_util/GridTemplate.h +++ b/src/basic/vx_util/GridTemplate.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/RectangularTemplate.cc b/src/basic/vx_util/RectangularTemplate.cc index aaffb79d78..cfcb3f5f85 100644 --- a/src/basic/vx_util/RectangularTemplate.cc +++ b/src/basic/vx_util/RectangularTemplate.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/RectangularTemplate.h b/src/basic/vx_util/RectangularTemplate.h index 749b023d93..768315b68e 100644 --- a/src/basic/vx_util/RectangularTemplate.h +++ b/src/basic/vx_util/RectangularTemplate.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/ascii_header.cc b/src/basic/vx_util/ascii_header.cc index 27c1d69a1a..f9a5228a98 100644 --- a/src/basic/vx_util/ascii_header.cc +++ b/src/basic/vx_util/ascii_header.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/ascii_header.h b/src/basic/vx_util/ascii_header.h index e839f7f4c0..499803bbab 100644 --- a/src/basic/vx_util/ascii_header.h +++ b/src/basic/vx_util/ascii_header.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/ascii_table.cc b/src/basic/vx_util/ascii_table.cc index d7e2640fa4..ff70dff926 100644 --- a/src/basic/vx_util/ascii_table.cc +++ b/src/basic/vx_util/ascii_table.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/ascii_table.h b/src/basic/vx_util/ascii_table.h index 9ed8fea739..5e6de9b239 100644 --- a/src/basic/vx_util/ascii_table.h +++ b/src/basic/vx_util/ascii_table.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/asciitablejust_to_string.cc b/src/basic/vx_util/asciitablejust_to_string.cc index 3415941569..50fbf4387e 100644 --- a/src/basic/vx_util/asciitablejust_to_string.cc +++ b/src/basic/vx_util/asciitablejust_to_string.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/asciitablejust_to_string.h b/src/basic/vx_util/asciitablejust_to_string.h index ca72cc9200..d9fbe9d0ca 100644 --- a/src/basic/vx_util/asciitablejust_to_string.h +++ b/src/basic/vx_util/asciitablejust_to_string.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/bool_array.h b/src/basic/vx_util/bool_array.h index 2f55101605..f5a9f5aa1d 100644 --- a/src/basic/vx_util/bool_array.h +++ b/src/basic/vx_util/bool_array.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/bool_to_string.h b/src/basic/vx_util/bool_to_string.h index 262a8e47eb..df58e2eea6 100644 --- a/src/basic/vx_util/bool_to_string.h +++ b/src/basic/vx_util/bool_to_string.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/check_endian.cc b/src/basic/vx_util/check_endian.cc index 30c236f9c5..676e3f33a3 100644 --- a/src/basic/vx_util/check_endian.cc +++ b/src/basic/vx_util/check_endian.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/check_endian.h b/src/basic/vx_util/check_endian.h index 419a753c0b..d81b6db824 100644 --- a/src/basic/vx_util/check_endian.h +++ b/src/basic/vx_util/check_endian.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/comma_string.cc b/src/basic/vx_util/comma_string.cc index 4c27d13f23..f7702df5f7 100644 --- a/src/basic/vx_util/comma_string.cc +++ b/src/basic/vx_util/comma_string.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/comma_string.h b/src/basic/vx_util/comma_string.h index 2cbc557a9d..7ab5919760 100644 --- a/src/basic/vx_util/comma_string.h +++ b/src/basic/vx_util/comma_string.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/command_line.cc b/src/basic/vx_util/command_line.cc index 73aab12b2b..2063d37d51 100644 --- a/src/basic/vx_util/command_line.cc +++ b/src/basic/vx_util/command_line.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/command_line.h b/src/basic/vx_util/command_line.h index c6bd79ce45..9c8f25592a 100644 --- a/src/basic/vx_util/command_line.h +++ b/src/basic/vx_util/command_line.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/conversions.cc b/src/basic/vx_util/conversions.cc index 4d77ea5427..5d34f5fb94 100644 --- a/src/basic/vx_util/conversions.cc +++ b/src/basic/vx_util/conversions.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/conversions.h b/src/basic/vx_util/conversions.h index 63b2b9cc73..d55c9e0312 100644 --- a/src/basic/vx_util/conversions.h +++ b/src/basic/vx_util/conversions.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/crc_array.h b/src/basic/vx_util/crc_array.h index 56bb91c0af..5603c1eb78 100644 --- a/src/basic/vx_util/crc_array.h +++ b/src/basic/vx_util/crc_array.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/crr_array.h b/src/basic/vx_util/crr_array.h index d77cba65bc..d71c0633dc 100644 --- a/src/basic/vx_util/crr_array.h +++ b/src/basic/vx_util/crr_array.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/data_cube.cc b/src/basic/vx_util/data_cube.cc index 646f477151..7efc2c5c9a 100644 --- a/src/basic/vx_util/data_cube.cc +++ b/src/basic/vx_util/data_cube.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/data_cube.h b/src/basic/vx_util/data_cube.h index 7e317d50fd..946a69e1b5 100644 --- a/src/basic/vx_util/data_cube.h +++ b/src/basic/vx_util/data_cube.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/data_line.cc b/src/basic/vx_util/data_line.cc index 2246dfbba4..0613376ff1 100644 --- a/src/basic/vx_util/data_line.cc +++ b/src/basic/vx_util/data_line.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/data_line.h b/src/basic/vx_util/data_line.h index ced65b95b0..bb9de49c8e 100644 --- a/src/basic/vx_util/data_line.h +++ b/src/basic/vx_util/data_line.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/data_plane.cc b/src/basic/vx_util/data_plane.cc index a6d702f0b6..a46cb4664d 100644 --- a/src/basic/vx_util/data_plane.cc +++ b/src/basic/vx_util/data_plane.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/data_plane.h b/src/basic/vx_util/data_plane.h index 683701ada3..8d1d8b6440 100644 --- a/src/basic/vx_util/data_plane.h +++ b/src/basic/vx_util/data_plane.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/data_plane_util.cc b/src/basic/vx_util/data_plane_util.cc index e20c49712d..05bcf6736d 100644 --- a/src/basic/vx_util/data_plane_util.cc +++ b/src/basic/vx_util/data_plane_util.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/data_plane_util.h b/src/basic/vx_util/data_plane_util.h index a66254b088..7f0b9b27a7 100644 --- a/src/basic/vx_util/data_plane_util.h +++ b/src/basic/vx_util/data_plane_util.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/empty_string.h b/src/basic/vx_util/empty_string.h index e27edc6c52..eb52f3ec69 100644 --- a/src/basic/vx_util/empty_string.h +++ b/src/basic/vx_util/empty_string.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/file_exists.cc b/src/basic/vx_util/file_exists.cc index a51db6f164..9ffcde76fe 100644 --- a/src/basic/vx_util/file_exists.cc +++ b/src/basic/vx_util/file_exists.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/file_exists.h b/src/basic/vx_util/file_exists.h index bda8fe7e80..88cd25e882 100644 --- a/src/basic/vx_util/file_exists.h +++ b/src/basic/vx_util/file_exists.h @@ -1,7 +1,7 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/file_linecount.cc b/src/basic/vx_util/file_linecount.cc index 8ea6cd2637..ad652df68d 100644 --- a/src/basic/vx_util/file_linecount.cc +++ b/src/basic/vx_util/file_linecount.cc @@ -1,7 +1,7 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/file_linecount.h b/src/basic/vx_util/file_linecount.h index 87b8cae73c..9fde175dc4 100644 --- a/src/basic/vx_util/file_linecount.h +++ b/src/basic/vx_util/file_linecount.h @@ -1,7 +1,7 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/file_size.cc b/src/basic/vx_util/file_size.cc index 485b1b1b52..95f2bccf16 100644 --- a/src/basic/vx_util/file_size.cc +++ b/src/basic/vx_util/file_size.cc @@ -1,7 +1,7 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/file_size.h b/src/basic/vx_util/file_size.h index fabb8857dc..19f8029e06 100644 --- a/src/basic/vx_util/file_size.h +++ b/src/basic/vx_util/file_size.h @@ -1,7 +1,7 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/filename_suffix.cc b/src/basic/vx_util/filename_suffix.cc index ebcf211bd9..0e46663cc7 100644 --- a/src/basic/vx_util/filename_suffix.cc +++ b/src/basic/vx_util/filename_suffix.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/filename_suffix.h b/src/basic/vx_util/filename_suffix.h index 1356472199..de15dc950b 100644 --- a/src/basic/vx_util/filename_suffix.h +++ b/src/basic/vx_util/filename_suffix.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/fix_float.cc b/src/basic/vx_util/fix_float.cc index 1e39aaf7e3..760ee7948b 100644 --- a/src/basic/vx_util/fix_float.cc +++ b/src/basic/vx_util/fix_float.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/fix_float.h b/src/basic/vx_util/fix_float.h index a2706dba90..ad050b44a0 100644 --- a/src/basic/vx_util/fix_float.h +++ b/src/basic/vx_util/fix_float.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/get_filenames.cc b/src/basic/vx_util/get_filenames.cc index f8d1bb5d3f..ae633f32f2 100644 --- a/src/basic/vx_util/get_filenames.cc +++ b/src/basic/vx_util/get_filenames.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/get_filenames.h b/src/basic/vx_util/get_filenames.h index c8e67817b9..441916e0ae 100644 --- a/src/basic/vx_util/get_filenames.h +++ b/src/basic/vx_util/get_filenames.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/grib_constants.cc b/src/basic/vx_util/grib_constants.cc index 612db90eeb..9bf702f209 100644 --- a/src/basic/vx_util/grib_constants.cc +++ b/src/basic/vx_util/grib_constants.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/grib_constants.h b/src/basic/vx_util/grib_constants.h index 9382e081fc..ffaf17d4b2 100644 --- a/src/basic/vx_util/grib_constants.h +++ b/src/basic/vx_util/grib_constants.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/handle_openmp.cc b/src/basic/vx_util/handle_openmp.cc index 9443afa8e1..7bec6ac0d0 100644 --- a/src/basic/vx_util/handle_openmp.cc +++ b/src/basic/vx_util/handle_openmp.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/handle_openmp.h b/src/basic/vx_util/handle_openmp.h index 1eb1baba09..7223ce9c73 100644 --- a/src/basic/vx_util/handle_openmp.h +++ b/src/basic/vx_util/handle_openmp.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/int_array.h b/src/basic/vx_util/int_array.h index 981277880d..c435c4aba7 100644 --- a/src/basic/vx_util/int_array.h +++ b/src/basic/vx_util/int_array.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/interp_mthd.cc b/src/basic/vx_util/interp_mthd.cc index 73a3dbc054..06af350e9e 100644 --- a/src/basic/vx_util/interp_mthd.cc +++ b/src/basic/vx_util/interp_mthd.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/interp_mthd.h b/src/basic/vx_util/interp_mthd.h index 136e3885dc..0f061241e1 100644 --- a/src/basic/vx_util/interp_mthd.h +++ b/src/basic/vx_util/interp_mthd.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/interp_util.cc b/src/basic/vx_util/interp_util.cc index b28ecc40dd..4858682276 100644 --- a/src/basic/vx_util/interp_util.cc +++ b/src/basic/vx_util/interp_util.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/interp_util.h b/src/basic/vx_util/interp_util.h index ff3f16f534..e8f30975de 100644 --- a/src/basic/vx_util/interp_util.h +++ b/src/basic/vx_util/interp_util.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/is_number.cc b/src/basic/vx_util/is_number.cc index 7daec912ee..f8f9f59388 100644 --- a/src/basic/vx_util/is_number.cc +++ b/src/basic/vx_util/is_number.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/is_number.h b/src/basic/vx_util/is_number.h index 04c6363ad7..991416d2d1 100644 --- a/src/basic/vx_util/is_number.h +++ b/src/basic/vx_util/is_number.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/long_array.cc b/src/basic/vx_util/long_array.cc index c0e493628c..449b9066a3 100644 --- a/src/basic/vx_util/long_array.cc +++ b/src/basic/vx_util/long_array.cc @@ -1,7 +1,7 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/long_array.h b/src/basic/vx_util/long_array.h index 7c75bc2995..99380b88ad 100644 --- a/src/basic/vx_util/long_array.h +++ b/src/basic/vx_util/long_array.h @@ -1,7 +1,7 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/main.h b/src/basic/vx_util/main.h index 8861880437..7f26db824f 100644 --- a/src/basic/vx_util/main.h +++ b/src/basic/vx_util/main.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/make_path.cc b/src/basic/vx_util/make_path.cc index c6f207183a..dd639112b6 100644 --- a/src/basic/vx_util/make_path.cc +++ b/src/basic/vx_util/make_path.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/make_path.h b/src/basic/vx_util/make_path.h index c8737e3f2e..c3d89d1c15 100644 --- a/src/basic/vx_util/make_path.h +++ b/src/basic/vx_util/make_path.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/mask_poly.cc b/src/basic/vx_util/mask_poly.cc index 6a8f176c9f..e8786ae2d9 100644 --- a/src/basic/vx_util/mask_poly.cc +++ b/src/basic/vx_util/mask_poly.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/mask_poly.h b/src/basic/vx_util/mask_poly.h index 822259de98..0b9c3c1b30 100644 --- a/src/basic/vx_util/mask_poly.h +++ b/src/basic/vx_util/mask_poly.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/memory.cc b/src/basic/vx_util/memory.cc index a832b79840..03da45e2ea 100644 --- a/src/basic/vx_util/memory.cc +++ b/src/basic/vx_util/memory.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/memory.h b/src/basic/vx_util/memory.h index e7f6f4e4be..c55596a331 100644 --- a/src/basic/vx_util/memory.h +++ b/src/basic/vx_util/memory.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/met_buffer.cc b/src/basic/vx_util/met_buffer.cc index ef1e8c481c..b16f15c358 100644 --- a/src/basic/vx_util/met_buffer.cc +++ b/src/basic/vx_util/met_buffer.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/met_buffer.h b/src/basic/vx_util/met_buffer.h index 6d85ca5465..2f6ff02f42 100644 --- a/src/basic/vx_util/met_buffer.h +++ b/src/basic/vx_util/met_buffer.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/ncrr_array.h b/src/basic/vx_util/ncrr_array.h index 6cea944919..0ceac12bdf 100644 --- a/src/basic/vx_util/ncrr_array.h +++ b/src/basic/vx_util/ncrr_array.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/normalize.cc b/src/basic/vx_util/normalize.cc index 831af6c6a1..062ae3b058 100644 --- a/src/basic/vx_util/normalize.cc +++ b/src/basic/vx_util/normalize.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/normalize.h b/src/basic/vx_util/normalize.h index 1883dc888f..b91fa45476 100644 --- a/src/basic/vx_util/normalize.h +++ b/src/basic/vx_util/normalize.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/num_array.cc b/src/basic/vx_util/num_array.cc index 3b68d21978..20632a8978 100644 --- a/src/basic/vx_util/num_array.cc +++ b/src/basic/vx_util/num_array.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/num_array.h b/src/basic/vx_util/num_array.h index f47cade01e..6103b4b9f4 100644 --- a/src/basic/vx_util/num_array.h +++ b/src/basic/vx_util/num_array.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/observation.cc b/src/basic/vx_util/observation.cc index 1fe4ea7ede..4046c0f51a 100644 --- a/src/basic/vx_util/observation.cc +++ b/src/basic/vx_util/observation.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/observation.h b/src/basic/vx_util/observation.h index 4f2a346303..377a04611f 100644 --- a/src/basic/vx_util/observation.h +++ b/src/basic/vx_util/observation.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/ordinal.cc b/src/basic/vx_util/ordinal.cc index 7d8c98e4f4..ef8bf4ab1e 100644 --- a/src/basic/vx_util/ordinal.cc +++ b/src/basic/vx_util/ordinal.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/ordinal.h b/src/basic/vx_util/ordinal.h index e208c30b97..2efecf0f97 100644 --- a/src/basic/vx_util/ordinal.h +++ b/src/basic/vx_util/ordinal.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/polyline.cc b/src/basic/vx_util/polyline.cc index 88570f369d..3ae48006f8 100644 --- a/src/basic/vx_util/polyline.cc +++ b/src/basic/vx_util/polyline.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/polyline.h b/src/basic/vx_util/polyline.h index 3139f3072c..22ab568e96 100644 --- a/src/basic/vx_util/polyline.h +++ b/src/basic/vx_util/polyline.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/python_line.cc b/src/basic/vx_util/python_line.cc index 0fd205825c..7f9d94ed8b 100644 --- a/src/basic/vx_util/python_line.cc +++ b/src/basic/vx_util/python_line.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/python_line.h b/src/basic/vx_util/python_line.h index 9b39e074da..b04a0e2450 100644 --- a/src/basic/vx_util/python_line.h +++ b/src/basic/vx_util/python_line.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/read_fortran_binary.cc b/src/basic/vx_util/read_fortran_binary.cc index 78680f707e..ae6e771bb4 100644 --- a/src/basic/vx_util/read_fortran_binary.cc +++ b/src/basic/vx_util/read_fortran_binary.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/read_fortran_binary.h b/src/basic/vx_util/read_fortran_binary.h index 9a0fe133f0..d0e12514c8 100644 --- a/src/basic/vx_util/read_fortran_binary.h +++ b/src/basic/vx_util/read_fortran_binary.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/roman_numeral.cc b/src/basic/vx_util/roman_numeral.cc index c278179994..aeeaa1ca64 100644 --- a/src/basic/vx_util/roman_numeral.cc +++ b/src/basic/vx_util/roman_numeral.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/roman_numeral.h b/src/basic/vx_util/roman_numeral.h index ef5b73db6d..ae2e9c0ce1 100644 --- a/src/basic/vx_util/roman_numeral.h +++ b/src/basic/vx_util/roman_numeral.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/smart_buffer.cc b/src/basic/vx_util/smart_buffer.cc index 9645b6d773..e8dfb9dced 100644 --- a/src/basic/vx_util/smart_buffer.cc +++ b/src/basic/vx_util/smart_buffer.cc @@ -4,7 +4,7 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/smart_buffer.h b/src/basic/vx_util/smart_buffer.h index 6112ab47c8..2d85465381 100644 --- a/src/basic/vx_util/smart_buffer.h +++ b/src/basic/vx_util/smart_buffer.h @@ -4,7 +4,7 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/stat_column_defs.h b/src/basic/vx_util/stat_column_defs.h index 2b59bd8dbe..f77e2200cb 100644 --- a/src/basic/vx_util/stat_column_defs.h +++ b/src/basic/vx_util/stat_column_defs.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/string_fxns.cc b/src/basic/vx_util/string_fxns.cc index 3d17832de5..3162cc0299 100644 --- a/src/basic/vx_util/string_fxns.cc +++ b/src/basic/vx_util/string_fxns.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/string_fxns.h b/src/basic/vx_util/string_fxns.h index 47b16ed027..b2442de1b4 100644 --- a/src/basic/vx_util/string_fxns.h +++ b/src/basic/vx_util/string_fxns.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/substring.cc b/src/basic/vx_util/substring.cc index 8fdec968b9..2e77b66c8d 100644 --- a/src/basic/vx_util/substring.cc +++ b/src/basic/vx_util/substring.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/substring.h b/src/basic/vx_util/substring.h index 3404502f17..8ce6cb2a46 100644 --- a/src/basic/vx_util/substring.h +++ b/src/basic/vx_util/substring.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/thresh_array.cc b/src/basic/vx_util/thresh_array.cc index a5063de78f..8d1fda8312 100644 --- a/src/basic/vx_util/thresh_array.cc +++ b/src/basic/vx_util/thresh_array.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/thresh_array.h b/src/basic/vx_util/thresh_array.h index 5e62d443c0..f4fe0c4336 100644 --- a/src/basic/vx_util/thresh_array.h +++ b/src/basic/vx_util/thresh_array.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/two_d_array.h b/src/basic/vx_util/two_d_array.h index 42d169d303..6576c33d0b 100644 --- a/src/basic/vx_util/two_d_array.h +++ b/src/basic/vx_util/two_d_array.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/two_to_one.cc b/src/basic/vx_util/two_to_one.cc index cb0229a350..088a3689c7 100644 --- a/src/basic/vx_util/two_to_one.cc +++ b/src/basic/vx_util/two_to_one.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/two_to_one.h b/src/basic/vx_util/two_to_one.h index 3c85e4419a..43c88671a9 100644 --- a/src/basic/vx_util/two_to_one.h +++ b/src/basic/vx_util/two_to_one.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/util_constants.h b/src/basic/vx_util/util_constants.h index c24790b366..f80be6f21c 100644 --- a/src/basic/vx_util/util_constants.h +++ b/src/basic/vx_util/util_constants.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util/vx_util.h b/src/basic/vx_util/vx_util.h index c50e7d16fc..ab8460b420 100644 --- a/src/basic/vx_util/vx_util.h +++ b/src/basic/vx_util/vx_util.h @@ -1,6 +1,6 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util_math/so3.cc b/src/basic/vx_util_math/so3.cc index 5e6266801d..b4369d7cea 100644 --- a/src/basic/vx_util_math/so3.cc +++ b/src/basic/vx_util_math/so3.cc @@ -1,7 +1,7 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/basic/vx_util_math/so3.h b/src/basic/vx_util_math/so3.h index 0a05354597..7934d29037 100644 --- a/src/basic/vx_util_math/so3.h +++ b/src/basic/vx_util_math/so3.h @@ -1,7 +1,7 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_afm/afm.cc b/src/libcode/vx_afm/afm.cc index 2dba98f694..e40ac65256 100644 --- a/src/libcode/vx_afm/afm.cc +++ b/src/libcode/vx_afm/afm.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_afm/afm.h b/src/libcode/vx_afm/afm.h index 1f35215581..76f69326e4 100644 --- a/src/libcode/vx_afm/afm.h +++ b/src/libcode/vx_afm/afm.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_afm/afm_keywords.cc b/src/libcode/vx_afm/afm_keywords.cc index 9eae2302ce..534d8ef6dd 100644 --- a/src/libcode/vx_afm/afm_keywords.cc +++ b/src/libcode/vx_afm/afm_keywords.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_afm/afm_keywords.h b/src/libcode/vx_afm/afm_keywords.h index d055670f7f..24eb3eee6d 100644 --- a/src/libcode/vx_afm/afm_keywords.h +++ b/src/libcode/vx_afm/afm_keywords.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_afm/afm_line.cc b/src/libcode/vx_afm/afm_line.cc index 6b1091facf..bfda18d968 100644 --- a/src/libcode/vx_afm/afm_line.cc +++ b/src/libcode/vx_afm/afm_line.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_afm/afm_line.h b/src/libcode/vx_afm/afm_line.h index e58f70d6f0..5ef71bc7b5 100644 --- a/src/libcode/vx_afm/afm_line.h +++ b/src/libcode/vx_afm/afm_line.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_afm/afm_token.cc b/src/libcode/vx_afm/afm_token.cc index 9cbeb53d39..123e82bdda 100644 --- a/src/libcode/vx_afm/afm_token.cc +++ b/src/libcode/vx_afm/afm_token.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_afm/afm_token.h b/src/libcode/vx_afm/afm_token.h index 03bd66a151..eeda6d42f8 100644 --- a/src/libcode/vx_afm/afm_token.h +++ b/src/libcode/vx_afm/afm_token.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_afm/afm_token_types.h b/src/libcode/vx_afm/afm_token_types.h index f8b6ce9307..1b5e32054f 100644 --- a/src/libcode/vx_afm/afm_token_types.h +++ b/src/libcode/vx_afm/afm_token_types.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_afm/afmkeyword_to_string.cc b/src/libcode/vx_afm/afmkeyword_to_string.cc index 0ec708b891..2f0bc4ebeb 100644 --- a/src/libcode/vx_afm/afmkeyword_to_string.cc +++ b/src/libcode/vx_afm/afmkeyword_to_string.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_afm/afmkeyword_to_string.h b/src/libcode/vx_afm/afmkeyword_to_string.h index eacabbc1fb..03230fc733 100644 --- a/src/libcode/vx_afm/afmkeyword_to_string.h +++ b/src/libcode/vx_afm/afmkeyword_to_string.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_afm/afmtokentype_to_string.cc b/src/libcode/vx_afm/afmtokentype_to_string.cc index 380e786f34..c08fb62f19 100644 --- a/src/libcode/vx_afm/afmtokentype_to_string.cc +++ b/src/libcode/vx_afm/afmtokentype_to_string.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_afm/afmtokentype_to_string.h b/src/libcode/vx_afm/afmtokentype_to_string.h index 5b7dce1136..132379f90e 100644 --- a/src/libcode/vx_afm/afmtokentype_to_string.h +++ b/src/libcode/vx_afm/afmtokentype_to_string.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_analysis_util/analysis_utils.cc b/src/libcode/vx_analysis_util/analysis_utils.cc index 0c7023d239..c0c079cec3 100644 --- a/src/libcode/vx_analysis_util/analysis_utils.cc +++ b/src/libcode/vx_analysis_util/analysis_utils.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_analysis_util/analysis_utils.h b/src/libcode/vx_analysis_util/analysis_utils.h index 107a02c967..95d9ceac85 100644 --- a/src/libcode/vx_analysis_util/analysis_utils.h +++ b/src/libcode/vx_analysis_util/analysis_utils.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_analysis_util/by_case_info.cc b/src/libcode/vx_analysis_util/by_case_info.cc index f755310b03..1b8718bf89 100644 --- a/src/libcode/vx_analysis_util/by_case_info.cc +++ b/src/libcode/vx_analysis_util/by_case_info.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_analysis_util/by_case_info.h b/src/libcode/vx_analysis_util/by_case_info.h index a97a9ef046..a4ba8751b7 100644 --- a/src/libcode/vx_analysis_util/by_case_info.h +++ b/src/libcode/vx_analysis_util/by_case_info.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_analysis_util/mode_atts.cc b/src/libcode/vx_analysis_util/mode_atts.cc index 4a5bcc7406..e63d661549 100644 --- a/src/libcode/vx_analysis_util/mode_atts.cc +++ b/src/libcode/vx_analysis_util/mode_atts.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_analysis_util/mode_atts.h b/src/libcode/vx_analysis_util/mode_atts.h index 0b724fb204..493c90ff7b 100644 --- a/src/libcode/vx_analysis_util/mode_atts.h +++ b/src/libcode/vx_analysis_util/mode_atts.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_analysis_util/mode_job.cc b/src/libcode/vx_analysis_util/mode_job.cc index 006a1cccbd..b2e0b1339f 100644 --- a/src/libcode/vx_analysis_util/mode_job.cc +++ b/src/libcode/vx_analysis_util/mode_job.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_analysis_util/mode_job.h b/src/libcode/vx_analysis_util/mode_job.h index d83f00b12b..57354a04b9 100644 --- a/src/libcode/vx_analysis_util/mode_job.h +++ b/src/libcode/vx_analysis_util/mode_job.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_analysis_util/mode_line.cc b/src/libcode/vx_analysis_util/mode_line.cc index 2239f7db92..5a7319565f 100644 --- a/src/libcode/vx_analysis_util/mode_line.cc +++ b/src/libcode/vx_analysis_util/mode_line.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_analysis_util/mode_line.h b/src/libcode/vx_analysis_util/mode_line.h index 03bb6ac893..ccfd09e539 100644 --- a/src/libcode/vx_analysis_util/mode_line.h +++ b/src/libcode/vx_analysis_util/mode_line.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_analysis_util/stat_job.cc b/src/libcode/vx_analysis_util/stat_job.cc index ea781a5fc0..963271d905 100644 --- a/src/libcode/vx_analysis_util/stat_job.cc +++ b/src/libcode/vx_analysis_util/stat_job.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_analysis_util/stat_job.h b/src/libcode/vx_analysis_util/stat_job.h index c91a1f47f4..96ee2fc103 100644 --- a/src/libcode/vx_analysis_util/stat_job.h +++ b/src/libcode/vx_analysis_util/stat_job.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_analysis_util/stat_line.cc b/src/libcode/vx_analysis_util/stat_line.cc index 1b755a4c02..faf5c409f3 100644 --- a/src/libcode/vx_analysis_util/stat_line.cc +++ b/src/libcode/vx_analysis_util/stat_line.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_analysis_util/stat_line.h b/src/libcode/vx_analysis_util/stat_line.h index d757a564aa..9a30820fcc 100644 --- a/src/libcode/vx_analysis_util/stat_line.h +++ b/src/libcode/vx_analysis_util/stat_line.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_analysis_util/time_series.cc b/src/libcode/vx_analysis_util/time_series.cc index a2f2418785..a07c07debd 100644 --- a/src/libcode/vx_analysis_util/time_series.cc +++ b/src/libcode/vx_analysis_util/time_series.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_analysis_util/time_series.h b/src/libcode/vx_analysis_util/time_series.h index 81e6318ac7..48e523e6c8 100644 --- a/src/libcode/vx_analysis_util/time_series.h +++ b/src/libcode/vx_analysis_util/time_series.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_analysis_util/vx_analysis_util.h b/src/libcode/vx_analysis_util/vx_analysis_util.h index 9167ad82a3..b35f7dc7f4 100644 --- a/src/libcode/vx_analysis_util/vx_analysis_util.h +++ b/src/libcode/vx_analysis_util/vx_analysis_util.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_bool_calc/tokentype_to_string.cc b/src/libcode/vx_bool_calc/tokentype_to_string.cc index 077d087344..ef5df73887 100644 --- a/src/libcode/vx_bool_calc/tokentype_to_string.cc +++ b/src/libcode/vx_bool_calc/tokentype_to_string.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_bool_calc/tokentype_to_string.h b/src/libcode/vx_bool_calc/tokentype_to_string.h index 57b18c903e..b50278a667 100644 --- a/src/libcode/vx_bool_calc/tokentype_to_string.h +++ b/src/libcode/vx_bool_calc/tokentype_to_string.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_color/color.cc b/src/libcode/vx_color/color.cc index 79b57b6304..715968ecab 100644 --- a/src/libcode/vx_color/color.cc +++ b/src/libcode/vx_color/color.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_color/color.h b/src/libcode/vx_color/color.h index 520f825e31..cdf84f5113 100644 --- a/src/libcode/vx_color/color.h +++ b/src/libcode/vx_color/color.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_color/color_list.cc b/src/libcode/vx_color/color_list.cc index 05b900c3cb..eb3c8cad18 100644 --- a/src/libcode/vx_color/color_list.cc +++ b/src/libcode/vx_color/color_list.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_color/color_list.h b/src/libcode/vx_color/color_list.h index 62e46f3ce7..218c9344f0 100644 --- a/src/libcode/vx_color/color_list.h +++ b/src/libcode/vx_color/color_list.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_color/color_parser.h b/src/libcode/vx_color/color_parser.h index 99aa8640a3..f697cca26f 100644 --- a/src/libcode/vx_color/color_parser.h +++ b/src/libcode/vx_color/color_parser.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_color/color_table.cc b/src/libcode/vx_color/color_table.cc index 406a3fa7e3..341a5f00d2 100644 --- a/src/libcode/vx_color/color_table.cc +++ b/src/libcode/vx_color/color_table.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_color/vx_color.h b/src/libcode/vx_color/vx_color.h index 4862a9a20c..a6fa86a9cd 100644 --- a/src/libcode/vx_color/vx_color.h +++ b/src/libcode/vx_color/vx_color.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d/data2d_utils.cc b/src/libcode/vx_data2d/data2d_utils.cc index 3545e93384..8080480214 100644 --- a/src/libcode/vx_data2d/data2d_utils.cc +++ b/src/libcode/vx_data2d/data2d_utils.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d/data2d_utils.h b/src/libcode/vx_data2d/data2d_utils.h index 492a259c79..317eb92f72 100644 --- a/src/libcode/vx_data2d/data2d_utils.h +++ b/src/libcode/vx_data2d/data2d_utils.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d/data_class.cc b/src/libcode/vx_data2d/data_class.cc index b44b94351e..1d95284e38 100644 --- a/src/libcode/vx_data2d/data_class.cc +++ b/src/libcode/vx_data2d/data_class.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d/data_class.h b/src/libcode/vx_data2d/data_class.h index c71547be2f..2e2bf2c7e1 100644 --- a/src/libcode/vx_data2d/data_class.h +++ b/src/libcode/vx_data2d/data_class.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d/level_info.cc b/src/libcode/vx_data2d/level_info.cc index a7584eb75e..a02966fb95 100644 --- a/src/libcode/vx_data2d/level_info.cc +++ b/src/libcode/vx_data2d/level_info.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d/level_info.h b/src/libcode/vx_data2d/level_info.h index 5232529242..4a1dc28f1d 100644 --- a/src/libcode/vx_data2d/level_info.h +++ b/src/libcode/vx_data2d/level_info.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d/leveltype_to_string.cc b/src/libcode/vx_data2d/leveltype_to_string.cc index dc95c439b4..1c7d52b24e 100644 --- a/src/libcode/vx_data2d/leveltype_to_string.cc +++ b/src/libcode/vx_data2d/leveltype_to_string.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d/leveltype_to_string.h b/src/libcode/vx_data2d/leveltype_to_string.h index 6f7fc5e3a4..730fd5e3cd 100644 --- a/src/libcode/vx_data2d/leveltype_to_string.h +++ b/src/libcode/vx_data2d/leveltype_to_string.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d/mask_filters.cc b/src/libcode/vx_data2d/mask_filters.cc index bc8aa17d13..b0b6e4e6fa 100644 --- a/src/libcode/vx_data2d/mask_filters.cc +++ b/src/libcode/vx_data2d/mask_filters.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d/mask_filters.h b/src/libcode/vx_data2d/mask_filters.h index 39d7264138..ee40431be0 100644 --- a/src/libcode/vx_data2d/mask_filters.h +++ b/src/libcode/vx_data2d/mask_filters.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d/table_lookup.cc b/src/libcode/vx_data2d/table_lookup.cc index fbc6cb6622..0fba08a268 100644 --- a/src/libcode/vx_data2d/table_lookup.cc +++ b/src/libcode/vx_data2d/table_lookup.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d/table_lookup.h b/src/libcode/vx_data2d/table_lookup.h index 0a54139b41..a1a1d56c0e 100644 --- a/src/libcode/vx_data2d/table_lookup.h +++ b/src/libcode/vx_data2d/table_lookup.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d/var_info.cc b/src/libcode/vx_data2d/var_info.cc index 6014a87965..6ee74c08e7 100644 --- a/src/libcode/vx_data2d/var_info.cc +++ b/src/libcode/vx_data2d/var_info.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d/var_info.h b/src/libcode/vx_data2d/var_info.h index 15fa2f90b7..ccb58a93f1 100644 --- a/src/libcode/vx_data2d/var_info.h +++ b/src/libcode/vx_data2d/var_info.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d/vx_data2d.h b/src/libcode/vx_data2d/vx_data2d.h index 1212aaaf4d..ec884110a4 100644 --- a/src/libcode/vx_data2d/vx_data2d.h +++ b/src/libcode/vx_data2d/vx_data2d.h @@ -1,7 +1,7 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_factory/data2d_factory.cc b/src/libcode/vx_data2d_factory/data2d_factory.cc index 5461892069..7d188c2080 100644 --- a/src/libcode/vx_data2d_factory/data2d_factory.cc +++ b/src/libcode/vx_data2d_factory/data2d_factory.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_factory/data2d_factory.h b/src/libcode/vx_data2d_factory/data2d_factory.h index ea15ec5e3b..0ad9072900 100644 --- a/src/libcode/vx_data2d_factory/data2d_factory.h +++ b/src/libcode/vx_data2d_factory/data2d_factory.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_factory/data2d_factory_utils.cc b/src/libcode/vx_data2d_factory/data2d_factory_utils.cc index 6818aa4098..83a2ed7ce1 100644 --- a/src/libcode/vx_data2d_factory/data2d_factory_utils.cc +++ b/src/libcode/vx_data2d_factory/data2d_factory_utils.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_factory/data2d_factory_utils.h b/src/libcode/vx_data2d_factory/data2d_factory_utils.h index 12e6bdde15..aec07f95f8 100644 --- a/src/libcode/vx_data2d_factory/data2d_factory_utils.h +++ b/src/libcode/vx_data2d_factory/data2d_factory_utils.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_factory/is_bufr_file.cc b/src/libcode/vx_data2d_factory/is_bufr_file.cc index b728c7df6a..946a5f544d 100644 --- a/src/libcode/vx_data2d_factory/is_bufr_file.cc +++ b/src/libcode/vx_data2d_factory/is_bufr_file.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_factory/is_bufr_file.h b/src/libcode/vx_data2d_factory/is_bufr_file.h index a7d9b804d8..9937ac335b 100644 --- a/src/libcode/vx_data2d_factory/is_bufr_file.h +++ b/src/libcode/vx_data2d_factory/is_bufr_file.h @@ -1,7 +1,7 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_factory/is_grib_file.cc b/src/libcode/vx_data2d_factory/is_grib_file.cc index 977c0cd68d..ae803eff0b 100644 --- a/src/libcode/vx_data2d_factory/is_grib_file.cc +++ b/src/libcode/vx_data2d_factory/is_grib_file.cc @@ -1,7 +1,7 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_factory/is_grib_file.h b/src/libcode/vx_data2d_factory/is_grib_file.h index fd9f753781..6be64b03c6 100644 --- a/src/libcode/vx_data2d_factory/is_grib_file.h +++ b/src/libcode/vx_data2d_factory/is_grib_file.h @@ -1,7 +1,7 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_factory/is_netcdf_file.cc b/src/libcode/vx_data2d_factory/is_netcdf_file.cc index d844d76962..d59b9cb6e3 100644 --- a/src/libcode/vx_data2d_factory/is_netcdf_file.cc +++ b/src/libcode/vx_data2d_factory/is_netcdf_file.cc @@ -1,7 +1,7 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_factory/is_netcdf_file.h b/src/libcode/vx_data2d_factory/is_netcdf_file.h index ddfdbbe1b8..6af9a6f6fa 100644 --- a/src/libcode/vx_data2d_factory/is_netcdf_file.h +++ b/src/libcode/vx_data2d_factory/is_netcdf_file.h @@ -1,7 +1,7 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_factory/parse_file_list.cc b/src/libcode/vx_data2d_factory/parse_file_list.cc index 24a41cd9ea..5c11d753e7 100644 --- a/src/libcode/vx_data2d_factory/parse_file_list.cc +++ b/src/libcode/vx_data2d_factory/parse_file_list.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_factory/parse_file_list.h b/src/libcode/vx_data2d_factory/parse_file_list.h index c196bc0015..76a0b9f2c7 100644 --- a/src/libcode/vx_data2d_factory/parse_file_list.h +++ b/src/libcode/vx_data2d_factory/parse_file_list.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_factory/var_info_factory.cc b/src/libcode/vx_data2d_factory/var_info_factory.cc index 4a308c077b..f270164ad1 100644 --- a/src/libcode/vx_data2d_factory/var_info_factory.cc +++ b/src/libcode/vx_data2d_factory/var_info_factory.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_factory/var_info_factory.h b/src/libcode/vx_data2d_factory/var_info_factory.h index 747fb9d19a..eb150b39a2 100644 --- a/src/libcode/vx_data2d_factory/var_info_factory.h +++ b/src/libcode/vx_data2d_factory/var_info_factory.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_factory/vx_data2d_factory.h b/src/libcode/vx_data2d_factory/vx_data2d_factory.h index 99b30455e5..ab1d97c892 100644 --- a/src/libcode/vx_data2d_factory/vx_data2d_factory.h +++ b/src/libcode/vx_data2d_factory/vx_data2d_factory.h @@ -1,7 +1,7 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_grib/data2d_grib.cc b/src/libcode/vx_data2d_grib/data2d_grib.cc index 9ac709ef3a..09dc80815a 100644 --- a/src/libcode/vx_data2d_grib/data2d_grib.cc +++ b/src/libcode/vx_data2d_grib/data2d_grib.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_grib/data2d_grib.h b/src/libcode/vx_data2d_grib/data2d_grib.h index ad14d6e8a3..103413652c 100644 --- a/src/libcode/vx_data2d_grib/data2d_grib.h +++ b/src/libcode/vx_data2d_grib/data2d_grib.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_grib/data2d_grib_utils.cc b/src/libcode/vx_data2d_grib/data2d_grib_utils.cc index 29230589e3..2f1f66385b 100644 --- a/src/libcode/vx_data2d_grib/data2d_grib_utils.cc +++ b/src/libcode/vx_data2d_grib/data2d_grib_utils.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_grib/data2d_grib_utils.h b/src/libcode/vx_data2d_grib/data2d_grib_utils.h index 8d855d8851..3d58f08256 100644 --- a/src/libcode/vx_data2d_grib/data2d_grib_utils.h +++ b/src/libcode/vx_data2d_grib/data2d_grib_utils.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_grib/grib_classes.cc b/src/libcode/vx_data2d_grib/grib_classes.cc index cb5107c57e..5954a6ed7d 100644 --- a/src/libcode/vx_data2d_grib/grib_classes.cc +++ b/src/libcode/vx_data2d_grib/grib_classes.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_grib/grib_classes.h b/src/libcode/vx_data2d_grib/grib_classes.h index cb76bf78da..098bad3fd4 100644 --- a/src/libcode/vx_data2d_grib/grib_classes.h +++ b/src/libcode/vx_data2d_grib/grib_classes.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_grib/grib_strings.cc b/src/libcode/vx_data2d_grib/grib_strings.cc index b03b614079..f9b3edcdac 100644 --- a/src/libcode/vx_data2d_grib/grib_strings.cc +++ b/src/libcode/vx_data2d_grib/grib_strings.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_grib/grib_strings.h b/src/libcode/vx_data2d_grib/grib_strings.h index b79d8b08b8..91b6bd54c9 100644 --- a/src/libcode/vx_data2d_grib/grib_strings.h +++ b/src/libcode/vx_data2d_grib/grib_strings.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_grib/grib_utils.cc b/src/libcode/vx_data2d_grib/grib_utils.cc index 0fed9ff708..095be46d0a 100644 --- a/src/libcode/vx_data2d_grib/grib_utils.cc +++ b/src/libcode/vx_data2d_grib/grib_utils.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_grib/grib_utils.h b/src/libcode/vx_data2d_grib/grib_utils.h index 3a0c994d0f..0b1b3e2040 100644 --- a/src/libcode/vx_data2d_grib/grib_utils.h +++ b/src/libcode/vx_data2d_grib/grib_utils.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_grib/var_info_grib.cc b/src/libcode/vx_data2d_grib/var_info_grib.cc index e6bb74198f..32f841c32b 100644 --- a/src/libcode/vx_data2d_grib/var_info_grib.cc +++ b/src/libcode/vx_data2d_grib/var_info_grib.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_grib/var_info_grib.h b/src/libcode/vx_data2d_grib/var_info_grib.h index d695eed007..4d37432e9f 100644 --- a/src/libcode/vx_data2d_grib/var_info_grib.h +++ b/src/libcode/vx_data2d_grib/var_info_grib.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_grib/vx_data2d_grib.h b/src/libcode/vx_data2d_grib/vx_data2d_grib.h index ad94d4f757..db2d2e9632 100644 --- a/src/libcode/vx_data2d_grib/vx_data2d_grib.h +++ b/src/libcode/vx_data2d_grib/vx_data2d_grib.h @@ -1,7 +1,7 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_grib/vx_grib_classes.h b/src/libcode/vx_data2d_grib/vx_grib_classes.h index 444a02a49d..79f97a99f5 100644 --- a/src/libcode/vx_data2d_grib/vx_grib_classes.h +++ b/src/libcode/vx_data2d_grib/vx_grib_classes.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_grib2/data2d_grib2.cc b/src/libcode/vx_data2d_grib2/data2d_grib2.cc index e86ef7ca2c..5ea279fb96 100644 --- a/src/libcode/vx_data2d_grib2/data2d_grib2.cc +++ b/src/libcode/vx_data2d_grib2/data2d_grib2.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) @@ -986,6 +986,8 @@ void MetGrib2DataFile::read_grib2_record_list() { void MetGrib2DataFile::read_grib2_grid(gribfield *gfld) { + const char * method_name = "MetGrib2DataFile::read_grib2_grid() -> "; + double d, r_km; int ResCompFlag; char hem = 0; @@ -1040,7 +1042,7 @@ void MetGrib2DataFile::read_grib2_grid(gribfield *gfld) { // check for thinned lat/lon grid if( data.Nlon == -1 ){ - mlog << Error << "\nMetGrib2DataFile::read_grib2_grid() -> " + mlog << Error << "\n" << method_name << "Thinned Lat/Lon grids are not supported for GRIB version 2.\n\n"; exit(1); } @@ -1329,7 +1331,7 @@ void MetGrib2DataFile::read_grib2_grid(gribfield *gfld) { // build an LaeaData struct with the projection information LaeaData laea; laea.name = laea_proj_type; - laea.spheroid_name = "Grib template"; + m_strncpy(laea.spheroid_name, "Grib template",m_strlen("Grib template"), method_name); // earth shape // Reference: https://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_doc/grib2_table3-2.shtml @@ -1385,7 +1387,7 @@ void MetGrib2DataFile::read_grib2_grid(gribfield *gfld) { break; default: - mlog << Error << "\nMetGrib2DataFile::read_grib2_grid() -> " + mlog << Error << "\n" << method_name << "unsupported earth shape value of " << earth_shape_int << "!\n\n"; exit(1); } @@ -1433,7 +1435,7 @@ void MetGrib2DataFile::read_grib2_grid(gribfield *gfld) { // unrecognized grid else { - mlog << Error << "\nMetGrib2DataFile::read_grib2_grid() -> " + mlog << Error << "\n" << method_name << "found unrecognized grid definition (" << gfld->igdtnum << ")\n\n"; exit(1); diff --git a/src/libcode/vx_data2d_grib2/data2d_grib2.h b/src/libcode/vx_data2d_grib2/data2d_grib2.h index abf334a837..a37561fb03 100644 --- a/src/libcode/vx_data2d_grib2/data2d_grib2.h +++ b/src/libcode/vx_data2d_grib2/data2d_grib2.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_grib2/var_info_grib2.cc b/src/libcode/vx_data2d_grib2/var_info_grib2.cc index ef3a3c7db6..9d67ab1929 100644 --- a/src/libcode/vx_data2d_grib2/var_info_grib2.cc +++ b/src/libcode/vx_data2d_grib2/var_info_grib2.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_grib2/var_info_grib2.h b/src/libcode/vx_data2d_grib2/var_info_grib2.h index 5f8e320339..7848aefb7f 100644 --- a/src/libcode/vx_data2d_grib2/var_info_grib2.h +++ b/src/libcode/vx_data2d_grib2/var_info_grib2.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_nc_cf/data2d_nc_cf.cc b/src/libcode/vx_data2d_nc_cf/data2d_nc_cf.cc index 36c5479921..72275ecd9f 100644 --- a/src/libcode/vx_data2d_nc_cf/data2d_nc_cf.cc +++ b/src/libcode/vx_data2d_nc_cf/data2d_nc_cf.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_nc_cf/data2d_nc_cf.h b/src/libcode/vx_data2d_nc_cf/data2d_nc_cf.h index a53631f44b..a80b176c3a 100644 --- a/src/libcode/vx_data2d_nc_cf/data2d_nc_cf.h +++ b/src/libcode/vx_data2d_nc_cf/data2d_nc_cf.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_nc_cf/nc_cf_file.cc b/src/libcode/vx_data2d_nc_cf/nc_cf_file.cc index 5018f62e8c..84c147a749 100644 --- a/src/libcode/vx_data2d_nc_cf/nc_cf_file.cc +++ b/src/libcode/vx_data2d_nc_cf/nc_cf_file.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_nc_cf/nc_cf_file.h b/src/libcode/vx_data2d_nc_cf/nc_cf_file.h index 3348a09347..d3e50a30d0 100644 --- a/src/libcode/vx_data2d_nc_cf/nc_cf_file.h +++ b/src/libcode/vx_data2d_nc_cf/nc_cf_file.h @@ -1,7 +1,7 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_nc_cf/var_info_nc_cf.cc b/src/libcode/vx_data2d_nc_cf/var_info_nc_cf.cc index dba8bd4ec5..00695d8da5 100644 --- a/src/libcode/vx_data2d_nc_cf/var_info_nc_cf.cc +++ b/src/libcode/vx_data2d_nc_cf/var_info_nc_cf.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_nc_cf/var_info_nc_cf.h b/src/libcode/vx_data2d_nc_cf/var_info_nc_cf.h index ce20289c2c..36b3f7b892 100644 --- a/src/libcode/vx_data2d_nc_cf/var_info_nc_cf.h +++ b/src/libcode/vx_data2d_nc_cf/var_info_nc_cf.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_nc_cf/vx_data2d_nc_cf.h b/src/libcode/vx_data2d_nc_cf/vx_data2d_nc_cf.h index de9e7e8051..cc3137e86f 100644 --- a/src/libcode/vx_data2d_nc_cf/vx_data2d_nc_cf.h +++ b/src/libcode/vx_data2d_nc_cf/vx_data2d_nc_cf.h @@ -1,7 +1,7 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_nc_met/data2d_nc_met.cc b/src/libcode/vx_data2d_nc_met/data2d_nc_met.cc index 46a39bd502..40caecba95 100644 --- a/src/libcode/vx_data2d_nc_met/data2d_nc_met.cc +++ b/src/libcode/vx_data2d_nc_met/data2d_nc_met.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_nc_met/data2d_nc_met.h b/src/libcode/vx_data2d_nc_met/data2d_nc_met.h index e137583b78..db7f166ce1 100644 --- a/src/libcode/vx_data2d_nc_met/data2d_nc_met.h +++ b/src/libcode/vx_data2d_nc_met/data2d_nc_met.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/libcode/vx_data2d_nc_met/get_met_grid.cc b/src/libcode/vx_data2d_nc_met/get_met_grid.cc index b3be5e816e..7ae924bd34 100644 --- a/src/libcode/vx_data2d_nc_met/get_met_grid.cc +++ b/src/libcode/vx_data2d_nc_met/get_met_grid.cc @@ -1,15 +1,13 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) // ** P.O.Box 3000, Boulder, Colorado, 80307-3000, USA // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* - /////////////////////////////////////////////////////////////////////////////// - using namespace std; #include @@ -26,32 +24,28 @@ using namespace netCDF; #include "nc_utils.h" #include "vx_log.h" - /////////////////////////////////////////////////////////////////////////////// +static void read_netcdf_grid_v3 (NcFile *, Grid &); +static void read_netcdf_grid_v2 (NcFile *, Grid &); -static void read_netcdf_grid_v3 (NcFile *, Grid &); -static void read_netcdf_grid_v2 (NcFile *, Grid &); - -static void get_latlon_data_v3 (NcFile *, LatLonData &); -static void get_rot_latlon_data_v3 (NcFile *, RotatedLatLonData &); -static void get_lambert_data_v3 (NcFile *, LambertData &); -static void get_stereographic_data_v3 (NcFile *, StereographicData &); -static void get_mercator_data_v3 (NcFile *, MercatorData &); - -static void get_latlon_data_v2 (NcFile *, LatLonData &); -static void get_lambert_data_v2 (NcFile *, LambertData &); -static void get_stereographic_data_v2 (NcFile *, StereographicData &); -static void get_mercator_data_v2 (NcFile *, MercatorData &); - -static void get_gaussian_data (NcFile *, GaussianData &); -static void get_semilatlon_data (NcFile *, SemiLatLonData &); -static void get_semilatlon_var (NcFile *, const char *, NumArray &); +static LatLonData get_latlon_data (NcFile *); +static RotatedLatLonData get_rot_latlon_data (NcFile *); +static LambertData get_lambert_data (NcFile *); +static LaeaData get_laea_data (NcFile *); +static StereographicData get_stereographic_data (NcFile *); +static MercatorData get_mercator_data (NcFile *); +static GaussianData get_gaussian_data (NcFile *); +static SemiLatLonData get_semilatlon_data (NcFile *); +static void get_semilatlon_var (NcFile *, const char *, NumArray &); +static LatLonData get_latlon_data_v2 (NcFile *); +static LambertData get_lambert_data_v2 (NcFile *); +static StereographicData get_stereographic_data_v2 (NcFile *); +static MercatorData get_mercator_data_v2 (NcFile *); /////////////////////////////////////////////////////////////////////////////// - void read_netcdf_grid(NcFile * f_in, Grid & gr) { // Parse the projection information based on the version @@ -59,9 +53,6 @@ void read_netcdf_grid(NcFile * f_in, Grid & gr) { read_netcdf_grid_v3(f_in, gr); } else { - mlog << Warning << "\nread_netcdf_grid() -> " - << "Applying METv2.0 grid parsing logic since the \"MET_version\" " - << "global attribute is not present.\n\n"; mlog << Warning << "\nread_netcdf_grid() -> " << "Applying METv2.0 grid parsing logic since the \"MET_version\" " << "global attribute is not present.\n\n"; @@ -71,171 +62,119 @@ void read_netcdf_grid(NcFile * f_in, Grid & gr) { return; } - /////////////////////////////////////////////////////////////////////////////// - -void read_netcdf_grid_v3(NcFile * f_in, Grid & gr) -{ - - NcGroupAtt proj_att; - - // Structures to store projection info - LambertData lc_data; - StereographicData st_data; - LatLonData ll_data; - RotatedLatLonData rll_data; - MercatorData mc_data; - GaussianData g_data; - SemiLatLonData sl_data; +void read_netcdf_grid_v3(NcFile * f_in, Grid & gr) { // // Parse the grid specification out of the global attributes // - proj_att = GET_NC_ATT_OBJ_BY_P(f_in, "Projection"); + NcGroupAtt proj_att = GET_NC_ATT_OBJ_BY_P(f_in, "Projection"); // // Parse out the grid specification depending on the projection type - // The following Projection types are supported: - // - Lat/Lon - // - Mercator - // - Lambert Conformal - // - Polar Stereographic - // - Gaussian - // - SemiLatLon // if (!IS_INVALID_NC(proj_att)) { ConcatString proj_att_name; get_global_att(&proj_att, proj_att_name); - if ( strcasecmp(proj_att_name.c_str(), latlon_proj_type) == 0 ) { - - get_latlon_data_v3(f_in, ll_data); - gr.set(ll_data); - - } else if ( strcasecmp(proj_att_name.c_str(), rotated_latlon_proj_type) == 0 ) { - - get_rot_latlon_data_v3(f_in, rll_data); - gr.set(rll_data); - - } else if ( strcasecmp(proj_att_name.c_str(), mercator_proj_type) == 0 ) { - - get_mercator_data_v3(f_in, mc_data); - gr.set(mc_data); - - } else if ( strcasecmp(proj_att_name.c_str(), lambert_proj_type) == 0 ) { - - get_lambert_data_v3(f_in, lc_data); - gr.set(lc_data); - - } else if ( strcasecmp(proj_att_name.c_str(), stereographic_proj_type) == 0 ) { - - get_stereographic_data_v3(f_in, st_data); - gr.set(st_data); - - } else if ( strcasecmp(proj_att_name.c_str(), gaussian_proj_type) == 0 ) { - - get_gaussian_data(f_in, g_data); - gr.set(g_data); - - } else if ( strcasecmp(proj_att_name.c_str(), semilatlon_proj_type) == 0 ) { - - get_semilatlon_data(f_in, sl_data); - gr.set(sl_data); - + if ( strcasecmp(proj_att_name.c_str(), + latlon_proj_type) == 0 ) { + gr.set(get_latlon_data(f_in)); + } else if ( strcasecmp(proj_att_name.c_str(), + rotated_latlon_proj_type) == 0 ) { + gr.set(get_rot_latlon_data(f_in)); + } else if ( strcasecmp(proj_att_name.c_str(), + mercator_proj_type) == 0 ) { + gr.set(get_mercator_data(f_in)); + } else if ( strcasecmp(proj_att_name.c_str(), + lambert_proj_type) == 0 ) { + gr.set(get_lambert_data(f_in)); + } else if ( strcasecmp(proj_att_name.c_str(), + laea_proj_type) == 0 ) { + gr.set(get_laea_data(f_in)); + } else if ( strcasecmp(proj_att_name.c_str(), + stereographic_proj_type) == 0 ) { + gr.set(get_stereographic_data(f_in)); + } else if ( strcasecmp(proj_att_name.c_str(), + gaussian_proj_type) == 0 ) { + gr.set(get_gaussian_data(f_in)); + } else if ( strcasecmp(proj_att_name.c_str(), + semilatlon_proj_type) == 0 ) { + gr.set(get_semilatlon_data(f_in)); } else { // Unsupported projection type mlog << Error << "\nread_netcdf_grid_v3() -> " << "Projection \"" << proj_att_name - << "\" not a currently supported type (\"" - << latlon_proj_type << "\", \"" << mercator_proj_type << "\", \"" - << lambert_proj_type << "\", \"" << stereographic_proj_type - << "\").\n\n"; + << "\" not a currently supported type (" + << latlon_proj_type << ", " + << rotated_latlon_proj_type << ", " + << mercator_proj_type << ", " + << lambert_proj_type << ", " + << laea_proj_type << ", " + << stereographic_proj_type << ", " + << gaussian_proj_type << ", " + << semilatlon_proj_type << ").\n\n"; exit(1); } } - // - // done - // - -return; - + return; } /////////////////////////////////////////////////////////////////////////////// - void read_netcdf_grid_v2(NcFile * f_in, Grid & gr) { - NcGroupAtt proj_att; - - // Structures to store projection info - LambertData lc_data; - StereographicData st_data; - LatLonData ll_data; - MercatorData mc_data; - // // Parse the grid specification out of the global attributes // - proj_att = GET_NC_ATT_OBJ_BY_P(f_in, "Projection"); + NcGroupAtt proj_att = GET_NC_ATT_OBJ_BY_P(f_in, "Projection"); // // Parse out the grid specification depending on the projection type - // The following 4 Projection types are supported: - // - Lat/Lon - // - Mercator - // - Lambert Conformal - // - Polar Stereographic // if (!IS_INVALID_NC(proj_att)) { ConcatString proj_att_name; get_global_att(&proj_att, proj_att_name); - if ( strcasecmp(proj_att_name.c_str(), latlon_proj_type) == 0 ) { - get_latlon_data_v2(f_in, ll_data); - gr.set(ll_data); - } else if ( strcasecmp(proj_att_name.c_str(), mercator_proj_type) == 0 ) { - get_mercator_data_v2(f_in, mc_data); - gr.set(mc_data); - } else if ( strcasecmp(proj_att_name.c_str(), lambert_proj_type) == 0 ) { - get_lambert_data_v2(f_in, lc_data); - gr.set(lc_data); - } else if ( strcasecmp(proj_att_name.c_str(), stereographic_proj_type) == 0 ) { - get_stereographic_data_v2(f_in, st_data); - gr.set(st_data); + if ( strcasecmp(proj_att_name.c_str(), + latlon_proj_type) == 0 ) { + gr.set(get_latlon_data_v2(f_in)); + } else if ( strcasecmp(proj_att_name.c_str(), + mercator_proj_type) == 0 ) { + gr.set(get_mercator_data_v2(f_in)); + } else if ( strcasecmp(proj_att_name.c_str(), + lambert_proj_type) == 0 ) { + gr.set(get_lambert_data_v2(f_in)); + } else if ( strcasecmp(proj_att_name.c_str(), + stereographic_proj_type) == 0 ) { + gr.set(get_stereographic_data_v2(f_in)); } else { // Unsupported projection type mlog << Error << "\nread_netcdf_grid_v2() -> " << "Projection \"" << proj_att_name - << "\" not a currently supported type (\"" - << latlon_proj_type << "\", \"" << mercator_proj_type << "\", \"" - << lambert_proj_type << "\", \"" << stereographic_proj_type - << "\").\n\n"; + << "\" not a currently supported type (" + << latlon_proj_type << ", " + << mercator_proj_type << ", " + << lambert_proj_type << ", " + << stereographic_proj_type << ").\n\n"; exit(1); } } - // - // done - // - -return; - + return; } - /////////////////////////////////////////////////////////////////////////////// - int has_variable(NcFile *f_in, const char *var_name) { int found; @@ -247,562 +186,523 @@ int has_variable(NcFile *f_in, const char *var_name) { return(found); } - /////////////////////////////////////////////////////////////////////////////// +LatLonData get_latlon_data(NcFile * ncfile) { -void get_latlon_data_v3(NcFile * ncfile, LatLonData & data) -{ + LatLonData data; // Store the grid name -data.name = latlon_proj_type; + data.name = latlon_proj_type; // Latitude of the bottom left corner -get_global_att(ncfile, string("lat_ll"), data.lat_ll); + get_global_att(ncfile, string("lat_ll"), data.lat_ll); // Longitude of the bottom left corner -get_global_att(ncfile, string("lon_ll"), data.lon_ll); -data.lon_ll *= -1.0; + get_global_att(ncfile, string("lon_ll"), data.lon_ll); + data.lon_ll *= -1.0; // Latitude increment -get_global_att(ncfile, string("delta_lat"), data.delta_lat); + get_global_att(ncfile, string("delta_lat"), data.delta_lat); // Longitude increment -get_global_att(ncfile, string("delta_lon"), data.delta_lon); + get_global_att(ncfile, string("delta_lon"), data.delta_lon); // Number of points in the Latitude (y) direction -get_global_att(ncfile, string("Nlat"), data.Nlat); + get_global_att(ncfile, string("Nlat"), data.Nlat); // Number of points in the Longitudinal (x) direction -get_global_att(ncfile, string("Nlon"), data.Nlon); + get_global_att(ncfile, string("Nlon"), data.Nlon); -data.dump(); - - // - // done - // - -return; + data.dump(); + return(data); } - /////////////////////////////////////////////////////////////////////////////// +RotatedLatLonData get_rot_latlon_data(NcFile * ncfile) { -void get_rot_latlon_data_v3(NcFile * ncfile, RotatedLatLonData & data) -{ + RotatedLatLonData data; // Store the grid name -data.name = latlon_proj_type; + data.name = latlon_proj_type; // Latitude of the bottom left corner -get_global_att(ncfile, string("rot_lat_ll"), data.rot_lat_ll); + get_global_att(ncfile, string("rot_lat_ll"), data.rot_lat_ll); // Longitude of the bottom left corner -get_global_att(ncfile, string("rot_lon_ll"), data.rot_lon_ll); -data.rot_lon_ll *= -1.0; + get_global_att(ncfile, string("rot_lon_ll"), data.rot_lon_ll); + data.rot_lon_ll *= -1.0; // Latitude increment -get_global_att(ncfile, string("delta_rot_lat"), data.delta_rot_lat); + get_global_att(ncfile, string("delta_rot_lat"), data.delta_rot_lat); // Longitude increment -get_global_att(ncfile, string("delta_rot_lon"), data.delta_rot_lon); + get_global_att(ncfile, string("delta_rot_lon"), data.delta_rot_lon); // Number of points in the Latitude (y) direction -get_global_att(ncfile, string("Nlat"), data.Nlat); + get_global_att(ncfile, string("Nlat"), data.Nlat); // Number of points in the Longitudinal (x) direction -get_global_att(ncfile, string("Nlon"), data.Nlon); + get_global_att(ncfile, string("Nlon"), data.Nlon); // true lat/lon of south pole - -get_global_att(ncfile, string("true_lat_south_pole"), data.true_lat_south_pole); -get_global_att(ncfile, string("true_lon_south_pole"), data.true_lon_south_pole); -if ( !west_longitude_positive ) data.true_lon_south_pole *= -1.0; + get_global_att(ncfile, string("true_lat_south_pole"), data.true_lat_south_pole); + get_global_att(ncfile, string("true_lon_south_pole"), data.true_lon_south_pole); + if ( !west_longitude_positive ) data.true_lon_south_pole *= -1.0; // auxiliary rotation + get_global_att(ncfile, string("aux_rotation"), data.aux_rotation); -get_global_att(ncfile, string("aux_rotation"), data.aux_rotation); - -data.dump(); - - // - // done - // - -return; + data.dump(); + return(data); } - /////////////////////////////////////////////////////////////////////////////// +LambertData get_lambert_data(NcFile * ncfile) { -void get_lambert_data_v3(NcFile * ncfile, LambertData & data) -{ - -ConcatString att_value; + LambertData data; + ConcatString att_value; // Store the grid name -data.name = lambert_proj_type; + data.name = lambert_proj_type; // Hemisphere -get_global_att(ncfile, string("hemisphere"), att_value); -data.hemisphere = att_value.char_at(0); + get_global_att(ncfile, string("hemisphere"), att_value); + data.hemisphere = att_value.char_at(0); // First scale latitude -get_global_att(ncfile, string("scale_lat_1"), data.scale_lat_1); + get_global_att(ncfile, string("scale_lat_1"), data.scale_lat_1); // Second scale latitude -get_global_att(ncfile, string("scale_lat_2"), data.scale_lat_2); + get_global_att(ncfile, string("scale_lat_2"), data.scale_lat_2); // Latitude pin -get_global_att(ncfile, string("lat_pin"), data.lat_pin); + get_global_att(ncfile, string("lat_pin"), data.lat_pin); // Longitude pin -get_global_att(ncfile, string("lon_pin"), data.lon_pin); -data.lon_pin *= -1.0; + get_global_att(ncfile, string("lon_pin"), data.lon_pin); + data.lon_pin *= -1.0; // X pin -get_global_att(ncfile, string("x_pin"), data.x_pin); + get_global_att(ncfile, string("x_pin"), data.x_pin); // Y pin -get_global_att(ncfile, string("y_pin"), data.y_pin); + get_global_att(ncfile, string("y_pin"), data.y_pin); // Orientation longitude -get_global_att(ncfile, string("lon_orient"), data.lon_orient); -data.lon_orient *= -1.0; + get_global_att(ncfile, string("lon_orient"), data.lon_orient); + data.lon_orient *= -1.0; // Grid spacing in km -get_global_att(ncfile, string("d_km"), data.d_km); + get_global_att(ncfile, string("d_km"), data.d_km); // Radius of the earth -get_global_att(ncfile, string("r_km"), data.r_km); + get_global_att(ncfile, string("r_km"), data.r_km); // Number of points in the x-direction -get_global_att(ncfile, string("nx"), data.nx); + get_global_att(ncfile, string("nx"), data.nx); // Number of points in the y-direction -get_global_att(ncfile, string("ny"), data.ny); + get_global_att(ncfile, string("ny"), data.ny); // Rotation angle -data.so2_angle = 0.0; + data.so2_angle = 0.0; -data.dump(); + data.dump(); - // - // done - // + return(data); +} -return; +/////////////////////////////////////////////////////////////////////////////// -} +LaeaData get_laea_data(NcFile * ncfile) { + const char * method_name = "get_laea_data() -> "; -/////////////////////////////////////////////////////////////////////////////// + LaeaData data; + ConcatString att_value; + // Store the grid name + data.name = laea_proj_type; -void get_stereographic_data_v3(NcFile * ncfile, StereographicData & data) -{ + // Spheroid name + get_global_att(ncfile, string("spheroid_name"), att_value); + m_strncpy(data.spheroid_name, att_value.c_str(), att_value.length(), method_name); + + // Grid spacing in km + get_global_att(ncfile, string("radius_km"), data.radius_km); + + // Equitorial radius in km + get_global_att(ncfile, string("equatorial_radius_km"), data.equatorial_radius_km); + + // Polar radius in km + get_global_att(ncfile, string("polar_radius_km"), data.polar_radius_km); + + // First latitude + get_global_att(ncfile, string("lat_first"), data.lat_first); + + // First longitude + get_global_att(ncfile, string("lon_first"), data.lon_first); + data.lon_first *= -1.0; + + // Standard latitude + get_global_att(ncfile, string("standard_lat"), data.standard_lat); + + // Central longitude + get_global_att(ncfile, string("central_lon"), data.central_lon); + data.central_lon *= -1.0; + + // Spacing in the x-dimension + get_global_att(ncfile, string("dx_km"), data.dx_km); + + // Spacing in the y-direction + get_global_att(ncfile, string("dy_km"), data.dy_km); + + // Number of points in the x-direction + get_global_att(ncfile, string("nx"), data.nx); + + // Number of points in the y-direction + get_global_att(ncfile, string("ny"), data.ny); + + // Is sphere + get_global_att(ncfile, string("is_sphere"), att_value); + data.is_sphere = string_to_bool(att_value.c_str()); + + data.dump(); -ConcatString att_value; + return(data); +} + +/////////////////////////////////////////////////////////////////////////////// + +StereographicData get_stereographic_data(NcFile * ncfile) { + + StereographicData data; + ConcatString att_value; // Store the grid name -data.name = stereographic_proj_type; + data.name = stereographic_proj_type; // Hemisphere -get_global_att(ncfile, (string)"hemisphere", att_value); -data.hemisphere = att_value.char_at(0); + get_global_att(ncfile, (string)"hemisphere", att_value); + data.hemisphere = att_value.char_at(0); // Scale latitude -get_global_att(ncfile, (string)"scale_lat", data.scale_lat); + get_global_att(ncfile, (string)"scale_lat", data.scale_lat); // Latitude pin -get_global_att(ncfile, (string)"lat_pin", data.lat_pin); + get_global_att(ncfile, (string)"lat_pin", data.lat_pin); // Longitude pin -get_global_att(ncfile, string("lon_pin"), data.lon_pin); -data.lon_pin *= -1.0; + get_global_att(ncfile, string("lon_pin"), data.lon_pin); + data.lon_pin *= -1.0; // X pin -get_global_att(ncfile, string("x_pin"), data.x_pin); + get_global_att(ncfile, string("x_pin"), data.x_pin); // Y pin -get_global_att(ncfile, string("y_pin"), data.y_pin); + get_global_att(ncfile, string("y_pin"), data.y_pin); // Orientation longitude -get_global_att(ncfile, string("lon_orient"), data.lon_orient); -data.lon_orient *= -1.0; + get_global_att(ncfile, string("lon_orient"), data.lon_orient); + data.lon_orient *= -1.0; // Grid spacing in km -get_global_att(ncfile, string("d_km"), data.d_km); + get_global_att(ncfile, string("d_km"), data.d_km); // Radius of the earth -get_global_att(ncfile, string("r_km"), data.r_km); + get_global_att(ncfile, string("r_km"), data.r_km); // Number of points in the x-direction -get_global_att(ncfile, string("nx"), data.nx); + get_global_att(ncfile, string("nx"), data.nx); // Number of points in the y-direction -get_global_att(ncfile, string("ny"), data.ny); + get_global_att(ncfile, string("ny"), data.ny); -data.eccentricity = 0.; -data.false_east = 0.; -data.false_north = 0.; -data.scale_factor = 1.0; -data.dy_km = data.d_km; + data.eccentricity = 0.; + data.false_east = 0.; + data.false_north = 0.; + data.scale_factor = 1.0; + data.dy_km = data.d_km; -data.dump(); - - // - // done - // - -return; + data.dump(); + return(data); } - /////////////////////////////////////////////////////////////////////////////// +MercatorData get_mercator_data(NcFile * ncfile) { -void get_mercator_data_v3(NcFile * ncfile, MercatorData & data) - -{ + MercatorData data; // Store the grid name -data.name = mercator_proj_type; + data.name = mercator_proj_type; // Latitude of the bottom left corner -get_global_att(ncfile, string("lat_ll"), data.lat_ll); + get_global_att(ncfile, string("lat_ll"), data.lat_ll); // Longitude of the bottom left corner -get_global_att(ncfile, string("lon_ll"), data.lon_ll); -data.lon_ll *= -1.0; + get_global_att(ncfile, string("lon_ll"), data.lon_ll); + data.lon_ll *= -1.0; // Latitude of the bottom left corner -get_global_att(ncfile, string("lat_ur"), data.lat_ur); + get_global_att(ncfile, string("lat_ur"), data.lat_ur); // Longitude of the bottom left corner -get_global_att(ncfile, string("lon_ur"), data.lon_ur); -data.lon_ur *= -1.0; + get_global_att(ncfile, string("lon_ur"), data.lon_ur); + data.lon_ur *= -1.0; // Number of points in the Latitudinal (y) direction -get_global_att(ncfile, string("ny"), data.ny); + get_global_att(ncfile, string("ny"), data.ny); // Number of points in the Longitudinal (x) direction -get_global_att(ncfile, string("nx"), data.nx); - -data.dump(); - - // - // done - // + get_global_att(ncfile, string("nx"), data.nx); -return; + data.dump(); + return(data); } - /////////////////////////////////////////////////////////////////////////////// +LatLonData get_latlon_data_v2(NcFile * ncfile) { -void get_latlon_data_v2(NcFile * ncfile, LatLonData & data) - -{ + LatLonData data; // Store the grid name -data.name = latlon_proj_type; + data.name = latlon_proj_type; // Latitude of the bottom left corner -get_global_att(ncfile, string("lat_ll_deg"), data.lat_ll); + get_global_att(ncfile, string("lat_ll_deg"), data.lat_ll); // Longitude of the bottom left corner -get_global_att(ncfile, string("lon_ll_deg"), data.lon_ll); -data.lon_ll *= -1.0; + get_global_att(ncfile, string("lon_ll_deg"), data.lon_ll); + data.lon_ll *= -1.0; // Latitude increment -get_global_att(ncfile, string("delta_lat_deg"), data.delta_lat); + get_global_att(ncfile, string("delta_lat_deg"), data.delta_lat); // Longitude increment -get_global_att(ncfile, string("delta_lon_deg"), data.delta_lon); + get_global_att(ncfile, string("delta_lon_deg"), data.delta_lon); // Number of points in the Latitude (y) direction -get_global_att(ncfile, string("Nlat"), data.Nlat); + get_global_att(ncfile, string("Nlat"), data.Nlat); // Number of points in the Longitudinal (x) direction -get_global_att(ncfile, string("Nlon"), data.Nlon); - -data.dump(); + get_global_att(ncfile, string("Nlon"), data.Nlon); - // - // done - // - -return; + data.dump(); + return(data); } - /////////////////////////////////////////////////////////////////////////////// +LambertData get_lambert_data_v2(NcFile * ncfile) { -void get_lambert_data_v2(NcFile * ncfile, LambertData & data) - -{ + LambertData data; // Store the grid name -data.name = lambert_proj_type; + data.name = lambert_proj_type; // First scale latitude -get_global_att(ncfile, string("p1_deg"), data.scale_lat_1); + get_global_att(ncfile, string("p1_deg"), data.scale_lat_1); // Second scale latitude -get_global_att(ncfile, string("p2_deg"), data.scale_lat_2); + get_global_att(ncfile, string("p2_deg"), data.scale_lat_2); // Latitude pin -get_global_att(ncfile, string("p0_deg"), data.lat_pin); + get_global_att(ncfile, string("p0_deg"), data.lat_pin); // Longitude pin -get_global_att(ncfile, string("l0_deg"), data.lon_pin); -data.lon_pin *= -1.0; + get_global_att(ncfile, string("l0_deg"), data.lon_pin); + data.lon_pin *= -1.0; // X pin -data.x_pin = 0.0; + data.x_pin = 0.0; // Y pin -data.y_pin = 0.0; + data.y_pin = 0.0; // Orientation longitude -get_global_att(ncfile, string("lcen_deg"), data.lon_orient); -data.lon_orient *= -1.0; + get_global_att(ncfile, string("lcen_deg"), data.lon_orient); + data.lon_orient *= -1.0; // Grid spacing in km -get_global_att(ncfile, string("d_km"), data.d_km); + get_global_att(ncfile, string("d_km"), data.d_km); // Radius of the earth -get_global_att(ncfile, string("r_km"), data.r_km); + get_global_att(ncfile, string("r_km"), data.r_km); // Number of points in the x-direction -get_global_att(ncfile, string("nx"), data.nx); + get_global_att(ncfile, string("nx"), data.nx); // Number of points in the y-direction -get_global_att(ncfile, string("ny"), data.ny); + get_global_att(ncfile, string("ny"), data.ny); // Rotation angle -data.so2_angle = 0.0; + data.so2_angle = 0.0; -data.dump(); - - // - // done - // - -return; + data.dump(); + return(data); } - /////////////////////////////////////////////////////////////////////////////// +StereographicData get_stereographic_data_v2(NcFile * ncfile) { -void get_stereographic_data_v2(NcFile * ncfile, StereographicData & data) - -{ + StereographicData data; // Store the grid name -data.name = stereographic_proj_type; + data.name = stereographic_proj_type; // Hemisphere, assume northern -data.hemisphere = 'N'; + data.hemisphere = 'N'; // Scale latitude -get_global_att(ncfile, string("p1_deg"), data.scale_lat); + get_global_att(ncfile, string("p1_deg"), data.scale_lat); // Latitude pin -get_global_att(ncfile, string("p0_deg"), data.lat_pin); + get_global_att(ncfile, string("p0_deg"), data.lat_pin); // Longitude pin -get_global_att(ncfile, string("l0_deg"), data.lon_pin); -data.lon_pin *= -1.0; + get_global_att(ncfile, string("l0_deg"), data.lon_pin); + data.lon_pin *= -1.0; // X pin -data.x_pin = 0.0; + data.x_pin = 0.0; // Y pin -data.y_pin = 0.0; + data.y_pin = 0.0; // Orientation longitude -get_global_att(ncfile, string("lcen_deg"), data.lon_orient); -data.lon_orient *= -1.0; + get_global_att(ncfile, string("lcen_deg"), data.lon_orient); + data.lon_orient *= -1.0; // Grid spacing in km -get_global_att(ncfile, string("d_km"), data.d_km); + get_global_att(ncfile, string("d_km"), data.d_km); // Radius of the earth -get_global_att(ncfile, string("r_km"), data.r_km); + get_global_att(ncfile, string("r_km"), data.r_km); // Number of points in the x-direction -get_global_att(ncfile, string("nx"), data.nx); + get_global_att(ncfile, string("nx"), data.nx); // Number of points in the y-direction -get_global_att(ncfile, string("ny"), data.ny); + get_global_att(ncfile, string("ny"), data.ny); -data.eccentricity = 0.; -data.false_east = 0.; -data.false_north = 0.; -data.scale_factor = 1.0; -data.dy_km = data.d_km; + data.eccentricity = 0.; + data.false_east = 0.; + data.false_north = 0.; + data.scale_factor = 1.0; + data.dy_km = data.d_km; -data.dump(); - - // - // done - // - -return; + data.dump(); + return(data); } - /////////////////////////////////////////////////////////////////////////////// +MercatorData get_mercator_data_v2(NcFile * ncfile) { -void get_mercator_data_v2(NcFile * ncfile, MercatorData & data) - -{ + MercatorData data; // Store the grid name -data.name = mercator_proj_type; + data.name = mercator_proj_type; // Latitude of the bottom left corner -get_global_att(ncfile, string("lat_ll_deg"), data.lat_ll); + get_global_att(ncfile, string("lat_ll_deg"), data.lat_ll); // Longitude of the bottom left corner -get_global_att(ncfile, string("lon_ll_deg"), data.lon_ll); -data.lon_ll *= -1.0; + get_global_att(ncfile, string("lon_ll_deg"), data.lon_ll); + data.lon_ll *= -1.0; // Latitude of the bottom left corner -get_global_att(ncfile, string("lat_ur_deg"), data.lat_ur); + get_global_att(ncfile, string("lat_ur_deg"), data.lat_ur); // Longitude of the bottom left corner -get_global_att(ncfile, string("lon_ur_deg"), data.lon_ur); -data.lon_ur *= -1.0; + get_global_att(ncfile, string("lon_ur_deg"), data.lon_ur); + data.lon_ur *= -1.0; // Number of points in the Latitudinal (y) direction -get_global_att(ncfile, string("Nlat"), data.ny); + get_global_att(ncfile, string("Nlat"), data.ny); // Number of points in the Longitudinal (x) direction -get_global_att(ncfile, string("Nlon"), data.nx); - -data.dump(); + get_global_att(ncfile, string("Nlon"), data.nx); - // - // done - // + data.dump(); -return; + return(data); } - /////////////////////////////////////////////////////////////////////////////// +GaussianData get_gaussian_data (NcFile * ncfile) { -void get_gaussian_data (NcFile * ncfile, GaussianData & data) - -{ - - -data.name = gaussian_proj_type; + GaussianData data; - // - // Longitude for x = 0 - // - -get_global_att(ncfile, string("lon_zero"), data.lon_zero); - - // - // nx - // - -get_global_att(ncfile, string("nx"), data.nx); - - // - // ny - // + // Store the grid name + data.name = gaussian_proj_type; -get_global_att(ncfile, string("ny"), data.ny); + // Longitude for x = 0 + get_global_att(ncfile, string("lon_zero"), data.lon_zero); -data.dump(); + // nx + get_global_att(ncfile, string("nx"), data.nx); - // - // done - // + // ny + get_global_att(ncfile, string("ny"), data.ny); -return; + data.dump(); + return(data); } - /////////////////////////////////////////////////////////////////////////////// +SemiLatLonData get_semilatlon_data (NcFile * ncfile) { -void get_semilatlon_data (NcFile * ncfile, SemiLatLonData & data) - -{ - - -data.name = semilatlon_proj_type; - -get_semilatlon_var(ncfile, "lat", data.lats); - -get_semilatlon_var(ncfile, "lon", data.lons); - -get_semilatlon_var(ncfile, "level", data.levels); - -get_semilatlon_var(ncfile, "time", data.times); + SemiLatLonData data; -data.dump(); - - // - // done - // + // Store the grid name + data.name = semilatlon_proj_type; + get_semilatlon_var(ncfile, "lat", data.lats); + get_semilatlon_var(ncfile, "lon", data.lons); + get_semilatlon_var(ncfile, "level", data.levels); + get_semilatlon_var(ncfile, "time", data.times); -return; + data.dump(); + return(data); } - /////////////////////////////////////////////////////////////////////////////// - void get_semilatlon_var(NcFile *ncfile, const char * var_name, NumArray &out_na) { -NcVar nc_var = get_var(ncfile, var_name); - -out_na.clear(); - - // - // requested variable may or may not be present in the file - // - -if ( IS_INVALID_NC(nc_var) ) return; + NcVar nc_var = get_var(ncfile, var_name); - // - // store the requested data in the specified NumArray object - // + out_na.erase(); -long count = get_data_size(&nc_var); -double * data_values = new double[ count ]; -get_nc_data(&nc_var, data_values); -for(int i=0; i &k, if(!cira_diag_out) return; - // Store lead time information + const char *method_name = "OutFileInfo::write_cira_diag_vals()"; + + // Store lead time information for standard storm and sounding data sections if(write_time) { NumArray times; for(int i=0; in_points(); i++) { @@ -1949,6 +1951,7 @@ void OutFileInfo::write_cira_diag_vals(vector &k, // Variables write AsciiTable output ConcatString cs; + string str; AsciiTable at; int n_row = m.size(); int n_col = bad_data_int; @@ -1963,6 +1966,10 @@ void OutFileInfo::write_cira_diag_vals(vector &k, n_col = 2 + m.at(*it).n(); at.set_size(n_row, n_col); + // Set spacing after the second column to 0 + // since the units column is right-padded + at.set_ics(1, 0); + // Justify columns at.set_column_just(0, LeftJust); at.set_column_just(1, LeftJust); @@ -1976,12 +1983,30 @@ void OutFileInfo::write_cira_diag_vals(vector &k, c = 0; // Diagnostic name - at.set_entry(r, c++, *it); - - // Units - cs << cs_erase << "(" - << get_diag_units(*it) << ")"; - at.set_entry(r, c++, cs); + str = *it; + + // Truncate or pad diagnostic names + if(str.length() > cira_diag_name_width) { + str = (*it).substr(0, cira_diag_name_width); + mlog << Warning << "\n" << method_name << " -> " + << "long diagnostic name \"" << (*it) + << "\" truncated to \"" << str << "\"!\n\n"; + } + str.append(cira_diag_name_width - str.length(), ' '); + at.set_entry(r, c++, str); + + // Units string + str = "(" + get_diag_units(*it) + ")"; + + // Truncate or pad units strings + if(str.length() > cira_diag_units_width) { + str = "(" + get_diag_units(*it).substr(0, cira_diag_units_width - 2) + ")"; + mlog << Warning << "\n" << method_name << " -> " + << "long diagnostic units string \"(" << get_diag_units(*it) + << ")\" truncated to \"" << str << "\"!\n\n"; + } + str.append(cira_diag_units_width - str.length(), ' '); + at.set_entry(r, c++, str); // Diagnostic values for(int i=0; i &); + const DomainInfo &, const std::set &); + void close(); void clear(); diff --git a/src/tools/tc_utils/tc_diag/tc_diag_conf_info.cc b/src/tools/tc_utils/tc_diag/tc_diag_conf_info.cc index 260b30749f..7684308b81 100644 --- a/src/tools/tc_utils/tc_diag/tc_diag_conf_info.cc +++ b/src/tools/tc_utils/tc_diag/tc_diag_conf_info.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/tools/tc_utils/tc_diag/tc_diag_conf_info.h b/src/tools/tc_utils/tc_diag/tc_diag_conf_info.h index ee897470bb..7d0db17ad2 100644 --- a/src/tools/tc_utils/tc_diag/tc_diag_conf_info.h +++ b/src/tools/tc_utils/tc_diag/tc_diag_conf_info.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/tools/tc_utils/tc_dland/tc_dland.cc b/src/tools/tc_utils/tc_dland/tc_dland.cc index c76e36f31e..dbdc7d976a 100644 --- a/src/tools/tc_utils/tc_dland/tc_dland.cc +++ b/src/tools/tc_utils/tc_dland/tc_dland.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/tools/tc_utils/tc_dland/tc_poly.cc b/src/tools/tc_utils/tc_dland/tc_poly.cc index 3d93654566..9f3f892097 100644 --- a/src/tools/tc_utils/tc_dland/tc_poly.cc +++ b/src/tools/tc_utils/tc_dland/tc_poly.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/tools/tc_utils/tc_dland/tc_poly.h b/src/tools/tc_utils/tc_dland/tc_poly.h index e0594fd7e5..55cb053e16 100644 --- a/src/tools/tc_utils/tc_dland/tc_poly.h +++ b/src/tools/tc_utils/tc_dland/tc_poly.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/tools/tc_utils/tc_gen/tc_gen.cc b/src/tools/tc_utils/tc_gen/tc_gen.cc index ee19f84ed2..27190434ca 100644 --- a/src/tools/tc_utils/tc_gen/tc_gen.cc +++ b/src/tools/tc_utils/tc_gen/tc_gen.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/tools/tc_utils/tc_gen/tc_gen.h b/src/tools/tc_utils/tc_gen/tc_gen.h index fd49592bf7..fa19075829 100644 --- a/src/tools/tc_utils/tc_gen/tc_gen.h +++ b/src/tools/tc_utils/tc_gen/tc_gen.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/tools/tc_utils/tc_gen/tc_gen_conf_info.cc b/src/tools/tc_utils/tc_gen/tc_gen_conf_info.cc index 7a96505d11..9c0dd74890 100644 --- a/src/tools/tc_utils/tc_gen/tc_gen_conf_info.cc +++ b/src/tools/tc_utils/tc_gen/tc_gen_conf_info.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/tools/tc_utils/tc_gen/tc_gen_conf_info.h b/src/tools/tc_utils/tc_gen/tc_gen_conf_info.h index 981b2e6842..65ddd1b3de 100644 --- a/src/tools/tc_utils/tc_gen/tc_gen_conf_info.h +++ b/src/tools/tc_utils/tc_gen/tc_gen_conf_info.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/tools/tc_utils/tc_pairs/tc_pairs.cc b/src/tools/tc_utils/tc_pairs/tc_pairs.cc index b94830e5ac..e25c43f64d 100644 --- a/src/tools/tc_utils/tc_pairs/tc_pairs.cc +++ b/src/tools/tc_utils/tc_pairs/tc_pairs.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/tools/tc_utils/tc_pairs/tc_pairs.h b/src/tools/tc_utils/tc_pairs/tc_pairs.h index cff70472f6..8140c8092d 100644 --- a/src/tools/tc_utils/tc_pairs/tc_pairs.h +++ b/src/tools/tc_utils/tc_pairs/tc_pairs.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/tools/tc_utils/tc_pairs/tc_pairs_conf_info.cc b/src/tools/tc_utils/tc_pairs/tc_pairs_conf_info.cc index 14cf82ae83..cfd22631b5 100644 --- a/src/tools/tc_utils/tc_pairs/tc_pairs_conf_info.cc +++ b/src/tools/tc_utils/tc_pairs/tc_pairs_conf_info.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/tools/tc_utils/tc_pairs/tc_pairs_conf_info.h b/src/tools/tc_utils/tc_pairs/tc_pairs_conf_info.h index 8354c3405a..4aca130337 100644 --- a/src/tools/tc_utils/tc_pairs/tc_pairs_conf_info.h +++ b/src/tools/tc_utils/tc_pairs/tc_pairs_conf_info.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/tools/tc_utils/tc_rmw/tc_rmw.cc b/src/tools/tc_utils/tc_rmw/tc_rmw.cc index ffadd8277a..4520b1d5ca 100644 --- a/src/tools/tc_utils/tc_rmw/tc_rmw.cc +++ b/src/tools/tc_utils/tc_rmw/tc_rmw.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/tools/tc_utils/tc_rmw/tc_rmw.h b/src/tools/tc_utils/tc_rmw/tc_rmw.h index 87e37b74be..10aded04c4 100644 --- a/src/tools/tc_utils/tc_rmw/tc_rmw.h +++ b/src/tools/tc_utils/tc_rmw/tc_rmw.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/tools/tc_utils/tc_rmw/tc_rmw_conf_info.cc b/src/tools/tc_utils/tc_rmw/tc_rmw_conf_info.cc index 2402c7d758..19fa16a3c6 100644 --- a/src/tools/tc_utils/tc_rmw/tc_rmw_conf_info.cc +++ b/src/tools/tc_utils/tc_rmw/tc_rmw_conf_info.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/tools/tc_utils/tc_rmw/tc_rmw_conf_info.h b/src/tools/tc_utils/tc_rmw/tc_rmw_conf_info.h index 441cfeb661..f1d8d52ec8 100644 --- a/src/tools/tc_utils/tc_rmw/tc_rmw_conf_info.h +++ b/src/tools/tc_utils/tc_rmw/tc_rmw_conf_info.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/tools/tc_utils/tc_rmw/tc_rmw_wind_converter.cc b/src/tools/tc_utils/tc_rmw/tc_rmw_wind_converter.cc index f94994b314..e5e1a5997e 100644 --- a/src/tools/tc_utils/tc_rmw/tc_rmw_wind_converter.cc +++ b/src/tools/tc_utils/tc_rmw/tc_rmw_wind_converter.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/tools/tc_utils/tc_rmw/tc_rmw_wind_converter.h b/src/tools/tc_utils/tc_rmw/tc_rmw_wind_converter.h index 8ad0642a17..86dbc0d802 100644 --- a/src/tools/tc_utils/tc_rmw/tc_rmw_wind_converter.h +++ b/src/tools/tc_utils/tc_rmw/tc_rmw_wind_converter.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/tools/tc_utils/tc_stat/tc_stat.cc b/src/tools/tc_utils/tc_stat/tc_stat.cc index 16fa40ca1b..d1e85b0855 100644 --- a/src/tools/tc_utils/tc_stat/tc_stat.cc +++ b/src/tools/tc_utils/tc_stat/tc_stat.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/tools/tc_utils/tc_stat/tc_stat.h b/src/tools/tc_utils/tc_stat/tc_stat.h index c467aa7dc8..1bf28f1610 100644 --- a/src/tools/tc_utils/tc_stat/tc_stat.h +++ b/src/tools/tc_utils/tc_stat/tc_stat.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/tools/tc_utils/tc_stat/tc_stat_conf_info.cc b/src/tools/tc_utils/tc_stat/tc_stat_conf_info.cc index 55b0fbe130..7cc8f5a167 100644 --- a/src/tools/tc_utils/tc_stat/tc_stat_conf_info.cc +++ b/src/tools/tc_utils/tc_stat/tc_stat_conf_info.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/tools/tc_utils/tc_stat/tc_stat_conf_info.h b/src/tools/tc_utils/tc_stat/tc_stat_conf_info.h index 4f3147b968..7298829490 100644 --- a/src/tools/tc_utils/tc_stat/tc_stat_conf_info.h +++ b/src/tools/tc_utils/tc_stat/tc_stat_conf_info.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/tools/tc_utils/tc_stat/tc_stat_files.cc b/src/tools/tc_utils/tc_stat/tc_stat_files.cc index 74a882e814..61a2ed8681 100644 --- a/src/tools/tc_utils/tc_stat/tc_stat_files.cc +++ b/src/tools/tc_utils/tc_stat/tc_stat_files.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/tools/tc_utils/tc_stat/tc_stat_files.h b/src/tools/tc_utils/tc_stat/tc_stat_files.h index 30e981c087..42edabb854 100644 --- a/src/tools/tc_utils/tc_stat/tc_stat_files.h +++ b/src/tools/tc_utils/tc_stat/tc_stat_files.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/tools/tc_utils/tc_stat/tc_stat_job.cc b/src/tools/tc_utils/tc_stat/tc_stat_job.cc index 179831466a..197c4f2f12 100644 --- a/src/tools/tc_utils/tc_stat/tc_stat_job.cc +++ b/src/tools/tc_utils/tc_stat/tc_stat_job.cc @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL) diff --git a/src/tools/tc_utils/tc_stat/tc_stat_job.h b/src/tools/tc_utils/tc_stat/tc_stat_job.h index 0a0db927de..ec12e8e4bb 100644 --- a/src/tools/tc_utils/tc_stat/tc_stat_job.h +++ b/src/tools/tc_utils/tc_stat/tc_stat_job.h @@ -1,5 +1,5 @@ // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// ** Copyright UCAR (c) 1992 - 2023 +// ** Copyright UCAR (c) 1992 - 2024 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Research Applications Lab (RAL)