source: flex_extract.git/documentation/FORD/V5/Doc_original/sourcefile/preconvert.f90.html @ ee06999

ctbtodev
Last change on this file since ee06999 was ee06999, checked in by pesei <petra seibert @…>, 5 years ago

Initial version of Fortran documentation

with FORD v5

  • Property mode set to 100644
File size: 175.3 KB
Line 
1<!DOCTYPE html>
2<html lang="en">
3  <head>
4    <meta charset="utf-8">
5    <meta http-equiv="X-UA-Compatible" content="IE=edge">
6    <meta name="viewport" content="width=device-width, initial-scale=1">
7         
8         <meta name="description" content="Calculation of vertical velocity for FLEXPART">
9   
10    <meta name="author" content="Leopold Haimberger" >
11    <link rel="icon" href="../favicon.png">
12
13    <title>preconvert.f90 &ndash; Flex_extract: Calculation of etadot</title>
14
15    <link href="../css/bootstrap.min.css" rel="stylesheet">
16    <link href="../css/pygments.css" rel="stylesheet">
17    <link href="../css/font-awesome.min.css" rel="stylesheet">
18    <link href="../css/local.css" rel="stylesheet">
19   
20
21    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
22    <!--[if lt IE 9]>
23      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
24      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
25    <![endif]-->
26   
27    <script src="../js/jquery-2.1.3.min.js"></script>
28    <script src="../js/svg-pan-zoom.min.js"></script>
29
30   
31    <script src="../tipuesearch/tipuesearch_content.js"></script>
32    <link  href="../tipuesearch/tipuesearch.css" rel="stylesheet">
33    <script src="../tipuesearch/tipuesearch_set.js"></script>
34    <script src="../tipuesearch/tipuesearch.js"></script>
35   
36
37  </head>
38
39  <body>
40
41    <!-- Fixed navbar -->
42    <nav class="navbar navbar-inverse navbar-fixed-top">
43      <div class="container">
44        <div class="navbar-header">
45          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
46            <span class="sr-only">Toggle navigation</span>
47            <span class="icon-bar"></span>
48            <span class="icon-bar"></span>
49            <span class="icon-bar"></span>
50          </button>
51          <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a>
52        </div>
53        <div id="navbar" class="navbar-collapse collapse">
54          <ul class="nav navbar-nav">
55                               
56            <li class="dropdown hidden-xs visible-sm visible-md hidden-lg">
57              <a href="#" class="dropdown-toggle"
58              data-toggle="dropdown" role="button"
59              aria-haspopup="true"
60                 aria-expanded="false">Contents <span class="caret"></span></a>
61              <ul class="dropdown-menu">
62             
63            <li><a href="../lists/files.html">Source Files</a></li>
64                               
65                               
66            <li><a href="../lists/modules.html">Modules</a></li>
67                               
68           
69                               
70            <li><a href="../lists/procedures.html">Procedures</a></li>
71                               
72                                                               
73                               
74            <li><a href="../program/preconvert.html">Program</a></li>
75           
76            </ul>
77            </li>
78
79<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li>
80
81
82<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li>
83
84
85
86<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li>
87
88                             
89
90<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li>
91
92          </ul>
93       
94        <form action="../search.html" class="navbar-form navbar-right" role="search">
95        <div class="form-group">
96          <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required>
97        </div>
98<!--
99        <button type="submit" class="btn btn-default">Submit</button>
100-->
101        </form>
102       
103        </div><!--/.nav-collapse -->
104      </div>
105    </nav>
106
107    <div class="container">
108   
109 
110  <div class="row">
111    <h1>preconvert.f90
112    <small>Source File</small>
113   
114    </h1>
115   
116<div class="row">
117  <div class="col-lg-12">
118<div class="well well-sm">
119  <ul class="list-inline" style="margin-bottom:0px;display:inline">
120     
121     
122     
123     
124   
125   
126     <li><i class="fa fa-list-ol"></i>
127       <a data-toggle="tooltip"
128          data-placement="bottom" data-html="true"
129          title="45.0% of total for source files.">598 statements</a>
130     </li> 
131     
132     
133    <li><i class="fa fa-code"></i><a href="../src/preconvert.f90"> Source File</a></li>
134     
135  </ul>
136  <ol class="breadcrumb in-well text-right">
137 
138     <li class="active">preconvert.f90</li>
139  </ol>
140</div>
141</div>
142</div>
143<script>
144  $(function () {
145  $('[data-toggle="tooltip"]').tooltip()
146  })
147</script>
148
149  </div>
150  <div class="row">
151    <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg">
152   
153<div id="sidebar">
154 
155
156
157
158
159
160<div class="panel panel-primary">
161  <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#progs-0">Programs</a></h3></div>
162  <div id="progs-0" class="panel-collapse collapse">
163    <div class="list-group">
164     
165      <a class="list-group-item" href="../program/preconvert.html">PRECONVERT</a>
166     
167    </div>
168  </div>
169</div>
170
171
172
173
174
175
176
177
178<div class="panel panel-primary">
179  <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#funcs-0">Functions</a></h3></div>
180  <div id="funcs-0" class="panel-collapse collapse">
181    <div class="list-group">
182     
183      <a class="list-group-item" href="../proc/ia.html">IA</a>
184     
185    </div>
186  </div>
187</div>
188
189
190<div class="panel panel-primary">
191  <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#subs-0">Subroutines</a></h3></div>
192  <div class="list-group">
193    <div id="subs-0" class="panel-collapse collapse">
194     
195      <a class="list-group-item" href="../proc/statis.html">STATIS</a>
196     
197    </div>
198  </div>
199</div>
200
201
202
203
204
205
206
207
208<div class="panel panel-primary">
209  <div class="panel-heading text-left"><h3 class="panel-title">Source Code</h3></div>
210  <div class="list-group">
211    <a class="list-group-item" href="../sourcefile/preconvert.f90.html#src">preconvert.f90</a>
212  </div>
213</div>
214
215
216  <hr>
217 
218
219<div class="panel panel-default">
220  <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#allfiles-0">All Source Files</a></h3></div>
221  <div id="allfiles-0" class="panel-collapse collapse">
222    <div class="list-group">
223     
224      <a class="list-group-item" href="../sourcefile/grphreal.f.html">grphreal.f</a>
225     
226      <a class="list-group-item" href="../sourcefile/phgrreal.f.html">phgrreal.f</a>
227     
228      <a class="list-group-item" href="../sourcefile/preconvert.f90.html">preconvert.f90</a>
229     
230      <a class="list-group-item" href="../sourcefile/rwgrib2.f90.html">rwGRIB2.f90</a>
231     
232    </div>
233  </div>
234</div>
235
236
237</div> 
238
239    </div>
240    <div class="col-md-9" id='text'>
241   
242   
243    <h3>This File Depends On</h3>
244   
245                <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?>
246<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
247 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
248<!-- Generated by graphviz version 2.38.0 (20140413.2041)
249 -->
250<!-- Title: sourcefile~~preconvert.f90~~EfferentGraph Pages: 1 -->
251<svg id="sourcefilepreconvertf90EfferentGraph" width="293pt" height="94pt"
252 viewBox="0.00 0.00 293.00 94.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
253<g id="sourcefile~~preconvert.f90~~EfferentGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 90)">
254<title>sourcefile~~preconvert.f90~~EfferentGraph</title>
255<polygon fill="white" stroke="none" points="-4,4 -4,-90 289,-90 289,4 -4,4"/>
256<!-- sourcefile~preconvert.f90 -->
257<g id="sourcefile~~preconvert.f90~~EfferentGraph_node1" class="node"><title>sourcefile~preconvert.f90</title>
258<polygon fill="none" stroke="black" points="285,-66 203,-66 203,-42 285,-42 285,-66"/>
259<text text-anchor="middle" x="244" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50">preconvert.f90</text>
260</g>
261<!-- sourcefile~grphreal.f -->
262<g id="sourcefile~~preconvert.f90~~EfferentGraph_node2" class="node"><title>sourcefile~grphreal.f</title>
263<g id="a_sourcefile~~preconvert.f90~~EfferentGraph_node2"><a xlink:href="../sourcefile/grphreal.f.html" xlink:title="grphreal.f">
264<polygon fill="#f0ad4e" stroke="#f0ad4e" points="159.5,-66 101.5,-66 101.5,-42 159.5,-42 159.5,-66"/>
265<text text-anchor="middle" x="130.5" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grphreal.f</text>
266</a>
267</g>
268</g>
269<!-- sourcefile~grphreal.f&#45;&gt;sourcefile~preconvert.f90 -->
270<g id="sourcefile~~preconvert.f90~~EfferentGraph_edge2" class="edge"><title>sourcefile~grphreal.f&#45;&gt;sourcefile~preconvert.f90</title>
271<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M159.636,-54C169.614,-54 181.17,-54 192.44,-54"/>
272<polygon fill="#000000" stroke="#000000" points="192.657,-57.5001 202.657,-54 192.657,-50.5001 192.657,-57.5001"/>
273</g>
274<!-- sourcefile~phgrreal.f -->
275<g id="sourcefile~~preconvert.f90~~EfferentGraph_node3" class="node"><title>sourcefile~phgrreal.f</title>
276<g id="a_sourcefile~~preconvert.f90~~EfferentGraph_node3"><a xlink:href="../sourcefile/phgrreal.f.html" xlink:title="phgrreal.f">
277<polygon fill="#f0ad4e" stroke="#f0ad4e" points="58,-86 3.55271e-15,-86 3.55271e-15,-62 58,-62 58,-86"/>
278<text text-anchor="middle" x="29" y="-71.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">phgrreal.f</text>
279</a>
280</g>
281</g>
282<!-- sourcefile~phgrreal.f&#45;&gt;sourcefile~preconvert.f90 -->
283<g id="sourcefile~~preconvert.f90~~EfferentGraph_edge3" class="edge"><title>sourcefile~phgrreal.f&#45;&gt;sourcefile~preconvert.f90</title>
284<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M58.0369,-74.5329C69.224,-74.7207 82.2211,-74.908 94,-75 126.443,-75.2534 134.85,-79.3601 167,-75 176.97,-73.6479 187.48,-71.3411 197.398,-68.7393"/>
285<polygon fill="#000000" stroke="#000000" points="198.371,-72.1018 207.076,-66.0636 196.505,-65.3548 198.371,-72.1018"/>
286</g>
287<!-- sourcefile~phgrreal.f&#45;&gt;sourcefile~grphreal.f -->
288<g id="sourcefile~~preconvert.f90~~EfferentGraph_edge1" class="edge"><title>sourcefile~phgrreal.f&#45;&gt;sourcefile~grphreal.f</title>
289<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M58.2466,-68.3223C68.5398,-66.2533 80.3539,-63.8786 91.3641,-61.6655"/>
290<polygon fill="#000000" stroke="#000000" points="92.0687,-65.094 101.183,-59.6919 90.6892,-58.2312 92.0687,-65.094"/>
291</g>
292<!-- sourcefile~rwgrib2.f90 -->
293<g id="sourcefile~~preconvert.f90~~EfferentGraph_node4" class="node"><title>sourcefile~rwgrib2.f90</title>
294<g id="a_sourcefile~~preconvert.f90~~EfferentGraph_node4"><a xlink:href="../sourcefile/rwgrib2.f90.html" xlink:title="rwGRIB2.f90">
295<polygon fill="#f0ad4e" stroke="#f0ad4e" points="167,-24 94,-24 94,-0 167,-0 167,-24"/>
296<text text-anchor="middle" x="130.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">rwGRIB2.f90</text>
297</a>
298</g>
299</g>
300<!-- sourcefile~rwgrib2.f90&#45;&gt;sourcefile~preconvert.f90 -->
301<g id="sourcefile~~preconvert.f90~~EfferentGraph_edge4" class="edge"><title>sourcefile~rwgrib2.f90&#45;&gt;sourcefile~preconvert.f90</title>
302<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M163.451,-24.0355C175.348,-28.5169 189.025,-33.6688 201.646,-38.4227"/>
303<polygon fill="#000000" stroke="#000000" points="200.452,-41.713 211.044,-41.9627 202.92,-35.1623 200.452,-41.713"/>
304</g>
305</g>
306</svg>
307</div>
308                <div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div>
309                <div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog">
310                  <div class="modal-dialog modal-lg" role="document">
311                    <div class="modal-content">
312                      <div class="modal-header">
313                        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
314                        <h4 class="modal-title" id="-graph-help-label">Graph Key</h4>
315                      </div>
316                      <div class="modal-body">
317                       
318    <p>Nodes of different colours represent the following: </p>
319    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
320<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
321 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
322<!-- Generated by graphviz version 2.38.0 (20140413.2041)
323 -->
324<!-- Title: Graph Key Pages: 1 -->
325<svg width="190pt" height="32pt"
326 viewBox="0.00 0.00 190.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
327<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)">
328<title>Graph Key</title>
329<polygon fill="white" stroke="none" points="-4,4 -4,-28 186,-28 186,4 -4,4"/>
330<!-- Source File -->
331<g id="node1" class="node"><title>Source File</title>
332<polygon fill="#f0ad4e" stroke="#f0ad4e" points="67,-24 0,-24 0,-0 67,-0 67,-24"/>
333<text text-anchor="middle" x="33.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Source File</text>
334</g>
335<!-- This Page&#39;s Entity -->
336<g id="node2" class="node"><title>This Page&#39;s Entity</title>
337<polygon fill="none" stroke="black" points="182,-24 85,-24 85,-0 182,-0 182,-24"/>
338<text text-anchor="middle" x="133.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page&#39;s Entity</text>
339</g>
340</g>
341</svg>
342
343   
344    <p>Solid arrows point from a file to a file which depends upon it. A file
345    is dependent upon another if the latter must be compiled before the former
346    can be.
347    </p>
348   
349                      </div>
350                    </div>
351                  </div>
352                </div>
353               
354   
355     
356      <br>
357
358    <section class="visible-xs visible-sm hidden-md">
359     
360
361
362
363
364
365<div class="panel panel-primary">
366  <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#progs-1">Programs</a></h3></div>
367  <div id="progs-1" class="panel-collapse collapse">
368    <div class="list-group">
369     
370      <a class="list-group-item" href="../program/preconvert.html">PRECONVERT</a>
371     
372    </div>
373  </div>
374</div>
375
376
377
378
379
380
381
382
383<div class="panel panel-primary">
384  <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#funcs-1">Functions</a></h3></div>
385  <div id="funcs-1" class="panel-collapse collapse">
386    <div class="list-group">
387     
388      <a class="list-group-item" href="../proc/ia.html">IA</a>
389     
390    </div>
391  </div>
392</div>
393
394
395<div class="panel panel-primary">
396  <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#subs-1">Subroutines</a></h3></div>
397  <div class="list-group">
398    <div id="subs-1" class="panel-collapse collapse">
399     
400      <a class="list-group-item" href="../proc/statis.html">STATIS</a>
401     
402    </div>
403  </div>
404</div>
405
406
407
408
409
410
411
412
413<div class="panel panel-primary">
414  <div class="panel-heading text-left"><h3 class="panel-title">Source Code</h3></div>
415  <div class="list-group">
416    <a class="list-group-item" href="../sourcefile/preconvert.f90.html#src">preconvert.f90</a>
417  </div>
418</div>
419
420
421    </section>
422    <br class="visible-xs visible-sm hidden-md">
423
424    <section>
425      <h2><span class="anchor" id="src"></span>Source Code</h2>
426    <div class="hl"><pre><span></span><a name="ln-1"></a>      <span class="k">PROGRAM </span><span class="n">PRECONVERT</span>
427<a name="ln-2"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span>
428<a name="ln-3"></a><span class="c">!                                                                 !</span>
429<a name="ln-4"></a><span class="c">! PROGRAM PRECONVERT - PREPARES INPUT DATA FOR POP MODEL METEOR-  !</span>
430<a name="ln-5"></a><span class="c">!                      OLOGICAL PREPROCESSOR                      !</span>
431<a name="ln-6"></a><span class="c">!                                                                 !</span>
432<a name="ln-7"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span>
433<a name="ln-8"></a><span class="c">!                                                                 !</span>
434<a name="ln-9"></a><span class="c">! CALCULATION OF ETAPOINT ON A REGULAR LAMDA/PHI GRID AND WRITING !</span>
435<a name="ln-10"></a><span class="c">! U,V,ETAPOINT,T,PS,Q,SD,MSL,TCC,10U, 10V, 2T,2D,LSP,CP,SSHF,SSR, !</span>
436<a name="ln-11"></a><span class="c">! EWSS,NSSS TO AN OUTPUT FILE (GRIB 1 or 2 FORMAT).               ! </span>
437<a name="ln-12"></a><span class="c">!                                                                 !</span>
438<a name="ln-13"></a><span class="c">! AUTHORS: L. HAIMBERGER, G. WOTAWA, 1994-04                      !</span>
439<a name="ln-14"></a><span class="c">!                     adapted: A. BECK                            !</span>
440<a name="ln-15"></a><span class="c">!                     2003-05-11                                  !</span>
441<a name="ln-16"></a><span class="c">!          L. Haimberger 2006-12    V2.0                          !</span>
442<a name="ln-17"></a><span class="c">!                    modified to handle arbitrary regular grids   !</span>
443<a name="ln-18"></a><span class="c">!                    and T799 resolution data                     !</span>
444<a name="ln-19"></a><span class="c">!          L. Haimberger 2010-03    V4.0                          !</span>
445<a name="ln-20"></a><span class="c">!                    modified to grib edition 2 fields            !</span>
446<a name="ln-21"></a><span class="c">!                    and T1279 resolution data                    !</span>
447<a name="ln-22"></a><span class="c">!                                                                 !</span>
448<a name="ln-23"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span>
449<a name="ln-24"></a><span class="c">!                                                                 !</span>
450<a name="ln-25"></a><span class="c">! DESCRIPTION OF NEEDED INPUT:                                    !</span>
451<a name="ln-26"></a><span class="c">!                                                                 !</span>
452<a name="ln-27"></a><span class="c">! UNIT  FILE      PARAMETER(S)    DATA REPRESENTATION             !</span>
453<a name="ln-28"></a><span class="c">!                                                                 !</span>
454<a name="ln-29"></a><span class="c">! 11    fort.11   T,U,V           regular lamda phi grid          !</span>
455<a name="ln-30"></a><span class="c">! 12    fort.12   D               regular lamda phi grid          !</span>
456<a name="ln-31"></a><span class="c">! 13    fort.13   LNSP          fort.13  spherical harmonics             !</span>
457<a name="ln-32"></a><span class="c">! 14    fort.14   SD,MSL,TCC,10U,                                 !</span>
458<a name="ln-33"></a><span class="c">!                 10V,2T,2D       regular lamda phi grid          !</span>
459<a name="ln-34"></a><span class="c">! 16    fort.16   LSP,CP,SSHF,                                    !</span>
460<a name="ln-35"></a><span class="c">!                 SSR,EWSS,NSSS   regular lamda phi grid          !</span>
461<a name="ln-36"></a><span class="c">! 17    fort.17   Q               regular lamda phi grid          !</span>
462<a name="ln-37"></a><span class="c">!                                                                 !</span>
463<a name="ln-38"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span>
464<a name="ln-39"></a><span class="c">!                                                                 !</span>
465<a name="ln-40"></a><span class="c">! DESCRIPTION OF OUTPUT:                                          !</span>
466<a name="ln-41"></a><span class="c">!                                                                 !</span>
467<a name="ln-42"></a><span class="c">! UNIT  FILE      PARAMETER(S)    DATA REPRESENTATION             !</span>
468<a name="ln-43"></a><span class="c">!                                                                 !</span>
469<a name="ln-44"></a><span class="c">! 15    fort.15   U,V,ETA,T,PS,                                   !</span>
470<a name="ln-45"></a><span class="c">!                 Q,SD,MSL,TCC,                                   !</span>
471<a name="ln-46"></a><span class="c">!                 10U,10V,2T,2D,  regular lamda phi grid          !</span>
472<a name="ln-47"></a><span class="c">!                 LSP,CP,SSHF,                                    !</span>
473<a name="ln-48"></a><span class="c">!                 SSR,EWSS,NSSS                                   !</span>
474<a name="ln-49"></a><span class="c">!                                                                 !</span>
475<a name="ln-50"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span>
476<a name="ln-51"></a><span class="c">!</span>
477<a name="ln-52"></a>
478<a name="ln-53"></a>      <span class="k">USE </span><span class="n">PHTOGR</span>
479<a name="ln-54"></a>      <span class="k">USE </span><span class="n">GRTOPH</span>
480<a name="ln-55"></a>      <span class="k">USE </span><span class="n">FTRAFO</span>
481<a name="ln-56"></a>      <span class="k">USE </span><span class="n">RWGRIB2</span>
482<a name="ln-57"></a>      <span class="k">USE </span><span class="n">GRIB_API</span>
483<a name="ln-58"></a>
484<a name="ln-59"></a>      <span class="k">IMPLICIT NONE</span>
485<a name="ln-60"></a>
486<a name="ln-61"></a><span class="k">      </span><span class="kt">REAL</span><span class="p">,</span> <span class="k">ALLOCATABLE</span><span class="p">,</span> <span class="k">DIMENSION</span> <span class="p">(:,:)</span> <span class="kd">::</span> <span class="n">LNPS</span>
487<a name="ln-62"></a>      <span class="kt">REAL</span><span class="p">,</span> <span class="k">ALLOCATABLE</span><span class="p">,</span> <span class="k">DIMENSION</span> <span class="p">(:,:)</span> <span class="kd">::</span> <span class="n">Z</span>
488<a name="ln-63"></a>      <span class="kt">REAL</span><span class="p">,</span> <span class="k">ALLOCATABLE</span><span class="p">,</span> <span class="k">DIMENSION</span> <span class="p">(:,:,:)</span> <span class="kd">::</span> <span class="n">T</span><span class="p">,</span> <span class="n">UV</span> <span class="p">,</span> <span class="n">UV2</span>
489<a name="ln-64"></a>      <span class="kt">REAL</span><span class="p">,</span> <span class="k">ALLOCATABLE</span><span class="p">,</span> <span class="k">DIMENSION</span> <span class="p">(:,:,:)</span> <span class="kd">::</span> <span class="n">QA</span><span class="p">,</span><span class="n">OM</span><span class="p">,</span><span class="n">OMR</span>
490<a name="ln-65"></a>      <span class="kt">REAL</span><span class="p">,</span> <span class="k">ALLOCATABLE</span><span class="p">,</span> <span class="k">DIMENSION</span> <span class="p">(:,:,:)</span> <span class="kd">::</span> <span class="n">DIV</span><span class="p">,</span> <span class="n">ETA</span><span class="p">,</span><span class="n">ETAR</span>
491<a name="ln-66"></a>      <span class="kt">REAL</span><span class="p">,</span> <span class="k">ALLOCATABLE</span><span class="p">,</span> <span class="k">DIMENSION</span> <span class="p">(:,:)</span> <span class="kd">::</span> <span class="n">DPSDL</span><span class="p">,</span> <span class="n">DPSDM</span>
492<a name="ln-67"></a>      <span class="kt">REAL</span><span class="p">,</span> <span class="k">ALLOCATABLE</span><span class="p">,</span> <span class="k">DIMENSION</span> <span class="p">(:,:,:)</span> <span class="kd">::</span> <span class="n">PS</span><span class="p">,</span><span class="n">DPSDT</span>
493<a name="ln-68"></a>      <span class="kt">REAL</span><span class="p">,</span> <span class="k">ALLOCATABLE</span><span class="p">,</span> <span class="k">DIMENSION</span> <span class="p">(:,:,:)</span> <span class="kd">::</span> <span class="n">SURF</span><span class="p">,</span><span class="n">FLUX</span><span class="p">,</span><span class="n">OROLSM</span>
494<a name="ln-69"></a>      <span class="kt">REAL</span><span class="p">,</span> <span class="k">ALLOCATABLE</span><span class="p">,</span> <span class="k">DIMENSION</span> <span class="p">(:)</span> <span class="kd">::</span> <span class="n">WSAVE</span><span class="p">,</span><span class="n">H</span><span class="p">,</span><span class="n">SINL</span><span class="p">,</span><span class="n">COSL</span><span class="p">,</span><span class="n">WSAVE2</span>
495<a name="ln-70"></a>      <span class="kt">REAL</span><span class="p">,</span> <span class="k">ALLOCATABLE</span><span class="p">,</span> <span class="k">DIMENSION</span> <span class="p">(:)</span> <span class="kd">::</span> <span class="n">BREITE</span><span class="p">,</span> <span class="n">GBREITE</span><span class="p">,</span><span class="n">AK</span><span class="p">,</span> <span class="n">BK</span><span class="p">,</span><span class="n">pv</span>
496<a name="ln-71"></a>
497<a name="ln-72"></a><span class="c">! Arrays for Gaussian grid calculations</span>
498<a name="ln-73"></a>
499<a name="ln-74"></a>      <span class="kt">REAL</span>  <span class="kd">::</span> <span class="n">X1</span><span class="p">,</span><span class="n">X2</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">,</span><span class="n">LAM</span>
500<a name="ln-75"></a>      <span class="kt">REAL</span><span class="p">,</span><span class="k">ALLOCATABLE</span> <span class="kd">::</span> <span class="n">CUA</span><span class="p">(:,:,:),</span><span class="n">CVA</span><span class="p">(:,:,:)</span>
501<a name="ln-76"></a>
502<a name="ln-77"></a>      <span class="kt">REAL</span><span class="p">,</span> <span class="k">ALLOCATABLE</span><span class="p">,</span> <span class="k">DIMENSION</span> <span class="p">(:,:)</span> <span class="kd">::</span> <span class="n">P</span><span class="p">,</span><span class="n">PP</span> <span class="c">!,P2</span>
503<a name="ln-78"></a>      <span class="kt">REAL</span><span class="p">,</span> <span class="k">ALLOCATABLE</span><span class="p">,</span> <span class="k">DIMENSION</span> <span class="p">(:,:)</span> <span class="kd">::</span> <span class="n">XMN</span><span class="p">,</span><span class="n">HILFUV</span>
504<a name="ln-79"></a>      <span class="kt">REAL</span><span class="p">,</span> <span class="k">ALLOCATABLE</span><span class="p">,</span> <span class="k">DIMENSION</span> <span class="p">(:)</span> <span class="kd">::</span> <span class="n">LNPMN</span><span class="p">,</span><span class="n">LNPMN2</span><span class="p">,</span><span class="n">LNPMN3</span>
505<a name="ln-80"></a>      <span class="kt">REAL</span><span class="p">,</span> <span class="k">ALLOCATABLE</span><span class="p">,</span> <span class="k">DIMENSION</span> <span class="p">(:)</span> <span class="kd">::</span> <span class="n">WEIGHT</span>
506<a name="ln-81"></a>      <span class="kt">REAL</span><span class="p">,</span> <span class="k">ALLOCATABLE</span><span class="p">,</span> <span class="k">DIMENSION</span> <span class="p">(:,:)</span> <span class="kd">::</span> <span class="n">UGVG</span>
507<a name="ln-82"></a>      <span class="kt">REAL</span><span class="p">,</span> <span class="k">ALLOCATABLE</span><span class="p">,</span> <span class="k">DIMENSION</span> <span class="p">(:,:)</span> <span class="kd">::</span> <span class="n">DG</span><span class="p">,</span> <span class="n">ETAG</span>
508<a name="ln-83"></a>      <span class="kt">REAL</span><span class="p">,</span> <span class="k">ALLOCATABLE</span><span class="p">,</span> <span class="k">DIMENSION</span> <span class="p">(:,:)</span> <span class="kd">::</span> <span class="n">GWSAVE</span>
509<a name="ln-84"></a>      <span class="kt">REAL</span><span class="p">,</span> <span class="k">ALLOCATABLE</span><span class="p">,</span> <span class="k">DIMENSION</span> <span class="p">(:)</span> <span class="kd">::</span> <span class="n">PSG</span><span class="p">,</span><span class="n">HILF</span>
510<a name="ln-85"></a>
511<a name="ln-86"></a><span class="c">! end arrays for Gaussian grid calculations</span>
512<a name="ln-87"></a>
513<a name="ln-88"></a>      <span class="kt">INTEGER</span><span class="p">,</span> <span class="k">ALLOCATABLE</span><span class="p">,</span> <span class="k">DIMENSION</span> <span class="p">(:)</span> <span class="kd">::</span> <span class="n">MLAT</span><span class="p">,</span><span class="n">MPSURF</span><span class="p">,</span><span class="n">MPFLUX</span><span class="p">,</span><span class="n">MPORO</span><span class="p">,</span><span class="n">MPAR</span>
514<a name="ln-89"></a>      <span class="kt">INTEGER</span><span class="p">,</span> <span class="k">ALLOCATABLE</span> <span class="kd">::</span> <span class="n">GIFAX</span><span class="p">(:,:)</span>
515<a name="ln-90"></a>
516<a name="ln-91"></a>      <span class="kt">REAL </span><span class="n">PI</span><span class="p">,</span><span class="n">COSB</span><span class="p">,</span><span class="n">DAK</span><span class="p">,</span><span class="n">DBK</span><span class="p">,</span><span class="n">P00</span>
517<a name="ln-92"></a>      <span class="kt">REAL </span><span class="n">URLAR8</span><span class="p">,</span><span class="n">JMIN1</span><span class="p">,</span><span class="n">LLLAR8</span><span class="p">,</span><span class="n">MAXBMIN1</span><span class="p">,</span><span class="n">PIR8</span><span class="p">,</span><span class="n">DCOSB</span>
518<a name="ln-93"></a>
519<a name="ln-94"></a>      <span class="kt">INTEGER </span><span class="n">I</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">,</span><span class="n">L</span><span class="p">,</span><span class="n">IERR</span><span class="p">,</span><span class="n">M</span><span class="p">,</span><span class="n">LTEST</span><span class="p">,</span><span class="n">MK</span><span class="p">,</span><span class="n">NGI</span><span class="p">,</span><span class="n">NGJ</span>
520<a name="ln-95"></a>      <span class="kt">INTEGER </span><span class="n">MFLUX</span><span class="p">,</span><span class="n">MSURF</span><span class="p">,</span><span class="n">MORO</span>
521<a name="ln-96"></a>      <span class="kt">INTEGER </span><span class="n">LUNIT</span><span class="p">,</span><span class="n">LUNIT2</span>
522<a name="ln-97"></a>
523<a name="ln-98"></a>      <span class="kt">INTEGER </span><span class="n">MAXL</span><span class="p">,</span> <span class="n">MAXB</span><span class="p">,</span> <span class="n">MLEVEL</span><span class="p">,</span> <span class="n">LEVOUT</span><span class="p">,</span><span class="n">LEVMIN</span><span class="p">,</span><span class="n">LEVMAX</span>
524<a name="ln-99"></a>      <span class="kt">INTEGER </span><span class="n">MOMEGA</span><span class="p">,</span><span class="n">MOMEGADIFF</span><span class="p">,</span><span class="n">MGAUSS</span><span class="p">,</span><span class="n">MSMOOTH</span><span class="p">,</span> <span class="n">MNAUF</span><span class="p">,</span><span class="n">META</span><span class="p">,</span><span class="n">METADIFF</span>
525<a name="ln-100"></a>      <span class="kt">INTEGER </span><span class="n">MDPDETA</span><span class="p">,</span><span class="n">METAPAR</span>
526<a name="ln-101"></a>      <span class="kt">REAL </span><span class="n">RLO0</span><span class="p">,</span> <span class="n">RLO1</span><span class="p">,</span> <span class="n">RLA0</span><span class="p">,</span> <span class="n">RLA1</span>
527<a name="ln-102"></a>      <span class="kt">CHARACTER</span><span class="o">*</span><span class="mi">300</span> <span class="n">MLEVELIST</span>
528<a name="ln-103"></a>
529<a name="ln-104"></a>      <span class="kt">INTEGER </span><span class="n">MAUF</span><span class="p">,</span> <span class="n">MANF</span><span class="p">,</span><span class="n">IFAX</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span>
530<a name="ln-105"></a>
531<a name="ln-106"></a>      <span class="kt">INTEGER </span><span class="n">IGRIB</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">iret</span><span class="p">,</span><span class="n">ogrib</span>
532<a name="ln-107"></a>
533<a name="ln-108"></a>      <span class="kt">CHARACTER</span><span class="o">*</span><span class="mi">80</span> <span class="n">FILENAME</span>
534<a name="ln-109"></a>
535<a name="ln-110"></a>      <span class="k">NAMELIST</span> <span class="o">/</span><span class="n">NAMGEN</span><span class="o">/</span> <span class="p">&amp;</span>
536<a name="ln-111"></a>                 <span class="n">MAXL</span><span class="p">,</span> <span class="n">MAXB</span><span class="p">,</span> <span class="p">&amp;</span>
537<a name="ln-112"></a>                 <span class="n">MLEVEL</span><span class="p">,</span><span class="n">MLEVELIST</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">METAPAR</span><span class="p">,</span> <span class="p">&amp;</span>
538<a name="ln-113"></a>                 <span class="n">RLO0</span><span class="p">,</span> <span class="n">RLO1</span><span class="p">,</span> <span class="n">RLA0</span><span class="p">,</span> <span class="n">RLA1</span><span class="p">,</span> <span class="p">&amp;</span>
539<a name="ln-114"></a>                 <span class="n">MOMEGA</span><span class="p">,</span><span class="n">MOMEGADIFF</span><span class="p">,</span><span class="n">MGAUSS</span><span class="p">,</span><span class="n">MSMOOTH</span><span class="p">,</span><span class="n">META</span><span class="p">,</span><span class="n">METADIFF</span><span class="p">,&amp;</span>
540<a name="ln-115"></a>                 <span class="n">MDPDETA</span>
541<a name="ln-116"></a>
542<a name="ln-117"></a>      <span class="n">LTEST</span><span class="o">=</span><span class="mi">1</span>
543<a name="ln-118"></a>
544<a name="ln-119"></a>      <span class="k">call </span><span class="n">posnam</span> <span class="p">(</span><span class="mi">4</span><span class="p">,</span><span class="s1">&#39;NAMGEN&#39;</span><span class="p">)</span>
545<a name="ln-120"></a>      <span class="k">read</span> <span class="p">(</span><span class="mi">4</span><span class="p">,</span><span class="n">NAMGEN</span><span class="p">)</span>
546<a name="ln-121"></a>
547<a name="ln-122"></a>      <span class="n">MAUF</span><span class="o">=</span><span class="nb">INT</span><span class="p">(</span><span class="mi">36</span><span class="mf">0.</span><span class="o">*</span><span class="p">(</span><span class="kt">REAL</span><span class="p">(</span><span class="n">MAXL</span><span class="p">)</span><span class="o">-</span><span class="mf">1.</span><span class="p">)</span><span class="o">/</span><span class="p">(</span><span class="n">RLO1</span><span class="o">-</span><span class="n">RLO0</span><span class="p">)</span><span class="o">+</span><span class="mf">0.0001</span><span class="p">)</span>
548<a name="ln-123"></a><span class="c">!      PRINT*, MAUF</span>
549<a name="ln-124"></a>
550<a name="ln-125"></a>      <span class="n">MANF</span><span class="o">=</span><span class="nb">INT</span><span class="p">(</span><span class="kt">REAL</span><span class="p">(</span><span class="n">MAUF</span><span class="p">)</span><span class="o">/</span><span class="mi">36</span><span class="mf">0.</span><span class="o">*</span><span class="p">(</span><span class="mi">36</span><span class="mf">0.</span><span class="o">+</span><span class="n">RLO0</span><span class="p">)</span><span class="o">+</span><span class="mf">1.0001</span><span class="p">)</span>
551<a name="ln-126"></a>      <span class="k">IF</span><span class="p">(</span><span class="n">MANF</span> <span class="p">.</span><span class="n">gt</span><span class="p">.</span> <span class="n">MAUF</span><span class="p">)</span> <span class="n">MANF</span><span class="o">=</span><span class="n">MANF</span><span class="o">-</span><span class="n">MAUF</span>
552<a name="ln-127"></a>
553<a name="ln-128"></a>
554<a name="ln-129"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span>
555<a name="ln-130"></a><span class="c">!                       ALLOCATE VARIABLES                        !</span>
556<a name="ln-131"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span>
557<a name="ln-132"></a>
558<a name="ln-133"></a>      <span class="k">ALLOCATE</span> <span class="p">(</span><span class="n">LNPS</span><span class="p">(</span><span class="mi">0</span><span class="p">:(</span><span class="n">MNAUF</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">*</span><span class="p">(</span><span class="n">MNAUF</span><span class="o">+</span><span class="mi">2</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">))</span>
559<a name="ln-134"></a>
560<a name="ln-135"></a>      <span class="k">ALLOCATE</span> <span class="p">(</span><span class="n">H</span><span class="p">(</span><span class="mi">0</span><span class="p">:(</span><span class="n">MNAUF</span><span class="o">+</span><span class="mi">2</span><span class="p">)</span><span class="o">*</span><span class="p">(</span><span class="n">MNAUF</span><span class="o">+</span><span class="mi">3</span><span class="p">)</span><span class="o">/</span><span class="mi">2</span><span class="p">))</span>
561<a name="ln-136"></a>
562<a name="ln-137"></a>     
563<a name="ln-138"></a>      <span class="k">ALLOCATE</span> <span class="p">(</span><span class="n">OM</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span> <span class="n">MAXB</span><span class="p">,</span> <span class="n">MLEVEL</span><span class="p">))</span>
564<a name="ln-139"></a>
565<a name="ln-140"></a>      <span class="k">ALLOCATE</span> <span class="p">(</span><span class="n">ETA</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">))</span>
566<a name="ln-141"></a>
567<a name="ln-142"></a>      <span class="k">ALLOCATE</span> <span class="p">(</span><span class="n">PS</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span> <span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">),</span><span class="n">DPSDT</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span> <span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">))</span>
568<a name="ln-143"></a>
569<a name="ln-144"></a>     
570<a name="ln-145"></a>      <span class="k">ALLOCATE</span> <span class="p">(</span><span class="n">WSAVE</span><span class="p">(</span><span class="mi">4</span><span class="o">*</span><span class="n">MAUF</span><span class="o">+</span><span class="mi">15</span><span class="p">),</span><span class="n">WSAVE2</span><span class="p">(</span><span class="mi">4</span><span class="o">*</span><span class="n">MAUF</span><span class="o">+</span><span class="mi">15</span><span class="p">))</span>
571<a name="ln-146"></a>
572<a name="ln-147"></a>      <span class="k">ALLOCATE</span> <span class="p">(</span><span class="n">BREITE</span><span class="p">(</span><span class="n">MAXB</span><span class="p">),</span><span class="n">AK</span><span class="p">(</span><span class="n">MLEVEL</span><span class="o">+</span><span class="mi">1</span><span class="p">),</span><span class="n">BK</span><span class="p">(</span><span class="n">MLEVEL</span><span class="o">+</span><span class="mi">1</span><span class="p">),</span><span class="n">pv</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">mlevel</span><span class="o">+</span><span class="mi">2</span><span class="p">))</span>
573<a name="ln-148"></a>     
574<a name="ln-149"></a>      <span class="k">ALLOCATE</span> <span class="p">(</span><span class="n">MPAR</span><span class="p">(</span><span class="mi">2</span><span class="p">))</span>
575<a name="ln-150"></a>
576<a name="ln-151"></a>      <span class="k">ALLOCATE</span> <span class="p">(</span><span class="n">COSL</span><span class="p">(</span><span class="n">MAXL</span><span class="p">),</span><span class="n">SINL</span><span class="p">(</span><span class="n">MAXL</span><span class="p">))</span>
577<a name="ln-152"></a>           
578<a name="ln-153"></a>      <span class="k">ALLOCATE</span> <span class="p">(</span><span class="n">CUA</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">4</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">),</span><span class="n">CVA</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">4</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">))</span>
579<a name="ln-154"></a>           
580<a name="ln-155"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span>
581<a name="ln-156"></a><span class="c">!     GAUSS STUFF !</span>
582<a name="ln-157"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span>
583<a name="ln-158"></a>
584<a name="ln-159"></a>
585<a name="ln-160"></a>      <span class="k">IF</span><span class="p">(</span><span class="n">MGAUSS</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">1</span><span class="p">)</span> <span class="k">THEN</span>
586<a name="ln-161"></a><span class="k">      </span><span class="n">LUNIT</span><span class="o">=</span><span class="mi">0</span>
587<a name="ln-162"></a>      <span class="n">FILENAME</span><span class="o">=</span><span class="s1">&#39;fort.18&#39;</span>
588<a name="ln-163"></a>
589<a name="ln-164"></a>      <span class="k">call </span><span class="n">grib_open_file</span><span class="p">(</span><span class="n">LUNIT</span><span class="p">,</span> <span class="nb">TRIM</span><span class="p">(</span><span class="n">FILENAME</span><span class="p">),</span><span class="s1">&#39;r&#39;</span><span class="p">)</span>
590<a name="ln-165"></a> 
591<a name="ln-166"></a>      <span class="k">call </span><span class="n">grib_new_from_file</span><span class="p">(</span><span class="n">LUNIT</span><span class="p">,</span><span class="n">igrib</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span> <span class="n">iret</span><span class="p">)</span>
592<a name="ln-167"></a> 
593<a name="ln-168"></a><span class="c">! we can close the file</span>
594<a name="ln-169"></a>      <span class="k">call </span><span class="n">grib_close_file</span><span class="p">(</span><span class="n">LUNIT</span><span class="p">)</span>
595<a name="ln-170"></a> 
596<a name="ln-171"></a><span class="c">!      call grib_get(igrib(1),&#39;gridType&#39;, j)</span>
597<a name="ln-172"></a>
598<a name="ln-173"></a>      <span class="n">NGJ</span><span class="o">=</span><span class="n">MNAUF</span><span class="o">+</span><span class="mi">1</span>
599<a name="ln-174"></a>
600<a name="ln-175"></a>      <span class="k">ALLOCATE</span> <span class="p">(</span><span class="n">GWSAVE</span><span class="p">(</span><span class="mi">8</span><span class="o">*</span><span class="n">NGJ</span><span class="o">+</span><span class="mi">15</span><span class="p">,</span><span class="n">NGJ</span><span class="o">/</span><span class="mi">2</span><span class="p">))</span>
601<a name="ln-176"></a>      <span class="k">ALLOCATE</span><span class="p">(</span><span class="n">GIFAX</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="n">NGJ</span><span class="p">))</span>
602<a name="ln-177"></a>      <span class="k">ALLOCATE</span> <span class="p">(</span><span class="n">GBREITE</span><span class="p">(</span><span class="n">NGJ</span><span class="p">),</span><span class="n">WEIGHT</span><span class="p">(</span><span class="n">NGJ</span><span class="p">))</span>
603<a name="ln-178"></a>      <span class="k">ALLOCATE</span> <span class="p">(</span><span class="n">MLAT</span><span class="p">(</span><span class="n">NGJ</span><span class="p">))</span>
604<a name="ln-179"></a>      <span class="k">ALLOCATE</span> <span class="p">(</span><span class="n">P</span><span class="p">(</span><span class="mi">0</span><span class="p">:((</span><span class="n">MNAUF</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">MNAUF</span><span class="o">+</span><span class="mi">4</span><span class="p">))</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span><span class="n">NGJ</span><span class="o">/</span><span class="mi">2</span><span class="p">))</span>
605<a name="ln-180"></a>      <span class="k">ALLOCATE</span> <span class="p">(</span><span class="n">PP</span><span class="p">(</span><span class="n">NGJ</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span><span class="mi">0</span><span class="p">:((</span><span class="n">MNAUF</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">MNAUF</span><span class="o">+</span><span class="mi">4</span><span class="p">))</span><span class="o">/</span><span class="mi">2</span><span class="p">))</span>
606<a name="ln-181"></a>      <span class="k">ALLOCATE</span> <span class="p">(</span><span class="n">Z</span><span class="p">(</span><span class="mi">0</span><span class="p">:((</span><span class="n">MNAUF</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">MNAUF</span><span class="o">+</span><span class="mi">4</span><span class="p">))</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span><span class="n">MAXB</span><span class="p">))</span>
607<a name="ln-182"></a>
608<a name="ln-183"></a>      <span class="k">call </span><span class="n">grib_get</span><span class="p">(</span><span class="n">igrib</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="s1">&#39;numberOfPointsAlongAMeridian&#39;</span><span class="p">,</span> <span class="n">NGJ</span><span class="p">)</span>
609<a name="ln-184"></a> 
610<a name="ln-185"></a>      <span class="c">!     get as a integer</span>
611<a name="ln-186"></a>      <span class="k">call </span><span class="n">grib_get</span><span class="p">(</span><span class="n">igrib</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="s1">&#39;pl&#39;</span><span class="p">,</span> <span class="n">MLAT</span><span class="p">)</span>
612<a name="ln-187"></a>
613<a name="ln-188"></a>      <span class="n">NGI</span><span class="o">=</span><span class="nb">SUM</span><span class="p">(</span><span class="n">MLAT</span><span class="p">)</span>
614<a name="ln-189"></a>
615<a name="ln-190"></a>      <span class="k">call </span><span class="n">grib_get</span><span class="p">(</span><span class="n">igrib</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="s1">&#39;numberOfVerticalCoordinateValues&#39;</span><span class="p">,</span><span class="n">mk</span><span class="p">)</span>
616<a name="ln-191"></a>
617<a name="ln-192"></a>      <span class="k">IF</span><span class="p">(</span><span class="n">mk</span><span class="o">/</span><span class="mi">2</span><span class="o">-</span><span class="mi">1</span> <span class="p">.</span><span class="n">ne</span><span class="p">.</span> <span class="n">MLEVEL</span><span class="p">)</span> <span class="k">THEN </span>
618<a name="ln-193"></a><span class="k">        WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span> <span class="s1">&#39;FATAL: Number of model levels&#39;</span><span class="p">,</span><span class="n">mk</span><span class="p">,</span> <span class="p">&amp;</span>
619<a name="ln-194"></a>          <span class="s1">&#39; does not agree with&#39;</span><span class="p">,</span> <span class="n">MLEVEL</span><span class="p">,</span><span class="s1">&#39; in namelist&#39;</span>
620<a name="ln-195"></a>        <span class="k">STOP</span>
621<a name="ln-196"></a><span class="k">      </span><span class="n">ENDIF</span>
622<a name="ln-197"></a>      <span class="k">call </span><span class="n">grib_get</span><span class="p">(</span><span class="n">igrib</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="s1">&#39;pv&#39;</span><span class="p">,</span><span class="n">pv</span><span class="p">)</span>
623<a name="ln-198"></a>        <span class="n">AK</span><span class="o">=</span><span class="n">pv</span><span class="p">(</span><span class="mi">1</span><span class="p">:</span><span class="mi">1</span><span class="o">+</span><span class="n">MLEVEL</span><span class="p">)</span>
624<a name="ln-199"></a>        <span class="n">BK</span><span class="o">=</span><span class="n">pv</span><span class="p">(</span><span class="mi">2</span><span class="o">+</span><span class="n">MLEVEL</span><span class="p">:</span><span class="mi">2</span><span class="o">*</span><span class="n">MLEVEL</span><span class="o">+</span><span class="mi">2</span><span class="p">)</span>
625<a name="ln-200"></a>
626<a name="ln-201"></a>      <span class="k">ALLOCATE</span> <span class="p">(</span><span class="n">LNPMN</span><span class="p">(</span><span class="mi">0</span><span class="p">:(</span><span class="n">MNAUF</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">*</span><span class="p">(</span><span class="n">MNAUF</span><span class="o">+</span><span class="mi">2</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span>
627<a name="ln-202"></a>      <span class="k">ALLOCATE</span> <span class="p">(</span><span class="n">LNPMN2</span><span class="p">(</span><span class="mi">0</span><span class="p">:(</span><span class="n">MNAUF</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">*</span><span class="p">(</span><span class="n">MNAUF</span><span class="o">+</span><span class="mi">2</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span>
628<a name="ln-203"></a>      <span class="k">ALLOCATE</span> <span class="p">(</span><span class="n">UGVG</span><span class="p">(</span><span class="n">NGI</span><span class="p">,</span> <span class="mi">2</span><span class="o">*</span><span class="n">MLEVEL</span><span class="p">),</span><span class="n">HILFUV</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">MAXL</span><span class="p">,</span><span class="mi">2</span><span class="p">))</span>
629<a name="ln-204"></a>
630<a name="ln-205"></a>
631<a name="ln-206"></a>      <span class="k">ALLOCATE</span> <span class="p">(</span><span class="n">DPSDL</span><span class="p">(</span><span class="n">NGI</span><span class="p">,</span><span class="mi">1</span><span class="p">),</span><span class="n">DPSDM</span><span class="p">(</span><span class="n">NGI</span><span class="p">,</span><span class="mi">1</span><span class="p">))</span>
632<a name="ln-207"></a>
633<a name="ln-208"></a>      <span class="k">ALLOCATE</span> <span class="p">(</span><span class="n">PSG</span><span class="p">(</span><span class="n">NGI</span><span class="p">),</span><span class="n">HILF</span><span class="p">(</span><span class="n">NGI</span><span class="p">))</span>
634<a name="ln-209"></a>      <span class="k">ALLOCATE</span> <span class="p">(</span><span class="n">UV</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span> <span class="n">MAXB</span><span class="p">,</span> <span class="mi">2</span><span class="o">*</span><span class="n">MLEVEL</span><span class="p">))</span>
635<a name="ln-210"></a><span class="c">!      ALLOCATE (UV2(MAXL, MAXB, 2*MLEVEL))</span>
636<a name="ln-211"></a>
637<a name="ln-212"></a>      <span class="k">ALLOCATE</span> <span class="p">(</span><span class="n">XMN</span><span class="p">(</span><span class="mi">0</span><span class="p">:(</span><span class="n">MNAUF</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">*</span><span class="p">(</span><span class="n">MNAUF</span><span class="o">+</span><span class="mi">2</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="o">*</span><span class="n">MLEVEL</span><span class="p">))</span>
638<a name="ln-213"></a>      <span class="k">ALLOCATE</span> <span class="p">(</span><span class="n">DG</span><span class="p">(</span><span class="n">NGI</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">),</span><span class="n">ETAG</span><span class="p">(</span><span class="n">NGI</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">))</span>
639<a name="ln-214"></a>
640<a name="ln-215"></a><span class="c">! Initialisieren  Legendretransformation</span>
641<a name="ln-216"></a><span class="c">!  auf das LaT/LON Gitter</span>
642<a name="ln-217"></a>
643<a name="ln-218"></a>      <span class="n">PI</span><span class="o">=</span><span class="nb">ACOS</span><span class="p">(</span><span class="o">-</span><span class="mf">1.D0</span><span class="p">)</span>
644<a name="ln-219"></a><span class="c">!$OMP PARALLEL DO</span>
645<a name="ln-220"></a>      <span class="k">DO </span><span class="mi">20</span> <span class="n">J</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MAXB</span>
646<a name="ln-221"></a>
647<a name="ln-222"></a>      <span class="n">BREITE</span><span class="p">(</span><span class="n">J</span><span class="p">)</span><span class="o">=</span><span class="nb">SIN</span><span class="p">((</span><span class="n">RLA1</span><span class="o">-</span><span class="p">(</span><span class="n">J</span><span class="o">-</span><span class="mf">1.D0</span><span class="p">)</span><span class="o">*</span><span class="p">(</span><span class="n">RLA1</span><span class="o">-</span><span class="n">RLA0</span><span class="p">)</span><span class="o">/</span><span class="p">(</span><span class="n">MAXB</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span><span class="o">*</span> <span class="n">PI</span><span class="o">/</span><span class="mi">18</span><span class="mf">0.D0</span><span class="p">)</span>
648<a name="ln-223"></a>
649<a name="ln-224"></a>      <span class="k">CALL </span><span class="n">PLGNFA</span><span class="p">(</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">BREITE</span><span class="p">(</span><span class="n">J</span><span class="p">),</span><span class="n">Z</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="n">J</span><span class="p">))</span>
650<a name="ln-225"></a>
651<a name="ln-226"></a><span class="mi">20</span>    <span class="k">CONTINUE</span>
652<a name="ln-227"></a><span class="c">!$OMP END PARALLEL DO</span>
653<a name="ln-228"></a>
654<a name="ln-229"></a><span class="c">! Avoid possible Pole problem</span>
655<a name="ln-230"></a><span class="c">!      IF(RLA0 .EQ. -90.0) BREITE(MAXB)=sin(-89.99*PI/180.d0)</span>
656<a name="ln-231"></a><span class="c">!      IF(RLA1 .EQ. 90.0)  BREITE(1)=sin(89.99*PI/180.d0)</span>
657<a name="ln-232"></a>
658<a name="ln-233"></a><span class="c">! Initialisation of fields for  FFT and Legendre transformation</span>
659<a name="ln-234"></a><span class="c">!  to  Gaussian grid and back to phase space</span>
660<a name="ln-235"></a>   <span class="n">X1</span><span class="o">=-</span><span class="mf">1.D0</span>
661<a name="ln-236"></a>   <span class="n">X2</span><span class="o">=</span><span class="mf">1.D0</span>
662<a name="ln-237"></a>   <span class="k">CALL </span><span class="n">GAULEG</span><span class="p">(</span><span class="n">X1</span><span class="p">,</span><span class="n">X2</span><span class="p">,</span><span class="n">GBREITE</span><span class="p">,</span><span class="n">WEIGHT</span><span class="p">,</span><span class="n">NGJ</span><span class="p">)</span>
663<a name="ln-238"></a>
664<a name="ln-239"></a><span class="c">!$OMP PARALLEL DO PRIVATE(M)</span>
665<a name="ln-240"></a>   <span class="k">DO </span><span class="n">J</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">NGJ</span><span class="o">/</span><span class="mi">2</span>
666<a name="ln-241"></a>               <span class="k">CALL </span><span class="n">PLGNFA</span><span class="p">(</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">GBREITE</span><span class="p">(</span><span class="n">J</span><span class="p">),</span><span class="n">P</span><span class="p">(:,</span><span class="n">J</span><span class="p">))</span>
667<a name="ln-242"></a>           <span class="k">DO </span><span class="n">M</span><span class="o">=</span><span class="mi">0</span><span class="p">,(</span><span class="n">MNAUF</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">MNAUF</span><span class="o">+</span><span class="mi">4</span><span class="p">)</span><span class="o">/</span><span class="mi">2</span>
668<a name="ln-243"></a>             <span class="n">PP</span><span class="p">(</span><span class="n">J</span><span class="p">,</span><span class="n">M</span><span class="p">)</span><span class="o">=</span><span class="n">P</span><span class="p">(</span><span class="n">M</span><span class="p">,</span><span class="n">J</span><span class="p">)</span>
669<a name="ln-244"></a>   <span class="n">ENDDO</span>
670<a name="ln-245"></a>   <span class="n">ENDDO</span>
671<a name="ln-246"></a><span class="c">!$OMP END PARALLEL DO</span>
672<a name="ln-247"></a>
673<a name="ln-248"></a>
674<a name="ln-249"></a><span class="c">!       MPAR(1)=152</span>
675<a name="ln-250"></a>        <span class="n">FILENAME</span><span class="o">=</span><span class="s1">&#39;fort.12&#39;</span>
676<a name="ln-251"></a>        <span class="k">CALL </span><span class="n">READSPECTRAL</span><span class="p">(</span><span class="n">FILENAME</span><span class="p">,</span><span class="n">LNPMN</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,(</span><span class="o">/</span><span class="mi">152</span><span class="o">/</span><span class="p">),</span><span class="n">AK</span><span class="p">,</span><span class="n">BK</span><span class="p">)</span>
677<a name="ln-252"></a><span class="c">!      goto 111</span>
678<a name="ln-253"></a>        <span class="k">CALL </span><span class="n">SET99</span><span class="p">(</span><span class="n">WSAVE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span><span class="n">mauf</span><span class="p">)</span>
679<a name="ln-254"></a>        <span class="k">CALL </span><span class="n">PHGCUT</span><span class="p">(</span><span class="n">LNPMN</span><span class="p">,</span><span class="n">PS</span><span class="p">,</span><span class="n">WSAVE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span><span class="n">Z</span><span class="p">,</span> <span class="p">&amp;</span>
680<a name="ln-255"></a>      <span class="n">MNAUF</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MAUF</span><span class="p">,</span><span class="n">MANF</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span>
681<a name="ln-256"></a>      <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="nb">EXP</span><span class="p">(</span><span class="n">PS</span><span class="p">),</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span>
682<a name="ln-257"></a>      <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">&#39;(A12,3F12.4)&#39;</span><span class="p">)</span> <span class="s1">&#39;STATISTICS: &#39;</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span>
683<a name="ln-258"></a>
684<a name="ln-259"></a>        <span class="k">DO </span><span class="n">J</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">NGJ</span><span class="o">/</span><span class="mi">2</span>
685<a name="ln-260"></a>          <span class="k">CALL </span><span class="n">SET99</span><span class="p">(</span><span class="n">GWSAVE</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="n">J</span><span class="p">),</span><span class="n">GIFAX</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="n">J</span><span class="p">),</span><span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="p">))</span>
686<a name="ln-261"></a>        <span class="n">ENDDO</span>
687<a name="ln-262"></a>   <span class="k">CALL </span><span class="n">PHGR213</span><span class="p">(</span><span class="n">LNPMN</span><span class="p">,</span><span class="n">HILF</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">,</span><span class="n">GIFAX</span><span class="p">,</span><span class="n">P</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">NGI</span><span class="p">,</span><span class="n">NGJ</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span>
688<a name="ln-263"></a>        <span class="n">PSG</span><span class="o">=</span><span class="n">HILF</span>
689<a name="ln-264"></a>   <span class="k">CALL </span><span class="n">GRPH213</span><span class="p">(</span><span class="n">LNPMN2</span><span class="p">,</span><span class="n">PSG</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">,</span><span class="n">GIFAX</span><span class="p">,</span><span class="n">PP</span><span class="p">,</span><span class="n">WEIGHT</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span> <span class="p">&amp;</span>
690<a name="ln-265"></a>      <span class="n">MNAUF</span><span class="p">,</span><span class="n">NGI</span><span class="p">,</span><span class="n">NGJ</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span>
691<a name="ln-266"></a>   <span class="k">CALL </span><span class="n">PHGR213</span><span class="p">(</span><span class="n">LNPMN2</span><span class="p">,</span><span class="n">HILF</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">,</span><span class="n">GIFAX</span><span class="p">,</span><span class="n">P</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">NGI</span><span class="p">,</span><span class="n">NGJ</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span>
692<a name="ln-267"></a>
693<a name="ln-268"></a>
694<a name="ln-269"></a>        <span class="n">HILF</span><span class="o">=</span><span class="nb">exp</span><span class="p">(</span><span class="n">PSG</span><span class="p">)</span><span class="o">-</span><span class="nb">exp</span><span class="p">(</span><span class="n">HILF</span><span class="p">)</span>
695<a name="ln-270"></a>
696<a name="ln-271"></a>      <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">NGI</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">HILF</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span>
697<a name="ln-272"></a>      <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">&#39;(A12,3F11.4)&#39;</span><span class="p">)</span> <span class="s1">&#39;STATISTICS: &#39;</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span>
698<a name="ln-273"></a>
699<a name="ln-274"></a>        <span class="n">PSG</span><span class="o">=</span><span class="nb">EXP</span><span class="p">(</span><span class="n">PSG</span><span class="p">)</span>
700<a name="ln-275"></a>        <span class="n">HILF</span><span class="o">=</span><span class="n">PSG</span>
701<a name="ln-276"></a>      <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">NGI</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">HILF</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span>
702<a name="ln-277"></a>      <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">&#39;(A12,3F11.4)&#39;</span><span class="p">)</span> <span class="s1">&#39;STATISTICS: &#39;</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span>
703<a name="ln-278"></a>
704<a name="ln-279"></a>  <span class="mi">111</span>         <span class="n">FILENAME</span><span class="o">=</span><span class="s1">&#39;fort.10&#39;</span>
705<a name="ln-280"></a>       <span class="k">CALL </span><span class="n">READSPECTRAL</span><span class="p">(</span><span class="n">FILENAME</span><span class="p">,</span> <span class="p">&amp;</span>
706<a name="ln-281"></a>      <span class="n">XMN</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="mi">2</span><span class="o">*</span><span class="n">MLEVEL</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,(</span><span class="o">/</span><span class="mi">131</span><span class="p">,</span><span class="mi">132</span><span class="o">/</span><span class="p">),</span><span class="n">AK</span><span class="p">,</span><span class="n">BK</span><span class="p">)</span> 
707<a name="ln-282"></a><span class="c">!  Transformieren des Windes auf das Gaussgitter   </span>
708<a name="ln-283"></a>   <span class="k">CALL </span><span class="n">PHGR213</span><span class="p">(</span><span class="n">XMN</span><span class="p">,</span><span class="n">UGVG</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">,</span><span class="n">GIFAX</span><span class="p">,</span><span class="n">P</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">NGI</span><span class="p">,</span><span class="n">NGJ</span><span class="p">,</span><span class="mi">2</span><span class="o">*</span><span class="n">MLEVEL</span><span class="p">)</span>
709<a name="ln-284"></a>       <span class="k">DO </span><span class="n">K</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span>
710<a name="ln-285"></a><span class="c">! North Pole</span>
711<a name="ln-286"></a>            <span class="k">CALL </span><span class="n">JSPPOLE</span><span class="p">(</span><span class="n">XMN</span><span class="p">(:,</span><span class="n">K</span><span class="p">),</span><span class="mi">1</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,.</span><span class="n">TRUE</span><span class="p">.,</span><span class="n">CUA</span><span class="p">(:,:,</span><span class="n">K</span><span class="p">))</span>
712<a name="ln-287"></a>            <span class="k">CALL </span><span class="n">JSPPOLE</span><span class="p">(</span><span class="n">XMN</span><span class="p">(:,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="n">K</span><span class="p">),</span><span class="mi">1</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,.</span><span class="n">TRUE</span><span class="p">.,</span><span class="n">CVA</span><span class="p">(:,:,</span><span class="n">K</span><span class="p">))</span>
713<a name="ln-288"></a><span class="c">! South Pole</span>
714<a name="ln-289"></a>            <span class="k">CALL </span><span class="n">JSPPOLE</span><span class="p">(</span><span class="n">XMN</span><span class="p">(:,</span><span class="n">K</span><span class="p">),</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,.</span><span class="n">TRUE</span><span class="p">.,</span><span class="n">CUA</span><span class="p">(:,</span><span class="mi">3</span><span class="p">:</span><span class="mi">4</span><span class="p">,</span><span class="n">K</span><span class="p">))</span>
715<a name="ln-290"></a>            <span class="k">CALL </span><span class="n">JSPPOLE</span><span class="p">(</span><span class="n">XMN</span><span class="p">(:,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="n">K</span><span class="p">),</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,.</span><span class="n">TRUE</span><span class="p">.,</span><span class="n">CVA</span><span class="p">(:,</span><span class="mi">3</span><span class="p">:</span><span class="mi">4</span><span class="p">,</span><span class="n">K</span><span class="p">))</span>
716<a name="ln-291"></a>       <span class="n">ENDDO</span>
717<a name="ln-292"></a>   
718<a name="ln-293"></a>        <span class="k">DO </span><span class="n">K</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="o">*</span><span class="n">MLEVEL</span>
719<a name="ln-294"></a>          <span class="k">IF</span><span class="p">(</span><span class="n">MSMOOTH</span> <span class="p">.</span><span class="n">ne</span><span class="p">.</span> <span class="mi">0</span><span class="p">)</span> <span class="k">CALL </span><span class="n">SPFILTER</span><span class="p">(</span><span class="n">XMN</span><span class="p">(:,</span><span class="n">K</span><span class="p">),</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MSMOOTH</span><span class="p">)</span>
720<a name="ln-295"></a>        <span class="n">ENDDO</span>
721<a name="ln-296"></a>        <span class="k">CALL </span><span class="n">PHGCUT</span><span class="p">(</span><span class="n">XMN</span><span class="p">,</span><span class="n">UV</span><span class="p">,</span><span class="n">WSAVE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span><span class="n">Z</span><span class="p">,</span> <span class="p">&amp;</span>
722<a name="ln-297"></a>      <span class="n">MNAUF</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MAUF</span><span class="p">,</span><span class="n">MANF</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">2</span><span class="o">*</span><span class="n">MLEVEL</span><span class="p">)</span>
723<a name="ln-298"></a>
724<a name="ln-299"></a>
725<a name="ln-300"></a> <span class="mi">112</span>        <span class="n">FILENAME</span><span class="o">=</span><span class="s1">&#39;fort.13&#39;</span>
726<a name="ln-301"></a>      <span class="k">CALL </span><span class="n">READSPECTRAL</span><span class="p">(</span><span class="n">FILENAME</span><span class="p">,</span><span class="n">XMN</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,(</span><span class="o">/</span><span class="mi">155</span><span class="o">/</span><span class="p">),</span><span class="n">AK</span><span class="p">,</span><span class="n">BK</span><span class="p">)</span>
727<a name="ln-302"></a><span class="c">!  Transformieren der horizontalen Divergenz auf das Gaussgitter                   </span>
728<a name="ln-303"></a>   <span class="k">CALL </span><span class="n">PHGR213</span><span class="p">(</span><span class="n">XMN</span><span class="p">,</span><span class="n">DG</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">,</span><span class="n">GIFAX</span><span class="p">,</span><span class="n">P</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">NGI</span><span class="p">,</span><span class="n">NGJ</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">)</span>
729<a name="ln-304"></a>
730<a name="ln-305"></a>
731<a name="ln-306"></a><span class="c">!  Berechnung des Gradienten des Logarithmus des Bodendrucks </span>
732<a name="ln-307"></a><span class="c">!       auf dem Gaussgitter        </span>
733<a name="ln-308"></a>   <span class="k">CALL </span><span class="n">PHGRAD</span><span class="p">(</span><span class="n">LNPMN</span><span class="p">,</span><span class="n">DPSDL</span><span class="p">,</span><span class="n">DPSDM</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">,</span><span class="n">GIFAX</span><span class="p">,</span><span class="n">P</span><span class="p">,</span><span class="n">H</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">NGI</span><span class="p">,</span><span class="n">NGJ</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span>
734<a name="ln-309"></a>
735<a name="ln-310"></a><span class="c">!  Berechnung der Vertikalgeschwindigkeit auf dem Gaussgitter</span>
736<a name="ln-311"></a>      <span class="k">CALL </span><span class="n">CONTGL</span><span class="p">(</span><span class="n">HILF</span><span class="p">,</span><span class="n">DPSDL</span><span class="p">,</span><span class="n">DPSDM</span><span class="p">,</span><span class="n">DG</span><span class="p">,</span><span class="n">UGVG</span><span class="p">(:,</span><span class="mi">1</span><span class="p">),</span><span class="n">UGVG</span><span class="p">(:,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="mi">1</span><span class="p">),</span> <span class="p">&amp;</span>
737<a name="ln-312"></a>      <span class="n">GBREITE</span><span class="p">,</span><span class="n">ETAG</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span><span class="n">AK</span><span class="p">,</span><span class="n">BK</span><span class="p">,</span><span class="n">NGI</span><span class="p">,</span><span class="n">NGJ</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">)</span>
738<a name="ln-313"></a>
739<a name="ln-314"></a> 
740<a name="ln-315"></a>   <span class="k">CALL </span><span class="n">GRPH213</span><span class="p">(</span><span class="n">XMN</span><span class="p">,</span><span class="n">ETAG</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">,</span><span class="n">GIFAX</span><span class="p">,</span><span class="n">PP</span><span class="p">,</span><span class="n">WEIGHT</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span> <span class="p">&amp;</span>
741<a name="ln-316"></a>      <span class="n">MNAUF</span><span class="p">,</span><span class="n">NGI</span><span class="p">,</span><span class="n">NGJ</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">)</span>
742<a name="ln-317"></a>        <span class="k">DO </span><span class="n">K</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span>
743<a name="ln-318"></a>          <span class="k">IF</span><span class="p">(</span><span class="n">MSMOOTH</span> <span class="p">.</span><span class="n">ne</span><span class="p">.</span> <span class="mi">0</span><span class="p">)</span> <span class="k">CALL </span><span class="n">SPFILTER</span><span class="p">(</span><span class="n">XMN</span><span class="p">(:,</span><span class="n">K</span><span class="p">),</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MSMOOTH</span><span class="p">)</span>
744<a name="ln-319"></a>        <span class="n">ENDDO</span>
745<a name="ln-320"></a>        <span class="k">CALL </span><span class="n">PHGCUT</span><span class="p">(</span><span class="n">XMN</span><span class="p">,</span><span class="n">ETA</span><span class="p">,</span><span class="n">WSAVE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span><span class="n">Z</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MAUF</span><span class="p">,</span><span class="n">MANF</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">)</span>
746<a name="ln-321"></a>
747<a name="ln-322"></a>   <span class="k">CALL </span><span class="n">GRPH213</span><span class="p">(</span><span class="n">XMN</span><span class="p">,</span><span class="n">HILF</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">,</span><span class="n">GIFAX</span><span class="p">,</span><span class="n">PP</span><span class="p">,</span><span class="n">WEIGHT</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span> <span class="n">MNAUF</span><span class="p">,</span><span class="n">NGI</span><span class="p">,</span><span class="n">NGJ</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span>
748<a name="ln-323"></a>
749<a name="ln-324"></a>        <span class="k">IF</span><span class="p">(</span><span class="n">MSMOOTH</span> <span class="p">.</span><span class="n">ne</span><span class="p">.</span> <span class="mi">0</span><span class="p">)</span> <span class="k">CALL </span><span class="n">SPFILTER</span><span class="p">(</span><span class="n">XMN</span><span class="p">(:,</span><span class="mi">1</span><span class="p">),</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MSMOOTH</span><span class="p">)</span>
750<a name="ln-325"></a>        <span class="k">CALL </span><span class="n">PHGCUT</span><span class="p">(</span><span class="n">XMN</span><span class="p">,</span><span class="n">DPSDT</span><span class="p">,</span><span class="n">WSAVE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span><span class="n">Z</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MAUF</span><span class="p">,</span><span class="n">MANF</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span>
751<a name="ln-326"></a><span class="c">!       GOTO 114</span>
752<a name="ln-327"></a>
753<a name="ln-328"></a>      <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">DPSDT</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span>
754<a name="ln-329"></a>      <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">&#39;(A12,3F11.4)&#39;</span><span class="p">)</span> <span class="s1">&#39;STATISTICS DPSDT: &#39;</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span>
755<a name="ln-330"></a>
756<a name="ln-331"></a>       <span class="k">IF</span><span class="p">(</span><span class="n">MOMEGADIFF</span> <span class="p">.</span><span class="n">ne</span><span class="p">.</span> <span class="mi">0</span><span class="p">)</span> <span class="k">THEN</span>
757<a name="ln-332"></a><span class="c">!  Berechnung von Omega auf dem Gaussgitter</span>
758<a name="ln-333"></a>   <span class="k">CALL </span><span class="n">OMEGA</span><span class="p">(</span><span class="n">PSG</span><span class="p">,</span><span class="n">DPSDL</span><span class="p">,</span><span class="n">DPSDM</span><span class="p">,</span><span class="n">DG</span><span class="p">,</span><span class="n">UGVG</span><span class="p">(:,</span><span class="mi">1</span><span class="p">),</span><span class="n">UGVG</span><span class="p">(:,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="mi">1</span><span class="p">),</span> <span class="p">&amp;</span>
759<a name="ln-334"></a>      <span class="n">GBREITE</span><span class="p">,</span><span class="n">ETAG</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span><span class="n">AK</span><span class="p">,</span><span class="n">BK</span><span class="p">,</span><span class="n">NGI</span> <span class="p">,</span><span class="n">NGJ</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">)</span> 
760<a name="ln-335"></a>
761<a name="ln-336"></a>   <span class="k">CALL </span><span class="n">GRPH213</span><span class="p">(</span><span class="n">XMN</span><span class="p">,</span><span class="n">ETAG</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">,</span><span class="n">GIFAX</span><span class="p">,</span><span class="n">PP</span><span class="p">,</span><span class="n">WEIGHT</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,&amp;</span>
762<a name="ln-337"></a>      <span class="n">MNAUF</span><span class="p">,</span><span class="n">NGI</span><span class="p">,</span><span class="n">NGJ</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">)</span>
763<a name="ln-338"></a>        <span class="k">DO </span><span class="n">K</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span>
764<a name="ln-339"></a>          <span class="k">IF</span><span class="p">(</span><span class="n">MSMOOTH</span> <span class="p">.</span><span class="n">ne</span><span class="p">.</span> <span class="mi">0</span><span class="p">)</span> <span class="k">CALL </span><span class="n">SPFILTER</span><span class="p">(</span><span class="n">XMN</span><span class="p">(:,</span><span class="n">K</span><span class="p">),</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MSMOOTH</span><span class="p">)</span>
765<a name="ln-340"></a>        <span class="n">ENDDO</span>
766<a name="ln-341"></a>        <span class="k">CALL </span><span class="n">PHGCUT</span><span class="p">(</span><span class="n">XMN</span><span class="p">,</span><span class="n">OM</span><span class="p">,</span><span class="n">WSAVE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span><span class="n">Z</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MAUF</span><span class="p">,</span><span class="n">MANF</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">)</span>
767<a name="ln-342"></a>
768<a name="ln-343"></a>       <span class="n">ENDIF</span> <span class="c">!MOMEGA</span>
769<a name="ln-344"></a>
770<a name="ln-345"></a>   <span class="k">CALL </span><span class="n">GRPH213</span><span class="p">(</span><span class="n">XMN</span><span class="p">,</span><span class="n">PSG</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">,</span><span class="n">GIFAX</span><span class="p">,</span><span class="n">PP</span><span class="p">,</span><span class="n">WEIGHT</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">NGI</span><span class="p">,</span><span class="n">NGJ</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span>
771<a name="ln-346"></a>        <span class="k">CALL </span><span class="n">PHGCUT</span><span class="p">(</span><span class="n">XMN</span><span class="p">,</span><span class="n">PS</span><span class="p">,</span><span class="n">WSAVE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span><span class="n">Z</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MAUF</span><span class="p">,</span><span class="n">MANF</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span>
772<a name="ln-347"></a>
773<a name="ln-348"></a>      <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">PS</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span>
774<a name="ln-349"></a>      <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">&#39;(A12,3F11.4)&#39;</span><span class="p">)</span> <span class="s1">&#39;STATISTICS: &#39;</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span>
775<a name="ln-350"></a>
776<a name="ln-351"></a> <span class="mi">114</span>  <span class="k">DEALLOCATE</span><span class="p">(</span><span class="n">HILF</span><span class="p">,</span><span class="n">PSG</span><span class="p">,</span><span class="n">DPSDL</span><span class="p">,</span><span class="n">DPSDM</span><span class="p">,</span><span class="n">ETAG</span><span class="p">,</span><span class="n">DG</span><span class="p">,</span><span class="n">LNPMN</span><span class="p">)</span>
777<a name="ln-352"></a>
778<a name="ln-353"></a><span class="c">!      ALLOCATE (UV(MAXL, MAXB, 2*MLEVEL))</span>
779<a name="ln-354"></a><span class="c">!  CALL GRPH213(XMN,UGVG,GWSAVE,GIFAX,PP,WEIGHT,MLAT,</span>
780<a name="ln-355"></a><span class="c">!     *MNAUF,NGI,NGJ,2*MLEVEL)</span>
781<a name="ln-356"></a><span class="c">!        DO K=1,2*MLEVEL</span>
782<a name="ln-357"></a><span class="c">!          IF(MSMOOTH .ne. 0) CALL SPFILTER(XMN(:,K),MNAUF,MSMOOTH)</span>
783<a name="ln-358"></a><span class="c">!        ENDDO</span>
784<a name="ln-359"></a><span class="c">!        CALL PHGCUT(XMN,UV,WSAVE,IFAX,Z,</span>
785<a name="ln-360"></a><span class="c">!     *MNAUF,MNAUF,MAUF,MANF,MAXL,MAXB,2*MLEVEL)</span>
786<a name="ln-361"></a>        <span class="k">DEALLOCATE</span><span class="p">(</span><span class="n">PP</span><span class="p">,</span><span class="n">P</span><span class="p">,</span><span class="n">UGVG</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span><span class="n">GBREITE</span><span class="p">,</span><span class="n">WEIGHT</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">,</span><span class="n">XMN</span><span class="p">)</span>
787<a name="ln-362"></a>
788<a name="ln-363"></a><span class="c">!        CALL ETAGAUSS(Z,WSAVE</span>
789<a name="ln-364"></a><span class="c">!     *,BREITE,UV,ETA,OM,PS,</span>
790<a name="ln-365"></a><span class="c">!     *MAUF,MAXB,MAXL,MANF,MNAUF,MLEVEL,MSMOOTH)</span>
791<a name="ln-366"></a>
792<a name="ln-367"></a>      <span class="k">ELSE</span>
793<a name="ln-368"></a>
794<a name="ln-369"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span>
795<a name="ln-370"></a><span class="c">!          READING OF PREPARED METEOROLOGICAL FIELDS              !</span>
796<a name="ln-371"></a><span class="c">!                                                                 !</span>
797<a name="ln-372"></a><span class="c">!          THE FOLLOWING FIELDS ARE EXPECTED:                     !</span>
798<a name="ln-373"></a><span class="c">!                                                                 !</span>
799<a name="ln-374"></a><span class="c">!          UNIT 11: T,U,V        (REGULAR GRID)                   !</span>
800<a name="ln-375"></a><span class="c">!          UNIT 17: Q            (REGULAR GRID)                   !</span>
801<a name="ln-376"></a><span class="c">!          UNIT 13: D            (REGULAR GRID)                   !</span>
802<a name="ln-377"></a><span class="c">!          UNIT 12: LNSP         (SPHERICAL HARMONICS)            !</span>
803<a name="ln-378"></a><span class="c">!          UNIT 14: SURFACE DATA (REGULAR GRID)                   !</span>
804<a name="ln-379"></a><span class="c">!          UNIT 16: FLUX DATA    (REGULAR GRID)                   !</span>
805<a name="ln-380"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span>
806<a name="ln-381"></a><span class="c">!</span>
807<a name="ln-382"></a>      <span class="k">ALLOCATE</span> <span class="p">(</span><span class="n">MLAT</span><span class="p">(</span><span class="n">MAXB</span><span class="p">))</span>
808<a name="ln-383"></a>      <span class="n">MLAT</span><span class="o">=</span><span class="n">MAXL</span>
809<a name="ln-384"></a>      <span class="k">ALLOCATE</span> <span class="p">(</span><span class="n">Z</span><span class="p">(</span><span class="mi">0</span><span class="p">:((</span><span class="n">MNAUF</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">MNAUF</span><span class="o">+</span><span class="mi">4</span><span class="p">))</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span><span class="mi">1</span><span class="p">))</span>
810<a name="ln-385"></a>      <span class="k">ALLOCATE</span> <span class="p">(</span><span class="n">DPSDL</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">),</span><span class="n">DPSDM</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">))</span>
811<a name="ln-386"></a>      <span class="k">ALLOCATE</span> <span class="p">(</span><span class="n">UV</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span> <span class="n">MAXB</span><span class="p">,</span> <span class="mi">2</span><span class="o">*</span><span class="n">MLEVEL</span><span class="p">),</span><span class="n">DIV</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">))</span>
812<a name="ln-387"></a>
813<a name="ln-388"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span>
814<a name="ln-389"></a><span class="c">!                  READING OF SURFACE PRESSURE                    !</span>
815<a name="ln-390"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span>
816<a name="ln-391"></a>
817<a name="ln-392"></a>      <span class="n">FILENAME</span><span class="o">=</span><span class="s1">&#39;fort.12&#39;</span>
818<a name="ln-393"></a>        <span class="k">CALL </span><span class="n">READSPECTRAL</span><span class="p">(</span><span class="n">FILENAME</span><span class="p">,</span><span class="n">LNPS</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,(</span><span class="o">/</span><span class="mi">152</span><span class="o">/</span><span class="p">),</span><span class="n">AK</span><span class="p">,</span><span class="n">BK</span><span class="p">)</span>
819<a name="ln-394"></a>
820<a name="ln-395"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span>
821<a name="ln-396"></a><span class="c">!                      READING OF U,V                      !</span>
822<a name="ln-397"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span>
823<a name="ln-398"></a><span class="c">!</span>
824<a name="ln-399"></a><span class="c">! OPENING OF UNBLOCKED GRIB FILE</span>
825<a name="ln-400"></a><span class="c">!</span>
826<a name="ln-401"></a>      <span class="n">FILENAME</span><span class="o">=</span><span class="s1">&#39;fort.10&#39;</span>
827<a name="ln-402"></a>      <span class="k">CALL </span><span class="n">READLATLON</span><span class="p">(</span><span class="n">FILENAME</span><span class="p">,</span><span class="n">UV</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">2</span><span class="o">*</span><span class="n">MLEVEL</span><span class="p">,(</span><span class="o">/</span><span class="mi">131</span><span class="p">,</span><span class="mi">132</span><span class="o">/</span><span class="p">))</span>
828<a name="ln-403"></a>
829<a name="ln-404"></a>
830<a name="ln-405"></a>      <span class="n">PI</span><span class="o">=</span><span class="nb">ACOS</span><span class="p">(</span><span class="o">-</span><span class="mf">1.D0</span><span class="p">)</span>
831<a name="ln-406"></a>      <span class="k">DO </span><span class="n">J</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MAXB</span>
832<a name="ln-407"></a>
833<a name="ln-408"></a>        <span class="n">BREITE</span><span class="p">(</span><span class="n">J</span><span class="p">)</span><span class="o">=</span><span class="nb">SIN</span><span class="p">((</span><span class="n">RLA1</span><span class="o">-</span><span class="p">(</span><span class="n">J</span><span class="o">-</span><span class="mf">1.D0</span><span class="p">)</span><span class="o">*</span><span class="p">(</span><span class="n">RLA1</span><span class="o">-</span><span class="n">RLA0</span><span class="p">)</span><span class="o">/</span><span class="p">(</span><span class="n">MAXB</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span><span class="o">*</span><span class="n">PI</span><span class="o">/</span><span class="mi">18</span><span class="mf">0.D0</span><span class="p">)</span>
834<a name="ln-409"></a>
835<a name="ln-410"></a>      <span class="n">ENDDO</span>
836<a name="ln-411"></a><span class="c">! Avoid possible Pole problem</span>
837<a name="ln-412"></a><span class="c">!      IF(RLA0 .EQ. -90.0) BREITE(MAXB)=sin(-89.99*PI/180.d0)</span>
838<a name="ln-413"></a><span class="c">!      IF(RLA1 .EQ. 90.0)  BREITE(1)=sin(89.99*PI/180.d0)</span>
839<a name="ln-414"></a>
840<a name="ln-415"></a>      <span class="k">DO </span><span class="n">K</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="o">*</span><span class="n">MLEVEL</span>
841<a name="ln-416"></a>        <span class="k">DO </span><span class="n">J</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MAXB</span>
842<a name="ln-417"></a>          <span class="n">COSB</span><span class="o">=</span><span class="nb">SQRT</span><span class="p">(</span><span class="mf">1.0</span><span class="o">-</span><span class="p">(</span><span class="n">BREITE</span><span class="p">(</span><span class="n">J</span><span class="p">))</span><span class="o">*</span><span class="p">(</span><span class="n">BREITE</span><span class="p">(</span><span class="n">J</span><span class="p">)))</span>
843<a name="ln-418"></a>          <span class="k">IF</span><span class="p">(</span><span class="n">RLA0</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="o">-</span><span class="mi">9</span><span class="mf">0.0</span> <span class="p">.</span><span class="nb">AND</span><span class="p">.</span> <span class="n">J</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="n">MAXB</span> <span class="p">.</span><span class="nb">OR</span><span class="p">.</span> <span class="p">&amp;</span>
844<a name="ln-419"></a>             <span class="n">RLA1</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">9</span><span class="mf">0.0</span> <span class="p">.</span><span class="nb">AND</span><span class="p">.</span> <span class="n">J</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">1</span><span class="p">)</span> <span class="k">then</span>
845<a name="ln-420"></a><span class="k">            </span><span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">/</span><span class="mf">1.D6</span>
846<a name="ln-421"></a>          <span class="k">else</span>
847<a name="ln-422"></a><span class="k">            </span><span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="n">COSB</span>
848<a name="ln-423"></a>          <span class="n">endif</span>
849<a name="ln-424"></a>      <span class="n">ENDDO</span>
850<a name="ln-425"></a>      <span class="n">ENDDO</span>
851<a name="ln-426"></a>
852<a name="ln-427"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span>
853<a name="ln-428"></a><span class="c">!                     READING OF LNSP on grid                !</span>
854<a name="ln-429"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span>
855<a name="ln-430"></a>
856<a name="ln-431"></a><span class="c">! For debugging only</span>
857<a name="ln-432"></a><span class="c">!      FILENAME=&#39;LNSPG_G.20060330.600&#39;</span>
858<a name="ln-433"></a><span class="c">!      INQUIRE(FILE=FILENAME,EXIST=EX)</span>
859<a name="ln-434"></a><span class="c">!      CALL READLATLON(FILENAME,QA,</span>
860<a name="ln-435"></a><span class="c">!     *MAXL,MAXB,1,1,(/152/))</span>
861<a name="ln-436"></a>
862<a name="ln-437"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span>
863<a name="ln-438"></a><span class="c">!                     READING OF DIVERGENCE                       !</span>
864<a name="ln-439"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span>
865<a name="ln-440"></a>
866<a name="ln-441"></a>      <span class="k">IF</span><span class="p">(</span><span class="n">META</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">0</span> <span class="p">.</span><span class="nb">OR</span><span class="p">.</span> <span class="n">METADIFF</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">1</span><span class="p">)</span> <span class="k">THEN</span>
867<a name="ln-442"></a><span class="k">        </span><span class="n">FILENAME</span><span class="o">=</span><span class="s1">&#39;fort.13&#39;</span>
868<a name="ln-443"></a>        <span class="k">CALL </span><span class="n">READLATLON</span><span class="p">(</span><span class="n">FILENAME</span><span class="p">,</span><span class="n">DIV</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,(</span><span class="o">/</span><span class="mi">155</span><span class="o">/</span><span class="p">))</span>
869<a name="ln-444"></a>      <span class="n">ENDIF</span>
870<a name="ln-445"></a>
871<a name="ln-446"></a>
872<a name="ln-447"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span>
873<a name="ln-448"></a><span class="c">!       CALCULATION OF ETAPOINT --&gt; TOTAL TIME DERIVATIVE OF       !</span>
874<a name="ln-449"></a><span class="c">!      ECMWF VERTICAL COORDINATE ETA MULTIPLIED BY DERIVATIVE     !</span>
875<a name="ln-450"></a><span class="c">!      OF PRESSURE IN ETA DIRECTION                               !</span>
876<a name="ln-451"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span>
877<a name="ln-452"></a>
878<a name="ln-453"></a><span class="c">! Initialisieren  Legendretransformation</span>
879<a name="ln-454"></a><span class="c">!  auf das LaT/LON Gitter</span>
880<a name="ln-455"></a><span class="c">! Without Gaussian grid calculation Legendre Polynomials are calculated</span>
881<a name="ln-456"></a><span class="c">! only for one latitude to save space</span>
882<a name="ln-457"></a>
883<a name="ln-458"></a>      <span class="k">DO </span><span class="n">J</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MAXB</span>
884<a name="ln-459"></a>
885<a name="ln-460"></a>        <span class="k">CALL </span><span class="n">PLGNFA</span><span class="p">(</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">BREITE</span><span class="p">(</span><span class="n">J</span><span class="p">),</span><span class="n">Z</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">))</span>
886<a name="ln-461"></a>
887<a name="ln-462"></a>        <span class="k">CALL </span><span class="n">PHGCUT</span><span class="p">(</span><span class="n">LNPS</span><span class="p">,</span><span class="n">PS</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="mi">1</span><span class="p">),</span><span class="n">WSAVE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span><span class="n">Z</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MAUF</span><span class="p">,</span><span class="n">MANF</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span>
888<a name="ln-463"></a>
889<a name="ln-464"></a>
890<a name="ln-465"></a>        <span class="k">IF</span><span class="p">(</span><span class="n">META</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">0</span> <span class="p">.</span><span class="nb">or</span><span class="p">.</span> <span class="n">METADIFF</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">1</span> <span class="p">)</span> <span class="k">THEN</span>
891<a name="ln-466"></a><span class="k">          CALL </span><span class="n">PHGRACUT</span><span class="p">(</span><span class="n">LNPS</span><span class="p">,</span><span class="n">DPSDL</span><span class="p">(:,</span><span class="n">J</span><span class="p">),</span><span class="n">DPSDM</span><span class="p">(:,</span><span class="n">J</span><span class="p">),</span><span class="n">WSAVE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span><span class="n">Z</span><span class="p">,</span><span class="n">H</span><span class="p">,</span><span class="n">MAUF</span><span class="p">,</span> <span class="p">&amp;</span>
892<a name="ln-467"></a>      <span class="n">MNAUF</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">MANF</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span>
893<a name="ln-468"></a>        <span class="n">ENDIF</span>
894<a name="ln-469"></a>      <span class="n">ENDDO</span>
895<a name="ln-470"></a>     
896<a name="ln-471"></a>      <span class="n">PS</span><span class="o">=</span><span class="nb">EXP</span><span class="p">(</span><span class="n">PS</span><span class="p">)</span>
897<a name="ln-472"></a>
898<a name="ln-473"></a><span class="c">! For debugging only</span>
899<a name="ln-474"></a>      <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">PS</span><span class="p">(:,:,</span><span class="mi">1</span><span class="p">),</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span>
900<a name="ln-475"></a>      <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">&#39;(A12,3F11.4)&#39;</span><span class="p">)</span> <span class="s1">&#39;STATISTICS: &#39;</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span>
901<a name="ln-476"></a>     
902<a name="ln-477"></a>     
903<a name="ln-478"></a>       <span class="k">IF</span><span class="p">(</span><span class="n">MOMEGADIFF</span> <span class="p">.</span><span class="n">ne</span><span class="p">.</span> <span class="mi">0</span><span class="p">)</span> <span class="k">THEN</span>
904<a name="ln-479"></a>
905<a name="ln-480"></a><span class="k">         CALL </span><span class="n">OMEGA</span><span class="p">(</span><span class="n">PS</span><span class="p">,</span><span class="n">DPSDL</span><span class="p">,</span><span class="n">DPSDM</span><span class="p">,</span><span class="n">DIV</span><span class="p">,</span><span class="n">UV</span><span class="p">(:,:,</span><span class="mi">1</span><span class="p">),</span><span class="n">UV</span><span class="p">(:,:,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="mi">1</span><span class="p">),</span> <span class="p">&amp;</span>
906<a name="ln-481"></a>      <span class="n">BREITE</span><span class="p">,</span><span class="n">OM</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span><span class="n">AK</span><span class="p">,</span><span class="n">BK</span><span class="p">,</span><span class="n">MAXL</span><span class="o">*</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">)</span> 
907<a name="ln-482"></a>       <span class="n">ENDIF</span>
908<a name="ln-483"></a>     
909<a name="ln-484"></a>       <span class="k">IF</span><span class="p">(</span><span class="n">META</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">0</span> <span class="p">.</span><span class="nb">OR</span><span class="p">.</span> <span class="n">METADIFF</span> <span class="p">.</span><span class="n">ne</span><span class="p">.</span> <span class="mi">0</span><span class="p">)</span> <span class="k">THEN</span>
910<a name="ln-485"></a><span class="k">         </span><span class="n">DPSDT</span><span class="o">=</span><span class="n">PS</span>
911<a name="ln-486"></a>         <span class="k">CALL </span><span class="n">CONTGL</span><span class="p">(</span><span class="n">DPSDT</span><span class="p">,</span><span class="n">DPSDL</span><span class="p">,</span><span class="n">DPSDM</span><span class="p">,</span><span class="n">DIV</span><span class="p">,</span><span class="n">UV</span><span class="p">(:,:,</span><span class="mi">1</span><span class="p">),</span><span class="n">UV</span><span class="p">(:,:,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="mi">1</span><span class="p">),</span> <span class="p">&amp;</span>
912<a name="ln-487"></a>      <span class="n">BREITE</span><span class="p">,</span><span class="n">ETA</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span><span class="n">AK</span><span class="p">,</span><span class="n">BK</span><span class="p">,</span><span class="n">MAXL</span><span class="o">*</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">)</span>
913<a name="ln-488"></a>       <span class="n">ENDIF</span>
914<a name="ln-489"></a>
915<a name="ln-490"></a>      <span class="n">ENDIF</span> <span class="c">! MGAUSS</span>
916<a name="ln-491"></a>
917<a name="ln-492"></a><span class="c">! CREATE FILE VERTICAL.EC NEEDED BY POP MODEL</span>
918<a name="ln-493"></a>
919<a name="ln-494"></a>      <span class="k">open</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="k">file</span><span class="o">=</span><span class="s1">&#39;VERTICAL.EC&#39;</span><span class="p">)</span>
920<a name="ln-495"></a>      <span class="k">write</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">&#39;(a)&#39;</span><span class="p">)</span>
921<a name="ln-496"></a>      <span class="k">write</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">&#39;(a)&#39;</span><span class="p">)</span> <span class="s1">&#39;VERTICAL DISCRETIZATION OF POP MODEL&#39;</span>
922<a name="ln-497"></a>      <span class="k">write</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">&#39;(a)&#39;</span><span class="p">)</span>
923<a name="ln-498"></a>      <span class="k">write</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">&#39;(i3,a)&#39;</span><span class="p">)</span> <span class="n">MLEVEL</span><span class="p">,</span><span class="s1">&#39;   number of layers&#39;</span>
924<a name="ln-499"></a>      <span class="k">write</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">&#39;(a)&#39;</span><span class="p">)</span>
925<a name="ln-500"></a>      <span class="k">write</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">&#39;(a)&#39;</span><span class="p">)</span> <span class="s1">&#39;* A(NLEV+1)&#39;</span>
926<a name="ln-501"></a>      <span class="k">write</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">&#39;(a)&#39;</span><span class="p">)</span>
927<a name="ln-502"></a>      <span class="k">do </span><span class="mi">205</span> <span class="n">i</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="mi">1</span>
928<a name="ln-503"></a><span class="mi">205</span>      <span class="k">write</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">&#39;(f18.12)&#39;</span><span class="p">)</span> <span class="n">AK</span><span class="p">(</span><span class="n">I</span><span class="p">)</span>
929<a name="ln-504"></a>      <span class="k">write</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">&#39;(a)&#39;</span><span class="p">)</span>
930<a name="ln-505"></a>      <span class="k">write</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">&#39;(a)&#39;</span><span class="p">)</span> <span class="s1">&#39;* B(NLEV+1)&#39;</span>
931<a name="ln-506"></a>      <span class="k">write</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">&#39;(a)&#39;</span><span class="p">)</span>
932<a name="ln-507"></a>      <span class="k">do </span><span class="mi">210</span> <span class="n">i</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="mi">1</span>
933<a name="ln-508"></a><span class="mi">210</span>      <span class="k">write</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">&#39;(f18.12)&#39;</span><span class="p">)</span> <span class="n">BK</span><span class="p">(</span><span class="n">I</span><span class="p">)</span>
934<a name="ln-509"></a>      <span class="k">close</span><span class="p">(</span><span class="mi">21</span><span class="p">)</span>
935<a name="ln-510"></a>
936<a name="ln-511"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span>
937<a name="ln-512"></a><span class="c">!                     READING OF OMEGA                       !</span>
938<a name="ln-513"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span>
939<a name="ln-514"></a>
940<a name="ln-515"></a>      <span class="k">IF</span><span class="p">(</span><span class="n">MOMEGA</span> <span class="p">.</span><span class="n">NE</span><span class="p">.</span> <span class="mi">0</span> <span class="p">)</span> <span class="k">THEN</span>
941<a name="ln-516"></a>
942<a name="ln-517"></a>
943<a name="ln-518"></a>
944<a name="ln-519"></a><span class="k">         ALLOCATE</span> <span class="p">(</span><span class="n">OMR</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span> <span class="n">MAXB</span><span class="p">,</span> <span class="n">MLEVEL</span><span class="p">))</span>
945<a name="ln-520"></a> 
946<a name="ln-521"></a>         <span class="n">FILENAME</span><span class="o">=</span><span class="s1">&#39;fort.19&#39;</span>
947<a name="ln-522"></a>         <span class="k">CALL </span><span class="n">READLATLON</span><span class="p">(</span><span class="n">FILENAME</span><span class="p">,</span><span class="n">OMR</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,(</span><span class="o">/</span><span class="mi">135</span><span class="o">/</span><span class="p">))</span>
948<a name="ln-523"></a>
949<a name="ln-524"></a>      <span class="k">IF</span><span class="p">(</span><span class="n">MOMEGADIFF</span> <span class="p">.</span><span class="n">NE</span><span class="p">.</span> <span class="mi">0</span> <span class="p">)</span> <span class="k">THEN</span>
950<a name="ln-525"></a>
951<a name="ln-526"></a><span class="k">      DO </span><span class="n">K</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span>
952<a name="ln-527"></a>        <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">ETA</span><span class="p">(:,:,</span><span class="n">K</span><span class="p">),</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span>       
953<a name="ln-528"></a>        <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">&#39;(A12,I3,3F11.4)&#39;</span><span class="p">)</span> <span class="s1">&#39;       ETA: &#39;</span><span class="p">,</span><span class="n">K</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span>
954<a name="ln-529"></a>        <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">OMR</span><span class="p">(:,:,</span><span class="n">K</span><span class="p">),</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span>       
955<a name="ln-530"></a>        <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">&#39;(A12,I3,3F11.4)&#39;</span><span class="p">)</span> <span class="s1">&#39;     OMEGA: &#39;</span><span class="p">,</span><span class="n">K</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span>
956<a name="ln-531"></a>        <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">OM</span><span class="p">(:,:,</span><span class="n">K</span><span class="p">)</span><span class="o">-</span><span class="n">OMR</span><span class="p">(:,:,</span><span class="n">K</span><span class="p">),</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span>       
957<a name="ln-532"></a>        <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">&#39;(A12,I3,3F11.4)&#39;</span><span class="p">)</span> <span class="s1">&#39;OMEGA DIFF: &#39;</span><span class="p">,</span><span class="n">K</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span>
958<a name="ln-533"></a>      <span class="n">ENDDO</span>
959<a name="ln-534"></a>
960<a name="ln-535"></a>      <span class="n">ENDIF</span>
961<a name="ln-536"></a>      <span class="n">ENDIF</span>
962<a name="ln-537"></a>
963<a name="ln-538"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span>
964<a name="ln-539"></a><span class="c">!                     READING OF ETA                       !</span>
965<a name="ln-540"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span>
966<a name="ln-541"></a>
967<a name="ln-542"></a>      <span class="k">IF</span><span class="p">(</span><span class="n">META</span> <span class="p">.</span><span class="n">NE</span><span class="p">.</span> <span class="mi">0</span> <span class="p">)</span> <span class="k">THEN</span>
968<a name="ln-543"></a>
969<a name="ln-544"></a><span class="k">         ALLOCATE</span> <span class="p">(</span><span class="n">ETAR</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span> <span class="n">MAXB</span><span class="p">,</span> <span class="n">MLEVEL</span><span class="p">))</span>
970<a name="ln-545"></a> 
971<a name="ln-546"></a>         <span class="n">P00</span><span class="o">=</span><span class="mi">10132</span><span class="mf">5.</span>
972<a name="ln-547"></a>         <span class="n">FILENAME</span><span class="o">=</span><span class="s1">&#39;fort.21&#39;</span>
973<a name="ln-548"></a>         <span class="k">CALL </span><span class="n">READLATLON</span><span class="p">(</span><span class="n">FILENAME</span><span class="p">,</span><span class="n">ETAR</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,(</span><span class="o">/</span><span class="mi">77</span><span class="o">/</span><span class="p">))</span>
974<a name="ln-549"></a>
975<a name="ln-550"></a>         <span class="k">if</span><span class="p">(</span><span class="n">MDPDETA</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">1</span><span class="p">)</span> <span class="k">THEN</span>
976<a name="ln-551"></a><span class="k">          DO </span><span class="n">K</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span>
977<a name="ln-552"></a>           <span class="n">DAK</span><span class="o">=</span><span class="n">AK</span><span class="p">(</span><span class="n">K</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">-</span><span class="n">AK</span><span class="p">(</span><span class="n">K</span><span class="p">)</span>
978<a name="ln-553"></a>           <span class="n">DBK</span><span class="o">=</span><span class="n">BK</span><span class="p">(</span><span class="n">K</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">-</span><span class="n">BK</span><span class="p">(</span><span class="n">K</span><span class="p">)</span>
979<a name="ln-554"></a>           <span class="k">DO </span><span class="n">J</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MAXB</span>
980<a name="ln-555"></a>             <span class="k">DO </span><span class="n">I</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MAXL</span>
981<a name="ln-556"></a>               <span class="n">ETAR</span><span class="p">(</span><span class="n">I</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="mi">2</span><span class="o">*</span><span class="n">ETAR</span><span class="p">(</span><span class="n">I</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="n">PS</span><span class="p">(</span><span class="n">I</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">*</span><span class="p">(</span><span class="n">DAK</span><span class="o">/</span><span class="n">PS</span><span class="p">(</span><span class="n">I</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">+</span><span class="n">DBK</span><span class="p">)</span><span class="o">/</span> <span class="p">&amp;</span>
982<a name="ln-557"></a>                          <span class="p">(</span><span class="n">DAK</span><span class="o">/</span><span class="n">P00</span><span class="o">+</span><span class="n">DBK</span><span class="p">)</span>
983<a name="ln-558"></a>               <span class="k">IF</span><span class="p">(</span><span class="n">K</span> <span class="p">.</span><span class="n">GT</span><span class="p">.</span> <span class="mi">1</span><span class="p">)</span> <span class="n">ETAR</span><span class="p">(</span><span class="n">I</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">ETAR</span><span class="p">(</span><span class="n">I</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">-</span><span class="n">ETAR</span><span class="p">(</span><span class="n">I</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span>
984<a name="ln-559"></a>             <span class="n">ENDDO</span>
985<a name="ln-560"></a>           <span class="n">ENDDO</span>
986<a name="ln-561"></a>          <span class="n">ENDDO</span>
987<a name="ln-562"></a>         <span class="n">ENDIF</span>
988<a name="ln-563"></a>
989<a name="ln-564"></a>        <span class="k">IF</span><span class="p">(</span><span class="n">METADIFF</span> <span class="p">.</span><span class="n">NE</span><span class="p">.</span> <span class="mi">0</span> <span class="p">)</span> <span class="k">THEN</span>
990<a name="ln-565"></a>
991<a name="ln-566"></a><span class="k">         DO </span><span class="n">K</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span>
992<a name="ln-567"></a>          <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">ETA</span><span class="p">(:,:,</span><span class="n">K</span><span class="p">),</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span>       
993<a name="ln-568"></a>          <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">&#39;(A12,I3,3F11.4)&#39;</span><span class="p">)</span> <span class="s1">&#39;       ETA: &#39;</span><span class="p">,</span><span class="n">K</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span>
994<a name="ln-569"></a>          <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">ETAR</span><span class="p">(:,:,</span><span class="n">K</span><span class="p">),</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span>       
995<a name="ln-570"></a>          <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">&#39;(A12,I3,3F11.4)&#39;</span><span class="p">)</span> <span class="s1">&#39;     ETAR: &#39;</span><span class="p">,</span><span class="n">K</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span>
996<a name="ln-571"></a>          <span class="k">CALL </span><span class="n">STATIS</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="n">ETA</span><span class="p">(:,:,</span><span class="n">K</span><span class="p">)</span><span class="o">-</span><span class="n">ETAR</span><span class="p">(:,:,</span><span class="n">K</span><span class="p">),</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span>       
997<a name="ln-572"></a>          <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">&#39;(A12,I3,3F11.4)&#39;</span><span class="p">)</span> <span class="s1">&#39;ETA DIFF: &#39;</span><span class="p">,</span><span class="n">K</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span>
998<a name="ln-573"></a>         <span class="n">ENDDO</span>
999<a name="ln-574"></a>         <span class="k">DO </span><span class="n">K</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span>
1000<a name="ln-575"></a>          <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">&#39;(I3,2F11.4)&#39;</span><span class="p">)</span> <span class="n">K</span><span class="p">,</span><span class="n">ETA</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="n">MAXB</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span><span class="n">K</span><span class="p">),</span><span class="n">ETAR</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="n">MAXB</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span><span class="n">K</span><span class="p">)</span>
1001<a name="ln-576"></a>         <span class="n">ENDDO</span>
1002<a name="ln-577"></a>        <span class="k">ELSE</span>
1003<a name="ln-578"></a><span class="k">          </span><span class="n">ETA</span><span class="o">=</span><span class="n">ETAR</span>
1004<a name="ln-579"></a>        <span class="n">ENDIF</span>
1005<a name="ln-580"></a>      <span class="n">ENDIF</span>
1006<a name="ln-581"></a>
1007<a name="ln-582"></a>      <span class="k">ALLOCATE</span> <span class="p">(</span><span class="n">T</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span> <span class="n">MAXB</span><span class="p">,</span> <span class="n">MLEVEL</span><span class="p">))</span>
1008<a name="ln-583"></a>      <span class="k">ALLOCATE</span> <span class="p">(</span><span class="n">QA</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span> <span class="n">MAXB</span><span class="p">,</span> <span class="n">MLEVEL</span><span class="p">))</span>
1009<a name="ln-584"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span>
1010<a name="ln-585"></a><span class="c">!                      READING OF T                      !</span>
1011<a name="ln-586"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span>
1012<a name="ln-587"></a><span class="c">!</span>
1013<a name="ln-588"></a><span class="c">! OPENING OF UNBLOCKED GRIB FILE</span>
1014<a name="ln-589"></a><span class="c">!</span>
1015<a name="ln-590"></a>      <span class="n">FILENAME</span><span class="o">=</span><span class="s1">&#39;fort.11&#39;</span>
1016<a name="ln-591"></a>      <span class="k">CALL </span><span class="n">READLATLON</span><span class="p">(</span><span class="n">FILENAME</span><span class="p">,</span><span class="n">T</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,(</span><span class="o">/</span><span class="mi">130</span><span class="o">/</span><span class="p">))</span>
1017<a name="ln-592"></a>
1018<a name="ln-593"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span>
1019<a name="ln-594"></a><span class="c">!                     READING OF SPECIFIC HUMIDITY                !</span>
1020<a name="ln-595"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span>
1021<a name="ln-596"></a>
1022<a name="ln-597"></a>      <span class="n">FILENAME</span><span class="o">=</span><span class="s1">&#39;fort.17&#39;</span>
1023<a name="ln-598"></a>      <span class="k">CALL </span><span class="n">READLATLON</span><span class="p">(</span><span class="n">FILENAME</span><span class="p">,</span><span class="n">QA</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,(</span><span class="o">/</span><span class="mi">133</span><span class="o">/</span><span class="p">))</span>
1024<a name="ln-599"></a>
1025<a name="ln-600"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span>
1026<a name="ln-601"></a><span class="c">!                     TEST READING OF UV from MARS (debug only)   !</span>
1027<a name="ln-602"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span>
1028<a name="ln-603"></a>
1029<a name="ln-604"></a><span class="c">!      FILENAME=&#39;fort.22&#39;</span>
1030<a name="ln-605"></a><span class="c">!      CALL READLATLON(FILENAME,UV2,MAXL,MAXB,2*MLEVEL,2,(/131,132/))</span>
1031<a name="ln-606"></a>
1032<a name="ln-607"></a>
1033<a name="ln-608"></a>
1034<a name="ln-609"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span>
1035<a name="ln-610"></a><span class="c">!                    WRITE MODEL LEVEL DATA TO fort.15            !</span>
1036<a name="ln-611"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span>
1037<a name="ln-612"></a>
1038<a name="ln-613"></a><span class="c">!     Calculation of etadot in CONTGL needed scaled winds (ucosphi,vcosphi)</span>
1039<a name="ln-614"></a><span class="c">!     Now we are transforming back to the usual winds. </span>
1040<a name="ln-615"></a>      <span class="k">DO </span><span class="n">K</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span>
1041<a name="ln-616"></a>        <span class="k">DO </span><span class="n">J</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span><span class="n">MAXB</span><span class="o">-</span><span class="mi">1</span>
1042<a name="ln-617"></a>          <span class="n">COSB</span><span class="o">=</span><span class="nb">SQRT</span><span class="p">(</span><span class="mf">1.0</span><span class="o">-</span><span class="p">(</span><span class="n">BREITE</span><span class="p">(</span><span class="n">J</span><span class="p">))</span><span class="o">*</span><span class="p">(</span><span class="n">BREITE</span><span class="p">(</span><span class="n">J</span><span class="p">)))</span>
1043<a name="ln-618"></a>          <span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">/</span><span class="n">COSB</span>
1044<a name="ln-619"></a>          <span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="n">K</span><span class="p">)</span><span class="o">/</span><span class="n">COSB</span>
1045<a name="ln-620"></a>        <span class="n">ENDDO</span>
1046<a name="ln-621"></a><span class="c">! special treatment for poles, if necessary. </span>
1047<a name="ln-622"></a>        <span class="k">DO </span><span class="n">J</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MAXB</span><span class="o">-</span><span class="mi">1</span>
1048<a name="ln-623"></a>          <span class="n">COSB</span><span class="o">=</span><span class="nb">SQRT</span><span class="p">(</span><span class="mf">1.0</span><span class="o">-</span><span class="p">(</span><span class="n">BREITE</span><span class="p">(</span><span class="n">J</span><span class="p">))</span><span class="o">*</span><span class="p">(</span><span class="n">BREITE</span><span class="p">(</span><span class="n">J</span><span class="p">)))</span>
1049<a name="ln-624"></a>          <span class="k">if</span><span class="p">(</span><span class="mf">1.0</span><span class="o">-</span><span class="n">BREITE</span><span class="p">(</span><span class="n">J</span><span class="p">)</span><span class="o">*</span><span class="n">BREITE</span><span class="p">(</span><span class="n">J</span><span class="p">)</span> <span class="p">.</span><span class="n">gt</span><span class="p">.</span> <span class="mi">0</span> <span class="p">.</span><span class="nb">OR</span><span class="p">.</span> <span class="n">MGAUSS</span> <span class="p">.</span><span class="n">NE</span><span class="p">.</span> <span class="mi">1</span><span class="p">)</span> <span class="k">then</span>
1050<a name="ln-625"></a><span class="k">            IF</span><span class="p">(</span><span class="n">RLA0</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="o">-</span><span class="mi">9</span><span class="mf">0.0</span> <span class="p">.</span><span class="nb">AND</span><span class="p">.</span> <span class="n">J</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="n">MAXB</span> <span class="p">.</span><span class="nb">OR</span><span class="p">.</span> <span class="p">&amp;</span>
1051<a name="ln-626"></a>             <span class="n">RLA1</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">9</span><span class="mf">0.0</span> <span class="p">.</span><span class="nb">AND</span><span class="p">.</span> <span class="n">J</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">1</span><span class="p">)</span> <span class="k">then</span>
1052<a name="ln-627"></a><span class="k">             </span><span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="mf">1.D6</span>
1053<a name="ln-628"></a>             <span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="mf">1.D6</span>
1054<a name="ln-629"></a>            <span class="k">else</span>
1055<a name="ln-630"></a><span class="k">             </span><span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">/</span><span class="n">COSB</span>
1056<a name="ln-631"></a>             <span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">UV</span><span class="p">(:,</span><span class="n">J</span><span class="p">,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="n">K</span><span class="p">)</span><span class="o">/</span><span class="n">COSB</span>
1057<a name="ln-632"></a>            <span class="n">endif</span>
1058<a name="ln-633"></a>          <span class="k">else</span>
1059<a name="ln-634"></a><span class="k">              </span><span class="n">HILFUV</span><span class="p">(</span><span class="mi">5</span><span class="p">:</span><span class="n">MAXL</span><span class="p">,:)</span><span class="o">=</span><span class="mf">0.</span>
1060<a name="ln-635"></a>              <span class="n">HILFUV</span><span class="p">(</span><span class="mi">1</span><span class="p">:</span><span class="mi">2</span><span class="p">,:)</span><span class="o">=</span><span class="mf">0.</span>
1061<a name="ln-636"></a>            <span class="k">IF</span><span class="p">(</span><span class="n">J</span><span class="p">.</span><span class="n">EQ</span><span class="p">.</span><span class="n">MAXB</span><span class="p">)</span> <span class="k">THEN</span>
1062<a name="ln-637"></a><span class="c">! Suedpol</span>
1063<a name="ln-638"></a>              <span class="n">HILFUV</span><span class="p">(</span><span class="mi">3</span><span class="p">:</span><span class="mi">4</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">CUA</span><span class="p">(:,</span><span class="mi">4</span><span class="p">,</span><span class="n">K</span><span class="p">)</span>
1064<a name="ln-639"></a>              <span class="n">HILFUV</span><span class="p">(</span><span class="mi">3</span><span class="p">:</span><span class="mi">4</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="o">=</span><span class="n">CVA</span><span class="p">(:,</span><span class="mi">4</span><span class="p">,</span><span class="n">K</span><span class="p">)</span>
1065<a name="ln-640"></a>            <span class="k">ELSE</span>
1066<a name="ln-641"></a><span class="c">! Nordpol</span>
1067<a name="ln-642"></a>              <span class="n">HILFUV</span><span class="p">(</span><span class="mi">3</span><span class="p">:</span><span class="mi">4</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">CUA</span><span class="p">(:,</span><span class="mi">2</span><span class="p">,</span><span class="n">K</span><span class="p">)</span>
1068<a name="ln-643"></a>              <span class="n">HILFUV</span><span class="p">(</span><span class="mi">3</span><span class="p">:</span><span class="mi">4</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="o">=</span><span class="n">CVA</span><span class="p">(:,</span><span class="mi">2</span><span class="p">,</span><span class="n">K</span><span class="p">)</span>
1069<a name="ln-644"></a>            <span class="n">ENDIF</span>
1070<a name="ln-645"></a>              <span class="k">CALL </span><span class="n">RFOURTR</span><span class="p">(</span><span class="n">HILFUV</span><span class="p">(:,</span><span class="mi">1</span><span class="p">),</span><span class="n">WSAVE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span><span class="n">MAXL</span><span class="o">/</span><span class="mi">2</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span>
1071<a name="ln-646"></a>              <span class="k">DO </span><span class="n">I</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span><span class="n">MAXL</span><span class="o">-</span><span class="mi">1</span>
1072<a name="ln-647"></a>                <span class="k">IF</span><span class="p">(</span><span class="n">MANF</span><span class="o">+</span><span class="n">I</span><span class="p">.</span><span class="n">LE</span><span class="p">.</span><span class="n">MAXL</span><span class="p">)</span> <span class="k">THEN</span>
1073<a name="ln-648"></a><span class="k">                  </span><span class="n">UV</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">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">HILFUV</span><span class="p">(</span><span class="n">MANF</span><span class="o">+</span><span class="n">I</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span>
1074<a name="ln-649"></a>                <span class="k">ELSE</span>
1075<a name="ln-650"></a><span class="k">                  </span><span class="n">UV</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">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">HILFUV</span><span class="p">(</span><span class="n">MANF</span><span class="o">-</span><span class="n">MAXL</span><span class="o">+</span><span class="n">I</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span>
1076<a name="ln-651"></a>                <span class="n">ENDIF</span>
1077<a name="ln-652"></a>              <span class="n">ENDDO</span>
1078<a name="ln-653"></a>              <span class="k">CALL </span><span class="n">RFOURTR</span><span class="p">(</span><span class="n">HILFUV</span><span class="p">(:,</span><span class="mi">2</span><span class="p">),</span><span class="n">WSAVE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span><span class="n">MAXL</span><span class="o">/</span><span class="mi">2</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span>
1079<a name="ln-654"></a>              <span class="k">DO </span><span class="n">I</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span><span class="n">MAXL</span><span class="o">-</span><span class="mi">1</span>
1080<a name="ln-655"></a>                <span class="k">IF</span><span class="p">(</span><span class="n">MANF</span><span class="o">+</span><span class="n">I</span><span class="p">.</span><span class="n">LE</span><span class="p">.</span><span class="n">MAXL</span><span class="p">)</span> <span class="k">THEN</span>
1081<a name="ln-656"></a><span class="k">                  </span><span class="n">UV</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">J</span><span class="p">,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">HILFUV</span><span class="p">(</span><span class="n">MANF</span><span class="o">+</span><span class="n">I</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span>
1082<a name="ln-657"></a>                <span class="k">ELSE</span>
1083<a name="ln-658"></a><span class="k">                  </span><span class="n">UV</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">J</span><span class="p">,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">HILFUV</span><span class="p">(</span><span class="n">MANF</span><span class="o">-</span><span class="n">MAXL</span><span class="o">+</span><span class="n">I</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span>
1084<a name="ln-659"></a>                <span class="n">ENDIF</span>
1085<a name="ln-660"></a>              <span class="n">ENDDO</span>
1086<a name="ln-661"></a>          <span class="n">endif</span>
1087<a name="ln-662"></a>      <span class="n">ENDDO</span>
1088<a name="ln-663"></a>      <span class="n">ENDDO</span>
1089<a name="ln-664"></a>
1090<a name="ln-665"></a><span class="c">! open output file</span>
1091<a name="ln-666"></a>      <span class="k">call </span><span class="n">grib_open_file</span><span class="p">(</span><span class="n">LUNIT</span><span class="p">,</span><span class="s1">&#39;fort.15&#39;</span><span class="p">,</span><span class="s1">&#39;w&#39;</span><span class="p">)</span>
1092<a name="ln-667"></a>
1093<a name="ln-668"></a><span class="c">! we use temperature on lat/lon on model levels as template for model level data</span>
1094<a name="ln-669"></a>      <span class="n">LUNIT2</span><span class="o">=</span><span class="mi">0</span>
1095<a name="ln-670"></a>      <span class="k">call </span><span class="n">grib_open_file</span><span class="p">(</span><span class="n">LUNIT2</span><span class="p">,</span><span class="s1">&#39;fort.11&#39;</span><span class="p">,</span><span class="s1">&#39;r&#39;</span><span class="p">)</span>
1096<a name="ln-671"></a>      <span class="k">call </span><span class="n">grib_new_from_file</span><span class="p">(</span><span class="n">LUNIT2</span><span class="p">,</span><span class="n">igrib</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span> <span class="n">iret</span><span class="p">)</span>
1097<a name="ln-672"></a>      <span class="k">call </span><span class="n">grib_close_file</span><span class="p">(</span><span class="n">LUNIT2</span><span class="p">)</span>
1098<a name="ln-673"></a>
1099<a name="ln-674"></a>
1100<a name="ln-675"></a>      <span class="k">CALL </span><span class="n">WRITELATLON</span><span class="p">(</span><span class="n">LUNIT</span><span class="p">,</span><span class="n">igrib</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">ogrib</span><span class="p">,</span><span class="n">UV</span><span class="p">(:,:,</span><span class="mi">1</span><span class="p">),</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,</span><span class="n">MLEVELIST</span><span class="p">,</span><span class="mi">1</span><span class="p">,(</span><span class="o">/</span><span class="mi">131</span><span class="o">/</span><span class="p">))</span>
1101<a name="ln-676"></a>
1102<a name="ln-677"></a>      <span class="k">CALL </span><span class="n">WRITELATLON</span><span class="p">(</span><span class="n">LUNIT</span><span class="p">,</span><span class="n">igrib</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">ogrib</span><span class="p">,</span><span class="n">UV</span><span class="p">(:,:,</span><span class="n">MLEVEL</span><span class="o">+</span><span class="mi">1</span><span class="p">),</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,</span><span class="n">MLEVELIST</span><span class="p">,</span><span class="mi">1</span><span class="p">,(</span><span class="o">/</span><span class="mi">132</span><span class="o">/</span><span class="p">))</span>
1103<a name="ln-678"></a>
1104<a name="ln-679"></a>      <span class="k">IF</span><span class="p">(</span><span class="n">MDPDETA</span> <span class="p">.</span><span class="n">ne</span><span class="p">.</span> <span class="mi">1</span> <span class="p">.</span><span class="nb">AND</span><span class="p">.</span> <span class="n">MGAUSS</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">0</span> <span class="p">.</span><span class="nb">and</span><span class="p">.</span> <span class="n">META</span> <span class="p">.</span><span class="n">eq</span><span class="p">.</span> <span class="mi">1</span><span class="p">)</span> <span class="k">THEN</span>
1105<a name="ln-680"></a><span class="k">        CALL </span><span class="n">WRITELATLON</span><span class="p">(</span><span class="n">LUNIT</span><span class="p">,</span><span class="n">igrib</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">ogrib</span><span class="p">,</span><span class="n">ETA</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,</span><span class="n">MLEVELIST</span><span class="p">,</span><span class="mi">1</span><span class="p">,(</span><span class="o">/</span><span class="mi">77</span><span class="o">/</span><span class="p">))</span>
1106<a name="ln-681"></a>      <span class="k">ELSE</span>
1107<a name="ln-682"></a><span class="k">        CALL </span><span class="n">WRITELATLON</span><span class="p">(</span><span class="n">LUNIT</span><span class="p">,</span><span class="n">igrib</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">ogrib</span><span class="p">,</span><span class="n">ETA</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,</span><span class="n">MLEVELIST</span><span class="p">,</span><span class="mi">1</span><span class="p">,(</span><span class="o">/</span><span class="n">METAPAR</span><span class="o">/</span><span class="p">))</span>
1108<a name="ln-683"></a>      <span class="n">ENDIF</span>
1109<a name="ln-684"></a>
1110<a name="ln-685"></a>      <span class="k">CALL </span><span class="n">WRITELATLON</span><span class="p">(</span><span class="n">LUNIT</span><span class="p">,</span><span class="n">igrib</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">ogrib</span><span class="p">,</span><span class="n">T</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,</span><span class="n">MLEVELIST</span><span class="p">,</span><span class="mi">1</span><span class="p">,(</span><span class="o">/</span><span class="mi">130</span><span class="o">/</span><span class="p">))</span>
1111<a name="ln-686"></a>
1112<a name="ln-687"></a>      <span class="k">CALL </span><span class="n">WRITELATLON</span><span class="p">(</span><span class="n">LUNIT</span><span class="p">,</span><span class="n">igrib</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">ogrib</span><span class="p">,</span><span class="n">PS</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="s1">&#39;1&#39;</span><span class="p">,</span><span class="mi">1</span><span class="p">,(</span><span class="o">/</span><span class="mi">134</span><span class="o">/</span><span class="p">))</span>
1113<a name="ln-688"></a> 
1114<a name="ln-689"></a>      <span class="k">call </span><span class="n">grib_set</span><span class="p">(</span><span class="n">igrib</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="s2">&quot;levelType&quot;</span><span class="p">,</span><span class="s2">&quot;ml&quot;</span><span class="p">)</span>
1115<a name="ln-690"></a>      <span class="k">call </span><span class="n">grib_set</span><span class="p">(</span><span class="n">igrib</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="s2">&quot;typeOfLevel&quot;</span><span class="p">,</span><span class="s2">&quot;hybrid&quot;</span><span class="p">)</span>
1116<a name="ln-691"></a>      <span class="k">CALL </span><span class="n">WRITELATLON</span><span class="p">(</span><span class="n">LUNIT</span><span class="p">,</span><span class="n">igrib</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">ogrib</span><span class="p">,</span><span class="n">QA</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,</span><span class="n">MLEVELIST</span><span class="p">,</span><span class="mi">1</span><span class="p">,(</span><span class="o">/</span><span class="mi">133</span><span class="o">/</span><span class="p">))</span>
1117<a name="ln-692"></a>
1118<a name="ln-693"></a> 
1119<a name="ln-694"></a>      <span class="k">IF</span><span class="p">(</span><span class="n">MOMEGA</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">1</span><span class="p">)</span> <span class="k">THEN</span>
1120<a name="ln-695"></a><span class="k">        call </span><span class="n">grib_open_file</span><span class="p">(</span><span class="n">LUNIT2</span><span class="p">,</span><span class="s1">&#39;fort.25&#39;</span><span class="p">,</span><span class="s1">&#39;w&#39;</span><span class="p">)</span>
1121<a name="ln-696"></a>        <span class="k">CALL </span><span class="n">WRITELATLON</span><span class="p">(</span><span class="n">LUNIT2</span><span class="p">,</span><span class="n">igrib</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">ogrib</span><span class="p">,</span><span class="n">OMR</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,</span><span class="n">MLEVELIST</span><span class="p">,</span><span class="mi">1</span><span class="p">,(</span><span class="o">/</span><span class="mi">135</span><span class="o">/</span><span class="p">))</span>
1122<a name="ln-697"></a>
1123<a name="ln-698"></a>        <span class="k">IF</span><span class="p">(</span><span class="n">MOMEGADIFF</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">1</span><span class="p">)</span> <span class="k">THEN</span>
1124<a name="ln-699"></a>
1125<a name="ln-700"></a><span class="k">          CALL </span><span class="n">WRITELATLON</span><span class="p">(</span><span class="n">LUNIT2</span><span class="p">,</span><span class="n">igrib</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">ogrib</span><span class="p">,</span><span class="n">DPSDT</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="s1">&#39;1&#39;</span><span class="p">,</span><span class="mi">1</span><span class="p">,(</span><span class="o">/</span><span class="mi">158</span><span class="o">/</span><span class="p">))</span>
1126<a name="ln-701"></a>
1127<a name="ln-702"></a>        <span class="n">OM</span><span class="o">=</span><span class="n">OM</span><span class="o">-</span><span class="n">OMR</span>
1128<a name="ln-703"></a>        <span class="k">CALL </span><span class="n">WRITELATLON</span><span class="p">(</span><span class="n">LUNIT2</span><span class="p">,</span><span class="n">igrib</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">ogrib</span><span class="p">,</span><span class="n">OM</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,</span><span class="n">MLEVELIST</span><span class="p">,</span><span class="mi">1</span><span class="p">,(</span><span class="o">/</span><span class="mi">001</span><span class="o">/</span><span class="p">))</span>
1129<a name="ln-704"></a>      <span class="k">call </span><span class="n">grib_close_file</span><span class="p">(</span><span class="n">LUNIT2</span><span class="p">)</span>
1130<a name="ln-705"></a>        <span class="n">ENDIF</span>
1131<a name="ln-706"></a>      <span class="n">ENDIF</span>
1132<a name="ln-707"></a>
1133<a name="ln-708"></a>      <span class="k">IF</span><span class="p">(</span><span class="n">META</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">1</span> <span class="p">.</span><span class="nb">and</span><span class="p">.</span> <span class="n">METADIFF</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">1</span><span class="p">)</span> <span class="k">THEN</span>
1134<a name="ln-709"></a><span class="k">        call </span><span class="n">grib_open_file</span><span class="p">(</span><span class="n">LUNIT2</span><span class="p">,</span><span class="s1">&#39;fort.26&#39;</span><span class="p">,</span><span class="s1">&#39;w&#39;</span><span class="p">)</span>
1135<a name="ln-710"></a>        <span class="k">CALL </span><span class="n">WRITELATLON</span><span class="p">(</span><span class="n">LUNIT2</span><span class="p">,</span><span class="n">igrib</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">ogrib</span><span class="p">,</span><span class="n">ETAR</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,</span><span class="n">MLEVELIST</span><span class="p">,</span><span class="mi">1</span><span class="p">,(</span><span class="o">/</span><span class="mi">135</span><span class="o">/</span><span class="p">))</span>
1136<a name="ln-711"></a>
1137<a name="ln-712"></a><span class="c">!        IF(MOMEGADIFF .EQ. 1) THEN</span>
1138<a name="ln-713"></a>
1139<a name="ln-714"></a>          <span class="k">CALL </span><span class="n">WRITELATLON</span><span class="p">(</span><span class="n">LUNIT2</span><span class="p">,</span><span class="n">igrib</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">ogrib</span><span class="p">,</span><span class="n">DPSDT</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="s1">&#39;1&#39;</span><span class="p">,</span><span class="mi">1</span><span class="p">,(</span><span class="o">/</span><span class="mi">158</span><span class="o">/</span><span class="p">))</span>
1140<a name="ln-715"></a>
1141<a name="ln-716"></a>        <span class="n">OM</span><span class="o">=</span><span class="n">ETA</span><span class="o">-</span><span class="n">ETAR</span>
1142<a name="ln-717"></a>        <span class="k">CALL </span><span class="n">WRITELATLON</span><span class="p">(</span><span class="n">LUNIT2</span><span class="p">,</span><span class="n">igrib</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span><span class="n">ogrib</span><span class="p">,</span><span class="n">OM</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,</span><span class="n">MLEVELIST</span><span class="p">,</span><span class="mi">1</span><span class="p">,(</span><span class="o">/</span><span class="mi">001</span><span class="o">/</span><span class="p">))</span>
1143<a name="ln-718"></a>      <span class="k">call </span><span class="n">grib_close_file</span><span class="p">(</span><span class="n">LUNIT2</span><span class="p">)</span>
1144<a name="ln-719"></a><span class="c">!        ENDIF</span>
1145<a name="ln-720"></a>      <span class="n">ENDIF</span>
1146<a name="ln-721"></a>
1147<a name="ln-722"></a>
1148<a name="ln-723"></a>      <span class="k">call </span><span class="n">grib_close_file</span><span class="p">(</span><span class="n">LUNIT</span><span class="p">)</span>
1149<a name="ln-724"></a>
1150<a name="ln-725"></a>
1151<a name="ln-726"></a>
1152<a name="ln-727"></a> <span class="mi">2000</span> <span class="k">STOP</span> <span class="s1">&#39;SUCCESSFULLY FINISHED CONVERT_PRE: CONGRATULATIONS&#39;</span>
1153<a name="ln-728"></a> <span class="mi">3000</span> <span class="k">STOP</span> <span class="s1">&#39;ROUTINE CONVERT_PRE: ERROR&#39;</span>
1154<a name="ln-729"></a> <span class="mi">9999</span> <span class="k">stop</span> <span class="s1">&#39;ROUTINE CONVERT_PRE: ERROR&#39;</span>
1155<a name="ln-730"></a>      <span class="k">END</span>
1156<a name="ln-731"></a>
1157<a name="ln-732"></a>     
1158<a name="ln-733"></a>
1159<a name="ln-734"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span>
1160<a name="ln-735"></a>      <span class="kt">INTEGER </span><span class="k">FUNCTION </span><span class="n">IA</span> <span class="p">(</span><span class="n">FIELD1</span><span class="p">,</span><span class="n">NI</span><span class="p">,</span><span class="n">NJ</span><span class="p">,</span><span class="n">NK</span><span class="p">,</span><span class="n">G</span><span class="p">)</span>
1161<a name="ln-736"></a>
1162<a name="ln-737"></a>      <span class="k">IMPLICIT NONE</span>
1163<a name="ln-738"></a><span class="k">      </span><span class="kt">INTEGER </span><span class="n">NI</span><span class="p">,</span><span class="n">NJ</span><span class="p">,</span><span class="n">NK</span><span class="p">,</span><span class="n">I</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span>
1164<a name="ln-739"></a>      <span class="kt">REAL </span><span class="n">FIELD1</span><span class="p">(</span><span class="n">NI</span><span class="p">,</span><span class="n">NJ</span><span class="p">,</span><span class="n">NK</span><span class="p">)</span>
1165<a name="ln-740"></a>      <span class="kt">REAL </span><span class="n">G</span>
1166<a name="ln-741"></a>      <span class="kt">REAL </span><span class="n">RMIN</span><span class="p">,</span><span class="n">RMAX</span><span class="p">,</span><span class="n">XMAX</span><span class="p">,</span><span class="n">A</span><span class="p">,</span><span class="n">A1</span><span class="p">,</span><span class="n">A2</span>
1167<a name="ln-742"></a>
1168<a name="ln-743"></a>      <span class="n">RMAX</span><span class="o">=</span><span class="n">FIELD1</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span>
1169<a name="ln-744"></a>      <span class="n">RMIN</span><span class="o">=</span><span class="n">FIELD1</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span>
1170<a name="ln-745"></a>     
1171<a name="ln-746"></a>      <span class="k">DO </span><span class="mi">100</span> <span class="n">K</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">NK</span>
1172<a name="ln-747"></a>      <span class="k">DO </span><span class="mi">100</span> <span class="n">J</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">NJ</span>
1173<a name="ln-748"></a>        <span class="k">DO </span><span class="mi">100</span> <span class="n">I</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">NI</span>
1174<a name="ln-749"></a>          <span class="k">IF</span> <span class="p">(</span><span class="n">FIELD1</span><span class="p">(</span><span class="n">I</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">).</span><span class="n">GT</span><span class="p">.</span><span class="n">RMAX</span><span class="p">)</span><span class="n">RMAX</span><span class="o">=</span><span class="n">FIELD1</span><span class="p">(</span><span class="n">I</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span>
1175<a name="ln-750"></a>          <span class="k">IF</span> <span class="p">(</span><span class="n">FIELD1</span><span class="p">(</span><span class="n">I</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">).</span><span class="n">LT</span><span class="p">.</span><span class="n">RMIN</span><span class="p">)</span><span class="n">RMIN</span><span class="o">=</span><span class="n">FIELD1</span><span class="p">(</span><span class="n">I</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span>
1176<a name="ln-751"></a><span class="mi">100</span>   <span class="k">CONTINUE</span>
1177<a name="ln-752"></a>
1178<a name="ln-753"></a><span class="k">      IF</span> <span class="p">(</span><span class="nb">ABS</span><span class="p">(</span><span class="n">RMIN</span><span class="p">).</span><span class="n">GT</span><span class="p">.</span><span class="n">RMAX</span><span class="p">.</span><span class="nb">OR</span><span class="p">.</span><span class="nb">ABS</span><span class="p">(</span><span class="n">RMIN</span><span class="p">).</span><span class="n">EQ</span><span class="p">.</span><span class="n">RMAX</span><span class="p">)</span> <span class="k">THEN</span>
1179<a name="ln-754"></a><span class="k">      </span><span class="n">XMAX</span><span class="o">=</span><span class="nb">ABS</span><span class="p">(</span><span class="n">RMIN</span><span class="p">)</span>
1180<a name="ln-755"></a>      <span class="k">ELSE</span>
1181<a name="ln-756"></a><span class="k">      </span><span class="n">XMAX</span><span class="o">=</span><span class="n">RMAX</span>
1182<a name="ln-757"></a>      <span class="n">ENDIF</span>
1183<a name="ln-758"></a>     
1184<a name="ln-759"></a>      <span class="k">IF</span> <span class="p">(</span><span class="n">XMAX</span><span class="p">.</span><span class="n">EQ</span><span class="p">.</span><span class="mi">0</span><span class="p">)</span> <span class="k">THEN</span>
1185<a name="ln-760"></a><span class="k">      </span><span class="n">IA</span> <span class="o">=</span> <span class="mi">0</span>
1186<a name="ln-761"></a>      <span class="k">RETURN</span>
1187<a name="ln-762"></a><span class="k">      </span><span class="n">ENDIF</span>
1188<a name="ln-763"></a>     
1189<a name="ln-764"></a>      <span class="n">A1</span><span class="o">=</span><span class="n">LOG10</span> <span class="p">((</span><span class="n">G</span><span class="o">/</span><span class="mi">1</span><span class="mf">0.d0</span><span class="p">)</span><span class="o">/</span><span class="n">XMAX</span><span class="p">)</span>
1190<a name="ln-765"></a>      <span class="n">A2</span><span class="o">=</span><span class="n">LOG10</span> <span class="p">(</span> <span class="n">G</span><span class="o">/</span><span class="n">XMAX</span> <span class="p">)</span>
1191<a name="ln-766"></a>      <span class="k">IF</span><span class="p">(</span><span class="n">A1</span> <span class="p">.</span><span class="n">gt</span><span class="p">.</span> <span class="n">A2</span><span class="p">)</span> <span class="k">THEN</span>
1192<a name="ln-767"></a><span class="k">        </span><span class="n">A</span><span class="o">=</span><span class="n">A2</span>
1193<a name="ln-768"></a>      <span class="k">ELSE </span>
1194<a name="ln-769"></a><span class="k">        </span><span class="n">A</span><span class="o">=</span><span class="n">A1</span>
1195<a name="ln-770"></a>      <span class="n">ENDIF</span>
1196<a name="ln-771"></a>     
1197<a name="ln-772"></a>      <span class="k">IF</span> <span class="p">(</span><span class="n">A</span><span class="p">.</span><span class="n">GT</span><span class="p">.</span><span class="mi">0</span><span class="p">)</span> <span class="n">IA</span><span class="o">=</span><span class="nb">INT</span><span class="p">(</span><span class="n">A</span><span class="p">)</span>
1198<a name="ln-773"></a>      <span class="k">IF</span> <span class="p">(</span><span class="n">A</span><span class="p">.</span><span class="n">LT</span><span class="p">.</span><span class="mi">0</span><span class="p">)</span> <span class="n">IA</span><span class="o">=</span><span class="nb">INT</span><span class="p">(</span><span class="n">A</span><span class="o">-</span><span class="mf">1.0</span><span class="p">)</span>
1199<a name="ln-774"></a>     
1200<a name="ln-775"></a>      <span class="k">RETURN</span>
1201<a name="ln-776"></a><span class="k">      END</span>
1202<a name="ln-777"></a><span class="k">      </span>
1203<a name="ln-778"></a><span class="k">      SUBROUTINE </span><span class="n">STATIS</span> <span class="p">(</span><span class="n">NI</span><span class="p">,</span><span class="n">NJ</span><span class="p">,</span><span class="n">NK</span><span class="p">,</span><span class="n">PHI</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">SIG</span><span class="p">)</span>
1204<a name="ln-779"></a>   <span class="k">IMPLICIT </span><span class="kt">REAL</span> <span class="p">(</span><span class="n">A</span><span class="o">-</span><span class="n">H</span><span class="p">,</span><span class="n">O</span><span class="o">-</span><span class="n">Z</span><span class="p">)</span>
1205<a name="ln-780"></a>
1206<a name="ln-781"></a>      <span class="kt">REAL </span><span class="n">PHI</span><span class="p">(</span><span class="n">NI</span><span class="p">,</span><span class="n">NJ</span><span class="p">,</span><span class="n">NK</span><span class="p">),</span><span class="n">SIG</span><span class="p">,</span><span class="n">MW</span><span class="p">,</span><span class="n">RMS</span><span class="p">,</span><span class="n">P</span>
1207<a name="ln-782"></a> 
1208<a name="ln-783"></a>      <span class="n">N</span><span class="o">=</span><span class="n">NI</span><span class="o">*</span><span class="n">NJ</span><span class="o">*</span><span class="n">NK</span>
1209<a name="ln-784"></a> 
1210<a name="ln-785"></a>      <span class="n">RMS</span><span class="o">=</span><span class="mf">0.</span>
1211<a name="ln-786"></a>   <span class="n">MW</span><span class="o">=</span><span class="mf">0.</span>
1212<a name="ln-787"></a> 
1213<a name="ln-788"></a>      <span class="k">DO </span><span class="mi">10</span> <span class="n">I</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">NI</span>
1214<a name="ln-789"></a>      <span class="k">DO </span><span class="mi">10</span> <span class="n">J</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">NJ</span>
1215<a name="ln-790"></a>        <span class="k">DO </span><span class="mi">10</span> <span class="n">K</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">NK</span>
1216<a name="ln-791"></a>         <span class="n">P</span><span class="o">=</span><span class="n">PHI</span><span class="p">(</span><span class="n">I</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">)</span>
1217<a name="ln-792"></a>          <span class="n">RMS</span><span class="o">=</span><span class="n">RMS</span><span class="o">+</span><span class="n">P</span><span class="o">*</span><span class="n">P</span>
1218<a name="ln-793"></a>           <span class="n">MW</span><span class="o">=</span><span class="n">MW</span><span class="o">+</span><span class="n">P</span>
1219<a name="ln-794"></a><span class="mi">10</span>    <span class="k">CONTINUE</span>
1220<a name="ln-795"></a>
1221<a name="ln-796"></a><span class="k">      </span><span class="n">RMS</span><span class="o">=</span><span class="nb">SQRT</span><span class="p">(</span><span class="n">RMS</span><span class="o">/</span><span class="n">N</span><span class="p">)</span>
1222<a name="ln-797"></a>   <span class="n">MW</span><span class="o">=</span><span class="n">MW</span><span class="o">/</span><span class="n">N</span>
1223<a name="ln-798"></a>   
1224<a name="ln-799"></a>   <span class="k">IF</span><span class="p">(</span><span class="n">RMS</span><span class="o">*</span><span class="n">RMS</span><span class="o">-</span><span class="n">MW</span><span class="o">*</span><span class="n">MW</span><span class="p">.</span><span class="n">LT</span><span class="p">.</span><span class="mf">0.</span><span class="p">)</span> <span class="k">THEN   </span>
1225<a name="ln-800"></a><span class="k">     </span><span class="n">SIG</span><span class="o">=</span><span class="mf">0.0</span>
1226<a name="ln-801"></a>   <span class="k">ELSE</span>
1227<a name="ln-802"></a><span class="k">     </span><span class="n">SIG</span><span class="o">=</span><span class="nb">SQRT</span><span class="p">(</span><span class="n">RMS</span><span class="o">*</span><span class="n">RMS</span><span class="o">-</span><span class="n">MW</span><span class="o">*</span><span class="n">MW</span><span class="p">)</span>
1228<a name="ln-803"></a>   <span class="n">ENDIF</span>
1229<a name="ln-804"></a> 
1230<a name="ln-805"></a>      <span class="k">RETURN</span>
1231<a name="ln-806"></a><span class="k">      END</span>
1232<a name="ln-807"></a>     
1233</pre></div>
1234
1235    </section>
1236    </div>
1237  </div>
1238
1239  <section class="visible-xs visible-sm hidden-md">
1240    <hr>
1241   
1242
1243<div class="panel panel-default">
1244  <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#allfiles-1">All Source Files</a></h3></div>
1245  <div id="allfiles-1" class="panel-collapse collapse">
1246    <div class="list-group">
1247     
1248      <a class="list-group-item" href="../sourcefile/grphreal.f.html">grphreal.f</a>
1249     
1250      <a class="list-group-item" href="../sourcefile/phgrreal.f.html">phgrreal.f</a>
1251     
1252      <a class="list-group-item" href="../sourcefile/preconvert.f90.html">preconvert.f90</a>
1253     
1254      <a class="list-group-item" href="../sourcefile/rwgrib2.f90.html">rwGRIB2.f90</a>
1255     
1256    </div>
1257  </div>
1258</div>
1259
1260
1261  </section>
1262 
1263    <hr>   
1264    </div> <!-- /container -->
1265    <footer>
1266      <div class="container">
1267      <div class="row">
1268        <div class="col-xs-6 col-md-4"><p>&copy; 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="../80x15.png" /></a></p></div>
1269        <div class="col-xs-6 col-md-4 col-md-push-4">
1270          <p class="text-right">
1271            Documentation generated by
1272            <a href="https://github.com/cmacmackin/ford">FORD</a>
1273           
1274          </p>
1275        </div>
1276        <div class="col-xs-12 col-md-4 col-md-pull-4"><p class="text-center"> Flex_extract: Calculation of etadot was developed by Leopold Haimberger</p></div>
1277      </div>
1278      <br>
1279      </div> <!-- /container -->   
1280    </footer>
1281
1282    <!-- Bootstrap core JavaScript
1283    ================================================== -->
1284    <!-- Placed at the end of the document so the pages load faster -->
1285<!--
1286    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
1287-->
1288    <script src="../js/bootstrap.min.js"></script>
1289    <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
1290    <script src="../js/ie10-viewport-bug-workaround.js"></script>
1291
1292    <!-- MathJax JavaScript
1293    ================================================== -->
1294    <!-- Placed at the end of the document so the pages load faster -->
1295    <script type="text/x-mathjax-config">
1296      MathJax.Hub.Config({
1297        TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } },
1298        jax: ['input/TeX','input/MathML','output/HTML-CSS'],
1299        extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'],
1300        'HTML-CSS': { 
1301           styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: '#000000 ! important'} }
1302        }
1303      });
1304    </script>
1305    <!-- <script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> -->
1306  </body>
1307</html>
Note: See TracBrowser for help on using the repository browser.
hosted by ZAMG