star-hitran

Load line-by-line data from the HITRAN database
git clone git://git.meso-star.fr/star-hitran.git
Log | Files | Refs | README | LICENSE

commit b18dcb66251f1c6ab63c2597641c62dbaca531d2
parent c09eeb7577cb61744719b802044d5b0a9304e37f
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Tue,  8 Mar 2022 19:32:12 +0100

Check that the loaded lines are correctly sorted

Diffstat:
Msrc/shtr_lines_list.c | 14+++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/src/shtr_lines_list.c b/src/shtr_lines_list.c @@ -150,7 +150,19 @@ parse_line(struct shtr_lines_list* lnlst, struct txtrdr* txtrdr) goto error; } - res = darray_line_push_back(&trlst->lines, &tr); + if(darray_line_size_get(&lnlst->lines)) { + const struct shtr_line* last_ln = darray_line_cdata_get(&lnlst->lines) + + darray_line_size_get(&lnlst->lines) - 1; + if(last_ln->wavenumber > ln.wavenumber) { + log_err(lnlst->shtr, + "%s:%lu: lines are not sorted in ascending order wrt their wavenumber.\n", + txtrdr_get_name(txtrdr), txtrdr_get_line_num(txtrdr)); + res = RES_BAD_ARG; + goto error; + } + } + + res = darray_line_push_back(&lnlst->lines, &ln); if(res != RES_OK) { log_err(lnlst->shtr, "%s:%lu: error storing the line -- %s.\n",