Changeset 81c180c in flex_extract.git


Ignore:
Timestamp:
Jul 20, 2022, 3:55:51 PM (21 months ago)
Author:
Anne Tipka <anne.tipka@…>
Branches:
dev
Children:
4f24798
Parents:
6857073 (diff), 7896304 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch current master branch from CTBTO's gitlab repo into dev branch from flexpart.eu repo

Files:
1 added
25 edited

Legend:

Unmodified
Added
Removed
  • Documentation/html/Documentation/Api/api_python.html

    r08c9091 r47be2684  
    24942494<p>This module contains a collection of diverse tasks within flex_extract.</p>
    24952495<dl class="function">
     2496<dt id="tools.check_for_string_in_file">
     2497<code class="sig-prename descclassname">tools.</code><code class="sig-name descname">check_for_string_in_file</code><span class="sig-paren">(</span><em class="sig-param">filepath</em>, <em class="sig-param">search_string</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/tools.html#check_for_string_in_file"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#tools.check_for_string_in_file" title="Permalink to this definition">¶</a></dt>
     2498<dd><p>Search for a specific string in a file and return True if
     2499the string was found.</p>
     2500<dl class="field-list simple">
     2501<dt class="field-odd">Parameters</dt>
     2502<dd class="field-odd"><ul class="simple">
     2503<li><p><strong>filepath</strong> (<em>str</em>) – The full file path which is to be examined.</p></li>
     2504<li><p><strong>search_string</strong> (<em>str</em>) – The string which is looked up for in the file.</p></li>
     2505</ul>
     2506</dd>
     2507<dt class="field-even">Returns</dt>
     2508<dd class="field-even"><p>True : String was found
     2509False : String was not found</p>
     2510</dd>
     2511<dt class="field-odd">Return type</dt>
     2512<dd class="field-odd"><p>Boolean</p>
     2513</dd>
     2514</dl>
     2515</dd></dl>
     2516
     2517<dl class="function">
    24962518<dt id="tools.clean_up">
    24972519<code class="sig-prename descclassname">tools.</code><code class="sig-name descname">clean_up</code><span class="sig-paren">(</span><em class="sig-param">c</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/tools.html#clean_up"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#tools.clean_up" title="Permalink to this definition">¶</a></dt>
     
    27322754<dt class="field-odd">Parameters</dt>
    27332755<dd class="field-odd"><p><strong>message</strong> (<em>str</em><em>, </em><em>optional</em>) – Message for exiting program. Default value is “Done!”.</p>
     2756</dd>
     2757</dl>
     2758</dd></dl>
     2759
     2760<dl class="function">
     2761<dt id="tools.overwrite_lines_in_file">
     2762<code class="sig-prename descclassname">tools.</code><code class="sig-name descname">overwrite_lines_in_file</code><span class="sig-paren">(</span><em class="sig-param">filepath</em>, <em class="sig-param">search_string</em>, <em class="sig-param">sub_string</em><span class="sig-paren">)</span><a class="reference internal" href="../../_modules/tools.html#overwrite_lines_in_file"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#tools.overwrite_lines_in_file" title="Permalink to this definition">¶</a></dt>
     2763<dd><p>Overwrites lines which contain the given search string with the
     2764substitution string.</p>
     2765<dl class="field-list simple">
     2766<dt class="field-odd">Parameters</dt>
     2767<dd class="field-odd"><ul class="simple">
     2768<li><p><strong>search_string</strong> (<em>str</em>) – The string which is looked up for in the file.</p></li>
     2769<li><p><strong>sub_string</strong> (<em>str</em>) – The string which overwrites the search string.</p></li>
     2770</ul>
    27342771</dd>
    27352772</dl>
  • Documentation/html/Documentation/Input/setup.html

    r08c9091 r47be2684  
    235235<tr class="row-even"><td><p>TARGET</p></td>
    236236<td><p>String</p></td>
    237 <td><p>local, ecgate, cca, ccb</p></td>
    238 <td><p>None</p></td>
    239 <td><p>Defines the flex_extract application mode to be used.  Local = local mode; ecgate = Remote or Gateway mode, cca or ccb = Remote or Gateway mode (HPC). Whether the local mode is for public or member state users doesn’t matter here.</p></td>
     237<td><p>local, syslocal, ecgate, cca, ccb</p></td>
     238<td><p>None</p></td>
     239<td><p>Defines the flex_extract application mode to be used.  Local = local mode; ecgate = Remote or Gateway mode, cca or ccb = Remote or Gateway mode (HPC). Whether the local mode is for public or member state users doesn’t matter here. Syslocal = seperates the executables and user application files during installation. Paths are selectable through INSTALLDIR and SYSINSTALLDIR</p></td>
    240240</tr>
    241241<tr class="row-odd"><td><p>MAKEFILE</p></td>
     
    275275<td><p>Root path where flex_extract should be installed. It will always be $HOME on ECMWF servers and if not set for the local mode, it will be the current flex_extract root path on local servers. </p></td>
    276276</tr>
    277 <tr class="row-odd"><td><p>JOB_TEMPLATE</p></td>
     277<tr class="row-odd"><td><p>SYSINSTALLDIR</p></td>
     278<td><p>String</p></td>
     279<td><p>a full path </p></td>
     280<td><p>None</p></td>
     281<td><p>This will be the same as INSTALLDIR if TARGET=local. Otherwise, the executable files are stored in this path. If it is choosen to be in a system path, don’t forget to start the script with admin rights. </p></td>
     282</tr>
     283<tr class="row-even"><td><p>JOB_TEMPLATE</p></td>
    278284<td><p>String</p></td>
    279285<td><p>installscript.template</p></td>
     
    281287<td><p>The rudimentary template file to create a batch job template for submission to ECMWF servers. Should not be changed because it is already optimised for ECMWF servers.  (Remote and Gateway mode)</p></td>
    282288</tr>
    283 <tr class="row-even"><td><p>CONTROLFILE</p></td>
     289<tr class="row-odd"><td><p>CONTROLFILE</p></td>
    284290<td><p>String</p></td>
    285291<td><p>any CONTROL file</p></td>
     
    402408              <span class="o">[</span>--ecuid ECUID<span class="o">]</span> <span class="o">[</span>--ecgid ECGID<span class="o">]</span> <span class="o">[</span>--gateway GATEWAY<span class="o">]</span>
    403409              <span class="o">[</span>--destination DESTINATION<span class="o">]</span> <span class="o">[</span>--installdir INSTALLDIR<span class="o">]</span>
     410              <span class="o">[</span>--sysinstalldir SYSINSTALLDIR<span class="o">]</span>
    404411              <span class="o">[</span>--job_template JOB_TEMPLATE<span class="o">]</span> <span class="o">[</span>--controlfile CONTROLFILE<span class="o">]</span>
    405412
     
    409416  -h, --help            show this <span class="nb">help</span> message and <span class="nb">exit</span>
    410417  --target INSTALL_TARGET
    411                         Valid targets: <span class="nb">local</span> <span class="p">|</span> ecgate <span class="p">|</span> cca , the latter two
     418                        Valid targets: syslocal <span class="p">|</span> <span class="nb">local</span> <span class="p">|</span> ecgate <span class="p">|</span> cca , the latter two
    412419                        are at ECMWF <span class="o">(</span>default: None<span class="o">)</span>
    413420  --makefile MAKEFILE   Name of makefile to compile the Fortran
     
    423430                        Root directory where flex_extract will be installed
    424431                        to. <span class="o">(</span>default: None<span class="o">)</span>
     432  --sysinstalldir SYSINSTALLDIR
     433                        System installation path<span class="p">;</span> where executables are
     434                        stored. <span class="o">(</span>default: None<span class="o">)</span>
    425435  --job_template JOB_TEMPLATE
    426436                        The rudimentary template file to create a batch job
  • Documentation/html/Installation/local.html

    r73308e0 r903ed4f  
    104104<li class="toctree-l4"><a class="reference internal" href="#testing-the-local-environment">Testing the local environment</a></li>
    105105<li class="toctree-l4"><a class="reference internal" href="#local-installation">Local installation</a></li>
     106<li class="toctree-l4"><a class="reference internal" href="#local-system-installation">Local system installation</a></li>
    106107</ul>
    107108</li>
     
    395396<p>The Fortran program called <code class="docutils literal notranslate"><span class="pre">calc_etadot</span></code> will be compiled during the
    396397installation process. A suitable makefile (<code class="docutils literal notranslate"><span class="pre">makefile_local_gfortran</span></code>) for the compilation is set by default.
    397 This may be overwritten by the <code class="docutils literal notranslate"><span class="pre">MAKEFILE</span></code> parameter in <code class="docutils literal notranslate"><span class="pre">setup.sh</span></code>.</p>
    398 <p>However, you may have to adapt the makefile for your environment (the current default makefile works on Debian stretch and similar GNU/Linux distributions). If you use a new name for it, you will have to insert it into <code class="docutils literal notranslate"><span class="pre">setup.sh</span></code>
     398This may be overwritten by the <code class="docutils literal notranslate"><span class="pre">MAKEFILE</span></code> parameter in <code class="docutils literal notranslate"><span class="pre">setup_local.sh</span></code>.</p>
     399<p>However, you may have to adapt the makefile for your environment (the current default makefile works on Debian stretch and similar GNU/Linux distributions). If you use a new name for it, you will have to insert it into <code class="docutils literal notranslate"><span class="pre">setup_local.sh</span></code>
    399400For details on the makefile and how to adapt them, see <a class="reference internal" href="../Documentation/Input/fortran_makefile.html#ref-convert"><span class="std std-ref">Fortran Makefile</span></a>.</p>
    400 <p>In the root directory of <code class="docutils literal notranslate"><span class="pre">flex_extract</span></code>, open the <code class="docutils literal notranslate"><span class="pre">setup.sh</span></code> script
     401<p>In the root directory of <code class="docutils literal notranslate"><span class="pre">flex_extract</span></code>, open the <code class="docutils literal notranslate"><span class="pre">setup_local.sh</span></code> script
    401402with an editor and adapt the installation parameters in the section labelled with
    402403“AVAILABLE COMMANDLINE ARGUMENTS TO SET” as shown below:</p>
    403 <div class="literal-block-wrapper docutils container" id="setup-sh">
    404 <div class="code-block-caption"><span class="caption-text">‘Example settings for a local installation.’</span><a class="headerlink" href="#setup-sh" title="Permalink to this code">¶</a></div>
     404<div class="literal-block-wrapper docutils container" id="setup-local-sh">
     405<div class="code-block-caption"><span class="caption-text">‘Example settings for a local installation.’</span><a class="headerlink" href="#setup-local-sh" title="Permalink to this code">¶</a></div>
    405406<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>...
    406407<span class="c1"># -----------------------------------------------------------------</span>
     
    416417<span class="nv">DESTINATION</span><span class="o">=</span>None
    417418<span class="nv">INSTALLDIR</span><span class="o">=</span>None
     419<span class="nv">SYSINSTALLDIR</span><span class="o">=</span>None
    418420<span class="nv">JOB_TEMPLATE</span><span class="o">=</span><span class="s1">&#39;&#39;</span>
    419421<span class="nv">CONTROLFILE</span><span class="o">=</span><span class="s1">&#39;CONTROL_EA5&#39;</span>
     
    423425</div>
    424426<p>Afterwards, type:</p>
    425 <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ ./setup.sh
     427<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ ./setup_local.sh
    426428</pre></div>
    427429</div>
    428430<p>to start the installation. You should see the following standard output.</p>
    429 <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># Output of setup.sh</span>
     431<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># Output of setup_local.sh</span>
    430432WARNING: installdir has not been specified
    431433flex_extract will be installed in here by compiling the Fortran <span class="nb">source</span> in &lt;path-to-flex_extract&gt;/flex_extract_v7.1/Source/Fortran
     
    446448</div>
    447449</div>
     450<div class="section" id="local-system-installation">
     451<h2>Local system installation<a class="headerlink" href="#local-system-installation" title="Permalink to this headline">¶</a></h2>
     452<p>There is also the possibility to separate the software executables from the user application files. For doing so, the <code class="docutils literal notranslate"><span class="pre">TARGET</span></code> parameter can be set to “syslocal” and the additional parameter <code class="docutils literal notranslate"><span class="pre">SYSINSTALLDIR</span></code> in the <code class="docutils literal notranslate"><span class="pre">setup_local.sh</span></code> has to be specified. This new path will contain the Fortran and Python executables of <code class="docutils literal notranslate"><span class="pre">flex_extract</span></code>. If you chose to set a system path for this, please start the script as root.
     453The user directory for <code class="docutils literal notranslate"><span class="pre">flex_extract</span></code>, which basically consists of everything except the <code class="docutils literal notranslate"><span class="pre">Source</span></code> directory, will be installed into <code class="docutils literal notranslate"><span class="pre">INSTALLDIR</span></code>.
     454In this installation mode, an extra (hidden) <code class="docutils literal notranslate"><span class="pre">.setup.rc</span></code> file will be generated in the <code class="docutils literal notranslate"><span class="pre">Run</span></code> directory. It contains the necessary settings for running the local system mode.</p>
     455<p>Despite the change in the <code class="docutils literal notranslate"><span class="pre">TARGET</span></code> parameter, the meaning of <code class="docutils literal notranslate"><span class="pre">INSTALLDIR</span></code> and the additional <code class="docutils literal notranslate"><span class="pre">SYSINSTALLDIR</span></code>, the steps for installation are the same as in the local installation mentioned above. For example, modify the <code class="docutils literal notranslate"><span class="pre">setup_local.sh</span></code> file as follows:</p>
     456<div class="literal-block-wrapper docutils container" id="id1">
     457<div class="code-block-caption"><span class="caption-text">‘Example settings for a local system installation.’</span><a class="headerlink" href="#id1" title="Permalink to this code">¶</a></div>
     458<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>...
     459<span class="c1"># -----------------------------------------------------------------</span>
     460<span class="c1"># AVAILABLE COMMANDLINE ARGUMENTS TO SET</span>
     461<span class="c1">#</span>
     462<span class="c1"># THE USER HAS TO SPECIFY THESE PARAMETER</span>
     463<span class="c1">#</span>
     464<span class="nv">TARGET</span><span class="o">=</span><span class="s1">&#39;syslocal&#39;</span>
     465<span class="nv">MAKEFILE</span><span class="o">=</span>&lt;name_of_your_makefile&gt;
     466<span class="nv">ECUID</span><span class="o">=</span>None
     467<span class="nv">ECGID</span><span class="o">=</span>None
     468<span class="nv">GATEWAY</span><span class="o">=</span>None
     469<span class="nv">DESTINATION</span><span class="o">=</span>None
     470<span class="nv">INSTALLDIR</span><span class="o">=</span><span class="nv">$HOME</span>
     471<span class="nv">SYSINSTALLDIR</span><span class="o">=</span>/usr/bin/
     472<span class="nv">JOB_TEMPLATE</span><span class="o">=</span><span class="s1">&#39;&#39;</span>
     473<span class="nv">CONTROLFILE</span><span class="o">=</span><span class="s1">&#39;CONTROL_EA5&#39;</span>
     474...
     475</pre></div>
     476</div>
     477</div>
     478<p>Afterwards, type:</p>
     479<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ sudo ./setup_local.sh
     480</pre></div>
     481</div>
     482<p>to start the installation. You should see the following standard output.</p>
     483<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>Flex_extract will be installed in &lt;<span class="nv">$HOME</span>&gt;
     484Install flex_extract_v7.1.2 software as syslocal in directory /usr/bin/flex_extract_v7.1.2
     485
     486Using makefile: makefile_local_gfortran
     487/usr/local/bin/gfortran   -O3 -march<span class="o">=</span>native -L/usr/local/lib64/ -leccodes_f90 -leccodes -lm -lemosR64 -I. -I/usr/local/include/ -fdefault-real-8 -fopenmp -fconvert<span class="o">=</span>big-endian   -c     ./rwgrib2.f90
     488/usr/local/bin/gfortran   -O3 -march<span class="o">=</span>native -L/usr/local/lib64/ -leccodes_f90 -leccodes -lm -lemosR64 -I. -I/usr/local/include/ -fdefault-real-8 -fopenmp -fconvert<span class="o">=</span>big-endian   -c     ./phgrreal.f90
     489/usr/local/bin/gfortran   -O3 -march<span class="o">=</span>native -L/usr/local/lib64/ -leccodes_f90 -leccodes -lm -lemosR64 -I. -I/usr/local/include/ -fdefault-real-8 -fopenmp -fconvert<span class="o">=</span>big-endian   -c     ./grphreal.f90
     490/usr/local/bin/gfortran   -O3 -march<span class="o">=</span>native -L/usr/local/lib64/ -leccodes_f90 -leccodes -lm -lemosR64 -I. -I/usr/local/include/ -fdefault-real-8 -fopenmp -fconvert<span class="o">=</span>big-endian   -c     ./ftrafo.f90
     491/usr/local/bin/gfortran   -O3 -march<span class="o">=</span>native -L/usr/local/lib64/ -leccodes_f90 -leccodes -lm -lemosR64 -I. -I/usr/local/include/ -fdefault-real-8 -fopenmp -fconvert<span class="o">=</span>big-endian   -c     ./calc_etadot.f90
     492/usr/local/bin/gfortran   -O3 -march<span class="o">=</span>native -L/usr/local/lib64/ -leccodes_f90 -leccodes -lm -lemosR64 -I. -I/usr/local/include/ -fdefault-real-8 -fopenmp -fconvert<span class="o">=</span>big-endian   -c     ./posnam.f90
     493/usr/local/bin/gfortran  rwgrib2.o calc_etadot.o ftrafo.o grphreal.o posnam.o phgrreal.o -o calc_etadot_fast.out  -O3 -march<span class="o">=</span>native -L/usr/local/lib64/ -leccodes_f90 -leccodes -lm -lemosR64 -fopenmp
     494ln -sf calc_etadot_fast.out calc_etadot
     495
     496lrwxrwxrwx. <span class="m">1</span> &lt;username&gt; tmc <span class="m">20</span> <span class="m">27</span>. Okt <span class="m">23</span>:25 ./calc_etadot -&gt; calc_etadot_fast.out
     497SUCCESS: INSTALLATION FINISHED!
     498</pre></div>
     499</div>
     500<p>You can now change into the user directory specified in <code class="docutils literal notranslate"><span class="pre">INSTALLDIR</span></code> and find a <code class="docutils literal notranslate"><span class="pre">flex_extract_vX.X</span></code> directory there.</p>
     501</div>
    448502</div>
    449503
  • Documentation/html/_modules/ControlFile.html

    r08c9091 r903ed4f  
    183183<span class="c1">#   June 2020 - Anne Philipp</span>
    184184<span class="c1">#        - update default makefile to None</span>
     185<span class="c1">#   August 2020 - Leopold Haimberger</span>
     186<span class="c1">#        - added a class parameter for system installation path</span>
    185187<span class="c1">#</span>
    186188<span class="c1"># @License:</span>
     
    566568        <span class="bp">self</span><span class="o">.</span><span class="n">exedir</span> <span class="o">=</span> <span class="n">_config</span><span class="o">.</span><span class="n">PATH_FORTRAN_SRC</span>
    567569        <span class="bp">self</span><span class="o">.</span><span class="n">installdir</span> <span class="o">=</span> <span class="kc">None</span>
     570        <span class="bp">self</span><span class="o">.</span><span class="n">sysinstalldir</span> <span class="o">=</span> <span class="kc">None</span>
    568571        <span class="bp">self</span><span class="o">.</span><span class="n">makefile</span> <span class="o">=</span> <span class="kc">None</span>
    569572        <span class="bp">self</span><span class="o">.</span><span class="n">destination</span> <span class="o">=</span> <span class="kc">None</span>
  • Documentation/html/_modules/install.html

    r08c9091 r903ed4f  
    181181<span class="c1">#    June 2020 - Anne Philipp</span>
    182182<span class="c1">#        - renamed &quot;convert&quot; functions to &quot;fortran&quot; functions</span>
    183 <span class="c1">#        - reconfigured mk_tarball to select *.template files instead </span>
     183<span class="c1">#        - reconfigured mk_tarball to select *.template files instead</span>
    184184<span class="c1">#          of *.nl and *.temp</span>
    185185<span class="c1">#        - added check for makefile settings</span>
     186<span class="c1">#    August 2020 - Leopold Haimberger</span>
     187<span class="c1">#        - added a new installation section for system installation (if-else block)</span>
     188<span class="c1">#        - read new argument from command line</span>
     189<span class="c1">#        - write .setup.rc for a system installation into Run directory</span>
     190<span class="c1">#        - copy executables to system path and user files to user path</span>
    186191<span class="c1">#</span>
    187192<span class="c1"># @License:</span>
     
    237242<span class="kn">import</span> <span class="nn">subprocess</span>
    238243<span class="kn">import</span> <span class="nn">tarfile</span>
     244<span class="kn">import</span> <span class="nn">shutil</span>
    239245<span class="kn">from</span> <span class="nn">argparse</span> <span class="kn">import</span> <span class="n">ArgumentParser</span><span class="p">,</span> <span class="n">ArgumentDefaultsHelpFormatter</span>
    240246
     
    244250<span class="kn">from</span> <span class="nn">Classes.UioFiles</span> <span class="kn">import</span> <span class="n">UioFiles</span>
    245251<span class="kn">from</span> <span class="nn">Mods.tools</span> <span class="kn">import</span> <span class="p">(</span><span class="n">make_dir</span><span class="p">,</span> <span class="n">put_file_to_ecserver</span><span class="p">,</span> <span class="n">submit_job_to_ecserver</span><span class="p">,</span>
    246                         <span class="n">silent_remove</span><span class="p">,</span> <span class="n">execute_subprocess</span><span class="p">,</span> <span class="n">none_or_str</span><span class="p">)</span>
     252                        <span class="n">silent_remove</span><span class="p">,</span> <span class="n">execute_subprocess</span><span class="p">,</span> <span class="n">none_or_str</span><span class="p">,</span>
     253                        <span class="n">overwrite_lines_in_file</span><span class="p">,</span> <span class="n">check_for_string_in_file</span><span class="p">)</span>
    247254
    248255<span class="c1"># ------------------------------------------------------------------------------</span>
     
    265272    <span class="n">check_install_conditions</span><span class="p">(</span><span class="n">c</span><span class="p">)</span>
    266273
    267     <span class="k">if</span> <span class="n">c</span><span class="o">.</span><span class="n">install_target</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">!=</span> <span class="s1">&#39;local&#39;</span><span class="p">:</span> <span class="c1"># ecgate or cca</span>
     274    <span class="k">if</span> <span class="n">c</span><span class="o">.</span><span class="n">install_target</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">&#39;local&#39;</span><span class="p">,</span> <span class="s1">&#39;syslocal&#39;</span><span class="p">]:</span> <span class="c1"># ecgate or cca</span>
    268275        <span class="n">install_via_gateway</span><span class="p">(</span><span class="n">c</span><span class="p">)</span>
    269276    <span class="k">else</span><span class="p">:</span> <span class="c1"># local</span>
    270277        <span class="n">install_local</span><span class="p">(</span><span class="n">c</span><span class="p">)</span>
    271278
     279    <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;SUCCESS: INSTALLATION FINISHED!&quot;</span><span class="p">)</span>
     280
    272281    <span class="k">return</span></div>
    273282
     
    290299    <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;--target&#39;</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s1">&#39;install_target&#39;</span><span class="p">,</span>
    291300                        <span class="nb">type</span><span class="o">=</span><span class="n">none_or_str</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
    292                         <span class="n">help</span><span class="o">=</span><span class="s2">&quot;Valid targets: local | ecgate | cca , </span><span class="se">\</span>
     301                        <span class="n">help</span><span class="o">=</span><span class="s2">&quot;Valid targets: syslocal | local | ecgate | cca , </span><span class="se">\</span>
    293302<span class="s2">                        the latter two are at ECMWF&quot;</span><span class="p">)</span>
    294303    <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">&quot;--makefile&quot;</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">&quot;makefile&quot;</span><span class="p">,</span>
     
    312321    <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">&quot;--installdir&quot;</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">&quot;installdir&quot;</span><span class="p">,</span>
    313322                        <span class="nb">type</span><span class="o">=</span><span class="n">none_or_str</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
    314                         <span class="n">help</span><span class="o">=</span><span class="s1">&#39;Root directory of the &#39;</span>
     323                        <span class="n">help</span><span class="o">=</span><span class="s1">&#39;Root (user) directory of the &#39;</span>
    315324                        <span class="s1">&#39;flex_extract installation&#39;</span><span class="p">)</span>
     325    <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">&quot;--sysinstalldir&quot;</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">&quot;sysinstalldir&quot;</span><span class="p">,</span>
     326                        <span class="nb">type</span><span class="o">=</span><span class="n">none_or_str</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
     327                        <span class="n">help</span><span class="o">=</span><span class="s1">&#39;System installation path; where &#39;</span>
     328                        <span class="s1">&#39;executables are stored.&#39;</span><span class="p">)</span>
    316329
    317330    <span class="c1"># arguments for job submission to ECMWF, only needed by submit.py</span>
     
    390403                            <span class="n">_config</span><span class="o">.</span><span class="n">FLEXEXTRACT_DIRNAME</span> <span class="o">+</span> <span class="s1">&#39;.tar&#39;</span><span class="p">)</span>
    391404
    392     <span class="k">if</span> <span class="n">c</span><span class="o">.</span><span class="n">installdir</span> <span class="o">==</span> <span class="n">_config</span><span class="o">.</span><span class="n">PATH_FLEXEXTRACT_DIR</span><span class="p">:</span>
    393         <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;WARNING: installdir has not been specified&#39;</span><span class="p">)</span>
    394         <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;flex_extract will be installed in here by compiling the &#39;</span> <span class="o">+</span>
    395               <span class="s1">&#39;Fortran source in &#39;</span> <span class="o">+</span> <span class="n">_config</span><span class="o">.</span><span class="n">PATH_FORTRAN_SRC</span><span class="p">)</span>
    396         <span class="n">os</span><span class="o">.</span><span class="n">chdir</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_FORTRAN_SRC</span><span class="p">)</span>
    397     <span class="k">else</span><span class="p">:</span> <span class="c1"># creates the target working directory for flex_extract</span>
    398         <span class="n">c</span><span class="o">.</span><span class="n">installdir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">expandvars</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">expanduser</span><span class="p">(</span>
    399             <span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">))</span>
    400         <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_FLEXEXTRACT_DIR</span><span class="p">)</span> <span class="o">!=</span> \
    401            <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">):</span>
     405    <span class="n">c</span><span class="o">.</span><span class="n">installdir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">expandvars</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">expanduser</span><span class="p">(</span>
     406                <span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">)))</span>
     407    <span class="n">c</span><span class="o">.</span><span class="n">sysinstalldir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">expandvars</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">expanduser</span><span class="p">(</span>
     408        <span class="n">c</span><span class="o">.</span><span class="n">sysinstalldir</span><span class="p">)))</span>
     409
     410    <span class="c1"># this is standard installation into a single directory</span>
     411    <span class="k">if</span> <span class="n">c</span><span class="o">.</span><span class="n">install_target</span> <span class="o">==</span> <span class="s1">&#39;local&#39;</span><span class="p">:</span>
     412
     413        <span class="c1"># installation into the current directory</span>
     414        <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_FLEXEXTRACT_DIR</span><span class="p">)</span> <span class="o">==</span> <span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">:</span>
     415            <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;WARNING: installdir has not been specified&#39;</span><span class="p">)</span>
     416            <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;flex_extract will be installed in current dir by compiling the &#39;</span> <span class="o">+</span>
     417                  <span class="s1">&#39;Fortran source in &#39;</span> <span class="o">+</span> <span class="n">_config</span><span class="o">.</span><span class="n">PATH_FORTRAN_SRC</span><span class="p">)</span>
     418            <span class="n">os</span><span class="o">.</span><span class="n">chdir</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_FORTRAN_SRC</span><span class="p">)</span>
     419        <span class="c1"># installation into a different path</span>
     420        <span class="k">elif</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_FLEXEXTRACT_DIR</span><span class="p">)</span> <span class="o">!=</span> <span class="n">c</span><span class="o">.</span><span class="n">installdir</span> <span class="p">:</span>
     421
     422            <span class="c1"># creates the target working directory for flex_extract</span>
    402423            <span class="n">mk_tarball</span><span class="p">(</span><span class="n">tar_file</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">install_target</span><span class="p">)</span>
    403424            <span class="n">make_dir</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">,</span>
     
    410431                                  <span class="n">_config</span><span class="o">.</span><span class="n">PATH_REL_FORTRAN_SRC</span><span class="p">))</span>
    411432
    412     <span class="c1"># Create Fortran executable</span>
    413     <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Install &#39;</span> <span class="o">+</span>  <span class="n">_config</span><span class="o">.</span><span class="n">FLEXEXTRACT_DIRNAME</span> <span class="o">+</span> <span class="s1">&#39; software at &#39;</span> <span class="o">+</span>
    414           <span class="n">c</span><span class="o">.</span><span class="n">install_target</span> <span class="o">+</span> <span class="s1">&#39; in directory &#39;</span> <span class="o">+</span>
    415           <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span>
    416 
    417     <span class="n">del_fortran_build</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">)</span>
    418     <span class="n">mk_fortran_build</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">makefile</span><span class="p">)</span>
     433        <span class="c1"># Create Fortran executable</span>
     434        <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Install &#39;</span> <span class="o">+</span>  <span class="n">_config</span><span class="o">.</span><span class="n">FLEXEXTRACT_DIRNAME</span> <span class="o">+</span> <span class="s1">&#39; software at &#39;</span> <span class="o">+</span>
     435              <span class="n">c</span><span class="o">.</span><span class="n">install_target</span> <span class="o">+</span> <span class="s1">&#39; in directory &#39;</span> <span class="o">+</span> <span class="n">c</span><span class="o">.</span><span class="n">installdir</span> <span class="o">+</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span>
     436
     437        <span class="n">del_fortran_build</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">)</span>
     438        <span class="n">mk_fortran_build</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">makefile</span><span class="p">)</span>
     439        <span class="n">os</span><span class="o">.</span><span class="n">chdir</span><span class="p">(</span><span class="s1">&#39;../../&#39;</span><span class="p">)</span>
     440        <span class="c1"># make sure that the correct calling of submit.py script is in run_local.sh</span>
     441        <span class="n">overwrite_lines_in_file</span><span class="p">(</span><span class="s1">&#39;Run/run_local.sh&#39;</span><span class="p">,</span>
     442                                <span class="s1">&#39;pyscript=&#39;</span><span class="p">,</span> <span class="s1">&#39;pyscript=../Source/Python/submit.py</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span>
     443
     444    <span class="c1"># this is system installation were executables and user files are separated</span>
     445    <span class="k">elif</span> <span class="n">c</span><span class="o">.</span><span class="n">install_target</span> <span class="o">==</span> <span class="s1">&#39;syslocal&#39;</span><span class="p">:</span>
     446        <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_FLEXEXTRACT_DIR</span><span class="p">)</span> <span class="o">==</span> <span class="n">c</span><span class="o">.</span><span class="n">sysinstalldir</span> <span class="p">:</span>
     447            <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="s1">&#39;ERROR: System installation path is equal to user &#39;</span>
     448                     <span class="s1">&#39;installation path.</span><span class="se">\n</span><span class="s1"> Please change either the system &#39;</span>
     449                     <span class="s1">&#39;installation path or use installation target &quot;local&quot;.&#39;</span><span class="p">)</span>
     450        <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_FLEXEXTRACT_DIR</span><span class="p">)</span> <span class="o">==</span> <span class="n">c</span><span class="o">.</span><span class="n">installdir</span> <span class="p">:</span>
     451            <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Flex_extract will be installed in current directory!&#39;</span><span class="p">)</span>
     452        <span class="k">else</span><span class="p">:</span> <span class="c1"># install user part in different dir</span>
     453            <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Flex_extract will be installed in &#39;</span> <span class="o">+</span> <span class="n">c</span><span class="o">.</span><span class="n">installdir</span> <span class="p">)</span>
     454
     455            <span class="n">c</span><span class="o">.</span><span class="n">installdir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">,</span><span class="n">_config</span><span class="o">.</span><span class="n">FLEXEXTRACT_DIRNAME</span><span class="p">)</span>
     456            <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isdir</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">):</span>
     457                <span class="n">shutil</span><span class="o">.</span><span class="n">rmtree</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">)</span>
     458
     459            <span class="c1"># copy all files except Python and Fortranfiles to this dir</span>
     460            <span class="n">shutil</span><span class="o">.</span><span class="n">copytree</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_FLEXEXTRACT_DIR</span><span class="p">,</span>
     461                            <span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">,</span> <span class="n">symlinks</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
     462            <span class="n">shutil</span><span class="o">.</span><span class="n">rmtree</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">,</span><span class="s1">&#39;Source&#39;</span><span class="p">))</span>
     463            <span class="n">shutil</span><span class="o">.</span><span class="n">rmtree</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">,</span><span class="s1">&#39;.git&#39;</span><span class="p">))</span>
     464            <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">UioFiles</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">,</span> <span class="s1">&#39;*~&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">files</span><span class="p">:</span>
     465                <span class="n">silent_remove</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
     466
     467            <span class="n">os</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">,</span><span class="s1">&#39;setup.sh&#39;</span><span class="p">))</span>
     468            <span class="n">os</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">,</span><span class="s1">&#39;setup_local.sh&#39;</span><span class="p">))</span>
     469
     470        <span class="c1"># configure run_local script correctly</span>
     471        <span class="c1"># check if source of system config file is already in run_local.sh,</span>
     472        <span class="c1"># if not, add it</span>
     473        <span class="k">if</span> <span class="ow">not</span> <span class="n">check_for_string_in_file</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">,</span><span class="s1">&#39;Run/run_local.sh&#39;</span><span class="p">),</span>
     474                                 <span class="s1">&#39;source .setup.rc&#39;</span><span class="p">):</span>
     475            <span class="n">overwrite_lines_in_file</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">,</span><span class="s1">&#39;Run/run_local.sh&#39;</span><span class="p">),</span>
     476                                    <span class="s1">&#39;# PATH TO SUBMISSION SCRIPT&#39;</span><span class="p">,</span>
     477                                    <span class="s1">&#39;# PATH TO SUBMISSION SCRIPT</span><span class="se">\n</span><span class="s1">source &#39;</span><span class="o">+</span><span class="n">_config</span><span class="o">.</span><span class="n">FILE_SYS_CONFIG</span><span class="o">+</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span>
     478        <span class="c1"># make sure that the correct calling of submit.py script is in run_local.sh</span>
     479        <span class="n">overwrite_lines_in_file</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">,</span><span class="s1">&#39;Run/run_local.sh&#39;</span><span class="p">),</span>
     480                                <span class="s1">&#39;pyscript=&#39;</span><span class="p">,</span> <span class="s1">&#39;pyscript=submit.py</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span>
     481
     482        <span class="c1"># change permission for file to executable</span>
     483        <span class="n">execute_subprocess</span><span class="p">([</span><span class="s1">&#39;chmod&#39;</span><span class="p">,</span> <span class="s1">&#39;0775&#39;</span><span class="p">,</span>
     484                            <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">),</span><span class="s1">&#39;Run/run_local.sh&#39;</span><span class="p">)])</span>
     485
     486
     487        <span class="c1"># create systemdir</span>
     488        <span class="n">c</span><span class="o">.</span><span class="n">sysinstalldir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">sysinstalldir</span><span class="p">,</span><span class="n">_config</span><span class="o">.</span><span class="n">FLEXEXTRACT_DIRNAME</span><span class="p">)</span>
     489        <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isdir</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">sysinstalldir</span><span class="p">):</span>
     490            <span class="n">shutil</span><span class="o">.</span><span class="n">rmtree</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">sysinstalldir</span><span class="p">)</span>
     491
     492        <span class="c1"># create setup file for running flex_extract with system installation</span>
     493        <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">),</span><span class="s1">&#39;Run/.setup.rc&#39;</span><span class="p">),</span><span class="s1">&#39;w&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">fio</span><span class="p">:</span>
     494            <span class="n">fio</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;#!/bin/bash </span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span>
     495            <span class="n">fio</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;export FLEXEXTRACT_USER_DIR=&#39;</span><span class="o">+</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">)</span><span class="o">+</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span>
     496            <span class="n">fio</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;export PATH=&#39;</span><span class="o">+</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">sysinstalldir</span><span class="p">)</span><span class="o">+</span><span class="s1">&#39;/Python:$</span><span class="si">{PATH}</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span>
     497            <span class="n">fio</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;export PATH=&#39;</span><span class="o">+</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">sysinstalldir</span><span class="p">)</span><span class="o">+</span><span class="s1">&#39;:$</span><span class="si">{PATH}</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span>
     498
     499        <span class="c1"># copy all Python and Fortranfiles to this dir</span>
     500        <span class="n">shutil</span><span class="o">.</span><span class="n">copytree</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_SOURCES</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">sysinstalldir</span><span class="p">,</span> <span class="n">symlinks</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
     501
     502        <span class="n">os</span><span class="o">.</span><span class="n">chdir</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">sysinstalldir</span><span class="p">,</span><span class="s1">&#39;Fortran&#39;</span><span class="p">))</span>
     503        <span class="c1"># Create Fortran executable</span>
     504        <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Install &#39;</span> <span class="o">+</span>  <span class="n">_config</span><span class="o">.</span><span class="n">FLEXEXTRACT_DIRNAME</span> <span class="o">+</span> <span class="s1">&#39; software as &#39;</span> <span class="o">+</span>
     505              <span class="n">c</span><span class="o">.</span><span class="n">install_target</span> <span class="o">+</span> <span class="s1">&#39; in directory &#39;</span> <span class="o">+</span>
     506              <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">sysinstalldir</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span>
     507
     508        <span class="n">del_fortran_build</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">)</span>
     509        <span class="n">mk_fortran_build</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">makefile</span><span class="p">)</span>
     510
     511        <span class="n">outfile</span> <span class="o">=</span> <span class="p">[</span><span class="n">x</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">UioFiles</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">,</span><span class="s1">&#39;*.out&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">files</span><span class="p">]</span>
     512        <span class="n">test</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">sysinstalldir</span><span class="p">,</span><span class="s1">&#39;calc_etadot&#39;</span><span class="p">)</span>
     513        <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">outfile</span><span class="p">)</span> <span class="o">!=</span> <span class="mi">1</span><span class="p">:</span>
     514            <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;WARNING: Multiple executables for Fortran code are available!&#39;</span><span class="p">)</span>
     515        <span class="c1"># move executable one dir up and delete Fortran dir</span>
     516        <span class="n">os</span><span class="o">.</span><span class="n">chdir</span><span class="p">(</span><span class="s1">&#39;..&#39;</span><span class="p">)</span>
     517        <span class="n">shutil</span><span class="o">.</span><span class="n">move</span><span class="p">(</span><span class="n">outfile</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">sysinstalldir</span><span class="p">,</span><span class="s1">&#39;calc_etadot&#39;</span><span class="p">))</span>
     518        <span class="n">shutil</span><span class="o">.</span><span class="n">rmtree</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">sysinstalldir</span><span class="p">),</span><span class="s1">&#39;Fortran&#39;</span><span class="p">))</span>
    419519
    420520    <span class="n">os</span><span class="o">.</span><span class="n">chdir</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_FLEXEXTRACT_DIR</span><span class="p">)</span>
     
    451551        <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
    452552
    453     <span class="k">if</span> <span class="n">c</span><span class="o">.</span><span class="n">install_target</span> <span class="ow">and</span> <span class="n">c</span><span class="o">.</span><span class="n">install_target</span> <span class="o">!=</span> <span class="s1">&#39;local&#39;</span><span class="p">:</span>
     553    <span class="k">if</span> <span class="n">c</span><span class="o">.</span><span class="n">install_target</span> <span class="ow">and</span> <span class="n">c</span><span class="o">.</span><span class="n">install_target</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">&#39;local&#39;</span><span class="p">,</span> <span class="s1">&#39;syslocal&#39;</span><span class="p">]:</span>
    454554        <span class="k">if</span> <span class="ow">not</span> <span class="n">c</span><span class="o">.</span><span class="n">ecgid</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">c</span><span class="o">.</span><span class="n">ecuid</span><span class="p">:</span>
    455555            <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Please enter your ECMWF user id and group id &#39;</span>
     
    467567        <span class="k">if</span> <span class="ow">not</span> <span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">:</span>
    468568            <span class="n">c</span><span class="o">.</span><span class="n">installdir</span> <span class="o">=</span> <span class="s1">&#39;$</span><span class="si">{HOME}</span><span class="s1">&#39;</span>
    469     <span class="k">else</span><span class="p">:</span> <span class="c1"># local</span>
     569    <span class="k">elif</span> <span class="n">c</span><span class="o">.</span><span class="n">install_target</span> <span class="o">==</span> <span class="s1">&#39;local&#39;</span><span class="p">:</span>
    470570        <span class="k">if</span> <span class="ow">not</span> <span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">:</span>
    471571            <span class="n">c</span><span class="o">.</span><span class="n">installdir</span> <span class="o">=</span> <span class="n">_config</span><span class="o">.</span><span class="n">PATH_FLEXEXTRACT_DIR</span>
     572    <span class="k">elif</span> <span class="n">c</span><span class="o">.</span><span class="n">install_target</span> <span class="o">==</span> <span class="s1">&#39;syslocal&#39;</span><span class="p">:</span>
     573        <span class="k">if</span> <span class="ow">not</span> <span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">:</span>
     574            <span class="n">c</span><span class="o">.</span><span class="n">installdir</span> <span class="o">=</span> <span class="n">_config</span><span class="o">.</span><span class="n">PATH_FLEXEXTRACT_DIR</span>
     575        <span class="k">if</span> <span class="ow">not</span> <span class="n">c</span><span class="o">.</span><span class="n">sysinstalldir</span><span class="p">:</span>
     576            <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;ERROR: System installation was selected but &#39;</span>
     577                  <span class="s1">&#39;no system installation path was defined.&#39;</span><span class="p">)</span>
     578            <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">()</span>
    472579
    473580    <span class="k">if</span> <span class="ow">not</span> <span class="n">c</span><span class="o">.</span><span class="n">makefile</span><span class="p">:</span>
     
    485592        <span class="k">else</span><span class="p">:</span>
    486593            <span class="k">pass</span>
    487        
     594
    488595    <span class="k">return</span></div>
    489596
     
    877984        <span class="nb">print</span><span class="p">(</span><span class="n">e</span><span class="p">)</span>
    878985    <span class="k">else</span><span class="p">:</span>
    879         <span class="n">execute_subprocess</span><span class="p">([</span><span class="s1">&#39;ls&#39;</span><span class="p">,</span> <span class="s1">&#39;-l&#39;</span><span class="p">,</span> 
     986        <span class="n">execute_subprocess</span><span class="p">([</span><span class="s1">&#39;ls&#39;</span><span class="p">,</span> <span class="s1">&#39;-l&#39;</span><span class="p">,</span>
    880987                            <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">src_path</span><span class="p">,</span> <span class="n">_config</span><span class="o">.</span><span class="n">FORTRAN_EXECUTABLE</span><span class="p">)],</span>
    881988                           <span class="n">error_msg</span><span class="o">=</span><span class="s1">&#39;FORTRAN EXECUTABLE COULD NOT BE FOUND!&#39;</span><span class="p">)</span>
  • Documentation/html/_modules/submit.html

    r08c9091 r47be2684  
    276276    <span class="k">else</span><span class="p">:</span>
    277277        <span class="n">submit</span><span class="p">(</span><span class="n">job_template</span><span class="p">,</span> <span class="n">c</span><span class="p">,</span> <span class="n">queue</span><span class="p">)</span>
    278         <span class="n">exit_message</span> <span class="o">=</span> <span class="s1">&#39;FLEX_EXTRACT JOB SCRIPT IS SUBMITED!&#39;</span>
     278        <span class="n">exit_message</span> <span class="o">=</span> <span class="s1">&#39;FLEX_EXTRACT JOB SCRIPT IS SUBMITTED!&#39;</span>
    279279
    280280    <span class="n">normal_exit</span><span class="p">(</span><span class="n">exit_message</span><span class="p">)</span>
  • Documentation/html/_modules/tools.html

    r08c9091 r903ed4f  
    184184<span class="c1">#          put_file_to_ecserver, submit_job_to_ecserver, get_informations,</span>
    185185<span class="c1">#          get_dimensions, execute_subprocess, none_or_int, none_or_str</span>
     186<span class="c1">#</span>
     187<span class="c1">#    August 2020 - Leopold Haimberger (University of Vienna)</span>
     188<span class="c1">#        - added function to check if a specific string is in a file</span>
     189<span class="c1">#        - added function to overwrite lines in a file which contain specific string</span>
    186190<span class="c1">#</span>
    187191<span class="c1"># @License:</span>
     
    411415                        <span class="nb">type</span><span class="o">=</span><span class="n">none_or_str</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
    412416                        <span class="n">help</span><span class="o">=</span><span class="s1">&#39;The name of the ECMWF server name where the&#39;</span>
    413                         <span class="s1">&#39;job script is to be submitted &#39;</span> 
     417                        <span class="s1">&#39;job script is to be submitted &#39;</span>
    414418                        <span class="s1">&#39;(e.g. ecgate | cca | ccb)&#39;</span><span class="p">)</span>
    415419
     
    786790    <span class="sd">&#39;&#39;&#39;Creates a directory.</span>
    787791
    788 <span class="sd">    If the directory already exists, an information is printed and the creation </span>
     792<span class="sd">    If the directory already exists, an information is printed and the creation</span>
    789793<span class="sd">    skipped. The program stops only if there is another problem.</span>
    790794
     
    10181022<span class="sd">    ----------</span>
    10191023<span class="sd">    cmd_list : list of str</span>
    1020 <span class="sd">        A list of the components for the command line execution. </span>
    1021 <span class="sd">        They will be concatenated with blank space for the command </span>
     1024<span class="sd">        A list of the components for the command line execution.</span>
     1025<span class="sd">        They will be concatenated with blank space for the command</span>
    10221026<span class="sd">        to be submitted, like [&#39;mv&#39;, file1, file2] for mv file1 file2.</span>
    10231027
     
    10721076
    10731077    <span class="k">return</span> <span class="n">start_period</span><span class="p">,</span> <span class="n">end_period</span></div>
     1078
     1079
     1080<div class="viewcode-block" id="check_for_string_in_file"><a class="viewcode-back" href="../Documentation/Api/api_python.html#tools.check_for_string_in_file">[docs]</a><span class="k">def</span> <span class="nf">check_for_string_in_file</span><span class="p">(</span><span class="n">filepath</span><span class="p">,</span> <span class="n">search_string</span><span class="p">):</span>
     1081    <span class="sd">&quot;&quot;&quot;</span>
     1082<span class="sd">    Search for a specific string in a file and return True if</span>
     1083<span class="sd">    the string was found.</span>
     1084
     1085<span class="sd">    Parameters</span>
     1086<span class="sd">    ----------</span>
     1087<span class="sd">    filepath : str</span>
     1088<span class="sd">        The full file path which is to be examined.</span>
     1089
     1090<span class="sd">    search_string : str</span>
     1091<span class="sd">        The string which is looked up for in the file.</span>
     1092
     1093<span class="sd">    Return</span>
     1094<span class="sd">    ------</span>
     1095<span class="sd">    Boolean :</span>
     1096<span class="sd">        True : String was found</span>
     1097<span class="sd">        False : String was not found</span>
     1098<span class="sd">    &quot;&quot;&quot;</span>
     1099    <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">filepath</span><span class="p">,</span> <span class="s1">&#39;r&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">fio</span><span class="p">:</span>
     1100        <span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">fio</span><span class="p">:</span>
     1101            <span class="k">if</span> <span class="n">search_string</span> <span class="ow">in</span> <span class="n">line</span><span class="p">:</span>
     1102                <span class="k">return</span> <span class="kc">True</span>
     1103    <span class="k">return</span> <span class="kc">False</span></div>
     1104
     1105
     1106<div class="viewcode-block" id="overwrite_lines_in_file"><a class="viewcode-back" href="../Documentation/Api/api_python.html#tools.overwrite_lines_in_file">[docs]</a><span class="k">def</span> <span class="nf">overwrite_lines_in_file</span><span class="p">(</span><span class="n">filepath</span><span class="p">,</span> <span class="n">search_string</span><span class="p">,</span> <span class="n">sub_string</span><span class="p">):</span>
     1107    <span class="sd">&quot;&quot;&quot;</span>
     1108<span class="sd">    Overwrites lines which contain the given search string with the</span>
     1109<span class="sd">    substitution string.</span>
     1110
     1111<span class="sd">    Parameters</span>
     1112<span class="sd">    ----------</span>
     1113<span class="sd">    search_string : str</span>
     1114<span class="sd">        The string which is looked up for in the file.</span>
     1115
     1116<span class="sd">    sub_string : str</span>
     1117<span class="sd">        The string which overwrites the search string.</span>
     1118
     1119<span class="sd">    Return</span>
     1120<span class="sd">    ------</span>
     1121<span class="sd">    &quot;&quot;&quot;</span>
     1122    <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">filepath</span><span class="p">,</span> <span class="s1">&#39;r&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">fio</span><span class="p">:</span>
     1123        <span class="n">data</span> <span class="o">=</span> <span class="n">fio</span><span class="o">.</span><span class="n">readlines</span><span class="p">()</span>
     1124
     1125    <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">filepath</span><span class="p">,</span> <span class="s1">&#39;w&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">fio</span><span class="p">:</span>
     1126        <span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">data</span><span class="p">:</span>
     1127            <span class="k">if</span> <span class="n">search_string</span> <span class="ow">in</span> <span class="n">line</span><span class="p">:</span>
     1128                <span class="n">fio</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">sub_string</span><span class="p">)</span>
     1129            <span class="k">else</span><span class="p">:</span>
     1130                <span class="n">fio</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">line</span><span class="p">)</span>
     1131
     1132    <span class="k">return</span></div>
     1133
    10741134</pre></div>
    10751135
  • Documentation/html/_sources/Documentation/Input/setup.rst.txt

    r5bee29a r47be2684  
    165165                  [--ecuid ECUID] [--ecgid ECGID] [--gateway GATEWAY]
    166166                  [--destination DESTINATION] [--installdir INSTALLDIR]
     167                  [--sysinstalldir SYSINSTALLDIR]
    167168                  [--job_template JOB_TEMPLATE] [--controlfile CONTROLFILE]
    168169
     
    172173      -h, --help            show this help message and exit
    173174      --target INSTALL_TARGET
    174                             Valid targets: local | ecgate | cca , the latter two
     175                            Valid targets: syslocal | local | ecgate | cca , the latter two
    175176                            are at ECMWF (default: None)
    176177      --makefile MAKEFILE   Name of makefile to compile the Fortran
     
    186187                            Root directory where flex_extract will be installed
    187188                            to. (default: None)
     189      --sysinstalldir SYSINSTALLDIR
     190                            System installation path; where executables are
     191                            stored. (default: None)
    188192      --job_template JOB_TEMPLATE
    189193                            The rudimentary template file to create a batch job
     
    198202
    199203
     204
    200205.. toctree::
    201206    :hidden:
  • Documentation/html/_sources/Installation/local.rst.txt

    r73308e0 r903ed4f  
    266266The Fortran program called ``calc_etadot`` will be compiled during the
    267267installation process. A suitable makefile (``makefile_local_gfortran``) for the compilation is set by default.
    268 This may be overwritten by the ``MAKEFILE`` parameter in ``setup.sh``.
    269 
    270 However, you may have to adapt the makefile for your environment (the current default makefile works on Debian stretch and similar GNU/Linux distributions). If you use a new name for it, you will have to insert it into ``setup.sh``
     268This may be overwritten by the ``MAKEFILE`` parameter in ``setup_local.sh``.
     269
     270However, you may have to adapt the makefile for your environment (the current default makefile works on Debian stretch and similar GNU/Linux distributions). If you use a new name for it, you will have to insert it into ``setup_local.sh``
    271271For details on the makefile and how to adapt them, see :ref:`Fortran Makefile <ref-convert>`.
    272272
    273273 
    274 In the root directory of ``flex_extract``, open the ``setup.sh`` script
     274In the root directory of ``flex_extract``, open the ``setup_local.sh`` script
    275275with an editor and adapt the installation parameters in the section labelled with
    276276"AVAILABLE COMMANDLINE ARGUMENTS TO SET" as shown below:
     
    279279.. code-block:: bash
    280280   :caption: 'Example settings for a local installation.'
    281    :name: setup.sh
     281   :name: setup_local.sh
    282282   
    283283   ...
     
    294294   DESTINATION=None
    295295   INSTALLDIR=None
     296   SYSINSTALLDIR=None
    296297   JOB_TEMPLATE=''
    297298   CONTROLFILE='CONTROL_EA5'
     
    303304.. code-block:: bash
    304305
    305    $ ./setup.sh
     306   $ ./setup_local.sh
    306307   
    307308to start the installation. You should see the following standard output.
     
    310311.. code-block:: bash
    311312
    312     # Output of setup.sh   
     313    # Output of setup_local.sh   
    313314    WARNING: installdir has not been specified
    314315    flex_extract will be installed in here by compiling the Fortran source in <path-to-flex_extract>/flex_extract_v7.1/Source/Fortran
     
    327328    lrwxrwxrwx. 1 <username> tmc 20 Aug 12  10:59 ./calc_etadot -> calc_etadot_fast.out
    328329
     330
     331Local system installation
     332=========================
     333
     334There is also the possibility to separate the software executables from the user application files. For doing so, the ``TARGET`` parameter can be set to "syslocal" and the additional parameter ``SYSINSTALLDIR`` in the ``setup_local.sh`` has to be specified. This new path will contain the Fortran and Python executables of ``flex_extract``. If you chose to set a system path for this, please start the script as root.
     335The user directory for ``flex_extract``, which basically consists of everything except the ``Source`` directory, will be installed into ``INSTALLDIR``.
     336In this installation mode, an extra (hidden) ``.setup.rc`` file will be generated in the ``Run`` directory. It contains the necessary settings for running the local system mode.
     337
     338Despite the change in the ``TARGET`` parameter, the meaning of ``INSTALLDIR`` and the additional ``SYSINSTALLDIR``, the steps for installation are the same as in the local installation mentioned above. For example, modify the ``setup_local.sh`` file as follows:
     339
     340
     341.. code-block:: bash
     342   :caption: 'Example settings for a local system installation.'
     343   :name: setup_local.sh
     344   
     345   ...
     346   # -----------------------------------------------------------------
     347   # AVAILABLE COMMANDLINE ARGUMENTS TO SET
     348   #
     349   # THE USER HAS TO SPECIFY THESE PARAMETER
     350   #
     351   TARGET='syslocal'
     352   MAKEFILE=<name_of_your_makefile>
     353   ECUID=None
     354   ECGID=None
     355   GATEWAY=None
     356   DESTINATION=None
     357   INSTALLDIR=$HOME
     358   SYSINSTALLDIR=/usr/bin/
     359   JOB_TEMPLATE=''
     360   CONTROLFILE='CONTROL_EA5'
     361   ...
     362
     363
     364Afterwards, type:
     365
     366.. code-block:: bash
     367
     368   $ sudo ./setup_local.sh
     369   
     370to start the installation. You should see the following standard output.
     371
     372.. code-block:: bash
     373
     374        Flex_extract will be installed in <$HOME>
     375        Install flex_extract_v7.1.2 software as syslocal in directory /usr/bin/flex_extract_v7.1.2
     376
     377        Using makefile: makefile_local_gfortran
     378        /usr/local/bin/gfortran   -O3 -march=native -L/usr/local/lib64/ -leccodes_f90 -leccodes -lm -lemosR64 -I. -I/usr/local/include/ -fdefault-real-8 -fopenmp -fconvert=big-endian   -c     ./rwgrib2.f90
     379        /usr/local/bin/gfortran   -O3 -march=native -L/usr/local/lib64/ -leccodes_f90 -leccodes -lm -lemosR64 -I. -I/usr/local/include/ -fdefault-real-8 -fopenmp -fconvert=big-endian   -c     ./phgrreal.f90
     380        /usr/local/bin/gfortran   -O3 -march=native -L/usr/local/lib64/ -leccodes_f90 -leccodes -lm -lemosR64 -I. -I/usr/local/include/ -fdefault-real-8 -fopenmp -fconvert=big-endian   -c     ./grphreal.f90
     381        /usr/local/bin/gfortran   -O3 -march=native -L/usr/local/lib64/ -leccodes_f90 -leccodes -lm -lemosR64 -I. -I/usr/local/include/ -fdefault-real-8 -fopenmp -fconvert=big-endian   -c     ./ftrafo.f90
     382        /usr/local/bin/gfortran   -O3 -march=native -L/usr/local/lib64/ -leccodes_f90 -leccodes -lm -lemosR64 -I. -I/usr/local/include/ -fdefault-real-8 -fopenmp -fconvert=big-endian   -c     ./calc_etadot.f90
     383        /usr/local/bin/gfortran   -O3 -march=native -L/usr/local/lib64/ -leccodes_f90 -leccodes -lm -lemosR64 -I. -I/usr/local/include/ -fdefault-real-8 -fopenmp -fconvert=big-endian   -c     ./posnam.f90
     384        /usr/local/bin/gfortran  rwgrib2.o calc_etadot.o ftrafo.o grphreal.o posnam.o phgrreal.o -o calc_etadot_fast.out  -O3 -march=native -L/usr/local/lib64/ -leccodes_f90 -leccodes -lm -lemosR64 -fopenmp
     385        ln -sf calc_etadot_fast.out calc_etadot
     386
     387        lrwxrwxrwx. 1 <username> tmc 20 27. Okt 23:25 ./calc_etadot -> calc_etadot_fast.out
     388        SUCCESS: INSTALLATION FINISHED!
     389
     390
     391You can now change into the user directory specified in ``INSTALLDIR`` and find a ``flex_extract_vX.X`` directory there.
  • Documentation/html/genindex.html

    r08c9091 r47be2684  
    274274      <li><a href="Documentation/Api/api_python.html#get_mars_data.check_dates_for_nonflux_fc_times">check_dates_for_nonflux_fc_times() (in module get_mars_data)</a>
    275275</li>
     276      <li><a href="Documentation/Api/api_python.html#tools.check_for_string_in_file">check_for_string_in_file() (in module tools)</a>
     277</li>
    276278      <li><a href="Documentation/Api/api_python.html#checks.check_grid">check_grid() (in module checks)</a>
    277279</li>
     
    650652      <li><a href="Documentation/Api/api_python.html#ControlFile.ControlFile.omegadiff">omegadiff (ControlFile.ControlFile attribute)</a>
    651653</li>
    652   </ul></td>
    653   <td style="width: 33%; vertical-align: top;"><ul>
    654654      <li><a href="Documentation/Api/api_python.html#ControlFile.ControlFile.oper">oper (ControlFile.ControlFile attribute)</a>
    655655</li>
     656  </ul></td>
     657  <td style="width: 33%; vertical-align: top;"><ul>
    656658      <li><a href="Documentation/Api/api_python.html#ControlFile.ControlFile.outputdir">outputdir (ControlFile.ControlFile attribute)</a>
    657659</li>
    658660      <li><a href="Documentation/Api/api_python.html#EcFlexpart.EcFlexpart.outputfilelist">outputfilelist (EcFlexpart.EcFlexpart attribute)</a>
     661</li>
     662      <li><a href="Documentation/Api/api_python.html#tools.overwrite_lines_in_file">overwrite_lines_in_file() (in module tools)</a>
    659663</li>
    660664  </ul></td>
  • Documentation/html/searchindex.js

    r73308e0 r903ed4f  
    1 Search.setIndex({docnames:["Developers/gen_docu","Documentation/Api/api_fortran","Documentation/Api/api_python","Documentation/Input/changes","Documentation/Input/compilejob","Documentation/Input/control","Documentation/Input/control_params","Documentation/Input/ecmwf_env","Documentation/Input/examples","Documentation/Input/fortran_makefile","Documentation/Input/jobscript","Documentation/Input/run","Documentation/Input/setup","Documentation/Input/templates","Documentation/Overview/app_modes","Documentation/Overview/prog_flow","Documentation/api","Documentation/disagg","Documentation/input","Documentation/output","Documentation/overview","Documentation/vertco","Ecmwf/access","Ecmwf/ec-links","Ecmwf/hintsecmwf","Ecmwf/msdata","Ecmwf/pubdata","Evaluation/metrics","Evaluation/staticcode","Evaluation/testcases","Installation/gateway","Installation/local","Installation/remote","Support/faq","Support/known_bugs_issues","authors","changelog","dev_guide","documentation","ecmwf_data","evaluation","index","installation","quick_start","support","todo"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":1,"sphinx.domains.index":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,"sphinx.ext.intersphinx":1,"sphinx.ext.todo":2,"sphinx.ext.viewcode":1,sphinx:56},filenames:["Developers/gen_docu.rst","Documentation/Api/api_fortran.rst","Documentation/Api/api_python.rst","Documentation/Input/changes.rst","Documentation/Input/compilejob.rst","Documentation/Input/control.rst","Documentation/Input/control_params.rst","Documentation/Input/ecmwf_env.rst","Documentation/Input/examples.rst","Documentation/Input/fortran_makefile.rst","Documentation/Input/jobscript.rst","Documentation/Input/run.rst","Documentation/Input/setup.rst","Documentation/Input/templates.rst","Documentation/Overview/app_modes.rst","Documentation/Overview/prog_flow.rst","Documentation/api.rst","Documentation/disagg.rst","Documentation/input.rst","Documentation/output.rst","Documentation/overview.rst","Documentation/vertco.rst","Ecmwf/access.rst","Ecmwf/ec-links.rst","Ecmwf/hintsecmwf.rst","Ecmwf/msdata.rst","Ecmwf/pubdata.rst","Evaluation/metrics.rst","Evaluation/staticcode.rst","Evaluation/testcases.rst","Installation/gateway.rst","Installation/local.rst","Installation/remote.rst","Support/faq.rst","Support/known_bugs_issues.rst","authors.rst","changelog.rst","dev_guide.rst","documentation.rst","ecmwf_data.rst","evaluation.rst","index.rst","installation.rst","quick_start.rst","support.rst","todo.rst"],objects:{"":{ControlFile:[2,0,0,"-"],EcFlexpart:[2,0,0,"-"],GribUtil:[2,0,0,"-"],MarsRetrieval:[2,0,0,"-"],UioFiles:[2,0,0,"-"],checks:[2,0,0,"-"],disaggregation:[2,0,0,"-"],get_mars_data:[2,0,0,"-"],install:[2,0,0,"-"],prepare_flexpart:[2,0,0,"-"],submit:[2,0,0,"-"],tools:[2,0,0,"-"]},"ControlFile.ControlFile":{"public":[2,2,1,""],accmaxstep:[2,2,1,""],acctime:[2,2,1,""],acctype:[2,2,1,""],accuracy:[2,2,1,""],addpar:[2,2,1,""],area:[2,2,1,""],assign_args_to_control:[2,3,1,""],assign_envs_to_control:[2,3,1,""],basetime:[2,2,1,""],cds_api:[2,2,1,""],check_conditions:[2,3,1,""],controlfile:[2,2,1,""],cwc:[2,2,1,""],dataset:[2,2,1,""],date_chunk:[2,2,1,""],debug:[2,2,1,""],destination:[2,2,1,""],doubleelda:[2,2,1,""],dpdeta:[2,2,1,""],dtime:[2,2,1,""],ec_api:[2,2,1,""],ecfsdir:[2,2,1,""],ecgid:[2,2,1,""],ecstorage:[2,2,1,""],ectrans:[2,2,1,""],ecuid:[2,2,1,""],end_date:[2,2,1,""],eta:[2,2,1,""],etadiff:[2,2,1,""],etapar:[2,2,1,""],exedir:[2,2,1,""],expver:[2,2,1,""],flexextractdir:[2,2,1,""],format:[2,2,1,""],gateway:[2,2,1,""],gauss:[2,2,1,""],gaussian:[2,2,1,""],grid:[2,2,1,""],inputdir:[2,2,1,""],install_target:[2,2,1,""],installdir:[2,2,1,""],left:[2,2,1,""],level:[2,2,1,""],levelist:[2,2,1,""],logicals:[2,2,1,""],lower:[2,2,1,""],mailfail:[2,2,1,""],mailops:[2,2,1,""],makefile:[2,2,1,""],marsclass:[2,2,1,""],maxstep:[2,2,1,""],number:[2,2,1,""],omega:[2,2,1,""],omegadiff:[2,2,1,""],oper:[2,2,1,""],outputdir:[2,2,1,""],prefix:[2,2,1,""],purefc:[2,2,1,""],request:[2,2,1,""],resol:[2,2,1,""],right:[2,2,1,""],rrint:[2,2,1,""],smooth:[2,2,1,""],start_date:[2,2,1,""],step:[2,2,1,""],stream:[2,2,1,""],time:[2,2,1,""],to_list:[2,3,1,""],type:[2,2,1,""],upper:[2,2,1,""],wrf:[2,2,1,""]},"EcFlexpart.EcFlexpart":{"public":[2,2,1,""],accmaxstep:[2,2,1,""],acctime:[2,2,1,""],acctype:[2,2,1,""],accuracy:[2,2,1,""],addpar:[2,2,1,""],area:[2,2,1,""],basetime:[2,2,1,""],calc_extra_elda:[2,3,1,""],create:[2,3,1,""],dataset:[2,2,1,""],dates:[2,2,1,""],deacc_fluxes:[2,3,1,""],dtime:[2,2,1,""],expver:[2,2,1,""],gaussian:[2,2,1,""],glevelist:[2,2,1,""],grid:[2,2,1,""],inputdir:[2,2,1,""],level:[2,2,1,""],levelist:[2,2,1,""],marsclass:[2,2,1,""],mreq_count:[2,2,1,""],number:[2,2,1,""],outputfilelist:[2,2,1,""],params:[2,2,1,""],process_output:[2,3,1,""],purefc:[2,2,1,""],resol:[2,2,1,""],retrieve:[2,3,1,""],server:[2,2,1,""],stream:[2,2,1,""],types:[2,2,1,""],write_namelist:[2,3,1,""]},"GribUtil.GribUtil":{copy_dummy_msg:[2,3,1,""],get_keys:[2,3,1,""],index:[2,3,1,""],set_keys:[2,3,1,""]},"MarsRetrieval.MarsRetrieval":{"public":[2,2,1,""],accuracy:[2,2,1,""],area:[2,2,1,""],data_retrieve:[2,3,1,""],dataset:[2,2,1,""],date:[2,2,1,""],display_info:[2,3,1,""],expver:[2,2,1,""],gaussian:[2,2,1,""],grid:[2,2,1,""],levelist:[2,2,1,""],levtype:[2,2,1,""],marsclass:[2,2,1,""],number:[2,2,1,""],param:[2,2,1,""],print_infodata_csv:[2,3,1,""],repres:[2,2,1,""],resol:[2,2,1,""],server:[2,2,1,""],step:[2,2,1,""],stream:[2,2,1,""],target:[2,2,1,""],time:[2,2,1,""],type:[2,2,1,""]},"UioFiles.UioFiles":{delete_files:[2,3,1,""],files:[2,2,1,""],path:[2,2,1,""],pattern:[2,2,1,""]},ControlFile:{ControlFile:[2,1,1,""]},EcFlexpart:{EcFlexpart:[2,1,1,""]},GribUtil:{GribUtil:[2,1,1,""]},MarsRetrieval:{MarsRetrieval:[2,1,1,""]},UioFiles:{UioFiles:[2,1,1,""]},checks:{check_accmaxstep:[2,4,1,""],check_acctime:[2,4,1,""],check_acctype:[2,4,1,""],check_addpar:[2,4,1,""],check_area:[2,4,1,""],check_basetime:[2,4,1,""],check_dates:[2,4,1,""],check_grid:[2,4,1,""],check_job_chunk:[2,4,1,""],check_len_type_time_step:[2,4,1,""],check_levels:[2,4,1,""],check_logicals_type:[2,4,1,""],check_mail:[2,4,1,""],check_maxstep:[2,4,1,""],check_number:[2,4,1,""],check_pathes:[2,4,1,""],check_ppid:[2,4,1,""],check_public:[2,4,1,""],check_purefc:[2,4,1,""],check_queue:[2,4,1,""],check_request:[2,4,1,""],check_step:[2,4,1,""],check_time:[2,4,1,""],check_type:[2,4,1,""]},disaggregation:{IA3:[2,4,1,""],dapoly:[2,4,1,""],darain:[2,4,1,""]},get_mars_data:{check_dates_for_nonflux_fc_times:[2,4,1,""],do_retrievement:[2,4,1,""],get_mars_data:[2,4,1,""],main:[2,4,1,""],mk_dates:[2,4,1,""],mk_server:[2,4,1,""],remove_old:[2,4,1,""],write_reqheader:[2,4,1,""]},install:{check_install_conditions:[2,4,1,""],del_fortran_build:[2,4,1,""],get_install_cmdline_args:[2,4,1,""],install_local:[2,4,1,""],install_via_gateway:[2,4,1,""],main:[2,4,1,""],mk_compilejob:[2,4,1,""],mk_env_vars:[2,4,1,""],mk_fortran_build:[2,4,1,""],mk_job_template:[2,4,1,""],mk_tarball:[2,4,1,""],un_tarball:[2,4,1,""]},prepare_flexpart:{main:[2,4,1,""],prepare_flexpart:[2,4,1,""]},submit:{main:[2,4,1,""],mk_jobscript:[2,4,1,""],submit:[2,4,1,""]},tools:{clean_up:[2,4,1,""],execute_subprocess:[2,4,1,""],generate_retrieval_period_boundary:[2,4,1,""],get_cmdline_args:[2,4,1,""],get_dimensions:[2,4,1,""],get_informations:[2,4,1,""],get_list_as_string:[2,4,1,""],init128:[2,4,1,""],make_dir:[2,4,1,""],my_error:[2,4,1,""],none_or_int:[2,4,1,""],none_or_str:[2,4,1,""],normal_exit:[2,4,1,""],product:[2,4,1,""],put_file_to_ecserver:[2,4,1,""],read_ecenv:[2,4,1,""],send_mail:[2,4,1,""],setup_controldata:[2,4,1,""],silent_remove:[2,4,1,""],submit_job_to_ecserver:[2,4,1,""],to_param_id:[2,4,1,""],to_param_id_with_tablenumber:[2,4,1,""]}},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","attribute","Python attribute"],"3":["py","method","Python method"],"4":["py","function","Python function"]},objtypes:{"0":"py:module","1":"py:class","2":"py:attribute","3":"py:method","4":"py:function"},terms:{"00h":[6,11],"10u":19,"10v":19,"12h":[6,11],"150px":[],"180w":6,"18utc":2,"1hourli":[8,43],"1st":[],"20c":[5,6,19,21,22,23,34,36,42,43],"20gb":43,"24h":6,"25th":[],"31st":[],"32000mb":[10,13],"3200mb":[4,13],"36hour":[8,43],"3hourli":[8,43],"4th":[],"60px":[],"6th":43,"althanstra\u00df":35,"boolean":2,"break":[],"case":[0,2,4,6,10,13,14,17,19,21,22,32,33,42,43,44],"class":[0,5,6,31],"default":[2,3,5,6,8,9,10,11,12,18,19,31,43],"export":[4,10,13],"f\u00fcr":13,"final":[0,2,11,15,17,19,21,43],"float":[2,11],"function":[2,17,41],"import":[2,6,11,30,31,33,34,36,39,43,44],"int":[2,6,30,32,43],"long":43,"m\u00e4r":[],"new":[2,6,10,11,17,31,41,43,44],"public":[2,5,6,8,10,11,12,14,22,23,24,31,36,39,41],"return":[2,4,10,34],"short":[2,5,6,17,30,43],"switch":[2,4,6,10,13,19],"true":[0,2],"try":[31,42,43],"while":[22,43],ARE:5,But:[],C3S:23,CDS:[2,22,23,33,36,42],Dps:[2,6],ENS:[23,43],FOR:[11,12],For:[0,2,5,6,9,11,13,14,18,19,21,22,24,30,31,32,34,39,42,43],HAS:[11,12,30,31,32,43],Has:[6,11],IDs:[2,6,15,43],Its:[2,43],NOT:[11,12,31],Not:12,One:[33,43],PBS:[4,10,13],THE:[11,12,30,31,32,43],THESE:[11,12,30,31,32,43],The:[0,2,13,14,15,17,18,19,20,21,22,30,31,32,34,39,42,43,44],Then:[2,11,14,42],There:[2,5,18,19,22,39,42,43],These:[4,10,13,17,42,43],Use:[0,6,30,32,43],Used:[2,12],Useful:[],Uses:2,Using:[31,43],WITH:[11,12],With:[6,11,12,18,43],_acc:19,_config:2,_expand:2,_file:0,_local:44,_orolsm:19,_static:[],_templat:2,a_0:17,a_1:17,a_2:17,a_3:17,abcd:2,abl:[2,13,18,19,22,30,43],about:[2,5,11,14,19,33,39,42,43],abov:[2,17,43],absolut:[],accept:[6,14,21,22,41,43],access:[2,5,6,12,14,23,24,30,31,32,33,39,41,42,43],accmaxstep:[2,5,6,10,43],accomplish:15,accord:[6,12,43],account:[30,32,39,42,43],acctim:[2,5,6,10,43],acctyp:[2,5,6,10,43],accumlu:2,accumul:[2,6,17,19,43],accur:43,accuraci:[2,5,6,10,19,21],achiev:21,action:[23,31,32],activ:42,activid:32,actual:[2,6,12,13,18,19,42,43],adapt:[0,2,5,6,9,11,12,13,18,30,31,32,33,36,43],add:[2,43],added:[17,19],adding:[2,43],addit:[2,5,11,15,17,20,30,39,43],addition:[2,6,14,30,43],addpar:[2,5,6,10,43],address:[2,6,12,19,30,32,43],adjac:17,adjust:41,admin:[30,31,33],adress:12,advanc:2,aerosol:35,affect:17,after:[2,5,6,11,12,15,17,18,43],afterward:[2,13,17,30,31,32],again:[11,12],against:[],aggreg:19,agre:22,agreement:14,algorithm:[2,17,36],align:[],alist:2,all:[2,5,6,8,11,12,13,15,17,19,30,31,32,33,42,43],alll:39,allow:[2,6,11,22,43],alpabet:2,alreadi:[2,11,12,22,30,31,32,42,43],also:[0,2,5,6,10,11,12,17,18,19,21,22,32,39,42,43,44],alter:19,altern:42,alwai:[6,11,12,43],amount:[2,6,11,17,39],anaconda:[31,42],analys:[21,39,43],analysi:[2,5,6,11,19,22,39,43],ani:[2,5,6,11,12,14,17,21,32,33,42,43,44],ann:[2,5,11,12,19,35],annep:[],annouc:44,announc:43,anog__ml:19,anog__sl:19,anoth:[2,6,9,33,43],ansh__sl:19,anymor:3,anyon:44,anyth:[6,11,12,13],api:[1,2,6,11,14,22,23,33,36,42,43],app:[30,32],appear:21,append:2,appli:[2,11,17,21,36,42,43],applic:[2,4,6,7,10,11,12,13,20,21,36,42,43,44],approach:17,appropri:[6,43,44],approri:6,april:43,apt:[30,31],arbitrari:2,archiv:[2,5,11,18,20,22,30,41,42],area:[2,5,6,10,11,12,17,19,31,43],arg:2,argument:[2,11,12,18,22,30,31,32,42,43,44],aris:14,around:[17,20],arrai:[2,34],arrang:2,array_t1:2,array_t2:2,array_t3:2,array_t4:2,articl:[2,6],ascrib:17,ask:[19,32,41,42,44],aspect:42,assign:[2,9],assign_args_to_control:2,assign_envs_to_control:2,assimil:43,assoc_nam:30,associ:[2,12,30,43],assum:[21,43],atm:[],atmospher:[17,20,23,34,41,43],attempt:2,attent:[6,43],attribut:[2,11,12,41],aug:31,august:43,austria:35,author:[2,5,11,12,32],auto:38,automat:[6,11,14,17,22,30,32,36,43,44],autoprogram:[],avail:[2,3,5,6,11,12,17,19,21,22,23,30,31,32,33,34,39,42,43,44],averag:17,avoid:[19,21,36,43],awar:[34,43],awk:[4,13],back:[6,11,42],bahaviour:[],ball:[2,42],base:[2,7,10,11,17,36,39,42],basetim:[2,5,6,10,11,17,36,43],bash:[11,12,43],basic:[2,17],batch:[4,10,11,12,13,18,20,30,43],bdynam:31,beaver:[30,31],becaus:[12,21,43],beck:2,been:[5,15,30,31,32,42,43],befor:[0,2,6,10,17,19,32,34,39,42,43],begin:[2,13,17],beginn:[18,43],behaviour:[5,18],being:[12,19],belong:[42,43],below:[7,9,17,19,21,31,34,43,44],best:[6,17,39,43],better:[6,43],between:[2,4,6,7,10,17,19,21,30,43],beyond:43,bicub:[],big:[30,31,32],bilinear:17,bin:[4,10,11,12,13],bionic:[30,31],bit:[2,6],blank:[2,11],block:[19,43],blockdiag:0,blockdiag_fontpath:0,blog:33,blue:[12,17],boku:35,border:17,both:[2,21,31,39,43],bottom:44,boundari:[2,11,17],box:[2,11,12,41],bracket:43,branch:42,broader:39,bstatic:31,bug:41,build:[2,23],built:32,bunch:2,buster:[9,30,31],button:42,bypass:[],calc_etadot:[4,12,13,15,18,21,30,31,32,36,38,42,43],calc_etadot_fast:[30,31,32],calc_extra_elda:2,calcul:[2,5,6,15,17,20,43],calendar:43,calibr:[6,43],call:[2,4,9,10,11,12,13,15,18,19,22,30,31,42,43],can:[2,3,5,6,9,11,12,13,14,15,18,19,21,22,30,31,32,34,39,40,41,42,43,44],cancel:22,cannot:[21,43],care:[6,11,43],carefulli:39,carri:[2,6],cat:[10,13],catalogu:[6,43],catego:[],categori:44,caution:43,cautiou:[],cautious:43,caveat:43,cca:[2,4,9,10,11,12,13,14,30,32,43],ccb:[4,9,10,11,12,13,14,30,32,43],cdot:17,cds_api:[2,10],cdsapi:31,cdsapirc:31,ce00010800:19,ce000908:43,cell:17,centr:[19,20,39,41],central:[2,17],cera20c:[6,31],cera:[5,6,19,21,22,23,34,36,41,42],cera_exampl:43,cera_testgrid_local_cd:19,cerapubl:43,certain:[2,18,41,42],certif:30,chang:[6,11,12,13,15,17,18,23,32,39,41,42,43],change_icon:[],changelog:41,charact:2,character:2,characteris:2,characterist:43,check:[4,6,9,10,11,12,15,18,30,31,33,36,42,43],check_accmaxstep:2,check_acctim:2,check_acctyp:2,check_addpar:2,check_area:2,check_basetim:2,check_condit:2,check_dat:2,check_dates_for_nonflux_fc_tim:2,check_grid:2,check_install_condit:2,check_job_chunk:2,check_len_type_time_step:2,check_level:2,check_logicals_typ:2,check_mail:2,check_maxstep:2,check_numb:2,check_path:2,check_ppid:2,check_publ:2,check_purefc:2,check_queu:2,check_request:2,check_step:2,check_tim:2,check_typ:2,checkerboard:17,choic:[9,21,43],choos:21,chosen:[2,21],chunk:[2,11],circl:17,classif:[2,6],clean:2,clean_up:2,clear:[39,43],click:[24,42],client:[2,31],climat:[22,23,42],clist:2,clone:42,close:43,closest:34,cloud:[2,6,19,43],cmd_list:2,cmp:[],coarser:[3,6],code:[0,2,6,12,13,19,31,32,36,41,42,43],collect:[2,39,41,43,44],collis:19,colour:17,column:2,combin:[2,11,41],come:8,comma:[2,6,43],command:[2,4,5,9,10,11,12,15,18,22,30,31,32,34,42,43,44],commandlin:[2,11,12,30,31,32,43],comment:[3,5,13],common:[2,11,12,41,43],commonli:2,commun:[39,42,43,44],compar:[17,43],compat:[3,6,18,21],compil:[2,9,12,13,18,30,31,32,33,42],compilejob:[13,18,43],complet:[2,14,17,23,31,36],complex:39,compon:[0,2,17,19,39,42],compos:19,composit:[5,19,43],comprehens:5,comput:[13,17,21,22,23,30,42,43],concaten:2,concatenate_sign:2,concern:2,conda:31,condit:[2,6,11,17],conduct:12,configur:[2,42],confluenc:2,confus:39,congratul:42,connect:[2,22,30,32,43],conrtol:[],conserv:[2,6,17],consider:17,consist:[2,3,11,17,18,19,20,21,43],consol:[30,31],constel:8,constitut:11,construct:[0,27,28,29,37,38,40],consult:43,consum:31,contact:23,contain:[0,2,5,7,8,11,12,13,15,17,19,21,33,34,42,43,44],content:[2,6,13,23,30,32,39,41,43],context:2,continu:[2,6,17,43],control:[2,10,11,12,13,15,19,21,22,34,38,39,41,42,44],control_:[5,43],control_cera:[8,10,43],control_cont:13,control_ea5:[8,11,12,30,31,32,43],control_ei:[8,43],control_od:[8,43],controlfil:[10,11,12,13,30,31,32,43],controlparamet:5,convect:[2,11,17,19],conveni:43,convent:[2,5,19],convers:2,convert2:36,convert:[2,15,17,20,36,43],coordin:[19,21,43],copernicu:42,copi:[2,11,12,41,43],copy_dummy_msg:2,copyright:[2,11,12],corner:6,correct:[2,6,36,43],correctli:[2,6],correspon:18,correspond:[2,6,9,11,13,17,19,34,39,43],correspondingli:43,cost:21,could:[17,43],count:[6,11,34],counter:2,coupl:2,cours:34,cover:43,crai:[4,10,13],creat:[0,2,4,6,7,10,11,12,13,15,18,19,20,21,30,32,43,44],creation:2,creativ:[2,11,12,41],creativecommon:[2,11,12,41],credenti:[12,13,15,18,31,42,43,44],cross:6,csv:[2,6,11,15,19,43],cubic:2,current:[0,2,6,9,12,14,17,21,31,40,42,43],cvh:19,cvl:19,cwc:[2,5,6,10,43],cycl:43,cyclic:[6,21],d64:[30,32],dai:[2,6,11,17,19,23,30,31,43],daili:[6,43],damp:17,dapoli:2,darain:2,dark:17,dat:11,data:[2,5,8,11,12,15,20,21,22,23,31,36,38,41,42],data_retriev:2,databas:23,dataset:[2,5,6,10,11,14,19,21,22,23,31,41],datatyp:19,date:[2,5,6,11,12,17,19,31,34,43],date_chunk:[2,5,6,10,11,43],date_time_steprang:19,datechunk:2,datelin:6,datetim:2,deacc_flux:2,deaccumul:[2,43],deactiv:36,debian:[9,30,31,42],debug:[2,5,6,9,10,11,19,21,36,43],decid:[2,5,18,43],decim:43,decis:2,declar:43,declin:[],decompos:2,dedic:22,defin:[2,5,6,10,11,12,19,21,24,34,39,42,43],definit:[2,5,18,41],degre:[6,21,43],degress:3,dejavu:0,dejavuserif:0,del_convert_build:[],del_fortran_build:2,delai:44,delet:[2,6,19,32,43],delete_fil:2,delta:17,delta_t:2,demand:[17,21,31,43],demonstr:19,denot:[2,17],depart:35,depend:[2,6,11,12,13,14,15,17,19,20,21,34,41,43],deposit:17,deprec:2,depthbelowlandlay:19,deriv:[2,30,31],describ:[12,14,18,20,22,32,42,43],descript:[2,5,6,11,12,13,19,21,34,39,43,44],design:[],desir:[2,6,17,21,43],destin:[2,5,6,7,10,12,13,15,30,31,32,36,43],destination_nam:[7,13],deta:21,detail:[2,5,13,19,20,21,31,42,43],detect:[6,44],determin:[2,11,12,17,43],dev:[9,17,31,42],develop:[0,2,6,9,17,40,41,44],deviat:5,diagnost:[2,6],diagram:[0,12,15],diamond:17,dict:2,dictionari:2,differ:[2,6,8,14,21,22,34,39,43],differenti:[4,10,43],difficulti:15,digit:19,dimens:[2,17],dimension:[2,17,43],direct:[2,13,14,21,22,43],directli:[2,4,10,11,12,13,14,21,22,42,43],directoi:42,directori:[0,2,4,5,6,7,8,9,10,11,12,13,14,18,31,32,33,36,42,43],dis:19,disabl:[6,21],disaggegr:2,disaggreg:[5,6,15,36,38,43],discard:6,discret:17,discretis:[],discuss:[40,43],disk:[31,43],dispers:[2,6,17],displai:[2,6,32],display_info:2,disregard:2,distinct:2,distinguish:[6,11],distribut:[30,31,41,42,43],disturb:43,div:[],diverg:[19,43],divers:2,divid:[2,11,17,19,22],do_retriev:2,document:[5,8,11,19,21,23,30,32,36,43],doe:[2,3,11,12,14,33],doesn:[6,11,12],doi:[6,17],doing:[2,43],domain:[5,43],don:[9,31,33,42],done:[2,4,6,10,11,12,13,14,17,22,31,42,43],dot:0,doubl:[2,4,6,8,11,13,43],doubleelda:[2,5,6,10,43],down:42,download:[23,32,36,41],download_cdsapi:31,download_cera20c_ecmwfapi:31,download_era5_cdsapi:31,download_erainterim_ecmwfapi:31,downward:[3,6,18,34],dpdeta:[2,5,6,10,43],dpkg:[9,42],drive:[2,20,43],dry:17,dtime:[2,3,5,6,10,43],due:[6,11,12,17,43],durat:43,dure:[2,4,9,12,13,15,18,31,42,43],each:[2,5,6,10,11,13,14,17,19,39,42,43],earlier:[11,43],easi:[17,18,20,43],easier:[18,22],easiest:[30,31],easili:[2,11],east:[2,11,19],eastern:2,easternmost:2,eastward:17,ec_api:[2,10],ec_memory_per_task:[4,10,13],ec_threads_per_task:[4,10,13],ecac:32,ecaccess:[2,4,10,12,13,14,15,22,23,30,32,43],ecaccess_do_not_remov:[4,10,13,43],ecc:2,eccod:[4,9,10,13,23,30,31,32,33,36],eccodes_include_dir:9,eccodes_lib:9,ecd:2,ecf:[2,6,32],ecfsdir:[2,5,6,10],ecg:[4,10,13],ecgat:[2,4,6,9,10,11,12,13,14,21,30,32,43],ecgb11:[32,43],ecgb:[4,10,11,12,13],ecgid:[2,5,6,7,10,12,13,30,31,32,43],echo:[4,12,13],echom:32,ecmf:19,ecmwf:[2,4,5,6,9,10,11,12,13,14,15,17,18,19,20,21,22,23,30,32,33,34,36,41,43],ecmwf_env:[2,11,12,18,43],ecmwfapi:[31,33],ecmwfapirc:31,ecmwfdataserv:[2,31],ecmwfservic:[2,31],ecnam:[],econdemand:[2,5,6,10],ecscratch:32,ecstorag:[2,5,6,10],ectmp:[2,5,6,10],ectran:[2,5,6,10,15,30,32,43],ecuid:[2,5,6,7,10,12,13,30,31,32,43],ecwmf:[22,42],edg:12,edit:19,editor:[9,30,31,32],effect:[13,21],effici:[13,17,19,43],egat:[],either:[2,6,11,14,15,43],elda:[2,6,8,36,43],element:[2,3],els:[4,10,12,13],email:[2,4,6,10,13,30,32,43,44],emo:[4,10,13],emoslib:[21,23,31,32,33],empti:[2,11,12],enabl:[22,30,43],encount:42,end:[2,4,6,10,11,13,17,19,43],end_dat:[2,5,6,10,11,17,43],end_period:2,enda:[10,19,31,43],endian:[30,31,32],endif:17,endo:6,enfo:[6,8,36,43],english:36,enough:[6,22,43],ens:[8,43],ensembl:[2,6,23,36,43],ensemble_memb:19,ensur:21,enter:30,entri:[11,43],env:[2,4,13],environ:[2,4,6,10,11,12,13,14,20,33,42,43,44],environment:[2,35],eof:[10,13],equal:[2,6,11,21,43],equat:[2,6,17,43],equidistantli:17,equival:[30,31],era5:[2,5,6,21,22,23,31,42,43],era:[5,6,11,19,21,22,23,34,36,41,42],eror:2,error:[2,4,10,12,13,21,30,31,43],error_msg:2,esac:[4,10,13],escap:13,especi:[21,42,43],establish:[14,30],eta:[2,5,6,8,10,19,21,38,43],etadiff:[2,5,6,10,21,43],etadot:[2,6,19,43],etapar:[2,5,6,10],etayymmddhh:[6,21],etc:[31,39,44],europ:43,european:[20,39,41],evalu:41,even:[17,21,31,32,43],event:[17,44],eventu:[],everi:[22,30,34,39,43],everyon:6,everyth:[0,2,9,14,31,43],everytim:[],ewss:[17,19],exact:[2,17,43],exampl:[2,3,6,7,11,17,18,19,22,23,31,34,39,42,43],exce:[],exceed:43,excelt:0,except:[2,6,21,31,43],execut:[2,9,10,12,13,14,15,18,19,32,33,36,42],execute_subprocess:2,exedir:2,exist:[2,6,11,43,44],exit:[2,11,12,34],expect:[2,43],expens:[6,21],experi:[6,43,44],experienc:43,explain:[19,43,44],explan:43,explanait:[],explic:[],explicit:42,explicitli:[6,20,22,43],express:2,expver:[2,5,6,10,19,31],extend:[39,43],extens:[0,2,6,17,43],extra:[2,5,6,14,36,42,43],extract:[2,5,6,11,19,21,22,31,34,43],extractxxxxx:43,f90:[30,31,32,36],f_0:17,f_1:17,f_2:17,f_3:17,f_i:17,facil:[22,30],fail:[2,4,6,10,13,34,43],failur:43,fals:2,familiar:43,faq:41,far:6,fast:20,faster:[18,22,44],fcog_acc_sl:19,fconvert:[30,31,32],fdefault:[30,31,32],feasibl:21,featur:[2,6,20,41,44],februari:5,fedir:2,feel:42,few:[6,30,32,43],fewer:43,fftw3:[31,32],fftw:[23,30,32,33],field:[2,5,11,15,20,21,23,36,41,43],field_typ:19,fig:17,figur:[14,17,43],file1:2,file2:2,file:[0,2,4,9,10,11,12,13,15,17,18,20,22,23,30,31,32,34,36,39,41,42,44],filemod:2,filenam:[2,17,19,43],filename_in:2,filepath:2,fill:[6,42,43],filter:[2,17],find:[5,9,39,42,43],finder:[],fine:[21,31],finer:[3,21],finish:[42,43],first:[2,5,6,11,17,32,36,39,42,43],fit:2,fix:[4,10,17,34,41],flex:[10,13,43],flex_ecmwf:[4,10,13],flex_extract:[0,2,4,5,6,8,9,10,11,12,13,14,15,17,18,19,20,21,22,30,31,32,33,34,39,40,43,44],flex_extract_repo:[],flex_extract_v7:[10,13,19,31,34],flex_extract_v:[4,13],flex_extract_vx:[5,7,8,9,11,12,13,18,30,32,42,43],flexcompil:[4,13,30,32],flexextract:19,flexextractdir:2,flexpart:[2,6,11,15,17,20,21,22,31,34,41,43,44],flexpart_root:[4,13],flexpart_root_script:[4,13],flexpartdir:12,flextra:[2,20,21,41],flow:[2,11,12,20],flux:[2,5,15,21,38,43],fluxyyyymmddhh:17,flxacc2:17,follow:[2,5,8,12,13,15,17,18,19,21,30,31,32,33,34,39,42,43],font:0,fontpath:0,fopenmp:[30,31,32],for_develop:0,forecast:[2,5,6,11,17,20,21,22,23,39,41,43],forecast_step:19,forescast:43,forg:31,forget:33,form:[6,42],format:[2,6,10,11,12,15,17,19,20,31,43],formul:17,fort:[2,13],fortran90:[],fortran:[2,4,12,13,15,16,17,18,20,21,30,31,32,36,38,41,43],fortran_program:13,found:[2,5,6,9,13,19,21,30,40,42,43,44],four:[2,14,17,42],fp_root:2,fp_root_path:13,fp_root_script:13,fpdir:2,frac32:17,frac:17,framework:[13,30],free:42,frequent:[41,43,44],from:[2,3,4,5,6,9,10,11,12,13,14,15,17,18,19,20,22,23,30,31,32,34,36,39,41,42,43],fromfil:2,fsr:19,ftime:2,ftp:32,ftrafo:[30,31,32],ftype:2,fulfil:17,full:[2,6,11,12,21,22,31,41,43],fulli:39,further:[2,5,8,31,32,43],furthermor:18,futur:[6,21,43],g_i:17,g_ig_:17,gain:[],gap:43,gate:[],gatewai:[2,4,5,6,7,9,10,12,13,14,15,18,20,22,31,32,36,41,42],gateway_nam:[7,13],gatewaynam:[12,30,32],gatewayserv:43,gauss:[2,5,6,8,10,21,38,43],gaussian:[2,6,10,19,21,23],gen_docu:0,gener:[0,4,5,10,13,17,19,21,23,30,38,42,43],general:2,generate_retrieval_period_boundari:2,genericsftp:[2,10,12,30,32],genshi:[4,10,13,30,31,32,36],geometr:2,geophys:35,geosci:17,geoscientif:[2,6,17,40],german:36,get:[2,6,30,31,32,34,36,42,43],get_cmdline_arg:2,get_dimens:2,get_inform:2,get_install_cmdline_arg:2,get_kei:2,get_list_as_str:2,gfortran:[9,23,30,31,32,33],gid:[12,32],git:42,gitmob:42,give:[6,21,34,42,43],given:[2,5,14,17,21,43],glevelist:2,global:[5,6,8,21,39,43],gmd:[6,17],gnu:[9,30,31,32,42],goe:2,going:[2,6,11],good:21,grant:42,graphviz:0,grb:[2,19],greater:[6,11],green:[12,17],gregor:35,grep:[9,10,13,42],grib1:[2,5,6,10,15],grib2:[2,6,15],grib2flexpart:10,grib:[2,6,11,15,23,31],grib_api:[4,10,13,33,36],grib_l:19,gribmessag:11,grid:[2,3,5,6,10,17,19,20,21,23,31,43],grid_simpl:19,grid_typ:19,gridtyp:19,ground:34,group:[2,4,5,12,13,14,22,31,42],groupid:[12,30,32],groupnam:[],grphreal:[30,31,32],guarante:[2,11,12,17,43],guid:[23,36,41,43],guidanc:21,haimberg:[2,35],half:[2,6,11,17,21,43],handl:[2,5,39,43],happen:0,hard:2,harmon:19,has:[0,2,4,6,10,11,12,13,14,17,21,22,30,31,32,39,42,43],hast:6,have:[2,3,5,6,11,12,14,15,22,30,31,32,33,34,39,42,43],hcc:19,header:2,heat:[2,17,19],heavili:21,height:17,help:[2,11,12,18,43,44],help_icon:[],hemispher:43,henc:17,her:12,here:[2,6,8,11,12,15,19,31,39,43,44],high:[6,11,13,21,31,43],higher:[2,21],highest:21,highli:21,highlight:43,highr:[8,43],hint:[5,39,41,44],his:12,histor:21,hittmeir:[2,6,17],home:[4,10,12,13,14,23,30,31,32,42,43],homogen:39,horizont:[2,5,6,17,43],hoskin:6,host:[4,10,11,12,13,43],hostnam:[32,43],hour:[2,6,11,17,19,22,43],hourli:[6,22,43],how:[2,5,6,15,18,22,23,31,39,42,43],howev:[6,15,17,21,22,31,39,43],hpc:[12,21,43],hre:[23,43],href:[],html:[],http:[2,6,11,12,17,30,32,41,42,44],humid:19,hybrid:19,i32:[30,32],i_i:17,ia3:2,ice:[2,6,43],idea:39,identif:2,identifi:[2,6,11,12,17,19],identificationkeyword:2,idir:2,idirectionincrementindegre:2,ids:2,idx:[2,19],ifort:[],iid:2,img:10,implement:[17,19,43],impli:17,importantli:39,improv:[2,17,36,43],inbetween:[6,43],includ:[6,9,11,12,13,30,31,32,34,42,43,44],incorpor:42,increas:43,incur:21,independ:39,index:2,index_fil:2,index_kei:2,index_v:2,indic:[2,5,17,19,43],individu:[2,4,6,10],ineffici:43,info:2,inform:[2,5,6,8,11,14,18,19,20,22,23,32,34,39,42,43,44],informt:2,init128:2,init:2,initi:[2,11,12,36],initialis:[2,18,36],input:[2,5,6,10,11,12,15,17,20,38,41,43],inputdir:[2,10,11,13,43],inputfil:[2,11],insert:31,instal:[0,4,5,6,7,9,10,13,14,15,18,20,22,36,41,43],install_loc:2,install_target:[2,10,12],install_via_gatewai:2,installdir:[2,12,30,31,32,42],installscript:[4,12,30,32],instanc:2,instantan:19,instead:[2,11,12,15,22],institut:[35,39],instruct:[2,6,14,30,31,33,42,43],intact:11,integ:[2,6,11,43],integr:[2,17],intel:[4,10,13],intend:[6,8,11,14,39],interact:30,interest:42,interfac:[2,5,23,24,36,43],intergovernment:39,interim:[5,6,11,19,21,22,23,31,34,41,42],intermedi:2,intern:[2,11,12,41],internet:43,interpol:[2,6,11,17,19,43],interpret:18,interv:[2,3,6,12,17,19],introduc:[17,19,34,36,43],introducst:[],introduct:[],introductari:23,introdut:[],investig:[],involv:12,ipar:2,ipnam:32,isol:17,issu:41,iter:2,its:[2,11,13,17,19,21,39,42],itself:[2,43],jame:[2,17],januari:43,jasper:[30,32,36],jdirectionincrementindegre:2,job:[2,6,11,12,13,14,15,18,19,20,30,32,41],job_chunk:[2,10,11,43],job_fil:2,job_id:[2,4,13],job_templ:[2,10,11,12,30,31,32,43],jobfil:2,jobnam:[2,4,13],jobop:43,jobscript:[10,11,43],journal:[17,40],jtemplat:2,june:[2,43],just:[2,3,6,8,12,31,43],k_i:17,keep:[2,13,17,42,43],kei:[2,31,42],kept:6,keynam:2,keyvalu:2,keyword:[2,6,11,19,22,23,43],kind:[2,6,19,43],km4a:[4,10,13],know:[31,43],known:[5,41],known_bugs_issu:[],korn:[2,4,10,12,13,18,20,36,43],kornshel:[],ksh:[13,18,43],kwd:2,label:[12,19,31],lagrangian:[2,6,17],larg:[2,6,11,17,19,36,43],larger:[6,11,21],last:[2,6,11,17,19,30,32,34,43],lat:[2,6,11,19,21,43],late:17,later:[2,31,34],latest:[22,42,43],latitu:2,latitud:[2,6,20,43],latitudeoffirstgridpointindegre:2,latitudeoflastgridpointindegre:2,latter:12,lcc:19,ld_library_path:33,lead:[6,11,13,17,19,32,43],learn:39,least:[2,12],leav:11,leccod:[9,30,31,32],leccodes_f90:[9,30,31,32],left:[2,5,6,10,17,21,42,43],lemo:[30,32],lemosr64:31,length:[2,17,43],leopold:[2,35],less:21,let:11,letter:[2,11,12,19,41],level:[2,5,6,10,11,12,15,18,19,21,22,31,34,41,43],level_typ:19,levelist:[2,5,6,10,11,19,31,43],levellist:34,levtyp:[2,19,31],lfftw3:[30,32],lib:[9,30,32,33,36],libeccod:[9,31,42],libemo:[30,31,32],librari:[4,9,10,14,20,23,31,32,41,42,44],licenc:[11,12,22,23,41],licens:[2,6,11,12,14,22,41],lies:2,life:35,light:12,like:[2,9,11,17,30,32,34,42,43],limit:[6,11,19,22,39,43],line:[2,5,11,12,13,15,17,18,19,22,30,32,42,43,44],linear:[2,6,17],linearli:17,link:[0,9,39,41,42,43],linux:[9,12,14,15,22,30,31,42,44],liquid:[2,6,43],list:[2,5,6,8,9,11,12,15,17,19,20,23,31,34,41,43],list_obj:2,littl:17,ljasper:[30,31,32],load:[2,4,10,11,12,13,30,32,36,43],local:[2,5,6,7,9,11,12,14,22,30,32,33,36,41,42],localmachin:32,localus:32,locat:[2,7,11,12,43],lock:[],log:[2,4,6,10,13,31,32,42,43,44],logarithm:19,logic:[2,10],login:[32,43],lon:[2,6,11,19,21,43],longer:[2,6,36],longitud:[2,6,20,43],longitudeoffirstgridpointindegre:2,longitudeoflastgridpointindegre:2,longiud:[],look:[2,30,32,34,43],lot:[21,43],lower:[2,5,6,10,21,43],lowest:[19,34],lp64:[30,32],lpthread:[30,32],lrwxrwxrwx:[30,31,32],lsm:19,lsp:[17,19],machin:[2,4,9,10,12,13,14,15,31,32,42,43],made:[2,22,39,43,44],magnitud:2,mai:[6,11,12,15,17,30,31,39,42,43,44],mail:[2,4,6,10,13,35,41,43],mailfail:[2,5,10,13,43],maill:44,mailop:[2,5,6,10,13],main:[2,5,18,20,22,43],mainli:43,maintain:17,make:[0,4,13,18,30,33],make_dir:2,makefil:[2,4,12,13,18,30,31,32,33,36],makefile_crai:[9,12,30,32],makefile_debug:9,makefile_ecg:[4,9,12,30,32],makefile_fast:9,makefile_local_gfortran:[9,12,31],manag:[13,30,31,42],mani:[17,43],manipul:2,mar:[2,6,11,15,18,20,22,23,30,31,32,33,36,41,42,43],march:[2,22,30,31,32],margin:[],mark:[4,5,10,13,17,19,43],mars_request:[2,6,11,15,19,43],marsclass:[2,10,19],marsfil:2,maschin:11,mask:43,mass:21,master:42,match:2,math:[],mathrm:17,matter:[2,12],max:[6,11],max_level_list:2,maxb:[2,13,19],maxim:[],maxima:17,maximum:[2,5,6,11,34,43],maxl:[2,13,19],maxstep:[2,5,6,10],mcc:19,mdpdeta:[2,13,19],mean:[2,4,12,13,17,19,43],measur:21,medium:[20,39,41],member:[2,6,12,14,19,22,23,24,30,31,39,42,43],memberst:[2,6],memori:[6,11],mendel:35,mention:[13,14,17,43],merg:15,mess:42,messag:[2,11,12,19,21,30,31,34],met:35,meta:[2,13,19],metadiff:[2,13,19],metapar:[2,13,19],meteorolog:[2,17,19,20,35,39,41],meter:[],method:[2,5,6,11,17,19,21,22,38,39,40,43],mgauss:[2,13,19],might:[0,2,6,11,15,18,22,31,39,42,43],migrat:[2,23],min:17,mind:[6,43],minim:42,minima:17,minimis:31,minimum:[20,43],minut:[2,30,32],mismatch:43,missingvalu:2,mix:43,mk_compilejob:2,mk_convert_build:[],mk_date:2,mk_env_var:2,mk_fortran_build:2,mk_job_templ:2,mk_jobscript:2,mk_server:2,mk_tarbal:2,mkdir:[4,10,13],mlevel:[2,13,19],mlevelist:[2,13,19],mnauf:[2,13,19],mnt:19,mock:0,mod:[2,4,9,13],mode:[2,4,6,7,9,10,11,12,13,18,19,20,36,39,41,42,44],model:[2,6,15,17,19,20,21,22,23,34,39,40,41,43],modif:2,modifi:[2,9,22,43],modul:[4,10,11,12,13,14,30,32,36,42,43],modular:36,momega:[2,13,19],momegadiff:[2,13,19],moment:6,mon:17,monitor:43,monoton:[2,17],month:[11,19,31,43],monthli:6,more:[2,5,6,11,12,14,17,19,42,43,44],most:[2,6,13,36,39,43,44],mostli:[2,6,19,43],motiv:17,mountain:[2,11,12,41],move:[0,2],mreq_count:2,msgatwai:30,msl:19,msmooth:[2,13,19],much:[39,44],multipl:[2,43],multipli:[6,21],muser:[10,13],must:[6,11,14,32,43],my_error:2,myecnam:12,mygroupnam:12,myuser:12,name:[2,4,5,6,10,11,12,13,17,19,30,31,32,36,42,43],name_of_this_fil:[4,10,13],name_of_your_makefil:31,namelist:[2,13,19],namespac:2,namgen:[13,19],nano:[30,32],nas:19,nation:[22,39],nativ:[30,31,32],natur:[17,35],necessari:[0,2,3,4,6,9,10,11,12,13,14,18,20,30,32,33,36,43,44],necessarili:5,nedit:9,need:[0,2,3,5,6,11,12,13,14,18,19,20,21,22,31,32,37,40,42,43],neg:[2,17],neglect:6,net:[17,19],nevertheless:2,newer:19,newest:43,newslett:[],next:[30,32,43,44],nfield:2,night:[],non:[2,6,17,34,43],noncycl:6,none:[2,5,6,10,11,12,17,19,30,31,32,43],none_or_int:2,none_or_str:2,nonzero:2,normal:[4,6,10,13,43],normal_exit:2,north:[2,11],northern:[2,43],northernmost:2,northward:[17,19],notabl:43,notat:17,note:[6,15,17,32,34,42,43],notif:[2,5],notifi:2,novemb:[2,21],now:[22,42],nowadai:[],nsss:[17,19],number:[2,3,4,5,6,8,9,10,11,13,17,18,19,20,21,34,36,43],numer:39,numpi:[2,30,31,32],object:2,observ:2,obtain:[2,17,42,43],obvious:17,occur:[2,17],octahedr:23,octob:11,odir:2,off:[2,5,6,19],often:21,og_orolsm__sl:19,old:[0,2,6,11,17,36,43],older:[6,15,43],omega:[2,5,6,10,19,21,38,43],omegadiff:[2,5,6,10,21,43],omegayymmddhh:[6,21],onc:[11,43,44],one:[2,5,6,11,12,17,18,19,32,34,42,43],ones:[17,32],onli:[2,3,5,6,11,12,17,19,21,22,32,34,42,43,44],onlin:[36,43],onward:6,open:[2,9,20,30,31,32,41,43],opend:12,oper:[2,5,6,8,10,11,12,17,21,23,31,34,39,41,42],operation:6,oportun:[],opportun:[],opt:[],optim:21,optimis:[9,12,15,43],option:[2,5,6,15,17,19,21,33,36,42,43],optionalind:5,orang:12,order:[2,5,19,43],org:[2,6,11,12,17,41],organis:39,origin:[2,6,11,17,19,43],orographi:19,other:[2,5,6,9,11,31,39,42,43,44],otherwis:[2,43],our:42,out:[2,4,6,9,10,13,30,31,32,42,43],output:[2,4,5,6,10,11,12,13,17,30,31,32,36,38,39,41,42,43,44],outputdir:[2,10,11,13,43],outputfilelist:2,outsid:31,over:[2,17,43],overal:[2,19],overhead:43,overlap:[6,17],overrid:[3,11],overrul:5,overview:[8,14,15,17,23,34,38,41,42],overwrit:[0,2,43],overwritten:[2,18,31],own:[19,32,42],p_a:[],p_b:[],p_c:[],p_d:[],packag:[0,4,10,13,20,30,31,41,42],package_nam:42,packingtyp:19,page:[30,42],panel:42,paper:[34,40],par:2,paragraph:44,parallel:[],param1:43,param2:43,param:[2,19,31],paramat:2,paramet:[2,3,4,5,8,9,10,13,15,17,18,19,20,23,30,31,32,36,39,41,42],parameteris:43,parameterlist:[11,12],parameternam:2,paramx:43,parent:[2,11,19],part:[2,17,20],parti:[14,20,23,41],particl:[2,6,17],pass:[2,10,22,34,42],passcod:30,password:[30,32],path:[0,2,4,6,8,9,10,11,12,13,14,31,32,33,34,42,43],path_flexextract_dir:2,path_fortran_src:2,path_input_dir:2,pattern:[2,43],paul:17,pbs_jobid:[10,13],pdf:21,pep8:36,per:[2,5,6,11,15,19,43],perform:[2,13,15,21],period:[2,5,6,11,17,30,43],person:12,perturb:[6,19],petra:[2,35],phgrreal:[30,31,32],philipp:[2,5,6,11,12,17,35],physic:[35,39],pid:[19,43],piec:[17,19],piecewis:17,pip:[0,31,42],place:[2,12,13,14,30,44],placehold:[13,32],plan:[6,21],platform:42,pleas:[5,14,15,21,30,31,32,43,44],plot:23,plu:17,png:0,point:[2,11,17,19,43],polynomi:[2,17],posit:[2,6,13,17],posnam:[30,31,32],possibl:[2,5,6,8,11,12,17,21,22,31,42,43,44],post:[2,6,15,31,44],postprocess:2,pp_id:[11,43],ppid:[2,11,19],pre:[9,17],precalcul:6,precip:19,precipit:[2,5,6,11,23,36,43],precis:33,preconvert:[],predict:[39,43],prefar:42,prefer:[6,30,31,32],prefix:[2,5,6,10,19,21],prepar:[0,2,4,6,10,11,12,13,14,15,20,26,41,42],prepare_flexpart:11,preprocessor:44,present:[2,7,12,23,30,32,42,43],preserv:[17,19,43],pressur:[2,19,21,22,31],pressure_level:31,previou:[18,21,43],prgenv:[4,10,13],primarili:9,principl:43,print:[2,4,13,43],print_infodata_csv:2,prior:[17,21],problem:[2,17,36,42,43,44],procedur:[5,17],process:[2,4,6,7,9,10,11,12,13,14,15,17,18,19,22,31,36,42,43,44],process_output:2,prod:2,produc:[9,17,19,21,39,43],product:[2,42,43],product_typ:31,progam:42,program:[0,4,9,11,12,13,17,18,20,21,30,31,36,41,43],programm:16,progress:[15,43],prompt:30,proper:[18,41],properli:[2,12,15,34,42,44],properti:[2,19,39],propos:[17,44],proposit:[],prot:[10,13,43],protocol:43,provid:[2,3,14,18,20,21,22,31,32,33,42,43,44],pseudo:43,publicli:43,publish:17,pull:31,pure:[2,6,11,19,43],purefc:[2,10],purpos:[2,6,19],put:[2,6,12,13],put_file_to_ecserv:2,pycallgraph:0,pylint:0,pyrevers:0,pyscript:11,pytest:0,python3:[4,10,11,12,13,18,30,31,32,36,42,43],python:[0,4,10,11,12,13,15,16,17,18,19,20,23,30,31,32,33,36,38,42,43],pythonxxxxx:[],qos:[4,10,13],quad:17,quantiti:[2,6,17],question:[41,44],queue:[2,4,10,11,12,13,15,30,43],queuenam:[4,10,13],queues_list:2,quick:[8,43],quick_start:[],quickli:[13,43],quota:43,r64:[4,10,13,30,32],radiat:[2,17,19],raid60:[],rainfal:2,rais:[2,17],rang:[2,6,20,31,39,41,43],rare:43,rate:17,rather:21,raw:[2,15],reach:18,read:[2,6,12,13,15,20,21,32,33,39,43],read_ecenv:2,readi:[2,6,11],real:[23,30,31,32,43],real_tim:23,realis:17,realiti:17,realli:[21,43],reanalysi:[6,11,21,23,31,42],reason:[2,6,11,17,43],receiv:[30,43,44],recent:[10,43],recod:17,recommend:[6,17,21,31,43],reconstruct:[2,17],record:42,rectangular:12,red:17,redhat:42,reduc:[19,21,23],ref:[],refactor:36,refer:[2,14,39,43],regard:[5,18,36,44],regardless:42,region:21,regist:[22,31,33,42],registeredus:44,registr:[6,14,22,23,31,33,41,44],regress:[36,41],regular:[2,20,43],regular_l:19,regularli:[],rel:[17,43],relat:43,releas:[2,41,42,43,44],relev:[2,5],reli:42,remain:[2,17],rememb:42,remot:[2,4,6,7,9,10,12,13,14,15,18,20,30,36,41,42],remota:12,remov:[2,3,17,36],remove_old:2,renam:0,renew:30,repeat:2,rephras:[],repo:42,report:[2,41],repositori:42,repr:[2,19],repres:[2,17,19,22,23,42,43],represent:[2,20],reqest:15,request:[2,4,5,6,10,11,13,15,17,22,36,43],request_numb:[2,19],requir:[2,13,14,17,20,21,30,31,32,39,42,43],rerun:11,research:39,resol:[2,5,6,10,19,21,43],resolut:[3,5,6,11,21,22,39,43],resolv:21,reson:[],resourc:35,respect:[2,5,15,17,18,19,31,39,42,43],respectivlei:[],respons:43,rest:[2,6],restrict:21,restructur:36,result:[2,15,19,21,43],retriev:[2,5,6,11,14,15,17,18,19,20,21,22,31,33,34,36,39,41,42,43],retrieve:5,return_list:2,review:6,revis:36,revtriev:2,right:[2,5,6,10,17,21,22,30,31,33,39,42,43,44],rla0:[2,13,19],rla1:[2,13,19],rlo0:[2,13,19],rlo1:[2,13,19],root:[2,4,12,13,18,31,32,42,43],round:12,rpath:[30,32],rpm:42,rrint:[2,5,6,10,11,43],rst:[],rthl:43,rudimentari:12,run:[2,5,6,7,8,10,13,15,18,19,22,30,31,42,43,44],run_loc:[15,43],runtim:10,rwgrib2:[30,31,32,36],sabin:2,sai:2,same:[2,6,11,22,30,31,33,43],sampl:[2,31,43],sardeshmukh:6,save:[9,11,19,21,31,43],sbatch:[4,10,13],scale:[2,11,17,19],scaveng:17,scenario:[14,17,43],schemat:17,scheme:[2,6,17,19,43],scienc:35,scientif:[23,34],scope:6,scp:32,scratch:[4,10,13,43],scriot:[],script:[0,5,6,13,14,15,16,17,18,19,20,21,23,30,31,32,36,38,41,42,43,44],scroll:42,sdor:19,second:[6,11],section:[5,12,18,22,31,36,37,39,40,42,43],see:[2,5,6,11,12,13,15,18,19,20,21,22,24,30,31,32,34,42,43,44],seem:43,seen:18,seibert:[2,6,17,35],select:[2,5,6,11,12,14,19,22,30,32,34,36,39,41,42],selectwher:2,send:[2,11,12,13,21,30,41,44],send_mail:2,sens:43,sensibl:[2,17,19],sent:[2,13,15,18,43],separ:[2,5,19,36,43],sepeart:[],seper:[2,6,11],septemb:[6,12,21],seqdiag:0,seqdiag_fontpath:0,sequenc:15,seri:[2,17],serv:[19,20,41,43],server:[2,4,5,6,7,9,10,11,12,13,14,15,18,20,22,23,30,31,32,36,42,43],servic:[30,39],session:[4,10],set:[0,2,4,5,6,8,9,10,11,12,13,17,18,19,20,21,22,23,30,31,32,33,34,36,39,42,43,44],set_kei:2,setup:[14,15,18,30,31,32,36,42,43],setup_controldata:2,sever:[9,12,13,19,42,43],sfc:[19,31],sgn:17,shade:17,share:[0,44],she:14,shell:[2,4,10,11,12,13,15,18,20,30,31,36,42,43],shift:17,shoot:23,shorten:43,shorter:2,shortli:43,shortnam:19,should:[0,2,6,9,12,13,17,21,30,31,32,36,39,42,43],shouldn:6,show:[11,12,15,17,43],shown:[7,9,17,31,43],side:42,sign:[4,5,13,42],signal:43,silent_remov:2,similar:[14,31],simpl:[6,17,31],simplest:17,simplifi:36,simul:2,sinc:[2,15,19,21,31,43,44],singl:[2,4,10,11,13,15,19,33,42,43],site:30,size:[34,43],sketch:[12,14],skip:[2,31],skt:19,slope:17,slurm:[13,23],small:[31,34,43],smaller:[2,6,11,19],smooth:[2,5,6,10,17,21,43],snippet:31,softwar:[2,6,12,13,14,20,21,23,30,31,32,41,42],solar:[2,17,19],sole:[6,19],solut:[2,44],solv:43,some:[0,2,4,5,6,10,11,12,13,14,15,18,19,20,22,31,32,39,42,43,44],someth:43,sometim:[6,43],soon:[6,43],sort:2,sourc:[0,2,4,9,10,11,12,13,18,20,31,33,34,36,41,42,43],south:[2,11],souther:[],southern:2,southernmost:2,space:[2,5,11,17,43],spar:2,spatial:[5,6,39],spdx:[11,12],speak:42,speci:17,special:[],specialis:43,specif:[2,4,5,6,9,10,11,13,14,17,19,20,21,36,39,41,42],specifc:[2,11],specifi:[2,6,11,12,17,30,31,32,43],specificnam:10,spectral:[2,6,20,21,43],speed:43,sphere:6,spheric:19,sphinx:36,sphinxcontrib:0,split:[15,17,19],sqrt:17,src:[],src_path:2,srvx8:10,ssh:[32,43],sshf:[17,19],ssr:[17,19],sss:6,stamp:19,standard:[2,9,17,21,30,31,32,42,43],start:[2,4,5,6,10,11,12,13,18,19,30,31,32,33,39,42,43],start_dat:[2,5,6,10,11,17,43],start_period:2,state:[2,12,14,22,23,24,30,31,39,42,43],statement:[2,30,32],statist:42,statu:[15,34,42],steer:2,step:[2,3,5,6,10,11,13,15,17,19,20,24,30,31,33,43],steprang:[2,11,19],still:[3,9,15,21,37,40,43],stl1:19,stop:[2,34,42,43],storag:[2,5],store:[2,6,10,11,12,15,19,21,22,23,31,42,43],str:[2,35],str_of_list:2,straightawai:43,straightforeward:43,stream:[2,5,6,10,19,31,36,43],stress:[2,17,19],stretch:31,string:[2,5,6,11,12],structur:[10,36,39,43],studi:[21,39],style:36,sub:[2,17,19],subdirectori:43,subgrid:[2,11],subinterv:17,subject:[2,30,32,43],submiss:[2,4,10,12,20,43],submit:[4,5,10,12,13,14,15,18,19,30,32,43,44],submit_job_to_ecserv:2,submitscript:[10,11],submitscriptop:[],subprocess:2,subscrib:44,subscript:44,subsect:21,subsequ:6,subset:[6,11,43],substanti:43,substitut:[2,4,9,10,13,32,36,43],substr:2,subtract:[6,43],succeed:[30,31],success:[4,13,19,30,32],success_mod:2,successful:[18,42],successfulli:42,suffici:43,suggest:9,suit:[6,43],suitabl:31,sum:[2,6,18,43],supplement:19,support:[2,17,23,39,41,42,43],suppos:2,sure:31,surfac:[2,6,15,17,19,21,22,34],swvl1:19,symmetri:17,syntax:[2,6],synthes:[6,36],sysadmin:33,system:[2,4,6,9,10,11,13,20,21,30,31,32,34,41,42,43],sytem:30,t1279:[21,43],t799:21,tab:42,tabl:[2,5,17,19,34,41,42,43],table128:2,take:[9,31,43],taken:[2,6,18,19,39,43],tar:[2,4,13,32,42],tarbal:[2,4,12,30,32],tarball_path:2,tarfil:32,target:[2,12,19,30,31,32],task:[2,18,20,43],tcc:19,team:41,technic:23,tell:[2,43],temp:[2,10,11],temperatur:[19,31],tempfile_job:2,templat:[2,4,5,7,10,11,12,18,30,32,36,43],tempor:[5,6,17,19,22,39,43],temporal_properti:19,temporari:[2,6,11,43],tendenc:21,tenth:6,term:[42,43],termin:[30,31],test:[0,2,5,6,12,13,19,22,33,36,41,43],textbf:17,textrm:17,than:[2,3,6,9,11,19,21,34,44],thei:[0,2,5,6,9,11,12,13,15,17,18,19,31,34,39,43],them:[0,2,6,11,12,15,17,18,19,20,31],therebi:[17,21],therefor:[0,2,6,17,18,19,31,34,39,42,43],thi:[0,2,4,5,6,7,8,9,10,11,12,13,14,17,18,19,21,22,30,31,32,33,34,37,39,40,41,42,43,44],thick:17,thing:[],think:[2,42],third:[14,20,23,41],those:[5,43],though:44,thousandth:6,three:[2,11,17],through:[2,5,22,24,30,42,43,44],throughout:17,thu:[9,17,43],ticket:[34,41],time:[2,3,4,5,10,11,13,15,17,19,21,23,31,33,34,39,43],timeseri:[2,17],timespan:[2,17],timestamp:2,tld:32,tmc:31,tmpdir:[10,13],to_list:2,to_param_id:2,to_param_id_with_tablenumb:2,todai:43,todo:[],togeth:[2,5,12,42,43],token:30,too:[6,11,17,31,34,43],tool:[4,10,14,15,43],toolkit:22,top:[11,12,18,34],topic:[],topmost:34,total:[2,19,43],touch:43,trace:17,train:23,transfer:[2,5,6,7,12,13,15,19,30,32,43],transferr:43,transform:2,transport:[20,41],trapezoid:12,treatment:39,tree:43,tri:[],triangular:[2,6],trigger:[2,21],troubl:23,troubleshoot:43,truetyp:0,truncat:[2,6],ttf:0,tupl:2,turbul:[17,19],twice:43,twiceadai:[],twicedaili:[8,43],two:[2,6,11,12,14,17,18,19,20,21,22,33,42,43],type:[0,2,3,4,5,6,10,11,13,18,19,30,31,32,42,43],typeoflevel:19,typic:[15,19,23,43],ubuntu:[30,31],udoc:2,uid:[12,32],un_tarbal:2,unavail:44,unchang:17,under:[0,2,11,12,13,14,17,19,26,27,28,29,30,31,37,38,40,41,43],undergo:[39,43],understand:[5,13,18],underw:[],undesir:17,unfortun:[17,22],uniqu:[2,19],unit:[0,17,21,36],univers:[2,35],univi:[10,35,44],unix:44,unless:[6,13],unload:[4,10,13],unrealist:17,unreason:36,untar:[2,4,12,32,42],until:[6,11,17,22,43],updat:[36,41],upfront:[2,6],upgrad:36,upon:22,upper:[2,5,6,10,21,43],upstream:[],upto:[],usa:[2,11,12,41],usag:[2,18,41,42],use:[0,2,6,9,17,18,20,21,22,30,31,32,33,34,36,42,43],used:[2,5,6,8,9,11,12,13,14,17,18,19,32,34,36,39,42,43,44],useful:[6,11,19,39,43],user:[2,4,5,10,11,12,13,14,18,20,22,23,24,30,31,32,33,36,39,42,43,44],user_group:[7,13],user_nam:[7,13],usergroup:13,usernam:[12,13,30,31,32],uses:[0,4,10,17,30,32,34,43],using:[2,4,6,11,12,17,18,19,30,31,32,42,43],usr:[0,4,9,10,13,30,31,32],usual:[5,6,11,15,19,31,43],utc:[6,11,19,43],util:[2,15],uza:35,v10:19,v20_update_protocol:21,v30_update_protocol:21,v40_update_protocol:21,v60_update_protocol:21,v703:[],v704:[],v711:[],v71:[],valid:[2,6,12,19,32,34,43],valu:[2,3,5,6,8,9,10,11,12,13,17,18,21,30,32,34,43],valuer:2,vanish:17,vari:[5,6,9,39,43],variabel:[],variabl:[2,4,6,10,11,13,17,20,31,33,36,39,43],varianc:[],variat:[6,19],variou:36,vast:39,veloc:[15,19,20,43],veri:[2,6,11,17,21,31,43],version:[2,3,4,6,9,10,13,15,18,21,33,36,42,43,44],version_numb:13,vertic:[5,11,15,19,20,36,38,39,43],via:[2,11,14,15,22,23,30,31,32,36,43],vienna:[2,35],view:[2,11,12,41,44],virtual:42,visit:[2,11,12,30,41],vol:6,wai:[2,5,13,15,17,22,30,31,39,42,43],wait:22,want:[6,9,17,20,33,43],warn:[12,31],water:[2,6,19,43],wave:21,weather:[6,20,39,41],web:[2,6,11,14,22,23,24,33,36,42,43],webapi:[2,6],webserv:[],websit:[2,30,31,42,43,44],wedg:17,well:[2,6,15,21,34,39,42,43],were:[2,6,11,12,19,34,43],west:[2,11],western:2,westernmost:2,wet:17,wether:2,what:[3,5,23,31,41,43],whatev:43,when:[2,4,6,10,17],whenev:21,where:[2,6,9,11,12,13,17,19,21,31,42,43],wherea:[6,15,43],wherebi:[],wherekei:2,wherekeynam:2,wherekeyvalu:2,whether:[2,4,10,12,33,42],which:[0,2,3,4,5,6,7,9,10,11,12,14,15,17,18,19,20,21,22,30,31,36,39,42,43,44],whith:10,who:20,whole:[2,17,43,44],whose:[19,42],why:17,width:[],wien:35,wiki:[2,6,32,44],wil:2,wildcard:43,wind:[5,19,38,39,43],window:[30,31,43],wish:42,within:[2,4,6,10,11,17,30,32,43],without:[2,13,22,33,42,43],word:2,work:[0,2,7,10,11,12,13,14,15,20,22,31,36,41,42,43],workaround:33,workdir:[4,10,13],workload:13,workspac:[10,19,43],workstep:[],would:[6,11,22,30,33,34,43],wrap:20,wrapper:[11,12,18],wrf:[2,5,10],write:[2,6,36,43,44],write_namelist:2,write_reqhead:2,written:[2,6,21,37,40],wrong:34,www:[42,44],x86_64:9,xvf:[4,13,32,42],xxx:19,xxxx:6,xxxxx:43,xxyymmddhh:2,year:[19,31],yet:43,yield:[2,21],you:[0,3,5,6,9,13,21,24,30,31,32,34,42,43,44],your:[9,24,30,31,32,42,43,44],yourself:24,yymmdd:[6,19],yymmddhh:[6,19,21],yyyymmdd:[2,6,11],yyyymmddhh:[17,19],zamg:[36,44],zero:[17,21,34],zonal:21},titles:["Updating the documentation","Auto-generated documentation for the Fortran programme","Auto-generated documentation for the Python scripts","CONTROL file changes","The compilation job script <code class=\"docutils literal notranslate\"><span class=\"pre\">compilejob.ksh</span></code>","The CONTROL file","The CONTROL parameters","ECMWF user credential file <code class=\"docutils literal notranslate\"><span class=\"pre\">ECMWF_ENV</span></code>","CONTROL file examples","The Fortran makefile for <code class=\"docutils literal notranslate\"><span class=\"pre\">calc_etadot</span></code>","The job script <code class=\"docutils literal notranslate\"><span class=\"pre\">job.ksh</span></code>","The executable script - <code class=\"docutils literal notranslate\"><span class=\"pre\">run.sh</span></code>","The installation script - <code class=\"docutils literal notranslate\"><span class=\"pre\">setup.sh</span></code>","Templates","Application modes","Program flow","Auto-generated documentation","Disaggregation of flux data","Control &amp; input data","Output data","Overview","Vertical wind","Access modes","Link collection","Hints for data set selection","Available data sets for member-state users","Available data sets for public users","Metrics","Static code analysis","Test cases","Gateway mode installation","Local mode installation","Remote mode installation","FAQ - Frequently asked questions","Known Bugs and Issues","Developer Team","Changelog","Developer Guide","Code-Level Documentation","ECMWF Data","Evaluation","Welcome to the <code class=\"docutils literal notranslate\"><span class=\"pre\">flex_extract</span></code> Documentation!","Installation","Usage","Support","ToDos"],titleterms:{"case":29,"class":2,"long":19,"new":[19,36],"public":[26,42,43],"static":28,CDS:[31,34],The:[4,5,6,9,10,11,12],accept:42,access:22,addit:[0,6,19],adjust:43,agreement:[],analysi:28,api:[31,34],applic:[14,15],ask:33,auto:[1,2,16],avail:[24,25,26],block:0,bug:[34,36,44],calc_etadot:[9,19,34],calc_etadot_nml:13,calcul:21,can:[24,33],cera:43,certain:43,chang:[3,36],changelog:36,check:2,code:[28,34,38],collect:23,combin:[42,43],comparison:29,compil:4,compilejob:4,content:[7,11,12,19],continu:21,control:[3,5,6,8,18,43],controlfil:2,convert:[],coordin:[],credenti:7,data:[6,17,18,19,24,25,26,34,39,43],dataset:[42,43],definit:43,depend:[30,31,32,42],destin:34,develop:[35,37],diagramm:0,differ:15,disaggreg:[2,17,19],distribut:33,document:[0,1,2,16,38,41],doe:[4,10],domain:6,download:42,eccod:34,ecflexpart:2,ecmwf:[7,31,39,42],ecmwf_env:[7,13],ensembl:19,environ:[30,31,32],equat:21,era5:34,era:43,error:34,evalu:40,exampl:[4,5,8,10,15],execut:11,faq:[33,44],featur:[36,43],field:[6,17,19],file:[3,5,6,7,8,19,21,29,43],find:24,finder:[],fix:36,flex_extract:[41,42],flexpart:[19,42],flow:15,flux:[6,17,19],forecast:19,format:5,fort:19,fortran:[1,9,19,34,42],frequent:33,from:[21,33],full:42,gatewai:[30,34,43],gener:[1,2,6,15,16],get_mars_data:2,grib:[19,29],gributil:2,guid:37,hint:[24,43],horizont:21,how:24,index:19,input:[18,19],instal:[2,12,30,31,32,33,34,42],installscript:13,interim:43,issu:[34,44],job:[4,10,43],jobscript:13,known:[34,44],ksh:[4,10],level:[25,38],librari:33,licenc:42,line:0,link:23,list:44,local:[15,31,43],mail:44,makefil:9,mar:[19,21,29],marsretriev:2,member:[15,25],metric:27,mode:[14,15,22,30,31,32,43],model:25,modul:2,older:17,onlin:[],oper:43,option:[11,12],other:17,out:24,output:[19,21],overview:20,packag:33,paramet:[6,11,12,21,34,43],parti:33,pre:21,precipit:[17,19],predict:19,prepar:[21,30,31,32,43],prepare_flexpart:2,problem:34,program:[2,15,19,34,42],programm:1,proper:43,pure:[],python:2,question:33,quick:[],registr:42,releas:[34,36],remot:[32,43],report:44,request:[19,29],rest:[],retriev:[],run:11,script:[2,4,10,11,12],section:6,select:[24,43],sequenc:0,set:[15,24,25,26],setup:12,softwar:0,some:[],specif:43,specifi:[],sphinx:0,standard:19,start:[],state:25,submiss:11,submit:[2,11],submitscript:13,support:44,surfac:25,system:44,team:35,temp:[],templat:13,temporari:19,test:[29,30,31,42],testcas:[],third:33,ticket:44,time:6,todo:45,tool:2,uiofil:2,updat:0,usag:[11,12,43],user:[6,7,15,25,26],using:21,veloc:21,version:17,vertic:[6,21],web:31,welcom:41,what:[4,10,24,33],wind:[6,21],workflow:15}})
     1Search.setIndex({docnames:["Developers/gen_docu","Documentation/Api/api_fortran","Documentation/Api/api_python","Documentation/Input/changes","Documentation/Input/compilejob","Documentation/Input/control","Documentation/Input/control_params","Documentation/Input/ecmwf_env","Documentation/Input/examples","Documentation/Input/fortran_makefile","Documentation/Input/jobscript","Documentation/Input/run","Documentation/Input/setup","Documentation/Input/templates","Documentation/Overview/app_modes","Documentation/Overview/prog_flow","Documentation/api","Documentation/disagg","Documentation/input","Documentation/output","Documentation/overview","Documentation/vertco","Ecmwf/access","Ecmwf/ec-links","Ecmwf/hintsecmwf","Ecmwf/msdata","Ecmwf/pubdata","Evaluation/metrics","Evaluation/staticcode","Evaluation/testcases","Installation/gateway","Installation/local","Installation/remote","Support/faq","Support/known_bugs_issues","authors","changelog","dev_guide","documentation","ecmwf_data","evaluation","index","installation","quick_start","support","todo"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":1,"sphinx.domains.index":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,"sphinx.ext.intersphinx":1,"sphinx.ext.todo":2,"sphinx.ext.viewcode":1,sphinx:56},filenames:["Developers/gen_docu.rst","Documentation/Api/api_fortran.rst","Documentation/Api/api_python.rst","Documentation/Input/changes.rst","Documentation/Input/compilejob.rst","Documentation/Input/control.rst","Documentation/Input/control_params.rst","Documentation/Input/ecmwf_env.rst","Documentation/Input/examples.rst","Documentation/Input/fortran_makefile.rst","Documentation/Input/jobscript.rst","Documentation/Input/run.rst","Documentation/Input/setup.rst","Documentation/Input/templates.rst","Documentation/Overview/app_modes.rst","Documentation/Overview/prog_flow.rst","Documentation/api.rst","Documentation/disagg.rst","Documentation/input.rst","Documentation/output.rst","Documentation/overview.rst","Documentation/vertco.rst","Ecmwf/access.rst","Ecmwf/ec-links.rst","Ecmwf/hintsecmwf.rst","Ecmwf/msdata.rst","Ecmwf/pubdata.rst","Evaluation/metrics.rst","Evaluation/staticcode.rst","Evaluation/testcases.rst","Installation/gateway.rst","Installation/local.rst","Installation/remote.rst","Support/faq.rst","Support/known_bugs_issues.rst","authors.rst","changelog.rst","dev_guide.rst","documentation.rst","ecmwf_data.rst","evaluation.rst","index.rst","installation.rst","quick_start.rst","support.rst","todo.rst"],objects:{"":{ControlFile:[2,0,0,"-"],EcFlexpart:[2,0,0,"-"],GribUtil:[2,0,0,"-"],MarsRetrieval:[2,0,0,"-"],UioFiles:[2,0,0,"-"],checks:[2,0,0,"-"],disaggregation:[2,0,0,"-"],get_mars_data:[2,0,0,"-"],install:[2,0,0,"-"],prepare_flexpart:[2,0,0,"-"],submit:[2,0,0,"-"],tools:[2,0,0,"-"]},"ControlFile.ControlFile":{"public":[2,2,1,""],accmaxstep:[2,2,1,""],acctime:[2,2,1,""],acctype:[2,2,1,""],accuracy:[2,2,1,""],addpar:[2,2,1,""],area:[2,2,1,""],assign_args_to_control:[2,3,1,""],assign_envs_to_control:[2,3,1,""],basetime:[2,2,1,""],cds_api:[2,2,1,""],check_conditions:[2,3,1,""],controlfile:[2,2,1,""],cwc:[2,2,1,""],dataset:[2,2,1,""],date_chunk:[2,2,1,""],debug:[2,2,1,""],destination:[2,2,1,""],doubleelda:[2,2,1,""],dpdeta:[2,2,1,""],dtime:[2,2,1,""],ec_api:[2,2,1,""],ecfsdir:[2,2,1,""],ecgid:[2,2,1,""],ecstorage:[2,2,1,""],ectrans:[2,2,1,""],ecuid:[2,2,1,""],end_date:[2,2,1,""],eta:[2,2,1,""],etadiff:[2,2,1,""],etapar:[2,2,1,""],exedir:[2,2,1,""],expver:[2,2,1,""],flexextractdir:[2,2,1,""],format:[2,2,1,""],gateway:[2,2,1,""],gauss:[2,2,1,""],gaussian:[2,2,1,""],grid:[2,2,1,""],inputdir:[2,2,1,""],install_target:[2,2,1,""],installdir:[2,2,1,""],left:[2,2,1,""],level:[2,2,1,""],levelist:[2,2,1,""],logicals:[2,2,1,""],lower:[2,2,1,""],mailfail:[2,2,1,""],mailops:[2,2,1,""],makefile:[2,2,1,""],marsclass:[2,2,1,""],maxstep:[2,2,1,""],number:[2,2,1,""],omega:[2,2,1,""],omegadiff:[2,2,1,""],oper:[2,2,1,""],outputdir:[2,2,1,""],prefix:[2,2,1,""],purefc:[2,2,1,""],request:[2,2,1,""],resol:[2,2,1,""],right:[2,2,1,""],rrint:[2,2,1,""],smooth:[2,2,1,""],start_date:[2,2,1,""],step:[2,2,1,""],stream:[2,2,1,""],time:[2,2,1,""],to_list:[2,3,1,""],type:[2,2,1,""],upper:[2,2,1,""],wrf:[2,2,1,""]},"EcFlexpart.EcFlexpart":{"public":[2,2,1,""],accmaxstep:[2,2,1,""],acctime:[2,2,1,""],acctype:[2,2,1,""],accuracy:[2,2,1,""],addpar:[2,2,1,""],area:[2,2,1,""],basetime:[2,2,1,""],calc_extra_elda:[2,3,1,""],create:[2,3,1,""],dataset:[2,2,1,""],dates:[2,2,1,""],deacc_fluxes:[2,3,1,""],dtime:[2,2,1,""],expver:[2,2,1,""],gaussian:[2,2,1,""],glevelist:[2,2,1,""],grid:[2,2,1,""],inputdir:[2,2,1,""],level:[2,2,1,""],levelist:[2,2,1,""],marsclass:[2,2,1,""],mreq_count:[2,2,1,""],number:[2,2,1,""],outputfilelist:[2,2,1,""],params:[2,2,1,""],process_output:[2,3,1,""],purefc:[2,2,1,""],resol:[2,2,1,""],retrieve:[2,3,1,""],server:[2,2,1,""],stream:[2,2,1,""],types:[2,2,1,""],write_namelist:[2,3,1,""]},"GribUtil.GribUtil":{copy_dummy_msg:[2,3,1,""],get_keys:[2,3,1,""],index:[2,3,1,""],set_keys:[2,3,1,""]},"MarsRetrieval.MarsRetrieval":{"public":[2,2,1,""],accuracy:[2,2,1,""],area:[2,2,1,""],data_retrieve:[2,3,1,""],dataset:[2,2,1,""],date:[2,2,1,""],display_info:[2,3,1,""],expver:[2,2,1,""],gaussian:[2,2,1,""],grid:[2,2,1,""],levelist:[2,2,1,""],levtype:[2,2,1,""],marsclass:[2,2,1,""],number:[2,2,1,""],param:[2,2,1,""],print_infodata_csv:[2,3,1,""],repres:[2,2,1,""],resol:[2,2,1,""],server:[2,2,1,""],step:[2,2,1,""],stream:[2,2,1,""],target:[2,2,1,""],time:[2,2,1,""],type:[2,2,1,""]},"UioFiles.UioFiles":{delete_files:[2,3,1,""],files:[2,2,1,""],path:[2,2,1,""],pattern:[2,2,1,""]},ControlFile:{ControlFile:[2,1,1,""]},EcFlexpart:{EcFlexpart:[2,1,1,""]},GribUtil:{GribUtil:[2,1,1,""]},MarsRetrieval:{MarsRetrieval:[2,1,1,""]},UioFiles:{UioFiles:[2,1,1,""]},checks:{check_accmaxstep:[2,4,1,""],check_acctime:[2,4,1,""],check_acctype:[2,4,1,""],check_addpar:[2,4,1,""],check_area:[2,4,1,""],check_basetime:[2,4,1,""],check_dates:[2,4,1,""],check_grid:[2,4,1,""],check_job_chunk:[2,4,1,""],check_len_type_time_step:[2,4,1,""],check_levels:[2,4,1,""],check_logicals_type:[2,4,1,""],check_mail:[2,4,1,""],check_maxstep:[2,4,1,""],check_number:[2,4,1,""],check_pathes:[2,4,1,""],check_ppid:[2,4,1,""],check_public:[2,4,1,""],check_purefc:[2,4,1,""],check_queue:[2,4,1,""],check_request:[2,4,1,""],check_step:[2,4,1,""],check_time:[2,4,1,""],check_type:[2,4,1,""]},disaggregation:{IA3:[2,4,1,""],dapoly:[2,4,1,""],darain:[2,4,1,""]},get_mars_data:{check_dates_for_nonflux_fc_times:[2,4,1,""],do_retrievement:[2,4,1,""],get_mars_data:[2,4,1,""],main:[2,4,1,""],mk_dates:[2,4,1,""],mk_server:[2,4,1,""],remove_old:[2,4,1,""],write_reqheader:[2,4,1,""]},install:{check_install_conditions:[2,4,1,""],del_fortran_build:[2,4,1,""],get_install_cmdline_args:[2,4,1,""],install_local:[2,4,1,""],install_via_gateway:[2,4,1,""],main:[2,4,1,""],mk_compilejob:[2,4,1,""],mk_env_vars:[2,4,1,""],mk_fortran_build:[2,4,1,""],mk_job_template:[2,4,1,""],mk_tarball:[2,4,1,""],un_tarball:[2,4,1,""]},prepare_flexpart:{main:[2,4,1,""],prepare_flexpart:[2,4,1,""]},submit:{main:[2,4,1,""],mk_jobscript:[2,4,1,""],submit:[2,4,1,""]},tools:{check_for_string_in_file:[2,4,1,""],clean_up:[2,4,1,""],execute_subprocess:[2,4,1,""],generate_retrieval_period_boundary:[2,4,1,""],get_cmdline_args:[2,4,1,""],get_dimensions:[2,4,1,""],get_informations:[2,4,1,""],get_list_as_string:[2,4,1,""],init128:[2,4,1,""],make_dir:[2,4,1,""],my_error:[2,4,1,""],none_or_int:[2,4,1,""],none_or_str:[2,4,1,""],normal_exit:[2,4,1,""],overwrite_lines_in_file:[2,4,1,""],product:[2,4,1,""],put_file_to_ecserver:[2,4,1,""],read_ecenv:[2,4,1,""],send_mail:[2,4,1,""],setup_controldata:[2,4,1,""],silent_remove:[2,4,1,""],submit_job_to_ecserver:[2,4,1,""],to_param_id:[2,4,1,""],to_param_id_with_tablenumber:[2,4,1,""]}},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","attribute","Python attribute"],"3":["py","method","Python method"],"4":["py","function","Python function"]},objtypes:{"0":"py:module","1":"py:class","2":"py:attribute","3":"py:method","4":"py:function"},terms:{"00h":[6,11],"10u":19,"10v":19,"12h":[6,11],"150px":[],"180w":6,"18utc":2,"1hourli":[8,43],"1st":[],"20c":[5,6,19,21,22,23,34,36,42,43],"20gb":43,"24h":6,"25th":[],"31st":[],"32000mb":[10,13],"3200mb":[4,13],"36hour":[8,43],"3hourli":[8,43],"4th":[],"60px":[],"6th":43,"althanstra\u00df":35,"boolean":2,"break":[],"case":[0,2,4,6,10,13,14,17,19,21,22,32,33,42,43,44],"class":[0,5,6,31],"default":[2,3,5,6,8,9,10,11,12,18,19,31,43],"export":[4,10,13],"f\u00fcr":13,"final":[0,2,11,15,17,19,21,43],"float":[2,11],"function":[2,17,41],"import":[2,6,11,30,31,33,34,36,39,43,44],"int":[2,6,30,32,43],"long":43,"m\u00e4r":[],"new":[2,6,10,11,17,31,41,43,44],"public":[2,5,6,8,10,11,12,14,22,23,24,31,36,39,41],"return":[2,4,10,34],"short":[2,5,6,17,30,43],"switch":[2,4,6,10,13,19],"true":[0,2],"try":[31,42,43],"while":[22,43],ARE:5,But:[],C3S:23,CDS:[2,22,23,33,36,42],Dps:[2,6],ENS:[23,43],FOR:[11,12],For:[0,2,5,6,9,11,13,14,18,19,21,22,24,30,31,32,34,39,42,43],HAS:[11,12,30,31,32,43],Has:[6,11],IDs:[2,6,15,43],Its:[2,43],NOT:[11,12,31],Not:12,One:[33,43],PBS:[4,10,13],THE:[11,12,30,31,32,43],THESE:[11,12,30,31,32,43],The:[0,2,13,14,15,17,18,19,20,21,22,30,31,32,34,39,42,43,44],Then:[2,11,14,42],There:[2,5,18,19,22,31,39,42,43],These:[4,10,13,17,42,43],Use:[0,6,30,32,43],Used:[2,12],Useful:[],Uses:2,Using:[31,43],WITH:[11,12],With:[6,11,12,18,43],_acc:19,_config:2,_expand:2,_file:0,_local:44,_orolsm:19,_static:[],_templat:2,a_0:17,a_1:17,a_2:17,a_3:17,abcd:2,abl:[2,13,18,19,22,30,43],about:[2,5,11,14,19,33,39,42,43],abov:[2,17,31,43],absolut:[],accept:[6,14,21,22,41,43],access:[2,5,6,12,14,23,24,30,31,32,33,39,41,42,43],accmaxstep:[2,5,6,10,43],accomplish:15,accord:[6,12,43],account:[30,32,39,42,43],acctim:[2,5,6,10,43],acctyp:[2,5,6,10,43],accumlu:2,accumul:[2,6,17,19,43],accur:43,accuraci:[2,5,6,10,19,21],achiev:21,action:[23,31,32],activ:42,activid:32,actual:[2,6,12,13,18,19,42,43],adapt:[0,2,5,6,9,11,12,13,18,30,31,32,33,36,43],add:[2,43],added:[17,19],adding:[2,43],addit:[2,5,11,15,17,20,30,31,39,43],addition:[2,6,14,30,43],addpar:[2,5,6,10,43],address:[2,6,12,19,30,32,43],adjac:17,adjust:41,admin:[12,30,31,33],adress:12,advanc:2,aerosol:35,affect:17,after:[2,5,6,11,12,15,17,18,43],afterward:[2,13,17,30,31,32],again:[11,12],against:[],aggreg:19,agre:22,agreement:14,algorithm:[2,17,36],align:[],alist:2,all:[2,5,6,8,11,12,13,15,17,19,30,31,32,33,42,43],alll:39,allow:[2,6,11,22,43],alpabet:2,alreadi:[2,11,12,22,30,31,32,42,43],also:[0,2,5,6,10,11,12,17,18,19,21,22,31,32,39,42,43,44],alter:19,altern:42,alwai:[6,11,12,43],amount:[2,6,11,17,39],anaconda:[31,42],analys:[21,39,43],analysi:[2,5,6,11,19,22,39,43],ani:[2,5,6,11,12,14,17,21,32,33,42,43,44],ann:[2,5,11,12,19,35],annep:[],annouc:44,announc:43,anog__ml:19,anog__sl:19,anoth:[2,6,9,33,43],ansh__sl:19,anymor:3,anyon:44,anyth:[6,11,12,13],api:[1,2,6,11,14,22,23,33,36,42,43],app:[30,32],appear:21,append:2,appli:[2,11,17,21,36,42,43],applic:[2,4,6,7,10,11,12,13,20,21,31,36,42,43,44],approach:17,appropri:[6,43,44],approri:6,april:43,apt:[30,31],arbitrari:2,archiv:[2,5,11,18,20,22,30,41,42],area:[2,5,6,10,11,12,17,19,31,43],arg:2,argument:[2,11,12,18,22,30,31,32,42,43,44],aris:14,around:[17,20],arrai:[2,34],arrang:2,array_t1:2,array_t2:2,array_t3:2,array_t4:2,articl:[2,6],ascrib:17,ask:[19,32,41,42,44],aspect:42,assign:[2,9],assign_args_to_control:2,assign_envs_to_control:2,assimil:43,assoc_nam:30,associ:[2,12,30,43],assum:[21,43],atm:[],atmospher:[17,20,23,34,41,43],attempt:2,attent:[6,43],attribut:[2,11,12,41],aug:31,august:43,austria:35,author:[2,5,11,12,32],auto:38,automat:[6,11,14,17,22,30,32,36,43,44],autoprogram:[],avail:[2,3,5,6,11,12,17,19,21,22,23,30,31,32,33,34,39,42,43,44],averag:17,avoid:[19,21,36,43],awar:[34,43],awk:[4,13],back:[6,11,42],bahaviour:[],ball:[2,42],base:[2,7,10,11,17,36,39,42],basetim:[2,5,6,10,11,17,36,43],bash:[11,12,43],basic:[2,17,31],batch:[4,10,11,12,13,18,20,30,43],bdynam:31,beaver:[30,31],becaus:[12,21,43],beck:2,been:[5,15,30,31,32,42,43],befor:[0,2,6,10,17,19,32,34,39,42,43],begin:[2,13,17],beginn:[18,43],behaviour:[5,18],being:[12,19],belong:[42,43],below:[7,9,17,19,21,31,34,43,44],best:[6,17,39,43],better:[6,43],between:[2,4,6,7,10,17,19,21,30,43],beyond:43,bicub:[],big:[30,31,32],bilinear:17,bin:[4,10,11,12,13,31],bionic:[30,31],bit:[2,6],blank:[2,11],block:[19,43],blockdiag:0,blockdiag_fontpath:0,blog:33,blue:[12,17],boku:35,border:17,both:[2,21,31,39,43],bottom:44,boundari:[2,11,17],box:[2,11,12,41],bracket:43,branch:42,broader:39,bstatic:31,bug:41,build:[2,23],built:32,bunch:2,buster:[9,30,31],button:42,bypass:[],calc_etadot:[4,12,13,15,18,21,30,31,32,36,38,42,43],calc_etadot_fast:[30,31,32],calc_extra_elda:2,calcul:[2,5,6,15,17,20,43],calendar:43,calibr:[6,43],call:[2,4,9,10,11,12,13,15,18,19,22,30,31,42,43],can:[2,3,5,6,9,11,12,13,14,15,18,19,21,22,30,31,32,34,39,40,41,42,43,44],cancel:22,cannot:[21,43],care:[6,11,43],carefulli:39,carri:[2,6],cat:[10,13],catalogu:[6,43],catego:[],categori:44,caution:43,cautiou:[],cautious:43,caveat:43,cca:[2,4,9,10,11,12,13,14,30,32,43],ccb:[4,9,10,11,12,13,14,30,32,43],cdot:17,cds_api:[2,10],cdsapi:31,cdsapirc:31,ce00010800:19,ce000908:43,cell:17,centr:[19,20,39,41],central:[2,17],cera20c:[6,31],cera:[5,6,19,21,22,23,34,36,41,42],cera_exampl:43,cera_testgrid_local_cd:19,cerapubl:43,certain:[2,18,41,42],certif:30,chang:[6,11,12,13,15,17,18,23,31,32,39,41,42,43],change_icon:[],changelog:41,charact:2,character:2,characteris:2,characterist:43,check:[4,6,9,10,11,12,15,18,30,31,33,36,42,43],check_accmaxstep:2,check_acctim:2,check_acctyp:2,check_addpar:2,check_area:2,check_basetim:2,check_condit:2,check_dat:2,check_dates_for_nonflux_fc_tim:2,check_for_string_in_fil:2,check_grid:2,check_install_condit:2,check_job_chunk:2,check_len_type_time_step:2,check_level:2,check_logicals_typ:2,check_mail:2,check_maxstep:2,check_numb:2,check_path:2,check_ppid:2,check_publ:2,check_purefc:2,check_queu:2,check_request:2,check_step:2,check_tim:2,check_typ:2,checkerboard:17,choic:[9,21,43],choos:21,choosen:12,chose:31,chosen:[2,21],chunk:[2,11],circl:17,classif:[2,6],clean:2,clean_up:2,clear:[39,43],click:[24,42],client:[2,31],climat:[22,23,42],clist:2,clone:42,close:43,closest:34,cloud:[2,6,19,43],cmd_list:2,cmp:[],coarser:[3,6],code:[0,2,6,12,13,19,31,32,36,41,42,43],collect:[2,39,41,43,44],collis:19,colour:17,column:2,combin:[2,11,41],come:8,comma:[2,6,43],command:[2,4,5,9,10,11,12,15,18,22,30,31,32,34,42,43,44],commandlin:[2,11,12,30,31,32,43],comment:[3,5,13],common:[2,11,12,41,43],commonli:2,commun:[39,42,43,44],compar:[17,43],compat:[3,6,18,21],compil:[2,9,12,13,18,30,31,32,33,42],compilejob:[13,18,43],complet:[2,14,17,23,31,36],complex:39,compon:[0,2,17,19,39,42],compos:19,composit:[5,19,43],comprehens:5,comput:[13,17,21,22,23,30,42,43],concaten:2,concatenate_sign:2,concern:2,conda:31,condit:[2,6,11,17],conduct:12,configur:[2,42],confluenc:2,confus:39,congratul:42,connect:[2,22,30,32,43],conrtol:[],conserv:[2,6,17],consider:17,consist:[2,3,11,17,18,19,20,21,31,43],consol:[30,31],constel:8,constitut:11,construct:[0,27,28,29,37,38,40],consult:43,consum:31,contact:23,contain:[0,2,5,7,8,11,12,13,15,17,19,21,31,33,34,42,43,44],content:[2,6,13,23,30,32,39,41,43],context:2,continu:[2,6,17,43],control:[2,10,11,12,13,15,19,21,22,34,38,39,41,42,44],control_:[5,43],control_cera:[8,10,43],control_cont:13,control_ea5:[8,11,12,30,31,32,43],control_ei:[8,43],control_od:[8,43],controlfil:[10,11,12,13,30,31,32,43],controlparamet:5,convect:[2,11,17,19],conveni:43,convent:[2,5,19],convers:2,convert2:36,convert:[2,15,17,20,36,43],coordin:[19,21,43],copernicu:42,copi:[2,11,12,41,43],copy_dummy_msg:2,copyright:[2,11,12],corner:6,correct:[2,6,36,43],correctli:[2,6],correspon:18,correspond:[2,6,9,11,13,17,19,34,39,43],correspondingli:43,cost:21,could:[17,43],count:[6,11,34],counter:2,coupl:2,cours:34,cover:43,crai:[4,10,13],creat:[0,2,4,6,7,10,11,12,13,15,18,19,20,21,30,32,43,44],creation:2,creativ:[2,11,12,41],creativecommon:[2,11,12,41],credenti:[12,13,15,18,31,42,43,44],cross:6,csv:[2,6,11,15,19,43],cubic:2,current:[0,2,6,9,12,14,17,21,31,40,42,43],cvh:19,cvl:19,cwc:[2,5,6,10,43],cycl:43,cyclic:[6,21],d64:[30,32],dai:[2,6,11,17,19,23,30,31,43],daili:[6,43],damp:17,dapoli:2,darain:2,dark:17,dat:11,data:[2,5,8,11,12,15,20,21,22,23,31,36,38,41,42],data_retriev:2,databas:23,dataset:[2,5,6,10,11,14,19,21,22,23,31,41],datatyp:19,date:[2,5,6,11,12,17,19,31,34,43],date_chunk:[2,5,6,10,11,43],date_time_steprang:19,datechunk:2,datelin:6,datetim:2,deacc_flux:2,deaccumul:[2,43],deactiv:36,debian:[9,30,31,42],debug:[2,5,6,9,10,11,19,21,36,43],decid:[2,5,18,43],decim:43,decis:2,declar:43,declin:[],decompos:2,dedic:22,defin:[2,5,6,10,11,12,19,21,24,34,39,42,43],definit:[2,5,18,41],degre:[6,21,43],degress:3,dejavu:0,dejavuserif:0,del_convert_build:[],del_fortran_build:2,delai:44,delet:[2,6,19,32,43],delete_fil:2,delta:17,delta_t:2,demand:[17,21,31,43],demonstr:19,denot:[2,17],depart:35,depend:[2,6,11,12,13,14,15,17,19,20,21,34,41,43],deposit:17,deprec:2,depthbelowlandlay:19,deriv:[2,30,31],describ:[12,14,18,20,22,32,42,43],descript:[2,5,6,11,12,13,19,21,34,39,43,44],design:[],desir:[2,6,17,21,43],despit:31,destin:[2,5,6,7,10,12,13,15,30,31,32,36,43],destination_nam:[7,13],deta:21,detail:[2,5,13,19,20,21,31,42,43],detect:[6,44],determin:[2,11,12,17,43],dev:[9,17,31,42],develop:[0,2,6,9,17,40,41,44],deviat:5,diagnost:[2,6],diagram:[0,12,15],diamond:17,dict:2,dictionari:2,differ:[2,6,8,14,21,22,34,39,43],differenti:[4,10,43],difficulti:15,digit:19,dimens:[2,17],dimension:[2,17,43],direct:[2,13,14,21,22,43],directli:[2,4,10,11,12,13,14,21,22,42,43],directoi:42,directori:[0,2,4,5,6,7,8,9,10,11,12,13,14,18,31,32,33,36,42,43],dis:19,disabl:[6,21],disaggegr:2,disaggreg:[5,6,15,36,38,43],discard:6,discret:17,discretis:[],discuss:[40,43],disk:[31,43],dispers:[2,6,17],displai:[2,6,32],display_info:2,disregard:2,distinct:2,distinguish:[6,11],distribut:[30,31,41,42,43],disturb:43,div:[],diverg:[19,43],divers:2,divid:[2,11,17,19,22],do_retriev:2,document:[5,8,11,19,21,23,30,32,36,43],doe:[2,3,11,12,14,33],doesn:[6,11,12],doi:[6,17],doing:[2,31,43],domain:[5,43],don:[9,12,31,33,42],done:[2,4,6,10,11,12,13,14,17,22,31,42,43],dot:0,doubl:[2,4,6,8,11,13,43],doubleelda:[2,5,6,10,43],down:42,download:[23,32,36,41],download_cdsapi:31,download_cera20c_ecmwfapi:31,download_era5_cdsapi:31,download_erainterim_ecmwfapi:31,downward:[3,6,18,34],dpdeta:[2,5,6,10,43],dpkg:[9,42],drive:[2,20,43],dry:17,dtime:[2,3,5,6,10,43],due:[6,11,12,17,43],durat:43,dure:[2,4,9,12,13,15,18,31,42,43],each:[2,5,6,10,11,13,14,17,19,39,42,43],earlier:[11,43],easi:[17,18,20,43],easier:[18,22],easiest:[30,31],easili:[2,11],east:[2,11,19],eastern:2,easternmost:2,eastward:17,ec_api:[2,10],ec_memory_per_task:[4,10,13],ec_threads_per_task:[4,10,13],ecac:32,ecaccess:[2,4,10,12,13,14,15,22,23,30,32,43],ecaccess_do_not_remov:[4,10,13,43],ecc:2,eccod:[4,9,10,13,23,30,31,32,33,36],eccodes_include_dir:9,eccodes_lib:9,ecd:2,ecf:[2,6,32],ecfsdir:[2,5,6,10],ecg:[4,10,13],ecgat:[2,4,6,9,10,11,12,13,14,21,30,32,43],ecgb11:[32,43],ecgb:[4,10,11,12,13],ecgid:[2,5,6,7,10,12,13,30,31,32,43],echo:[4,12,13],echom:32,ecmf:19,ecmwf:[2,4,5,6,9,10,11,12,13,14,15,17,18,19,20,21,22,23,30,32,33,34,36,41,43],ecmwf_env:[2,11,12,18,43],ecmwfapi:[31,33],ecmwfapirc:31,ecmwfdataserv:[2,31],ecmwfservic:[2,31],ecnam:[],econdemand:[2,5,6,10],ecscratch:32,ecstorag:[2,5,6,10],ectmp:[2,5,6,10],ectran:[2,5,6,10,15,30,32,43],ecuid:[2,5,6,7,10,12,13,30,31,32,43],ecwmf:[22,42],edg:12,edit:19,editor:[9,30,31,32],effect:[13,21],effici:[13,17,19,43],egat:[],either:[2,6,11,14,15,43],elda:[2,6,8,36,43],element:[2,3],els:[4,10,12,13],email:[2,4,6,10,13,30,32,43,44],emo:[4,10,13],emoslib:[21,23,31,32,33],empti:[2,11,12],enabl:[22,30,43],encount:42,end:[2,4,6,10,11,13,17,19,43],end_dat:[2,5,6,10,11,17,43],end_period:2,enda:[10,19,31,43],endian:[30,31,32],endif:17,endo:6,enfo:[6,8,36,43],english:36,enough:[6,22,43],ens:[8,43],ensembl:[2,6,23,36,43],ensemble_memb:19,ensur:21,enter:30,entri:[11,43],env:[2,4,13],environ:[2,4,6,10,11,12,13,14,20,33,42,43,44],environment:[2,35],eof:[10,13],equal:[2,6,11,21,43],equat:[2,6,17,43],equidistantli:17,equival:[30,31],era5:[2,5,6,21,22,23,31,42,43],era:[5,6,11,19,21,22,23,34,36,41,42],eror:2,error:[2,4,10,12,13,21,30,31,43],error_msg:2,esac:[4,10,13],escap:13,especi:[21,42,43],establish:[14,30],eta:[2,5,6,8,10,19,21,38,43],etadiff:[2,5,6,10,21,43],etadot:[2,6,19,43],etapar:[2,5,6,10],etayymmddhh:[6,21],etc:[31,39,44],europ:43,european:[20,39,41],evalu:41,even:[17,21,31,32,43],event:[17,44],eventu:[],everi:[22,30,34,39,43],everyon:6,everyth:[0,2,9,14,31,43],everytim:[],ewss:[17,19],exact:[2,17,43],examin:2,exampl:[2,3,6,7,11,17,18,19,22,23,31,34,39,42,43],exce:[],exceed:43,excelt:0,except:[2,6,21,31,43],execut:[2,9,10,12,13,14,15,18,19,31,32,33,36,42],execute_subprocess:2,exedir:2,exist:[2,6,11,43,44],exit:[2,11,12,34],expect:[2,43],expens:[6,21],experi:[6,43,44],experienc:43,explain:[19,43,44],explan:43,explanait:[],explic:[],explicit:42,explicitli:[6,20,22,43],express:2,expver:[2,5,6,10,19,31],extend:[39,43],extens:[0,2,6,17,43],extra:[2,5,6,14,31,36,42,43],extract:[2,5,6,11,19,21,22,31,34,43],extractxxxxx:43,f90:[30,31,32,36],f_0:17,f_1:17,f_2:17,f_3:17,f_i:17,facil:[22,30],fail:[2,4,6,10,13,34,43],failur:43,fals:2,familiar:43,faq:41,far:6,fast:20,faster:[18,22,44],fcog_acc_sl:19,fconvert:[30,31,32],fdefault:[30,31,32],feasibl:21,featur:[2,6,20,41,44],februari:5,fedir:2,feel:42,few:[6,30,32,43],fewer:43,fftw3:[31,32],fftw:[23,30,32,33],field:[2,5,11,15,20,21,23,36,41,43],field_typ:19,fig:17,figur:[14,17,43],file1:2,file2:2,file:[0,2,4,9,10,11,12,13,15,17,18,20,22,23,30,31,32,34,36,39,41,42,44],filemod:2,filenam:[2,17,19,43],filename_in:2,filepath:2,fill:[6,42,43],filter:[2,17],find:[5,9,31,39,42,43],finder:[],fine:[21,31],finer:[3,21],finish:[31,42,43],first:[2,5,6,11,17,32,36,39,42,43],fit:2,fix:[4,10,17,34,41],flex:[10,13,43],flex_ecmwf:[4,10,13],flex_extract:[0,2,4,5,6,8,9,10,11,12,13,14,15,17,18,19,20,21,22,30,31,32,33,34,39,40,43,44],flex_extract_repo:[],flex_extract_v7:[10,13,19,31,34],flex_extract_v:[4,13],flex_extract_vx:[5,7,8,9,11,12,13,18,30,31,32,42,43],flexcompil:[4,13,30,32],flexextract:19,flexextractdir:2,flexpart:[2,6,11,15,17,20,21,22,31,34,41,43,44],flexpart_root:[4,13],flexpart_root_script:[4,13],flexpartdir:12,flextra:[2,20,21,41],flow:[2,11,12,20],flux:[2,5,15,21,38,43],fluxyyyymmddhh:17,flxacc2:17,follow:[2,5,8,12,13,15,17,18,19,21,30,31,32,33,34,39,42,43],font:0,fontpath:0,fopenmp:[30,31,32],for_develop:0,forecast:[2,5,6,11,17,20,21,22,23,39,41,43],forecast_step:19,forescast:43,forg:31,forget:[12,33],form:[6,42],format:[2,6,10,11,12,15,17,19,20,31,43],formul:17,fort:[2,13],fortran90:[],fortran:[2,4,12,13,15,16,17,18,20,21,30,31,32,36,38,41,43],fortran_program:13,found:[2,5,6,9,13,19,21,30,40,42,43,44],four:[2,14,17,42],fp_root:2,fp_root_path:13,fp_root_script:13,fpdir:2,frac32:17,frac:17,framework:[13,30],free:42,frequent:[41,43,44],from:[2,3,4,5,6,9,10,11,12,13,14,15,17,18,19,20,22,23,30,31,32,34,36,39,41,42,43],fromfil:2,fsr:19,ftime:2,ftp:32,ftrafo:[30,31,32],ftype:2,fulfil:17,full:[2,6,11,12,21,22,31,41,43],fulli:39,further:[2,5,8,31,32,43],furthermor:18,futur:[6,21,43],g_i:17,g_ig_:17,gain:[],gap:43,gate:[],gatewai:[2,4,5,6,7,9,10,12,13,14,15,18,20,22,31,32,36,41,42],gateway_nam:[7,13],gatewaynam:[12,30,32],gatewayserv:43,gauss:[2,5,6,8,10,21,38,43],gaussian:[2,6,10,19,21,23],gen_docu:0,gener:[0,4,5,10,13,17,19,21,23,30,31,38,42,43],general:2,generate_retrieval_period_boundari:2,genericsftp:[2,10,12,30,32],genshi:[4,10,13,30,31,32,36],geometr:2,geophys:35,geosci:17,geoscientif:[2,6,17,40],german:36,get:[2,6,30,31,32,34,36,42,43],get_cmdline_arg:2,get_dimens:2,get_inform:2,get_install_cmdline_arg:2,get_kei:2,get_list_as_str:2,gfortran:[9,23,30,31,32,33],gid:[12,32],git:42,gitmob:42,give:[6,21,34,42,43],given:[2,5,14,17,21,43],glevelist:2,global:[5,6,8,21,39,43],gmd:[6,17],gnu:[9,30,31,32,42],goe:2,going:[2,6,11],good:21,grant:42,graphviz:0,grb:[2,19],greater:[6,11],green:[12,17],gregor:35,grep:[9,10,13,42],grib1:[2,5,6,10,15],grib2:[2,6,15],grib2flexpart:10,grib:[2,6,11,15,23,31],grib_api:[4,10,13,33,36],grib_l:19,gribmessag:11,grid:[2,3,5,6,10,17,19,20,21,23,31,43],grid_simpl:19,grid_typ:19,gridtyp:19,ground:34,group:[2,4,5,12,13,14,22,31,42],groupid:[12,30,32],groupnam:[],grphreal:[30,31,32],guarante:[2,11,12,17,43],guid:[23,36,41,43],guidanc:21,haimberg:[2,35],half:[2,6,11,17,21,43],handl:[2,5,39,43],happen:0,hard:2,harmon:19,has:[0,2,4,6,10,11,12,13,14,17,21,22,30,31,32,39,42,43],hast:6,have:[2,3,5,6,11,12,14,15,22,30,31,32,33,34,39,42,43],hcc:19,header:2,heat:[2,17,19],heavili:21,height:17,help:[2,11,12,18,43,44],help_icon:[],hemispher:43,henc:17,her:12,here:[2,6,8,11,12,15,19,31,39,43,44],hidden:31,high:[6,11,13,21,31,43],higher:[2,21],highest:21,highli:21,highlight:43,highr:[8,43],hint:[5,39,41,44],his:12,histor:21,hittmeir:[2,6,17],home:[4,10,12,13,14,23,30,31,32,42,43],homogen:39,horizont:[2,5,6,17,43],hoskin:6,host:[4,10,11,12,13,43],hostnam:[32,43],hour:[2,6,11,17,19,22,43],hourli:[6,22,43],how:[2,5,6,15,18,22,23,31,39,42,43],howev:[6,15,17,21,22,31,39,43],hpc:[12,21,43],hre:[23,43],href:[],html:[],http:[2,6,11,12,17,30,32,41,42,44],humid:19,hybrid:19,i32:[30,32],i_i:17,ia3:2,ice:[2,6,43],idea:39,identif:2,identifi:[2,6,11,12,17,19],identificationkeyword:2,idir:2,idirectionincrementindegre:2,ids:2,idx:[2,19],ifort:[],iid:2,img:10,implement:[17,19,43],impli:17,importantli:39,improv:[2,17,36,43],inbetween:[6,43],includ:[6,9,11,12,13,30,31,32,34,42,43,44],incorpor:42,increas:43,incur:21,independ:39,index:2,index_fil:2,index_kei:2,index_v:2,indic:[2,5,17,19,43],individu:[2,4,6,10],ineffici:43,info:2,inform:[2,5,6,8,11,14,18,19,20,22,23,32,34,39,42,43,44],informt:2,init128:2,init:2,initi:[2,11,12,36],initialis:[2,18,36],input:[2,5,6,10,11,12,15,17,20,38,41,43],inputdir:[2,10,11,13,43],inputfil:[2,11],insert:31,instal:[0,4,5,6,7,9,10,13,14,15,18,20,22,36,41,43],install_loc:2,install_target:[2,10,12],install_via_gatewai:2,installdir:[2,12,30,31,32,42],installscript:[4,12,30,32],instanc:2,instantan:19,instead:[2,11,12,15,22],institut:[35,39],instruct:[2,6,14,30,31,33,42,43],intact:11,integ:[2,6,11,43],integr:[2,17],intel:[4,10,13],intend:[6,8,11,14,39],interact:30,interest:42,interfac:[2,5,23,24,36,43],intergovernment:39,interim:[5,6,11,19,21,22,23,31,34,41,42],intermedi:2,intern:[2,11,12,41],internet:43,interpol:[2,6,11,17,19,43],interpret:18,interv:[2,3,6,12,17,19],introduc:[17,19,34,36,43],introducst:[],introduct:[],introductari:23,introdut:[],investig:[],involv:12,ipar:2,ipnam:32,isol:17,issu:41,iter:2,its:[2,11,13,17,19,21,39,42],itself:[2,43],jame:[2,17],januari:43,jasper:[30,32,36],jdirectionincrementindegre:2,job:[2,6,11,12,13,14,15,18,19,20,30,32,41],job_chunk:[2,10,11,43],job_fil:2,job_id:[2,4,13],job_templ:[2,10,11,12,30,31,32,43],jobfil:2,jobnam:[2,4,13],jobop:43,jobscript:[10,11,43],journal:[17,40],jtemplat:2,june:[2,43],just:[2,3,6,8,12,31,43],k_i:17,keep:[2,13,17,42,43],kei:[2,31,42],kept:6,keynam:2,keyvalu:2,keyword:[2,6,11,19,22,23,43],kind:[2,6,19,43],km4a:[4,10,13],know:[31,43],known:[5,41],known_bugs_issu:[],korn:[2,4,10,12,13,18,20,36,43],kornshel:[],ksh:[13,18,43],kwd:2,label:[12,19,31],lagrangian:[2,6,17],larg:[2,6,11,17,19,36,43],larger:[6,11,21],last:[2,6,11,17,19,30,32,34,43],lat:[2,6,11,19,21,43],late:17,later:[2,31,34],latest:[22,42,43],latitu:2,latitud:[2,6,20,43],latitudeoffirstgridpointindegre:2,latitudeoflastgridpointindegre:2,latter:12,lcc:19,ld_library_path:33,lead:[6,11,13,17,19,32,43],learn:39,least:[2,12],leav:11,leccod:[9,30,31,32],leccodes_f90:[9,30,31,32],left:[2,5,6,10,17,21,42,43],lemo:[30,32],lemosr64:31,length:[2,17,43],leopold:[2,35],less:21,let:11,letter:[2,11,12,19,41],level:[2,5,6,10,11,12,15,18,19,21,22,31,34,41,43],level_typ:19,levelist:[2,5,6,10,11,19,31,43],levellist:34,levtyp:[2,19,31],lfftw3:[30,32],lib64:31,lib:[9,30,32,33,36],libeccod:[9,31,42],libemo:[30,31,32],librari:[4,9,10,14,20,23,31,32,41,42,44],licenc:[11,12,22,23,41],licens:[2,6,11,12,14,22,41],lies:2,life:35,light:12,like:[2,9,11,17,30,32,34,42,43],limit:[6,11,19,22,39,43],line:[2,5,11,12,13,15,17,18,19,22,30,32,42,43,44],linear:[2,6,17],linearli:17,link:[0,9,39,41,42,43],linux:[9,12,14,15,22,30,31,42,44],liquid:[2,6,43],list:[2,5,6,8,9,11,12,15,17,19,20,23,31,34,41,43],list_obj:2,littl:17,ljasper:[30,31,32],load:[2,4,10,11,12,13,30,32,36,43],local:[2,5,6,7,9,11,12,14,22,30,32,33,36,41,42],localmachin:32,localus:32,locat:[2,7,11,12,43],lock:[],log:[2,4,6,10,13,31,32,42,43,44],logarithm:19,logic:[2,10],login:[32,43],lon:[2,6,11,19,21,43],longer:[2,6,36],longitud:[2,6,20,43],longitudeoffirstgridpointindegre:2,longitudeoflastgridpointindegre:2,longiud:[],look:[2,30,32,34,43],lot:[21,43],lower:[2,5,6,10,21,43],lowest:[19,34],lp64:[30,32],lpthread:[30,32],lrwxrwxrwx:[30,31,32],lsm:19,lsp:[17,19],machin:[2,4,9,10,12,13,14,15,31,32,42,43],made:[2,22,39,43,44],magnitud:2,mai:[6,11,12,15,17,30,31,39,42,43,44],mail:[2,4,6,10,13,35,41,43],mailfail:[2,5,10,13,43],maill:44,mailop:[2,5,6,10,13],main:[2,5,18,20,22,43],mainli:43,maintain:17,make:[0,4,13,18,30,33],make_dir:2,makefil:[2,4,12,13,18,30,31,32,33,36],makefile_crai:[9,12,30,32],makefile_debug:9,makefile_ecg:[4,9,12,30,32],makefile_fast:9,makefile_local_gfortran:[9,12,31],manag:[13,30,31,42],mani:[17,43],manipul:2,mar:[2,6,11,15,18,20,22,23,30,31,32,33,36,41,42,43],march:[2,22,30,31,32],margin:[],mark:[4,5,10,13,17,19,43],mars_request:[2,6,11,15,19,43],marsclass:[2,10,19],marsfil:2,maschin:11,mask:43,mass:21,master:42,match:2,math:[],mathrm:17,matter:[2,12],max:[6,11],max_level_list:2,maxb:[2,13,19],maxim:[],maxima:17,maximum:[2,5,6,11,34,43],maxl:[2,13,19],maxstep:[2,5,6,10],mcc:19,mdpdeta:[2,13,19],mean:[2,4,12,13,17,19,31,43],measur:21,medium:[20,39,41],member:[2,6,12,14,19,22,23,24,30,31,39,42,43],memberst:[2,6],memori:[6,11],mendel:35,mention:[13,14,17,31,43],merg:15,mess:42,messag:[2,11,12,19,21,30,31,34],met:35,meta:[2,13,19],metadiff:[2,13,19],metapar:[2,13,19],meteorolog:[2,17,19,20,35,39,41],meter:[],method:[2,5,6,11,17,19,21,22,38,39,40,43],mgauss:[2,13,19],might:[0,2,6,11,15,18,22,31,39,42,43],migrat:[2,23],min:17,mind:[6,43],minim:42,minima:17,minimis:31,minimum:[20,43],minut:[2,30,32],mismatch:43,missingvalu:2,mix:43,mk_compilejob:2,mk_convert_build:[],mk_date:2,mk_env_var:2,mk_fortran_build:2,mk_job_templ:2,mk_jobscript:2,mk_server:2,mk_tarbal:2,mkdir:[4,10,13],mlevel:[2,13,19],mlevelist:[2,13,19],mnauf:[2,13,19],mnt:19,mock:0,mod:[2,4,9,13],mode:[2,4,6,7,9,10,11,12,13,18,19,20,36,39,41,42,44],model:[2,6,15,17,19,20,21,22,23,34,39,40,41,43],modif:2,modifi:[2,9,22,31,43],modul:[4,10,11,12,13,14,30,32,36,42,43],modular:36,momega:[2,13,19],momegadiff:[2,13,19],moment:6,mon:17,monitor:43,monoton:[2,17],month:[11,19,31,43],monthli:6,more:[2,5,6,11,12,14,17,19,42,43,44],most:[2,6,13,36,39,43,44],mostli:[2,6,19,43],motiv:17,mountain:[2,11,12,41],move:[0,2],mreq_count:2,msgatwai:30,msl:19,msmooth:[2,13,19],much:[39,44],multipl:[2,43],multipli:[6,21],muser:[10,13],must:[6,11,14,32,43],my_error:2,myecnam:12,mygroupnam:12,myuser:12,name:[2,4,5,6,10,11,12,13,17,19,30,31,32,36,42,43],name_of_this_fil:[4,10,13],name_of_your_makefil:31,namelist:[2,13,19],namespac:2,namgen:[13,19],nano:[30,32],nas:19,nation:[22,39],nativ:[30,31,32],natur:[17,35],necessari:[0,2,3,4,6,9,10,11,12,13,14,18,20,30,31,32,33,36,43,44],necessarili:5,nedit:9,need:[0,2,3,5,6,11,12,13,14,18,19,20,21,22,31,32,37,40,42,43],neg:[2,17],neglect:6,net:[17,19],nevertheless:2,newer:19,newest:43,newslett:[],next:[30,32,43,44],nfield:2,night:[],non:[2,6,17,34,43],noncycl:6,none:[2,5,6,10,11,12,17,19,30,31,32,43],none_or_int:2,none_or_str:2,nonzero:2,normal:[4,6,10,13,43],normal_exit:2,north:[2,11],northern:[2,43],northernmost:2,northward:[17,19],notabl:43,notat:17,note:[6,15,17,32,34,42,43],notif:[2,5],notifi:2,novemb:[2,21],now:[22,31,42],nowadai:[],nsss:[17,19],number:[2,3,4,5,6,8,9,10,11,13,17,18,19,20,21,34,36,43],numer:39,numpi:[2,30,31,32],object:2,observ:2,obtain:[2,17,42,43],obvious:17,occur:[2,17],octahedr:23,octob:11,odir:2,off:[2,5,6,19],often:21,og_orolsm__sl:19,okt:31,old:[0,2,6,11,17,36,43],older:[6,15,43],omega:[2,5,6,10,19,21,38,43],omegadiff:[2,5,6,10,21,43],omegayymmddhh:[6,21],onc:[11,43,44],one:[2,5,6,11,12,17,18,19,32,34,42,43],ones:[17,32],onli:[2,3,5,6,11,12,17,19,21,22,32,34,42,43,44],onlin:[36,43],onward:6,open:[2,9,20,30,31,32,41,43],opend:12,oper:[2,5,6,8,10,11,12,17,21,23,31,34,39,41,42],operation:6,oportun:[],opportun:[],opt:[],optim:21,optimis:[9,12,15,43],option:[2,5,6,15,17,19,21,33,36,42,43],optionalind:5,orang:12,order:[2,5,19,43],org:[2,6,11,12,17,41],organis:39,origin:[2,6,11,17,19,43],orographi:19,other:[2,5,6,9,11,31,39,42,43,44],otherwis:[2,12,43],our:42,out:[2,4,6,9,10,13,30,31,32,42,43],output:[2,4,5,6,10,11,12,13,17,30,31,32,36,38,39,41,42,43,44],outputdir:[2,10,11,13,43],outputfilelist:2,outsid:31,over:[2,17,43],overal:[2,19],overhead:43,overlap:[6,17],overrid:[3,11],overrul:5,overview:[8,14,15,17,23,34,38,41,42],overwrit:[0,2,43],overwrite_lines_in_fil:2,overwritten:[2,18,31],own:[19,32,42],p_a:[],p_b:[],p_c:[],p_d:[],packag:[0,4,10,13,20,30,31,41,42],package_nam:42,packingtyp:19,page:[30,42],panel:42,paper:[34,40],par:2,paragraph:44,parallel:[],param1:43,param2:43,param:[2,19,31],paramat:2,paramet:[2,3,4,5,8,9,10,13,15,17,18,19,20,23,30,31,32,36,39,41,42],parameteris:43,parameterlist:[11,12],parameternam:2,paramx:43,parent:[2,11,19],part:[2,17,20],parti:[14,20,23,41],particl:[2,6,17],pass:[2,10,22,34,42],passcod:30,password:[30,32],path:[0,2,4,6,8,9,10,11,12,13,14,31,32,33,34,42,43],path_flexextract_dir:2,path_fortran_src:2,path_input_dir:2,pattern:[2,43],paul:17,pbs_jobid:[10,13],pdf:21,pep8:36,per:[2,5,6,11,15,19,43],perform:[2,13,15,21],period:[2,5,6,11,17,30,43],person:12,perturb:[6,19],petra:[2,35],phgrreal:[30,31,32],philipp:[2,5,6,11,12,17,35],physic:[35,39],pid:[19,43],piec:[17,19],piecewis:17,pip:[0,31,42],place:[2,12,13,14,30,44],placehold:[13,32],plan:[6,21],platform:42,pleas:[5,14,15,21,30,31,32,43,44],plot:23,plu:17,png:0,point:[2,11,17,19,43],polynomi:[2,17],posit:[2,6,13,17],posnam:[30,31,32],possibl:[2,5,6,8,11,12,17,21,22,31,42,43,44],post:[2,6,15,31,44],postprocess:2,pp_id:[11,43],ppid:[2,11,19],pre:[9,17],precalcul:6,precip:19,precipit:[2,5,6,11,23,36,43],precis:33,preconvert:[],predict:[39,43],prefar:42,prefer:[6,30,31,32],prefix:[2,5,6,10,19,21],prepar:[0,2,4,6,10,11,12,13,14,15,20,26,41,42],prepare_flexpart:11,preprocessor:44,present:[2,7,12,23,30,32,42,43],preserv:[17,19,43],pressur:[2,19,21,22,31],pressure_level:31,previou:[18,21,43],prgenv:[4,10,13],primarili:9,principl:43,print:[2,4,13,43],print_infodata_csv:2,prior:[17,21],problem:[2,17,36,42,43,44],procedur:[5,17],process:[2,4,6,7,9,10,11,12,13,14,15,17,18,19,22,31,36,42,43,44],process_output:2,prod:2,produc:[9,17,19,21,39,43],product:[2,42,43],product_typ:31,progam:42,program:[0,4,9,11,12,13,17,18,20,21,30,31,36,41,43],programm:16,progress:[15,43],prompt:30,proper:[18,41],properli:[2,12,15,34,42,44],properti:[2,19,39],propos:[17,44],proposit:[],prot:[10,13,43],protocol:43,provid:[2,3,14,18,20,21,22,31,32,33,42,43,44],pseudo:43,publicli:43,publish:17,pull:31,pure:[2,6,11,19,43],purefc:[2,10],purpos:[2,6,19],put:[2,6,12,13],put_file_to_ecserv:2,pycallgraph:0,pylint:0,pyrevers:0,pyscript:11,pytest:0,python3:[4,10,11,12,13,18,30,31,32,36,42,43],python:[0,4,10,11,12,13,15,16,17,18,19,20,23,30,31,32,33,36,38,42,43],pythonxxxxx:[],qos:[4,10,13],quad:17,quantiti:[2,6,17],question:[41,44],queue:[2,4,10,11,12,13,15,30,43],queuenam:[4,10,13],queues_list:2,quick:[8,43],quick_start:[],quickli:[13,43],quota:43,r64:[4,10,13,30,32],radiat:[2,17,19],raid60:[],rainfal:2,rais:[2,17],rang:[2,6,20,31,39,41,43],rare:43,rate:17,rather:21,raw:[2,15],reach:18,read:[2,6,12,13,15,20,21,32,33,39,43],read_ecenv:2,readi:[2,6,11],real:[23,30,31,32,43],real_tim:23,realis:17,realiti:17,realli:[21,43],reanalysi:[6,11,21,23,31,42],reason:[2,6,11,17,43],receiv:[30,43,44],recent:[10,43],recod:17,recommend:[6,17,21,31,43],reconstruct:[2,17],record:42,rectangular:12,red:17,redhat:42,reduc:[19,21,23],ref:[],refactor:36,refer:[2,14,39,43],regard:[5,18,36,44],regardless:42,region:21,regist:[22,31,33,42],registeredus:44,registr:[6,14,22,23,31,33,41,44],regress:[36,41],regular:[2,20,43],regular_l:19,regularli:[],rel:[17,43],relat:43,releas:[2,41,42,43,44],relev:[2,5],reli:42,remain:[2,17],rememb:42,remot:[2,4,6,7,9,10,12,13,14,15,18,20,30,36,41,42],remota:12,remov:[2,3,17,36],remove_old:2,renam:0,renew:30,repeat:2,rephras:[],repo:42,report:[2,41],repositori:42,repr:[2,19],repres:[2,17,19,22,23,42,43],represent:[2,20],reqest:15,request:[2,4,5,6,10,11,13,15,17,22,36,43],request_numb:[2,19],requir:[2,13,14,17,20,21,30,31,32,39,42,43],rerun:11,research:39,resol:[2,5,6,10,19,21,43],resolut:[3,5,6,11,21,22,39,43],resolv:21,reson:[],resourc:35,respect:[2,5,15,17,18,19,31,39,42,43],respectivlei:[],respons:43,rest:[2,6],restrict:21,restructur:36,result:[2,15,19,21,43],retriev:[2,5,6,11,14,15,17,18,19,20,21,22,31,33,34,36,39,41,42,43],retrieve:5,return_list:2,review:6,revis:36,revtriev:2,right:[2,5,6,10,12,17,21,22,30,31,33,39,42,43,44],rla0:[2,13,19],rla1:[2,13,19],rlo0:[2,13,19],rlo1:[2,13,19],root:[2,4,12,13,18,31,32,42,43],round:12,rpath:[30,32],rpm:42,rrint:[2,5,6,10,11,43],rst:[],rthl:43,rudimentari:12,run:[2,5,6,7,8,10,13,15,18,19,22,30,31,42,43,44],run_loc:[15,43],runtim:10,rwgrib2:[30,31,32,36],sabin:2,sai:2,same:[2,6,11,12,22,30,31,33,43],sampl:[2,31,43],sardeshmukh:6,save:[9,11,19,21,31,43],sbatch:[4,10,13],scale:[2,11,17,19],scaveng:17,scenario:[14,17,43],schemat:17,scheme:[2,6,17,19,43],scienc:35,scientif:[23,34],scope:6,scp:32,scratch:[4,10,13,43],scriot:[],script:[0,5,6,13,14,15,16,17,18,19,20,21,23,30,31,32,36,38,41,42,43,44],scroll:42,sdor:19,search:2,search_str:2,second:[6,11],section:[5,12,18,22,31,36,37,39,40,42,43],see:[2,5,6,11,12,13,15,18,19,20,21,22,24,30,31,32,34,42,43,44],seem:43,seen:18,seibert:[2,6,17,35],select:[2,5,6,11,12,14,19,22,30,32,34,36,39,41,42],selectwher:2,send:[2,11,12,13,21,30,41,44],send_mail:2,sens:43,sensibl:[2,17,19],sent:[2,13,15,18,43],separ:[2,5,19,31,36,43],sepeart:[],seper:[2,6,11,12],septemb:[6,12,21],seqdiag:0,seqdiag_fontpath:0,sequenc:15,seri:[2,17],serv:[19,20,41,43],server:[2,4,5,6,7,9,10,11,12,13,14,15,18,20,22,23,30,31,32,36,42,43],servic:[30,39],session:[4,10],set:[0,2,4,5,6,8,9,10,11,12,13,17,18,19,20,21,22,23,30,31,32,33,34,36,39,42,43,44],set_kei:2,setup:[14,15,18,30,31,32,36,42,43],setup_controldata:2,setup_loc:31,sever:[9,12,13,19,42,43],sfc:[19,31],sgn:17,shade:17,share:[0,44],she:14,shell:[2,4,10,11,12,13,15,18,20,30,31,36,42,43],shift:17,shoot:23,shorten:43,shorter:2,shortli:43,shortnam:19,should:[0,2,6,9,12,13,17,21,30,31,32,36,39,42,43],shouldn:6,show:[11,12,15,17,43],shown:[7,9,17,31,43],side:42,sign:[4,5,13,42],signal:43,silent_remov:2,similar:[14,31],simpl:[6,17,31],simplest:17,simplifi:36,simul:2,sinc:[2,15,19,21,31,43,44],singl:[2,4,10,11,13,15,19,33,42,43],site:30,size:[34,43],sketch:[12,14],skip:[2,31],skt:19,slope:17,slurm:[13,23],small:[31,34,43],smaller:[2,6,11,19],smooth:[2,5,6,10,17,21,43],snippet:31,softwar:[2,6,12,13,14,20,21,23,30,31,32,41,42],solar:[2,17,19],sole:[6,19],solut:[2,44],solv:43,some:[0,2,4,5,6,10,11,12,13,14,15,18,19,20,22,31,32,39,42,43,44],someth:43,sometim:[6,43],soon:[6,43],sort:2,sourc:[0,2,4,9,10,11,12,13,18,20,31,33,34,36,41,42,43],south:[2,11],souther:[],southern:2,southernmost:2,space:[2,5,11,17,43],spar:2,spatial:[5,6,39],spdx:[11,12],speak:42,speci:17,special:[],specialis:43,specif:[2,4,5,6,9,10,11,13,14,17,19,20,21,36,39,41,42],specifc:[2,11],specifi:[2,6,11,12,17,30,31,32,43],specificnam:10,spectral:[2,6,20,21,43],speed:43,sphere:6,spheric:19,sphinx:36,sphinxcontrib:0,split:[15,17,19],sqrt:17,src:[],src_path:2,srvx8:10,ssh:[32,43],sshf:[17,19],ssr:[17,19],sss:6,stamp:19,standard:[2,9,17,21,30,31,32,42,43],start:[2,4,5,6,10,11,12,13,18,19,30,31,32,33,39,42,43],start_dat:[2,5,6,10,11,17,43],start_period:2,state:[2,12,14,22,23,24,30,31,39,42,43],statement:[2,30,32],statist:42,statu:[15,34,42],steer:2,step:[2,3,5,6,10,11,13,15,17,19,20,24,30,31,33,43],steprang:[2,11,19],still:[3,9,15,21,37,40,43],stl1:19,stop:[2,34,42,43],storag:[2,5],store:[2,6,10,11,12,15,19,21,22,23,31,42,43],str:[2,35],str_of_list:2,straightawai:43,straightforeward:43,stream:[2,5,6,10,19,31,36,43],stress:[2,17,19],stretch:31,string:[2,5,6,11,12],structur:[10,36,39,43],studi:[21,39],style:36,sub:[2,17,19],sub_str:2,subdirectori:43,subgrid:[2,11],subinterv:17,subject:[2,30,32,43],submiss:[2,4,10,12,20,43],submit:[4,5,10,12,13,14,15,18,19,30,32,43,44],submit_job_to_ecserv:2,submitscript:[10,11],submitscriptop:[],subprocess:2,subscrib:44,subscript:44,subsect:21,subsequ:6,subset:[6,11,43],substanti:43,substitut:[2,4,9,10,13,32,36,43],substr:2,subtract:[6,43],succeed:[30,31],success:[4,13,19,30,31,32],success_mod:2,successful:[18,42],successfulli:42,sudo:31,suffici:43,suggest:9,suit:[6,43],suitabl:31,sum:[2,6,18,43],supplement:19,support:[2,17,23,39,41,42,43],suppos:2,sure:31,surfac:[2,6,15,17,19,21,22,34],swvl1:19,symmetri:17,syntax:[2,6],synthes:[6,36],sysadmin:33,sysinstalldir:[12,31],sysloc:[12,31],system:[2,4,6,9,10,11,12,13,20,21,30,32,34,41,42,43],sytem:30,t1279:[21,43],t799:21,tab:42,tabl:[2,5,17,19,34,41,42,43],table128:2,take:[9,31,43],taken:[2,6,18,19,39,43],tar:[2,4,13,32,42],tarbal:[2,4,12,30,32],tarball_path:2,tarfil:32,target:[2,12,19,30,31,32],task:[2,18,20,43],tcc:19,team:41,technic:23,tell:[2,43],temp:[2,10,11],temperatur:[19,31],tempfile_job:2,templat:[2,4,5,7,10,11,12,18,30,32,36,43],tempor:[5,6,17,19,22,39,43],temporal_properti:19,temporari:[2,6,11,43],tendenc:21,tenth:6,term:[42,43],termin:[30,31],test:[0,2,5,6,12,13,19,22,33,36,41,43],textbf:17,textrm:17,than:[2,3,6,9,11,19,21,34,44],thei:[0,2,5,6,9,11,12,13,15,17,18,19,31,34,39,43],them:[0,2,6,11,12,15,17,18,19,20,31],therebi:[17,21],therefor:[0,2,6,17,18,19,31,34,39,42,43],thi:[0,2,4,5,6,7,8,9,10,11,12,13,14,17,18,19,21,22,30,31,32,33,34,37,39,40,41,42,43,44],thick:17,thing:[],think:[2,42],third:[14,20,23,41],those:[5,43],though:44,thousandth:6,three:[2,11,17],through:[2,5,12,22,24,30,42,43,44],throughout:17,thu:[9,17,43],ticket:[34,41],time:[2,3,4,5,10,11,13,15,17,19,21,23,31,33,34,39,43],timeseri:[2,17],timespan:[2,17],timestamp:2,tld:32,tmc:31,tmpdir:[10,13],to_list:2,to_param_id:2,to_param_id_with_tablenumb:2,todai:43,todo:[],togeth:[2,5,12,42,43],token:30,too:[6,11,17,31,34,43],tool:[4,10,14,15,43],toolkit:22,top:[11,12,18,34],topic:[],topmost:34,total:[2,19,43],touch:43,trace:17,train:23,transfer:[2,5,6,7,12,13,15,19,30,32,43],transferr:43,transform:2,transport:[20,41],trapezoid:12,treatment:39,tree:43,tri:[],triangular:[2,6],trigger:[2,21],troubl:23,troubleshoot:43,truetyp:0,truncat:[2,6],ttf:0,tupl:2,turbul:[17,19],twice:43,twiceadai:[],twicedaili:[8,43],two:[2,6,11,12,14,17,18,19,20,21,22,33,42,43],type:[0,2,3,4,5,6,10,11,13,18,19,30,31,32,42,43],typeoflevel:19,typic:[15,19,23,43],ubuntu:[30,31],udoc:2,uid:[12,32],un_tarbal:2,unavail:44,unchang:17,under:[0,2,11,12,13,14,17,19,26,27,28,29,30,31,37,38,40,41,43],undergo:[39,43],understand:[5,13,18],underw:[],undesir:17,unfortun:[17,22],uniqu:[2,19],unit:[0,17,21,36],univers:[2,35],univi:[10,35,44],unix:44,unless:[6,13],unload:[4,10,13],unrealist:17,unreason:36,untar:[2,4,12,32,42],until:[6,11,17,22,43],updat:[36,41],upfront:[2,6],upgrad:36,upon:22,upper:[2,5,6,10,21,43],upstream:[],upto:[],usa:[2,11,12,41],usag:[2,18,41,42],use:[0,2,6,9,17,18,20,21,22,30,31,32,33,34,36,42,43],used:[2,5,6,8,9,11,12,13,14,17,18,19,32,34,36,39,42,43,44],useful:[6,11,19,39,43],user:[2,4,5,10,11,12,13,14,18,20,22,23,24,30,31,32,33,36,39,42,43,44],user_group:[7,13],user_nam:[7,13],usergroup:13,usernam:[12,13,30,31,32],uses:[0,4,10,17,30,32,34,43],using:[2,4,6,11,12,17,18,19,30,31,32,42,43],usr:[0,4,9,10,13,30,31,32],usual:[5,6,11,15,19,31,43],utc:[6,11,19,43],util:[2,15],uza:35,v10:19,v20_update_protocol:21,v30_update_protocol:21,v40_update_protocol:21,v60_update_protocol:21,v703:[],v704:[],v711:[],v71:[],valid:[2,6,12,19,32,34,43],valu:[2,3,5,6,8,9,10,11,12,13,17,18,21,30,32,34,43],valuer:2,vanish:17,vari:[5,6,9,39,43],variabel:[],variabl:[2,4,6,10,11,13,17,20,31,33,36,39,43],varianc:[],variat:[6,19],variou:36,vast:39,veloc:[15,19,20,43],veri:[2,6,11,17,21,31,43],version:[2,3,4,6,9,10,13,15,18,21,33,36,42,43,44],version_numb:13,vertic:[5,11,15,19,20,36,38,39,43],via:[2,11,14,15,22,23,30,31,32,36,43],vienna:[2,35],view:[2,11,12,41,44],virtual:42,visit:[2,11,12,30,41],vol:6,wai:[2,5,13,15,17,22,30,31,39,42,43],wait:22,want:[6,9,17,20,33,43],warn:[12,31],water:[2,6,19,43],wave:21,weather:[6,20,39,41],web:[2,6,11,14,22,23,24,33,36,42,43],webapi:[2,6],webserv:[],websit:[2,30,31,42,43,44],wedg:17,well:[2,6,15,21,34,39,42,43],were:[2,6,11,12,19,34,43],west:[2,11],western:2,westernmost:2,wet:17,wether:2,what:[3,5,23,31,41,43],whatev:43,when:[2,4,6,10,17],whenev:21,where:[2,6,9,11,12,13,17,19,21,31,42,43],wherea:[6,15,43],wherebi:[],wherekei:2,wherekeynam:2,wherekeyvalu:2,whether:[2,4,10,12,33,42],which:[0,2,3,4,5,6,7,9,10,11,12,14,15,17,18,19,20,21,22,30,31,36,39,42,43,44],whith:10,who:20,whole:[2,17,43,44],whose:[19,42],why:17,width:[],wien:35,wiki:[2,6,32,44],wil:2,wildcard:43,wind:[5,19,38,39,43],window:[30,31,43],wish:42,within:[2,4,6,10,11,17,30,32,43],without:[2,13,22,33,42,43],word:2,work:[0,2,7,10,11,12,13,14,15,20,22,31,36,41,42,43],workaround:33,workdir:[4,10,13],workload:13,workspac:[10,19,43],workstep:[],would:[6,11,22,30,33,34,43],wrap:20,wrapper:[11,12,18],wrf:[2,5,10],write:[2,6,36,43,44],write_namelist:2,write_reqhead:2,written:[2,6,21,37,40],wrong:34,www:[42,44],x86_64:9,xvf:[4,13,32,42],xxx:19,xxxx:6,xxxxx:43,xxyymmddhh:2,year:[19,31],yet:43,yield:[2,21],you:[0,3,5,6,9,13,21,24,30,31,32,34,42,43,44],your:[9,24,30,31,32,42,43,44],yourself:24,yymmdd:[6,19],yymmddhh:[6,19,21],yyyymmdd:[2,6,11],yyyymmddhh:[17,19],zamg:[36,44],zero:[17,21,34],zonal:21},titles:["Updating the documentation","Auto-generated documentation for the Fortran programme","Auto-generated documentation for the Python scripts","CONTROL file changes","The compilation job script <code class=\"docutils literal notranslate\"><span class=\"pre\">compilejob.ksh</span></code>","The CONTROL file","The CONTROL parameters","ECMWF user credential file <code class=\"docutils literal notranslate\"><span class=\"pre\">ECMWF_ENV</span></code>","CONTROL file examples","The Fortran makefile for <code class=\"docutils literal notranslate\"><span class=\"pre\">calc_etadot</span></code>","The job script <code class=\"docutils literal notranslate\"><span class=\"pre\">job.ksh</span></code>","The executable script - <code class=\"docutils literal notranslate\"><span class=\"pre\">run.sh</span></code>","The installation script - <code class=\"docutils literal notranslate\"><span class=\"pre\">setup.sh</span></code>","Templates","Application modes","Program flow","Auto-generated documentation","Disaggregation of flux data","Control &amp; input data","Output data","Overview","Vertical wind","Access modes","Link collection","Hints for data set selection","Available data sets for member-state users","Available data sets for public users","Metrics","Static code analysis","Test cases","Gateway mode installation","Local mode installation","Remote mode installation","FAQ - Frequently asked questions","Known Bugs and Issues","Developer Team","Changelog","Developer Guide","Code-Level Documentation","ECMWF Data","Evaluation","Welcome to the <code class=\"docutils literal notranslate\"><span class=\"pre\">flex_extract</span></code> Documentation!","Installation","Usage","Support","ToDos"],titleterms:{"case":29,"class":2,"long":19,"new":[19,36],"public":[26,42,43],"static":28,CDS:[31,34],The:[4,5,6,9,10,11,12],accept:42,access:22,addit:[0,6,19],adjust:43,agreement:[],analysi:28,api:[31,34],applic:[14,15],ask:33,auto:[1,2,16],avail:[24,25,26],block:0,bug:[34,36,44],calc_etadot:[9,19,34],calc_etadot_nml:13,calcul:21,can:[24,33],cera:43,certain:43,chang:[3,36],changelog:36,check:2,code:[28,34,38],collect:23,combin:[42,43],comparison:29,compil:4,compilejob:4,content:[7,11,12,19],continu:21,control:[3,5,6,8,18,43],controlfil:2,convert:[],coordin:[],credenti:7,data:[6,17,18,19,24,25,26,34,39,43],dataset:[42,43],definit:43,depend:[30,31,32,42],destin:34,develop:[35,37],diagramm:0,differ:15,disaggreg:[2,17,19],distribut:33,document:[0,1,2,16,38,41],doe:[4,10],domain:6,download:42,eccod:34,ecflexpart:2,ecmwf:[7,31,39,42],ecmwf_env:[7,13],ensembl:19,environ:[30,31,32],equat:21,era5:34,era:43,error:34,evalu:40,exampl:[4,5,8,10,15],execut:11,faq:[33,44],featur:[36,43],field:[6,17,19],file:[3,5,6,7,8,19,21,29,43],find:24,finder:[],fix:36,flex_extract:[41,42],flexpart:[19,42],flow:15,flux:[6,17,19],forecast:19,format:5,fort:19,fortran:[1,9,19,34,42],frequent:33,from:[21,33],full:42,gatewai:[30,34,43],gener:[1,2,6,15,16],get_mars_data:2,grib:[19,29],gributil:2,guid:37,hint:[24,43],horizont:21,how:24,index:19,input:[18,19],instal:[2,12,30,31,32,33,34,42],installscript:13,interim:43,issu:[34,44],job:[4,10,43],jobscript:13,known:[34,44],ksh:[4,10],level:[25,38],librari:33,licenc:42,line:0,link:23,list:44,local:[15,31,43],mail:44,makefil:9,mar:[19,21,29],marsretriev:2,member:[15,25],metric:27,mode:[14,15,22,30,31,32,43],model:25,modul:2,older:17,onlin:[],oper:43,option:[11,12],other:17,out:24,output:[19,21],overview:20,packag:33,paramet:[6,11,12,21,34,43],parti:33,pre:21,precipit:[17,19],predict:19,prepar:[21,30,31,32,43],prepare_flexpart:2,problem:34,program:[2,15,19,34,42],programm:1,proper:43,pure:[],python:2,question:33,quick:[],registr:42,releas:[34,36],remot:[32,43],report:44,request:[19,29],rest:[],retriev:[],run:11,script:[2,4,10,11,12],section:6,select:[24,43],sequenc:0,set:[15,24,25,26],setup:12,softwar:0,some:[],specif:43,specifi:[],sphinx:0,standard:19,start:[],state:25,submiss:11,submit:[2,11],submitscript:13,support:44,surfac:25,system:[31,44],team:35,temp:[],templat:13,temporari:19,test:[29,30,31,42],testcas:[],third:33,ticket:44,time:6,todo:45,tool:2,uiofil:2,updat:0,usag:[11,12,43],user:[6,7,15,25,26],using:21,veloc:21,version:17,vertic:[6,21],web:31,welcom:41,what:[4,10,24,33],wind:[6,21],workflow:15}})
  • For_developers/Sphinx/Source/Documentation/Input/setup.rst

    r8a53342 r47be2684  
    165165                  [--ecuid ECUID] [--ecgid ECGID] [--gateway GATEWAY]
    166166                  [--destination DESTINATION] [--installdir INSTALLDIR]
     167                  [--sysinstalldir SYSINSTALLDIR]
    167168                  [--job_template JOB_TEMPLATE] [--controlfile CONTROLFILE]
    168169
     
    172173      -h, --help            show this help message and exit
    173174      --target INSTALL_TARGET
    174                             Valid targets: local | ecgate | cca , the latter two
     175                            Valid targets: syslocal | local | ecgate | cca , the latter two
    175176                            are at ECMWF (default: None)
    176177      --makefile MAKEFILE   Name of makefile to compile the Fortran
     
    186187                            Root directory where flex_extract will be installed
    187188                            to. (default: None)
     189      --sysinstalldir SYSINSTALLDIR
     190                            System installation path; where executables are
     191                            stored. (default: None)
    188192      --job_template JOB_TEMPLATE
    189193                            The rudimentary template file to create a batch job
     
    198202
    199203
     204
    200205.. toctree::
    201206    :hidden:
  • For_developers/Sphinx/Source/Installation/local.rst

    r73308e0 r903ed4f  
    266266The Fortran program called ``calc_etadot`` will be compiled during the
    267267installation process. A suitable makefile (``makefile_local_gfortran``) for the compilation is set by default.
    268 This may be overwritten by the ``MAKEFILE`` parameter in ``setup.sh``.
    269 
    270 However, you may have to adapt the makefile for your environment (the current default makefile works on Debian stretch and similar GNU/Linux distributions). If you use a new name for it, you will have to insert it into ``setup.sh``
     268This may be overwritten by the ``MAKEFILE`` parameter in ``setup_local.sh``.
     269
     270However, you may have to adapt the makefile for your environment (the current default makefile works on Debian stretch and similar GNU/Linux distributions). If you use a new name for it, you will have to insert it into ``setup_local.sh``
    271271For details on the makefile and how to adapt them, see :ref:`Fortran Makefile <ref-convert>`.
    272272
    273273 
    274 In the root directory of ``flex_extract``, open the ``setup.sh`` script
     274In the root directory of ``flex_extract``, open the ``setup_local.sh`` script
    275275with an editor and adapt the installation parameters in the section labelled with
    276276"AVAILABLE COMMANDLINE ARGUMENTS TO SET" as shown below:
     
    279279.. code-block:: bash
    280280   :caption: 'Example settings for a local installation.'
    281    :name: setup.sh
     281   :name: setup_local.sh
    282282   
    283283   ...
     
    294294   DESTINATION=None
    295295   INSTALLDIR=None
     296   SYSINSTALLDIR=None
    296297   JOB_TEMPLATE=''
    297298   CONTROLFILE='CONTROL_EA5'
     
    303304.. code-block:: bash
    304305
    305    $ ./setup.sh
     306   $ ./setup_local.sh
    306307   
    307308to start the installation. You should see the following standard output.
     
    310311.. code-block:: bash
    311312
    312     # Output of setup.sh   
     313    # Output of setup_local.sh   
    313314    WARNING: installdir has not been specified
    314315    flex_extract will be installed in here by compiling the Fortran source in <path-to-flex_extract>/flex_extract_v7.1/Source/Fortran
     
    327328    lrwxrwxrwx. 1 <username> tmc 20 Aug 12  10:59 ./calc_etadot -> calc_etadot_fast.out
    328329
     330
     331Local system installation
     332=========================
     333
     334There is also the possibility to separate the software executables from the user application files. For doing so, the ``TARGET`` parameter can be set to "syslocal" and the additional parameter ``SYSINSTALLDIR`` in the ``setup_local.sh`` has to be specified. This new path will contain the Fortran and Python executables of ``flex_extract``. If you chose to set a system path for this, please start the script as root.
     335The user directory for ``flex_extract``, which basically consists of everything except the ``Source`` directory, will be installed into ``INSTALLDIR``.
     336In this installation mode, an extra (hidden) ``.setup.rc`` file will be generated in the ``Run`` directory. It contains the necessary settings for running the local system mode.
     337
     338Despite the change in the ``TARGET`` parameter, the meaning of ``INSTALLDIR`` and the additional ``SYSINSTALLDIR``, the steps for installation are the same as in the local installation mentioned above. For example, modify the ``setup_local.sh`` file as follows:
     339
     340
     341.. code-block:: bash
     342   :caption: 'Example settings for a local system installation.'
     343   :name: setup_local.sh
     344   
     345   ...
     346   # -----------------------------------------------------------------
     347   # AVAILABLE COMMANDLINE ARGUMENTS TO SET
     348   #
     349   # THE USER HAS TO SPECIFY THESE PARAMETER
     350   #
     351   TARGET='syslocal'
     352   MAKEFILE=<name_of_your_makefile>
     353   ECUID=None
     354   ECGID=None
     355   GATEWAY=None
     356   DESTINATION=None
     357   INSTALLDIR=$HOME
     358   SYSINSTALLDIR=/usr/bin/
     359   JOB_TEMPLATE=''
     360   CONTROLFILE='CONTROL_EA5'
     361   ...
     362
     363
     364Afterwards, type:
     365
     366.. code-block:: bash
     367
     368   $ sudo ./setup_local.sh
     369   
     370to start the installation. You should see the following standard output.
     371
     372.. code-block:: bash
     373
     374        Flex_extract will be installed in <$HOME>
     375        Install flex_extract_v7.1.2 software as syslocal in directory /usr/bin/flex_extract_v7.1.2
     376
     377        Using makefile: makefile_local_gfortran
     378        /usr/local/bin/gfortran   -O3 -march=native -L/usr/local/lib64/ -leccodes_f90 -leccodes -lm -lemosR64 -I. -I/usr/local/include/ -fdefault-real-8 -fopenmp -fconvert=big-endian   -c     ./rwgrib2.f90
     379        /usr/local/bin/gfortran   -O3 -march=native -L/usr/local/lib64/ -leccodes_f90 -leccodes -lm -lemosR64 -I. -I/usr/local/include/ -fdefault-real-8 -fopenmp -fconvert=big-endian   -c     ./phgrreal.f90
     380        /usr/local/bin/gfortran   -O3 -march=native -L/usr/local/lib64/ -leccodes_f90 -leccodes -lm -lemosR64 -I. -I/usr/local/include/ -fdefault-real-8 -fopenmp -fconvert=big-endian   -c     ./grphreal.f90
     381        /usr/local/bin/gfortran   -O3 -march=native -L/usr/local/lib64/ -leccodes_f90 -leccodes -lm -lemosR64 -I. -I/usr/local/include/ -fdefault-real-8 -fopenmp -fconvert=big-endian   -c     ./ftrafo.f90
     382        /usr/local/bin/gfortran   -O3 -march=native -L/usr/local/lib64/ -leccodes_f90 -leccodes -lm -lemosR64 -I. -I/usr/local/include/ -fdefault-real-8 -fopenmp -fconvert=big-endian   -c     ./calc_etadot.f90
     383        /usr/local/bin/gfortran   -O3 -march=native -L/usr/local/lib64/ -leccodes_f90 -leccodes -lm -lemosR64 -I. -I/usr/local/include/ -fdefault-real-8 -fopenmp -fconvert=big-endian   -c     ./posnam.f90
     384        /usr/local/bin/gfortran  rwgrib2.o calc_etadot.o ftrafo.o grphreal.o posnam.o phgrreal.o -o calc_etadot_fast.out  -O3 -march=native -L/usr/local/lib64/ -leccodes_f90 -leccodes -lm -lemosR64 -fopenmp
     385        ln -sf calc_etadot_fast.out calc_etadot
     386
     387        lrwxrwxrwx. 1 <username> tmc 20 27. Okt 23:25 ./calc_etadot -> calc_etadot_fast.out
     388        SUCCESS: INSTALLATION FINISHED!
     389
     390
     391You can now change into the user directory specified in ``INSTALLDIR`` and find a ``flex_extract_vX.X`` directory there.
  • README.md

    r0a1d827 r42bc15f  
    33`flex_extract` is a software package to support retrieving meteorological fields from the European Centre for Medium-Range Weather Forecasts' (ECMWF) Meteorological Archival and Retrieval System (MARS) as input for the `FLEXTRA`/`FLEXPART` Atmospheric Transport Modelling system.
    44
    5 `FLEXPART` (“FLEXible PARTicle dispersion model”, http://flexpart.eu) is a Lagrangian transport and dispersion model suitable for the simulation of a large range of atmospheric transport processes.
     5`FLEXPART` ("FLEXible PARTicle dispersion model", http://flexpart.eu) is a Lagrangian transport and dispersion model suitable for the simulation of a large range of atmospheric transport processes.
    66
    77
     
    1717## Authors
    1818
    19 Anne Philipp, Leopold Haimberger and Petra Seibert
     19Anne Tipka (formerly Philipp), Leopold Haimberger and Petra Seibert
    2020
    2121## License
    22     (C) Copyright 2014-2019.
     22    (C) Copyright 2014-2020.
    2323
    2424    SPDX-License-Identifier: CC-BY-4.0
     
    2828    http://creativecommons.org/licenses/by/4.0/ or send a letter to
    2929    Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
     30
  • Run/run_local.sh

    r98f09d2 r47be2684  
    1212#
    1313# @Licence:
    14 #    (C) Copyright 2014-2019.
     14#    (C) Copyright 2014-2020.
    1515#
    1616#    SPDX-License-Identifier: CC-BY-4.0
  • Source/Python/Classes/ControlFile.py

    r0a75335 r75db9b0  
    2121#   June 2020 - Anne Philipp
    2222#        - update default makefile to None
     23#   August 2020 - Leopold Haimberger
     24#        - added a class parameter for system installation path
    2325#
    2426# @License:
     
    404406        self.exedir = _config.PATH_FORTRAN_SRC
    405407        self.installdir = None
     408        self.sysinstalldir = None
    406409        self.makefile = None
    407410        self.destination = None
  • Source/Python/Mods/tools.py

    rf61e1df r75db9b0  
    2222#          put_file_to_ecserver, submit_job_to_ecserver, get_informations,
    2323#          get_dimensions, execute_subprocess, none_or_int, none_or_str
     24#
     25#    August 2020 - Leopold Haimberger (University of Vienna)
     26#        - added function to check if a specific string is in a file
     27#        - added function to overwrite lines in a file which contain specific string
    2428#
    2529# @License:
     
    249253                        type=none_or_str, default=None,
    250254                        help='The name of the ECMWF server name where the'
    251                         'job script is to be submitted ' 
     255                        'job script is to be submitted '
    252256                        '(e.g. ecgate | cca | ccb)')
    253257
     
    624628    '''Creates a directory.
    625629
    626     If the directory already exists, an information is printed and the creation 
     630    If the directory already exists, an information is printed and the creation
    627631    skipped. The program stops only if there is another problem.
    628632
     
    856860    ----------
    857861    cmd_list : list of str
    858         A list of the components for the command line execution. 
    859         They will be concatenated with blank space for the command 
     862        A list of the components for the command line execution.
     863        They will be concatenated with blank space for the command
    860864        to be submitted, like ['mv', file1, file2] for mv file1 file2.
    861865
     
    910914
    911915    return start_period, end_period
     916
     917
     918def check_for_string_in_file(filepath, search_string):
     919    """
     920    Search for a specific string in a file and return True if
     921    the string was found.
     922
     923    Parameters
     924    ----------
     925    filepath : str
     926        The full file path which is to be examined.
     927
     928    search_string : str
     929        The string which is looked up for in the file.
     930
     931    Return
     932    ------
     933    Boolean :
     934        True : String was found
     935        False : String was not found
     936    """
     937    with open(filepath, 'r') as fio:
     938        for line in fio:
     939            if search_string in line:
     940                return True
     941    return False
     942
     943
     944def overwrite_lines_in_file(filepath, search_string, sub_string):
     945    """
     946    Overwrites lines which contain the given search string with the
     947    substitution string.
     948
     949    Parameters
     950    ----------
     951    search_string : str
     952        The string which is looked up for in the file.
     953
     954    sub_string : str
     955        The string which overwrites the search string.
     956
     957    Return
     958    ------
     959    """
     960    with open(filepath, 'r') as fio:
     961        data = fio.readlines()
     962
     963    with open(filepath, 'w') as fio:
     964        for line in data:
     965            if search_string in line:
     966                fio.write(sub_string)
     967            else:
     968                fio.write(line)
     969
     970    return
     971
  • Source/Python/_config.py

    r0a75335 r75db9b0  
    99#      June 2020 - Anne Philipp
    1010#         - changed template filenames to .template
     11#      August 2020 - Leopold Haimberger
     12#         - added another target for installation
     13#         - added filename which will contain paths for system version     
     14#         - checks if software runs in normal local mode or system local mode
     15#           and defines paths to user directory and executable paths   
    1116#
    1217# @License:
     
    3843# ------------------------------------------------------------------------------
    3944
    40 _VERSION_STR = '7.1.2'
     45_VERSION_STR = '7.1.2_ctbto'
    4146
    4247FLAG_ON_ECMWFSERVER = 'ecgb' in platform.node()
     
    4449QUEUES_LIST = ['ecgate', 'cca', 'ccb']
    4550
    46 INSTALL_TARGETS = ['local', 'ecgate', 'cca', 'ccb']
     51INSTALL_TARGETS = ['local', 'syslocal', 'ecgate', 'cca', 'ccb']
    4752
    4853CDS_DATASET_ML = 'reanalysis-era5-complete'
     
    7075FILE_GRIB_INDEX = 'date_time_stepRange.idx'
    7176FILE_GRIBTABLE = 'ecmwf_grib1_table_128'
     77FILE_SYS_CONFIG = '.setup.rc'
    7278
    7379# ------------------------------------------------------------------------------
     
    7985
    8086# ------------------------------------------------------------------------------
    81 PATHES
     87LOAD ENVIRONMENT VARIABLES FOR SYS VERSION; IF NECESSARRY
    8288# ------------------------------------------------------------------------------
    8389
     
    8995if PATH_LOCAL_PYTHON not in sys.path:
    9096    sys.path.append(PATH_LOCAL_PYTHON)
     97
     98# ------------------------------------------------------------------------------
     99#  PATHES
     100# ------------------------------------------------------------------------------
     101
    91102PATH_FLEXEXTRACT_DIR = os.path.normpath(os.path.dirname(os.path.abspath(
    92103    inspect.getfile(inspect.currentframe()))) + '/../../')
     104if not os.path.isdir(os.path.join(PATH_FLEXEXTRACT_DIR,'Run')):
     105    # if it does not exist, we have a system installation in place
     106    # we need to have a sys and user path
     107    # configure correct system path
     108    PATH_SYSTEM_DIR = os.path.join(PATH_FLEXEXTRACT_DIR, FLEXEXTRACT_DIRNAME)
     109    # configure correct user path
     110    PATH_FLEXEXTRACT_DIR = os.environ.get('FLEXEXTRACT_USER_DIR')
     111else:
     112    PATH_SYSTEM_DIR = PATH_FLEXEXTRACT_DIR
     113
    93114PATH_RUN_DIR = os.path.join(PATH_FLEXEXTRACT_DIR, 'Run')
    94 PATH_SOURCES = os.path.join(PATH_FLEXEXTRACT_DIR, 'Source')
     115PATH_SOURCES = os.path.join(PATH_SYSTEM_DIR, 'Source')
    95116PATH_TEMPLATES = os.path.join(PATH_FLEXEXTRACT_DIR, 'Templates')
    96117PATH_ECMWF_ENV = os.path.join(PATH_RUN_DIR, FILE_USER_ENVVARS)
    97118PATH_GRIBTABLE = os.path.join(PATH_TEMPLATES, FILE_GRIBTABLE)
    98119PATH_JOBSCRIPTS = os.path.join(PATH_RUN_DIR, 'Jobscripts')
    99 PATH_FORTRAN_SRC = os.path.join(PATH_SOURCES, 'Fortran')
     120if os.path.isdir(os.path.join(PATH_SYSTEM_DIR,'Fortran')):
     121    PATH_FORTRAN_SRC = PATH_SYSTEM_DIR
     122else:
     123    PATH_FORTRAN_SRC = os.path.join(PATH_SOURCES, 'Fortran')
    100124PATH_PYTHONTEST_SRC = os.path.join(PATH_SOURCES, 'Pythontest')
    101125PATH_INPUT_DIR = os.path.join(PATH_RUN_DIR, INPUT_DIRNAME_DEFAULT)
  • Source/Python/install.py

    r8028176 r75db9b0  
    1919#    June 2020 - Anne Philipp
    2020#        - renamed "convert" functions to "fortran" functions
    21 #        - reconfigured mk_tarball to select *.template files instead 
     21#        - reconfigured mk_tarball to select *.template files instead
    2222#          of *.nl and *.temp
    2323#        - added check for makefile settings
     24#    August 2020 - Leopold Haimberger
     25#        - added a new installation section for system installation (if-else block)
     26#        - read new argument from command line
     27#        - write .setup.rc for a system installation into Run directory
     28#        - copy executables to system path and user files to user path
    2429#
    2530# @License:
     
    7580import subprocess
    7681import tarfile
     82import shutil
    7783from argparse import ArgumentParser, ArgumentDefaultsHelpFormatter
    7884
     
    8288from Classes.UioFiles import UioFiles
    8389from Mods.tools import (make_dir, put_file_to_ecserver, submit_job_to_ecserver,
    84                         silent_remove, execute_subprocess, none_or_str)
     90                        silent_remove, execute_subprocess, none_or_str,
     91                        overwrite_lines_in_file, check_for_string_in_file)
    8592
    8693# ------------------------------------------------------------------------------
     
    103110    check_install_conditions(c)
    104111
    105     if c.install_target.lower() != 'local': # ecgate or cca
     112    if c.install_target.lower() not in ['local', 'syslocal']: # ecgate or cca
    106113        install_via_gateway(c)
    107114    else: # local
    108115        install_local(c)
    109116
     117    print("SUCCESS: INSTALLATION FINISHED!")
     118
    110119    return
    111120
     
    128137    parser.add_argument('--target', dest='install_target',
    129138                        type=none_or_str, default=None,
    130                         help="Valid targets: local | ecgate | cca , \
     139                        help="Valid targets: syslocal | local | ecgate | cca , \
    131140                        the latter two are at ECMWF")
    132141    parser.add_argument("--makefile", dest="makefile",
     
    150159    parser.add_argument("--installdir", dest="installdir",
    151160                        type=none_or_str, default=None,
    152                         help='Root directory of the '
     161                        help='Root (user) directory of the '
    153162                        'flex_extract installation')
     163    parser.add_argument("--sysinstalldir", dest="sysinstalldir",
     164                        type=none_or_str, default=None,
     165                        help='System installation path; where '
     166                        'executables are stored.')
    154167
    155168    # arguments for job submission to ECMWF, only needed by submit.py
     
    228241                            _config.FLEXEXTRACT_DIRNAME + '.tar')
    229242
    230     if c.installdir == _config.PATH_FLEXEXTRACT_DIR:
    231         print('WARNING: installdir has not been specified')
    232         print('flex_extract will be installed in here by compiling the ' +
    233               'Fortran source in ' + _config.PATH_FORTRAN_SRC)
    234         os.chdir(_config.PATH_FORTRAN_SRC)
    235     else: # creates the target working directory for flex_extract
    236         c.installdir = os.path.expandvars(os.path.expanduser(
    237             c.installdir))
    238         if os.path.abspath(_config.PATH_FLEXEXTRACT_DIR) != \
    239            os.path.abspath(c.installdir):
     243    c.installdir = os.path.abspath(os.path.expandvars(os.path.expanduser(
     244                c.installdir)))
     245    c.sysinstalldir = os.path.abspath(os.path.expandvars(os.path.expanduser(
     246        c.sysinstalldir)))
     247
     248    # this is standard installation into a single directory
     249    if c.install_target == 'local':
     250
     251        # installation into the current directory
     252        if os.path.abspath(_config.PATH_FLEXEXTRACT_DIR) == c.installdir:
     253            print('WARNING: installdir has not been specified')
     254            print('flex_extract will be installed in current dir by compiling the ' +
     255                  'Fortran source in ' + _config.PATH_FORTRAN_SRC)
     256            os.chdir(_config.PATH_FORTRAN_SRC)
     257        # installation into a different path
     258        elif os.path.abspath(_config.PATH_FLEXEXTRACT_DIR) != c.installdir :
     259
     260            # creates the target working directory for flex_extract
    240261            mk_tarball(tar_file, c.install_target)
    241262            make_dir(os.path.join(c.installdir,
     
    248269                                  _config.PATH_REL_FORTRAN_SRC))
    249270
    250     # Create Fortran executable
    251     print('Install ' +  _config.FLEXEXTRACT_DIRNAME + ' software at ' +
    252           c.install_target + ' in directory ' +
    253           os.path.abspath(c.installdir) + '\n')
    254 
    255     del_fortran_build('.')
    256     mk_fortran_build('.', c.makefile)
     271        # Create Fortran executable
     272        print('Install ' +  _config.FLEXEXTRACT_DIRNAME + ' software at ' +
     273              c.install_target + ' in directory ' + c.installdir + '\n')
     274
     275        del_fortran_build('.')
     276        mk_fortran_build('.', c.makefile)
     277        os.chdir('../../')
     278        # make sure that the correct calling of submit.py script is in run_local.sh
     279        overwrite_lines_in_file('Run/run_local.sh',
     280                                'pyscript=', 'pyscript=../Source/Python/submit.py\n')
     281
     282    # this is system installation were executables and user files are separated
     283    elif c.install_target == 'syslocal':
     284        if os.path.abspath(_config.PATH_FLEXEXTRACT_DIR) == c.sysinstalldir :
     285            sys.exit('ERROR: System installation path is equal to user '
     286                     'installation path.\n Please change either the system '
     287                     'installation path or use installation target "local".')
     288        if os.path.abspath(_config.PATH_FLEXEXTRACT_DIR) == c.installdir :
     289            print('Flex_extract will be installed in current directory!')
     290        else: # install user part in different dir
     291            print('Flex_extract will be installed in ' + c.installdir )
     292
     293            c.installdir = os.path.join(c.installdir,_config.FLEXEXTRACT_DIRNAME)
     294            if os.path.isdir(c.installdir):
     295                shutil.rmtree(c.installdir)
     296
     297            # copy all files except Python and Fortranfiles to this dir
     298            shutil.copytree(_config.PATH_FLEXEXTRACT_DIR,
     299                            c.installdir, symlinks=True)
     300            shutil.rmtree(os.path.join(c.installdir,'Source'))
     301            shutil.rmtree(os.path.join(c.installdir,'.git'))
     302            for x in UioFiles(c.installdir, '*~').files:
     303                silent_remove(x)
     304
     305            os.remove(os.path.join(c.installdir,'setup.sh'))
     306            os.remove(os.path.join(c.installdir,'setup_local.sh'))
     307
     308        # configure run_local script correctly
     309        # check if source of system config file is already in run_local.sh,
     310        # if not, add it
     311        if not check_for_string_in_file(os.path.join(c.installdir,'Run/run_local.sh'),
     312                                 'source .setup.rc'):
     313            overwrite_lines_in_file(os.path.join(c.installdir,'Run/run_local.sh'),
     314                                    '# PATH TO SUBMISSION SCRIPT',
     315                                    '# PATH TO SUBMISSION SCRIPT\nsource '+_config.FILE_SYS_CONFIG+'\n')
     316        # make sure that the correct calling of submit.py script is in run_local.sh
     317        overwrite_lines_in_file(os.path.join(c.installdir,'Run/run_local.sh'),
     318                                'pyscript=', 'pyscript=submit.py\n')
     319
     320        # change permission for file to executable
     321        execute_subprocess(['chmod', '0775',
     322                            os.path.join(os.path.abspath(c.installdir),'Run/run_local.sh')])
     323
     324
     325        # create systemdir
     326        c.sysinstalldir = os.path.join(c.sysinstalldir,_config.FLEXEXTRACT_DIRNAME)
     327        if os.path.isdir(c.sysinstalldir):
     328            shutil.rmtree(c.sysinstalldir)
     329
     330        # create setup file for running flex_extract with system installation
     331        with open(os.path.join(os.path.abspath(c.installdir),'Run/.setup.rc'),'w') as fio:
     332            fio.write('#!/bin/bash \n')
     333            fio.write('export FLEXEXTRACT_USER_DIR='+os.path.abspath(c.installdir)+'\n')
     334            fio.write('export PATH='+os.path.abspath(c.sysinstalldir)+'/Python:${PATH}\n')
     335            fio.write('export PATH='+os.path.abspath(c.sysinstalldir)+':${PATH}\n')
     336
     337        # copy all Python and Fortranfiles to this dir
     338        shutil.copytree(_config.PATH_SOURCES, c.sysinstalldir, symlinks=True)
     339
     340        os.chdir(os.path.join(c.sysinstalldir,'Fortran'))
     341        # Create Fortran executable
     342        print('Install ' +  _config.FLEXEXTRACT_DIRNAME + ' software as ' +
     343              c.install_target + ' in directory ' +
     344              os.path.abspath(c.sysinstalldir) + '\n')
     345
     346        del_fortran_build('.')
     347        mk_fortran_build('.', c.makefile)
     348
     349        outfile = [x for x in UioFiles('.','*.out').files]
     350        test=os.path.join(c.sysinstalldir,'calc_etadot')
     351        if len(outfile) != 1:
     352            print('WARNING: Multiple executables for Fortran code are available!')
     353        # move executable one dir up and delete Fortran dir
     354        os.chdir('..')
     355        shutil.move(outfile[0], os.path.join(c.sysinstalldir,'calc_etadot'))
     356        shutil.rmtree(os.path.join(os.path.abspath(c.sysinstalldir),'Fortran'))
    257357
    258358    os.chdir(_config.PATH_FLEXEXTRACT_DIR)
     
    289389        sys.exit(1)
    290390
    291     if c.install_target and c.install_target != 'local':
     391    if c.install_target and c.install_target not in ['local', 'syslocal']:
    292392        if not c.ecgid or not c.ecuid:
    293393            print('Please enter your ECMWF user id and group id '
     
    305405        if not c.installdir:
    306406            c.installdir = '${HOME}'
    307     else: # local
     407    elif c.install_target == 'local':
    308408        if not c.installdir:
    309409            c.installdir = _config.PATH_FLEXEXTRACT_DIR
     410    elif c.install_target == 'syslocal':
     411        if not c.installdir:
     412            c.installdir = _config.PATH_FLEXEXTRACT_DIR
     413        if not c.sysinstalldir:
     414            print('ERROR: System installation was selected but '
     415                  'no system installation path was defined.')
     416            sys.exit()
    310417
    311418    if not c.makefile:
     
    323430        else:
    324431            pass
    325        
     432
    326433    return
    327434
     
    715822        print(e)
    716823    else:
    717         execute_subprocess(['ls', '-l', 
     824        execute_subprocess(['ls', '-l',
    718825                            os.path.join(src_path, _config.FORTRAN_EXECUTABLE)],
    719826                           error_msg='FORTRAN EXECUTABLE COULD NOT BE FOUND!')
  • Source/Python/submit.py

    ra916e8f r47be2684  
    114114    else:
    115115        submit(job_template, c, queue)
    116         exit_message = 'FLEX_EXTRACT JOB SCRIPT IS SUBMITED!'
     116        exit_message = 'FLEX_EXTRACT JOB SCRIPT IS SUBMITTED!'
    117117
    118118    normal_exit(exit_message)
  • setup_local.sh

    r98f09d2 r75db9b0  
    1010#    python installation script. It also does some checks to
    1111#    guarantee necessary parameters were set.
     12#
     13# @History:
     14#    Leopold Haimberger; Aug 2020
     15#       added new parameter for a system installation
     16#       (seperate executable and user directories)
    1217#
    1318# @Licence:
     
    3338DESTINATION='<name>@genericSftp'
    3439INSTALLDIR=None
     40SYSINSTALLDIR=None
    3541JOB_TEMPLATE=''
    3642CONTROLFILE='CONTROL_CERA'
     
    7682  parameterlist+=" --makefile=$MAKEFILE"
    7783fi
    78 if [ -n "$FLEXPARTDIR" ]; then # not empty
    79   parameterlist+=" --flexpartdir=$FLEXPARTDIR"
     84if [ -n "$INSTALLDIR" ]; then
     85  parameterlist+=" --installdir=$INSTALLDIR"
     86fi
     87if [ -n "$SYSINSTALLDIR" ]; then
     88  parameterlist+=" --sysinstalldir=$SYSINSTALLDIR"
    8089fi
    8190if [ -n "$JOB_TEMPLATE" ]; then
     
    91100$script $parameterlist
    92101
     102
     103
  • Run/Control/CONTROL_EA5

    r33a4ccc re3c679d  
    2020PREFIX EA
    2121CWC 1
    22 RRINT 1
    2322ECTRANS 1
  • Source/Python/Classes/MarsRetrieval.py

    r0a75335 r6857073  
    505505            newattrs['year'] = date.year
    506506            newattrs['month'] = date.month
    507             newattrs['day'] =  date.day                 
     507            newattrs['day'] =  date.day         
     508 
     509        # need to correct the time appearance for CDS surface field retrievals
     510        if attrs['type'] == 'FC': # for EA5 only flux fields are retrieved as FC type
     511            # need to convert fc start times 06/18 to usual AN times
     512            # since the surface fields can only be accessed through their validity time
     513            start, end, step = map(int,attrs['step'].split('/')[::2])
     514            newattrs['time'] = [ "{0:0=2d}".format(s) for s in range(0,24,step) ]
     515        elif '/' in attrs['time']: # we expect a list of times separated by /
     516            newattrs['time'] = attrs['time'].split('/')
     517        elif isinstance(attrs['time'], str): # we expect a single time here
     518            newattrs['time'] = [ attrs['time'] ]
    508519       
    509520        newattrs['product_type'] = 'reanalysis'
     
    511522        newattrs['grid'] = list(map(float,attrs['grid'].split('/')))
    512523        newattrs['param'] = attrs['param'].split('/')       
    513         newattrs['time'] = list(map(str,range(0,24,3)))
     524        if '/' in attrs['step']:
     525            sstep = int(attrs['step'].split('/')[4])
     526            newattrs['time'] = list(map(str,range(0,24,sstep)))             
     527        elif '160.128' in attrs['param']:
     528            newattrs['time'] = attrs['time']
    514529        newattrs['format'] = 'grib'
    515530               
Note: See TracChangeset for help on using the changeset viewer.
hosted by ZAMG