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

Reply via email to