source: flex_extract.git/Documentation/html/Documentation/Input/templates.html @ 08c9091

ctbtodev
Last change on this file since 08c9091 was 08c9091, checked in by Anne Philipp <anne.philipp@…>, 4 years ago

updated online docu (rm tabs)

  • Property mode set to 100644
File size: 33.3 KB
Line 
1
2
3<!DOCTYPE html>
4<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
5<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
6<head>
7  <meta charset="utf-8">
8 
9  <meta name="viewport" content="width=device-width, initial-scale=1.0">
10 
11  <title>Templates &mdash; flex_extract 7.1.2 documentation</title>
12 
13
14 
15 
16 
17 
18
19 
20  <script type="text/javascript" src="../../_static/js/modernizr.min.js"></script>
21 
22   
23      <script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
24        <script src="../../_static/jquery.js"></script>
25        <script src="../../_static/underscore.js"></script>
26        <script src="../../_static/doctools.js"></script>
27        <script src="../../_static/language_data.js"></script>
28        <script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
29   
30    <script type="text/javascript" src="../../_static/js/theme.js"></script>
31
32   
33
34 
35  <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
36  <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
37  <link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" />
38  <link rel="stylesheet" href="../../_static/css/theme_overrides.css" type="text/css" />
39    <link rel="index" title="Index" href="../../genindex.html" />
40    <link rel="search" title="Search" href="../../search.html" />
41    <link rel="next" title="Output data" href="../output.html" />
42    <link rel="prev" title="ECMWF user credential file ECMWF_ENV" href="ecmwf_env.html" /> 
43</head>
44
45<body class="wy-body-for-nav">
46
47   
48  <div class="wy-grid-for-nav">
49   
50    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
51      <div class="wy-side-scroll">
52        <div class="wy-side-nav-search" >
53         
54
55         
56            <a href="../../index.html" class="icon icon-home"> flex_extract
57         
58
59         
60          </a>
61
62         
63           
64           
65              <div class="version">
66                7.1.2
67              </div>
68           
69         
70
71         
72<div role="search">
73  <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
74    <input type="text" name="q" placeholder="Search docs" />
75    <input type="hidden" name="check_keywords" value="yes" />
76    <input type="hidden" name="area" value="default" />
77  </form>
78</div>
79
80         
81        </div>
82
83        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
84         
85           
86           
87             
88           
89           
90              <p class="caption"><span class="caption-text">Table of Contents:</span></p>
91<ul class="current">
92<li class="toctree-l1"><a class="reference internal" href="../../ecmwf_data.html">ECMWF Data</a></li>
93<li class="toctree-l1"><a class="reference internal" href="../../installation.html">Installation</a></li>
94<li class="toctree-l1"><a class="reference internal" href="../../quick_start.html">Usage</a></li>
95<li class="toctree-l1 current"><a class="reference internal" href="../../documentation.html">Code-Level Documentation</a><ul class="current">
96<li class="toctree-l2"><a class="reference internal" href="../overview.html">Overview</a></li>
97<li class="toctree-l2 current"><a class="reference internal" href="../input.html">Control &amp; input data</a><ul class="current">
98<li class="toctree-l3"><a class="reference internal" href="setup.html">The installation script - <code class="docutils literal notranslate"><span class="pre">setup.sh</span></code></a></li>
99<li class="toctree-l3"><a class="reference internal" href="compilejob.html">The compilation job script <code class="docutils literal notranslate"><span class="pre">compilejob.ksh</span></code></a></li>
100<li class="toctree-l3"><a class="reference internal" href="fortran_makefile.html">The Fortran makefile for <code class="docutils literal notranslate"><span class="pre">calc_etadot</span></code></a></li>
101<li class="toctree-l3"><a class="reference internal" href="run.html">The executable script - <code class="docutils literal notranslate"><span class="pre">run.sh</span></code></a></li>
102<li class="toctree-l3"><a class="reference internal" href="jobscript.html">The job script <code class="docutils literal notranslate"><span class="pre">job.ksh</span></code></a></li>
103<li class="toctree-l3"><a class="reference internal" href="control.html">The CONTROL file</a></li>
104<li class="toctree-l3"><a class="reference internal" href="control_params.html">The CONTROL parameters</a></li>
105<li class="toctree-l3"><a class="reference internal" href="examples.html">CONTROL file examples</a></li>
106<li class="toctree-l3"><a class="reference internal" href="changes.html">CONTROL file changes</a></li>
107<li class="toctree-l3"><a class="reference internal" href="ecmwf_env.html">ECMWF user credential file <code class="docutils literal notranslate"><span class="pre">ECMWF_ENV</span></code></a></li>
108<li class="toctree-l3 current"><a class="current reference internal" href="#">Templates</a><ul>
109<li class="toctree-l4"><a class="reference internal" href="#calc-etadot-nml-template">calc_etadot_nml.template</a></li>
110<li class="toctree-l4"><a class="reference internal" href="#ecmwf-env-template">ECMWF_ENV.template</a></li>
111<li class="toctree-l4"><a class="reference internal" href="#installscript-template">installscript.template</a></li>
112<li class="toctree-l4"><a class="reference internal" href="#submitscript-template">submitscript.template</a></li>
113<li class="toctree-l4"><a class="reference internal" href="#jobscript-template">jobscript.template</a></li>
114</ul>
115</li>
116</ul>
117</li>
118<li class="toctree-l2"><a class="reference internal" href="../output.html">Output data</a></li>
119<li class="toctree-l2"><a class="reference internal" href="../disagg.html">Disaggregation of flux data</a></li>
120<li class="toctree-l2"><a class="reference internal" href="../vertco.html">Vertical wind</a></li>
121<li class="toctree-l2"><a class="reference internal" href="../api.html">Auto-generated documentation</a></li>
122</ul>
123</li>
124<li class="toctree-l1"><a class="reference internal" href="../../evaluation.html">Evaluation</a></li>
125<li class="toctree-l1"><a class="reference internal" href="../../dev_guide.html">Developer Guide</a></li>
126<li class="toctree-l1"><a class="reference internal" href="../../changelog.html">Changelog</a></li>
127<li class="toctree-l1"><a class="reference internal" href="../../support.html">Support</a></li>
128<li class="toctree-l1"><a class="reference internal" href="../../Support/faq.html">FAQ - Frequently asked questions</a></li>
129<li class="toctree-l1"><a class="reference internal" href="../../authors.html">Developer Team</a></li>
130</ul>
131
132           
133         
134        </div>
135      </div>
136    </nav>
137
138    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
139
140     
141      <nav class="wy-nav-top" aria-label="top navigation">
142       
143          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
144          <a href="../../index.html">flex_extract</a>
145       
146      </nav>
147
148
149      <div class="wy-nav-content">
150       
151        <div class="rst-content">
152       
153         
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169<div role="navigation" aria-label="breadcrumbs navigation">
170
171  <ul class="wy-breadcrumbs">
172   
173      <li><a href="../../index.html">Docs</a> &raquo;</li>
174       
175          <li><a href="../../documentation.html">Code-Level Documentation</a> &raquo;</li>
176       
177          <li><a href="../input.html">Control &amp; input data</a> &raquo;</li>
178       
179      <li>Templates</li>
180   
181   
182      <li class="wy-breadcrumbs-aside">
183       
184           
185            <a href="../../_sources/Documentation/Input/templates.rst.txt" rel="nofollow"> View page source</a>
186         
187       
188      </li>
189   
190  </ul>
191
192 
193  <hr/>
194</div>
195          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
196           <div itemprop="articleBody">
197           
198  <div class="section" id="templates">
199<h1>Templates<a class="headerlink" href="#templates" title="Permalink to this headline"></a></h1>
200<p>In <code class="docutils literal notranslate"><span class="pre">flex_extract</span></code>, the Python package <a class="reference external" href="https://genshi.edgewall.org/">genshi</a> is used to create specific files from templates. It is the most efficient way to be able to quickly adapt, e. g., the job scripts sent to the ECMWF batch queue system, or the namelist file für the Fortran program, without the need to change the program code.</p>
201<div class="admonition note">
202<p class="admonition-title">Note</p>
203<p>Do not change anything in these files unless you understand the effects!</p>
204</div>
205<p>Each template file has its content framework and keeps so-called placeholder variables in the positions where the values need to be substituted at run time. These placeholders are marked by a leading <code class="docutils literal notranslate"><span class="pre">$</span></code> sign. In case of the Korn shell job scripts, where (environment) variables are used, the <code class="docutils literal notranslate"><span class="pre">$</span></code> sign needs to be doubled for <cite>escaping</cite>.</p>
206<p>The following templates are used; they can be found in the directory <code class="docutils literal notranslate"><span class="pre">flex_extract_vX.X/Templates</span></code>:</p>
207<div class="section" id="calc-etadot-nml-template">
208<h2>calc_etadot_nml.template<a class="headerlink" href="#calc-etadot-nml-template" title="Permalink to this headline"></a></h2>
209<blockquote>
210<div><p>This is the template for a Fortran namelist file called <code class="docutils literal notranslate"><span class="pre">fort.4</span></code> read by <code class="docutils literal notranslate"><span class="pre">calc_etadot</span></code>.
211It contains all the parameters <code class="docutils literal notranslate"><span class="pre">calc_etadot</span></code> needs.</p>
212<div class="highlight-fortran notranslate"><div class="highlight"><pre><span></span>&amp;NAMGEN
213  maxl = $maxl,
214  maxb = $maxb,
215  mlevel = $mlevel,
216  mlevelist = &quot;$mlevelist&quot;,
217  mnauf = $mnauf,
218  metapar = $metapar,
219  rlo0 = $rlo0,
220  rlo1 = $rlo1,
221  rla0 = $rla0,
222  rla1 = $rla1,
223  momega = $momega,
224  momegadiff = $momegadiff,
225  mgauss = $mgauss,
226  msmooth = $msmooth,
227  meta = $meta,
228  metadiff = $metadiff,
229  mdpdeta = $mdpdeta
230/
231</pre></div>
232</div>
233</div></blockquote>
234</div>
235<div class="section" id="ecmwf-env-template">
236<h2>ECMWF_ENV.template<a class="headerlink" href="#ecmwf-env-template" title="Permalink to this headline"></a></h2>
237<blockquote>
238<div><p>This template is used to create the <code class="docutils literal notranslate"><span class="pre">ECMWF_ENV</span></code> file in the application modes <strong>gateway</strong> and <strong>remote</strong>. It contains the user credentials and gateway server settings for the file transfers.</p>
239<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>ECUID <span class="nv">$user_name</span>
240ECGID <span class="nv">$user_group</span>
241GATEWAY <span class="nv">$gateway_name</span>
242DESTINATION <span class="nv">$destination_name</span>
243</pre></div>
244</div>
245</div></blockquote>
246</div>
247<div class="section" id="installscript-template">
248<h2>installscript.template<a class="headerlink" href="#installscript-template" title="Permalink to this headline"></a></h2>
249<blockquote>
250<div><p>This template is used to create the job script file called <code class="docutils literal notranslate"><span class="pre">compilejob.ksh</span></code> during the installation process for the application modes <strong>remote</strong> and <strong>gateway</strong>.</p>
251<p>At the beginning, some directives for the batch system are set.
252On the <strong>ecgate</strong> server, the <code class="docutils literal notranslate"><span class="pre">SBATCH</span></code> comments are the directives for the SLURM workload manager. A description of the single lines can be found at <a class="reference external" href="https://confluence.ecmwf.int/display/UDOC/Writing+SLURM+jobs">SLURM directives</a>.
253For the high-performance computers <strong>cca</strong> and <strong>ccb</strong>, the <code class="docutils literal notranslate"><span class="pre">PBS</span></code> comments are necessary;  for details see <a class="reference external" href="https://confluence.ecmwf.int/display/UDOC/Batch+environment%3A++PBS">PBS directives</a>.</p>
254<p>The software environment requirements mentioned in <a class="reference internal" href="../../installation.html#ref-requirements"><span class="std std-ref">Dependencies</span></a> are prepared by loading the corresponding modules depending on the <code class="docutils literal notranslate"><span class="pre">HOST</span></code>. It should not be changed without testing.</p>
255<p>Afterwards, the installation steps as such are done. They included the generation of the root directory, putting files in place, compiling the Fortran program, and sending a log file by email.</p>
256<div class="highlight-ksh notranslate"><div class="highlight"><pre><span></span><span class="ch">#!/bin/ksh</span>
257
258<span class="c1"># ON ECGB:</span>
259<span class="c1"># start with ecaccess-job-submit -queueName ecgb NAME_OF_THIS_FILE  on gateway server</span>
260<span class="c1"># start with sbatch NAME_OF_THIS_FILE directly on machine</span>
261
262<span class="c1">#SBATCH --workdir=/scratch/ms/$usergroup/$username</span>
263<span class="c1">#SBATCH --qos=normal</span>
264<span class="c1">#SBATCH --job-name=flex_ecmwf</span>
265<span class="c1">#SBATCH --output=flex_ecmwf.%j.out</span>
266<span class="c1">#SBATCH --error=flex_ecmwf.%j.out</span>
267<span class="c1">#SBATCH --mail-type=FAIL</span>
268<span class="c1">#SBATCH --time=12:00:00</span>
269
270<span class="c1">## CRAY specific batch requests</span>
271<span class="c1">##PBS -N flex_ecmwf</span>
272<span class="c1">##PBS -q ns</span>
273<span class="c1">##PBS -S /usr/bin/ksh</span>
274<span class="c1">##PBS -o /scratch/ms/$usergroup/$username/flex_ecmwf.$${Jobname}.$${Job_ID}.out</span>
275<span class="c1"># job output is in .ecaccess_DO_NOT_REMOVE</span>
276<span class="c1">##PBS -j oe</span>
277<span class="c1">##PBS -V</span>
278<span class="c1">##PBS -l EC_threads_per_task=1</span>
279<span class="c1">##PBS -l EC_memory_per_task=3200MB</span>
280
281<span class="nb">set</span> -x
282<span class="nb">export</span> <span class="nv">VERSION</span><span class="o">=</span><span class="nv">$version_number</span>
283<span class="k">case</span> <span class="nv">$$</span><span class="o">{</span>HOST<span class="o">}</span> in
284  *ecg*<span class="o">)</span>
285  module unload grib_api
286  module unload emos
287  module load python3
288  module load eccodes
289  module load emos/455-r64
290  <span class="nb">export</span> <span class="nv">FLEXPART_ROOT_SCRIPTS</span><span class="o">=</span><span class="nv">$fp_root_scripts</span>
291  <span class="nb">export</span> <span class="nv">MAKEFILE</span><span class="o">=</span><span class="nv">$makefile</span>
292  <span class="p">;;</span>
293  *cca*<span class="o">)</span>
294  module switch PrgEnv-cray PrgEnv-intel
295  module load python3
296  module load eccodes
297  module load emos/455-r64
298  <span class="nb">echo</span> <span class="nv">$$</span><span class="o">{</span>GROUP<span class="o">}</span>
299  <span class="nb">echo</span> <span class="nv">$$</span><span class="o">{</span>HOME<span class="o">}</span>
300  <span class="nb">echo</span> <span class="nv">$$</span><span class="o">{</span>HOME<span class="o">}</span> <span class="p">|</span> awk -F / <span class="s1">&#39;{print $1, $2, $3, $4}&#39;</span>
301  <span class="nb">export</span> <span class="nv">GROUP</span><span class="o">=</span><span class="sb">`</span><span class="nb">echo</span> <span class="nv">$$</span><span class="o">{</span>HOME<span class="o">}</span> <span class="p">|</span> awk -F / <span class="s1">&#39;{print $4}&#39;</span><span class="sb">`</span>
302  <span class="nb">export</span> <span class="nv">SCRATCH</span><span class="o">=</span>/scratch/ms/<span class="nv">$$</span><span class="o">{</span>GROUP<span class="o">}</span>/<span class="nv">$$</span><span class="o">{</span>USER<span class="o">}</span>
303  <span class="nb">export</span> <span class="nv">FLEXPART_ROOT_SCRIPTS</span><span class="o">=</span><span class="nv">$fp_root_scripts</span>
304  <span class="nb">export</span> <span class="nv">MAKEFILE</span><span class="o">=</span><span class="nv">$makefile</span>
305  <span class="p">;;</span>
306<span class="k">esac</span>
307
308mkdir -p <span class="nv">$$</span><span class="o">{</span>FLEXPART_ROOT_SCRIPTS<span class="o">}</span>/flex_extract_v<span class="nv">$$</span><span class="o">{</span>VERSION<span class="o">}</span>
309<span class="nb">cd</span> <span class="nv">$$</span><span class="o">{</span>FLEXPART_ROOT_SCRIPTS<span class="o">}</span>/flex_extract_v<span class="nv">$$</span><span class="o">{</span>VERSION<span class="o">}</span>   <span class="c1"># if FLEXPART_ROOT is not set this means cd to the home directory</span>
310tar -xvf <span class="nv">$$</span><span class="o">{</span>HOME<span class="o">}</span>/flex_extract_v<span class="nv">$$</span><span class="o">{</span>VERSION<span class="o">}</span>.tar
311<span class="nb">cd</span> Source/Fortran
312<span class="se">\r</span>m *.o *.mod <span class="nv">$fortran_program</span>
313make -f <span class="nv">$$</span><span class="o">{</span>MAKEFILE<span class="o">}</span> &gt;flexcompile <span class="m">2</span>&gt;flexcompile
314
315ls -l <span class="nv">$fortran_program</span> &gt;&gt;flexcompile
316<span class="k">if</span> <span class="o">[</span> <span class="nv">$$</span>? -eq <span class="m">0</span> <span class="o">]</span><span class="p">;</span> <span class="k">then</span>
317  <span class="nb">echo</span> <span class="s1">&#39;SUCCESS!&#39;</span> &gt;&gt;flexcompile
318  mail -s flexcompile.<span class="nv">$$</span><span class="o">{</span>HOST<span class="o">}</span>.<span class="nv">$$$$</span> <span class="nv">$$</span><span class="o">{</span>USER<span class="o">}</span> &lt;flexcompile
319<span class="k">else</span>
320  <span class="nb">echo</span> Environment: &gt;&gt;flexcompile
321  env &gt;&gt; flexcompile
322  mail -s <span class="s2">&quot;ERROR! flexcompile.</span><span class="nv">$$</span><span class="s2">{HOST}.</span><span class="nv">$$$$</span><span class="s2">&quot;</span> <span class="nv">$$</span><span class="o">{</span>USER<span class="o">}</span> &lt;flexcompile
323<span class="k">fi</span>
324</pre></div>
325</div>
326</div></blockquote>
327</div>
328<div class="section" id="submitscript-template">
329<h2>submitscript.template<a class="headerlink" href="#submitscript-template" title="Permalink to this headline"></a></h2>
330<blockquote>
331<div><p>This template is used to create the actual job script file called <code class="docutils literal notranslate"><span class="pre">job.ksh</span></code> for the execution of <code class="docutils literal notranslate"><span class="pre">flex_extract</span></code> in the application modes <strong>remote</strong> and <strong>gateway</strong>.</p>
332<p>At the beginning, some directives for the batch system are set.
333On the <strong>ecgate</strong> server, the <code class="docutils literal notranslate"><span class="pre">SBATCH</span></code> comments are the directives for the SLURM workload manager. A description of the single lines can be found at <a class="reference external" href="https://confluence.ecmwf.int/display/UDOC/Writing+SLURM+jobs">SLURM directives</a>.
334For the high performance computers <strong>cca</strong> and <strong>ccb</strong>, the <code class="docutils literal notranslate"><span class="pre">PBS</span></code> comments are necessary;
335for details see <a class="reference external" href="https://confluence.ecmwf.int/display/UDOC/Batch+environment%3A++PBS">PBS directives</a>.</p>
336<p>The software environment requirements mentioned in <a class="reference internal" href="../../installation.html#ref-requirements"><span class="std std-ref">Dependencies</span></a> are prepared by loading the corresponding modules depending on the <code class="docutils literal notranslate"><span class="pre">HOST</span></code>. It should not be changed without testing.</p>
337<p>Afterwards, the run directory and the <code class="docutils literal notranslate"><span class="pre">CONTROL</span></code> file are created and <code class="docutils literal notranslate"><span class="pre">flex_extract</span></code> is executed. In the end, a log file is send by email.</p>
338<div class="highlight-ksh notranslate"><div class="highlight"><pre><span></span><span class="ch">#!/bin/ksh</span>
339
340<span class="c1"># ON ECGB:</span>
341<span class="c1"># start with ecaccess-job-submit -queueName ecgb NAME_OF_THIS_FILE  on gateway server</span>
342<span class="c1"># start with sbatch NAME_OF_THIS_FILE directly on machine</span>
343
344<span class="c1">#SBATCH --workdir=/scratch/ms/at/km4a</span>
345<span class="c1">#SBATCH --qos=normal</span>
346<span class="c1">#SBATCH --job-name=flex_ecmwf</span>
347<span class="c1">#SBATCH --output=flex_ecmwf.%j.out</span>
348<span class="c1">#SBATCH --error=flex_ecmwf.%j.out</span>
349<span class="c1">#SBATCH --mail-type=FAIL</span>
350<span class="c1">#SBATCH --time=12:00:00</span>
351
352<span class="c1">## CRAY specific batch requests</span>
353<span class="c1">##PBS -N flex_ecmwf</span>
354<span class="c1">##PBS -q np</span>
355<span class="c1">##PBS -S /usr/bin/ksh</span>
356<span class="c1">## -o /scratch/ms/at/km4a/flex_ecmwf.$${PBS_JOBID}.out</span>
357<span class="c1">## job output is in .ecaccess_DO_NOT_REMOVE</span>
358<span class="c1">##PBS -j oe</span>
359<span class="c1">##PBS -V</span>
360<span class="c1">##PBS -l EC_threads_per_task=24</span>
361<span class="c1">##PBS -l EC_memory_per_task=32000MB</span>
362
363<span class="nb">set</span> -x
364<span class="nb">export</span> <span class="nv">VERSION</span><span class="o">=</span><span class="m">7</span>.1
365<span class="k">case</span> <span class="nv">$$</span><span class="o">{</span>HOST<span class="o">}</span> in
366  *ecg*<span class="o">)</span>
367  module unload grib_api
368  module unload emos
369  module load python3
370  module load eccodes
371  module load emos/455-r64
372  <span class="nb">export</span> <span class="nv">PATH</span><span class="o">=</span><span class="si">${</span><span class="nv">PATH</span><span class="si">}</span>:<span class="si">${</span><span class="nv">HOME</span><span class="si">}</span>/flex_extract_v7.1/Source/Python
373  <span class="p">;;</span>
374  *cca*<span class="o">)</span>
375  module switch PrgEnv-cray PrgEnv-intel
376  module load python3
377  module load eccodes
378  module load emos/455-r64
379  <span class="nb">export</span> <span class="nv">SCRATCH</span><span class="o">=</span><span class="si">${</span><span class="nv">TMPDIR</span><span class="si">}</span>
380  <span class="nb">export</span> <span class="nv">PATH</span><span class="o">=</span><span class="si">${</span><span class="nv">PATH</span><span class="si">}</span>:<span class="si">${</span><span class="nv">HOME</span><span class="si">}</span>/flex_extract_v7.1/Source/Python
381  <span class="p">;;</span>
382<span class="k">esac</span>
383
384<span class="nb">cd</span> <span class="nv">$$</span><span class="o">{</span>SCRATCH<span class="o">}</span>
385mkdir -p python<span class="nv">$$$$</span>
386<span class="nb">cd</span> python<span class="nv">$$$$</span>
387
388<span class="nb">export</span> <span class="nv">CONTROL</span><span class="o">=</span>CONTROL
389
390cat &gt;<span class="nv">$$</span><span class="o">{</span>CONTROL<span class="o">}</span><span class="s">&lt;&lt;EOF</span>
391<span class="s">$control_content</span>
392<span class="s">EOF</span>
393
394
395submit.py --controlfile<span class="o">=</span><span class="nv">$$</span><span class="o">{</span>CONTROL<span class="o">}</span> --inputdir<span class="o">=</span>./work --outputdir<span class="o">=</span>./work <span class="m">1</span>&gt; prot <span class="m">2</span>&gt;<span class="p">&amp;</span><span class="m">1</span>
396
397<span class="k">if</span> <span class="o">[</span> <span class="nv">$?</span> -eq <span class="m">0</span> <span class="o">]</span> <span class="p">;</span> <span class="k">then</span>
398  <span class="nv">l</span><span class="o">=</span><span class="m">0</span>
399  <span class="k">for</span> muser in <span class="sb">`</span>grep -i MAILOPS <span class="nv">$$</span><span class="o">{</span>CONTROL<span class="o">}</span><span class="sb">`</span><span class="p">;</span> <span class="k">do</span>
400      <span class="k">if</span> <span class="o">[</span> <span class="nv">$$</span><span class="o">{</span>l<span class="o">}</span> -gt <span class="m">0</span> <span class="o">]</span> <span class="p">;</span> <span class="k">then</span>
401         mail -s flex.<span class="nv">$$</span><span class="o">{</span>HOST<span class="o">}</span>.<span class="nv">$$$$</span> <span class="nv">$$</span><span class="o">{</span>muser<span class="o">}</span> &lt;prot
402      <span class="k">fi</span>
403      <span class="nv">l</span><span class="o">=</span><span class="k">$((</span><span class="nv">$$</span><span class="o">{</span>l<span class="o">}+</span><span class="m">1</span><span class="k">))</span>
404  <span class="k">done</span>
405<span class="k">else</span>
406  <span class="nv">l</span><span class="o">=</span><span class="m">0</span>
407  <span class="k">for</span> muser in <span class="sb">`</span>grep -i MAILFAIL <span class="nv">$$</span><span class="o">{</span>CONTROL<span class="o">}</span><span class="sb">`</span><span class="p">;</span> <span class="k">do</span>
408      <span class="k">if</span> <span class="o">[</span> <span class="nv">$$</span><span class="o">{</span>l<span class="o">}</span> -gt <span class="m">0</span> <span class="o">]</span> <span class="p">;</span> <span class="k">then</span>
409         mail -s <span class="s2">&quot;ERROR! flex.</span><span class="nv">$$</span><span class="s2">{HOST}.</span><span class="nv">$$$$</span><span class="s2">&quot;</span> <span class="nv">$$</span><span class="o">{</span>muser<span class="o">}</span> &lt;prot
410      <span class="k">fi</span>
411      <span class="nv">l</span><span class="o">=</span><span class="k">$((</span><span class="nv">$$</span><span class="o">{</span>l<span class="o">}+</span><span class="m">1</span><span class="k">))</span>
412  <span class="k">done</span>
413<span class="k">fi</span>
414</pre></div>
415</div>
416</div></blockquote>
417</div>
418<div class="section" id="jobscript-template">
419<h2>jobscript.template<a class="headerlink" href="#jobscript-template" title="Permalink to this headline"></a></h2>
420<blockquote>
421<div><p>This template is used to create the template for the execution job script <code class="docutils literal notranslate"><span class="pre">submitscript.template</span></code> for <code class="docutils literal notranslate"><span class="pre">flex_extract</span></code> in the installation process. A description of the file can be found under <code class="docutils literal notranslate"><span class="pre">submitscript.template</span></code>. Several parameters are set in this process, such as the user credentials and the <code class="docutils literal notranslate"><span class="pre">flex_extract</span></code> version number.</p>
422<div class="highlight-ksh notranslate"><div class="highlight"><pre><span></span><span class="ch">#!/bin/ksh</span>
423
424<span class="c1"># ON ECGB:</span>
425<span class="c1"># start with ecaccess-job-submit -queueName ecgb NAME_OF_THIS_FILE  on gateway server</span>
426<span class="c1"># start with sbatch NAME_OF_THIS_FILE directly on machine</span>
427
428<span class="c1">#SBATCH --workdir=/scratch/ms/$usergroup/$username</span>
429<span class="c1">#SBATCH --qos=normal</span>
430<span class="c1">#SBATCH --job-name=flex_ecmwf</span>
431<span class="c1">#SBATCH --output=flex_ecmwf.%j.out</span>
432<span class="c1">#SBATCH --error=flex_ecmwf.%j.out</span>
433<span class="c1">#SBATCH --mail-type=FAIL</span>
434<span class="c1">#SBATCH --time=12:00:00</span>
435
436<span class="c1">## CRAY specific batch requests</span>
437<span class="c1">##PBS -N flex_ecmwf</span>
438<span class="c1">##PBS -q np</span>
439<span class="c1">##PBS -S /usr/bin/ksh</span>
440<span class="c1">## -o /scratch/ms/$usergroup/$username/flex_ecmwf.$$$${PBS_JOBID}.out</span>
441<span class="c1">## job output is in .ecaccess_DO_NOT_REMOVE</span>
442<span class="c1">##PBS -j oe</span>
443<span class="c1">##PBS -V</span>
444<span class="c1">##PBS -l EC_threads_per_task=24</span>
445<span class="c1">##PBS -l EC_memory_per_task=32000MB</span>
446
447<span class="nb">set</span> -x
448<span class="nb">export</span> <span class="nv">VERSION</span><span class="o">=</span><span class="nv">$version_number</span>
449<span class="k">case</span> <span class="nv">$$$$</span><span class="o">{</span>HOST<span class="o">}</span> in
450  *ecg*<span class="o">)</span>
451  module unload grib_api
452  module unload emos
453  module load python3
454  module load eccodes
455  module load emos/455-r64
456  <span class="nb">export</span> <span class="nv">PATH</span><span class="o">=</span><span class="nv">$$$$</span><span class="o">{</span>PATH<span class="o">}</span>:<span class="nv">$fp_root_path</span>
457  <span class="p">;;</span>
458  *cca*<span class="o">)</span>
459  module switch PrgEnv-cray PrgEnv-intel
460  module load python3
461  module load eccodes
462  module load emos/455-r64
463  <span class="nb">export</span> <span class="nv">SCRATCH</span><span class="o">=</span><span class="nv">$$$$</span><span class="o">{</span>TMPDIR<span class="o">}</span>
464  <span class="nb">export</span> <span class="nv">PATH</span><span class="o">=</span><span class="nv">$$$$</span><span class="o">{</span>PATH<span class="o">}</span>:<span class="nv">$fp_root_path</span>
465  <span class="p">;;</span>
466<span class="k">esac</span>
467
468<span class="nb">cd</span> <span class="nv">$$$$</span><span class="o">{</span>SCRATCH<span class="o">}</span>
469mkdir -p python<span class="nv">$$$$$$$$</span>
470<span class="nb">cd</span> python<span class="nv">$$$$$$$$</span>
471
472<span class="nb">export</span> <span class="nv">CONTROL</span><span class="o">=</span>CONTROL
473
474cat &gt;<span class="nv">$$$$</span><span class="o">{</span>CONTROL<span class="o">}</span><span class="s">&lt;&lt;EOF</span>
475<span class="s">$$control_content</span>
476<span class="s">EOF</span>
477
478
479submit.py --controlfile<span class="o">=</span><span class="nv">$$$$</span><span class="o">{</span>CONTROL<span class="o">}</span> --inputdir<span class="o">=</span>./work --outputdir<span class="o">=</span>./work <span class="m">1</span>&gt; prot <span class="m">2</span>&gt;<span class="p">&amp;</span><span class="m">1</span>
480
481<span class="k">if</span> <span class="o">[</span> <span class="nv">$?</span> -eq <span class="m">0</span> <span class="o">]</span> <span class="p">;</span> <span class="k">then</span>
482  <span class="nv">l</span><span class="o">=</span><span class="m">0</span>
483  <span class="k">for</span> muser in <span class="sb">`</span>grep -i MAILOPS <span class="nv">$$$$</span><span class="o">{</span>CONTROL<span class="o">}</span><span class="sb">`</span><span class="p">;</span> <span class="k">do</span>
484      <span class="k">if</span> <span class="o">[</span> <span class="nv">$$$$</span><span class="o">{</span>l<span class="o">}</span> -gt <span class="m">0</span> <span class="o">]</span> <span class="p">;</span> <span class="k">then</span>
485         mail -s flex.<span class="nv">$$$$</span><span class="o">{</span>HOST<span class="o">}</span>.<span class="nv">$$$$$$$$</span> <span class="nv">$$$$</span><span class="o">{</span>muser<span class="o">}</span> &lt;prot
486      <span class="k">fi</span>
487      <span class="nv">l</span><span class="o">=</span><span class="k">$((</span><span class="nv">$$$$</span><span class="o">{</span>l<span class="o">}+</span><span class="m">1</span><span class="k">))</span>
488  <span class="k">done</span>
489<span class="k">else</span>
490  <span class="nv">l</span><span class="o">=</span><span class="m">0</span>
491  <span class="k">for</span> muser in <span class="sb">`</span>grep -i MAILFAIL <span class="nv">$$$$</span><span class="o">{</span>CONTROL<span class="o">}</span><span class="sb">`</span><span class="p">;</span> <span class="k">do</span>
492      <span class="k">if</span> <span class="o">[</span> <span class="nv">$$$$</span><span class="o">{</span>l<span class="o">}</span> -gt <span class="m">0</span> <span class="o">]</span> <span class="p">;</span> <span class="k">then</span>
493         mail -s <span class="s2">&quot;ERROR! flex.</span><span class="nv">$$$$</span><span class="s2">{HOST}.</span><span class="nv">$$$$$$$$</span><span class="s2">&quot;</span> <span class="nv">$$$$</span><span class="o">{</span>muser<span class="o">}</span> &lt;prot
494      <span class="k">fi</span>
495      <span class="nv">l</span><span class="o">=</span><span class="k">$((</span><span class="nv">$$$$</span><span class="o">{</span>l<span class="o">}+</span><span class="m">1</span><span class="k">))</span>
496  <span class="k">done</span>
497<span class="k">fi</span>
498</pre></div>
499</div>
500</div></blockquote>
501<div class="toctree-wrapper compound">
502</div>
503</div>
504</div>
505
506
507           </div>
508           
509          </div>
510          <footer>
511 
512    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
513     
514        <a href="../output.html" class="btn btn-neutral float-right" title="Output data" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
515     
516     
517        <a href="ecmwf_env.html" class="btn btn-neutral float-left" title="ECMWF user credential file ECMWF_ENV" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
518     
519    </div>
520 
521
522  <hr/>
523
524  <div role="contentinfo">
525    <p>
526        &copy; Copyright 2020, Anne Philipp, Leopold Haimberger and Petra Seibert
527
528    </p>
529  </div>
530  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
531
532</footer>
533
534        </div>
535      </div>
536
537    </section>
538
539  </div>
540 
541
542
543  <script type="text/javascript">
544      jQuery(function () {
545          SphinxRtdTheme.Navigation.enable(true);
546      });
547  </script>
548
549 
550 
551   
552   
553
554</body>
555</html>
Note: See TracBrowser for help on using the repository browser.
hosted by ZAMG