commit b80c0acdb071260cfa7ff41d0cbc5a58598f28e8
parent 00dc056897a367962cad94fa3b6b6b00ed491c58
Author: Vincent Forest <vincent.forest@meso-star.com>
Date: Wed, 11 Oct 2023 10:51:25 +0200
Correction of validity range tests on loaded data
Validity ranges were incorrect for mass absorption cross sections, mass
scattering cross sections and Hengyey-Greenstein asymmetric phase
function parameters.
Diffstat:
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/src/htmie.c b/src/htmie.c
@@ -603,7 +603,7 @@ htmie_load(struct htmie* htmie, const char* path)
{
int err_nc = NC_NOERR;
int nc = INVALID_NC_ID;
- double range[2];
+ double range[2] = {DBL_MAX, -DBL_MAX}; /* Validity range of loaded data */
res_T res = RES_OK;
if(!htmie || !path) {
@@ -618,17 +618,22 @@ htmie_load(struct htmie* htmie, const char* path)
goto error;
}
- /* Define the validity range for the loaded data */
- range[0] = DBL_EPSILON;
- range[1] = DBL_MAX;
-
#define CALL(Func) { res = Func; if(res != RES_OK) goto error; } (void)0
+
+ range[0] = DBL_EPSILON; range[1] = DBL_MAX;
CALL(load_wavelengths(htmie, nc, range));
+
+ range[0] = 0; range[1] = DBL_MAX;
CALL(load_distrib_x_lambda_array
(htmie, nc, "macs", range, &htmie->xsections_absorption));
+
+ range[0] = 0; range[1] = DBL_MAX;
CALL(load_distrib_x_lambda_array
(htmie, nc, "mscs", range, &htmie->xsections_scattering));
+
+ range[0] = -1; range[1] = 1;
CALL(load_distrib_x_lambda_array(htmie, nc, "g", range, &htmie->g));
+
#undef CALL
exit: