htmie

Optical properties of water droplets
git clone git://git.meso-star.fr/htmie.git
Log | Files | Refs | README | LICENSE

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:
Msrc/htmie.c | 15++++++++++-----
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: