Great, thanks Richard. That makes sense – I’ll see how I get on. It occurs to me that the oxygen implementation is going to be rather similar to your existing MPM2020 oxygen model, the main differences being:
* The water vapour effect on line broadening * The inclusion of some lines outside the 50-60GHz band * Some very minor differences (although not just rounding) in the line parameters, since I’m basing it on the Rosenkranz FORTRAN code for detailed comparison with someone else’s calculations, and this seems to be marginally different to what is in your MPM2020 code (which I assume is taken direct from the Makarov paper?) Should we be attempting to avoid this type of semi-duplication, or is it an acceptable thing to do? Stuart From: Richard Larsson <ric.lars...@gmail.com> Sent: 10 March 2022 15:50 To: Fox, Stuart <stuart....@metoffice.gov.uk> Cc: arts_dev.mi@lists.uni-hamburg.de Subject: Re: Another question related to complete absorption models This email was received from an external source. Always check sender details, links & attachments. Hi Stuart, The only two species (and this can be extended) that are passed to the predefined models interface currently are O2 and H2O. (It is fairly easy to add more molecules.) To walk through the interface as a user: In a call to propmat_clearskyAddPredefined in m_predefined_absorption_models.cc, you are computing a type called "Absorption::PredefinedModel::VMRS" and storing this to an instance "vmr". All computations happen inside a function named "Absorption::PredefinedModel::compute", which gets "vmr" passed to it. This function simply passes this instance along to a function in predefined_absorption_models.cc called "compute_selection". In "compute_selection" the "vmr" instance is split into its components, so you can pass both H2O VMR and O2 VMR along to some underlying function. These are accessed here as "vmr.O2" and "vmr.H2O". So for your new predefined model, simply define it to take vmro2 and vmrh2o as inputs. You anyways have to define how you interface with your new function in the list in "compute_selection". In that definition, pass along both vmr.O2 and vmr.H2O to the relevant positions. This should be enough. With hope, //Richard Den tors 10 mars 2022 kl 16:07 skrev Fox, Stuart <stuart....@metoffice.gov.uk<mailto:stuart....@metoffice.gov.uk>>: Hi ARTS developers, I’m trying to add the latest version of the Rosenkranz absorption models into ARTS for a study we are currently doing. One of the “features” of the model is that the oxygen absorption calculation has a dependence on the water vapour density (due to the fact that the water vapour is more efficient at line broadening than dry air). However, as far as I understand it the oxygen absorption routine (under the “modern” system) will not get passed the water vapour vmr. Is this correct, and is there any way around this? Thanks, as always, for your help, Stuart