Changeset eca358d in flex_extract.git for Documentation/html/_modules


Ignore:
Timestamp:
Feb 1, 2020, 9:32:17 PM (4 years ago)
Author:
Anne Philipp <anne.philipp@…>
Branches:
master, ctbto, dev
Children:
072cbea
Parents:
53d3b2a
Message:

updated online documentation with links on index page

Location:
Documentation/html/_modules
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • Documentation/html/_modules/ControlFile.html

    r30f7911 reca358d  
    200200
    201201<span class="kn">import</span> <span class="nn">os</span>
    202 <span class="kn">import</span> <span class="nn">re</span>
    203202<span class="kn">import</span> <span class="nn">sys</span>
    204 <span class="kn">import</span> <span class="nn">inspect</span>
    205203
    206204<span class="c1"># software specific classes and modules from flex_extract</span>
     205<span class="c1">#pylint: disable=wrong-import-position</span>
    207206<span class="n">sys</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;../&#39;</span><span class="p">)</span>
    208207<span class="kn">import</span> <span class="nn">_config</span>
    209 <span class="kn">from</span> <span class="nn">Mods.tools</span> <span class="k">import</span> <span class="n">my_error</span><span class="p">,</span> <span class="n">silent_remove</span>
     208<span class="kn">from</span> <span class="nn">Mods.tools</span> <span class="k">import</span> <span class="n">my_error</span>
    210209<span class="kn">from</span> <span class="nn">Mods.checks</span> <span class="k">import</span> <span class="p">(</span><span class="n">check_grid</span><span class="p">,</span> <span class="n">check_area</span><span class="p">,</span> <span class="n">check_levels</span><span class="p">,</span> <span class="n">check_purefc</span><span class="p">,</span>
    211210                         <span class="n">check_step</span><span class="p">,</span> <span class="n">check_mail</span><span class="p">,</span> <span class="n">check_queue</span><span class="p">,</span> <span class="n">check_pathes</span><span class="p">,</span>
     
    215214                         <span class="n">check_logicals_type</span><span class="p">,</span> <span class="n">check_len_type_time_step</span><span class="p">,</span>
    216215                         <span class="n">check_addpar</span><span class="p">,</span> <span class="n">check_job_chunk</span><span class="p">,</span> <span class="n">check_number</span><span class="p">)</span>
     216<span class="c1">#pylint: enable=wrong-import-position</span>
    217217
    218218<span class="c1"># ------------------------------------------------------------------------------</span>
     
    227227<span class="sd">    from the MARS archive for driving FLEXPART are set in a CONTROL file.</span>
    228228<span class="sd">    Some specific parameters like the start and end dates can be overwritten</span>
    229 <span class="sd">    by the command line parameters, but in generel all parameters needed</span>
     229<span class="sd">    by the command line parameters, but in generall all parameters needed</span>
    230230<span class="sd">    for a complete set of fields for FLEXPART can be set in the CONTROL file.</span>
    231231
     
    400400<span class="sd">        Default value is [&#39;${USER}&#39;].</span>
    401401
    402 <span class="sd">    grib2flexpart : int 0</span>
    403 <span class="sd">        Switch to select generation of preprocessed FLEXPART files &quot;.fp&quot;.</span>
    404 <span class="sd">        If it is selected, the program grib2flexpart will try</span>
    405 <span class="sd">        to convert the flex_extract output files into &quot;.fp&quot; format.</span>
    406 
    407402<span class="sd">    ecstorage : int</span>
    408403<span class="sd">        Switch to select storage of FLEXPART ready output files</span>
     
    496491<span class="sd">        List of the names of logical switches which controls the flow</span>
    497492<span class="sd">        of the program. Default list is [&#39;gauss&#39;, &#39;omega&#39;, &#39;omegadiff&#39;, &#39;eta&#39;,</span>
    498 <span class="sd">        &#39;etadiff&#39;, &#39;dpdeta&#39;, &#39;cwc&#39;, &#39;wrf&#39;, &#39;grib2flexpart&#39;, &#39;ecstorage&#39;,</span>
     493<span class="sd">        &#39;etadiff&#39;, &#39;dpdeta&#39;, &#39;cwc&#39;, &#39;wrf&#39;, &#39;ecstorage&#39;,</span>
    499494<span class="sd">        &#39;ectrans&#39;, &#39;debug&#39;, &#39;request&#39;, &#39;public&#39;, &#39;purefc&#39;, &#39;rrint&#39;, &#39;doubleelda&#39;]</span>
    500495<span class="sd">    &#39;&#39;&#39;</span>
     
    562557        <span class="bp">self</span><span class="o">.</span><span class="n">mailfail</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;$</span><span class="si">{USER}</span><span class="s1">&#39;</span><span class="p">]</span>
    563558        <span class="bp">self</span><span class="o">.</span><span class="n">mailops</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;$</span><span class="si">{USER}</span><span class="s1">&#39;</span><span class="p">]</span>
    564         <span class="bp">self</span><span class="o">.</span><span class="n">grib2flexpart</span> <span class="o">=</span> <span class="mi">0</span>
    565559        <span class="bp">self</span><span class="o">.</span><span class="n">ecstorage</span> <span class="o">=</span> <span class="mi">0</span>
    566560        <span class="bp">self</span><span class="o">.</span><span class="n">ectrans</span> <span class="o">=</span> <span class="mi">0</span>
     
    587581
    588582        <span class="bp">self</span><span class="o">.</span><span class="n">logicals</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;gauss&#39;</span><span class="p">,</span> <span class="s1">&#39;omega&#39;</span><span class="p">,</span> <span class="s1">&#39;omegadiff&#39;</span><span class="p">,</span> <span class="s1">&#39;eta&#39;</span><span class="p">,</span> <span class="s1">&#39;etadiff&#39;</span><span class="p">,</span>
    589                          <span class="s1">&#39;dpdeta&#39;</span><span class="p">,</span> <span class="s1">&#39;cwc&#39;</span><span class="p">,</span> <span class="s1">&#39;wrf&#39;</span><span class="p">,</span> <span class="s1">&#39;grib2flexpart&#39;</span><span class="p">,</span> <span class="s1">&#39;ecstorage&#39;</span><span class="p">,</span>
     583                         <span class="s1">&#39;dpdeta&#39;</span><span class="p">,</span> <span class="s1">&#39;cwc&#39;</span><span class="p">,</span> <span class="s1">&#39;wrf&#39;</span><span class="p">,</span> <span class="s1">&#39;ecstorage&#39;</span><span class="p">,</span>
    590584                         <span class="s1">&#39;ectrans&#39;</span><span class="p">,</span> <span class="s1">&#39;debug&#39;</span><span class="p">,</span> <span class="s1">&#39;oper&#39;</span><span class="p">,</span> <span class="s1">&#39;request&#39;</span><span class="p">,</span> <span class="s1">&#39;public&#39;</span><span class="p">,</span>
    591585                         <span class="s1">&#39;purefc&#39;</span><span class="p">,</span> <span class="s1">&#39;rrint&#39;</span><span class="p">,</span> <span class="s1">&#39;doubleelda&#39;</span><span class="p">]</span>
     
    764758
    765759        <span class="bp">self</span><span class="o">.</span><span class="n">outputdir</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">installdir</span> <span class="o">=</span> <span class="n">check_pathes</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">inputdir</span><span class="p">,</span>
    766              <span class="bp">self</span><span class="o">.</span><span class="n">outputdir</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">installdir</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">flexextractdir</span><span class="p">)</span>
     760                                                       <span class="bp">self</span><span class="o">.</span><span class="n">outputdir</span><span class="p">,</span>
     761                                                       <span class="bp">self</span><span class="o">.</span><span class="n">installdir</span><span class="p">,</span>
     762                                                       <span class="bp">self</span><span class="o">.</span><span class="n">flexextractdir</span><span class="p">)</span>
    767763
    768764        <span class="bp">self</span><span class="o">.</span><span class="n">start_date</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">end_date</span> <span class="o">=</span> <span class="n">check_dates</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">start_date</span><span class="p">,</span>
     
    773769        <span class="bp">self</span><span class="o">.</span><span class="n">levelist</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">level</span> <span class="o">=</span> <span class="n">check_levels</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">levelist</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">level</span><span class="p">)</span>
    774770
    775         <span class="bp">self</span><span class="o">.</span><span class="n">step</span> <span class="o">=</span> <span class="n">check_step</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">step</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">mailfail</span><span class="p">)</span>
     771        <span class="bp">self</span><span class="o">.</span><span class="n">step</span> <span class="o">=</span> <span class="n">check_step</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">step</span><span class="p">)</span>
    776772
    777773        <span class="bp">self</span><span class="o">.</span><span class="n">maxstep</span> <span class="o">=</span> <span class="n">check_maxstep</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">maxstep</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">step</span><span class="p">)</span>
     
    811807        <span class="bp">self</span><span class="o">.</span><span class="n">job_chunk</span> <span class="o">=</span> <span class="n">check_job_chunk</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">job_chunk</span><span class="p">)</span>
    812808
    813         <span class="bp">self</span><span class="o">.</span><span class="n">number</span> <span class="o">=</span> <span class="n">check_number</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">number</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">mailfail</span><span class="p">)</span>
     809        <span class="bp">self</span><span class="o">.</span><span class="n">number</span> <span class="o">=</span> <span class="n">check_number</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">number</span><span class="p">)</span>
    814810
    815811        <span class="k">return</span></div>
     
    857853
    858854        <span class="k">return</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">l</span><span class="p">)</span></div></div>
    859 
    860855</pre></div>
    861856
  • Documentation/html/_modules/EcFlexpart.html

    r30f7911 reca358d  
    215215<span class="c1">#pylint: disable=consider-using-enumerate</span>
    216216<span class="c1"># this is not useful in this case</span>
     217<span class="c1">#pylint: disable=unsubscriptable-object</span>
     218<span class="c1"># this error is a bug</span>
     219<span class="c1">#pylint: disable=ungrouped-imports</span>
     220<span class="c1"># not necessary that we group the imports</span>
    217221<span class="c1"># ------------------------------------------------------------------------------</span>
    218222<span class="c1"># MODULES</span>
     
    224228<span class="kn">import</span> <span class="nn">glob</span>
    225229<span class="kn">import</span> <span class="nn">shutil</span>
    226 <span class="kn">import</span> <span class="nn">subprocess</span>
    227230<span class="kn">from</span> <span class="nn">datetime</span> <span class="k">import</span> <span class="n">datetime</span><span class="p">,</span> <span class="n">timedelta</span>
    228231
    229232<span class="c1"># software specific classes and modules from flex_extract</span>
     233<span class="c1">#pylint: disable=wrong-import-position</span>
    230234<span class="n">sys</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;../&#39;</span><span class="p">)</span>
    231235<span class="kn">import</span> <span class="nn">_config</span>
    232236<span class="kn">from</span> <span class="nn">Classes.GribUtil</span> <span class="k">import</span> <span class="n">GribUtil</span>
    233237<span class="kn">from</span> <span class="nn">Mods.tools</span> <span class="k">import</span> <span class="p">(</span><span class="n">init128</span><span class="p">,</span> <span class="n">to_param_id</span><span class="p">,</span> <span class="n">silent_remove</span><span class="p">,</span> <span class="n">product</span><span class="p">,</span>
    234                         <span class="n">my_error</span><span class="p">,</span> <span class="n">make_dir</span><span class="p">,</span> <span class="n">get_informations</span><span class="p">,</span> <span class="n">get_dimensions</span><span class="p">,</span>
     238                        <span class="n">my_error</span><span class="p">,</span> <span class="n">get_informations</span><span class="p">,</span> <span class="n">get_dimensions</span><span class="p">,</span>
    235239                        <span class="n">execute_subprocess</span><span class="p">,</span> <span class="n">to_param_id_with_tablenumber</span><span class="p">,</span>
    236240                        <span class="n">generate_retrieval_period_boundary</span><span class="p">)</span>
     
    238242<span class="kn">from</span> <span class="nn">Classes.UioFiles</span> <span class="k">import</span> <span class="n">UioFiles</span>
    239243<span class="kn">import</span> <span class="nn">Mods.disaggregation</span> <span class="k">as</span> <span class="nn">disaggregation</span>
    240 
     244<span class="c1">#pylint: enable=wrong-import-position</span>
    241245<span class="c1"># ------------------------------------------------------------------------------</span>
    242246<span class="c1"># CLASS</span>
     
    479483
    480484<span class="sd">        &#39;&#39;&#39;</span>
     485        <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">purefc</span><span class="p">:</span>
     486            <span class="c1"># need to retrieve forecasts for step 000 in case of pure forecast</span>
     487            <span class="n">steps</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{}</span><span class="s1">/to/</span><span class="si">{}</span><span class="s1">/by/</span><span class="si">{}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">accmaxstep</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">dtime</span><span class="p">)</span>
     488        <span class="k">else</span><span class="p">:</span>
     489            <span class="n">steps</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{}</span><span class="s1">/to/</span><span class="si">{}</span><span class="s1">/by/</span><span class="si">{}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">dtime</span><span class="p">,</span>
     490                                            <span class="bp">self</span><span class="o">.</span><span class="n">accmaxstep</span><span class="p">,</span>
     491                                            <span class="bp">self</span><span class="o">.</span><span class="n">dtime</span><span class="p">)</span>
     492
    481493        <span class="bp">self</span><span class="o">.</span><span class="n">types</span><span class="p">[</span><span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">acctype</span><span class="p">)]</span> <span class="o">=</span> <span class="p">{</span><span class="s1">&#39;times&#39;</span><span class="p">:</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">acctime</span><span class="p">),</span>
    482                                          <span class="s1">&#39;steps&#39;</span><span class="p">:</span> <span class="s1">&#39;</span><span class="si">{}</span><span class="s1">/to/</span><span class="si">{}</span><span class="s1">/by/</span><span class="si">{}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span>
    483                                              <span class="bp">self</span><span class="o">.</span><span class="n">dtime</span><span class="p">,</span>
    484                                              <span class="bp">self</span><span class="o">.</span><span class="n">accmaxstep</span><span class="p">,</span>
    485                                              <span class="bp">self</span><span class="o">.</span><span class="n">dtime</span><span class="p">)}</span>
     494                                         <span class="s1">&#39;steps&#39;</span><span class="p">:</span> <span class="n">steps</span><span class="p">}</span>
    486495        <span class="k">return</span>
    487496
     
    563572        <span class="k">else</span><span class="p">:</span>  <span class="c1"># GAUSS and ETA</span>
    564573            <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Warning: Collecting etadot and parameters for gaussian grid &#39;</span>
    565                            <span class="s1">&#39;is a very costly parameter combination, &#39;</span>
    566                            <span class="s1">&#39;use this combination only for debugging!&#39;</span><span class="p">)</span>
     574                  <span class="s1">&#39;is a very costly parameter combination, &#39;</span>
     575                  <span class="s1">&#39;use this combination only for debugging!&#39;</span><span class="p">)</span>
    567576            <span class="bp">self</span><span class="o">.</span><span class="n">params</span><span class="p">[</span><span class="s1">&#39;GG__SL&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;Q&#39;</span><span class="p">,</span> <span class="s1">&#39;ML&#39;</span><span class="p">,</span> <span class="s1">&#39;1&#39;</span><span class="p">,</span>
    568577                                     <span class="s1">&#39;</span><span class="si">{}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">((</span><span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">resol</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="o">//</span> <span class="mi">2</span><span class="p">)]</span>
     
    577586
    578587        <span class="c1"># ADDITIONAL FIELDS FOR FLEXPART-WRF MODEL (IF QUESTIONED)</span>
    579         <span class="c1"># -----------------------------------------------------------------------</span>
     588        <span class="c1"># ----------------------------------------------------------------------</span>
    580589        <span class="k">if</span> <span class="n">wrf</span><span class="p">:</span>
    581590            <span class="c1"># @WRF</span>
     
    872881                    <span class="n">retr_param_dict</span><span class="p">[</span><span class="s1">&#39;date&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dates</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
    873882                    <span class="n">retr_param_dict</span><span class="p">[</span><span class="s1">&#39;target&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_mk_targetname</span><span class="p">(</span><span class="s1">&#39;&#39;</span><span class="p">,</span>
    874                                             <span class="n">pk</span><span class="p">,</span> <span class="n">retr_param_dict</span><span class="p">[</span><span class="s1">&#39;date&#39;</span><span class="p">])</span>
     883                                                                    <span class="n">pk</span><span class="p">,</span>
     884                                                                    <span class="n">retr_param_dict</span><span class="p">[</span><span class="s1">&#39;date&#39;</span><span class="p">])</span>
    875885                <span class="k">elif</span> <span class="n">pk</span> <span class="o">==</span> <span class="s1">&#39;OG_OROLSM__SL&#39;</span> <span class="ow">and</span> <span class="n">oro</span><span class="p">:</span>
    876886                    <span class="k">continue</span>
     
    914924                        <span class="k">if</span> <span class="s1">&#39;acc&#39;</span> <span class="ow">in</span> <span class="n">pk</span><span class="p">:</span>
    915925                            <span class="n">startdate</span> <span class="o">=</span> <span class="n">retr_param_dict</span><span class="p">[</span><span class="s1">&#39;date&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
    916                             <span class="n">enddate</span> <span class="o">=</span> <span class="n">datetime</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="n">elimit</span> <span class="o">-</span> <span class="n">t24h</span><span class="p">,</span><span class="s1">&#39;%Y%m</span><span class="si">%d</span><span class="s1">&#39;</span><span class="p">)</span>
     926                            <span class="n">enddate</span> <span class="o">=</span> <span class="n">datetime</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="n">elimit</span> <span class="o">-</span> <span class="n">t24h</span><span class="p">,</span> <span class="s1">&#39;%Y%m</span><span class="si">%d</span><span class="s1">&#39;</span><span class="p">)</span>
    917927                            <span class="n">retr_param_dict</span><span class="p">[</span><span class="s1">&#39;date&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;/&#39;</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="n">startdate</span><span class="p">,</span>
    918928                                                                <span class="s1">&#39;to&#39;</span><span class="p">,</span>
     
    938948
    939949                    <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">basetime</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
    940                         <span class="n">retr_param_dict</span><span class="p">[</span><span class="s1">&#39;date&#39;</span><span class="p">]</span> <span class="o">=</span> \
    941                             <span class="n">datetime</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="n">elimit</span> <span class="o">-</span> <span class="n">t24h</span><span class="p">,</span> <span class="s1">&#39;%Y%m</span><span class="si">%d</span><span class="s1">&#39;</span><span class="p">)</span>
     950<span class="c1">#                        retr_param_dict[&#39;date&#39;] = \</span>
     951<span class="c1">#                            datetime.strftime(elimit - t24h, &#39;%Y%m%d&#39;)</span>
    942952
    943953                        <span class="n">timesave</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">retr_param_dict</span><span class="p">[</span><span class="s1">&#39;time&#39;</span><span class="p">])</span>
    944954
    945                         <span class="k">if</span> <span class="p">(</span><span class="s1">&#39;/&#39;</span> <span class="ow">in</span> <span class="n">retr_param_dict</span><span class="p">[</span><span class="s1">&#39;time&#39;</span><span class="p">]</span> <span class="ow">and</span>
    946                             <span class="n">pk</span> <span class="o">!=</span> <span class="s1">&#39;OG_OROLSM__SL&#39;</span> <span class="ow">and</span>
    947                             <span class="s1">&#39;acc&#39;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">pk</span> <span class="p">)</span> <span class="p">:</span>
     955                        <span class="k">if</span> <span class="nb">all</span><span class="p">([</span><span class="s1">&#39;/&#39;</span> <span class="ow">in</span> <span class="n">retr_param_dict</span><span class="p">[</span><span class="s1">&#39;time&#39;</span><span class="p">],</span>
     956                                <span class="n">pk</span> <span class="o">!=</span> <span class="s1">&#39;OG_OROLSM__SL&#39;</span><span class="p">,</span>
     957                                <span class="s1">&#39;acc&#39;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">pk</span><span class="p">]):</span>
    948958                            <span class="n">times</span> <span class="o">=</span> <span class="n">retr_param_dict</span><span class="p">[</span><span class="s1">&#39;time&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">)</span>
    949959                            <span class="n">steps</span> <span class="o">=</span> <span class="n">retr_param_dict</span><span class="p">[</span><span class="s1">&#39;step&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">)</span>
     
    956966                                    <span class="n">retr_param_dict</span><span class="p">[</span><span class="s1">&#39;time&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">times</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
    957967
    958                         <span class="k">if</span> <span class="p">(</span><span class="n">pk</span> <span class="o">!=</span> <span class="s1">&#39;OG_OROLSM__SL&#39;</span> <span class="ow">and</span>
    959                             <span class="nb">int</span><span class="p">(</span><span class="n">retr_param_dict</span><span class="p">[</span><span class="s1">&#39;step&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">])</span> <span class="o">==</span> <span class="mi">0</span> <span class="ow">and</span>
    960                             <span class="nb">int</span><span class="p">(</span><span class="n">timesave</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">])</span> <span class="o">==</span> <span class="mi">0</span><span class="p">):</span>
     968                        <span class="k">if</span> <span class="nb">all</span><span class="p">([</span><span class="n">pk</span> <span class="o">!=</span> <span class="s1">&#39;OG_OROLSM__SL&#39;</span><span class="p">,</span>
     969                                <span class="nb">int</span><span class="p">(</span><span class="n">retr_param_dict</span><span class="p">[</span><span class="s1">&#39;step&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">])</span> <span class="o">==</span> <span class="mi">0</span><span class="p">,</span>
     970                                <span class="nb">int</span><span class="p">(</span><span class="n">timesave</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">])</span> <span class="o">==</span> <span class="mi">0</span><span class="p">]):</span>
    961971
    962972                            <span class="n">retr_param_dict</span><span class="p">[</span><span class="s1">&#39;date&#39;</span><span class="p">]</span> <span class="o">=</span> \
     
    972982                    <span class="k">else</span><span class="p">:</span>
    973983                        <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s1">&#39;ERROR: Basetime has an invalid value &#39;</span>
    974                                                  <span class="s1">&#39;-&gt; </span><span class="si">{}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">basetime</span><span class="p">)))</span>
     984                                         <span class="s1">&#39;-&gt; </span><span class="si">{}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">basetime</span><span class="p">)))</span>
    975985
    976986        <span class="k">if</span> <span class="n">request</span> <span class="o">==</span> <span class="mi">0</span> <span class="ow">or</span> <span class="n">request</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span>
     
    10221032
    10231033            <span class="n">stream</span> <span class="o">=</span> <span class="n">namelist_template</span><span class="o">.</span><span class="n">generate</span><span class="p">(</span>
    1024                 <span class="n">maxl</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">maxl</span><span class="p">),</span>
    1025                 <span class="n">maxb</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">maxb</span><span class="p">),</span>
    1026                 <span class="n">mlevel</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">level</span><span class="p">),</span>
    1027                 <span class="n">mlevelist</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">levelist</span><span class="p">),</span>
    1028                 <span class="n">mnauf</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">resol</span><span class="p">),</span>
    1029                 <span class="n">metapar</span> <span class="o">=</span> <span class="s1">&#39;77&#39;</span><span class="p">,</span>
    1030                 <span class="n">rlo0</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">area</span><span class="p">[</span><span class="mi">1</span><span class="p">]),</span>
    1031                 <span class="n">rlo1</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">area</span><span class="p">[</span><span class="mi">3</span><span class="p">]),</span>
    1032                 <span class="n">rla0</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">area</span><span class="p">[</span><span class="mi">2</span><span class="p">]),</span>
    1033                 <span class="n">rla1</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">area</span><span class="p">[</span><span class="mi">0</span><span class="p">]),</span>
    1034                 <span class="n">momega</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">omega</span><span class="p">),</span>
    1035                 <span class="n">momegadiff</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">omegadiff</span><span class="p">),</span>
    1036                 <span class="n">mgauss</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">gauss</span><span class="p">),</span>
    1037                 <span class="n">msmooth</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">smooth</span><span class="p">),</span>
    1038                 <span class="n">meta</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">eta</span><span class="p">),</span>
    1039                 <span class="n">metadiff</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">etadiff</span><span class="p">),</span>
    1040                 <span class="n">mdpdeta</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">dpdeta</span><span class="p">)</span>
     1034                <span class="n">maxl</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">maxl</span><span class="p">),</span>
     1035                <span class="n">maxb</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">maxb</span><span class="p">),</span>
     1036                <span class="n">mlevel</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">level</span><span class="p">),</span>
     1037                <span class="n">mlevelist</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">levelist</span><span class="p">),</span>
     1038                <span class="n">mnauf</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">resol</span><span class="p">),</span>
     1039                <span class="n">metapar</span><span class="o">=</span><span class="s1">&#39;77&#39;</span><span class="p">,</span>
     1040                <span class="n">rlo0</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">area</span><span class="p">[</span><span class="mi">1</span><span class="p">]),</span>
     1041                <span class="n">rlo1</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">area</span><span class="p">[</span><span class="mi">3</span><span class="p">]),</span>
     1042                <span class="n">rla0</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">area</span><span class="p">[</span><span class="mi">2</span><span class="p">]),</span>
     1043                <span class="n">rla1</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">area</span><span class="p">[</span><span class="mi">0</span><span class="p">]),</span>
     1044                <span class="n">momega</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">omega</span><span class="p">),</span>
     1045                <span class="n">momegadiff</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">omegadiff</span><span class="p">),</span>
     1046                <span class="n">mgauss</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">gauss</span><span class="p">),</span>
     1047                <span class="n">msmooth</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">smooth</span><span class="p">),</span>
     1048                <span class="n">meta</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">eta</span><span class="p">),</span>
     1049                <span class="n">metadiff</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">etadiff</span><span class="p">),</span>
     1050                <span class="n">mdpdeta</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">dpdeta</span><span class="p">)</span>
    10411051            <span class="p">)</span>
    10421052        <span class="k">except</span> <span class="n">UndefinedError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
     
    10901100<span class="sd">        &#39;&#39;&#39;</span>
    10911101        <span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
    1092         <span class="kn">from</span> <span class="nn">eccodes</span> <span class="k">import</span> <span class="p">(</span><span class="n">codes_index_select</span><span class="p">,</span> <span class="n">codes_new_from_index</span><span class="p">,</span> <span class="n">codes_get</span><span class="p">,</span>
     1102        <span class="kn">from</span> <span class="nn">eccodes</span> <span class="k">import</span> <span class="p">(</span><span class="n">codes_index_select</span><span class="p">,</span> <span class="n">codes_get</span><span class="p">,</span>
    10931103                             <span class="n">codes_get_values</span><span class="p">,</span> <span class="n">codes_set_values</span><span class="p">,</span> <span class="n">codes_set</span><span class="p">,</span>
    10941104                             <span class="n">codes_write</span><span class="p">,</span> <span class="n">codes_release</span><span class="p">,</span> <span class="n">codes_new_from_index</span><span class="p">,</span>
     
    12151225            <span class="n">step</span> <span class="o">=</span> <span class="n">codes_get</span><span class="p">(</span><span class="n">gid</span><span class="p">,</span> <span class="s1">&#39;step&#39;</span><span class="p">)</span> <span class="c1"># integer</span>
    12161226            <span class="n">ctime</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{:0&gt;2}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">time</span><span class="p">)</span>
    1217             <span class="n">cstep</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{:0&gt;3}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">step</span><span class="p">)</span>
    12181227
    12191228            <span class="n">t_date</span> <span class="o">=</span> <span class="n">datetime</span><span class="o">.</span><span class="n">strptime</span><span class="p">(</span><span class="n">cdate</span> <span class="o">+</span> <span class="n">ctime</span><span class="p">,</span> <span class="s1">&#39;%Y%m</span><span class="si">%d</span><span class="s1">%H&#39;</span><span class="p">)</span>
     
    12941303                    <span class="n">deac_vals</span><span class="p">[</span><span class="n">parId</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
    12951304                        <span class="p">(</span><span class="n">orig_vals</span><span class="p">[</span><span class="n">parId</span><span class="p">][</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="n">orig_vals</span><span class="p">[</span><span class="n">parId</span><span class="p">][</span><span class="o">-</span><span class="mi">2</span><span class="p">])</span> <span class="o">/</span>
    1296                          <span class="nb">int</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">dtime</span><span class="p">))</span>
     1305                        <span class="nb">int</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">dtime</span><span class="p">))</span>
    12971306
    12981307                <span class="c1"># store precipitation if new disaggregation method is selected</span>
     
    14941503            <span class="k">for</span> <span class="n">inum</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">maxnum</span><span class="p">):</span>
    14951504                <span class="k">for</span> <span class="n">ix</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">ni</span><span class="o">*</span><span class="n">nj</span><span class="p">):</span>
    1496                     <span class="n">lsp_new_np</span><span class="p">[</span><span class="n">inum</span><span class="p">,</span><span class="n">ix</span><span class="p">,:]</span> <span class="o">=</span> <span class="n">disaggregation</span><span class="o">.</span><span class="n">IA3</span><span class="p">(</span><span class="n">lsp_np</span><span class="p">[</span><span class="n">inum</span><span class="p">,</span><span class="n">ix</span><span class="p">,:])[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
    1497                     <span class="n">cp_new_np</span><span class="p">[</span><span class="n">inum</span><span class="p">,</span><span class="n">ix</span><span class="p">,:]</span> <span class="o">=</span> <span class="n">disaggregation</span><span class="o">.</span><span class="n">IA3</span><span class="p">(</span><span class="n">cp_np</span><span class="p">[</span><span class="n">inum</span><span class="p">,</span><span class="n">ix</span><span class="p">,:])[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
     1505                    <span class="n">lsp_new_np</span><span class="p">[</span><span class="n">inum</span><span class="p">,</span> <span class="n">ix</span><span class="p">,</span> <span class="p">:]</span> <span class="o">=</span> <span class="n">disaggregation</span><span class="o">.</span><span class="n">IA3</span><span class="p">(</span><span class="n">lsp_np</span><span class="p">[</span><span class="n">inum</span><span class="p">,</span> <span class="n">ix</span><span class="p">,</span> <span class="p">:])[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
     1506                    <span class="n">cp_new_np</span><span class="p">[</span><span class="n">inum</span><span class="p">,</span> <span class="n">ix</span><span class="p">,</span> <span class="p">:]</span> <span class="o">=</span> <span class="n">disaggregation</span><span class="o">.</span><span class="n">IA3</span><span class="p">(</span><span class="n">cp_np</span><span class="p">[</span><span class="n">inum</span><span class="p">,</span> <span class="n">ix</span><span class="p">,</span> <span class="p">:])[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
    14981507        <span class="k">else</span><span class="p">:</span>
    14991508            <span class="k">for</span> <span class="n">ix</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">ni</span><span class="o">*</span><span class="n">nj</span><span class="p">):</span>
    1500                 <span class="n">lsp_new_np</span><span class="p">[</span><span class="mi">0</span><span class="p">,</span><span class="n">ix</span><span class="p">,:]</span> <span class="o">=</span> <span class="n">disaggregation</span><span class="o">.</span><span class="n">IA3</span><span class="p">(</span><span class="n">lsp_np</span><span class="p">[</span><span class="n">ix</span><span class="p">,:])[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
    1501                 <span class="n">cp_new_np</span><span class="p">[</span><span class="mi">0</span><span class="p">,</span><span class="n">ix</span><span class="p">,:]</span> <span class="o">=</span> <span class="n">disaggregation</span><span class="o">.</span><span class="n">IA3</span><span class="p">(</span><span class="n">cp_np</span><span class="p">[</span><span class="n">ix</span><span class="p">,:])[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
     1509                <span class="n">lsp_new_np</span><span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="n">ix</span><span class="p">,</span> <span class="p">:]</span> <span class="o">=</span> <span class="n">disaggregation</span><span class="o">.</span><span class="n">IA3</span><span class="p">(</span><span class="n">lsp_np</span><span class="p">[</span><span class="n">ix</span><span class="p">,</span> <span class="p">:])[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
     1510                <span class="n">cp_new_np</span><span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="n">ix</span><span class="p">,</span> <span class="p">:]</span> <span class="o">=</span> <span class="n">disaggregation</span><span class="o">.</span><span class="n">IA3</span><span class="p">(</span><span class="n">cp_np</span><span class="p">[</span><span class="n">ix</span><span class="p">,</span> <span class="p">:])[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
    15021511
    15031512        <span class="c1"># write to grib files (full/orig times to flux file and inbetween</span>
     
    15641573            <span class="c1"># write original time step to flux file as usual</span>
    15651574            <span class="n">fluxfile</span> <span class="o">=</span> <span class="n">GribUtil</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">inputdir</span><span class="p">,</span> <span class="n">fluxfilename</span><span class="p">))</span>
    1566             <span class="n">fluxfile</span><span class="o">.</span><span class="n">set_keys</span><span class="p">(</span><span class="n">tmpfile</span><span class="p">,</span> <span class="n">filemode</span><span class="o">=</span><span class="s1">&#39;ab&#39;</span><span class="p">,</span> <span class="n">strict</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
     1575            <span class="n">fluxfile</span><span class="o">.</span><span class="n">set_keys</span><span class="p">(</span><span class="n">tmpfile</span><span class="p">,</span> <span class="n">filemode</span><span class="o">=</span><span class="s1">&#39;ab&#39;</span><span class="p">,</span>
    15671576                              <span class="n">wherekeynames</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;paramId&#39;</span><span class="p">],</span> <span class="n">wherekeyvalues</span><span class="o">=</span><span class="p">[</span><span class="mi">142</span><span class="p">],</span>
    1568                               <span class="n">keynames</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;perturbationNumber&#39;</span><span class="p">,</span><span class="s1">&#39;date&#39;</span><span class="p">,</span><span class="s1">&#39;time&#39;</span><span class="p">,</span><span class="s1">&#39;stepRange&#39;</span><span class="p">,</span><span class="s1">&#39;values&#39;</span><span class="p">],</span>
     1577                              <span class="n">keynames</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;perturbationNumber&#39;</span><span class="p">,</span> <span class="s1">&#39;date&#39;</span><span class="p">,</span> <span class="s1">&#39;time&#39;</span><span class="p">,</span>
     1578                                        <span class="s1">&#39;stepRange&#39;</span><span class="p">,</span> <span class="s1">&#39;values&#39;</span><span class="p">],</span>
    15691579                              <span class="n">keyvalues</span><span class="o">=</span><span class="p">[</span><span class="n">inumb</span><span class="p">,</span> <span class="nb">int</span><span class="p">(</span><span class="n">date</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s1">&#39;%Y%m</span><span class="si">%d</span><span class="s1">&#39;</span><span class="p">)),</span>
    1570                                          <span class="n">date</span><span class="o">.</span><span class="n">hour</span><span class="o">*</span><span class="mi">100</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">lsp_new_np</span><span class="p">[</span><span class="n">inumb</span><span class="p">,:,</span><span class="n">it</span><span class="p">]],</span>
     1580                                         <span class="n">date</span><span class="o">.</span><span class="n">hour</span><span class="o">*</span><span class="mi">100</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">lsp_new_np</span><span class="p">[</span><span class="n">inumb</span><span class="p">,</span> <span class="p">:,</span> <span class="n">it</span><span class="p">]],</span>
    15711581                             <span class="p">)</span>
    1572             <span class="n">fluxfile</span><span class="o">.</span><span class="n">set_keys</span><span class="p">(</span><span class="n">tmpfile</span><span class="p">,</span> <span class="n">filemode</span><span class="o">=</span><span class="s1">&#39;ab&#39;</span><span class="p">,</span> <span class="n">strict</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
     1582            <span class="n">fluxfile</span><span class="o">.</span><span class="n">set_keys</span><span class="p">(</span><span class="n">tmpfile</span><span class="p">,</span> <span class="n">filemode</span><span class="o">=</span><span class="s1">&#39;ab&#39;</span><span class="p">,</span>
    15731583                              <span class="n">wherekeynames</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;paramId&#39;</span><span class="p">],</span> <span class="n">wherekeyvalues</span><span class="o">=</span><span class="p">[</span><span class="mi">143</span><span class="p">],</span>
    1574                               <span class="n">keynames</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;perturbationNumber&#39;</span><span class="p">,</span><span class="s1">&#39;date&#39;</span><span class="p">,</span><span class="s1">&#39;time&#39;</span><span class="p">,</span><span class="s1">&#39;stepRange&#39;</span><span class="p">,</span><span class="s1">&#39;values&#39;</span><span class="p">],</span>
    1575                               <span class="n">keyvalues</span><span class="o">=</span><span class="p">[</span><span class="n">inumb</span><span class="p">,</span><span class="nb">int</span><span class="p">(</span><span class="n">date</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s1">&#39;%Y%m</span><span class="si">%d</span><span class="s1">&#39;</span><span class="p">)),</span>
    1576                                          <span class="n">date</span><span class="o">.</span><span class="n">hour</span><span class="o">*</span><span class="mi">100</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">cp_new_np</span><span class="p">[</span><span class="n">inumb</span><span class="p">,:,</span><span class="n">it</span><span class="p">]]</span>
     1584                              <span class="n">keynames</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;perturbationNumber&#39;</span><span class="p">,</span> <span class="s1">&#39;date&#39;</span><span class="p">,</span> <span class="s1">&#39;time&#39;</span><span class="p">,</span>
     1585                                        <span class="s1">&#39;stepRange&#39;</span><span class="p">,</span> <span class="s1">&#39;values&#39;</span><span class="p">],</span>
     1586                              <span class="n">keyvalues</span><span class="o">=</span><span class="p">[</span><span class="n">inumb</span><span class="p">,</span> <span class="nb">int</span><span class="p">(</span><span class="n">date</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s1">&#39;%Y%m</span><span class="si">%d</span><span class="s1">&#39;</span><span class="p">)),</span>
     1587                                         <span class="n">date</span><span class="o">.</span><span class="n">hour</span><span class="o">*</span><span class="mi">100</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">cp_new_np</span><span class="p">[</span><span class="n">inumb</span><span class="p">,</span> <span class="p">:,</span> <span class="n">it</span><span class="p">]]</span>
    15771588                             <span class="p">)</span>
    15781589
    15791590            <span class="c1"># rr for first subgrid point is identified by step = 1</span>
    1580             <span class="n">fluxfile</span><span class="o">.</span><span class="n">set_keys</span><span class="p">(</span><span class="n">tmpfile</span><span class="p">,</span> <span class="n">filemode</span><span class="o">=</span><span class="s1">&#39;ab&#39;</span><span class="p">,</span> <span class="n">strict</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
     1591            <span class="n">fluxfile</span><span class="o">.</span><span class="n">set_keys</span><span class="p">(</span><span class="n">tmpfile</span><span class="p">,</span> <span class="n">filemode</span><span class="o">=</span><span class="s1">&#39;ab&#39;</span><span class="p">,</span>
    15811592                              <span class="n">wherekeynames</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;paramId&#39;</span><span class="p">],</span> <span class="n">wherekeyvalues</span><span class="o">=</span><span class="p">[</span><span class="mi">142</span><span class="p">],</span>
    1582                               <span class="n">keynames</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;perturbationNumber&#39;</span><span class="p">,</span><span class="s1">&#39;date&#39;</span><span class="p">,</span><span class="s1">&#39;time&#39;</span><span class="p">,</span><span class="s1">&#39;stepRange&#39;</span><span class="p">,</span><span class="s1">&#39;values&#39;</span><span class="p">],</span>
    1583                               <span class="n">keyvalues</span><span class="o">=</span><span class="p">[</span><span class="n">inumb</span><span class="p">,</span><span class="nb">int</span><span class="p">(</span><span class="n">date</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s1">&#39;%Y%m</span><span class="si">%d</span><span class="s1">&#39;</span><span class="p">)),</span>
    1584                                          <span class="n">date</span><span class="o">.</span><span class="n">hour</span><span class="o">*</span><span class="mi">100</span><span class="p">,</span> <span class="s1">&#39;1&#39;</span><span class="p">,</span> <span class="n">lsp_new_np</span><span class="p">[</span><span class="n">inumb</span><span class="p">,:,</span><span class="n">it</span><span class="o">+</span><span class="mi">1</span><span class="p">]]</span>
    1585                               <span class="p">)</span>
    1586             <span class="n">fluxfile</span><span class="o">.</span><span class="n">set_keys</span><span class="p">(</span><span class="n">tmpfile</span><span class="p">,</span> <span class="n">filemode</span><span class="o">=</span><span class="s1">&#39;ab&#39;</span><span class="p">,</span> <span class="n">strict</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
     1593                              <span class="n">keynames</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;perturbationNumber&#39;</span><span class="p">,</span> <span class="s1">&#39;date&#39;</span><span class="p">,</span> <span class="s1">&#39;time&#39;</span><span class="p">,</span>
     1594                                        <span class="s1">&#39;stepRange&#39;</span><span class="p">,</span> <span class="s1">&#39;values&#39;</span><span class="p">],</span>
     1595                              <span class="n">keyvalues</span><span class="o">=</span><span class="p">[</span><span class="n">inumb</span><span class="p">,</span> <span class="nb">int</span><span class="p">(</span><span class="n">date</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s1">&#39;%Y%m</span><span class="si">%d</span><span class="s1">&#39;</span><span class="p">)),</span>
     1596                                         <span class="n">date</span><span class="o">.</span><span class="n">hour</span><span class="o">*</span><span class="mi">100</span><span class="p">,</span> <span class="s1">&#39;1&#39;</span><span class="p">,</span> <span class="n">lsp_new_np</span><span class="p">[</span><span class="n">inumb</span><span class="p">,</span> <span class="p">:,</span> <span class="n">it</span><span class="o">+</span><span class="mi">1</span><span class="p">]]</span>
     1597                             <span class="p">)</span>
     1598            <span class="n">fluxfile</span><span class="o">.</span><span class="n">set_keys</span><span class="p">(</span><span class="n">tmpfile</span><span class="p">,</span> <span class="n">filemode</span><span class="o">=</span><span class="s1">&#39;ab&#39;</span><span class="p">,</span>
    15871599                              <span class="n">wherekeynames</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;paramId&#39;</span><span class="p">],</span> <span class="n">wherekeyvalues</span><span class="o">=</span><span class="p">[</span><span class="mi">143</span><span class="p">],</span>
    1588                               <span class="n">keynames</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;perturbationNumber&#39;</span><span class="p">,</span><span class="s1">&#39;date&#39;</span><span class="p">,</span><span class="s1">&#39;time&#39;</span><span class="p">,</span><span class="s1">&#39;stepRange&#39;</span><span class="p">,</span><span class="s1">&#39;values&#39;</span><span class="p">],</span>
    1589                               <span class="n">keyvalues</span><span class="o">=</span><span class="p">[</span><span class="n">inumb</span><span class="p">,</span><span class="nb">int</span><span class="p">(</span><span class="n">date</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s1">&#39;%Y%m</span><span class="si">%d</span><span class="s1">&#39;</span><span class="p">)),</span>
    1590                                          <span class="n">date</span><span class="o">.</span><span class="n">hour</span><span class="o">*</span><span class="mi">100</span><span class="p">,</span> <span class="s1">&#39;1&#39;</span><span class="p">,</span> <span class="n">cp_new_np</span><span class="p">[</span><span class="n">inumb</span><span class="p">,:,</span><span class="n">it</span><span class="o">+</span><span class="mi">1</span><span class="p">]]</span>
    1591                               <span class="p">)</span>
     1600                              <span class="n">keynames</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;perturbationNumber&#39;</span><span class="p">,</span> <span class="s1">&#39;date&#39;</span><span class="p">,</span> <span class="s1">&#39;time&#39;</span><span class="p">,</span>
     1601                                        <span class="s1">&#39;stepRange&#39;</span><span class="p">,</span> <span class="s1">&#39;values&#39;</span><span class="p">],</span>
     1602                              <span class="n">keyvalues</span><span class="o">=</span><span class="p">[</span><span class="n">inumb</span><span class="p">,</span> <span class="nb">int</span><span class="p">(</span><span class="n">date</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s1">&#39;%Y%m</span><span class="si">%d</span><span class="s1">&#39;</span><span class="p">)),</span>
     1603                                         <span class="n">date</span><span class="o">.</span><span class="n">hour</span><span class="o">*</span><span class="mi">100</span><span class="p">,</span> <span class="s1">&#39;1&#39;</span><span class="p">,</span> <span class="n">cp_new_np</span><span class="p">[</span><span class="n">inumb</span><span class="p">,</span> <span class="p">:,</span> <span class="n">it</span><span class="o">+</span><span class="mi">1</span><span class="p">]]</span>
     1604                             <span class="p">)</span>
    15921605
    15931606            <span class="c1"># rr for second subgrid point is identified by step = 2</span>
    1594             <span class="n">fluxfile</span><span class="o">.</span><span class="n">set_keys</span><span class="p">(</span><span class="n">tmpfile</span><span class="p">,</span> <span class="n">filemode</span><span class="o">=</span><span class="s1">&#39;ab&#39;</span><span class="p">,</span> <span class="n">strict</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
     1607            <span class="n">fluxfile</span><span class="o">.</span><span class="n">set_keys</span><span class="p">(</span><span class="n">tmpfile</span><span class="p">,</span> <span class="n">filemode</span><span class="o">=</span><span class="s1">&#39;ab&#39;</span><span class="p">,</span>
    15951608                              <span class="n">wherekeynames</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;paramId&#39;</span><span class="p">],</span> <span class="n">wherekeyvalues</span><span class="o">=</span><span class="p">[</span><span class="mi">142</span><span class="p">],</span>
    1596                               <span class="n">keynames</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;perturbationNumber&#39;</span><span class="p">,</span><span class="s1">&#39;date&#39;</span><span class="p">,</span><span class="s1">&#39;time&#39;</span><span class="p">,</span><span class="s1">&#39;stepRange&#39;</span><span class="p">,</span><span class="s1">&#39;values&#39;</span><span class="p">],</span>
    1597                               <span class="n">keyvalues</span><span class="o">=</span><span class="p">[</span><span class="n">inumb</span><span class="p">,</span><span class="nb">int</span><span class="p">(</span><span class="n">date</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s1">&#39;%Y%m</span><span class="si">%d</span><span class="s1">&#39;</span><span class="p">)),</span>
    1598                                          <span class="n">date</span><span class="o">.</span><span class="n">hour</span><span class="o">*</span><span class="mi">100</span><span class="p">,</span> <span class="s1">&#39;2&#39;</span><span class="p">,</span> <span class="n">lsp_new_np</span><span class="p">[</span><span class="n">inumb</span><span class="p">,:,</span><span class="n">it</span><span class="o">+</span><span class="mi">2</span><span class="p">]]</span>
    1599                               <span class="p">)</span>
    1600             <span class="n">fluxfile</span><span class="o">.</span><span class="n">set_keys</span><span class="p">(</span><span class="n">tmpfile</span><span class="p">,</span> <span class="n">filemode</span><span class="o">=</span><span class="s1">&#39;ab&#39;</span><span class="p">,</span> <span class="n">strict</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
     1609                              <span class="n">keynames</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;perturbationNumber&#39;</span><span class="p">,</span> <span class="s1">&#39;date&#39;</span><span class="p">,</span> <span class="s1">&#39;time&#39;</span><span class="p">,</span>
     1610                                        <span class="s1">&#39;stepRange&#39;</span><span class="p">,</span> <span class="s1">&#39;values&#39;</span><span class="p">],</span>
     1611                              <span class="n">keyvalues</span><span class="o">=</span><span class="p">[</span><span class="n">inumb</span><span class="p">,</span> <span class="nb">int</span><span class="p">(</span><span class="n">date</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s1">&#39;%Y%m</span><span class="si">%d</span><span class="s1">&#39;</span><span class="p">)),</span>
     1612                                         <span class="n">date</span><span class="o">.</span><span class="n">hour</span><span class="o">*</span><span class="mi">100</span><span class="p">,</span> <span class="s1">&#39;2&#39;</span><span class="p">,</span> <span class="n">lsp_new_np</span><span class="p">[</span><span class="n">inumb</span><span class="p">,</span> <span class="p">:,</span> <span class="n">it</span><span class="o">+</span><span class="mi">2</span><span class="p">]]</span>
     1613                             <span class="p">)</span>
     1614            <span class="n">fluxfile</span><span class="o">.</span><span class="n">set_keys</span><span class="p">(</span><span class="n">tmpfile</span><span class="p">,</span> <span class="n">filemode</span><span class="o">=</span><span class="s1">&#39;ab&#39;</span><span class="p">,</span>
    16011615                              <span class="n">wherekeynames</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;paramId&#39;</span><span class="p">],</span> <span class="n">wherekeyvalues</span><span class="o">=</span><span class="p">[</span><span class="mi">143</span><span class="p">],</span>
    1602                               <span class="n">keynames</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;perturbationNumber&#39;</span><span class="p">,</span><span class="s1">&#39;date&#39;</span><span class="p">,</span><span class="s1">&#39;time&#39;</span><span class="p">,</span><span class="s1">&#39;stepRange&#39;</span><span class="p">,</span><span class="s1">&#39;values&#39;</span><span class="p">],</span>
    1603                               <span class="n">keyvalues</span><span class="o">=</span><span class="p">[</span><span class="n">inumb</span><span class="p">,</span><span class="nb">int</span><span class="p">(</span><span class="n">date</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s1">&#39;%Y%m</span><span class="si">%d</span><span class="s1">&#39;</span><span class="p">)),</span>
    1604                                          <span class="n">date</span><span class="o">.</span><span class="n">hour</span><span class="o">*</span><span class="mi">100</span><span class="p">,</span> <span class="s1">&#39;2&#39;</span><span class="p">,</span> <span class="n">cp_new_np</span><span class="p">[</span><span class="n">inumb</span><span class="p">,:,</span><span class="n">it</span><span class="o">+</span><span class="mi">2</span><span class="p">]]</span>
    1605                               <span class="p">)</span>
     1616                              <span class="n">keynames</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;perturbationNumber&#39;</span><span class="p">,</span> <span class="s1">&#39;date&#39;</span><span class="p">,</span> <span class="s1">&#39;time&#39;</span><span class="p">,</span>
     1617                                        <span class="s1">&#39;stepRange&#39;</span><span class="p">,</span> <span class="s1">&#39;values&#39;</span><span class="p">],</span>
     1618                              <span class="n">keyvalues</span><span class="o">=</span><span class="p">[</span><span class="n">inumb</span><span class="p">,</span> <span class="nb">int</span><span class="p">(</span><span class="n">date</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s1">&#39;%Y%m</span><span class="si">%d</span><span class="s1">&#39;</span><span class="p">)),</span>
     1619                                         <span class="n">date</span><span class="o">.</span><span class="n">hour</span><span class="o">*</span><span class="mi">100</span><span class="p">,</span> <span class="s1">&#39;2&#39;</span><span class="p">,</span> <span class="n">cp_new_np</span><span class="p">[</span><span class="n">inumb</span><span class="p">,</span> <span class="p">:,</span> <span class="n">it</span><span class="o">+</span><span class="mi">2</span><span class="p">]]</span>
     1620                             <span class="p">)</span>
    16061621
    16071622            <span class="n">it</span> <span class="o">=</span> <span class="n">it</span> <span class="o">+</span> <span class="mi">3</span> <span class="c1"># jump to next original time step in rr fields</span>
     
    16251640<span class="sd">        &#39;&#39;&#39;</span>
    16261641
    1627         <span class="n">gribfile</span> <span class="o">=</span> <span class="n">GribUtil</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">inputdir</span><span class="p">,</span><span class="s1">&#39;rr_grib_dummy.grb&#39;</span><span class="p">))</span>
     1642        <span class="n">gribfile</span> <span class="o">=</span> <span class="n">GribUtil</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">inputdir</span><span class="p">,</span> <span class="s1">&#39;rr_grib_dummy.grb&#39;</span><span class="p">))</span>
    16281643
    16291644        <span class="n">gribfile</span><span class="o">.</span><span class="n">copy_dummy_msg</span><span class="p">(</span><span class="n">ifile</span><span class="p">,</span> <span class="n">keynames</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;paramId&#39;</span><span class="p">],</span>
    1630                       <span class="n">keyvalues</span><span class="o">=</span><span class="p">[</span><span class="mi">142</span><span class="p">],</span> <span class="n">filemode</span><span class="o">=</span><span class="s1">&#39;wb&#39;</span><span class="p">)</span>
     1645                                <span class="n">keyvalues</span><span class="o">=</span><span class="p">[</span><span class="mi">142</span><span class="p">],</span> <span class="n">filemode</span><span class="o">=</span><span class="s1">&#39;wb&#39;</span><span class="p">)</span>
    16311646
    16321647        <span class="n">gribfile</span><span class="o">.</span><span class="n">copy_dummy_msg</span><span class="p">(</span><span class="n">ifile</span><span class="p">,</span> <span class="n">keynames</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;paramId&#39;</span><span class="p">],</span>
    1633                       <span class="n">keyvalues</span><span class="o">=</span><span class="p">[</span><span class="mi">143</span><span class="p">],</span> <span class="n">filemode</span><span class="o">=</span><span class="s1">&#39;ab&#39;</span><span class="p">)</span>
     1648                                <span class="n">keyvalues</span><span class="o">=</span><span class="p">[</span><span class="mi">143</span><span class="p">],</span> <span class="n">filemode</span><span class="o">=</span><span class="s1">&#39;ab&#39;</span><span class="p">)</span>
    16341649
    16351650        <span class="k">return</span>
     
    16631678
    16641679<span class="sd">        &#39;&#39;&#39;</span>
    1665         <span class="kn">from</span> <span class="nn">eccodes</span> <span class="k">import</span> <span class="p">(</span><span class="n">codes_index_select</span><span class="p">,</span> <span class="n">codes_new_from_index</span><span class="p">,</span> <span class="n">codes_get</span><span class="p">,</span>
     1680        <span class="kn">from</span> <span class="nn">eccodes</span> <span class="k">import</span> <span class="p">(</span><span class="n">codes_index_select</span><span class="p">,</span> <span class="n">codes_get</span><span class="p">,</span>
    16661681                             <span class="n">codes_get_values</span><span class="p">,</span> <span class="n">codes_set_values</span><span class="p">,</span> <span class="n">codes_set</span><span class="p">,</span>
    16671682                             <span class="n">codes_write</span><span class="p">,</span> <span class="n">codes_release</span><span class="p">,</span> <span class="n">codes_new_from_index</span><span class="p">,</span>
     
    17451760            <span class="n">cdate_hour</span> <span class="o">=</span> <span class="n">datetime</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="n">timestamp</span><span class="p">,</span> <span class="s1">&#39;%Y%m</span><span class="si">%d</span><span class="s1">%H&#39;</span><span class="p">)</span>
    17461761
     1762            <span class="c1"># if basetime is used, adapt start/end date period</span>
     1763            <span class="k">if</span> <span class="n">c</span><span class="o">.</span><span class="n">basetime</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
     1764                <span class="n">time_delta</span> <span class="o">=</span> <span class="n">timedelta</span><span class="p">(</span><span class="n">hours</span><span class="o">=</span><span class="mi">12</span><span class="o">-</span><span class="nb">int</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">dtime</span><span class="p">))</span>
     1765                <span class="n">start_period</span> <span class="o">=</span> <span class="n">datetime</span><span class="o">.</span><span class="n">strptime</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">end_date</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">basetime</span><span class="p">),</span>
     1766                                               <span class="s1">&#39;%Y%m</span><span class="si">%d</span><span class="s1">%H&#39;</span><span class="p">)</span> <span class="o">-</span> <span class="n">time_delta</span>
     1767                <span class="n">end_period</span> <span class="o">=</span> <span class="n">datetime</span><span class="o">.</span><span class="n">strptime</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">end_date</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">basetime</span><span class="p">),</span>
     1768                                             <span class="s1">&#39;%Y%m</span><span class="si">%d</span><span class="s1">%H&#39;</span><span class="p">)</span>
     1769
    17471770            <span class="c1"># skip all temporary times</span>
    17481771            <span class="c1"># which are outside the retrieval period</span>
     
    17511774                <span class="k">continue</span>
    17521775
    1753             <span class="c1"># if the timestamp is out of basetime start/end date period,</span>
    1754             <span class="c1"># skip this specific product</span>
    1755             <span class="k">if</span> <span class="n">c</span><span class="o">.</span><span class="n">basetime</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
    1756                 <span class="n">time_delta</span> <span class="o">=</span> <span class="n">timedelta</span><span class="p">(</span><span class="n">hours</span><span class="o">=</span><span class="mi">12</span><span class="o">-</span><span class="nb">int</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">dtime</span><span class="p">))</span>
    1757                 <span class="n">start_time</span> <span class="o">=</span> <span class="n">datetime</span><span class="o">.</span><span class="n">strptime</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">end_date</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">basetime</span><span class="p">),</span>
    1758                                                 <span class="s1">&#39;%Y%m</span><span class="si">%d</span><span class="s1">%H&#39;</span><span class="p">)</span> <span class="o">-</span> <span class="n">time_delta</span>
    1759                 <span class="n">end_time</span> <span class="o">=</span> <span class="n">datetime</span><span class="o">.</span><span class="n">strptime</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">end_date</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">basetime</span><span class="p">),</span>
    1760                                              <span class="s1">&#39;%Y%m</span><span class="si">%d</span><span class="s1">%H&#39;</span><span class="p">)</span>
    1761                 <span class="k">if</span> <span class="n">timestamp</span> <span class="o">&lt;</span> <span class="n">start_time</span> <span class="ow">or</span> <span class="n">timestamp</span> <span class="o">&gt;</span> <span class="n">end_time</span><span class="p">:</span>
    1762                     <span class="k">continue</span>
    17631776
    17641777            <span class="c1"># @WRF</span>
     
    17821795                <span class="n">paramId</span> <span class="o">=</span> <span class="n">codes_get</span><span class="p">(</span><span class="n">gid</span><span class="p">,</span> <span class="s1">&#39;paramId&#39;</span><span class="p">)</span>
    17831796                <span class="n">gridtype</span> <span class="o">=</span> <span class="n">codes_get</span><span class="p">(</span><span class="n">gid</span><span class="p">,</span> <span class="s1">&#39;gridType&#39;</span><span class="p">)</span>
    1784                 <span class="n">levtype</span> <span class="o">=</span> <span class="n">codes_get</span><span class="p">(</span><span class="n">gid</span><span class="p">,</span> <span class="s1">&#39;typeOfLevel&#39;</span><span class="p">)</span>
    17851797                <span class="k">if</span> <span class="n">paramId</span> <span class="o">==</span> <span class="mi">77</span><span class="p">:</span> <span class="c1"># ETADOT</span>
    17861798                    <span class="n">codes_write</span><span class="p">(</span><span class="n">gid</span><span class="p">,</span> <span class="n">fdict</span><span class="p">[</span><span class="s1">&#39;21&#39;</span><span class="p">])</span>
     
    18661878            <span class="c1"># Fortran program creates file fort.15 (with u,v,etadot,t,sp,q)</span>
    18671879            <span class="n">execute_subprocess</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">exedir</span><span class="p">,</span>
    1868                                 <span class="n">_config</span><span class="o">.</span><span class="n">FORTRAN_EXECUTABLE</span><span class="p">)],</span>
     1880                                             <span class="n">_config</span><span class="o">.</span><span class="n">FORTRAN_EXECUTABLE</span><span class="p">)],</span>
    18691881                               <span class="n">error_msg</span><span class="o">=</span><span class="s1">&#39;FORTRAN PROGRAM FAILED!&#39;</span><span class="p">)</span><span class="c1">#shell=True)</span>
    18701882
     
    18951907            <span class="c1"># to the outputfile (final GRIB input files for FLEXPART)</span>
    18961908            <span class="n">orolsm</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">basename</span><span class="p">(</span><span class="n">glob</span><span class="o">.</span><span class="n">glob</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">inputdir</span> <span class="o">+</span>
    1897                                         <span class="s1">&#39;/OG_OROLSM__SL.*.&#39;</span> <span class="o">+</span> <span class="n">c</span><span class="o">.</span><span class="n">ppid</span> <span class="o">+</span> <span class="s1">&#39;*&#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">])</span>
     1909                                                <span class="s1">&#39;/OG_OROLSM__SL.*.&#39;</span> <span class="o">+</span>
     1910                                                <span class="n">c</span><span class="o">.</span><span class="n">ppid</span> <span class="o">+</span>
     1911                                                <span class="s1">&#39;*&#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">])</span>
    18981912            <span class="n">fluxfile</span> <span class="o">=</span> <span class="s1">&#39;flux&#39;</span> <span class="o">+</span> <span class="n">cdate</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span><span class="mi">2</span><span class="p">]</span> <span class="o">+</span> <span class="n">suffix</span>
    18991913            <span class="k">if</span> <span class="ow">not</span> <span class="n">c</span><span class="o">.</span><span class="n">cwc</span><span class="p">:</span>
     
    19451959<span class="sd">        &#39;&#39;&#39;</span>
    19461960        <span class="kn">from</span> <span class="nn">eccodes</span> <span class="k">import</span> <span class="p">(</span><span class="n">codes_grib_new_from_file</span><span class="p">,</span> <span class="n">codes_get_array</span><span class="p">,</span>
    1947                              <span class="n">codes_set_array</span><span class="p">,</span> <span class="n">codes_release</span><span class="p">,</span> <span class="n">codes_set_values</span><span class="p">,</span>
    1948                              <span class="n">codes_set</span><span class="p">,</span> <span class="n">codes_write</span><span class="p">,</span> <span class="n">codes_release</span><span class="p">)</span>
     1961                             <span class="n">codes_set_array</span><span class="p">,</span> <span class="n">codes_release</span><span class="p">,</span>
     1962                             <span class="n">codes_set</span><span class="p">,</span> <span class="n">codes_write</span><span class="p">)</span>
    19491963
    19501964        <span class="c1"># max number</span>
     
    19521966
    19531967        <span class="c1"># get a list of all prepared output files with control forecast (CF)</span>
    1954         <span class="n">CF_filelist</span> <span class="o">=</span> <span class="n">UioFiles</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span> <span class="o">+</span> <span class="s1">&#39;*.N000&#39;</span><span class="p">)</span>
    1955         <span class="n">CF_filelist</span><span class="o">.</span><span class="n">files</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">CF_filelist</span><span class="o">.</span><span class="n">files</span><span class="p">)</span>
    1956 
    1957         <span class="k">for</span> <span class="n">cffile</span> <span class="ow">in</span> <span class="n">CF_filelist</span><span class="o">.</span><span class="n">files</span><span class="p">:</span>
     1968        <span class="n">cf_filelist</span> <span class="o">=</span> <span class="n">UioFiles</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">prefix</span> <span class="o">+</span> <span class="s1">&#39;*.N000&#39;</span><span class="p">)</span>
     1969        <span class="n">cf_filelist</span><span class="o">.</span><span class="n">files</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">cf_filelist</span><span class="o">.</span><span class="n">files</span><span class="p">)</span>
     1970
     1971        <span class="k">for</span> <span class="n">cffile</span> <span class="ow">in</span> <span class="n">cf_filelist</span><span class="o">.</span><span class="n">files</span><span class="p">:</span>
    19581972            <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">cffile</span><span class="p">,</span> <span class="s1">&#39;rb&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
    1959                 <span class="n">cfvalues</span><span class="o">=</span><span class="p">[]</span>
     1973                <span class="n">cfvalues</span> <span class="o">=</span> <span class="p">[]</span>
    19601974                <span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
    19611975                    <span class="n">fid</span> <span class="o">=</span> <span class="n">codes_grib_new_from_file</span><span class="p">(</span><span class="n">f</span><span class="p">)</span>
     
    20622076
    20632077        <span class="k">return</span></div></div>
    2064 
    20652078</pre></div>
    20662079
  • Documentation/html/_modules/GribUtil.html

    r30f7911 reca358d  
    230230
    231231
    232 <div class="viewcode-block" id="GribUtil.get_keys"><a class="viewcode-back" href="../Documentation/Api/api_python.html#GribUtil.GribUtil.get_keys">[docs]</a>    <span class="k">def</span> <span class="nf">get_keys</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">keynames</span><span class="p">,</span> <span class="n">wherekeynames</span><span class="o">=</span><span class="p">[],</span> <span class="n">wherekeyvalues</span><span class="o">=</span><span class="p">[]):</span>
     232<div class="viewcode-block" id="GribUtil.get_keys"><a class="viewcode-back" href="../Documentation/Api/api_python.html#GribUtil.GribUtil.get_keys">[docs]</a>    <span class="k">def</span> <span class="nf">get_keys</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">keynames</span><span class="p">,</span> <span class="n">wherekeynames</span><span class="p">,</span> <span class="n">wherekeyvalues</span><span class="p">):</span>
    233233        <span class="sd">&#39;&#39;&#39;Get keyvalues for a given list of keynames a where statement</span>
    234234<span class="sd">        can be given (list of key and list of values)</span>
     
    239239<span class="sd">            List of keynames.</span>
    240240
    241 <span class="sd">        wherekeynames : :obj:`list` of :obj:`string`, optional</span>
    242 <span class="sd">            Default value is an empty list.</span>
    243 
    244 <span class="sd">        wherekeyvalues : :obj:`list` of :obj:`string`, optional</span>
    245 <span class="sd">            Default value is an empty list.</span>
     241<span class="sd">        wherekeynames : :obj:`list` of :obj:`string`</span>
     242<span class="sd">            List of key names for indexing grib message parameter.</span>
     243
     244<span class="sd">        wherekeyvalues : :obj:`list` of :obj:`string`</span>
     245<span class="sd">            List of key values corresponding the key names.</span>
    246246
    247247<span class="sd">        Return</span>
     
    284284
    285285
    286 <div class="viewcode-block" id="GribUtil.set_keys"><a class="viewcode-back" href="../Documentation/Api/api_python.html#GribUtil.GribUtil.set_keys">[docs]</a>    <span class="k">def</span> <span class="nf">set_keys</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fromfile</span><span class="p">,</span> <span class="n">keynames</span><span class="p">,</span> <span class="n">keyvalues</span><span class="p">,</span> <span class="n">wherekeynames</span><span class="o">=</span><span class="p">[],</span>
    287                  <span class="n">wherekeyvalues</span><span class="o">=</span><span class="p">[],</span> <span class="n">strict</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">filemode</span><span class="o">=</span><span class="s1">&#39;wb&#39;</span><span class="p">):</span>
     286<div class="viewcode-block" id="GribUtil.set_keys"><a class="viewcode-back" href="../Documentation/Api/api_python.html#GribUtil.GribUtil.set_keys">[docs]</a>    <span class="k">def</span> <span class="nf">set_keys</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fromfile</span><span class="p">,</span> <span class="n">keynames</span><span class="p">,</span> <span class="n">keyvalues</span><span class="p">,</span> <span class="n">wherekeynames</span><span class="p">,</span>
     287                 <span class="n">wherekeyvalues</span><span class="p">,</span> <span class="n">filemode</span><span class="o">=</span><span class="s1">&#39;wb&#39;</span><span class="p">):</span>
    288288        <span class="sd">&#39;&#39;&#39;Opens the file to read the grib messages and then write</span>
    289289<span class="sd">        the selected messages (with wherekeys) to a new output file.</span>
     
    303303<span class="sd">            Default is an empty list.</span>
    304304
    305 <span class="sd">        wherekeynames : :obj:`list` of :obj:`string`, optional</span>
     305<span class="sd">        wherekeynames : :obj:`list` of :obj:`string`</span>
    306306<span class="sd">            List of keynames to select correct message.</span>
    307 <span class="sd">            Default value is an empty list.</span>
    308 
    309 <span class="sd">        wherekeyvalues : :obj:`list` of :obj:`string`, optional</span>
     307
     308<span class="sd">        wherekeyvalues : :obj:`list` of :obj:`string`</span>
    310309<span class="sd">            List of keyvalues for keynames to select correct message.</span>
    311 <span class="sd">            Default value is an empty list.</span>
    312 
    313 <span class="sd">        strict : :obj:`boolean`, optional</span>
    314 <span class="sd">            Decides if everything from keynames and keyvalues</span>
    315 <span class="sd">            is written out the grib file (False) or only those</span>
    316 <span class="sd">            meeting the where statement (True). Default is False.</span>
    317310
    318311<span class="sd">        filemode : :obj:`string`, optional</span>
     
    362355        <span class="k">return</span></div>
    363356
    364 <div class="viewcode-block" id="GribUtil.copy_dummy_msg"><a class="viewcode-back" href="../Documentation/Api/api_python.html#GribUtil.GribUtil.copy_dummy_msg">[docs]</a>    <span class="k">def</span> <span class="nf">copy_dummy_msg</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">filename_in</span><span class="p">,</span> <span class="n">selectWhere</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
    365                  <span class="n">keynames</span><span class="o">=</span><span class="p">[],</span> <span class="n">keyvalues</span><span class="o">=</span><span class="p">[],</span> <span class="n">filemode</span><span class="o">=</span><span class="s1">&#39;wb&#39;</span><span class="p">):</span>
     357<div class="viewcode-block" id="GribUtil.copy_dummy_msg"><a class="viewcode-back" href="../Documentation/Api/api_python.html#GribUtil.GribUtil.copy_dummy_msg">[docs]</a>    <span class="k">def</span> <span class="nf">copy_dummy_msg</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">filename_in</span><span class="p">,</span> <span class="n">keynames</span><span class="p">,</span> <span class="n">keyvalues</span><span class="p">,</span>
     358                       <span class="n">selectwhere</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">filemode</span><span class="o">=</span><span class="s1">&#39;wb&#39;</span><span class="p">):</span>
    366359        <span class="sd">&#39;&#39;&#39;Add the content of another input grib file to the objects file but</span>
    367360<span class="sd">        only messages corresponding to keys/values passed to the function.</span>
     
    374367<span class="sd">            Filename of the input file to read the grib messages from.</span>
    375368
    376 <span class="sd">        selectWhere : :obj:`boolean`, optional</span>
     369<span class="sd">        selectwhere : :obj:`boolean`, optional</span>
    377370<span class="sd">            Decides if to copy the keynames and values equal to (True) or</span>
    378371<span class="sd">            different to (False) the keynames/keyvalues list passed to the</span>
    379372<span class="sd">            function. Default is True.</span>
    380373
    381 <span class="sd">        keynames : :obj:`list` of :obj:`string`, optional</span>
    382 <span class="sd">            List of keynames. Default is an empty list.</span>
    383 
    384 <span class="sd">        keyvalues : :obj:`list` of :obj:`string`, optional</span>
    385 <span class="sd">            List of keyvalues. Default is an empty list.</span>
     374<span class="sd">        keynames : :obj:`list` of :obj:`string`</span>
     375<span class="sd">            List of keynames.</span>
     376
     377<span class="sd">        keyvalues : :obj:`list` of :obj:`string`</span>
     378<span class="sd">            List of keyvalues.</span>
    386379
    387380<span class="sd">        filemode : :obj:`string`, optional</span>
     
    416409                    <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">&quot;Key was not defined&quot;</span><span class="p">)</span>
    417410
    418                 <span class="k">if</span> <span class="n">selectWhere</span><span class="p">:</span>
     411                <span class="k">if</span> <span class="n">selectwhere</span><span class="p">:</span>
    419412                    <span class="n">select</span> <span class="o">=</span> <span class="p">(</span><span class="n">select</span> <span class="ow">and</span> <span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">keyvalues</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> <span class="o">==</span>
    420413                                          <span class="nb">str</span><span class="p">(</span><span class="n">codes_get</span><span class="p">(</span><span class="n">gid</span><span class="p">,</span> <span class="n">key</span><span class="p">))))</span>
     
    434427        <span class="k">return</span></div>
    435428
    436 <div class="viewcode-block" id="GribUtil.index"><a class="viewcode-back" href="../Documentation/Api/api_python.html#GribUtil.GribUtil.index">[docs]</a>    <span class="k">def</span> <span class="nf">index</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index_keys</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;mars&quot;</span><span class="p">],</span> <span class="n">index_file</span><span class="o">=</span><span class="s2">&quot;my.idx&quot;</span><span class="p">):</span>
     429<div class="viewcode-block" id="GribUtil.index"><a class="viewcode-back" href="../Documentation/Api/api_python.html#GribUtil.GribUtil.index">[docs]</a>    <span class="k">def</span> <span class="nf">index</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index_keys</span><span class="p">,</span> <span class="n">index_file</span><span class="o">=</span><span class="s2">&quot;my.idx&quot;</span><span class="p">):</span>
    437430        <span class="sd">&#39;&#39;&#39;Create index file from a list of files if it does not exist or</span>
    438431<span class="sd">        read an index file.</span>
     
    440433<span class="sd">        Parameters</span>
    441434<span class="sd">        ----------</span>
    442 <span class="sd">        index_keys: :obj:`list` of :obj:`string`, optional</span>
     435<span class="sd">        index_keys: :obj:`list` of :obj:`string`</span>
    443436<span class="sd">            Contains the list of key parameter names from</span>
    444437<span class="sd">            which the index is to be created.</span>
    445 <span class="sd">            Default is a list with a single entry string &quot;mars&quot;.</span>
    446438
    447439<span class="sd">        index_file: :obj:`string`, optional</span>
  • Documentation/html/_modules/MarsRetrieval.html

    r30f7911 reca358d  
    204204
    205205<span class="c1"># software specific classes and modules from flex_extract</span>
     206<span class="c1">#pylint: disable=wrong-import-position</span>
    206207<span class="n">sys</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;../&#39;</span><span class="p">)</span>
    207208<span class="kn">import</span> <span class="nn">_config</span>
     209<span class="c1">#pylint: disable=invalid-name</span>
    208210<span class="k">try</span><span class="p">:</span>
    209211    <span class="n">ec_api</span> <span class="o">=</span> <span class="kc">True</span>
     
    217219<span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
    218220    <span class="n">cds_api</span> <span class="o">=</span> <span class="kc">False</span>
     221<span class="c1">#pylint: enable=invalid-name</span>
     222<span class="c1">#pylint: enable=wrong-import-position</span>
    219223<span class="c1"># ------------------------------------------------------------------------------</span>
    220224<span class="c1"># CLASS</span>
     
    672676                <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n\n</span><span class="s1">MARS Request failed!&#39;</span><span class="p">)</span>
    673677                <span class="nb">print</span><span class="p">(</span><span class="n">e</span><span class="p">)</span>
    674                 <span class="n">tb</span> <span class="o">=</span> <span class="n">sys</span><span class="o">.</span><span class="n">exc_info</span><span class="p">()[</span><span class="mi">2</span><span class="p">]</span>
    675678                <span class="nb">print</span><span class="p">(</span><span class="n">traceback</span><span class="o">.</span><span class="n">format_exc</span><span class="p">())</span>
    676679                <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">()</span>
  • Documentation/html/_modules/UioFiles.html

    r30f7911 reca358d  
    204204
    205205<span class="c1"># software specific modules from flex_extract</span>
     206<span class="c1">#pylint: disable=wrong-import-position</span>
    206207<span class="n">sys</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">&#39;../&#39;</span><span class="p">)</span>
    207208<span class="kn">from</span> <span class="nn">Mods.tools</span> <span class="k">import</span> <span class="n">silent_remove</span><span class="p">,</span> <span class="n">get_list_as_string</span>
     209<span class="c1">#pylint: enable=wrong-import-position</span>
    208210
    209211<span class="c1"># ------------------------------------------------------------------------------</span>
     
    212214
    213215<div class="viewcode-block" id="UioFiles"><a class="viewcode-back" href="../Documentation/Api/api_python.html#UioFiles.UioFiles">[docs]</a><span class="k">class</span> <span class="nc">UioFiles</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
    214     <span class="sd">&#39;&#39;&#39;Collection of files matching a specific pattern.</span>
     216    <span class="sd">&quot;&quot;&quot;Collection of files matching a specific pattern.</span>
    215217
    216218<span class="sd">    The pattern can contain regular expressions for the files.</span>
     
    224226
    225227<span class="sd">    pattern : str</span>
    226 <span class="sd">        Regular expression pattern. For example: &#39;\*.grb&#39;</span>
     228<span class="sd">        Regular expression pattern. For example: &#39;*.grb&#39;</span>
    227229
    228230<span class="sd">    files : list of str</span>
    229231<span class="sd">        List of files matching the pattern in the path.</span>
    230 <span class="sd">    &#39;&#39;&#39;</span>
     232<span class="sd">    &quot;&quot;&quot;</span>
    231233    <span class="c1"># --------------------------------------------------------------------------</span>
    232234    <span class="c1"># CLASS METHODS</span>
    233235    <span class="c1"># --------------------------------------------------------------------------</span>
    234236    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">pattern</span><span class="p">):</span>
    235         <span class="sd">&#39;&#39;&#39;Assignes a specific pattern for these files.</span>
     237        <span class="sd">&quot;&quot;&quot;Assignes a specific pattern for these files.</span>
    236238
    237239<span class="sd">        Parameters</span>
     
    241243
    242244<span class="sd">        pattern : str</span>
    243 <span class="sd">            Regular expression pattern. For example: &#39;\*.grb&#39;</span>
     245<span class="sd">            Regular expression pattern. For example: &#39;*.grb&#39;</span>
    244246
    245247<span class="sd">        Return</span>
    246248<span class="sd">        ------</span>
    247249
    248 <span class="sd">        &#39;&#39;&#39;</span>
     250<span class="sd">        &quot;&quot;&quot;</span>
    249251
    250252        <span class="bp">self</span><span class="o">.</span><span class="n">path</span> <span class="o">=</span> <span class="n">path</span>
     
    258260
    259261    <span class="k">def</span> <span class="nf">_list_files</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">):</span>
    260         <span class="sd">&#39;&#39;&#39;Lists all files in the directory with the matching</span>
     262        <span class="sd">&quot;&quot;&quot;Lists all files in the directory with the matching</span>
    261263<span class="sd">        regular expression pattern.</span>
    262264
     
    269271<span class="sd">        ------</span>
    270272
    271 <span class="sd">        &#39;&#39;&#39;</span>
     273<span class="sd">        &quot;&quot;&quot;</span>
    272274        <span class="c1"># Get the absolute path</span>
    273275        <span class="n">path</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">path</span><span class="p">)</span>
    274276
    275277        <span class="c1"># get all files in the dir and subdir as absolut path</span>
     278            <span class="c1"># pylint: disable=W0612</span>
    276279        <span class="k">for</span> <span class="n">root</span><span class="p">,</span> <span class="n">dirnames</span><span class="p">,</span> <span class="n">filenames</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">path</span><span class="p">):</span>
    277280            <span class="k">for</span> <span class="n">filename</span> <span class="ow">in</span> <span class="n">fnmatch</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">filenames</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">pattern</span><span class="p">):</span>
     
    282285
    283286    <span class="k">def</span> <span class="nf">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
    284         <span class="sd">&#39;&#39;&#39;Converts the list of files into a single string.</span>
     287        <span class="sd">&quot;&quot;&quot;Converts the list of files into a single string.</span>
    285288<span class="sd">        The entries are sepereated by &quot;,&quot; sign.</span>
    286289
     
    292295<span class="sd">        files_string : str</span>
    293296<span class="sd">            The content of the list as a single string.</span>
    294 <span class="sd">        &#39;&#39;&#39;</span>
     297<span class="sd">        &quot;&quot;&quot;</span>
    295298
    296299        <span class="n">filenames</span> <span class="o">=</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">basename</span><span class="p">(</span><span class="n">f</span><span class="p">)</span> <span class="k">for</span> <span class="n">f</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">files</span><span class="p">]</span>
     
    301304
    302305<div class="viewcode-block" id="UioFiles.delete_files"><a class="viewcode-back" href="../Documentation/Api/api_python.html#UioFiles.UioFiles.delete_files">[docs]</a>    <span class="k">def</span> <span class="nf">delete_files</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
    303         <span class="sd">&#39;&#39;&#39;Deletes the files.</span>
     306        <span class="sd">&quot;&quot;&quot;Deletes the files.</span>
    304307
    305308<span class="sd">        Parameters</span>
     
    309312<span class="sd">        ------</span>
    310313
    311 <span class="sd">        &#39;&#39;&#39;</span>
     314<span class="sd">        &quot;&quot;&quot;</span>
    312315
    313316        <span class="k">for</span> <span class="n">old_file</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">files</span><span class="p">:</span>
  • Documentation/html/_modules/checks.html

    r30f7911 reca358d  
    191191<span class="kn">import</span> <span class="nn">os</span>
    192192<span class="kn">import</span> <span class="nn">sys</span>
    193 
    194 <span class="kn">import</span> <span class="nn">_config</span>
     193<span class="kn">from</span> <span class="nn">datetime</span> <span class="k">import</span> <span class="n">datetime</span>
     194<span class="c1"># pylint: disable=unused-import</span>
    195195<span class="k">try</span><span class="p">:</span>
    196196    <span class="kn">import</span> <span class="nn">exceptions</span>
    197197<span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
    198198    <span class="kn">import</span> <span class="nn">builtins</span> <span class="k">as</span> <span class="nn">exceptions</span>
    199 <span class="kn">from</span> <span class="nn">datetime</span> <span class="k">import</span> <span class="n">datetime</span>
     199<span class="c1"># pylint: enable=unused-import</span>
     200
     201<span class="c1"># software specific classes and modules from flex_extract</span>
     202<span class="kn">import</span> <span class="nn">_config</span>
    200203<span class="kn">from</span> <span class="nn">Mods.tools</span> <span class="k">import</span> <span class="n">my_error</span><span class="p">,</span> <span class="n">silent_remove</span>
    201204<span class="c1"># ------------------------------------------------------------------------------</span>
     
    275278    <span class="k">return</span> <span class="n">grid</span></div>
    276279
    277 <div class="viewcode-block" id="check_area"><a class="viewcode-back" href="../Documentation/Api/api_python.html#checks.check_area">[docs]</a><span class="k">def</span> <span class="nf">check_area</span><span class="p">(</span><span class="n">grid</span><span class="p">,</span> <span class="n">area</span><span class="p">,</span> <span class="n">upper</span><span class="p">,</span> <span class="n">lower</span><span class="p">,</span> <span class="n">left</span> <span class="p">,</span> <span class="n">right</span><span class="p">):</span>
     280<div class="viewcode-block" id="check_area"><a class="viewcode-back" href="../Documentation/Api/api_python.html#checks.check_area">[docs]</a><span class="k">def</span> <span class="nf">check_area</span><span class="p">(</span><span class="n">grid</span><span class="p">,</span> <span class="n">area</span><span class="p">,</span> <span class="n">upper</span><span class="p">,</span> <span class="n">lower</span><span class="p">,</span> <span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">):</span>
    278281    <span class="sd">&#39;&#39;&#39;Defines the correct area string.</span>
    279282
     
    320323
    321324    <span class="c1"># determine area format</span>
    322     <span class="k">if</span> <span class="p">((</span><span class="nb">abs</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="n">upper</span><span class="p">)</span> <span class="o">/</span> <span class="mf">10000.</span><span class="p">)</span> <span class="o">&gt;=</span> <span class="mf">0.01</span> <span class="ow">or</span> <span class="nb">float</span><span class="p">(</span><span class="n">upper</span><span class="p">)</span> <span class="o">/</span> <span class="mf">1000.</span> <span class="o">==</span> <span class="mf">0.</span> <span class="p">)</span> <span class="ow">and</span>
    323         <span class="p">(</span><span class="nb">abs</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="n">lower</span><span class="p">)</span> <span class="o">/</span> <span class="mf">10000.</span><span class="p">)</span> <span class="o">&gt;=</span> <span class="mf">0.01</span> <span class="ow">or</span> <span class="nb">float</span><span class="p">(</span><span class="n">lower</span><span class="p">)</span> <span class="o">/</span> <span class="mf">1000.</span> <span class="o">==</span> <span class="mf">0.</span> <span class="p">)</span> <span class="ow">and</span>
    324         <span class="p">(</span><span class="nb">abs</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="n">left</span><span class="p">)</span> <span class="o">/</span> <span class="mf">10000.</span><span class="p">)</span> <span class="o">&gt;=</span> <span class="mf">0.01</span> <span class="ow">or</span> <span class="nb">float</span><span class="p">(</span><span class="n">left</span><span class="p">)</span> <span class="o">/</span> <span class="mf">1000.</span> <span class="o">==</span> <span class="mf">0.</span> <span class="p">)</span> <span class="ow">and</span>
    325         <span class="p">(</span><span class="nb">abs</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="n">right</span><span class="p">)</span> <span class="o">/</span> <span class="mf">10000.</span><span class="p">)</span> <span class="o">&gt;=</span> <span class="mf">0.01</span> <span class="ow">or</span> <span class="nb">float</span><span class="p">(</span><span class="n">right</span><span class="p">)</span> <span class="o">/</span> <span class="mf">1000.</span> <span class="o">==</span> <span class="mf">0.</span><span class="p">)):</span>
     325    <span class="k">if</span> <span class="nb">all</span><span class="p">([(</span><span class="nb">abs</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="n">upper</span><span class="p">)</span> <span class="o">/</span> <span class="mf">10000.</span><span class="p">)</span> <span class="o">&gt;=</span> <span class="mf">0.01</span> <span class="ow">or</span> <span class="nb">float</span><span class="p">(</span><span class="n">upper</span><span class="p">)</span> <span class="o">/</span> <span class="mf">1000.</span> <span class="o">==</span> <span class="mf">0.</span><span class="p">),</span>
     326            <span class="p">(</span><span class="nb">abs</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="n">lower</span><span class="p">)</span> <span class="o">/</span> <span class="mf">10000.</span><span class="p">)</span> <span class="o">&gt;=</span> <span class="mf">0.01</span> <span class="ow">or</span> <span class="nb">float</span><span class="p">(</span><span class="n">lower</span><span class="p">)</span> <span class="o">/</span> <span class="mf">1000.</span> <span class="o">==</span> <span class="mf">0.</span><span class="p">),</span>
     327            <span class="p">(</span><span class="nb">abs</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="n">left</span><span class="p">)</span> <span class="o">/</span> <span class="mf">10000.</span><span class="p">)</span> <span class="o">&gt;=</span> <span class="mf">0.01</span> <span class="ow">or</span> <span class="nb">float</span><span class="p">(</span><span class="n">left</span><span class="p">)</span> <span class="o">/</span> <span class="mf">1000.</span> <span class="o">==</span> <span class="mf">0.</span><span class="p">),</span>
     328            <span class="p">(</span><span class="nb">abs</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="n">right</span><span class="p">)</span> <span class="o">/</span> <span class="mf">10000.</span><span class="p">)</span> <span class="o">&gt;=</span> <span class="mf">0.01</span> <span class="ow">or</span> <span class="nb">float</span><span class="p">(</span><span class="n">right</span><span class="p">)</span> <span class="o">/</span> <span class="mf">1000.</span> <span class="o">==</span> <span class="mf">0.</span><span class="p">)]):</span>
    326329        <span class="c1"># area is defined in 1/1000 degrees; old format</span>
    327330        <span class="n">area</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{}</span><span class="s1">/</span><span class="si">{}</span><span class="s1">/</span><span class="si">{}</span><span class="s1">/</span><span class="si">{}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="n">upper</span><span class="p">)</span> <span class="o">/</span> <span class="mf">1000.</span><span class="p">,</span>
     
    329332                                    <span class="nb">float</span><span class="p">(</span><span class="n">lower</span><span class="p">)</span> <span class="o">/</span> <span class="mf">1000.</span><span class="p">,</span>
    330333                                    <span class="nb">float</span><span class="p">(</span><span class="n">right</span><span class="p">)</span> <span class="o">/</span> <span class="mf">1000.</span><span class="p">)</span>
    331     <span class="k">elif</span> <span class="p">(</span><span class="nb">abs</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="n">upper</span><span class="p">)</span> <span class="o">/</span> <span class="mf">10000.</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mf">0.05</span> <span class="ow">and</span>
    332           <span class="nb">abs</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="n">lower</span><span class="p">)</span> <span class="o">/</span> <span class="mf">10000.</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mf">0.05</span> <span class="ow">and</span>
    333           <span class="nb">abs</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="n">left</span><span class="p">)</span> <span class="o">/</span> <span class="mf">10000.</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mf">0.05</span> <span class="ow">and</span>
    334           <span class="nb">abs</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="n">right</span><span class="p">)</span> <span class="o">/</span> <span class="mf">10000.</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mf">0.05</span><span class="p">):</span>
     334    <span class="k">elif</span> <span class="nb">all</span><span class="p">([</span><span class="nb">abs</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="n">upper</span><span class="p">)</span> <span class="o">/</span> <span class="mf">10000.</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mf">0.05</span><span class="p">,</span>
     335              <span class="nb">abs</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="n">lower</span><span class="p">)</span> <span class="o">/</span> <span class="mf">10000.</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mf">0.05</span><span class="p">,</span>
     336              <span class="nb">abs</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="n">left</span><span class="p">)</span> <span class="o">/</span> <span class="mf">10000.</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mf">0.05</span><span class="p">,</span>
     337              <span class="nb">abs</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="n">right</span><span class="p">)</span> <span class="o">/</span> <span class="mf">10000.</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mf">0.05</span><span class="p">]):</span>
    335338        <span class="c1"># area is already in new format</span>
    336339        <span class="n">area</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">{}</span><span class="s1">/</span><span class="si">{}</span><span class="s1">/</span><span class="si">{}</span><span class="s1">/</span><span class="si">{}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="n">upper</span><span class="p">),</span>
     
    342345                         <span class="s1">&#39;formats (upper, lower, left, right): &#39;</span>
    343346                         <span class="s1">&#39;</span><span class="si">{}</span><span class="s1">/</span><span class="si">{}</span><span class="s1">/</span><span class="si">{}</span><span class="s1">/</span><span class="si">{}</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">upper</span><span class="p">),</span> <span class="nb">str</span><span class="p">(</span><span class="n">lower</span><span class="p">),</span>
    344                                               <span class="nb">str</span><span class="p">(</span><span class="n">left</span><span class="p">)</span> <span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">right</span><span class="p">)))</span>
     347                                              <span class="nb">str</span><span class="p">(</span><span class="n">left</span><span class="p">),</span> <span class="nb">str</span><span class="p">(</span><span class="n">right</span><span class="p">)))</span>
    345348
    346349    <span class="k">return</span> <span class="n">area</span></div>
     
    443446
    444447
    445 <div class="viewcode-block" id="check_step"><a class="viewcode-back" href="../Documentation/Api/api_python.html#checks.check_step">[docs]</a><span class="k">def</span> <span class="nf">check_step</span><span class="p">(</span><span class="n">step</span><span class="p">,</span> <span class="n">mailfail</span><span class="p">):</span>
     448<div class="viewcode-block" id="check_step"><a class="viewcode-back" href="../Documentation/Api/api_python.html#checks.check_step">[docs]</a><span class="k">def</span> <span class="nf">check_step</span><span class="p">(</span><span class="n">step</span><span class="p">):</span>
    446449    <span class="sd">&#39;&#39;&#39;Checks on step format and convert into a list of steps.</span>
    447450
     
    455458<span class="sd">        Specifies the forecast time step from forecast base time.</span>
    456459<span class="sd">        Valid values are hours (HH) from forecast base time.</span>
    457 
    458 <span class="sd">    mailfail : list of str</span>
    459 <span class="sd">        Contains all email addresses which should be notified.</span>
    460 <span class="sd">        It might also contain just the ecmwf user name which will trigger</span>
    461 <span class="sd">        mailing to the associated email address for this user.</span>
    462460
    463461<span class="sd">    Return</span>
     
    567565<span class="sd">        Valid values are hours (HH) from forecast base time.</span>
    568566<span class="sd">    &#39;&#39;&#39;</span>
    569     <span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">ftype</span><span class="p">)</span> <span class="o">==</span> <span class="nb">len</span><span class="p">(</span><span class="n">ftime</span><span class="p">)</span> <span class="o">==</span> <span class="nb">len</span><span class="p">(</span><span class="n">steps</span><span class="p">)):</span>
     567    <span class="k">if</span> <span class="ow">not</span> <span class="nb">len</span><span class="p">(</span><span class="n">ftype</span><span class="p">)</span> <span class="o">==</span> <span class="nb">len</span><span class="p">(</span><span class="n">ftime</span><span class="p">)</span> <span class="o">==</span> <span class="nb">len</span><span class="p">(</span><span class="n">steps</span><span class="p">):</span>
    570568        <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s1">&#39;ERROR: The number of field types, times and steps &#39;</span>
    571569                         <span class="s1">&#39;are not the same! Please check the setting in the &#39;</span>
     
    715713                         <span class="s1">&#39;in CONTROL file.</span><span class="se">\n</span><span class="s1">&#39;</span>
    716714                         <span class="s1">&#39;Try &quot;</span><span class="si">{}</span><span class="s1"> -h&quot; to print usage information&#39;</span>
    717                          <span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span> <span class="p">)</span>
     715                         <span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">]))</span>
    718716
    719717    <span class="c1"># retrieve just one day if end_date isn&#39;t set</span>
     
    952950            <span class="n">accmaxstep</span> <span class="o">=</span> <span class="n">maxstep</span>
    953951            <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;... For pure forecast mode, the accumulated forecast must &#39;</span>
    954                           <span class="s1">&#39;have the same maxstep as the normal forecast fields!</span><span class="se">\n</span><span class="s1">&#39;</span>
    955                           <span class="s1">&#39;</span><span class="se">\t\t</span><span class="s1"> Accmaxstep was set to maxstep!&#39;</span><span class="p">)</span>
     952                  <span class="s1">&#39;have the same maxstep as the normal forecast fields!</span><span class="se">\n</span><span class="s1">&#39;</span>
     953                  <span class="s1">&#39;</span><span class="se">\t\t</span><span class="s1"> Accmaxstep was set to maxstep!&#39;</span><span class="p">)</span>
    956954    <span class="k">return</span> <span class="n">accmaxstep</span></div>
    957955
     
    10131011
    10141012
    1015 <div class="viewcode-block" id="check_number"><a class="viewcode-back" href="../Documentation/Api/api_python.html#checks.check_number">[docs]</a><span class="k">def</span> <span class="nf">check_number</span><span class="p">(</span><span class="n">number</span><span class="p">,</span> <span class="n">mailfail</span><span class="p">):</span>
     1013<div class="viewcode-block" id="check_number"><a class="viewcode-back" href="../Documentation/Api/api_python.html#checks.check_number">[docs]</a><span class="k">def</span> <span class="nf">check_number</span><span class="p">(</span><span class="n">number</span><span class="p">):</span>
    10161014    <span class="sd">&#39;&#39;&#39;Check for correct string format of ensemble member numbers.</span>
    10171015
     
    10201018<span class="sd">    number : str</span>
    10211019<span class="sd">        List of ensemble member forecast runs.</span>
    1022 
    1023 <span class="sd">    mailfail : list of str</span>
    1024 <span class="sd">        Contains all email addresses which should be notified.</span>
    1025 <span class="sd">        It might also contain just the ecmwf user name which will trigger</span>
    1026 <span class="sd">        mailing to the associated email address for this user.</span>
    10271020
    10281021<span class="sd">    Return</span>
  • Documentation/html/_modules/disaggregation.html

    r30f7911 reca358d  
    409409            <span class="c1"># geometric mean, restricted such that non-negativity is guaranteed</span>
    410410            <span class="c1"># according to Eq. (25)</span>
    411             <span class="n">fip1</span><span class="o">=</span><span class="nb">min</span><span class="p">(</span> <span class="mf">3.</span><span class="o">*</span><span class="n">g</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="p">,</span> <span class="mf">3.</span><span class="o">*</span><span class="n">g</span><span class="p">[</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">]</span> <span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">g</span><span class="p">[</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">]</span><span class="o">*</span><span class="n">g</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> <span class="p">)</span>
     411            <span class="n">fip1</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="mf">3.</span> <span class="o">*</span> <span class="n">g</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="mf">3.</span> <span class="o">*</span> <span class="n">g</span><span class="p">[</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">],</span> <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">g</span><span class="p">[</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">*</span> <span class="n">g</span><span class="p">[</span><span class="n">i</span><span class="p">]))</span>
    412412
    413413            <span class="c1"># the function value at the first sub-grid point (fi1) is determined</span>
     
    443443                <span class="c1"># the monotonicity filter corrects the value at (fim1) by</span>
    444444                <span class="c1"># substituting (fim1) with (fmon), see Eq. (27), (28) and (29)</span>
    445                 <span class="n">fmon</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="mf">3.</span><span class="o">*</span><span class="n">g</span><span class="p">[</span><span class="n">i</span><span class="o">-</span><span class="mi">2</span><span class="p">],</span> \
    446                            <span class="mf">3.</span><span class="o">*</span><span class="n">g</span><span class="p">[</span><span class="n">i</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span> \
    447                            <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="nb">max</span><span class="p">(</span><span class="mi">0</span><span class="p">,(</span><span class="mf">18.</span><span class="o">/</span><span class="mf">13.</span><span class="o">*</span><span class="n">g</span><span class="p">[</span><span class="n">i</span><span class="o">-</span><span class="mi">2</span><span class="p">]</span> <span class="o">-</span> <span class="mf">5.</span><span class="o">/</span><span class="mf">13.</span><span class="o">*</span><span class="n">f</span><span class="p">[</span><span class="o">-</span><span class="mi">7</span><span class="p">])</span> <span class="o">*</span>
    448                                          <span class="p">(</span><span class="mf">18.</span><span class="o">/</span><span class="mf">13.</span><span class="o">*</span><span class="n">g</span><span class="p">[</span><span class="n">i</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="mf">5.</span><span class="o">/</span><span class="mf">13.</span><span class="o">*</span><span class="n">f</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]))))</span>
     445                <span class="n">fmon</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="mf">3.</span> <span class="o">*</span> <span class="n">g</span><span class="p">[</span><span class="n">i</span> <span class="o">-</span> <span class="mi">2</span><span class="p">],</span>
     446                           <span class="mf">3.</span> <span class="o">*</span> <span class="n">g</span><span class="p">[</span><span class="n">i</span> <span class="o">-</span> <span class="mi">1</span><span class="p">],</span>
     447                           <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="nb">max</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="p">(</span><span class="mf">18.</span> <span class="o">/</span> <span class="mf">13.</span> <span class="o">*</span> <span class="n">g</span><span class="p">[</span><span class="n">i</span> <span class="o">-</span> <span class="mi">2</span><span class="p">]</span> <span class="o">-</span> <span class="mf">5.</span> <span class="o">/</span> <span class="mf">13.</span> <span class="o">*</span> <span class="n">f</span><span class="p">[</span><span class="o">-</span><span class="mi">7</span><span class="p">])</span> <span class="o">*</span>
     448                                       <span class="p">(</span><span class="mf">18.</span> <span class="o">/</span> <span class="mf">13.</span> <span class="o">*</span> <span class="n">g</span><span class="p">[</span><span class="n">i</span> <span class="o">-</span> <span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="mf">5.</span> <span class="o">/</span> <span class="mf">13.</span> <span class="o">*</span> <span class="n">f</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]))))</span>
    449449
    450450                <span class="c1"># recomputation of the sub-grid interval values while the</span>
     
    457457                <span class="n">f</span><span class="p">[</span><span class="o">-</span><span class="mi">2</span><span class="p">]</span> <span class="o">=</span> <span class="n">f</span><span class="p">[</span><span class="o">-</span><span class="mi">3</span><span class="p">]</span><span class="o">+</span><span class="p">(</span><span class="n">f</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">-</span><span class="n">fmon</span><span class="p">)</span><span class="o">/</span><span class="mf">3.</span>
    458458
    459             <span class="n">f</span><span class="o">.</span><span class="n">extend</span><span class="p">([</span><span class="mf">0.</span><span class="p">,</span><span class="mf">0.</span><span class="p">,</span><span class="mf">0.</span><span class="p">])</span>
     459            <span class="n">f</span><span class="o">.</span><span class="n">extend</span><span class="p">([</span><span class="mf">0.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">])</span>
    460460
    461461        <span class="c1"># otherwise the sub-grid values are calculated and added to the list</span>
     
    468468            <span class="c1"># geometric mean, restricted such that non-negativity is guaranteed</span>
    469469            <span class="c1"># according to Eq. (25)</span>
    470             <span class="n">fip1</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span> <span class="mf">3.</span><span class="o">*</span><span class="n">g</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="p">,</span> <span class="mf">3.</span><span class="o">*</span><span class="n">g</span><span class="p">[</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">]</span> <span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">g</span><span class="p">[</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">]</span><span class="o">*</span><span class="n">g</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> <span class="p">)</span>
     470            <span class="n">fip1</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="mf">3.</span> <span class="o">*</span> <span class="n">g</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="mf">3.</span> <span class="o">*</span> <span class="n">g</span><span class="p">[</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">],</span> <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">g</span><span class="p">[</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">*</span> <span class="n">g</span><span class="p">[</span><span class="n">i</span><span class="p">]))</span>
    471471
    472472            <span class="c1"># the function value at the first sub-grid point (fi1) is determined</span>
     
    486486                <span class="c1"># the monotonicity filter corrects the value at (fim1) by</span>
    487487                <span class="c1"># substituting (fim1) with fmon, see Eq. (27), (28) and (29)</span>
    488                 <span class="n">fmon</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="mf">3.</span><span class="o">*</span><span class="n">g</span><span class="p">[</span><span class="n">i</span><span class="o">-</span><span class="mi">2</span><span class="p">],</span> \
    489                            <span class="mf">3.</span><span class="o">*</span><span class="n">g</span><span class="p">[</span><span class="n">i</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span> \
    490                            <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="nb">max</span><span class="p">(</span><span class="mi">0</span><span class="p">,(</span><span class="mf">18.</span><span class="o">/</span><span class="mf">13.</span><span class="o">*</span><span class="n">g</span><span class="p">[</span><span class="n">i</span><span class="o">-</span><span class="mi">2</span><span class="p">]</span> <span class="o">-</span> <span class="mf">5.</span><span class="o">/</span><span class="mf">13.</span><span class="o">*</span><span class="n">f</span><span class="p">[</span><span class="o">-</span><span class="mi">7</span><span class="p">])</span> <span class="o">*</span>
    491                                          <span class="p">(</span><span class="mf">18.</span><span class="o">/</span><span class="mf">13.</span><span class="o">*</span><span class="n">g</span><span class="p">[</span><span class="n">i</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="mf">5.</span><span class="o">/</span><span class="mf">13.</span><span class="o">*</span><span class="n">f</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]))))</span>
     488                <span class="n">fmon</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="mf">3.</span> <span class="o">*</span> <span class="n">g</span><span class="p">[</span><span class="n">i</span> <span class="o">-</span> <span class="mi">2</span><span class="p">],</span>
     489                           <span class="mf">3.</span> <span class="o">*</span> <span class="n">g</span><span class="p">[</span><span class="n">i</span> <span class="o">-</span> <span class="mi">1</span><span class="p">],</span>
     490                           <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="nb">max</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="p">(</span><span class="mf">18.</span> <span class="o">/</span> <span class="mf">13.</span> <span class="o">*</span> <span class="n">g</span><span class="p">[</span><span class="n">i</span> <span class="o">-</span> <span class="mi">2</span><span class="p">]</span> <span class="o">-</span> <span class="mf">5.</span> <span class="o">/</span> <span class="mf">13.</span> <span class="o">*</span> <span class="n">f</span><span class="p">[</span><span class="o">-</span><span class="mi">7</span><span class="p">])</span> <span class="o">*</span>
     491                                       <span class="p">(</span><span class="mf">18.</span> <span class="o">/</span> <span class="mf">13.</span> <span class="o">*</span> <span class="n">g</span><span class="p">[</span><span class="n">i</span> <span class="o">-</span> <span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="mf">5.</span> <span class="o">/</span> <span class="mf">13.</span> <span class="o">*</span> <span class="n">f</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]))))</span>
    492492
    493493                <span class="c1"># recomputation of the sub-grid interval values while the</span>
     
    520520            <span class="c1"># the monotonicity filter corrects the value at (fim1) by</span>
    521521            <span class="c1"># substituting (fim1) with (fmon), see Eq. (27), (28) and (29)</span>
    522             <span class="n">fmon</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="mf">3.</span><span class="o">*</span><span class="n">g</span><span class="p">[</span><span class="o">-</span><span class="mi">3</span><span class="p">],</span> \
    523                        <span class="mf">3.</span><span class="o">*</span><span class="n">g</span><span class="p">[</span><span class="o">-</span><span class="mi">2</span><span class="p">],</span> \
    524                        <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="nb">max</span><span class="p">(</span><span class="mi">0</span><span class="p">,(</span><span class="mf">18.</span><span class="o">/</span><span class="mf">13.</span><span class="o">*</span><span class="n">g</span><span class="p">[</span><span class="o">-</span><span class="mi">3</span><span class="p">]</span> <span class="o">-</span> <span class="mf">5.</span><span class="o">/</span><span class="mf">13.</span><span class="o">*</span><span class="n">f</span><span class="p">[</span><span class="o">-</span><span class="mi">7</span><span class="p">])</span> <span class="o">*</span>
    525                                      <span class="p">(</span><span class="mf">18.</span><span class="o">/</span><span class="mf">13.</span><span class="o">*</span><span class="n">g</span><span class="p">[</span><span class="o">-</span><span class="mi">2</span><span class="p">]</span> <span class="o">-</span> <span class="mf">5.</span><span class="o">/</span><span class="mf">13.</span><span class="o">*</span><span class="n">f</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]))))</span>
     522            <span class="n">fmon</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="mf">3.</span> <span class="o">*</span> <span class="n">g</span><span class="p">[</span><span class="o">-</span><span class="mi">3</span><span class="p">],</span>
     523                       <span class="mf">3.</span> <span class="o">*</span> <span class="n">g</span><span class="p">[</span><span class="o">-</span><span class="mi">2</span><span class="p">],</span>
     524                       <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="nb">max</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="p">(</span><span class="mf">18.</span> <span class="o">/</span> <span class="mf">13.</span> <span class="o">*</span> <span class="n">g</span><span class="p">[</span><span class="o">-</span><span class="mi">3</span><span class="p">]</span> <span class="o">-</span> <span class="mf">5.</span> <span class="o">/</span> <span class="mf">13.</span> <span class="o">*</span> <span class="n">f</span><span class="p">[</span><span class="o">-</span><span class="mi">7</span><span class="p">])</span> <span class="o">*</span>
     525                                   <span class="p">(</span><span class="mf">18.</span> <span class="o">/</span> <span class="mf">13.</span> <span class="o">*</span> <span class="n">g</span><span class="p">[</span><span class="o">-</span><span class="mi">2</span><span class="p">]</span> <span class="o">-</span> <span class="mf">5.</span> <span class="o">/</span> <span class="mf">13.</span> <span class="o">*</span> <span class="n">f</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]))))</span>
    526526
    527527            <span class="c1"># recomputation of the sub-grid interval values while the</span>
     
    534534            <span class="n">f</span><span class="p">[</span><span class="o">-</span><span class="mi">2</span><span class="p">]</span> <span class="o">=</span> <span class="n">f</span><span class="p">[</span><span class="o">-</span><span class="mi">3</span><span class="p">]</span><span class="o">+</span><span class="p">(</span><span class="n">f</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">-</span><span class="n">fmon</span><span class="p">)</span><span class="o">/</span><span class="mf">3.</span>
    535535
    536         <span class="n">f</span><span class="o">.</span><span class="n">extend</span><span class="p">([</span><span class="mf">0.</span><span class="p">,</span><span class="mf">0.</span><span class="p">,</span><span class="mf">0.</span><span class="p">])</span>
     536        <span class="n">f</span><span class="o">.</span><span class="n">extend</span><span class="p">([</span><span class="mf">0.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">,</span> <span class="mf">0.</span><span class="p">])</span>
    537537
    538538    <span class="c1"># otherwise the sub-grid values are calculated and added to the list</span>
     
    559559            <span class="c1"># the monotonicity filter corrects the value at (fim1) by</span>
    560560            <span class="c1"># substituting (fim1) with (fmon), see Eq. (27), (28) and (29)</span>
    561             <span class="n">fmon</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="mf">3.</span><span class="o">*</span><span class="n">g</span><span class="p">[</span><span class="o">-</span><span class="mi">3</span><span class="p">],</span> \
    562                        <span class="mf">3.</span><span class="o">*</span><span class="n">g</span><span class="p">[</span><span class="o">-</span><span class="mi">2</span><span class="p">],</span> \
    563                        <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="nb">max</span><span class="p">(</span><span class="mi">0</span><span class="p">,(</span><span class="mf">18.</span><span class="o">/</span><span class="mf">13.</span><span class="o">*</span><span class="n">g</span><span class="p">[</span><span class="o">-</span><span class="mi">3</span><span class="p">]</span> <span class="o">-</span> <span class="mf">5.</span><span class="o">/</span><span class="mf">13.</span><span class="o">*</span><span class="n">f</span><span class="p">[</span><span class="o">-</span><span class="mi">7</span><span class="p">])</span> <span class="o">*</span>
    564                                      <span class="p">(</span><span class="mf">18.</span><span class="o">/</span><span class="mf">13.</span><span class="o">*</span><span class="n">g</span><span class="p">[</span><span class="o">-</span><span class="mi">2</span><span class="p">]</span> <span class="o">-</span> <span class="mf">5.</span><span class="o">/</span><span class="mf">13.</span><span class="o">*</span><span class="n">f</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]))))</span>
     561            <span class="n">fmon</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="mf">3.</span> <span class="o">*</span> <span class="n">g</span><span class="p">[</span><span class="o">-</span><span class="mi">3</span><span class="p">],</span>
     562                       <span class="mf">3.</span> <span class="o">*</span> <span class="n">g</span><span class="p">[</span><span class="o">-</span><span class="mi">2</span><span class="p">],</span>
     563                       <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="nb">max</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="p">(</span><span class="mf">18.</span> <span class="o">/</span> <span class="mf">13.</span> <span class="o">*</span> <span class="n">g</span><span class="p">[</span><span class="o">-</span><span class="mi">3</span><span class="p">]</span> <span class="o">-</span> <span class="mf">5.</span> <span class="o">/</span> <span class="mf">13.</span> <span class="o">*</span> <span class="n">f</span><span class="p">[</span><span class="o">-</span><span class="mi">7</span><span class="p">])</span> <span class="o">*</span>
     564                                   <span class="p">(</span><span class="mf">18.</span> <span class="o">/</span> <span class="mf">13.</span> <span class="o">*</span> <span class="n">g</span><span class="p">[</span><span class="o">-</span><span class="mi">2</span><span class="p">]</span> <span class="o">-</span> <span class="mf">5.</span> <span class="o">/</span> <span class="mf">13.</span> <span class="o">*</span> <span class="n">f</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]))))</span>
    565565
    566566            <span class="c1"># recomputation of the sub-grid interval values while the</span>
  • Documentation/html/_modules/get_mars_data.html

    r30f7911 reca358d  
    232232<span class="n">sys</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">append</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">dirname</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>
    233233    <span class="n">inspect</span><span class="o">.</span><span class="n">getfile</span><span class="p">(</span><span class="n">inspect</span><span class="o">.</span><span class="n">currentframe</span><span class="p">())))</span> <span class="o">+</span> <span class="s1">&#39;/../&#39;</span><span class="p">)</span>
     234<span class="c1"># pylint: disable=wrong-import-position</span>
    234235<span class="kn">import</span> <span class="nn">_config</span>
    235 <span class="kn">from</span> <span class="nn">Mods.tools</span> <span class="k">import</span> <span class="p">(</span><span class="n">setup_controldata</span><span class="p">,</span> <span class="n">my_error</span><span class="p">,</span> <span class="n">normal_exit</span><span class="p">,</span> <span class="n">get_cmdline_args</span><span class="p">,</span>
    236                    <span class="n">read_ecenv</span><span class="p">,</span> <span class="n">make_dir</span><span class="p">)</span>
     236<span class="kn">from</span> <span class="nn">Mods.tools</span> <span class="k">import</span> <span class="p">(</span><span class="n">setup_controldata</span><span class="p">,</span> <span class="n">my_error</span><span class="p">,</span> <span class="n">normal_exit</span><span class="p">,</span> <span class="n">make_dir</span><span class="p">)</span>
    237237<span class="kn">from</span> <span class="nn">Classes.EcFlexpart</span> <span class="k">import</span> <span class="n">EcFlexpart</span>
    238238<span class="kn">from</span> <span class="nn">Classes.UioFiles</span> <span class="k">import</span> <span class="n">UioFiles</span>
    239239<span class="kn">from</span> <span class="nn">Classes.MarsRetrieval</span> <span class="k">import</span> <span class="n">MarsRetrieval</span>
    240 
     240<span class="c1"># pylint: enable=wrong-import-position</span>
     241<span class="c1"># pylint: disable=invalid-name</span>
    241242<span class="k">try</span><span class="p">:</span>
    242243    <span class="n">ec_api</span> <span class="o">=</span> <span class="kc">True</span>
     
    250251<span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
    251252    <span class="n">cds_api</span> <span class="o">=</span> <span class="kc">False</span>
     253<span class="c1"># pylint: enable=invalid-name</span>
    252254<span class="c1"># ------------------------------------------------------------------------------</span>
    253255<span class="c1"># FUNCTION</span>
     
    385387
    386388<div class="viewcode-block" id="check_dates_for_nonflux_fc_times"><a class="viewcode-back" href="../Documentation/Api/api_python.html#get_mars_data.check_dates_for_nonflux_fc_times">[docs]</a><span class="k">def</span> <span class="nf">check_dates_for_nonflux_fc_times</span><span class="p">(</span><span class="n">types</span><span class="p">,</span> <span class="n">times</span><span class="p">):</span>
    387     <span class="sd">&#39;&#39;&#39;</span>
    388 <span class="sd">    &#39;&#39;&#39;</span>
    389     <span class="k">for</span> <span class="n">ty</span><span class="p">,</span> <span class="n">ti</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">types</span><span class="p">,</span><span class="n">times</span><span class="p">):</span>
     389    <span class="sd">&#39;&#39;&#39;Checks if the time 18UTC corresponds to forecast field.</span>
     390
     391<span class="sd">    Parameters</span>
     392<span class="sd">    ----------</span>
     393<span class="sd">    types : list of str</span>
     394<span class="sd">        List of field types.</span>
     395
     396<span class="sd">    times : list of str or str</span>
     397<span class="sd">        The time in hours of the field.</span>
     398
     399<span class="sd">    Return</span>
     400<span class="sd">    ------</span>
     401<span class="sd">    True or False</span>
     402
     403<span class="sd">    &#39;&#39;&#39;</span>
     404    <span class="k">for</span> <span class="n">ty</span><span class="p">,</span> <span class="n">ti</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">types</span><span class="p">,</span> <span class="n">times</span><span class="p">):</span>
    390405        <span class="k">if</span> <span class="n">ty</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s1">&#39;FC&#39;</span> <span class="ow">and</span> <span class="nb">int</span><span class="p">(</span><span class="n">ti</span><span class="p">)</span> <span class="o">==</span> <span class="mi">18</span><span class="p">:</span>
    391406            <span class="k">return</span> <span class="kc">True</span>
     
    407422
    408423<span class="sd">    Since for basetime the extraction contains the 12 hours upfront,</span>
    409 <span class="sd">    if basetime is 0, the starting date has to be the day before and</span>
     424<span class="sd">    if basetime is 0, the starting date has to be the day before</span>
    410425
    411426<span class="sd">    Parameters</span>
  • Documentation/html/_modules/install.html

    rd720895 reca358d  
    230230<span class="kn">import</span> <span class="nn">os</span>
    231231<span class="kn">import</span> <span class="nn">sys</span>
    232 <span class="kn">import</span> <span class="nn">glob</span>
    233232<span class="kn">import</span> <span class="nn">subprocess</span>
    234 <span class="kn">import</span> <span class="nn">inspect</span>
    235233<span class="kn">import</span> <span class="nn">tarfile</span>
    236234<span class="kn">from</span> <span class="nn">argparse</span> <span class="k">import</span> <span class="n">ArgumentParser</span><span class="p">,</span> <span class="n">ArgumentDefaultsHelpFormatter</span>
     
    341339
    342340<span class="sd">    &#39;&#39;&#39;</span>
    343     <span class="kn">import</span> <span class="nn">tarfile</span>
    344341
    345342    <span class="n">tarball_name</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;.tar&#39;</span>
    346343    <span class="n">tar_file</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">_config</span><span class="o">.</span><span class="n">PATH_FLEXEXTRACT_DIR</span><span class="p">,</span> <span class="n">tarball_name</span><span class="p">)</span>
    347344
    348     <span class="n">mk_compilejob</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">makefile</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">install_target</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">ecuid</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">ecgid</span><span class="p">,</span>
    349                   <span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">)</span>
    350 
    351     <span class="n">mk_job_template</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">ecuid</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">ecgid</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">gateway</span><span class="p">,</span>
    352                     <span class="n">c</span><span class="o">.</span><span class="n">destination</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">)</span>
     345    <span class="n">mk_compilejob</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">makefile</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">ecuid</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">ecgid</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">)</span>
     346
     347    <span class="n">mk_job_template</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">ecuid</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">ecgid</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">installdir</span><span class="p">)</span>
    353348
    354349    <span class="n">mk_env_vars</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">ecuid</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">ecgid</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">gateway</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">destination</span><span class="p">)</span>
     
    367362    <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Job compilation script has been submitted to ecgate for &#39;</span> <span class="o">+</span>
    368363          <span class="s1">&#39;installation in &#39;</span> <span class="o">+</span> <span class="n">c</span><span class="o">.</span><span class="n">installdir</span> <span class="o">+</span>
    369            <span class="s1">&#39;/&#39;</span> <span class="o">+</span> <span class="n">_config</span><span class="o">.</span><span class="n">FLEXEXTRACT_DIRNAME</span><span class="p">)</span>
     364          <span class="s1">&#39;/&#39;</span> <span class="o">+</span> <span class="n">_config</span><span class="o">.</span><span class="n">FLEXEXTRACT_DIRNAME</span><span class="p">)</span>
    370365    <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;You should get an email with subject &quot;flexcompile&quot; within &#39;</span> <span class="o">+</span>
    371366          <span class="s1">&#39;the next few minutes!&#39;</span><span class="p">)</span>
     
    386381
    387382<span class="sd">    &#39;&#39;&#39;</span>
    388     <span class="kn">import</span> <span class="nn">tarfile</span>
    389383
    390384    <span class="n">tar_file</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">_config</span><span class="o">.</span><span class="n">PATH_FLEXEXTRACT_DIR</span><span class="p">,</span>
    391385                            <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>
    392386
    393     <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>
     387    <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>
    394388        <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>
    395389        <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>
     
    403397            <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>
    404398            <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>
    405                                    <span class="n">_config</span><span class="o">.</span><span class="n">FLEXEXTRACT_DIRNAME</span><span class="p">))</span>
     399                                  <span class="n">_config</span><span class="o">.</span><span class="n">FLEXEXTRACT_DIRNAME</span><span class="p">))</span>
    406400            <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">installdir</span><span class="p">,</span>
    407                                    <span class="n">_config</span><span class="o">.</span><span class="n">FLEXEXTRACT_DIRNAME</span><span class="p">))</span>
     401                                  <span class="n">_config</span><span class="o">.</span><span class="n">FLEXEXTRACT_DIRNAME</span><span class="p">))</span>
    408402            <span class="n">un_tarball</span><span class="p">(</span><span class="n">tar_file</span><span class="p">)</span>
    409403            <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">installdir</span><span class="p">,</span>
    410                                    <span class="n">_config</span><span class="o">.</span><span class="n">FLEXEXTRACT_DIRNAME</span><span class="p">,</span>
     404                                  <span class="n">_config</span><span class="o">.</span><span class="n">FLEXEXTRACT_DIRNAME</span><span class="p">,</span>
    411405                                  <span class="n">_config</span><span class="o">.</span><span class="n">PATH_REL_FORTRAN_SRC</span><span class="p">))</span>
    412406
     
    448442        <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;target: &#39;</span><span class="p">,</span> <span class="n">c</span><span class="o">.</span><span class="n">install_target</span><span class="p">)</span>
    449443        <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;please specify correct installation target &#39;</span> <span class="o">+</span>
    450               <span class="nb">str</span><span class="p">(</span><span class="n">INSTALL_TARGETS</span><span class="p">))</span>
     444              <span class="nb">str</span><span class="p">(</span><span class="n">_config</span><span class="o">.</span><span class="n">INSTALL_TARGETS</span><span class="p">))</span>
    451445        <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;use -h or --help for help&#39;</span><span class="p">)</span>
    452446        <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>
     
    496490
    497491<span class="sd">    &#39;&#39;&#39;</span>
    498     <span class="kn">from</span> <span class="nn">glob</span> <span class="k">import</span> <span class="n">glob</span>
    499492
    500493    <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Create tarball ...&#39;</span><span class="p">)</span>
     
    507500    <span class="c1"># get lists of the files to be added to the tar file</span>
    508501    <span class="k">if</span> <span class="n">target</span> <span class="o">==</span> <span class="s1">&#39;local&#39;</span><span class="p">:</span>
    509         <span class="n">ECMWF_ENV_FILE</span> <span class="o">=</span> <span class="p">[]</span>
     502        <span class="n">ecmwf_env_file</span> <span class="o">=</span> <span class="p">[]</span>
    510503        <span class="n">runfile</span> <span class="o">=</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">relpath</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">ecd</span><span class="p">)</span>
    511504                   <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">_config</span><span class="o">.</span><span class="n">PATH_REL_RUN_DIR</span><span class="p">,</span>
    512505                                     <span class="s1">&#39;run_local.sh&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">files</span><span class="p">]</span>
    513506    <span class="k">else</span><span class="p">:</span>
    514         <span class="n">ECMWF_ENV_FILE</span> <span class="o">=</span> <span class="p">[</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_REL_ECMWF_ENV</span><span class="p">]</span>
     507        <span class="n">ecmwf_env_file</span> <span class="o">=</span> <span class="p">[</span><span class="n">_config</span><span class="o">.</span><span class="n">PATH_REL_ECMWF_ENV</span><span class="p">]</span>
    515508        <span class="n">runfile</span> <span class="o">=</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">relpath</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">ecd</span><span class="p">)</span>
    516                        <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">_config</span><span class="o">.</span><span class="n">PATH_REL_RUN_DIR</span><span class="p">,</span>
    517                                          <span class="s1">&#39;run.sh&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">files</span><span class="p">]</span>
     509                   <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">_config</span><span class="o">.</span><span class="n">PATH_REL_RUN_DIR</span><span class="p">,</span>
     510                                     <span class="s1">&#39;run.sh&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">files</span><span class="p">]</span>
    518511
    519512    <span class="n">pyfiles</span> <span class="o">=</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">relpath</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">ecd</span><span class="p">)</span>
    520513               <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">_config</span><span class="o">.</span><span class="n">PATH_REL_PYTHON_SRC</span><span class="p">,</span> <span class="s1">&#39;*py&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">files</span><span class="p">]</span>
    521514    <span class="n">pytestfiles</span> <span class="o">=</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">relpath</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">ecd</span><span class="p">)</span>
    522                <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">_config</span><span class="o">.</span><span class="n">PATH_REL_PYTHONTEST_SRC</span><span class="p">,</span> <span class="s1">&#39;*py&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">files</span><span class="p">]</span>
     515                   <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">_config</span><span class="o">.</span><span class="n">PATH_REL_PYTHONTEST_SRC</span><span class="p">,</span> <span class="s1">&#39;*py&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">files</span><span class="p">]</span>
    523516    <span class="n">controlfiles</span> <span class="o">=</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">relpath</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">ecd</span><span class="p">)</span>
    524517                    <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">_config</span><span class="o">.</span><span class="n">PATH_REL_CONTROLFILES</span><span class="p">,</span>
    525518                                      <span class="s1">&#39;CONTROL*&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">files</span><span class="p">]</span>
    526519    <span class="n">testfiles</span> <span class="o">=</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">relpath</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">ecd</span><span class="p">)</span>
    527                  <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">_config</span><span class="o">.</span><span class="n">PATH_REL_TEST</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>
     520                 <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">_config</span><span class="o">.</span><span class="n">PATH_REL_TEST</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>
    528521    <span class="n">tempfiles</span> <span class="o">=</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">relpath</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">ecd</span><span class="p">)</span>
    529                  <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">_config</span><span class="o">.</span><span class="n">PATH_REL_TEMPLATES</span> <span class="p">,</span> <span class="s1">&#39;*.temp&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">files</span><span class="p">]</span>
     522                 <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">_config</span><span class="o">.</span><span class="n">PATH_REL_TEMPLATES</span><span class="p">,</span> <span class="s1">&#39;*.temp&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">files</span><span class="p">]</span>
    530523    <span class="n">nlfiles</span> <span class="o">=</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">relpath</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">ecd</span><span class="p">)</span>
    531                  <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">_config</span><span class="o">.</span><span class="n">PATH_REL_TEMPLATES</span> <span class="p">,</span> <span class="s1">&#39;*.nl&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">files</span><span class="p">]</span>
     524               <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">_config</span><span class="o">.</span><span class="n">PATH_REL_TEMPLATES</span><span class="p">,</span> <span class="s1">&#39;*.nl&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">files</span><span class="p">]</span>
    532525    <span class="n">gribtable</span> <span class="o">=</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">relpath</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">ecd</span><span class="p">)</span>
    533                  <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">_config</span><span class="o">.</span><span class="n">PATH_REL_TEMPLATES</span> <span class="p">,</span> <span class="s1">&#39;*grib*&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">files</span><span class="p">]</span>
     526                 <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">_config</span><span class="o">.</span><span class="n">PATH_REL_TEMPLATES</span><span class="p">,</span> <span class="s1">&#39;*grib*&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">files</span><span class="p">]</span>
    534527    <span class="n">ffiles</span> <span class="o">=</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">relpath</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">ecd</span><span class="p">)</span>
    535               <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">_config</span><span class="o">.</span><span class="n">PATH_REL_FORTRAN_SRC</span><span class="p">,</span> <span class="s1">&#39;*.f*&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">files</span><span class="p">]</span>
     528              <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">_config</span><span class="o">.</span><span class="n">PATH_REL_FORTRAN_SRC</span><span class="p">,</span> <span class="s1">&#39;*.f90&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">files</span><span class="p">]</span>
    536529    <span class="n">hfiles</span> <span class="o">=</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">relpath</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">ecd</span><span class="p">)</span>
    537530              <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">_config</span><span class="o">.</span><span class="n">PATH_REL_FORTRAN_SRC</span><span class="p">,</span> <span class="s1">&#39;*.h&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">files</span><span class="p">]</span>
     
    542535    <span class="c1"># concatenate single lists to one for a better looping</span>
    543536    <span class="n">filelist</span> <span class="o">=</span> <span class="n">pyfiles</span> <span class="o">+</span> <span class="n">pytestfiles</span> <span class="o">+</span> <span class="n">controlfiles</span> <span class="o">+</span> <span class="n">tempfiles</span> <span class="o">+</span> <span class="n">nlfiles</span> <span class="o">+</span> \
    544                <span class="n">ffiles</span> <span class="o">+</span> <span class="n">gribtable</span> <span class="o">+</span> <span class="n">hfiles</span> <span class="o">+</span> <span class="n">makefiles</span> <span class="o">+</span> <span class="n">ECMWF_ENV_FILE</span> <span class="o">+</span> \
     537               <span class="n">ffiles</span> <span class="o">+</span> <span class="n">gribtable</span> <span class="o">+</span> <span class="n">hfiles</span> <span class="o">+</span> <span class="n">makefiles</span> <span class="o">+</span> <span class="n">ecmwf_env_file</span> <span class="o">+</span> \
    545538               <span class="n">runfile</span> <span class="o">+</span> <span class="n">jobdir</span> <span class="o">+</span> <span class="n">testfiles</span> <span class="o">+</span>\
    546539               <span class="p">[</span><span class="s1">&#39;CODE_OF_CONDUCT.md&#39;</span><span class="p">,</span> <span class="s1">&#39;LICENSE.md&#39;</span><span class="p">,</span> <span class="s1">&#39;README.md&#39;</span><span class="p">]</span>
    547540
    548541    <span class="c1"># create installation tar-file</span>
    549     <span class="n">exclude_files</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;.ksh&quot;</span><span class="p">]</span>
     542    <span class="n">exclude_files</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;.ksh&quot;</span><span class="p">,</span> <span class="s2">&quot;.tar&quot;</span><span class="p">]</span>
    550543    <span class="k">try</span><span class="p">:</span>
    551544        <span class="k">with</span> <span class="n">tarfile</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">tarball_path</span><span class="p">,</span> <span class="s2">&quot;w:gz&quot;</span><span class="p">)</span> <span class="k">as</span> <span class="n">tar_handle</span><span class="p">:</span>
    552             <span class="k">for</span> <span class="n">file</span> <span class="ow">in</span> <span class="n">filelist</span><span class="p">:</span>
    553                 <span class="n">tar_handle</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">file</span><span class="p">,</span> <span class="n">recursive</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
     545            <span class="k">for</span> <span class="n">filename</span> <span class="ow">in</span> <span class="n">filelist</span><span class="p">:</span>
     546                <span class="n">tar_handle</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span> <span class="n">recursive</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
    554547                               <span class="nb">filter</span><span class="o">=</span><span class="k">lambda</span> <span class="n">tarinfo</span><span class="p">:</span> <span class="kc">None</span>
    555                                       <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">splitext</span><span class="p">(</span><span class="n">tarinfo</span><span class="o">.</span><span class="n">name</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span>
    556                                          <span class="ow">in</span> <span class="n">exclude_files</span>
    557                                       <span class="k">else</span> <span class="n">tarinfo</span><span class="p">)</span>
     548                               <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">splitext</span><span class="p">(</span><span class="n">tarinfo</span><span class="o">.</span><span class="n">name</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span>
     549                               <span class="ow">in</span> <span class="n">exclude_files</span>
     550                               <span class="k">else</span> <span class="n">tarinfo</span><span class="p">)</span>
    558551    <span class="k">except</span> <span class="n">tarfile</span><span class="o">.</span><span class="n">TarError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
     552        <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;... ERROR: &#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
     553
    559554        <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">... error occured while trying to create the tar-file &#39;</span> <span class="o">+</span>
    560                      <span class="nb">str</span><span class="p">(</span><span class="n">tarball_path</span><span class="p">))</span>
     555                 <span class="nb">str</span><span class="p">(</span><span class="n">tarball_path</span><span class="p">))</span>
    561556
    562557    <span class="k">return</span></div>
     
    584579    <span class="k">except</span> <span class="n">tarfile</span><span class="o">.</span><span class="n">TarError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
    585580        <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">... error occured while trying to read tar-file &#39;</span> <span class="o">+</span>
    586                      <span class="nb">str</span><span class="p">(</span><span class="n">tarball_path</span><span class="p">))</span>
     581                 <span class="nb">str</span><span class="p">(</span><span class="n">tarball_path</span><span class="p">))</span>
    587582    <span class="k">except</span> <span class="ne">OSError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
    588583        <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;... ERROR CODE: &#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">errno</span><span class="p">))</span>
     
    627622                                         <span class="bp">cls</span><span class="o">=</span><span class="n">NewTextTemplate</span><span class="p">)</span>
    628623
    629         <span class="n">stream</span> <span class="o">=</span> <span class="n">ecmwfvars_template</span><span class="o">.</span><span class="n">generate</span><span class="p">(</span><span class="n">user_name</span> <span class="o">=</span> <span class="n">ecuid</span><span class="p">,</span>
    630                                              <span class="n">user_group</span> <span class="o">=</span> <span class="n">ecgid</span><span class="p">,</span>
    631                                              <span class="n">gateway_name</span> <span class="o">=</span> <span class="n">gateway</span><span class="p">,</span>
    632                                              <span class="n">destination_name</span> <span class="o">=</span> <span class="n">destination</span>
    633                                              <span class="p">)</span>
     624        <span class="n">stream</span> <span class="o">=</span> <span class="n">ecmwfvars_template</span><span class="o">.</span><span class="n">generate</span><span class="p">(</span><span class="n">user_name</span><span class="o">=</span><span class="n">ecuid</span><span class="p">,</span>
     625                                             <span class="n">user_group</span><span class="o">=</span><span class="n">ecgid</span><span class="p">,</span>
     626                                             <span class="n">gateway_name</span><span class="o">=</span><span class="n">gateway</span><span class="p">,</span>
     627                                             <span class="n">destination_name</span><span class="o">=</span><span class="n">destination</span>
     628                                            <span class="p">)</span>
    634629    <span class="k">except</span> <span class="n">UndefinedError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
    635630        <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;... ERROR &#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
     
    656651    <span class="k">return</span></div>
    657652
    658 <div class="viewcode-block" id="mk_compilejob"><a class="viewcode-back" href="../Documentation/Api/api_python.html#install.mk_compilejob">[docs]</a><span class="k">def</span> <span class="nf">mk_compilejob</span><span class="p">(</span><span class="n">makefile</span><span class="p">,</span> <span class="n">target</span><span class="p">,</span> <span class="n">ecuid</span><span class="p">,</span> <span class="n">ecgid</span><span class="p">,</span> <span class="n">fp_root</span><span class="p">):</span>
     653<div class="viewcode-block" id="mk_compilejob"><a class="viewcode-back" href="../Documentation/Api/api_python.html#install.mk_compilejob">[docs]</a><span class="k">def</span> <span class="nf">mk_compilejob</span><span class="p">(</span><span class="n">makefile</span><span class="p">,</span> <span class="n">ecuid</span><span class="p">,</span> <span class="n">ecgid</span><span class="p">,</span> <span class="n">fp_root</span><span class="p">):</span>
    659654    <span class="sd">&#39;&#39;&#39;Modifies the original job template file so that it is specified</span>
    660655<span class="sd">    for the user and the environment were it will be applied. Result</span>
     
    666661<span class="sd">        Name of the makefile which should be used to compile FORTRAN</span>
    667662<span class="sd">        CONVERT2 program.</span>
    668 
    669 <span class="sd">    target : str</span>
    670 <span class="sd">        The target where the installation should be done, e.g. the queue.</span>
    671663
    672664<span class="sd">    ecuid : str</span>
     
    697689
    698690        <span class="n">stream</span> <span class="o">=</span> <span class="n">compile_template</span><span class="o">.</span><span class="n">generate</span><span class="p">(</span>
    699             <span class="n">usergroup</span> <span class="o">=</span> <span class="n">ecgid</span><span class="p">,</span>
    700             <span class="n">username</span> <span class="o">=</span> <span class="n">ecuid</span><span class="p">,</span>
    701             <span class="n">version_number</span> <span class="o">=</span> <span class="n">_config</span><span class="o">.</span><span class="n">_VERSION_STR</span><span class="p">,</span>
    702             <span class="n">fp_root_scripts</span> <span class="o">=</span> <span class="n">fp_root</span><span class="p">,</span>
    703             <span class="n">makefile</span> <span class="o">=</span> <span class="n">makefile</span><span class="p">,</span>
    704             <span class="n">fortran_program</span> <span class="o">=</span> <span class="n">_config</span><span class="o">.</span><span class="n">FORTRAN_EXECUTABLE</span>
     691            <span class="n">usergroup</span><span class="o">=</span><span class="n">ecgid</span><span class="p">,</span>
     692            <span class="n">username</span><span class="o">=</span><span class="n">ecuid</span><span class="p">,</span>
     693            <span class="n">version_number</span><span class="o">=</span><span class="n">_config</span><span class="o">.</span><span class="n">_VERSION_STR</span><span class="p">,</span>
     694            <span class="n">fp_root_scripts</span><span class="o">=</span><span class="n">fp_root</span><span class="p">,</span>
     695            <span class="n">makefile</span><span class="o">=</span><span class="n">makefile</span><span class="p">,</span>
     696            <span class="n">fortran_program</span><span class="o">=</span><span class="n">_config</span><span class="o">.</span><span class="n">FORTRAN_EXECUTABLE</span>
    705697        <span class="p">)</span>
    706698    <span class="k">except</span> <span class="n">UndefinedError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
     
    731723    <span class="k">return</span></div>
    732724
    733 <div class="viewcode-block" id="mk_job_template"><a class="viewcode-back" href="../Documentation/Api/api_python.html#install.mk_job_template">[docs]</a><span class="k">def</span> <span class="nf">mk_job_template</span><span class="p">(</span><span class="n">ecuid</span><span class="p">,</span> <span class="n">ecgid</span><span class="p">,</span> <span class="n">gateway</span><span class="p">,</span> <span class="n">destination</span><span class="p">,</span> <span class="n">fp_root</span><span class="p">):</span>
     725<div class="viewcode-block" id="mk_job_template"><a class="viewcode-back" href="../Documentation/Api/api_python.html#install.mk_job_template">[docs]</a><span class="k">def</span> <span class="nf">mk_job_template</span><span class="p">(</span><span class="n">ecuid</span><span class="p">,</span> <span class="n">ecgid</span><span class="p">,</span> <span class="n">fp_root</span><span class="p">):</span>
    734726    <span class="sd">&#39;&#39;&#39;Modifies the original job template file so that it is specified</span>
    735727<span class="sd">    for the user and the environment were it will be applied. Result</span>
     
    743735<span class="sd">    ecgid : str</span>
    744736<span class="sd">        The group id on ECMWF server.</span>
    745 
    746 <span class="sd">    gateway : str</span>
    747 <span class="sd">        The gateway server the user is using.</span>
    748 
    749 <span class="sd">    destination : str</span>
    750 <span class="sd">        The remote destination which is used to transfer files</span>
    751 <span class="sd">        from ECMWF server to local gateway server.</span>
    752737
    753738<span class="sd">    fp_root : str</span>
     
    777762
    778763        <span class="n">stream</span> <span class="o">=</span> <span class="n">compile_template</span><span class="o">.</span><span class="n">generate</span><span class="p">(</span>
    779             <span class="n">usergroup</span> <span class="o">=</span> <span class="n">ecgid</span><span class="p">,</span>
    780             <span class="n">username</span> <span class="o">=</span> <span class="n">ecuid</span><span class="p">,</span>
    781             <span class="n">version_number</span> <span class="o">=</span> <span class="n">_config</span><span class="o">.</span><span class="n">_VERSION_STR</span><span class="p">,</span>
    782             <span class="n">fp_root_path</span> <span class="o">=</span> <span class="n">fp_root_path_to_python</span><span class="p">,</span>
     764            <span class="n">usergroup</span><span class="o">=</span><span class="n">ecgid</span><span class="p">,</span>
     765            <span class="n">username</span><span class="o">=</span><span class="n">ecuid</span><span class="p">,</span>
     766            <span class="n">version_number</span><span class="o">=</span><span class="n">_config</span><span class="o">.</span><span class="n">_VERSION_STR</span><span class="p">,</span>
     767            <span class="n">fp_root_path</span><span class="o">=</span><span class="n">fp_root_path_to_python</span><span class="p">,</span>
    783768        <span class="p">)</span>
    784769    <span class="k">except</span> <span class="n">UndefinedError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
     
    873858        <span class="nb">print</span><span class="p">(</span><span class="n">e</span><span class="p">)</span>
    874859    <span class="k">else</span><span class="p">:</span>
    875         <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> <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>
    876                             <span class="n">_config</span><span class="o">.</span><span class="n">FORTRAN_EXECUTABLE</span><span class="p">)],</span> <span class="n">error_msg</span><span class="o">=</span>
    877                            <span class="s1">&#39;FORTRAN EXECUTABLE COULD NOT BE FOUND!&#39;</span><span class="p">)</span>
     860        <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>
     861                            <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>
     862                           <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>
    878863
    879864    <span class="k">return</span></div>
  • Documentation/html/_modules/prepare_flexpart.html

    r30f7911 reca358d  
    200200<span class="c1">#    http://creativecommons.org/licenses/by/4.0/ or send a letter to</span>
    201201<span class="c1">#    Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.</span>
    202 <span class="c1">#*******************************************************************************</span>
     202<span class="c1"># *******************************************************************************</span>
     203<span class="c1"># pylint: disable=ungrouped-imports</span>
     204<span class="c1"># not necessary that we group the imports</span>
    203205<span class="sd">&#39;&#39;&#39;This script prepares the final version of the grib files which are</span>
    204206<span class="sd">then used by FLEXPART.</span>
     
    230232<span class="kn">import</span> <span class="nn">inspect</span>
    231233<span class="kn">import</span> <span class="nn">sys</span>
    232 <span class="kn">import</span> <span class="nn">socket</span>
    233234
    234235<span class="c1"># software specific classes and modules from flex_extract</span>
     
    236237<span class="n">sys</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">append</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">dirname</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>
    237238    <span class="n">inspect</span><span class="o">.</span><span class="n">getfile</span><span class="p">(</span><span class="n">inspect</span><span class="o">.</span><span class="n">currentframe</span><span class="p">())))</span> <span class="o">+</span> <span class="s1">&#39;/../&#39;</span><span class="p">)</span>
    238 <span class="kn">import</span> <span class="nn">_config</span>
     239<span class="c1"># pylint: disable=wrong-import-position</span>
     240<span class="c1">#import _config</span>
    239241<span class="kn">from</span> <span class="nn">Mods.checks</span> <span class="k">import</span> <span class="n">check_ppid</span>
    240242<span class="kn">from</span> <span class="nn">Classes.UioFiles</span> <span class="k">import</span> <span class="n">UioFiles</span>
    241 <span class="kn">from</span> <span class="nn">Classes.ControlFile</span> <span class="k">import</span> <span class="n">ControlFile</span>
    242 <span class="kn">from</span> <span class="nn">Mods.tools</span> <span class="k">import</span> <span class="p">(</span><span class="n">setup_controldata</span><span class="p">,</span> <span class="n">clean_up</span><span class="p">,</span> <span class="n">get_cmdline_args</span><span class="p">,</span>
    243                         <span class="n">read_ecenv</span><span class="p">,</span> <span class="n">make_dir</span><span class="p">,</span> <span class="n">normal_exit</span><span class="p">)</span>
     243<span class="c1">#from Classes.ControlFile import ControlFile</span>
     244<span class="kn">from</span> <span class="nn">Mods.tools</span> <span class="k">import</span> <span class="p">(</span><span class="n">setup_controldata</span><span class="p">,</span> <span class="n">clean_up</span><span class="p">,</span> <span class="n">make_dir</span><span class="p">,</span> <span class="n">normal_exit</span><span class="p">)</span>
    244245<span class="kn">from</span> <span class="nn">Classes.EcFlexpart</span> <span class="k">import</span> <span class="n">EcFlexpart</span>
     246<span class="c1"># pylint: enable=wrong-import-position</span>
    245247
    246248<span class="c1"># ------------------------------------------------------------------------------</span>
     
    308310
    309311    <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Prepare &#39;</span> <span class="o">+</span> <span class="n">start</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s2">&quot;%Y%m</span><span class="si">%d</span><span class="s2">&quot;</span><span class="p">)</span> <span class="o">+</span>
    310            <span class="s2">&quot;/to/&quot;</span> <span class="o">+</span> <span class="n">end</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s2">&quot;%Y%m</span><span class="si">%d</span><span class="s2">&quot;</span><span class="p">))</span>
     312          <span class="s1">&#39;/to/&#39;</span> <span class="o">+</span> <span class="n">end</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s2">&quot;%Y%m</span><span class="si">%d</span><span class="s2">&quot;</span><span class="p">))</span>
    311313
    312314    <span class="c1"># create output dir if necessary</span>
     
    333335    <span class="n">flexpart</span><span class="o">.</span><span class="n">process_output</span><span class="p">(</span><span class="n">c</span><span class="p">)</span>
    334336
    335     <span class="c1"># make use of a possible conversion to a</span>
    336     <span class="c1"># specific flexpart binary format</span>
    337     <span class="k">if</span> <span class="n">c</span><span class="o">.</span><span class="n">grib2flexpart</span><span class="p">:</span>
    338         <span class="n">flexpart</span><span class="o">.</span><span class="n">prepare_fp_files</span><span class="p">(</span><span class="n">c</span><span class="p">)</span>
    339 
    340337    <span class="c1"># check if in debugging mode, then store all files</span>
    341338    <span class="c1"># otherwise delete temporary files</span>
  • Documentation/html/_modules/submit.html

    r30f7911 reca358d  
    226226<span class="kn">import</span> <span class="nn">os</span>
    227227<span class="kn">import</span> <span class="nn">sys</span>
    228 <span class="kn">import</span> <span class="nn">subprocess</span>
    229 <span class="kn">import</span> <span class="nn">inspect</span>
    230 <span class="kn">import</span> <span class="nn">collections</span>
    231228<span class="kn">from</span> <span class="nn">datetime</span> <span class="k">import</span> <span class="n">datetime</span><span class="p">,</span> <span class="n">timedelta</span>
    232229
    233230<span class="c1"># software specific classes and modules from flex_extract</span>
    234231<span class="kn">import</span> <span class="nn">_config</span>
    235 <span class="kn">from</span> <span class="nn">Mods.tools</span> <span class="k">import</span> <span class="p">(</span><span class="n">setup_controldata</span><span class="p">,</span> <span class="n">normal_exit</span><span class="p">,</span> <span class="n">get_cmdline_args</span><span class="p">,</span>
    236                          <span class="n">submit_job_to_ecserver</span><span class="p">,</span> <span class="n">read_ecenv</span><span class="p">)</span>
     232<span class="kn">from</span> <span class="nn">Mods.tools</span> <span class="k">import</span> <span class="p">(</span><span class="n">setup_controldata</span><span class="p">,</span> <span class="n">normal_exit</span><span class="p">,</span>
     233                        <span class="n">submit_job_to_ecserver</span><span class="p">)</span>
    237234<span class="kn">from</span> <span class="nn">Mods.get_mars_data</span> <span class="k">import</span> <span class="n">get_mars_data</span>
    238235<span class="kn">from</span> <span class="nn">Mods.prepare_flexpart</span> <span class="k">import</span> <span class="n">prepare_flexpart</span>
    239 <span class="kn">from</span> <span class="nn">Classes.ControlFile</span> <span class="k">import</span> <span class="n">ControlFile</span>
     236<span class="c1">#from Classes.ControlFile import ControlFile</span>
    240237
    241238
  • Documentation/html/_modules/tools.html

    r30f7911 reca358d  
    231231<span class="kn">import</span> <span class="nn">subprocess</span>
    232232<span class="kn">import</span> <span class="nn">traceback</span>
     233<span class="c1"># pylint: disable=unused-import</span>
    233234<span class="k">try</span><span class="p">:</span>
    234235    <span class="kn">import</span> <span class="nn">exceptions</span>
    235236<span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
    236237    <span class="kn">import</span> <span class="nn">builtins</span> <span class="k">as</span> <span class="nn">exceptions</span>
     238<span class="c1"># pylint: enable=unused-import</span>
    237239<span class="kn">from</span> <span class="nn">datetime</span> <span class="k">import</span> <span class="n">datetime</span><span class="p">,</span> <span class="n">timedelta</span>
    238240<span class="kn">from</span> <span class="nn">argparse</span> <span class="k">import</span> <span class="n">ArgumentParser</span><span class="p">,</span> <span class="n">ArgumentDefaultsHelpFormatter</span>
     
    430432<span class="sd">        and destination for ECMWF server environments.</span>
    431433<span class="sd">    &#39;&#39;&#39;</span>
    432     <span class="n">envs</span><span class="o">=</span> <span class="p">{}</span>
     434    <span class="n">envs</span> <span class="o">=</span> <span class="p">{}</span>
    433435    <span class="k">try</span><span class="p">:</span>
    434436        <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">f</span><span class="p">:</span>
     
    441443
    442444        <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">... Error occured while trying to read ECMWF_ENV &#39;</span>
    443                      <span class="s1">&#39;file: &#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">filepath</span><span class="p">))</span>
     445                 <span class="s1">&#39;file: &#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">filepath</span><span class="p">))</span>
    444446
    445447    <span class="k">return</span> <span class="n">envs</span></div>
     
    464466    <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;... clean inputdir!&quot;</span><span class="p">)</span>
    465467
    466     <span class="n">cleanlist</span> <span class="o">=</span> <span class="p">[</span><span class="n">file</span> <span class="k">for</span> <span class="n">file</span> <span class="ow">in</span> <span class="n">glob</span><span class="o">.</span><span class="n">glob</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">inputdir</span><span class="p">,</span> <span class="s2">&quot;*&quot;</span><span class="p">))</span>
    467                  <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">file</span><span class="p">)</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">prefix</span><span class="p">)]</span>
     468    <span class="n">cleanlist</span> <span class="o">=</span> <span class="p">[</span><span class="n">filename</span> <span class="k">for</span> <span class="n">filename</span> <span class="ow">in</span>
     469                 <span class="n">glob</span><span class="o">.</span><span class="n">glob</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">inputdir</span><span class="p">,</span> <span class="s2">&quot;*&quot;</span><span class="p">))</span>
     470                 <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">filename</span><span class="p">)</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="n">c</span><span class="o">.</span><span class="n">prefix</span><span class="p">)]</span>
    468471
    469472    <span class="k">if</span> <span class="n">cleanlist</span><span class="p">:</span>
     
    533536                                 <span class="n">stderr</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">,</span>
    534537                                 <span class="n">bufsize</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
    535             <span class="n">pout</span> <span class="o">=</span> <span class="n">p</span><span class="o">.</span><span class="n">communicate</span><span class="p">(</span><span class="nb">input</span><span class="o">=</span><span class="n">message</span><span class="o">.</span><span class="n">encode</span><span class="p">()</span> <span class="o">+</span> <span class="s1">&#39;</span><span class="se">\n\n</span><span class="s1">&#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
     538            <span class="n">pout</span> <span class="o">=</span> <span class="n">p</span><span class="o">.</span><span class="n">communicate</span><span class="p">(</span><span class="nb">input</span><span class="o">=</span><span class="n">message</span> <span class="o">+</span> <span class="s1">&#39;</span><span class="se">\n\n</span><span class="s1">&#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
    536539        <span class="k">except</span> <span class="ne">ValueError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
    537540            <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;... ERROR: &#39;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
     
    693696        <span class="k">return</span> <span class="p">[]</span>
    694697    <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">pars</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
    695         <span class="n">pars</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">pars</span><span class="p">)</span>
     698        <span class="n">pars</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">pars</span><span class="p">)</span>
    696699
    697700    <span class="n">cpar</span> <span class="o">=</span> <span class="n">pars</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">)</span>
     
    737740        <span class="k">return</span> <span class="p">[]</span>
    738741    <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">pars</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
    739         <span class="n">pars</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">pars</span><span class="p">)</span>
     742        <span class="n">pars</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">pars</span><span class="p">)</span>
    740743
    741744    <span class="n">cpar</span> <span class="o">=</span> <span class="n">pars</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">)</span>
     
    930933
    931934        <span class="c1"># information needed from grib message</span>
    932         <span class="n">keys</span> <span class="o">=</span> <span class="p">[</span>
    933                 <span class="s1">&#39;Ni&#39;</span><span class="p">,</span>
     935        <span class="n">keys</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;Ni&#39;</span><span class="p">,</span>
    934936                <span class="s1">&#39;Nj&#39;</span><span class="p">,</span>
    935937                <span class="s1">&#39;latitudeOfFirstGridPointInDegrees&#39;</span><span class="p">,</span>
     
    945947        <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">keys</span><span class="p">:</span>
    946948            <span class="c1"># Get the value of the key in a grib message.</span>
    947             <span class="n">data</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">codes_get</span><span class="p">(</span><span class="n">gid</span><span class="p">,</span><span class="n">key</span><span class="p">)</span>
    948             <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s</span><span class="s2"> = </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span><span class="n">data</span><span class="p">[</span><span class="n">key</span><span class="p">]))</span>
     949            <span class="n">data</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">codes_get</span><span class="p">(</span><span class="n">gid</span><span class="p">,</span> <span class="n">key</span><span class="p">)</span>
     950            <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s</span><span class="s2"> = </span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">data</span><span class="p">[</span><span class="n">key</span><span class="p">]))</span>
    949951
    950952        <span class="c1"># Free the memory for the message referred as gribid.</span>
Note: See TracChangeset for help on using the changeset viewer.
hosted by ZAMG