star-aerosol

Describe the radiative properties of aerosols
git clone git://git.meso-star.fr/star-aerosol.git
Log | Files | Refs | README | LICENSE

commit 39f50bea89b2bbd023408f7d56d1630714bcf547
parent f8214a066414d837d75c793845c67ef885abe456
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Wed, 15 Jun 2022 09:38:38 +0200

Implement sars_get_<bands|nodes>_count and sars_get_band

Diffstat:
Msrc/sars.c | 48++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 48 insertions(+), 0 deletions(-)

diff --git a/src/sars.c b/src/sars.c @@ -321,3 +321,51 @@ sars_load_stream if(!sars || !stream) return RES_BAD_ARG; return load_stream(sars, stream, stream_name ? stream_name : "<stream>"); } + +size_t +sars_get_bands_count(const struct sars* sars) +{ + ASSERT(sars); + return darray_band_size_get(&sars->bands); +} + +size_t +sars_get_nodes_count(const struct sars* sars) +{ + ASSERT(sars); + return sars->nnodes; +} + +res_T +sars_get_band + (const struct sars* sars, + const size_t iband, + struct sars_band* sars_band) +{ + const struct band* band = NULL; + res_T res = RES_OK; + + if(!sars || !sars_band) { + res = RES_BAD_ARG; + goto error; + } + + if(iband >= sars_get_bands_count(sars)) { + log_err(sars, "%s: invalid band index %lu.\n", + FUNC_NAME, (unsigned long)iband); + res = RES_BAD_ARG; + goto error; + } + + band = darray_band_cdata_get(&sars->bands) + iband; + sars_band->lower = band->low; + sars_band->upper = band->upp; + sars_band->id = iband; + sars_band->ks_list = band->ks_list; + sars_band->ka_list = band->ka_list; + +exit: + return res; +error: + goto exit; +}