From f17388a927fc1c46fe82048fa047574f787dd27a Mon Sep 17 00:00:00 2001 From: Lars Hoffmann Date: Fri, 24 Jan 2025 16:27:10 +0100 Subject: [PATCH] Fix rounding error of lon-lat grid in met- and tropo-tools. --- src/met_map.c | 4 ++-- src/met_zm.c | 2 +- src/tropo.c | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/met_map.c b/src/met_map.c index 487040f05..1535ed8bc 100644 --- a/src/met_map.c +++ b/src/met_map.c @@ -204,7 +204,7 @@ int main( lon1 = gsl_stats_max(met->lon, 1, (size_t) met->nx); } nx = ny = 0; - for (lon = lon0; lon <= lon1; lon += dlon) { + for (lon = lon0; lon <= lon1 + 0.001; lon += dlon) { lons[nx] = lon; if ((++nx) >= NX) ERRMSG("Too many longitudes!"); @@ -213,7 +213,7 @@ int main( lat0 = gsl_stats_min(met->lat, 1, (size_t) met->ny); lat1 = gsl_stats_max(met->lat, 1, (size_t) met->ny); } - for (lat = lat0; lat <= lat1; lat += dlat) { + for (lat = lat0; lat <= lat1 + 0.001; lat += dlat) { lats[ny] = lat; if ((++ny) >= NY) ERRMSG("Too many latitudes!"); diff --git a/src/met_zm.c b/src/met_zm.c index 6bc21ddab..d3f914103 100644 --- a/src/met_zm.c +++ b/src/met_zm.c @@ -123,7 +123,7 @@ int main( lat0 = gsl_stats_min(met->lat, 1, (size_t) met->ny); lat1 = gsl_stats_max(met->lat, 1, (size_t) met->ny); } - for (lat = lat0; lat <= lat1; lat += dlat) { + for (lat = lat0; lat <= lat1 + 0.001; lat += dlat) { lats[ny] = lat; if ((++ny) >= NY) ERRMSG("Too many latitudes!"); diff --git a/src/tropo.c b/src/tropo.c index 0ad6dea7d..7f081a2ad 100644 --- a/src/tropo.c +++ b/src/tropo.c @@ -87,7 +87,7 @@ int main( lon1 = gsl_stats_max(met->lon, 1, (size_t) met->nx); } nx = ny = 0; - for (lon = lon0; lon <= lon1; lon += dlon) { + for (lon = lon0; lon <= lon1 + 0.001; lon += dlon) { lons[nx] = lon; if ((++nx) >= EX) ERRMSG("Too many longitudes!"); @@ -96,7 +96,7 @@ int main( lat0 = gsl_stats_min(met->lat, 1, (size_t) met->ny); lat1 = gsl_stats_max(met->lat, 1, (size_t) met->ny); } - for (lat = lat0; lat <= lat1; lat += dlat) { + for (lat = lat0; lat <= lat1 + 0.001; lat += dlat) { lats[ny] = lat; if ((++ny) >= EY) ERRMSG("Too many latitudes!");