Releases: NOAA-GFDL/GFDL-VortexTracker
Add Cmake build plus minor source changes
This version contains minor source changes, including a series of critical bug fixes. The bug involved pulling code out of IF statements that were inside checks for verbose flags. This bug had the potential to change the results for wind radii if the verbose flag in the namelist was changed from 3 to 0.
A subroutine was added for genesis detection to more effectively check for a low-level circulation as a condition for determining genesis.
Some small changes were made to variable names in the routines that process genesis-related diagnostics.
A bug was fixed in subroutine output_aext that creates the extended atcfunix file. The bug would cause the code to crash if the 850 divergence or 850 moisture divergence values were too large to fit into the space indicated by the fortran output delimiter values.
Adds a Cmake build system for most NOAA RDHPCS systems, excluding GFDL/PPAN. There are still some issues to be resolved for people attempting to build on Gaea who are using csh or tcsh.
Some directory structure changes were implemented into the repo in order to differentiate between source code and Cmake scripts.
Additional files and updates were added for README & background documentation.
Fix 4 bugs and add numerous upgrades for genesis detection
Add several bug fixes and numerous upgrades
Here are four bugs that are fixed in this update:
(1) Value of the array index for readgenflag in subroutine
get_gen_diags was incorrectly set, preventing 850 mb
moisture divergence from ever being calculated.
(2) In subroutine first_ges_center, a bunch of counters needed to
be upgraded from 4-byte to 8-byte integers. As 4-byte ints,
they were unable to hold the values that were being summed,
and as a result the cutoff for the search for new storms at a
given lead time was being incorrectly set.
(3) Sam Trahan updated the file-waiting routines that he wrote,
i.e., cwaitfor.c and module_waitfor.f. There were a lot of
variables in these routines that needed to be upgraded from
4-byte to 8-byte in order for this waiting procedure to
continue working properly for checking on the existence of
files with large sizes > 2 GB.
(4) There was an error in the formatting of the output atcfunix
record. An extra comma was included. I gave a separate fix
for this one to Zhan Zhang back in June, but I am just getting
to adding it to GitHub now.
New features include, for TC genesis runs, adding an additional check
for a low-level wind circulation, in order to be more consistent with
how NHC diagnoses genesis for observed storms. A new subroutine,
check_for_closed_wind_circulation, was added for this purpose.
I added an option that allows the user to request to have the MSLP
data smoothed first before searching for new storms, when run in
genesis mode. This was done as a result of a lot of testing I did when
running the tracker in genesis mode on hi-res (3 km) T-SHiELD data.
The MSLP data was particularly noisy, especially for pre-formation
disturbances in the model, and this was tripping up the various
algorithms in the tracker that check for things like radial MSLP
gradients and closed MSLP contours. There is now a flag in the
namelist which a user can set to specify using this smoothing, and
that smoothing is done in subroutine find_all_maxmins.
I added many tweaks and new checks in subroutine
check_mslp_radial_gradient, which is a relatively newer routine for
checking in a 360-degree fasion surrounding the storm and also has a
requirement for scale of a MSLP disturbance.
A major rewrite was done for the I/O for NetCDF files. Previously,
I had it set for just using 4-byte reals, because the only files I had
ever tested with were GFDL SHiELD NetCDF files, which use 4-byte
reals. However, this caused problems with 4-byte vs. 8-byte arithmetic
when used with other files, and so I changed all the code surrounding
NetCDF I/O such that it first uses NetCDF library commands to check to
see if the data values are 4-byte or 8-byte and then calls the required
routines accordingly.
Bring code in line with HAFS IOC tracker version
Just a few very minor changes were made to bring the code into exact agreement with the version that is being put into operations for HAFS initial operational configuration.
Bug fix for GM-wrapping related to distbear
This is a bug fix. There were still issues with Greenwich Meridian (GM), specifically for grids that spanned across the GM. In this fix, all instances were related to the distbear subroutine, which finds a lat/lon point at a specified distance from an origin lat/lon. That distbear routine always returns the lon value in 0-360 longitude space, which can be inconsistent with the longitude space of the origin point (i.e., that origin point could be in 360+ space). Code was added after all calls to distbear in gettrk -- and there are a lot, probably 12 or so -- to properly adjust the target longitude. Finally, one additional bug fix is that the output_atcfunix subroutine was modified so that a couple of the basin IDs are fixed to match what EMC & NHC have for various basin IDs -- all other locations in the code already had the correct basin IDs to match EMC & NHC.
v1.0.0
This is the first official release of the GFDL vortex tracker on GitHub (despite the fact that I first implemented it into operations back in 1998!). This version contains many upgrades from the past year: (1) Numerous upgrades to the R34 diagnosis scheme to improve its accuracy and to prevent problems with R34 diagnosis for storms approaching the boundaries of regional grids; (2) Significant speed-up of the processing for detection of new storms when the tracker is run in genesis mode; (3) Many fixes throughout the code to handle regional grids that span across the Greenwich Meridian, such as the HAFS grid for the South Indian Ocean, in order to work around issues where the grid-specified lonmin (e.g., 355E) is greater than the grid-specified lonmax (e.g., 100E); (4) The namelist processing was changed so that it no longer takes it from redirect standard in, instead it reads from a file specifically named namelist.gettrk in the working directory; (5) Numerous bug fixes.