diff --git a/.gitignore b/.gitignore index 6a62bdaa48be6b1ab480a8fe973adedb8097b6be..c2a5ce2a65f815b3e647cb4d2508121a1331bcc3 100644 --- a/.gitignore +++ b/.gitignore @@ -48,3 +48,6 @@ For_developers/Liste_FE_Functions_Testcoverage.xlsx +Emoslib +Unused_input_files +Unused_output diff --git a/Documentation/FORD/V5/Doc_original/80x15.png b/Documentation/FORD/V5/Doc_original/80x15.png new file mode 100644 index 0000000000000000000000000000000000000000..b2a3adb682feb6bb0be372ec3c941804e1b247b2 Binary files /dev/null and b/Documentation/FORD/V5/Doc_original/80x15.png differ diff --git a/Documentation/FORD/V5/Doc_original/css/pygments.css b/Documentation/FORD/V5/Doc_original/css/pygments.css deleted file mode 100644 index 67e6ea397e6e41e6bc88cbd87ec3a58dc7aa7375..0000000000000000000000000000000000000000 --- a/Documentation/FORD/V5/Doc_original/css/pygments.css +++ /dev/null @@ -1,61 +0,0 @@ -.hll { background-color: #ffffcc } -.c { color: #408080; font-style: italic } /* Comment */ -.err { border: 1px solid #FF0000 } /* Error */ -.k { color: #008000; font-weight: bold } /* Keyword */ -.o { color: #666666 } /* Operator */ -.cm { color: #408080; font-style: italic } /* Comment.Multiline */ -.cp { color: #BC7A00 } /* Comment.Preproc */ -.c1 { color: #408080; font-style: italic } /* Comment.Single */ -.cs { color: #408080; font-style: italic } /* Comment.Special */ -.gd { color: #A00000 } /* Generic.Deleted */ -.ge { font-style: italic } /* Generic.Emph */ -.gr { color: #FF0000 } /* Generic.Error */ -.gh { color: #000080; font-weight: bold } /* Generic.Heading */ -.gi { color: #00A000 } /* Generic.Inserted */ -.go { color: #888888 } /* Generic.Output */ -.gp { color: #000080; font-weight: bold } /* Generic.Prompt */ -.gs { font-weight: bold } /* Generic.Strong */ -.gu { color: #800080; font-weight: bold } /* Generic.Subheading */ -.gt { color: #0044DD } /* Generic.Traceback */ -.kc { color: #008000; font-weight: bold } /* Keyword.Constant */ -.kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ -.kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ -.kp { color: #008000 } /* Keyword.Pseudo */ -.kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ -.kt { color: #B00040 } /* Keyword.Type */ -.m { color: #666666 } /* Literal.Number */ -.s { color: #BA2121 } /* Literal.String */ -.na { color: #7D9029 } /* Name.Attribute */ -.nb { color: #008000 } /* Name.Builtin */ -.nc { color: #0000FF; font-weight: bold } /* Name.Class */ -.no { color: #880000 } /* Name.Constant */ -.nd { color: #AA22FF } /* Name.Decorator */ -.ni { color: #999999; font-weight: bold } /* Name.Entity */ -.ne { color: #D2413A; font-weight: bold } /* Name.Exception */ -.nf { color: #0000FF } /* Name.Function */ -.nl { color: #A0A000 } /* Name.Label */ -.nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ -.nt { color: #008000; font-weight: bold } /* Name.Tag */ -.nv { color: #19177C } /* Name.Variable */ -.ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ -.w { color: #bbbbbb } /* Text.Whitespace */ -.mf { color: #666666 } /* Literal.Number.Float */ -.mh { color: #666666 } /* Literal.Number.Hex */ -.mi { color: #666666 } /* Literal.Number.Integer */ -.mo { color: #666666 } /* Literal.Number.Oct */ -.sb { color: #BA2121 } /* Literal.String.Backtick */ -.sc { color: #BA2121 } /* Literal.String.Char */ -.sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ -.s2 { color: #BA2121 } /* Literal.String.Double */ -.se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */ -.sh { color: #BA2121 } /* Literal.String.Heredoc */ -.si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */ -.sx { color: #008000 } /* Literal.String.Other */ -.sr { color: #BB6688 } /* Literal.String.Regex */ -.s1 { color: #BA2121 } /* Literal.String.Single */ -.ss { color: #19177C } /* Literal.String.Symbol */ -.bp { color: #008000 } /* Name.Builtin.Pseudo */ -.vc { color: #19177C } /* Name.Variable.Class */ -.vg { color: #19177C } /* Name.Variable.Global */ -.vi { color: #19177C } /* Name.Variable.Instance */ -.il { color: #666666 } /* Literal.Number.Integer.Long */ diff --git a/Documentation/FORD/V5/Doc_original/favicon.png b/Documentation/FORD/V5/Doc_original/favicon.png deleted file mode 100644 index 4d6ad16ba65b1beac980db083f951c124ed54d7e..0000000000000000000000000000000000000000 Binary files a/Documentation/FORD/V5/Doc_original/favicon.png and /dev/null differ diff --git a/Documentation/FORD/V5/Doc_original/lists/modules.html b/Documentation/FORD/V5/Doc_original/lists/modules.html deleted file mode 100644 index aef3356f9136dce1d3abc4f2a14a1e3eb4b1b9a5..0000000000000000000000000000000000000000 --- a/Documentation/FORD/V5/Doc_original/lists/modules.html +++ /dev/null @@ -1,333 +0,0 @@ -<!DOCTYPE html> -<html lang="en"> - <head> - <meta charset="utf-8"> - <meta http-equiv="X-UA-Compatible" content="IE=edge"> - <meta name="viewport" content="width=device-width, initial-scale=1"> - - <meta name="description" content="Calculation of vertical velocity for FLEXPART"> - - <meta name="author" content="Leopold Haimberger" > - <link rel="icon" href="../favicon.png"> - - <title> -All Modules – Flex_extract: Calculation of etadot -</title> - - <link href="../css/bootstrap.min.css" rel="stylesheet"> - <link href="../css/pygments.css" rel="stylesheet"> - <link href="../css/font-awesome.min.css" rel="stylesheet"> - <link href="../css/local.css" rel="stylesheet"> - - - <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> - <!--[if lt IE 9]> - <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> - <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> - <![endif]--> - - <script src="../js/jquery-2.1.3.min.js"></script> - <script src="../js/svg-pan-zoom.min.js"></script> - - - <script src="../tipuesearch/tipuesearch_content.js"></script> - <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> - <script src="../tipuesearch/tipuesearch_set.js"></script> - <script src="../tipuesearch/tipuesearch.js"></script> - - - </head> - - <body> - - <!-- Fixed navbar --> - <nav class="navbar navbar-inverse navbar-fixed-top"> - <div class="container"> - <div class="navbar-header"> - <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> - <span class="sr-only">Toggle navigation</span> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> - </div> - <div id="navbar" class="navbar-collapse collapse"> - <ul class="nav navbar-nav"> - - <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> - <a href="#" class="dropdown-toggle" - data-toggle="dropdown" role="button" - aria-haspopup="true" - aria-expanded="false">Contents <span class="caret"></span></a> - <ul class="dropdown-menu"> - - <li><a href="../lists/files.html">Source Files</a></li> - - - <li><a href="../lists/modules.html">Modules</a></li> - - - - <li><a href="../lists/procedures.html">Procedures</a></li> - - - - <li><a href="../program/preconvert.html">Program</a></li> - - </ul> - </li> - -<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> - - -<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> - - - -<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> - - - -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> - - </ul> - - <form action="../search.html" class="navbar-form navbar-right" role="search"> - <div class="form-group"> - <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> - </div> -<!-- - <button type="submit" class="btn btn-default">Submit</button> ---> - </form> - - </div><!--/.nav-collapse --> - </div> - </nav> - - <div class="container"> - - - <div class="row"> - <div class="col-lg-12" id='text'> - <h1>Modules</h1> - <table class="table"> - <thead><tr><th>Module</th><th>Source File</th><th>Description</th></tr></thead> - <tbody> - - - <tr class="active"><td><a href='../module/grtoph.html'>GRTOPH</a></td><td><a href='../sourcefile/grphreal.f.html'>grphreal.f</a></td><td></td></tr> - - <!--active--> - - <tr class=""><td><a href='../module/phtogr.html'>PHTOGR</a></td><td><a href='../sourcefile/phgrreal.f.html'>phgrreal.f</a></td><td></td></tr> - - <!----> - - <tr class="active"><td><a href='../module/rwgrib2.html'>RWGRIB2</a></td><td><a href='../sourcefile/rwgrib2.f90.html'>rwGRIB2.f90</a></td><td></td></tr> - - <!--active--> - - </tbody></table> - - <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<!-- Generated by graphviz version 2.38.0 (20140413.2041) - --> -<!-- Title: module~~graph~~ModuleGraph Pages: 1 --> -<svg id="modulegraphModuleGraph" width="284pt" height="196pt" - viewBox="0.00 0.00 284.00 196.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> -<g id="module~~graph~~ModuleGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 192)"> -<title>module~~graph~~ModuleGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-192 280,-192 280,4 -4,4"/> -<!-- module~phtogr --> -<g id="module~~graph~~ModuleGraph_node1" class="node"><title>module~phtogr</title> -<g id="a_module~~graph~~ModuleGraph_node1"><a xlink:href="../module/phtogr.html" xlink:title="PHTOGR"> -<polygon fill="#337ab7" stroke="#337ab7" points="58,-168 3.55271e-15,-168 3.55271e-15,-144 58,-144 58,-168"/> -<text text-anchor="middle" x="29" y="-153.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHTOGR</text> -</a> -</g> -</g> -<!-- module~grtoph --> -<g id="module~~graph~~ModuleGraph_node2" class="node"><title>module~grtoph</title> -<g id="a_module~~graph~~ModuleGraph_node2"><a xlink:href="../module/grtoph.html" xlink:title="GRTOPH"> -<polygon fill="#337ab7" stroke="#337ab7" points="153.5,-188 95.5,-188 95.5,-164 153.5,-164 153.5,-188"/> -<text text-anchor="middle" x="124.5" y="-173.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GRTOPH</text> -</a> -</g> -</g> -<!-- module~phtogr->module~grtoph --> -<g id="module~~graph~~ModuleGraph_edge1" class="edge"><title>module~phtogr->module~grtoph</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M58.0531,-162.001C66.6512,-163.84 76.2596,-165.895 85.4094,-167.852"/> -<polygon fill="#000000" stroke="#000000" points="84.9558,-171.334 95.4667,-170.004 86.4201,-164.489 84.9558,-171.334"/> -</g> -<!-- program~preconvert --> -<g id="module~~graph~~ModuleGraph_node4" class="node"><title>program~preconvert</title> -<g id="a_module~~graph~~ModuleGraph_node4"><a xlink:href="../program/preconvert.html" xlink:title="PRECONVERT"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="276,-108 191,-108 191,-84 276,-84 276,-108"/> -<text text-anchor="middle" x="233.5" y="-93.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> -</a> -</g> -</g> -<!-- module~phtogr->program~preconvert --> -<g id="module~~graph~~ModuleGraph_edge5" class="edge"><title>module~phtogr->program~preconvert</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M58.1568,-147.657C90.1156,-138.188 142.878,-122.555 182.003,-110.962"/> -<polygon fill="#000000" stroke="#000000" points="183.042,-114.305 191.635,-108.108 181.053,-107.593 183.042,-114.305"/> -</g> -<!-- module~grtoph->program~preconvert --> -<g id="module~~graph~~ModuleGraph_edge3" class="edge"><title>module~grtoph->program~preconvert</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M141.751,-163.85C159.451,-150.616 187.948,-129.31 208.286,-114.104"/> -<polygon fill="#000000" stroke="#000000" points="210.533,-116.794 216.447,-108.002 206.342,-111.187 210.533,-116.794"/> -</g> -<!-- module~rwgrib2 --> -<g id="module~~graph~~ModuleGraph_node3" class="node"><title>module~rwgrib2</title> -<g id="a_module~~graph~~ModuleGraph_node3"><a xlink:href="../module/rwgrib2.html" xlink:title="RWGRIB2"> -<polygon fill="#337ab7" stroke="#337ab7" points="155,-108 94,-108 94,-84 155,-84 155,-108"/> -<text text-anchor="middle" x="124.5" y="-93.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">RWGRIB2</text> -</a> -</g> -</g> -<!-- module~rwgrib2->program~preconvert --> -<g id="module~~graph~~ModuleGraph_edge2" class="edge"><title>module~rwgrib2->program~preconvert</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M155.021,-96C162.935,-96 171.732,-96 180.476,-96"/> -<polygon fill="#000000" stroke="#000000" points="180.661,-99.5001 190.661,-96 180.66,-92.5001 180.661,-99.5001"/> -</g> -<!-- GRIB_API --> -<g id="module~~graph~~ModuleGraph_node5" class="node"><title>GRIB_API</title> -<polygon fill="#337ab7" stroke="#337ab7" points="155,-66 94,-66 94,-42 155,-42 155,-66"/> -<text text-anchor="middle" x="124.5" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GRIB_API</text> -</g> -<!-- GRIB_API->program~preconvert --> -<g id="module~~graph~~ModuleGraph_edge4" class="edge"><title>GRIB_API->program~preconvert</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M155.021,-65.5879C166.443,-70.0711 179.703,-75.2759 191.99,-80.0988"/> -<polygon fill="#000000" stroke="#000000" points="190.994,-83.4679 201.581,-83.8638 193.552,-76.9519 190.994,-83.4679"/> -</g> -<!-- FTRAFO --> -<g id="module~~graph~~ModuleGraph_node6" class="node"><title>FTRAFO</title> -<polygon fill="#337ab7" stroke="#337ab7" points="152,-24 97,-24 97,-0 152,-0 152,-24"/> -<text text-anchor="middle" x="124.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">FTRAFO</text> -</g> -<!-- FTRAFO->program~preconvert --> -<g id="module~~graph~~ModuleGraph_edge6" class="edge"><title>FTRAFO->program~preconvert</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M142.794,-24.0319C146.835,-26.9204 151.098,-30.0301 155,-33 173.976,-47.4435 194.931,-64.5509 210.261,-77.2913"/> -<polygon fill="#000000" stroke="#000000" points="208.231,-80.1557 218.152,-83.8754 212.716,-74.7811 208.231,-80.1557"/> -</g> -</g> -</svg> -</div> - <div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div> - <div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"> - <div class="modal-dialog modal-lg" role="document"> - <div class="modal-content"> - <div class="modal-header"> - <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> - <h4 class="modal-title" id="-graph-help-label">Graph Key</h4> - </div> - <div class="modal-body"> - - <p>Nodes of different colours represent the following: </p> - <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<!-- Generated by graphviz version 2.38.0 (20140413.2041) - --> -<!-- Title: Graph Key Pages: 1 --> -<svg width="490pt" height="32pt" - viewBox="0.00 0.00 489.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> -<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> -<title>Graph Key</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-28 485.5,-28 485.5,4 -4,4"/> -<!-- Module --> -<g id="node1" class="node"><title>Module</title> -<polygon fill="#337ab7" stroke="#337ab7" points="54,-24 0,-24 0,-0 54,-0 54,-24"/> -<text text-anchor="middle" x="27" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Module</text> -</g> -<!-- Submodule --> -<g id="node2" class="node"><title>Submodule</title> -<polygon fill="#5bc0de" stroke="#5bc0de" points="139.5,-24 72.5,-24 72.5,-0 139.5,-0 139.5,-24"/> -<text text-anchor="middle" x="106" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Submodule</text> -</g> -<!-- Subroutine --> -<g id="node3" class="node"><title>Subroutine</title> -<polygon fill="#d9534f" stroke="#d9534f" points="222,-24 158,-24 158,-0 222,-0 222,-24"/> -<text text-anchor="middle" x="190" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> -</g> -<!-- Function --> -<g id="node4" class="node"><title>Function</title> -<polygon fill="#d94e8f" stroke="#d94e8f" points="294,-24 240,-24 240,-0 294,-0 294,-24"/> -<text text-anchor="middle" x="267" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> -</g> -<!-- Program --> -<g id="node5" class="node"><title>Program</title> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="366,-24 312,-24 312,-0 366,-0 366,-24"/> -<text text-anchor="middle" x="339" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> -</g> -<!-- This Page's Entity --> -<g id="node6" class="node"><title>This Page's Entity</title> -<polygon fill="none" stroke="black" points="481.5,-24 384.5,-24 384.5,-0 481.5,-0 481.5,-24"/> -<text text-anchor="middle" x="433" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> -</g> -</g> -</svg> - - - <p>Solid arrows point from a parent (sub)module to the submodule which is - descended from it. Dashed arrows point from a module being used to the - module or program unit using it. - </p> - - </div> - </div> - </div> - </div> - - </div> - </div> - - <hr> - </div> <!-- /container --> - <footer> - <div class="container"> - <div class="row"> - <div class="col-xs-6 col-md-4"><p>© 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> - <div class="col-xs-6 col-md-4 col-md-push-4"> - <p class="text-right"> - Documentation generated by - <a href="https://github.com/cmacmackin/ford">FORD</a> - - </p> - </div> - <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> - </div> - <br> - </div> <!-- /container --> - </footer> - - <!-- Bootstrap core JavaScript - ================================================== --> - <!-- Placed at the end of the document so the pages load faster --> -<!-- - <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> ---> - <script src="../js/bootstrap.min.js"></script> - <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> - <script src="../js/ie10-viewport-bug-workaround.js"></script> - - <!-- MathJax JavaScript - ================================================== --> - <!-- Placed at the end of the document so the pages load faster --> - <script type="text/x-mathjax-config"> - MathJax.Hub.Config({ - TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, - jax: ['input/TeX','input/MathML','output/HTML-CSS'], - extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'], - 'HTML-CSS': { - styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: '#000000 ! important'} } - } - }); - </script> - <!-- <script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> --> - </body> -</html> \ No newline at end of file diff --git a/Documentation/FORD/V5/Doc_original/lists/procedures.html b/Documentation/FORD/V5/Doc_original/lists/procedures.html deleted file mode 100644 index 94a0c23c71ca9db4d1e763c3ce867fc74cbdeab7..0000000000000000000000000000000000000000 --- a/Documentation/FORD/V5/Doc_original/lists/procedures.html +++ /dev/null @@ -1,481 +0,0 @@ -<!DOCTYPE html> -<html lang="en"> - <head> - <meta charset="utf-8"> - <meta http-equiv="X-UA-Compatible" content="IE=edge"> - <meta name="viewport" content="width=device-width, initial-scale=1"> - - <meta name="description" content="Calculation of vertical velocity for FLEXPART"> - - <meta name="author" content="Leopold Haimberger" > - <link rel="icon" href="../favicon.png"> - - <title> -All Procedures – Flex_extract: Calculation of etadot -</title> - - <link href="../css/bootstrap.min.css" rel="stylesheet"> - <link href="../css/pygments.css" rel="stylesheet"> - <link href="../css/font-awesome.min.css" rel="stylesheet"> - <link href="../css/local.css" rel="stylesheet"> - - - <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> - <!--[if lt IE 9]> - <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> - <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> - <![endif]--> - - <script src="../js/jquery-2.1.3.min.js"></script> - <script src="../js/svg-pan-zoom.min.js"></script> - - - <script src="../tipuesearch/tipuesearch_content.js"></script> - <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> - <script src="../tipuesearch/tipuesearch_set.js"></script> - <script src="../tipuesearch/tipuesearch.js"></script> - - - </head> - - <body> - - <!-- Fixed navbar --> - <nav class="navbar navbar-inverse navbar-fixed-top"> - <div class="container"> - <div class="navbar-header"> - <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> - <span class="sr-only">Toggle navigation</span> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> - </div> - <div id="navbar" class="navbar-collapse collapse"> - <ul class="nav navbar-nav"> - - <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> - <a href="#" class="dropdown-toggle" - data-toggle="dropdown" role="button" - aria-haspopup="true" - aria-expanded="false">Contents <span class="caret"></span></a> - <ul class="dropdown-menu"> - - <li><a href="../lists/files.html">Source Files</a></li> - - - <li><a href="../lists/modules.html">Modules</a></li> - - - - <li><a href="../lists/procedures.html">Procedures</a></li> - - - - <li><a href="../program/preconvert.html">Program</a></li> - - </ul> - </li> - -<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> - - -<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> - - - -<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> - - - -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> - - </ul> - - <form action="../search.html" class="navbar-form navbar-right" role="search"> - <div class="form-group"> - <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> - </div> -<!-- - <button type="submit" class="btn btn-default">Submit</button> ---> - </form> - - </div><!--/.nav-collapse --> - </div> - </nav> - - <div class="container"> - - <div class="row"> - <div class="col-lg-12" id='text'> - <h1>Procedures</h1> - <table class="table table-striped"> - <thead><tr><th>Procedure</th><th>Location</th><th>Procedure Type</th><th>Description</th></tr></thead> - <tbody> - - <tr><td><a href='../proc/ia.html'>IA</a></td><td><a href='../sourcefile/preconvert.f90.html'>preconvert.f90</a></td><td>Function</td><td></td></tr> - - <tr><td><a href='../proc/statis.html'>STATIS</a></td><td><a href='../sourcefile/preconvert.f90.html'>preconvert.f90</a></td><td>Subroutine</td><td></td></tr> - - </tbody></table> - - <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<!-- Generated by graphviz version 2.38.0 (20140413.2041) - --> -<!-- Title: call~~graph~~CallGraph Pages: 1 --> -<svg id="callgraphCallGraph" width="232pt" height="872pt" - viewBox="0.00 0.00 232.00 872.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> -<g id="call~~graph~~CallGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 868)"> -<title>call~~graph~~CallGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-868 228,-868 228,4 -4,4"/> -<!-- proc~ia --> -<g id="call~~graph~~CallGraph_node1" class="node"><title>proc~ia</title> -<g id="a_call~~graph~~CallGraph_node1"><a xlink:href="../proc/ia.html" xlink:title="IA"> -<polygon fill="#d94e8f" stroke="#d94e8f" points="69.5,-402 15.5,-402 15.5,-378 69.5,-378 69.5,-402"/> -<text text-anchor="middle" x="42.5" y="-387.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">IA</text> -</a> -</g> -</g> -<!-- proc~statis --> -<g id="call~~graph~~CallGraph_node2" class="node"><title>proc~statis</title> -<g id="a_call~~graph~~CallGraph_node2"><a xlink:href="../proc/statis.html" xlink:title="STATIS"> -<polygon fill="#d9534f" stroke="#d9534f" points="199.5,-864 145.5,-864 145.5,-840 199.5,-840 199.5,-864"/> -<text text-anchor="middle" x="172.5" y="-849.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">STATIS</text> -</a> -</g> -</g> -<!-- program~preconvert --> -<g id="call~~graph~~CallGraph_node3" class="node"><title>program~preconvert</title> -<g id="a_call~~graph~~CallGraph_node3"><a xlink:href="../program/preconvert.html" xlink:title="PRECONVERT"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="85,-444 0,-444 0,-420 85,-420 85,-444"/> -<text text-anchor="middle" x="42.5" y="-429.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> -</a> -</g> -</g> -<!-- program~preconvert->proc~statis --> -<g id="call~~graph~~CallGraph_edge17" class="edge"><title>program~preconvert->proc~statis</title> -<path fill="none" stroke="#000000" d="M44.3378,-444.207C48.6899,-504.387 70.4844,-769.076 121,-831 124.922,-835.808 130.132,-839.529 135.717,-842.406"/> -<polygon fill="#000000" stroke="#000000" points="134.737,-845.793 145.309,-846.492 137.481,-839.353 134.737,-845.793"/> -</g> -<!-- phgracut --> -<g id="call~~graph~~CallGraph_node4" class="node"><title>phgracut</title> -<polygon fill="#777777" stroke="#777777" points="200,-822 145,-822 145,-798 200,-798 200,-822"/> -<text text-anchor="middle" x="172.5" y="-807.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">phgracut</text> -</g> -<!-- program~preconvert->phgracut --> -<g id="call~~graph~~CallGraph_edge1" class="edge"><title>program~preconvert->phgracut</title> -<path fill="none" stroke="#000000" d="M44.6235,-444.027C50.0639,-499.956 75.295,-734.21 121,-789 124.896,-793.671 130.005,-797.319 135.476,-800.164"/> -<polygon fill="#000000" stroke="#000000" points="134.305,-803.471 144.873,-804.232 137.086,-797.048 134.305,-803.471"/> -</g> -<!-- v --> -<g id="call~~graph~~CallGraph_node5" class="node"><title>v</title> -<polygon fill="#777777" stroke="#777777" points="199.5,-780 145.5,-780 145.5,-756 199.5,-756 199.5,-780"/> -<text text-anchor="middle" x="172.5" y="-765.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">v</text> -</g> -<!-- program~preconvert->v --> -<g id="call~~graph~~CallGraph_edge2" class="edge"><title>program~preconvert->v</title> -<path fill="none" stroke="#000000" d="M45.0385,-444.328C51.7802,-496.601 80.2087,-699.444 121,-747 125,-751.663 130.204,-755.311 135.748,-758.158"/> -<polygon fill="#000000" stroke="#000000" points="134.676,-761.507 145.246,-762.233 137.436,-755.074 134.676,-761.507"/> -</g> -<!-- mars --> -<g id="call~~graph~~CallGraph_node6" class="node"><title>mars</title> -<polygon fill="#777777" stroke="#777777" points="199.5,-738 145.5,-738 145.5,-714 199.5,-714 199.5,-738"/> -<text text-anchor="middle" x="172.5" y="-723.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">mars</text> -</g> -<!-- program~preconvert->mars --> -<g id="call~~graph~~CallGraph_edge3" class="edge"><title>program~preconvert->mars</title> -<path fill="none" stroke="#000000" d="M43.4066,-444.087C43.732,-485.792 50.2971,-625.462 121,-705 125.082,-709.592 130.326,-713.204 135.885,-716.038"/> -<polygon fill="#000000" stroke="#000000" points="134.816,-719.388 145.386,-720.11 137.573,-712.954 134.816,-719.388"/> -</g> -<!-- d --> -<g id="call~~graph~~CallGraph_node7" class="node"><title>d</title> -<polygon fill="#777777" stroke="#777777" points="199.5,-696 145.5,-696 145.5,-672 199.5,-672 199.5,-696"/> -<text text-anchor="middle" x="172.5" y="-681.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">d</text> -</g> -<!-- program~preconvert->d --> -<g id="call~~graph~~CallGraph_edge4" class="edge"><title>program~preconvert->d</title> -<path fill="none" stroke="#000000" d="M44.144,-444.047C46.7727,-481.486 59.7144,-597.241 121,-663 125.147,-667.45 130.381,-670.988 135.898,-673.791"/> -<polygon fill="#000000" stroke="#000000" points="134.74,-677.103 145.309,-677.848 137.511,-670.675 134.74,-677.103"/> -</g> -<!-- q --> -<g id="call~~graph~~CallGraph_node8" class="node"><title>q</title> -<polygon fill="#777777" stroke="#777777" points="199.5,-654 145.5,-654 145.5,-630 199.5,-630 199.5,-654"/> -<text text-anchor="middle" x="172.5" y="-639.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">q</text> -</g> -<!-- program~preconvert->q --> -<g id="call~~graph~~CallGraph_edge5" class="edge"><title>program~preconvert->q</title> -<path fill="none" stroke="#000000" d="M45.2399,-444.403C50.5064,-477.507 69.2195,-568.963 121,-621 125.248,-625.269 130.49,-628.711 135.974,-631.475"/> -<polygon fill="#000000" stroke="#000000" points="134.73,-634.75 145.297,-635.511 137.511,-628.326 134.73,-634.75"/> -</g> -<!-- phgrad --> -<g id="call~~graph~~CallGraph_node9" class="node"><title>phgrad</title> -<polygon fill="#777777" stroke="#777777" points="199.5,-612 145.5,-612 145.5,-588 199.5,-588 199.5,-612"/> -<text text-anchor="middle" x="172.5" y="-597.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">phgrad</text> -</g> -<!-- program~preconvert->phgrad --> -<g id="call~~graph~~CallGraph_edge6" class="edge"><title>program~preconvert->phgrad</title> -<path fill="none" stroke="#000000" d="M46.7639,-444.026C54.8204,-471.58 78.171,-539.905 121,-579 125.403,-583.019 130.683,-586.33 136.146,-589.038"/> -<polygon fill="#000000" stroke="#000000" points="134.822,-592.279 145.389,-593.045 137.607,-585.856 134.822,-592.279"/> -</g> -<!-- posnam --> -<g id="call~~graph~~CallGraph_node10" class="node"><title>posnam</title> -<polygon fill="#777777" stroke="#777777" points="199.5,-570 145.5,-570 145.5,-546 199.5,-546 199.5,-570"/> -<text text-anchor="middle" x="172.5" y="-555.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">posnam</text> -</g> -<!-- program~preconvert->posnam --> -<g id="call~~graph~~CallGraph_edge7" class="edge"><title>program~preconvert->posnam</title> -<path fill="none" stroke="#000000" d="M49.5402,-444.045C60.8362,-465.473 87.112,-510.453 121,-537 125.485,-540.513 130.641,-543.533 135.909,-546.098"/> -<polygon fill="#000000" stroke="#000000" points="134.822,-549.443 145.388,-550.232 137.62,-543.026 134.822,-549.443"/> -</g> -<!-- grib_get --> -<g id="call~~graph~~CallGraph_node11" class="node"><title>grib_get</title> -<polygon fill="#777777" stroke="#777777" points="199.5,-528 145.5,-528 145.5,-504 199.5,-504 199.5,-528"/> -<text text-anchor="middle" x="172.5" y="-513.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grib_get</text> -</g> -<!-- program~preconvert->grib_get --> -<g id="call~~graph~~CallGraph_edge8" class="edge"><title>program~preconvert->grib_get</title> -<path fill="none" stroke="#000000" d="M56.0733,-444.166C70.733,-457.867 96.1383,-480.154 121,-495 125.739,-497.83 130.929,-500.457 136.121,-502.828"/> -<polygon fill="#000000" stroke="#000000" points="134.803,-506.071 145.373,-506.807 137.569,-499.641 134.803,-506.071"/> -</g> -<!-- grib_set --> -<g id="call~~graph~~CallGraph_node12" class="node"><title>grib_set</title> -<polygon fill="#777777" stroke="#777777" points="199.5,-486 145.5,-486 145.5,-462 199.5,-462 199.5,-486"/> -<text text-anchor="middle" x="172.5" y="-471.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grib_set</text> -</g> -<!-- program~preconvert->grib_set --> -<g id="call~~graph~~CallGraph_edge9" class="edge"><title>program~preconvert->grib_set</title> -<path fill="none" stroke="#000000" d="M80.1797,-444.036C97.5944,-449.75 118.332,-456.554 135.64,-462.233"/> -<polygon fill="#000000" stroke="#000000" points="134.791,-465.638 145.384,-465.431 136.974,-458.987 134.791,-465.638"/> -</g> -<!-- grib_new_from_file --> -<g id="call~~graph~~CallGraph_node13" class="node"><title>grib_new_from_file</title> -<polygon fill="#777777" stroke="#777777" points="224,-444 121,-444 121,-420 224,-420 224,-444"/> -<text text-anchor="middle" x="172.5" y="-429.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grib_new_from_file</text> -</g> -<!-- program~preconvert->grib_new_from_file --> -<g id="call~~graph~~CallGraph_edge10" class="edge"><title>program~preconvert->grib_new_from_file</title> -<path fill="none" stroke="#000000" d="M85.0579,-432C93.2429,-432 101.989,-432 110.657,-432"/> -<polygon fill="#000000" stroke="#000000" points="110.759,-435.5 120.759,-432 110.759,-428.5 110.759,-435.5"/> -</g> -<!-- lnsp --> -<g id="call~~graph~~CallGraph_node14" class="node"><title>lnsp</title> -<polygon fill="#777777" stroke="#777777" points="199.5,-402 145.5,-402 145.5,-378 199.5,-378 199.5,-402"/> -<text text-anchor="middle" x="172.5" y="-387.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">lnsp</text> -</g> -<!-- program~preconvert->lnsp --> -<g id="call~~graph~~CallGraph_edge11" class="edge"><title>program~preconvert->lnsp</title> -<path fill="none" stroke="#000000" d="M80.1797,-419.964C97.5944,-414.25 118.332,-407.446 135.64,-401.767"/> -<polygon fill="#000000" stroke="#000000" points="136.974,-405.013 145.384,-398.569 134.791,-398.362 136.974,-405.013"/> -</g> -<!-- grib_open_file --> -<g id="call~~graph~~CallGraph_node15" class="node"><title>grib_open_file</title> -<polygon fill="#777777" stroke="#777777" points="212.5,-360 132.5,-360 132.5,-336 212.5,-336 212.5,-360"/> -<text text-anchor="middle" x="172.5" y="-345.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grib_open_file</text> -</g> -<!-- program~preconvert->grib_open_file --> -<g id="call~~graph~~CallGraph_edge12" class="edge"><title>program~preconvert->grib_open_file</title> -<path fill="none" stroke="#000000" d="M71.2185,-419.904C76.018,-417.279 80.8073,-414.29 85,-411 104.342,-395.823 101.107,-383.447 121,-369 123.05,-367.511 125.222,-366.104 127.467,-364.779"/> -<polygon fill="#000000" stroke="#000000" points="129.184,-367.83 136.393,-360.067 125.916,-361.64 129.184,-367.83"/> -</g> -<!-- omega --> -<g id="call~~graph~~CallGraph_node16" class="node"><title>omega</title> -<polygon fill="#777777" stroke="#777777" points="199.5,-318 145.5,-318 145.5,-294 199.5,-294 199.5,-318"/> -<text text-anchor="middle" x="172.5" y="-303.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">omega</text> -</g> -<!-- program~preconvert->omega --> -<g id="call~~graph~~CallGraph_edge13" class="edge"><title>program~preconvert->omega</title> -<path fill="none" stroke="#000000" d="M73.8233,-419.874C77.9124,-417.361 81.7953,-414.415 85,-411 112.794,-381.381 92.1244,-355.565 121,-327 125.281,-322.765 130.541,-319.339 136.031,-316.582"/> -<polygon fill="#000000" stroke="#000000" points="137.568,-319.731 145.356,-312.548 134.789,-313.306 137.568,-319.731"/> -</g> -<!-- file --> -<g id="call~~graph~~CallGraph_node17" class="node"><title>file</title> -<polygon fill="#777777" stroke="#777777" points="199.5,-276 145.5,-276 145.5,-252 199.5,-252 199.5,-276"/> -<text text-anchor="middle" x="172.5" y="-261.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">file</text> -</g> -<!-- program~preconvert->file --> -<g id="call~~graph~~CallGraph_edge14" class="edge"><title>program~preconvert->file</title> -<path fill="none" stroke="#000000" d="M74.6388,-419.959C78.515,-417.453 82.1205,-414.487 85,-411 122.087,-366.094 82.2694,-328.496 121,-285 125.086,-280.412 130.332,-276.801 135.891,-273.967"/> -<polygon fill="#000000" stroke="#000000" points="137.58,-277.052 145.393,-269.896 134.823,-270.618 137.58,-277.052"/> -</g> -<!-- winds --> -<g id="call~~graph~~CallGraph_node18" class="node"><title>winds</title> -<polygon fill="#777777" stroke="#777777" points="199.5,-234 145.5,-234 145.5,-210 199.5,-210 199.5,-234"/> -<text text-anchor="middle" x="172.5" y="-219.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">winds</text> -</g> -<!-- program~preconvert->winds --> -<g id="call~~graph~~CallGraph_edge15" class="edge"><title>program~preconvert->winds</title> -<path fill="none" stroke="#000000" d="M75.267,-419.859C78.9523,-417.384 82.3379,-414.453 85,-411 131.62,-350.521 72.1636,-301.704 121,-243 124.968,-238.23 130.201,-234.527 135.794,-231.657"/> -<polygon fill="#000000" stroke="#000000" points="137.558,-234.71 145.387,-227.572 134.815,-228.27 137.558,-234.71"/> -</g> -<!-- jsppole --> -<g id="call~~graph~~CallGraph_node19" class="node"><title>jsppole</title> -<polygon fill="#777777" stroke="#777777" points="199.5,-192 145.5,-192 145.5,-168 199.5,-168 199.5,-192"/> -<text text-anchor="middle" x="172.5" y="-177.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">jsppole</text> -</g> -<!-- program~preconvert->jsppole --> -<g id="call~~graph~~CallGraph_edge16" class="edge"><title>program~preconvert->jsppole</title> -<path fill="none" stroke="#000000" d="M75.4013,-419.961C79.0658,-417.47 82.4098,-414.508 85,-411 141.252,-334.823 61.9554,-275.033 121,-201 125.002,-195.982 130.411,-192.15 136.206,-189.228"/> -<polygon fill="#000000" stroke="#000000" points="137.609,-192.434 145.481,-185.344 134.905,-185.978 137.609,-192.434"/> -</g> -<!-- spfilter --> -<g id="call~~graph~~CallGraph_node20" class="node"><title>spfilter</title> -<polygon fill="#777777" stroke="#777777" points="199.5,-150 145.5,-150 145.5,-126 199.5,-126 199.5,-150"/> -<text text-anchor="middle" x="172.5" y="-135.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">spfilter</text> -</g> -<!-- program~preconvert->spfilter --> -<g id="call~~graph~~CallGraph_edge18" class="edge"><title>program~preconvert->spfilter</title> -<path fill="none" stroke="#000000" d="M75.8973,-419.748C79.3879,-417.305 82.5531,-414.412 85,-411 150.932,-319.06 51.6961,-248.426 121,-159 124.932,-153.927 130.308,-150.069 136.091,-147.138"/> -<polygon fill="#000000" stroke="#000000" points="137.495,-150.345 145.366,-143.253 134.791,-143.888 137.495,-150.345"/> -</g> -<!-- contgl --> -<g id="call~~graph~~CallGraph_node21" class="node"><title>contgl</title> -<polygon fill="#777777" stroke="#777777" points="199.5,-108 145.5,-108 145.5,-84 199.5,-84 199.5,-108"/> -<text text-anchor="middle" x="172.5" y="-93.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">contgl</text> -</g> -<!-- program~preconvert->contgl --> -<g id="call~~graph~~CallGraph_edge19" class="edge"><title>program~preconvert->contgl</title> -<path fill="none" stroke="#000000" d="M75.9627,-419.794C79.4426,-417.343 82.5874,-414.437 85,-411 160.639,-303.257 41.4076,-221.856 121,-117 124.88,-111.888 130.232,-108.011 136.008,-105.074"/> -<polygon fill="#000000" stroke="#000000" points="137.412,-108.281 145.283,-101.189 134.707,-101.824 137.412,-108.281"/> -</g> -<!-- grib_close_file --> -<g id="call~~graph~~CallGraph_node22" class="node"><title>grib_close_file</title> -<polygon fill="#777777" stroke="#777777" points="213,-66 132,-66 132,-42 213,-42 213,-66"/> -<text text-anchor="middle" x="172.5" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grib_close_file</text> -</g> -<!-- program~preconvert->grib_close_file --> -<g id="call~~graph~~CallGraph_edge20" class="edge"><title>program~preconvert->grib_close_file</title> -<path fill="none" stroke="#000000" d="M76.0123,-419.829C79.4841,-417.372 82.6134,-414.455 85,-411 170.364,-287.431 31.1011,-195.311 121,-75 121.799,-73.9304 122.663,-72.9149 123.582,-71.9508"/> -<polygon fill="#000000" stroke="#000000" points="125.964,-74.5262 131.547,-65.5218 121.567,-69.0791 125.964,-74.5262"/> -</g> -<!-- set99 --> -<g id="call~~graph~~CallGraph_node23" class="node"><title>set99</title> -<polygon fill="#777777" stroke="#777777" points="199.5,-24 145.5,-24 145.5,-0 199.5,-0 199.5,-24"/> -<text text-anchor="middle" x="172.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">set99</text> -</g> -<!-- program~preconvert->set99 --> -<g id="call~~graph~~CallGraph_edge21" class="edge"><title>program~preconvert->set99</title> -<path fill="none" stroke="#000000" d="M76.0511,-419.855C79.5166,-417.395 82.6338,-414.469 85,-411 180.101,-271.587 20.7825,-168.781 121,-33 124.848,-27.7859 130.234,-23.8594 136.064,-20.9046"/> -<polygon fill="#000000" stroke="#000000" points="137.54,-24.0817 145.434,-17.0155 134.856,-17.6165 137.54,-24.0817"/> -</g> -</g> -</svg> -</div> - <div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div> - <div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"> - <div class="modal-dialog modal-lg" role="document"> - <div class="modal-content"> - <div class="modal-header"> - <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> - <h4 class="modal-title" id="-graph-help-label">Graph Key</h4> - </div> - <div class="modal-body"> - - <p>Nodes of different colours represent the following: </p> - <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<!-- Generated by graphviz version 2.38.0 (20140413.2041) - --> -<!-- Title: Graph Key Pages: 1 --> -<svg width="560pt" height="32pt" - viewBox="0.00 0.00 559.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> -<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> -<title>Graph Key</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-28 555.5,-28 555.5,4 -4,4"/> -<!-- Subroutine --> -<g id="node1" class="node"><title>Subroutine</title> -<polygon fill="#d9534f" stroke="#d9534f" points="64,-24 0,-24 0,-0 64,-0 64,-24"/> -<text text-anchor="middle" x="32" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> -</g> -<!-- Function --> -<g id="node2" class="node"><title>Function</title> -<polygon fill="#d94e8f" stroke="#d94e8f" points="136,-24 82,-24 82,-0 136,-0 136,-24"/> -<text text-anchor="middle" x="109" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> -</g> -<!-- Interface --> -<g id="node3" class="node"><title>Interface</title> -<polygon fill="#a7506f" stroke="#a7506f" points="209.5,-24 154.5,-24 154.5,-0 209.5,-0 209.5,-24"/> -<text text-anchor="middle" x="182" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Interface</text> -</g> -<!-- Unknown Procedure Type --> -<g id="node4" class="node"><title>Unknown Procedure Type</title> -<polygon fill="#777777" stroke="#777777" points="364,-24 228,-24 228,-0 364,-0 364,-24"/> -<text text-anchor="middle" x="296" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Unknown Procedure Type</text> -</g> -<!-- Program --> -<g id="node5" class="node"><title>Program</title> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="436,-24 382,-24 382,-0 436,-0 436,-24"/> -<text text-anchor="middle" x="409" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> -</g> -<!-- This Page's Entity --> -<g id="node6" class="node"><title>This Page's Entity</title> -<polygon fill="none" stroke="black" points="551.5,-24 454.5,-24 454.5,-0 551.5,-0 551.5,-24"/> -<text text-anchor="middle" x="503" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> -</g> -</g> -</svg> - - - <p>Solid arrows point from a procedure to one which it calls. Dashed - arrows point from an interface to procedures which implement that interface. - This could include the module procedures in a generic interface or the - implementation in a submodule of an interface in a parent module. - </p> - - </div> - </div> - </div> - </div> - - </div> - </div> - - <hr> - </div> <!-- /container --> - <footer> - <div class="container"> - <div class="row"> - <div class="col-xs-6 col-md-4"><p>© 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> - <div class="col-xs-6 col-md-4 col-md-push-4"> - <p class="text-right"> - Documentation generated by - <a href="https://github.com/cmacmackin/ford">FORD</a> - - </p> - </div> - <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> - </div> - <br> - </div> <!-- /container --> - </footer> - - <!-- Bootstrap core JavaScript - ================================================== --> - <!-- Placed at the end of the document so the pages load faster --> -<!-- - <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> ---> - <script src="../js/bootstrap.min.js"></script> - <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> - <script src="../js/ie10-viewport-bug-workaround.js"></script> - - <!-- MathJax JavaScript - ================================================== --> - <!-- Placed at the end of the document so the pages load faster --> - <script type="text/x-mathjax-config"> - MathJax.Hub.Config({ - TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, - jax: ['input/TeX','input/MathML','output/HTML-CSS'], - extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'], - 'HTML-CSS': { - styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: '#000000 ! important'} } - } - }); - </script> - <!-- <script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> --> - </body> -</html> \ No newline at end of file diff --git a/Documentation/FORD/V5/Doc_original/media/css/pygments.css b/Documentation/FORD/V5/Doc_original/media/css/pygments.css deleted file mode 100644 index 67e6ea397e6e41e6bc88cbd87ec3a58dc7aa7375..0000000000000000000000000000000000000000 --- a/Documentation/FORD/V5/Doc_original/media/css/pygments.css +++ /dev/null @@ -1,61 +0,0 @@ -.hll { background-color: #ffffcc } -.c { color: #408080; font-style: italic } /* Comment */ -.err { border: 1px solid #FF0000 } /* Error */ -.k { color: #008000; font-weight: bold } /* Keyword */ -.o { color: #666666 } /* Operator */ -.cm { color: #408080; font-style: italic } /* Comment.Multiline */ -.cp { color: #BC7A00 } /* Comment.Preproc */ -.c1 { color: #408080; font-style: italic } /* Comment.Single */ -.cs { color: #408080; font-style: italic } /* Comment.Special */ -.gd { color: #A00000 } /* Generic.Deleted */ -.ge { font-style: italic } /* Generic.Emph */ -.gr { color: #FF0000 } /* Generic.Error */ -.gh { color: #000080; font-weight: bold } /* Generic.Heading */ -.gi { color: #00A000 } /* Generic.Inserted */ -.go { color: #888888 } /* Generic.Output */ -.gp { color: #000080; font-weight: bold } /* Generic.Prompt */ -.gs { font-weight: bold } /* Generic.Strong */ -.gu { color: #800080; font-weight: bold } /* Generic.Subheading */ -.gt { color: #0044DD } /* Generic.Traceback */ -.kc { color: #008000; font-weight: bold } /* Keyword.Constant */ -.kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ -.kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ -.kp { color: #008000 } /* Keyword.Pseudo */ -.kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ -.kt { color: #B00040 } /* Keyword.Type */ -.m { color: #666666 } /* Literal.Number */ -.s { color: #BA2121 } /* Literal.String */ -.na { color: #7D9029 } /* Name.Attribute */ -.nb { color: #008000 } /* Name.Builtin */ -.nc { color: #0000FF; font-weight: bold } /* Name.Class */ -.no { color: #880000 } /* Name.Constant */ -.nd { color: #AA22FF } /* Name.Decorator */ -.ni { color: #999999; font-weight: bold } /* Name.Entity */ -.ne { color: #D2413A; font-weight: bold } /* Name.Exception */ -.nf { color: #0000FF } /* Name.Function */ -.nl { color: #A0A000 } /* Name.Label */ -.nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ -.nt { color: #008000; font-weight: bold } /* Name.Tag */ -.nv { color: #19177C } /* Name.Variable */ -.ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ -.w { color: #bbbbbb } /* Text.Whitespace */ -.mf { color: #666666 } /* Literal.Number.Float */ -.mh { color: #666666 } /* Literal.Number.Hex */ -.mi { color: #666666 } /* Literal.Number.Integer */ -.mo { color: #666666 } /* Literal.Number.Oct */ -.sb { color: #BA2121 } /* Literal.String.Backtick */ -.sc { color: #BA2121 } /* Literal.String.Char */ -.sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ -.s2 { color: #BA2121 } /* Literal.String.Double */ -.se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */ -.sh { color: #BA2121 } /* Literal.String.Heredoc */ -.si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */ -.sx { color: #008000 } /* Literal.String.Other */ -.sr { color: #BB6688 } /* Literal.String.Regex */ -.s1 { color: #BA2121 } /* Literal.String.Single */ -.ss { color: #19177C } /* Literal.String.Symbol */ -.bp { color: #008000 } /* Name.Builtin.Pseudo */ -.vc { color: #19177C } /* Name.Variable.Class */ -.vg { color: #19177C } /* Name.Variable.Global */ -.vi { color: #19177C } /* Name.Variable.Instance */ -.il { color: #666666 } /* Literal.Number.Integer.Long */ diff --git a/Documentation/FORD/V5/Doc_original/media/tipuesearch/tipuesearch_content.js b/Documentation/FORD/V5/Doc_original/media/tipuesearch/tipuesearch_content.js deleted file mode 100644 index 1c0ba81b14f5e4122a2d0cd47deb34d0d3186232..0000000000000000000000000000000000000000 --- a/Documentation/FORD/V5/Doc_original/media/tipuesearch/tipuesearch_content.js +++ /dev/null @@ -1 +0,0 @@ -var tipuesearch = {"pages":[{"text":"Flex_extract: Calculation of etadot Developer Info Leopold Haimberger Univ. of Vienna, Dept. of Meteorology & Geophysics","tags":"","loc":"index.html","title":" Flex_extract: Calculation of etadot "},{"text":"Files Dependent On This One sourcefile~~phgrreal.f~~AfferentGraph sourcefile~phgrreal.f phgrreal.f sourcefile~grphreal.f grphreal.f sourcefile~phgrreal.f->sourcefile~grphreal.f sourcefile~preconvert.f90 preconvert.f90 sourcefile~phgrreal.f->sourcefile~preconvert.f90 sourcefile~grphreal.f->sourcefile~preconvert.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which depends upon it. A file \n is dependent upon another if the latter must be compiled before the former\n can be. Modules PHTOGR Source Code phgrreal.f Source Code MODULE PHTOGR INTEGER , PARAMETER :: MAXAUF = 36000 CONTAINS SUBROUTINE PHGR213 ( CXMN , FELD , WSAVE , IFAX , Z , MLAT , MNAUF , * MAXL , MAXB , MLEVEL ) C DIE ROUTINE F]HRT EINE TRANSFORMATION EINER C FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN C RAUM AUF DAS REDUZIERTE GAUSS'SCHE GITTER DURCH C C CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE C CX00,CX01,CX11,CX02,....CXMNAUFMNAUF C FELD = FELD DER METEOROLOGISCHEN VARIABLEN C\tWSAVE = Working Array fuer Fouriertransformation C Z \t = LEGENDREFUNKTIONSWERTE C C MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN C MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN C MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN C MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN C IMPLICIT NONE C\t\t\tAnzahl der Gitterpunkte auf jedem Breitenkreis INTEGER MLAT ( MAXB / 2 ) INTEGER K , MAXL , MAXB , MLEVEL , MNAUF INTEGER IND ( MAXB ) C FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , MAXB / 2 ) REAL CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MLEVEL ) REAL WSAVE ( 8 * MAXB + 15 , MAXB / 2 ) INTEGER :: IFAX ( 10 , MAXB ) IND ( 1 ) = 0 DO 7 K = 2 , MAXB / 2 IND ( K ) = IND ( K - 1 ) + MLAT ( K - 1 ) 7 \t\tC O NTINUE !$OMP PARALLEL DO SCHEDULE(DYNAMIC) DO 17 K = 1 , MAXB / 2 CALL PHSYM ( K , IND , CXMN , FELD , Z , WSAVE , IFAX , MLAT , * MNAUF , MAXL , MAXB , MLEVEL ) 17 C ONTINUE !$OMP END PARALLEL DO RETURN END SUBROUTINE PHGR213 C C SUBROUTINE PHSYM ( K , IND , CXMN , FELD , Z , WSAVE , IFAX , MLAT , * MNAUF , MAXL , MAXB , MLEVEL ) IMPLICIT NONE INTEGER MLAT ( MAXB / 2 ) INTEGER K , L , I , J , LLS , LLPS , LL , LLP , MAXL , MAXB , MLEVEL , MNAUF INTEGER IND ( MAXB ) INTEGER :: IFAX ( 10 , MAXB ) C FELD DER FOURIERKOEFFIZIENTEN REAL :: CXMS ( 0 : MAXAUF - 1 ), CXMA ( 0 : MAXAUF - 1 ) C FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , MAXB / 2 ) REAL ACR , ACI , SCR , SCI REAL CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MLEVEL ) REAL WSAVE ( 8 * MAXB + 15 , MAXB / 2 ) DO 6 L = 1 , MLEVEL LL = 0 LLP = 0 DO 1 I = 0 , MNAUF SCR = 0.D0 SCI = 0.D0 ACR = 0.D0 ACI = 0.D0 LLS = LL LLPS = LLP IF ( 2 * I + 1. LT . MLAT ( K )) THEN C\tInnerste Schleife aufgespalten um if-Abfrage zu sparen DO 18 J = I , MNAUF , 2 SCR = SCR + Z ( LLP , K ) * CXMN ( 2 * LL , L ) SCI = SCI + Z ( LLP , K ) * CXMN ( 2 * LL + 1 , L ) LL = LL + 2 LLP = LLP + 2 18 CONTINUE LL = LLS + 1 LLP = LLPS + 1 DO 19 J = I + 1 , MNAUF , 2 ACR = ACR + Z ( LLP , K ) * CXMN ( 2 * LL , L ) ACI = ACI + Z ( LLP , K ) * CXMN ( 2 * LL + 1 , L ) LL = LL + 2 LLP = LLP + 2 19 CONTINUE ENDIF LL = LLS + ( MNAUF - I + 1 ) LLP = LLPS + ( MNAUF - I + 3 ) CXMS ( 2 * I ) = SCR + ACR CXMS ( 2 * I + 1 ) = SCI + ACI CXMA ( 2 * I ) = SCR - ACR CXMA ( 2 * I + 1 ) = SCI - ACI 1 CONTINUE C CALL FOURTR(CXMS,FELD(IND(k)+1,L),WSAVE(:,K),MNAUF, C *MLAT(K),1) C CALL FOURTR(CXMA,FELD(MAXL-IND(k)-MLAT(K)+1,L), C *WSAVE(:,K),MNAUF,MLAT(K),1) CALL RFOURTR ( CXMS , WSAVE (:, K ), IFAX (:, K ), MNAUF , * MLAT ( K ), 1 ) FELD ( IND ( k ) + 1 : IND ( K ) + MLAT ( K ), L ) = CXMS ( 0 : MLAT ( K ) - 1 ) CALL RFOURTR ( CXMA , * WSAVE (:, K ), IFAX (:, K ), MNAUF , MLAT ( K ), 1 ) FELD ( MAXL - IND ( k ) - MLAT ( K ) + 1 : MAXL - IND ( k ), L ) = CXMA ( 0 : MLAT ( K ) - 1 ) C WRITE(*,*) IND+1,FELD(IND+1,L) 6 C ONTINUE END SUBROUTINE PHSYM SUBROUTINE PHGCUT ( CXMN , FELD , WSAVE , IFAX , Z , * MNAUF , MMAX , MAUF , MANF , MAXL , MAXB , MLEVEL ) C DIE ROUTINE FUEHRT EINE TRANSFORMATION EINER C FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN C RAUM AUF KUGELKOORDINATEN DURCH. Es kann ein Teilausschnitt C\t\t\tDer Erde angegeben werden. Diese Routine ist langsamer als C\t\t\tphgrph C C CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE C CX00,CX01,CX11,CX02,....CXMNAUFMNAUF C FELD = FELD DER METEOROLOGISCHEN VARIABLEN C BREITE = SINUS DER GEOGRAFISCHEN BREITEN C C MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN C MAUF ANZAHL DER LAENGEN UND DER FOURIERKOEFFIZIENTEN C MANF ANFANG DES LAENGENBEREICHS FUER DAS GITTER, C AUF DAS INTERPOLIERT WERDEN SOLL C MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN C MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN C MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN C IMPLICIT REAL ( A - H , O - Z ) C FELD DER FOURIERKOEFFIZIENTEN C FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( 0 :(( MMAX + 3 ) * ( MMAX + 4 )) / 2 , MAXB ) DIMENSION CXMN ( 0 :( MMAX + 1 ) * ( MMAX + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MAXB , MLEVEL ) DIMENSION WSAVE ( 4 * MAUF + 15 ) INTEGER :: IFAX ( 10 ) LOGICAL SYM C C write(*,*)mauf,mnauf,manf,maxl IF ( MAUF . LE . MNAUF ) WRITE ( * , * ) 'TOO COARSE LONGITUDE RESOLUTION' IF (( MANF . LT . 1 ). OR .( MAXL . LT . 1 ). OR . * ( MANF . GT . MAUF ). OR .( MAXL . GT . MAUF )) THEN WRITE ( * , * ) 'WRONG LONGITUDE RANGE' , MANF , MAXL STOP ENDIF C Pruefe, ob Ausgabegitter symmetrisch zum Aequator ist C Wenn ja soll Symmetrie der Legendrepolynome ausgenutzt werden IF ( MAXB . GT . 4 ) THEN SYM = . TRUE . D O 11 J = 5 , 5 IF ( ABS ( ABS ( Z ( 100 , J )) - ABS ( Z ( 100 , MAXB + 1 - J ))). GT . 1 E - 11 ) * SYM = . FALSE . C\t WRITE(*,*) ABS(Z(100,J)),ABS(Z(100,MAXB+1-J)) 11 C ONTINUE WRITE ( * , * ) 'Symmetrisch: ' , SYM ELSE SYM = . FALSE . ENDIF IF( S YM ) THEN !$OMP PARALLEL DO DO J = 1 ,( MAXB + 1 ) / 2 CALL PHSYMCUT ( J , CXMN , FELD , Z , WSAVE , IFAX , * MAUF , MNAUF , MAXL , MAXB , MLEVEL , MANF ) ENDDO !$OMP END PARALLEL DO ELS E !$OMP PARALLEL DO DO J = 1 , MAXB CALL PHGPNS ( CXMN , FELD , Z , WSAVE , IFAX , * J , MNAUF , MAUF , MANF , MAXL , MAXB , MLEVEL ) ENDDO !$OMP END PARALLEL DO ENDIF RETURN END SUBROUTINE PHGCUT SUBROUTINE PHSYMCUT ( J , CXMN , FELD , Z , WSAVE , IFAX , * MAUF , MNAUF , MAXL , MAXB , MLEVEL , MANF ) IMPLICIT REAL ( A - H , O - Z ) C FELD DER FOURIERKOEFFIZIENTEN REAL :: CXM ( 0 : MAXAUF - 1 ), CXMA ( 0 : MAXAUF - 1 ) C FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , MAXB ) REAL SCR , SCI , ACR , ACI DIMENSION CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MAXB , MLEVEL ) DIMENSION WSAVE ( 4 * MAUF + 15 ) INTEGER :: IFAX ( 10 ) DO 16 L = 1 , MLEVEL LL = 0 LLP = 0 DO 17 I = 0 , MNAUF SCR = 0.D0 SCI = 0.D0 ACR = 0.D0 ACI = 0.D0 LLS = LL LLPS = LLP C\tInnerste Schleife aufgespalten um if-Abfrage zu sparen DO 18 K = I , MNAUF , 2 SCR = SCR + Z ( LLP , J ) * CXMN ( 2 * LL , L ) SCI = SCI + Z ( LLP , J ) * CXMN ( 2 * LL + 1 , L ) LL = LL + 2 LLP = LLP + 2 18 CONTINUE LL = LLS + 1 LLP = LLPS + 1 DO 19 K = I + 1 , MNAUF , 2 ACR = ACR + Z ( LLP , J ) * CXMN ( 2 * LL , L ) ACI = ACI + Z ( LLP , J ) * CXMN ( 2 * LL + 1 , L ) LL = LL + 2 LLP = LLP + 2 19 CONTINUE LL = LLS + MNAUF - I + 1 LLP = LLPS + MNAUF - I + 3 CXM ( 2 * I ) = SCR + ACR CXM ( 2 * I + 1 ) = SCI + ACI CXMA ( 2 * I ) = SCR - ACR CXMA ( 2 * I + 1 ) = SCI - ACI 17 CONTINUE CALL RFOURTR ( CXM , WSAVE , IFAX , MNAUF , MAUF , 1 ) DO 26 I = 0 , MAXL - 1 IF ( MANF + I . LE . MAUF ) THEN FELD ( I + 1 , J , L ) = CXM ( MANF + I - 1 ) ELSE FELD ( I + 1 , J , L ) = CXM ( MANF - MAUF + I - 1 ) ENDIF 26 CONTINUE CALL RFOURTR ( CXMA , WSAVE , IFAX , MNAUF , MAUF , 1 ) DO 36 I = 0 , MAXL - 1 IF ( MANF + I . LE . MAUF ) THEN FELD ( I + 1 , MAXB + 1 - J , L ) = CXMA ( MANF + I - 1 ) ELSE FELD ( I + 1 , MAXB + 1 - J , L ) = CXMA ( MANF - MAUF + I - 1 ) ENDIF 36 CONTINUE 16 CONTINUE END SUBROUTINE PHSYMCUT SUBROUTINE PHGPNS ( CXMN , FELD , Z , WSAVE , IFAX , * J , MNAUF , MAUF , MANF , MAXL , MAXB , MLEVEL ) IMPLICIT NONE INTEGER , intent ( in ) :: MNAUF , MAUF , MANF , J , MAXL , MAXB , MLEVEL REAL :: CXM ( 0 : MAXAUF - 1 ) REAL , intent ( in ) :: Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , MAXB ) REAL , intent ( in ) :: CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL , intent ( in ) :: WSAVE ( 4 * MAUF + 15 ) REAL :: FELD ( MAXL , MAXB , MLEVEL ) INTEGER :: IFAX ( 10 ) INTEGER I , L DO L = 1 , MLEVEL CALL LEGTR ( CXMN (:, L ), CXM , Z (:, J ), MNAUF , MAUF ) CALL RFOURTR ( CXM , WSAVE , IFAX , MNAUF , MAUF , 1 ) DO I = 0 , MAXL - 1 IF ( MANF + I . LE . MAUF ) THEN FELD ( I + 1 , J , L ) = CXM ( MANF + I - 1 ) ELSE FELD ( I + 1 , J , L ) = CXM ( MANF - MAUF + I - 1 ) ENDIF ENDDO ENDDO END SUBROUTINE PHGPNS C SUBROUTINE LEGTR ( CXMN , CXM , Z , MNAUF , MAUF ) IMPLICIT NONE INTEGER MNAUF , MAUF , LL , LLP , I , J REAL CXM ( 0 : MAXAUF - 1 ) REAL CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 ) REAL Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 ) REAL CI , CR C C DIESE ROUTINE BERECHNET DIE FOURIERKOEFFIZIENTEN CXM C LL = 0 LLP = 0 DO 1 I = 0 , MNAUF CR = 0.D0 CI = 0.D0 DO 2 J = I , MNAUF CR = CR + Z ( LLP ) * CXMN ( 2 * LL ) CI = CI + Z ( LLP ) * CXMN ( 2 * LL + 1 ) LL = LL + 1 LLP = LLP + 1 2 CONTINUE LLP = LLP + 2 CXM ( 2 * I ) = CR CXM ( 2 * I + 1 ) = CI 1 CONTINUE RETURN END SUBROUTINE LEGTR C C C SUBROUTINE RFOURTR ( CXM , TRIGS , IFAX , MNAUF , MAXL , ISIGN ) C BERECHNET DIE FOURIERSUMME MIT EINEM FFT-ALGORITHMUS IMPLICIT REAL ( A - H , O - Z ) DIMENSION CXM ( 0 : MAXAUF - 1 ) REAL :: WSAVE ( 2 * MAXL ), TRIGS ( 2 * MAXL ) INTEGER IFAX ( 10 ) DO I = MNAUF + 1 , MAXL - 1 CXM ( 2 * I ) = 0.0 CXM ( 2 * I + 1 ) = 0.0 ENDDO CALL FFT99 ( CXM , WSAVE , TRIGS , IFAX , 1 , 1 , MAXL , 1 , 1 ) DO I = 0 , MAXL - 1 CXM ( I ) = CXM ( I + 1 ) ENDDO RETURN END SUBROUTINE RFOURTR C C SUBROUTINE GAULEG ( X1 , X2 , X , W , N ) C BERECHNET DIE GAUSS+SCHEN BREITEN IMPLICIT REAL ( A - H , O - Z ) DIMENSION X ( N ), W ( N ) PARAMETER ( EPS = 3.D-14 ) M = ( N + 1 ) / 2 XM = 0.5D0 * ( X2 + X1 ) XL = 0.5D0 * ( X2 - X1 ) DO 12 I = 1 , M Z = DCOS ( 3.141592654D0 * ( I - . 25 D0 ) / ( N + . 5 D0 )) 1 CONTINUE P1 = 1.D0 P2 = 0.D0 DO 11 J = 1 , N P3 = P2 P2 = P1 P1 = (( 2.D0 * J - 1.D0 ) * Z * P2 - ( J - 1.D0 ) * P3 ) / J 11 CONTINUE PP = N * ( Z * P1 - P2 ) / ( Z * Z - 1.D0 ) Z1 = Z Z = Z1 - P1 / PP IF ( ABS ( Z - Z1 ). GT . EPS ) GO TO 1 X ( I ) = XM - XL * Z X ( N + 1 - I ) = XM + XL * Z W ( I ) = 2.D0 * XL / (( 1.D0 - Z * Z ) * PP * PP ) W ( N + 1 - I ) = W ( I ) 12 CONTINUE RETURN END SUBROUTINE GAULEG C C SUBROUTINE PLGNFA ( LL , X , Z ) C C PLGNDN BERECHNET ALLE NORMIERTEN ASSOZIIERTEN C LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X) C UND SCHREIBT SIE IN DAS FELD Z C Die Polynome sind wie im ECMWF indiziert, d.h. C P00,P10,P11,P20,P21,P22,... C\tAnsonsten ist die Routine analog zu PLGNDN C X IST DER COSINUS DES ZENITWINKELS ODER C DER SINUS DER GEOGRAFISCHEN BREITE C IMPLICIT REAL ( A - H , O - Z ) DIMENSION Z ( 0 :(( LL + 3 ) * ( LL + 4 )) / 2 ) C L = LL + 2 I = 1 Z ( 0 ) = 1.D0 FACT = 1.D0 POT = 1.D0 SOMX2 = DSQRT ( 1.D0 - X * X ) DO 14 J = 0 , L DJ = DBLE ( J ) IF ( J . GT . 0 ) THEN FACT = FACT * ( 2.D0 * DJ - 1.D0 ) / ( 2.D0 * DJ ) POT = POT * SOMX2 Z ( I ) = DSQRT (( 2.D0 * DJ + 1.D0 ) * FACT ) * POT I = I + 1 ENDIF IF ( J . LT . L ) THEN Z ( I ) = X * * DSQRT (( 4.D0 * DJ * DJ + 8.D0 * DJ + 3.D0 ) / ( 2.D0 * DJ + 1.D0 )) * Z ( I - 1 ) I = I + 1 ENDIF DK = DJ + 2.D0 DO 14 K = J + 2 , L DDK = ( DK * DK - DJ * DJ ) Z ( I ) = X * DSQRT (( 4.D0 * DK * DK - 1.D0 ) / DDK ) * Z ( I - 1 ) - * DSQRT ((( 2.D0 * DK + 1.D0 ) * ( DK - DJ - 1.D0 ) * ( DK + DJ - 1.D0 )) / * (( 2.D0 * DK - 3.D0 ) * DDK )) * Z ( I - 2 ) DK = DK + 1.D0 I = I + 1 14 CONTINUE RETURN END SUBROUTINE PLGNFA SUBROUTINE DPLGND ( MNAUF , Z , DZ ) C C DPLGND BERECHNET DIE ABLEITUNG DER NORMIERTEN ASSOZIIERTEN C LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X) C UND SCHREIBT SIE IN DAS FELD DZ C DIE REIHENFOLGE IST C P00(X),P01(X),P11(X),P02(X),P12(X),P22(X),..PLL(X) C IMPLICIT REAL ( A - H , O - Z ) DIMENSION Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 ) DIMENSION DZ ( 0 :(( MNAUF + 2 ) * ( MNAUF + 3 )) / 2 ) C I F ( Z ( 0 ). NE . 1.D0 ) THEN WR I TE ( * , * ) 'DPLGND: Z(0) must be 1.0' S TOP E N DIF L L P = 0 L L H = 0 DO 1 I = 0 , MNAUF + 1 DO 2 J = I , MNAUF + 1 IF ( I . EQ . J ) THEN WURZELA = * DSQRT ( DBLE (( J + 1 ) * ( J + 1 ) - I * I ) / DBLE ( 4 * ( J + 1 ) * ( J + 1 ) - 1 )) DZ ( LLH ) = DBLE ( J ) * WURZELA * Z ( LLP + 1 ) ELSE WURZELB = * DSQRT ( DBLE (( J + 1 ) * ( J + 1 ) - I * I ) / DBLE ( 4 * ( J + 1 ) * ( J + 1 ) - 1 )) DZ ( LLH ) = * DBLE ( J ) * WURZELB * Z ( LLP + 1 ) - DBLE ( J + 1 ) * WURZELA * Z ( LLP - 1 ) WURZELA = WURZELB ENDIF LLH = LLH + 1 LLP = LLP + 1 2 CONTINUE LLP = LLP + 1 1\tCON T INUE RETU R N END S UBROUTINE DPLGND * Spectral Filter of Sardeshmukh and Hoskins (1984, MWR) * MM=Spectral truncation of field * MMAX= Spectral truncation of filter * SUBROUTINE SPFILTER ( FELDMN , MM , MMAX ) IMPLICIT NONE INTEGER MM , MMAX , I , J , K , L REAL FELDMN ( 0 :( MM + 1 ) * ( MM + 2 ) - 1 ) REAL KMAX , SMAX , FAK SMAX = 0.1 KMAX =- ALOG ( SMAX ) KMAX = KMAX / ( float ( MMAX ) * float ( MMAX + 1 )) ** 2 c WRITE(*,*)'alogsmax',alog(smax),'KMAX:',KMAX l = 0 do i = 0 , MM do j = i , MM c write(*,*) i,j,feld(k),feld(k)*exp(-KMAX*(j*(j+1))**2) if ( j . le . MMAX ) then c fak=exp(-KMAX*(j*(j+1))**2) fak = 1.0 feldmn ( 2 * l ) = feldmn ( 2 * l ) * fak feldmn ( 2 * l + 1 ) = feldmn ( 2 * l + 1 ) * fak else feldmn ( 2 * l ) = 0. feldmn ( 2 * l + 1 ) = 0. endif l = l + 1 enddo enddo END SUBROUTINE SPFILTER END MODULE PHTOGR","tags":"","loc":"sourcefile/phgrreal.f.html","title":"phgrreal.f – Flex_extract: Calculation of etadot"},{"text":"This File Depends On sourcefile~~grphreal.f~~EfferentGraph sourcefile~grphreal.f grphreal.f sourcefile~phgrreal.f phgrreal.f sourcefile~phgrreal.f->sourcefile~grphreal.f Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which depends upon it. A file \n is dependent upon another if the latter must be compiled before the former\n can be. Files Dependent On This One sourcefile~~grphreal.f~~AfferentGraph sourcefile~grphreal.f grphreal.f sourcefile~preconvert.f90 preconvert.f90 sourcefile~grphreal.f->sourcefile~preconvert.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which depends upon it. A file \n is dependent upon another if the latter must be compiled before the former\n can be. Modules GRTOPH Source Code grphreal.f Source Code MODULE GRTOPH USE PHTOGR CONTAINS C SUBROUTINE GRPH213 ( CXMN , FELD , WSAVE , IFAX , Z , W , MLAT , * MNAUF , MAXL , MAXB , MLEVEL ) C DIE ROUTINE F]HRT EINE TRANSFORMATION EINER C FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN C RAUM AUF KUGELKOORDINATEN DURCH C C CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE C CX00,CX01,CX11,CX02,....CXMNAUFMNAUF C\t\t\tCXM\t\t = FOURIERKOEFFIZIENTEN - nur ein Hilfsfeld C FELD = FELD DER METEOROLOGISCHEN VARIABLEN C\t\t\tWSAVE = Working Array fuer Fouriertransformation C Z \t = LEGENDREFUNKTIONSWERTE C C MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN C MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN C MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN C MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN C IMPLICIT REAL ( A - H , O - Z ) C\t\t\tAnzahl der Gitterpunkte pro Breitenkreis des reduzierten C\t\t\tGauss'schen Gitters INTE G ER MLAT ( MAXB ), ISIZE , IFAX ( 10 , MAXB ) C FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL * 8 Z ( MAXB / 2 , 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 ) C LOGICAL*1 USED(((216*217)/2+1)*160) DIMENSION CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MLEVEL ) DIMENSION WSAVE ( 8 * MAXB + 15 , MAXB / 2 ) REAL * 8 W ( MAXB ) DIMENSION IND ( MAXB ) IND ( 1 ) = 0 DO 6 J = 2 , MAXB / 2 IND ( j ) = IND ( J - 1 ) + MLAT ( J - 1 ) 6 CONTINUE !$OMP PARALLEL DO SCHEDULE(DYNAMIC) DO 16 L = 1 , MLEVEL CALL GRPHSUB ( L , IND , CXMN , FELD , WSAVE , IFAX , Z , W , MLAT , * MNAUF , MAXL , MAXB , MLEVEL ) 16 CONTINUE !$omp end parallel do RETURN END SUBROUTINE GRPH213 C SUBROUTINE GRPHSUB ( L , IND , CXMN , FELD , WSAVE , IFAX , Z , W , MLAT , * MNAUF , MAXL , MAXB , MLEVEL ) C DIE ROUTINE F]HRT EINE TRANSFORMATION EINER C FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN C RAUM AUF KUGELKOORDINATEN DURCH C C CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE C CX00,CX01,CX11,CX02,....CXMNAUFMNAUF C\t\t\tCXM\t\t = FOURIERKOEFFIZIENTEN - nur ein Hilfsfeld C FELD = FELD DER METEOROLOGISCHEN VARIABLEN C\t\t\tWSAVE = Working Array fuer Fouriertransformation C Z \t = LEGENDREFUNKTIONSWERTE C C MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN C MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN C MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN C MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN C IMPLICIT REAL ( A - H , O - Z ) C FELD DER FOURIERKOEFFIZIENTEN REAL CXMS ( 4 * ( MNAUF + 1 )) REAL CXMA ( 4 * ( MNAUF + 1 )) REAL , ALLOCATABLE :: CXM (:,:) C\t\t\tAnzahl der Gitterpunkte pro Breitenkreis des reduzierten C\t\t\tGauss'schen Gitters IN T EGER MLAT ( MAXB ), ISIZE C FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( MAXB / 2 , 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 ) C LOGICAL*1 USED(((216*217)/2+1)*160) REAL CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MLEVEL ) REAL WSAVE ( 8 * MAXB + 15 , MAXB / 2 ) INTEGER IFAX ( 10 , MAXB ) REAL W ( MAXB ) INTEGER IND ( MAXB ) ALLOCATE ( CXM ( 4 * MAXB , MAXB )) DO 5 J = 1 , MAXB / 2 CXMS ( 1 : MLAT ( J )) = FELD ( IND ( J ) + 1 : IND ( J ) + MLAT ( J ), L ) C ALL RFOUFTR ( CXMS , WSAVE ( 1 , J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) CXMA ( 1 : MLAT ( J )) = FELD ( MAXL - IND ( J ) - MLAT ( J ) + 1 : MAXL - IND ( J ), L ) C ALL RFOUFTR ( CXMA , * WSAVE ( 1 , J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) D O 4 I = 1 , 2 * ( MNAUF + 1 ) CXM ( I , J ) = CXMS ( I ) + CXMA ( I ) CXM ( I , MAXB + 1 - J ) = CXMS ( I ) - CXMA ( I ) 4\t\t\tC O NTINUE 5 CONTINUE CALL LGTR213 ( CXMN ( 0 , L ), CXM , Z , W , MLAT , MNAUF , MAXB ) DEALLOCATE ( CXM ) RETURN END SUBROUTINE GRPHSUB C SUBROUTINE LGTR213 ( CXMN , CXM , Z , W , MLAT , MNAUF , MAXB ) IMPLICIT REAL ( A - H , O - Z ) INTEGER MLAT ( MAXB ) DIMENSION CXM ( 0 : 4 * MAXB - 1 , MAXB ) DIMENSION CXMN ( 0 : 2 * ((( MNAUF + 1 ) * MNAUF ) / 2 + MNAUF ) + 1 ) REAL * 8 Z ( MAXB / 2 , 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 ) REAL * 8 W ( MAXB ), CR , CI , HILF LOGICAL EVEN C C DIESE ROUTINE BERECHNET DIE KFFKs CXMN C LL = 0 LL P = 0 DO 1 I = 0 , MNAUF KM = 0 9 KM = KM + 1 IF ( MLAT ( KM ). LE . 2 * I ) THEN GOTO 9 ENDIF DO 2 J = I , MNAUF CR = 0 CI = 0 EVEN = MOD ( I + J , 2 ). EQ . 0 IF ( EVEN ) THEN DO 3 K = KM , MAXB / 2 HILF = W ( K ) * Z ( K , LLP ) CR = CR + CXM ( 2 * I , K ) * HILF CI = CI + CXM ( 2 * I + 1 , K ) * HILF 3 CONTINUE ELSE DO 4 K = KM , MAXB / 2 HILF = W ( K ) * Z ( K , LLP ) CR = CR + CXM ( 2 * I , MAXB + 1 - K ) * HILF CI = CI + CXM ( 2 * I + 1 , MAXB + 1 - K ) * HILF 4 CONTINUE ENDIF 5 CXMN ( 2 * LL ) = CR CXMN ( 2 * LL + 1 ) = CI LL = LL + 1 LLP = LLP + 1 2 CONTINUE LLP = LLP + 2 1 CONTINUE RETURN END SUBROUTINE LGTR213 C C SUBROUTINE RFOUFTR ( CXM , TRIGS , IFAX , MNAUF , MAXL , ISIGN ) C BERECHNET DIE FOURIERSUMME MIT EINEM FFT-ALGORITHMUS IMPLICIT REAL ( A - H , O - Z ) DIMENSION CXM ( 0 : 2 * MAXL - 1 ) DIMENSION FELD ( MAXL ), TRIGS ( 2 * MAXL ) DIMENSION WSAVE ( MAXAUF ) INTEGER IFAX ( 10 ) C NORMIERUNG... WSAVE ( 1 ) = CXM ( MAXL - 1 ) CXM ( 1 : MAXL ) = CXM ( 0 : MAXL - 1 ) / 2 CXM ( 0 ) = WSAVE ( 1 ) / 2 ! CALL CFFTF(MAXL,CXM,WSAVE) CALL FFT99 ( CXM , WSAVE , TRIGS , IFAX , 1 , 1 , MAXL , 1 , - 1 ) RETURN END SUBROUTINE RFOUFTR END MODULE GRTOPH","tags":"","loc":"sourcefile/grphreal.f.html","title":"grphreal.f – Flex_extract: Calculation of etadot"},{"text":"Files Dependent On This One sourcefile~~rwgrib2.f90~~AfferentGraph sourcefile~rwgrib2.f90 rwGRIB2.f90 sourcefile~preconvert.f90 preconvert.f90 sourcefile~rwgrib2.f90->sourcefile~preconvert.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which depends upon it. A file \n is dependent upon another if the latter must be compiled before the former\n can be. Modules RWGRIB2 Source Code rwGRIB2.f90 Source Code MODULE RWGRIB2 CONTAINS SUBROUTINE READLATLON ( FILENAME , FELD , MAXL , MAXB , MLEVEL , MPAR ) USE GRIB_API IMPLICIT NONE integer :: ifile integer :: iret integer :: n , mk , parid , nm integer :: i , k integer , dimension (:), allocatable :: igrib integer :: numberOfPointsAlongAParallel integer :: numberOfPointsAlongAMeridian real , dimension (:), allocatable :: values integer :: numberOfValues real , dimension ( maxl , maxb , mlevel ) :: feld integer :: maxl , maxb , mlevel , mstride , mpar (:), irest , div , level integer :: l ( size ( mpar )) character * ( * ) :: filename feld = 0. call grib_open_file ( ifile , TRIM ( FILENAME ), 'r' ) ! count the messages in the file call grib_count_in_file ( ifile , n ) allocate ( igrib ( n )) igrib =- 1 ! Load the messages from the file. DO i = 1 , n call grib_new_from_file ( ifile , igrib ( i ), iret ) END DO ! we can close the file call grib_close_file ( ifile ) nm = size ( mpar ) div = mlevel / nm l = 0 ! Loop on all the messages in memory iloop : DO i = 1 , n ! write(*,*) 'processing message number ',i ! get as a integer call grib_get ( igrib ( i ), 'numberOfPointsAlongAParallel' , & numberOfPointsAlongAParallel ) ! get as a integer call grib_get ( igrib ( i ), 'numberOfPointsAlongAMeridian' , & numberOfPointsAlongAMeridian ) call grib_get ( igrib ( i ), 'numberOfVerticalCoordinateValues' , mk ) call grib_get_size ( igrib ( i ), 'values' , numberOfValues ) ! write(*,*) 'numberOfValues=',numberOfValues allocate ( values ( numberOfValues ), stat = iret ) ! get data values call grib_get ( igrib ( i ), 'values' , values ) call grib_get ( igrib ( i ), 'paramId' , parid ) call grib_get ( igrib ( i ), 'level' , level ) kloop : do k = 1 , nm if ( parid . eq . mpar ( k )) then ! l(k)=l(k)+1 feld (:,:,( k - 1 ) * div + level ) = reshape ( values ,( / maxl , maxb / )) ! print*,(k-1)*div+l(k),parid exit kloop endif enddo kloop if ( k . gt . nm . and . parid . ne . mpar ( nm )) then write ( * , * ) k , nm , parid , mpar ( nm ) write ( * , * ) 'ERROR readlatlon: parameter ' , parid , 'is not' , mpar stop endif ! print*,i END DO iloop write ( * , * ) 'readlatlon: ' , i - 1 , ' records read' DO i = 1 , n call grib_release ( igrib ( i )) END DO deallocate ( values ) deallocate ( igrib ) END SUBROUTINE READLATLON SUBROUTINE WRITELATLON ( iunit , igrib , ogrib , FELD , MAXL , MAXB , MLEVEL ,& MLEVELIST , MSTRIDE , MPAR ) USE GRIB_API IMPLICIT NONE INTEGER IFIELD , MLEVEL , MNAUF , I , J , K , L , MSTRIDE , IERR , JOUT INTEGER MPAR ( MSTRIDE ), MAXL , MAXB , LEVMIN , LEVMAX INTEGER IUNIT , igrib , ogrib REAL ZSEC4 ( MAXL * MAXB ) REAL FELD ( MAXL , MAXB , MLEVEL ) CHARACTER * ( * ) MLEVELIST INTEGER ILEVEL ( MLEVEL ), MLINDEX ( MLEVEL + 1 ), LLEN ! parse MLEVELIST LLEN = len ( trim ( MLEVELIST )) if ( index ( MLEVELIST , 'to' ) . ne . 0 . or . index ( MLEVELIST , 'TO' ) . ne . 0 ) THEN i = index ( MLEVELIST , '/' ) read ( MLEVELIST ( 1 : i - 1 ), * ) LEVMIN i = index ( MLEVELIST , '/' ,. true .) read ( MLEVELIST ( i + 1 : LLEN ), * ) LEVMAX l = 0 do i = LEVMIN , LEVMAX l = l + 1 ILEVEL ( l ) = i enddo else l = 1 MLINDEX ( 1 ) = 0 do i = 1 , LLEN if ( MLEVELIST ( i : i ) . eq . '/' ) THEN l = l + 1 MLINDEX ( l ) = i endif enddo MLINDEX ( l + 1 ) = LLEN + 1 do i = 1 , l read ( MLEVELIST ( MLINDEX ( i ) + 1 : MLINDEX ( i + 1 ) - 1 ), * ) ILEVEL ( i ) enddo endif DO k = 1 , l call grib_set ( igrib , \"level\" , ILEVEL ( k )) DO j = 1 , MSTRIDE call grib_set ( igrib , \"paramId\" , MPAR ( j )) ! if(MPAR(j) .eq. 87) then ! call grib_set(igrib,\"shortName\",\"etadot\") ! call grib_set(igrib,\"units\",\"Pa,s**-1\") ! endif ! if(MPAR(j) .eq. 77) then ! call grib_set(igrib,\"shortName\",\"etadot\") ! call grib_set(igrib,\"units\",\"s**-1\") ! endif if ( l . ne . mlevel ) then zsec4 ( 1 : maxl * maxb ) = RESHAPE ( FELD (:,:, ILEVEL ( k )),( / maxl * maxb / )) else zsec4 ( 1 : maxl * maxb ) = RESHAPE ( FELD (:,:, k ),( / maxl * maxb / )) endif call grib_set ( igrib , \"values\" , zsec4 ) call grib_write ( igrib , iunit ) ENDDO ENDDO END SUBROUTINE WRITELATLON SUBROUTINE READSPECTRAL ( FILENAME , CXMN , MNAUF , MLEVEL ,& MAXLEV , MPAR , A , B ) USE GRIB_API IMPLICIT NONE integer :: ifile integer :: iret integer :: n , mk , div , nm , k integer :: i , j , parid integer , dimension (:), allocatable :: igrib real , dimension (:), allocatable :: values integer :: numberOfValues , maxlev REAL :: A ( MAXLEV + 1 ), B ( MAXLEV + 1 ), pv ( 2 * MAXLEV + 2 ) REAL :: CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) integer :: maxl , maxb , mlevel , mstride , mpar (:), mnauf , ioffset , ipar , ilev , l ( size ( mpar )) character * ( * ) :: filename call grib_open_file ( ifile , TRIM ( FILENAME ), 'r' ) ! count the messages in the file call grib_count_in_file ( ifile , n ) allocate ( igrib ( n )) igrib =- 1 ! Load the messages from the file. DO i = 1 , n call grib_new_from_file ( ifile , igrib ( i ), iret ) END DO ! we can close the file call grib_close_file ( ifile ) l = 0 ! Loop on all the messages in memory iloop : DO i = 1 , n ! write(*,*) 'processing message number ',i ! get as a integer call grib_get ( igrib ( i ), 'pentagonalResolutionParameterJ' , j ) call grib_get_size ( igrib ( i ), 'values' , numberOfValues ) ! write(*,*) 'numberOfValues=',numberOfValues call grib_get ( igrib ( i ), 'numberOfVerticalCoordinateValues' , mk ) call grib_get ( igrib ( i ), 'level' , ilev ) call grib_get ( igrib ( i ), 'pv' , pv ) allocate ( values ( numberOfValues ), stat = iret ) ! get data values call grib_get ( igrib ( i ), 'values' , values ) ! IOFFSET=mod(i-1,MSTRIDE)*(mk/2-1) ! CXMN(:,IOFFSET+ilev)=values(1:(MNAUF+1)*(MNAUF+2)) call grib_get ( igrib ( i ), 'paramId' , parid ) nm = size ( mpar ) div = mlevel / nm kloop : do k = 1 , nm if ( parid . eq . mpar ( k )) then l ( k ) = l ( k ) + 1 cxmn (:,( k - 1 ) * div + l ( k )) = values ( 1 :( MNAUF + 1 ) * ( MNAUF + 2 )) ! print*,(k-1)*div+l(k),parid exit kloop endif enddo kloop if ( k . gt . nm . and . parid . ne . mpar ( nm )) then write ( * , * ) k , nm , parid , mpar ( nm ) write ( * , * ) 'ERROR readspectral: parameter ' , parid , 'is not' , mpar stop endif ! print*,i END DO iloop write ( * , * ) 'readspectral: ' , i - 1 , ' records read' DO i = 1 , n call grib_release ( igrib ( i )) END DO deallocate ( values ) deallocate ( igrib ) A = pv ( 1 : 1 + MAXLEV ) B = pv ( 2 + MAXLEV : 2 * MAXLEV + 2 ) END SUBROUTINE READSPECTRAL END MODULE RWGRIB2","tags":"","loc":"sourcefile/rwgrib2.f90.html","title":"rwGRIB2.f90 – Flex_extract: Calculation of etadot"},{"text":"This File Depends On sourcefile~~preconvert.f90~~EfferentGraph sourcefile~preconvert.f90 preconvert.f90 sourcefile~grphreal.f grphreal.f sourcefile~grphreal.f->sourcefile~preconvert.f90 sourcefile~phgrreal.f phgrreal.f sourcefile~phgrreal.f->sourcefile~preconvert.f90 sourcefile~phgrreal.f->sourcefile~grphreal.f sourcefile~rwgrib2.f90 rwGRIB2.f90 sourcefile~rwgrib2.f90->sourcefile~preconvert.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which depends upon it. A file \n is dependent upon another if the latter must be compiled before the former\n can be. Programs PRECONVERT Functions IA Subroutines STATIS Source Code preconvert.f90 Source Code PROGRAM PRECONVERT !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ! ! PROGRAM PRECONVERT - PREPARES INPUT DATA FOR POP MODEL METEOR- ! ! OLOGICAL PREPROCESSOR ! ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ! ! CALCULATION OF ETAPOINT ON A REGULAR LAMDA/PHI GRID AND WRITING ! ! U,V,ETAPOINT,T,PS,Q,SD,MSL,TCC,10U, 10V, 2T,2D,LSP,CP,SSHF,SSR, ! ! EWSS,NSSS TO AN OUTPUT FILE (GRIB 1 or 2 FORMAT). ! ! ! ! AUTHORS: L. HAIMBERGER, G. WOTAWA, 1994-04 ! ! adapted: A. BECK ! ! 2003-05-11 ! ! L. Haimberger 2006-12 V2.0 ! ! modified to handle arbitrary regular grids ! ! and T799 resolution data ! ! L. Haimberger 2010-03 V4.0 ! ! modified to grib edition 2 fields ! ! and T1279 resolution data ! ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ! ! DESCRIPTION OF NEEDED INPUT: ! ! ! ! UNIT FILE PARAMETER(S) DATA REPRESENTATION ! ! ! ! 11 fort.11 T,U,V regular lamda phi grid ! ! 12 fort.12 D regular lamda phi grid ! ! 13 fort.13 LNSP fort.13 spherical harmonics ! ! 14 fort.14 SD,MSL,TCC,10U, ! ! 10V,2T,2D regular lamda phi grid ! ! 16 fort.16 LSP,CP,SSHF, ! ! SSR,EWSS,NSSS regular lamda phi grid ! ! 17 fort.17 Q regular lamda phi grid ! ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ! ! DESCRIPTION OF OUTPUT: ! ! ! ! UNIT FILE PARAMETER(S) DATA REPRESENTATION ! ! ! ! 15 fort.15 U,V,ETA,T,PS, ! ! Q,SD,MSL,TCC, ! ! 10U,10V,2T,2D, regular lamda phi grid ! ! LSP,CP,SSHF, ! ! SSR,EWSS,NSSS ! ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! USE PHTOGR USE GRTOPH USE FTRAFO USE RWGRIB2 USE GRIB_API IMPLICIT NONE REAL , ALLOCATABLE , DIMENSION (:,:) :: LNPS REAL , ALLOCATABLE , DIMENSION (:,:) :: Z REAL , ALLOCATABLE , DIMENSION (:,:,:) :: T , UV , UV2 REAL , ALLOCATABLE , DIMENSION (:,:,:) :: QA , OM , OMR REAL , ALLOCATABLE , DIMENSION (:,:,:) :: DIV , ETA , ETAR REAL , ALLOCATABLE , DIMENSION (:,:) :: DPSDL , DPSDM REAL , ALLOCATABLE , DIMENSION (:,:,:) :: PS , DPSDT REAL , ALLOCATABLE , DIMENSION (:,:,:) :: SURF , FLUX , OROLSM REAL , ALLOCATABLE , DIMENSION (:) :: WSAVE , H , SINL , COSL , WSAVE2 REAL , ALLOCATABLE , DIMENSION (:) :: BREITE , GBREITE , AK , BK , pv ! Arrays for Gaussian grid calculations REAL :: X1 , X2 , RMS , MW , SIG , LAM REAL , ALLOCATABLE :: CUA (:,:,:), CVA (:,:,:) REAL , ALLOCATABLE , DIMENSION (:,:) :: P , PP !,P2 REAL , ALLOCATABLE , DIMENSION (:,:) :: XMN , HILFUV REAL , ALLOCATABLE , DIMENSION (:) :: LNPMN , LNPMN2 , LNPMN3 REAL , ALLOCATABLE , DIMENSION (:) :: WEIGHT REAL , ALLOCATABLE , DIMENSION (:,:) :: UGVG REAL , ALLOCATABLE , DIMENSION (:,:) :: DG , ETAG REAL , ALLOCATABLE , DIMENSION (:,:) :: GWSAVE REAL , ALLOCATABLE , DIMENSION (:) :: PSG , HILF ! end arrays for Gaussian grid calculations INTEGER , ALLOCATABLE , DIMENSION (:) :: MLAT , MPSURF , MPFLUX , MPORO , MPAR INTEGER , ALLOCATABLE :: GIFAX (:,:) REAL PI , COSB , DAK , DBK , P00 REAL URLAR8 , JMIN1 , LLLAR8 , MAXBMIN1 , PIR8 , DCOSB INTEGER I , J , K , L , IERR , M , LTEST , MK , NGI , NGJ INTEGER MFLUX , MSURF , MORO INTEGER LUNIT , LUNIT2 INTEGER MAXL , MAXB , MLEVEL , LEVOUT , LEVMIN , LEVMAX INTEGER MOMEGA , MOMEGADIFF , MGAUSS , MSMOOTH , MNAUF , META , METADIFF INTEGER MDPDETA , METAPAR REAL RLO0 , RLO1 , RLA0 , RLA1 CHARACTER * 300 MLEVELIST INTEGER MAUF , MANF , IFAX ( 10 ) INTEGER IGRIB ( 1 ), iret , ogrib CHARACTER * 80 FILENAME NAMELIST / NAMGEN / & MAXL , MAXB , & MLEVEL , MLEVELIST , MNAUF , METAPAR , & RLO0 , RLO1 , RLA0 , RLA1 , & MOMEGA , MOMEGADIFF , MGAUSS , MSMOOTH , META , METADIFF ,& MDPDETA LTEST = 1 call posnam ( 4 , 'NAMGEN' ) read ( 4 , NAMGEN ) MAUF = INT ( 36 0. * ( REAL ( MAXL ) - 1. ) / ( RLO1 - RLO0 ) + 0.0001 ) ! PRINT*, MAUF MANF = INT ( REAL ( MAUF ) / 36 0. * ( 36 0. + RLO0 ) + 1.0001 ) IF ( MANF . gt . MAUF ) MANF = MANF - MAUF !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ALLOCATE VARIABLES ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ALLOCATE ( LNPS ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , 1 )) ALLOCATE ( H ( 0 :( MNAUF + 2 ) * ( MNAUF + 3 ) / 2 )) ALLOCATE ( OM ( MAXL , MAXB , MLEVEL )) ALLOCATE ( ETA ( MAXL , MAXB , MLEVEL )) ALLOCATE ( PS ( MAXL , MAXB , 1 ), DPSDT ( MAXL , MAXB , 1 )) ALLOCATE ( WSAVE ( 4 * MAUF + 15 ), WSAVE2 ( 4 * MAUF + 15 )) ALLOCATE ( BREITE ( MAXB ), AK ( MLEVEL + 1 ), BK ( MLEVEL + 1 ), pv ( 2 * mlevel + 2 )) ALLOCATE ( MPAR ( 2 )) ALLOCATE ( COSL ( MAXL ), SINL ( MAXL )) ALLOCATE ( CUA ( 2 , 4 , MLEVEL ), CVA ( 2 , 4 , MLEVEL )) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! GAUSS STUFF ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! IF ( MGAUSS . EQ . 1 ) THEN LUNIT = 0 FILENAME = 'fort.18' call grib_open_file ( LUNIT , TRIM ( FILENAME ), 'r' ) call grib_new_from_file ( LUNIT , igrib ( 1 ), iret ) ! we can close the file call grib_close_file ( LUNIT ) ! call grib_get(igrib(1),'gridType', j) NGJ = MNAUF + 1 ALLOCATE ( GWSAVE ( 8 * NGJ + 15 , NGJ / 2 )) ALLOCATE ( GIFAX ( 10 , NGJ )) ALLOCATE ( GBREITE ( NGJ ), WEIGHT ( NGJ )) ALLOCATE ( MLAT ( NGJ )) ALLOCATE ( P ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , NGJ / 2 )) ALLOCATE ( PP ( NGJ / 2 , 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 )) ALLOCATE ( Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , MAXB )) call grib_get ( igrib ( 1 ), 'numberOfPointsAlongAMeridian' , NGJ ) ! get as a integer call grib_get ( igrib ( 1 ), 'pl' , MLAT ) NGI = SUM ( MLAT ) call grib_get ( igrib ( 1 ), 'numberOfVerticalCoordinateValues' , mk ) IF ( mk / 2 - 1 . ne . MLEVEL ) THEN WRITE ( * , * ) 'FATAL: Number of model levels' , mk , & ' does not agree with' , MLEVEL , ' in namelist' STOP ENDIF call grib_get ( igrib ( 1 ), 'pv' , pv ) AK = pv ( 1 : 1 + MLEVEL ) BK = pv ( 2 + MLEVEL : 2 * MLEVEL + 2 ) ALLOCATE ( LNPMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 )) ALLOCATE ( LNPMN2 ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 )) ALLOCATE ( UGVG ( NGI , 2 * MLEVEL ), HILFUV ( 2 * MAXL , 2 )) ALLOCATE ( DPSDL ( NGI , 1 ), DPSDM ( NGI , 1 )) ALLOCATE ( PSG ( NGI ), HILF ( NGI )) ALLOCATE ( UV ( MAXL , MAXB , 2 * MLEVEL )) ! ALLOCATE (UV2(MAXL, MAXB, 2*MLEVEL)) ALLOCATE ( XMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , 2 * MLEVEL )) ALLOCATE ( DG ( NGI , MLEVEL ), ETAG ( NGI , MLEVEL )) ! Initialisieren Legendretransformation !\tauf das LaT/LON Gitter PI = ACOS ( - 1.D0 ) !$OMP PARALLEL DO DO 20 J = 1 , MAXB BREITE ( J ) = SIN (( RLA1 - ( J - 1.D0 ) * ( RLA1 - RLA0 ) / ( MAXB - 1 )) * PI / 18 0.D0 ) CALL PLGNFA ( MNAUF , BREITE ( J ), Z ( 0 , J )) 20 CONTINUE !$OMP END PARALLEL DO ! Avoid possible Pole problem ! IF(RLA0 .EQ. -90.0) BREITE(MAXB)=sin(-89.99*PI/180.d0) ! IF(RLA1 .EQ. 90.0) BREITE(1)=sin(89.99*PI/180.d0) ! Initialisation of fields for FFT and Legendre transformation !\tto Gaussian grid and back to phase space X1 =- 1.D0 X2 = 1.D0 CALL GAULEG ( X1 , X2 , GBREITE , WEIGHT , NGJ ) !$OMP PARALLEL DO PRIVATE(M) DO J = 1 , NGJ / 2 CALL PLGNFA ( MNAUF , GBREITE ( J ), P (:, J )) DO M = 0 ,( MNAUF + 3 ) * ( MNAUF + 4 ) / 2 PP ( J , M ) = P ( M , J ) ENDDO ENDDO !$OMP END PARALLEL DO ! MPAR(1)=152 FILENAME = 'fort.12' CALL READSPECTRAL ( FILENAME , LNPMN , MNAUF , 1 , MLEVEL ,( / 152 / ), AK , BK ) ! goto 111 CALL SET99 ( WSAVE , IFAX , mauf ) CALL PHGCUT ( LNPMN , PS , WSAVE , IFAX , Z , & MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , 1 ) CALL STATIS ( MAXL , MAXB , 1 , EXP ( PS ), RMS , MW , SIG ) WRITE ( * , '(A12,3F12.4)' ) 'STATISTICS: ' , RMS , MW , SIG DO J = 1 , NGJ / 2 CALL SET99 ( GWSAVE ( 1 , J ), GIFAX ( 1 , J ), MLAT ( J )) ENDDO CALL PHGR213 ( LNPMN , HILF , GWSAVE , GIFAX , P , MLAT , MNAUF , NGI , NGJ , 1 ) PSG = HILF CALL GRPH213 ( LNPMN2 , PSG , GWSAVE , GIFAX , PP , WEIGHT , MLAT , & MNAUF , NGI , NGJ , 1 ) CALL PHGR213 ( LNPMN2 , HILF , GWSAVE , GIFAX , P , MLAT , MNAUF , NGI , NGJ , 1 ) HILF = exp ( PSG ) - exp ( HILF ) CALL STATIS ( NGI , 1 , 1 , HILF , RMS , MW , SIG ) WRITE ( * , '(A12,3F11.4)' ) 'STATISTICS: ' , RMS , MW , SIG PSG = EXP ( PSG ) HILF = PSG CALL STATIS ( NGI , 1 , 1 , HILF , RMS , MW , SIG ) WRITE ( * , '(A12,3F11.4)' ) 'STATISTICS: ' , RMS , MW , SIG 111 FILENAME = 'fort.10' CALL READSPECTRAL ( FILENAME , & XMN , MNAUF , 2 * MLEVEL , MLEVEL ,( / 131 , 132 / ), AK , BK ) !\tTransformieren des Windes auf das Gaussgitter CALL PHGR213 ( XMN , UGVG , GWSAVE , GIFAX , P , MLAT , MNAUF , NGI , NGJ , 2 * MLEVEL ) DO K = 1 , MLEVEL ! North Pole CALL JSPPOLE ( XMN (:, K ), 1 , MNAUF ,. TRUE ., CUA (:,:, K )) CALL JSPPOLE ( XMN (:, MLEVEL + K ), 1 , MNAUF ,. TRUE ., CVA (:,:, K )) ! South Pole CALL JSPPOLE ( XMN (:, K ), - 1 , MNAUF ,. TRUE ., CUA (:, 3 : 4 , K )) CALL JSPPOLE ( XMN (:, MLEVEL + K ), - 1 , MNAUF ,. TRUE ., CVA (:, 3 : 4 , K )) ENDDO DO K = 1 , 2 * MLEVEL IF ( MSMOOTH . ne . 0 ) CALL SPFILTER ( XMN (:, K ), MNAUF , MSMOOTH ) ENDDO CALL PHGCUT ( XMN , UV , WSAVE , IFAX , Z , & MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , 2 * MLEVEL ) 112 FILENAME = 'fort.13' CALL READSPECTRAL ( FILENAME , XMN , MNAUF , MLEVEL , MLEVEL ,( / 155 / ), AK , BK ) !\tTransformieren der horizontalen Divergenz auf das Gaussgitter CALL PHGR213 ( XMN , DG , GWSAVE , GIFAX , P , MLAT , MNAUF , NGI , NGJ , MLEVEL ) !\tBerechnung des Gradienten des Logarithmus des Bodendrucks ! auf dem Gaussgitter CALL PHGRAD ( LNPMN , DPSDL , DPSDM , GWSAVE , GIFAX , P , H , MLAT , MNAUF , NGI , NGJ , 1 ) !\tBerechnung der Vertikalgeschwindigkeit auf dem Gaussgitter CALL CONTGL ( HILF , DPSDL , DPSDM , DG , UGVG (:, 1 ), UGVG (:, MLEVEL + 1 ), & GBREITE , ETAG , MLAT , AK , BK , NGI , NGJ , MLEVEL ) CALL GRPH213 ( XMN , ETAG , GWSAVE , GIFAX , PP , WEIGHT , MLAT , & MNAUF , NGI , NGJ , MLEVEL ) DO K = 1 , MLEVEL IF ( MSMOOTH . ne . 0 ) CALL SPFILTER ( XMN (:, K ), MNAUF , MSMOOTH ) ENDDO CALL PHGCUT ( XMN , ETA , WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , MLEVEL ) CALL GRPH213 ( XMN , HILF , GWSAVE , GIFAX , PP , WEIGHT , MLAT , MNAUF , NGI , NGJ , 1 ) IF ( MSMOOTH . ne . 0 ) CALL SPFILTER ( XMN (:, 1 ), MNAUF , MSMOOTH ) CALL PHGCUT ( XMN , DPSDT , WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , 1 ) ! GOTO 114 CALL STATIS ( MAXL , MAXB , 1 , DPSDT , RMS , MW , SIG ) WRITE ( * , '(A12,3F11.4)' ) 'STATISTICS DPSDT: ' , RMS , MW , SIG IF ( MOMEGADIFF . ne . 0 ) THEN !\tBerechnung von Omega auf dem Gaussgitter CALL OMEGA ( PSG , DPSDL , DPSDM , DG , UGVG (:, 1 ), UGVG (:, MLEVEL + 1 ), & GBREITE , ETAG , MLAT , AK , BK , NGI , NGJ , MLEVEL ) CALL GRPH213 ( XMN , ETAG , GWSAVE , GIFAX , PP , WEIGHT , MLAT ,& MNAUF , NGI , NGJ , MLEVEL ) DO K = 1 , MLEVEL IF ( MSMOOTH . ne . 0 ) CALL SPFILTER ( XMN (:, K ), MNAUF , MSMOOTH ) ENDDO CALL PHGCUT ( XMN , OM , WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , MLEVEL ) ENDIF !MOMEGA CALL GRPH213 ( XMN , PSG , GWSAVE , GIFAX , PP , WEIGHT , MLAT , MNAUF , NGI , NGJ , 1 ) CALL PHGCUT ( XMN , PS , WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , 1 ) CALL STATIS ( MAXL , MAXB , 1 , PS , RMS , MW , SIG ) WRITE ( * , '(A12,3F11.4)' ) 'STATISTICS: ' , RMS , MW , SIG 114 DEALLOCATE ( HILF , PSG , DPSDL , DPSDM , ETAG , DG , LNPMN ) ! ALLOCATE (UV(MAXL, MAXB, 2*MLEVEL)) !\tCALL GRPH213(XMN,UGVG,GWSAVE,GIFAX,PP,WEIGHT,MLAT, ! *MNAUF,NGI,NGJ,2*MLEVEL) ! DO K=1,2*MLEVEL ! IF(MSMOOTH .ne. 0) CALL SPFILTER(XMN(:,K),MNAUF,MSMOOTH) ! ENDDO ! CALL PHGCUT(XMN,UV,WSAVE,IFAX,Z, ! *MNAUF,MNAUF,MAUF,MANF,MAXL,MAXB,2*MLEVEL) DEALLOCATE ( PP , P , UGVG , MLAT , GBREITE , WEIGHT , GWSAVE , XMN ) ! CALL ETAGAUSS(Z,WSAVE ! *,BREITE,UV,ETA,OM,PS, ! *MAUF,MAXB,MAXL,MANF,MNAUF,MLEVEL,MSMOOTH) ELSE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! READING OF PREPARED METEOROLOGICAL FIELDS ! ! ! ! THE FOLLOWING FIELDS ARE EXPECTED: ! ! ! ! UNIT 11: T,U,V (REGULAR GRID) ! ! UNIT 17: Q (REGULAR GRID) ! ! UNIT 13: D (REGULAR GRID) ! ! UNIT 12: LNSP (SPHERICAL HARMONICS) ! ! UNIT 14: SURFACE DATA (REGULAR GRID) ! ! UNIT 16: FLUX DATA (REGULAR GRID) ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ALLOCATE ( MLAT ( MAXB )) MLAT = MAXL ALLOCATE ( Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , 1 )) ALLOCATE ( DPSDL ( MAXL , MAXB ), DPSDM ( MAXL , MAXB )) ALLOCATE ( UV ( MAXL , MAXB , 2 * MLEVEL ), DIV ( MAXL , MAXB , MLEVEL )) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! READING OF SURFACE PRESSURE ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! FILENAME = 'fort.12' CALL READSPECTRAL ( FILENAME , LNPS , MNAUF , 1 , MLEVEL ,( / 152 / ), AK , BK ) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! READING OF U,V ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ! OPENING OF UNBLOCKED GRIB FILE ! FILENAME = 'fort.10' CALL READLATLON ( FILENAME , UV , MAXL , MAXB , 2 * MLEVEL ,( / 131 , 132 / )) PI = ACOS ( - 1.D0 ) DO J = 1 , MAXB BREITE ( J ) = SIN (( RLA1 - ( J - 1.D0 ) * ( RLA1 - RLA0 ) / ( MAXB - 1 )) * PI / 18 0.D0 ) ENDDO ! Avoid possible Pole problem ! IF(RLA0 .EQ. -90.0) BREITE(MAXB)=sin(-89.99*PI/180.d0) ! IF(RLA1 .EQ. 90.0) BREITE(1)=sin(89.99*PI/180.d0) DO K = 1 , 2 * MLEVEL DO J = 1 , MAXB COSB = SQRT ( 1.0 - ( BREITE ( J )) * ( BREITE ( J ))) IF ( RLA0 . EQ . - 9 0.0 . AND . J . EQ . MAXB . OR . & RLA1 . EQ . 9 0.0 . AND . J . EQ . 1 ) then UV (:, J , K ) = UV (:, J , K ) / 1.D6 else UV (:, J , K ) = UV (:, J , K ) * COSB endif ENDDO ENDDO !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! READING OF LNSP on grid ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! For debugging only ! FILENAME='LNSPG_G.20060330.600' ! INQUIRE(FILE=FILENAME,EXIST=EX) ! CALL READLATLON(FILENAME,QA, ! *MAXL,MAXB,1,1,(/152/)) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! READING OF DIVERGENCE ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! IF ( META . EQ . 0 . OR . METADIFF . EQ . 1 ) THEN FILENAME = 'fort.13' CALL READLATLON ( FILENAME , DIV , MAXL , MAXB , MLEVEL ,( / 155 / )) ENDIF !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! CALCULATION OF ETAPOINT --> TOTAL TIME DERIVATIVE OF ! ! ECMWF VERTICAL COORDINATE ETA MULTIPLIED BY DERIVATIVE ! ! OF PRESSURE IN ETA DIRECTION ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Initialisieren Legendretransformation !\tauf das LaT/LON Gitter ! Without Gaussian grid calculation Legendre Polynomials are calculated ! only for one latitude to save space DO J = 1 , MAXB CALL PLGNFA ( MNAUF , BREITE ( J ), Z ( 0 , 1 )) CALL PHGCUT ( LNPS , PS (:, J , 1 ), WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , 1 , 1 ) IF ( META . EQ . 0 . or . METADIFF . EQ . 1 ) THEN CALL PHGRACUT ( LNPS , DPSDL (:, J ), DPSDM (:, J ), WSAVE , IFAX , Z , H , MAUF , & MNAUF , MAXL , 1 , MANF , 1 ) ENDIF ENDDO PS = EXP ( PS ) ! For debugging only CALL STATIS ( MAXL , MAXB , 1 , PS (:,:, 1 ), RMS , MW , SIG ) WRITE ( * , '(A12,3F11.4)' ) 'STATISTICS: ' , RMS , MW , SIG IF ( MOMEGADIFF . ne . 0 ) THEN CALL OMEGA ( PS , DPSDL , DPSDM , DIV , UV (:,:, 1 ), UV (:,:, MLEVEL + 1 ), & BREITE , OM , MLAT , AK , BK , MAXL * MAXB , MAXB , MLEVEL ) ENDIF IF ( META . EQ . 0 . OR . METADIFF . ne . 0 ) THEN DPSDT = PS CALL CONTGL ( DPSDT , DPSDL , DPSDM , DIV , UV (:,:, 1 ), UV (:,:, MLEVEL + 1 ), & BREITE , ETA , MLAT , AK , BK , MAXL * MAXB , MAXB , MLEVEL ) ENDIF ENDIF ! MGAUSS ! CREATE FILE VERTICAL.EC NEEDED BY POP MODEL open ( 21 , file = 'VERTICAL.EC' ) write ( 21 , '(a)' ) write ( 21 , '(a)' ) 'VERTICAL DISCRETIZATION OF POP MODEL' write ( 21 , '(a)' ) write ( 21 , '(i3,a)' ) MLEVEL , ' number of layers' write ( 21 , '(a)' ) write ( 21 , '(a)' ) '* A(NLEV+1)' write ( 21 , '(a)' ) do 205 i = 1 , MLEVEL + 1 205 write ( 21 , '(f18.12)' ) AK ( I ) write ( 21 , '(a)' ) write ( 21 , '(a)' ) '* B(NLEV+1)' write ( 21 , '(a)' ) do 210 i = 1 , MLEVEL + 1 210 write ( 21 , '(f18.12)' ) BK ( I ) close ( 21 ) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! READING OF OMEGA ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! IF ( MOMEGA . NE . 0 ) THEN ALLOCATE ( OMR ( MAXL , MAXB , MLEVEL )) FILENAME = 'fort.19' CALL READLATLON ( FILENAME , OMR , MAXL , MAXB , MLEVEL ,( / 135 / )) IF ( MOMEGADIFF . NE . 0 ) THEN DO K = 1 , MLEVEL CALL STATIS ( MAXL , MAXB , 1 , ETA (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F11.4)' ) ' ETA: ' , K , RMS , MW , SIG CALL STATIS ( MAXL , MAXB , 1 , OMR (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F11.4)' ) ' OMEGA: ' , K , RMS , MW , SIG CALL STATIS ( MAXL , MAXB , 1 , OM (:,:, K ) - OMR (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F11.4)' ) 'OMEGA DIFF: ' , K , RMS , MW , SIG ENDDO ENDIF ENDIF !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! READING OF ETA ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! IF ( META . NE . 0 ) THEN ALLOCATE ( ETAR ( MAXL , MAXB , MLEVEL )) P00 = 10132 5. FILENAME = 'fort.21' CALL READLATLON ( FILENAME , ETAR , MAXL , MAXB , MLEVEL ,( / 77 / )) if ( MDPDETA . EQ . 1 ) THEN DO K = 1 , MLEVEL DAK = AK ( K + 1 ) - AK ( K ) DBK = BK ( K + 1 ) - BK ( K ) DO J = 1 , MAXB DO I = 1 , MAXL ETAR ( I , J , K ) = 2 * ETAR ( I , J , K ) * PS ( I , J , 1 ) * ( DAK / PS ( I , J , 1 ) + DBK ) / & ( DAK / P00 + DBK ) IF ( K . GT . 1 ) ETAR ( I , J , K ) = ETAR ( I , J , K ) - ETAR ( I , J , K - 1 ) ENDDO ENDDO ENDDO ENDIF IF ( METADIFF . NE . 0 ) THEN DO K = 1 , MLEVEL CALL STATIS ( MAXL , MAXB , 1 , ETA (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F11.4)' ) ' ETA: ' , K , RMS , MW , SIG CALL STATIS ( MAXL , MAXB , 1 , ETAR (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F11.4)' ) ' ETAR: ' , K , RMS , MW , SIG CALL STATIS ( MAXL , MAXB , 1 , ETA (:,:, K ) - ETAR (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F11.4)' ) 'ETA DIFF: ' , K , RMS , MW , SIG ENDDO DO K = 1 , MLEVEL WRITE ( * , '(I3,2F11.4)' ) K , ETA ( 1 , MAXB / 2 , K ), ETAR ( 1 , MAXB / 2 , K ) ENDDO ELSE ETA = ETAR ENDIF ENDIF ALLOCATE ( T ( MAXL , MAXB , MLEVEL )) ALLOCATE ( QA ( MAXL , MAXB , MLEVEL )) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! READING OF T ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ! OPENING OF UNBLOCKED GRIB FILE ! FILENAME = 'fort.11' CALL READLATLON ( FILENAME , T , MAXL , MAXB , MLEVEL ,( / 130 / )) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! READING OF SPECIFIC HUMIDITY ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! FILENAME = 'fort.17' CALL READLATLON ( FILENAME , QA , MAXL , MAXB , MLEVEL ,( / 133 / )) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! TEST READING OF UV from MARS (debug only) ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! FILENAME='fort.22' ! CALL READLATLON(FILENAME,UV2,MAXL,MAXB,2*MLEVEL,2,(/131,132/)) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! WRITE MODEL LEVEL DATA TO fort.15 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Calculation of etadot in CONTGL needed scaled winds (ucosphi,vcosphi) ! Now we are transforming back to the usual winds. DO K = 1 , MLEVEL DO J = 2 , MAXB - 1 COSB = SQRT ( 1.0 - ( BREITE ( J )) * ( BREITE ( J ))) UV (:, J , K ) = UV (:, J , K ) / COSB UV (:, J , MLEVEL + K ) = UV (:, J , MLEVEL + K ) / COSB ENDDO ! special treatment for poles, if necessary. DO J = 1 , MAXB , MAXB - 1 COSB = SQRT ( 1.0 - ( BREITE ( J )) * ( BREITE ( J ))) if ( 1.0 - BREITE ( J ) * BREITE ( J ) . gt . 0 . OR . MGAUSS . NE . 1 ) then IF ( RLA0 . EQ . - 9 0.0 . AND . J . EQ . MAXB . OR . & RLA1 . EQ . 9 0.0 . AND . J . EQ . 1 ) then UV (:, J , K ) = UV (:, J , K ) * 1.D6 UV (:, J , MLEVEL + K ) = UV (:, J , MLEVEL + K ) * 1.D6 else UV (:, J , K ) = UV (:, J , K ) / COSB UV (:, J , MLEVEL + K ) = UV (:, J , MLEVEL + K ) / COSB endif else HILFUV ( 5 : MAXL ,:) = 0. HILFUV ( 1 : 2 ,:) = 0. IF ( J . EQ . MAXB ) THEN ! Suedpol HILFUV ( 3 : 4 , 1 ) = CUA (:, 4 , K ) HILFUV ( 3 : 4 , 2 ) = CVA (:, 4 , K ) ELSE ! Nordpol HILFUV ( 3 : 4 , 1 ) = CUA (:, 2 , K ) HILFUV ( 3 : 4 , 2 ) = CVA (:, 2 , K ) ENDIF CALL RFOURTR ( HILFUV (:, 1 ), WSAVE , IFAX , MAXL / 2 - 1 , MAXL , - 1 ) DO I = 0 , MAXL - 1 IF ( MANF + I . LE . MAXL ) THEN UV ( I + 1 , J , K ) = HILFUV ( MANF + I , 1 ) ELSE UV ( I + 1 , J , K ) = HILFUV ( MANF - MAXL + I , 1 ) ENDIF ENDDO CALL RFOURTR ( HILFUV (:, 2 ), WSAVE , IFAX , MAXL / 2 - 1 , MAXL , - 1 ) DO I = 0 , MAXL - 1 IF ( MANF + I . LE . MAXL ) THEN UV ( I + 1 , J , MLEVEL + K ) = HILFUV ( MANF + I , 2 ) ELSE UV ( I + 1 , J , MLEVEL + K ) = HILFUV ( MANF - MAXL + I , 2 ) ENDIF ENDDO endif ENDDO ENDDO ! open output file call grib_open_file ( LUNIT , 'fort.15' , 'w' ) ! we use temperature on lat/lon on model levels as template for model level data LUNIT2 = 0 call grib_open_file ( LUNIT2 , 'fort.11' , 'r' ) call grib_new_from_file ( LUNIT2 , igrib ( 1 ), iret ) call grib_close_file ( LUNIT2 ) CALL WRITELATLON ( LUNIT , igrib ( 1 ), ogrib , UV (:,:, 1 ), MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 131 / )) CALL WRITELATLON ( LUNIT , igrib ( 1 ), ogrib , UV (:,:, MLEVEL + 1 ), MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 132 / )) IF ( MDPDETA . ne . 1 . AND . MGAUSS . EQ . 0 . and . META . eq . 1 ) THEN CALL WRITELATLON ( LUNIT , igrib ( 1 ), ogrib , ETA , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 77 / )) ELSE CALL WRITELATLON ( LUNIT , igrib ( 1 ), ogrib , ETA , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / METAPAR / )) ENDIF CALL WRITELATLON ( LUNIT , igrib ( 1 ), ogrib , T , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 130 / )) CALL WRITELATLON ( LUNIT , igrib ( 1 ), ogrib , PS , MAXL , MAXB , 1 , '1' , 1 ,( / 134 / )) call grib_set ( igrib ( 1 ), \"levelType\" , \"ml\" ) call grib_set ( igrib ( 1 ), \"typeOfLevel\" , \"hybrid\" ) CALL WRITELATLON ( LUNIT , igrib ( 1 ), ogrib , QA , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 133 / )) IF ( MOMEGA . EQ . 1 ) THEN call grib_open_file ( LUNIT2 , 'fort.25' , 'w' ) CALL WRITELATLON ( LUNIT2 , igrib ( 1 ), ogrib , OMR , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 135 / )) IF ( MOMEGADIFF . EQ . 1 ) THEN CALL WRITELATLON ( LUNIT2 , igrib ( 1 ), ogrib , DPSDT , MAXL , MAXB , 1 , '1' , 1 ,( / 158 / )) OM = OM - OMR CALL WRITELATLON ( LUNIT2 , igrib ( 1 ), ogrib , OM , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 001 / )) call grib_close_file ( LUNIT2 ) ENDIF ENDIF IF ( META . EQ . 1 . and . METADIFF . EQ . 1 ) THEN call grib_open_file ( LUNIT2 , 'fort.26' , 'w' ) CALL WRITELATLON ( LUNIT2 , igrib ( 1 ), ogrib , ETAR , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 135 / )) ! IF(MOMEGADIFF .EQ. 1) THEN CALL WRITELATLON ( LUNIT2 , igrib ( 1 ), ogrib , DPSDT , MAXL , MAXB , 1 , '1' , 1 ,( / 158 / )) OM = ETA - ETAR CALL WRITELATLON ( LUNIT2 , igrib ( 1 ), ogrib , OM , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 001 / )) call grib_close_file ( LUNIT2 ) ! ENDIF ENDIF call grib_close_file ( LUNIT ) 2000 STOP 'SUCCESSFULLY FINISHED CONVERT_PRE: CONGRATULATIONS' 3000 STOP 'ROUTINE CONVERT_PRE: ERROR' 9999 stop 'ROUTINE CONVERT_PRE: ERROR' END !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! INTEGER FUNCTION IA ( FIELD1 , NI , NJ , NK , G ) IMPLICIT NONE INTEGER NI , NJ , NK , I , J , K REAL FIELD1 ( NI , NJ , NK ) REAL G REAL RMIN , RMAX , XMAX , A , A1 , A2 RMAX = FIELD1 ( 1 , 1 , 1 ) RMIN = FIELD1 ( 1 , 1 , 1 ) DO 100 K = 1 , NK DO 100 J = 1 , NJ DO 100 I = 1 , NI IF ( FIELD1 ( I , J , K ). GT . RMAX ) RMAX = FIELD1 ( I , J , K ) IF ( FIELD1 ( I , J , K ). LT . RMIN ) RMIN = FIELD1 ( I , J , K ) 100 CONTINUE IF ( ABS ( RMIN ). GT . RMAX . OR . ABS ( RMIN ). EQ . RMAX ) THEN XMAX = ABS ( RMIN ) ELSE XMAX = RMAX ENDIF IF ( XMAX . EQ . 0 ) THEN IA = 0 RETURN ENDIF A1 = LOG10 (( G / 1 0.d0 ) / XMAX ) A2 = LOG10 ( G / XMAX ) IF ( A1 . gt . A2 ) THEN A = A2 ELSE A = A1 ENDIF IF ( A . GT . 0 ) IA = INT ( A ) IF ( A . LT . 0 ) IA = INT ( A - 1.0 ) RETURN END SUBROUTINE STATIS ( NI , NJ , NK , PHI , RMS , MW , SIG ) IMPLICIT REAL ( A - H , O - Z ) REAL PHI ( NI , NJ , NK ), SIG , MW , RMS , P N = NI * NJ * NK RMS = 0. MW = 0. DO 10 I = 1 , NI DO 10 J = 1 , NJ DO 10 K = 1 , NK P = PHI ( I , J , K ) RMS = RMS + P * P MW = MW + P 10 CONTINUE RMS = SQRT ( RMS / N ) MW = MW / N IF ( RMS * RMS - MW * MW . LT . 0. ) THEN SIG = 0.0 ELSE SIG = SQRT ( RMS * RMS - MW * MW ) ENDIF RETURN END","tags":"","loc":"sourcefile/preconvert.f90.html","title":"preconvert.f90 – Flex_extract: Calculation of etadot"},{"text":"function IA(FIELD1, NI, NJ, NK, G) Arguments Type Intent Optional Attributes Name real :: FIELD1 (NI,NJ,NK) integer :: NI integer :: NJ integer :: NK real :: G Return Value integer","tags":"","loc":"proc/ia.html","title":"IA – Flex_extract: Calculation of etadot"},{"text":"subroutine STATIS(NI, NJ, NK, PHI, RMS, MW, SIG) Arguments Type Intent Optional Attributes Name integer :: NI integer :: NJ integer :: NK real :: PHI (NI,NJ,NK) real :: RMS real :: MW real :: SIG Called By proc~~statis~~CalledByGraph proc~statis STATIS program~preconvert PRECONVERT program~preconvert->proc~statis Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module.","tags":"","loc":"proc/statis.html","title":"STATIS – Flex_extract: Calculation of etadot"},{"text":"Used By module~~phtogr~~UsedByGraph module~phtogr PHTOGR module~grtoph GRTOPH module~phtogr->module~grtoph program~preconvert PRECONVERT module~phtogr->program~preconvert module~grtoph->program~preconvert Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a parent (sub)module to the submodule which is\n descended from it. Dashed arrows point from a module being used to the\n module or program unit using it.","tags":"","loc":"module/phtogr.html","title":"PHTOGR – Flex_extract: Calculation of etadot"},{"text":"Uses: PHTOGR module~~grtoph~~UsesGraph module~grtoph GRTOPH module~phtogr PHTOGR module~phtogr->module~grtoph Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a parent (sub)module to the submodule which is\n descended from it. Dashed arrows point from a module being used to the\n module or program unit using it. Used By module~~grtoph~~UsedByGraph module~grtoph GRTOPH program~preconvert PRECONVERT module~grtoph->program~preconvert Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a parent (sub)module to the submodule which is\n descended from it. Dashed arrows point from a module being used to the\n module or program unit using it.","tags":"","loc":"module/grtoph.html","title":"GRTOPH – Flex_extract: Calculation of etadot"},{"text":"Used By module~~rwgrib2~~UsedByGraph module~rwgrib2 RWGRIB2 program~preconvert PRECONVERT module~rwgrib2->program~preconvert Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a parent (sub)module to the submodule which is\n descended from it. Dashed arrows point from a module being used to the\n module or program unit using it.","tags":"","loc":"module/rwgrib2.html","title":"RWGRIB2 – Flex_extract: Calculation of etadot"},{"text":"Uses: PHTOGR GRTOPH FTRAFO RWGRIB2 GRIB_API program~~preconvert~~UsesGraph program~preconvert PRECONVERT module~rwgrib2 RWGRIB2 module~rwgrib2->program~preconvert module~grtoph GRTOPH module~grtoph->program~preconvert GRIB_API GRIB_API GRIB_API->program~preconvert module~phtogr PHTOGR module~phtogr->program~preconvert module~phtogr->module~grtoph FTRAFO FTRAFO FTRAFO->program~preconvert Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a parent (sub)module to the submodule which is\n descended from it. Dashed arrows point from a module being used to the\n module or program unit using it. Calls program~~preconvert~~CallsGraph program~preconvert PRECONVERT phgracut phgracut program~preconvert->phgracut v v program~preconvert->v mars mars program~preconvert->mars d d program~preconvert->d q q program~preconvert->q phgrad phgrad program~preconvert->phgrad posnam posnam program~preconvert->posnam grib_get grib_get program~preconvert->grib_get grib_set grib_set program~preconvert->grib_set grib_new_from_file grib_new_from_file program~preconvert->grib_new_from_file lnsp lnsp program~preconvert->lnsp grib_open_file grib_open_file program~preconvert->grib_open_file omega omega program~preconvert->omega file file program~preconvert->file winds winds program~preconvert->winds jsppole jsppole program~preconvert->jsppole proc~statis STATIS program~preconvert->proc~statis spfilter spfilter program~preconvert->spfilter contgl contgl program~preconvert->contgl grib_close_file grib_close_file program~preconvert->grib_close_file set99 set99 program~preconvert->set99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module.","tags":"","loc":"program/preconvert.html","title":"PRECONVERT – Flex_extract: Calculation of etadot"}]} \ No newline at end of file diff --git a/Documentation/FORD/V5/Doc_original/module/grtoph.html b/Documentation/FORD/V5/Doc_original/module/grtoph.html deleted file mode 100644 index dd496bf8dfafa2a718a331bbcd7a6a5416a4653b..0000000000000000000000000000000000000000 --- a/Documentation/FORD/V5/Doc_original/module/grtoph.html +++ /dev/null @@ -1,532 +0,0 @@ -<!DOCTYPE html> -<html lang="en"> - <head> - <meta charset="utf-8"> - <meta http-equiv="X-UA-Compatible" content="IE=edge"> - <meta name="viewport" content="width=device-width, initial-scale=1"> - - <meta name="description" content="Calculation of vertical velocity for FLEXPART"> - - <meta name="author" content="Leopold Haimberger" > - <link rel="icon" href="../favicon.png"> - - <title>GRTOPH – Flex_extract: Calculation of etadot</title> - - <link href="../css/bootstrap.min.css" rel="stylesheet"> - <link href="../css/pygments.css" rel="stylesheet"> - <link href="../css/font-awesome.min.css" rel="stylesheet"> - <link href="../css/local.css" rel="stylesheet"> - - - <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> - <!--[if lt IE 9]> - <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> - <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> - <![endif]--> - - <script src="../js/jquery-2.1.3.min.js"></script> - <script src="../js/svg-pan-zoom.min.js"></script> - - - <script src="../tipuesearch/tipuesearch_content.js"></script> - <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> - <script src="../tipuesearch/tipuesearch_set.js"></script> - <script src="../tipuesearch/tipuesearch.js"></script> - - - </head> - - <body> - - <!-- Fixed navbar --> - <nav class="navbar navbar-inverse navbar-fixed-top"> - <div class="container"> - <div class="navbar-header"> - <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> - <span class="sr-only">Toggle navigation</span> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> - </div> - <div id="navbar" class="navbar-collapse collapse"> - <ul class="nav navbar-nav"> - - <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> - <a href="#" class="dropdown-toggle" - data-toggle="dropdown" role="button" - aria-haspopup="true" - aria-expanded="false">Contents <span class="caret"></span></a> - <ul class="dropdown-menu"> - - <li><a href="../lists/files.html">Source Files</a></li> - - - <li><a href="../lists/modules.html">Modules</a></li> - - - - <li><a href="../lists/procedures.html">Procedures</a></li> - - - - <li><a href="../program/preconvert.html">Program</a></li> - - </ul> - </li> - -<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> - - -<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> - - - -<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> - - - -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> - - </ul> - - <form action="../search.html" class="navbar-form navbar-right" role="search"> - <div class="form-group"> - <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> - </div> -<!-- - <button type="submit" class="btn btn-default">Submit</button> ---> - </form> - - </div><!--/.nav-collapse --> - </div> - </nav> - - <div class="container"> - - - <div class="row"> - <h1>GRTOPH - <small>Module</small> - - </h1> - -<div class="row"> - <div class="col-lg-12"> -<div class="well well-sm"> - <ul class="list-inline" style="margin-bottom:0px;display:inline"> - - - - - - - <li><i class="fa fa-list-ol"></i> - <a data-toggle="tooltip" - data-placement="bottom" data-html="true" - title="18.6% of total for modules and submodules.">136 statements</a> - </li> - - - <li><i class="fa fa-code"></i><a href="../src/grphreal.f"> Source File</a></li> - - </ul> - <ol class="breadcrumb in-well text-right"> - - <li><a href='../sourcefile/grphreal.f.html'>grphreal.f</a></li> - - <li class="active">GRTOPH</li> - </ol> -</div> -</div> -</div> -<script> - $(function () { - $('[data-toggle="tooltip"]').tooltip() - }) -</script> - - </div> - - <div class="row"> - <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg"> - -<div id="sidebar"> - - - - - - - - - - - - - - - - - - - - - - - <hr> - - -<div class="panel panel-default"> - <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#allmods-0">All Modules</a></h3></div> - <div id="allmods-0" class="panel-collapse collapse"> - <div class="list-group"> - - <a class="list-group-item" href="../module/grtoph.html">GRTOPH</a> - - <a class="list-group-item" href="../module/phtogr.html">PHTOGR</a> - - <a class="list-group-item" href="../module/rwgrib2.html">RWGRIB2</a> - - </div> - </div> -</div> - - -</div> - - </div> - - <div class="col-md-9" id='text'> - - - - <ul class="list-inline"> - <li><h4>Uses:</h4></li> - - <li><a href='../module/phtogr.html'>PHTOGR</a></li> - - </ul> - - <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<!-- Generated by graphviz version 2.38.0 (20140413.2041) - --> -<!-- Title: module~~grtoph~~UsesGraph Pages: 1 --> -<svg id="modulegrtophUsesGraph" width="160pt" height="32pt" - viewBox="0.00 0.00 160.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> -<g id="module~~grtoph~~UsesGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> -<title>module~~grtoph~~UsesGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-28 156,-28 156,4 -4,4"/> -<!-- module~grtoph --> -<g id="module~~grtoph~~UsesGraph_node1" class="node"><title>module~grtoph</title> -<polygon fill="none" stroke="black" points="152,-24 94,-24 94,-0 152,-0 152,-24"/> -<text text-anchor="middle" x="123" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">GRTOPH</text> -</g> -<!-- module~phtogr --> -<g id="module~~grtoph~~UsesGraph_node2" class="node"><title>module~phtogr</title> -<g id="a_module~~grtoph~~UsesGraph_node2"><a xlink:href="../module/phtogr.html" xlink:title="PHTOGR"> -<polygon fill="#337ab7" stroke="#337ab7" points="58,-24 3.55271e-15,-24 3.55271e-15,-0 58,-0 58,-24"/> -<text text-anchor="middle" x="29" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHTOGR</text> -</a> -</g> -</g> -<!-- module~phtogr->module~grtoph --> -<g id="module~~grtoph~~UsesGraph_edge1" class="edge"><title>module~phtogr->module~grtoph</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M58.1029,-12C66.1425,-12 75.0461,-12 83.5904,-12"/> -<polygon fill="#000000" stroke="#000000" points="83.7522,-15.5001 93.7521,-12 83.7521,-8.5001 83.7522,-15.5001"/> -</g> -</g> -</svg> -</div> - <div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div> - <div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"> - <div class="modal-dialog modal-lg" role="document"> - <div class="modal-content"> - <div class="modal-header"> - <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> - <h4 class="modal-title" id="-graph-help-label">Graph Key</h4> - </div> - <div class="modal-body"> - - <p>Nodes of different colours represent the following: </p> - <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<!-- Generated by graphviz version 2.38.0 (20140413.2041) - --> -<!-- Title: Graph Key Pages: 1 --> -<svg width="490pt" height="32pt" - viewBox="0.00 0.00 489.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> -<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> -<title>Graph Key</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-28 485.5,-28 485.5,4 -4,4"/> -<!-- Module --> -<g id="node1" class="node"><title>Module</title> -<polygon fill="#337ab7" stroke="#337ab7" points="54,-24 0,-24 0,-0 54,-0 54,-24"/> -<text text-anchor="middle" x="27" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Module</text> -</g> -<!-- Submodule --> -<g id="node2" class="node"><title>Submodule</title> -<polygon fill="#5bc0de" stroke="#5bc0de" points="139.5,-24 72.5,-24 72.5,-0 139.5,-0 139.5,-24"/> -<text text-anchor="middle" x="106" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Submodule</text> -</g> -<!-- Subroutine --> -<g id="node3" class="node"><title>Subroutine</title> -<polygon fill="#d9534f" stroke="#d9534f" points="222,-24 158,-24 158,-0 222,-0 222,-24"/> -<text text-anchor="middle" x="190" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> -</g> -<!-- Function --> -<g id="node4" class="node"><title>Function</title> -<polygon fill="#d94e8f" stroke="#d94e8f" points="294,-24 240,-24 240,-0 294,-0 294,-24"/> -<text text-anchor="middle" x="267" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> -</g> -<!-- Program --> -<g id="node5" class="node"><title>Program</title> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="366,-24 312,-24 312,-0 366,-0 366,-24"/> -<text text-anchor="middle" x="339" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> -</g> -<!-- This Page's Entity --> -<g id="node6" class="node"><title>This Page's Entity</title> -<polygon fill="none" stroke="black" points="481.5,-24 384.5,-24 384.5,-0 481.5,-0 481.5,-24"/> -<text text-anchor="middle" x="433" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> -</g> -</g> -</svg> - - - <p>Solid arrows point from a parent (sub)module to the submodule which is - descended from it. Dashed arrows point from a module being used to the - module or program unit using it. - </p> - - </div> - </div> - </div> - </div> - - - - - - - - <h3>Used By</h3> - - <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<!-- Generated by graphviz version 2.38.0 (20140413.2041) - --> -<!-- Title: module~~grtoph~~UsedByGraph Pages: 1 --> -<svg id="modulegrtophUsedByGraph" width="187pt" height="32pt" - viewBox="0.00 0.00 187.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> -<g id="module~~grtoph~~UsedByGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> -<title>module~~grtoph~~UsedByGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-28 183,-28 183,4 -4,4"/> -<!-- module~grtoph --> -<g id="module~~grtoph~~UsedByGraph_node1" class="node"><title>module~grtoph</title> -<polygon fill="none" stroke="black" points="58,-24 3.55271e-15,-24 3.55271e-15,-0 58,-0 58,-24"/> -<text text-anchor="middle" x="29" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">GRTOPH</text> -</g> -<!-- program~preconvert --> -<g id="module~~grtoph~~UsedByGraph_node2" class="node"><title>program~preconvert</title> -<g id="a_module~~grtoph~~UsedByGraph_node2"><a xlink:href="../program/preconvert.html" xlink:title="PRECONVERT"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="179,-24 94,-24 94,-0 179,-0 179,-24"/> -<text text-anchor="middle" x="136.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> -</a> -</g> -</g> -<!-- module~grtoph->program~preconvert --> -<g id="module~~grtoph~~UsedByGraph_edge1" class="edge"><title>module~grtoph->program~preconvert</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M58.2721,-12C66.0808,-12 74.8092,-12 83.5099,-12"/> -<polygon fill="#000000" stroke="#000000" points="83.6545,-15.5001 93.6544,-12 83.6544,-8.5001 83.6545,-15.5001"/> -</g> -</g> -</svg> -</div> - <div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div> - <div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"> - <div class="modal-dialog modal-lg" role="document"> - <div class="modal-content"> - <div class="modal-header"> - <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> - <h4 class="modal-title" id="-graph-help-label">Graph Key</h4> - </div> - <div class="modal-body"> - - <p>Nodes of different colours represent the following: </p> - <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<!-- Generated by graphviz version 2.38.0 (20140413.2041) - --> -<!-- Title: Graph Key Pages: 1 --> -<svg width="490pt" height="32pt" - viewBox="0.00 0.00 489.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> -<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> -<title>Graph Key</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-28 485.5,-28 485.5,4 -4,4"/> -<!-- Module --> -<g id="node1" class="node"><title>Module</title> -<polygon fill="#337ab7" stroke="#337ab7" points="54,-24 0,-24 0,-0 54,-0 54,-24"/> -<text text-anchor="middle" x="27" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Module</text> -</g> -<!-- Submodule --> -<g id="node2" class="node"><title>Submodule</title> -<polygon fill="#5bc0de" stroke="#5bc0de" points="139.5,-24 72.5,-24 72.5,-0 139.5,-0 139.5,-24"/> -<text text-anchor="middle" x="106" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Submodule</text> -</g> -<!-- Subroutine --> -<g id="node3" class="node"><title>Subroutine</title> -<polygon fill="#d9534f" stroke="#d9534f" points="222,-24 158,-24 158,-0 222,-0 222,-24"/> -<text text-anchor="middle" x="190" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> -</g> -<!-- Function --> -<g id="node4" class="node"><title>Function</title> -<polygon fill="#d94e8f" stroke="#d94e8f" points="294,-24 240,-24 240,-0 294,-0 294,-24"/> -<text text-anchor="middle" x="267" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> -</g> -<!-- Program --> -<g id="node5" class="node"><title>Program</title> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="366,-24 312,-24 312,-0 366,-0 366,-24"/> -<text text-anchor="middle" x="339" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> -</g> -<!-- This Page's Entity --> -<g id="node6" class="node"><title>This Page's Entity</title> -<polygon fill="none" stroke="black" points="481.5,-24 384.5,-24 384.5,-0 481.5,-0 481.5,-24"/> -<text text-anchor="middle" x="433" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> -</g> -</g> -</svg> - - - <p>Solid arrows point from a parent (sub)module to the submodule which is - descended from it. Dashed arrows point from a module being used to the - module or program unit using it. - </p> - - </div> - </div> - </div> - </div> - - <br> - - - <section class="visible-xs visible-sm hidden-md"> - - - - - - - - - - - - - - - - - - - - - - - </section> - <br class="visible-xs visible-sm hidden-md"> - - - - - - - - - - - - - - - - - - - </div> - </div> - - <section class="visible-xs visible-sm hidden-md"> - <hr> - - -<div class="panel panel-default"> - <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#allmods-1">All Modules</a></h3></div> - <div id="allmods-1" class="panel-collapse collapse"> - <div class="list-group"> - - <a class="list-group-item" href="../module/grtoph.html">GRTOPH</a> - - <a class="list-group-item" href="../module/phtogr.html">PHTOGR</a> - - <a class="list-group-item" href="../module/rwgrib2.html">RWGRIB2</a> - - </div> - </div> -</div> - - - </section> - - <hr> - </div> <!-- /container --> - <footer> - <div class="container"> - <div class="row"> - <div class="col-xs-6 col-md-4"><p>© 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> - <div class="col-xs-6 col-md-4 col-md-push-4"> - <p class="text-right"> - Documentation generated by - <a href="https://github.com/cmacmackin/ford">FORD</a> - - </p> - </div> - <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> - </div> - <br> - </div> <!-- /container --> - </footer> - - <!-- Bootstrap core JavaScript - ================================================== --> - <!-- Placed at the end of the document so the pages load faster --> -<!-- - <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> ---> - <script src="../js/bootstrap.min.js"></script> - <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> - <script src="../js/ie10-viewport-bug-workaround.js"></script> - - <!-- MathJax JavaScript - ================================================== --> - <!-- Placed at the end of the document so the pages load faster --> - <script type="text/x-mathjax-config"> - MathJax.Hub.Config({ - TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, - jax: ['input/TeX','input/MathML','output/HTML-CSS'], - extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'], - 'HTML-CSS': { - styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: '#000000 ! important'} } - } - }); - </script> - <!-- <script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> --> - </body> -</html> \ No newline at end of file diff --git a/Documentation/FORD/V5/Doc_original/program/preconvert.html b/Documentation/FORD/V5/Doc_original/program/preconvert.html deleted file mode 100644 index 103704a19955cf56bbf6bd336871b67a724832a4..0000000000000000000000000000000000000000 --- a/Documentation/FORD/V5/Doc_original/program/preconvert.html +++ /dev/null @@ -1,784 +0,0 @@ -<!DOCTYPE html> -<html lang="en"> - <head> - <meta charset="utf-8"> - <meta http-equiv="X-UA-Compatible" content="IE=edge"> - <meta name="viewport" content="width=device-width, initial-scale=1"> - - <meta name="description" content="Calculation of vertical velocity for FLEXPART"> - - <meta name="author" content="Leopold Haimberger" > - <link rel="icon" href="../favicon.png"> - - <title>PRECONVERT – Flex_extract: Calculation of etadot</title> - - <link href="../css/bootstrap.min.css" rel="stylesheet"> - <link href="../css/pygments.css" rel="stylesheet"> - <link href="../css/font-awesome.min.css" rel="stylesheet"> - <link href="../css/local.css" rel="stylesheet"> - - - <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> - <!--[if lt IE 9]> - <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> - <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> - <![endif]--> - - <script src="../js/jquery-2.1.3.min.js"></script> - <script src="../js/svg-pan-zoom.min.js"></script> - - - <script src="../tipuesearch/tipuesearch_content.js"></script> - <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> - <script src="../tipuesearch/tipuesearch_set.js"></script> - <script src="../tipuesearch/tipuesearch.js"></script> - - - </head> - - <body> - - <!-- Fixed navbar --> - <nav class="navbar navbar-inverse navbar-fixed-top"> - <div class="container"> - <div class="navbar-header"> - <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> - <span class="sr-only">Toggle navigation</span> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> - </div> - <div id="navbar" class="navbar-collapse collapse"> - <ul class="nav navbar-nav"> - - <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> - <a href="#" class="dropdown-toggle" - data-toggle="dropdown" role="button" - aria-haspopup="true" - aria-expanded="false">Contents <span class="caret"></span></a> - <ul class="dropdown-menu"> - - <li><a href="../lists/files.html">Source Files</a></li> - - - <li><a href="../lists/modules.html">Modules</a></li> - - - - <li><a href="../lists/procedures.html">Procedures</a></li> - - - - <li><a href="../program/preconvert.html">Program</a></li> - - </ul> - </li> - -<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> - - -<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> - - - -<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> - - - -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> - - </ul> - - <form action="../search.html" class="navbar-form navbar-right" role="search"> - <div class="form-group"> - <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> - </div> -<!-- - <button type="submit" class="btn btn-default">Submit</button> ---> - </form> - - </div><!--/.nav-collapse --> - </div> - </nav> - - <div class="container"> - - - <div class="row"> - <h1>PRECONVERT - <small>Program</small> - - </h1> - -<div class="row"> - <div class="col-lg-12"> -<div class="well well-sm"> - <ul class="list-inline" style="margin-bottom:0px;display:inline"> - - - - - - - <li><i class="fa fa-list-ol"></i> - <a data-toggle="tooltip" - data-placement="bottom" data-html="true" - title="100.0% of total for programs.">541 statements</a> - </li> - - - <li><i class="fa fa-code"></i><a href="../src/preconvert.f90"> Source File</a></li> - - </ul> - <ol class="breadcrumb in-well text-right"> - - <li><a href='../sourcefile/preconvert.f90.html'>preconvert.f90</a></li> - - <li class="active">PRECONVERT</li> - </ol> -</div> -</div> -</div> -<script> - $(function () { - $('[data-toggle="tooltip"]').tooltip() - }) -</script> - - </div> - - <div class="row"> - <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg"> - -<div id="sidebar"> - - - - - - - - - - - - - - - - - - - - - - - <hr> - - -<div class="panel panel-default"> - <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#allprogs-0">All Programs</a></h3></div> - <div id="allprogs-0" class="panel-collapse collapse"> - <div class="list-group"> - - <a class="list-group-item" href="../program/preconvert.html">PRECONVERT</a> - - </div> - </div> -</div> - - -</div> - - </div> - - <div class="col-md-9" id='text'> - - - <ul class="list-inline"> - <li><h4>Uses:</h4></li> - - <li><a href='../module/phtogr.html'>PHTOGR</a></li> - - <li><a href='../module/grtoph.html'>GRTOPH</a></li> - - <li>FTRAFO</li> - - <li><a href='../module/rwgrib2.html'>RWGRIB2</a></li> - - <li>GRIB_API</li> - - </ul> - - <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<!-- Generated by graphviz version 2.38.0 (20140413.2041) - --> -<!-- Title: program~~preconvert~~UsesGraph Pages: 1 --> -<svg id="programpreconvertUsesGraph" width="284pt" height="196pt" - viewBox="0.00 0.00 284.00 196.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> -<g id="program~~preconvert~~UsesGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 192)"> -<title>program~~preconvert~~UsesGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-192 280,-192 280,4 -4,4"/> -<!-- program~preconvert --> -<g id="program~~preconvert~~UsesGraph_node1" class="node"><title>program~preconvert</title> -<polygon fill="none" stroke="black" points="276,-108 191,-108 191,-84 276,-84 276,-108"/> -<text text-anchor="middle" x="233.5" y="-93.6" font-family="Helvetica,sans-Serif" font-size="10.50">PRECONVERT</text> -</g> -<!-- module~rwgrib2 --> -<g id="program~~preconvert~~UsesGraph_node2" class="node"><title>module~rwgrib2</title> -<g id="a_program~~preconvert~~UsesGraph_node2"><a xlink:href="../module/rwgrib2.html" xlink:title="RWGRIB2"> -<polygon fill="#337ab7" stroke="#337ab7" points="155,-188 94,-188 94,-164 155,-164 155,-188"/> -<text text-anchor="middle" x="124.5" y="-173.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">RWGRIB2</text> -</a> -</g> -</g> -<!-- module~rwgrib2->program~preconvert --> -<g id="program~~preconvert~~UsesGraph_edge2" class="edge"><title>module~rwgrib2->program~preconvert</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M141.751,-163.85C159.451,-150.616 187.948,-129.31 208.286,-114.104"/> -<polygon fill="#000000" stroke="#000000" points="210.533,-116.794 216.447,-108.002 206.342,-111.187 210.533,-116.794"/> -</g> -<!-- module~grtoph --> -<g id="program~~preconvert~~UsesGraph_node3" class="node"><title>module~grtoph</title> -<g id="a_program~~preconvert~~UsesGraph_node3"><a xlink:href="../module/grtoph.html" xlink:title="GRTOPH"> -<polygon fill="#337ab7" stroke="#337ab7" points="153.5,-108 95.5,-108 95.5,-84 153.5,-84 153.5,-108"/> -<text text-anchor="middle" x="124.5" y="-93.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GRTOPH</text> -</a> -</g> -</g> -<!-- module~grtoph->program~preconvert --> -<g id="program~~preconvert~~UsesGraph_edge3" class="edge"><title>module~grtoph->program~preconvert</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M153.613,-96C161.98,-96 171.425,-96 180.796,-96"/> -<polygon fill="#000000" stroke="#000000" points="180.882,-99.5001 190.882,-96 180.882,-92.5001 180.882,-99.5001"/> -</g> -<!-- GRIB_API --> -<g id="program~~preconvert~~UsesGraph_node4" class="node"><title>GRIB_API</title> -<polygon fill="#337ab7" stroke="#337ab7" points="155,-66 94,-66 94,-42 155,-42 155,-66"/> -<text text-anchor="middle" x="124.5" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GRIB_API</text> -</g> -<!-- GRIB_API->program~preconvert --> -<g id="program~~preconvert~~UsesGraph_edge4" class="edge"><title>GRIB_API->program~preconvert</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M155.021,-65.5879C166.443,-70.0711 179.703,-75.2759 191.99,-80.0988"/> -<polygon fill="#000000" stroke="#000000" points="190.994,-83.4679 201.581,-83.8638 193.552,-76.9519 190.994,-83.4679"/> -</g> -<!-- module~phtogr --> -<g id="program~~preconvert~~UsesGraph_node5" class="node"><title>module~phtogr</title> -<g id="a_program~~preconvert~~UsesGraph_node5"><a xlink:href="../module/phtogr.html" xlink:title="PHTOGR"> -<polygon fill="#337ab7" stroke="#337ab7" points="58,-128 3.55271e-15,-128 3.55271e-15,-104 58,-104 58,-128"/> -<text text-anchor="middle" x="29" y="-113.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHTOGR</text> -</a> -</g> -</g> -<!-- module~phtogr->program~preconvert --> -<g id="program~~preconvert~~UsesGraph_edge5" class="edge"><title>module~phtogr->program~preconvert</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M58.0369,-116.533C69.224,-116.721 82.2211,-116.908 94,-117 121.11,-117.212 128.126,-120.577 155,-117 165.156,-115.648 175.869,-113.342 185.982,-110.74"/> -<polygon fill="#000000" stroke="#000000" points="187.116,-114.059 195.852,-108.064 185.284,-107.303 187.116,-114.059"/> -</g> -<!-- module~phtogr->module~grtoph --> -<g id="program~~preconvert~~UsesGraph_edge1" class="edge"><title>module~phtogr->module~grtoph</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M58.0531,-109.999C66.6512,-108.16 76.2596,-106.105 85.4094,-104.148"/> -<polygon fill="#000000" stroke="#000000" points="86.4201,-107.511 95.4667,-101.996 84.9558,-100.666 86.4201,-107.511"/> -</g> -<!-- FTRAFO --> -<g id="program~~preconvert~~UsesGraph_node6" class="node"><title>FTRAFO</title> -<polygon fill="#337ab7" stroke="#337ab7" points="152,-24 97,-24 97,-0 152,-0 152,-24"/> -<text text-anchor="middle" x="124.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">FTRAFO</text> -</g> -<!-- FTRAFO->program~preconvert --> -<g id="program~~preconvert~~UsesGraph_edge6" class="edge"><title>FTRAFO->program~preconvert</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M142.794,-24.0319C146.835,-26.9204 151.098,-30.0301 155,-33 173.976,-47.4435 194.931,-64.5509 210.261,-77.2913"/> -<polygon fill="#000000" stroke="#000000" points="208.231,-80.1557 218.152,-83.8754 212.716,-74.7811 208.231,-80.1557"/> -</g> -</g> -</svg> -</div> - <div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div> - <div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"> - <div class="modal-dialog modal-lg" role="document"> - <div class="modal-content"> - <div class="modal-header"> - <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> - <h4 class="modal-title" id="-graph-help-label">Graph Key</h4> - </div> - <div class="modal-body"> - - <p>Nodes of different colours represent the following: </p> - <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<!-- Generated by graphviz version 2.38.0 (20140413.2041) - --> -<!-- Title: Graph Key Pages: 1 --> -<svg width="490pt" height="32pt" - viewBox="0.00 0.00 489.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> -<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> -<title>Graph Key</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-28 485.5,-28 485.5,4 -4,4"/> -<!-- Module --> -<g id="node1" class="node"><title>Module</title> -<polygon fill="#337ab7" stroke="#337ab7" points="54,-24 0,-24 0,-0 54,-0 54,-24"/> -<text text-anchor="middle" x="27" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Module</text> -</g> -<!-- Submodule --> -<g id="node2" class="node"><title>Submodule</title> -<polygon fill="#5bc0de" stroke="#5bc0de" points="139.5,-24 72.5,-24 72.5,-0 139.5,-0 139.5,-24"/> -<text text-anchor="middle" x="106" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Submodule</text> -</g> -<!-- Subroutine --> -<g id="node3" class="node"><title>Subroutine</title> -<polygon fill="#d9534f" stroke="#d9534f" points="222,-24 158,-24 158,-0 222,-0 222,-24"/> -<text text-anchor="middle" x="190" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> -</g> -<!-- Function --> -<g id="node4" class="node"><title>Function</title> -<polygon fill="#d94e8f" stroke="#d94e8f" points="294,-24 240,-24 240,-0 294,-0 294,-24"/> -<text text-anchor="middle" x="267" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> -</g> -<!-- Program --> -<g id="node5" class="node"><title>Program</title> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="366,-24 312,-24 312,-0 366,-0 366,-24"/> -<text text-anchor="middle" x="339" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> -</g> -<!-- This Page's Entity --> -<g id="node6" class="node"><title>This Page's Entity</title> -<polygon fill="none" stroke="black" points="481.5,-24 384.5,-24 384.5,-0 481.5,-0 481.5,-24"/> -<text text-anchor="middle" x="433" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> -</g> -</g> -</svg> - - - <p>Solid arrows point from a parent (sub)module to the submodule which is - descended from it. Dashed arrows point from a module being used to the - module or program unit using it. - </p> - - </div> - </div> - </div> - </div> - - - - <br><br> - - - <h3>Calls</h3> - - <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<!-- Generated by graphviz version 2.38.0 (20140413.2041) - --> -<!-- Title: program~~preconvert~~CallsGraph Pages: 1 --> -<svg id="programpreconvertCallsGraph" width="232pt" height="872pt" - viewBox="0.00 0.00 232.00 872.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> -<g id="program~~preconvert~~CallsGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 868)"> -<title>program~~preconvert~~CallsGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-868 228,-868 228,4 -4,4"/> -<!-- program~preconvert --> -<g id="program~~preconvert~~CallsGraph_node1" class="node"><title>program~preconvert</title> -<polygon fill="none" stroke="black" points="85,-444 0,-444 0,-420 85,-420 85,-444"/> -<text text-anchor="middle" x="42.5" y="-429.6" font-family="Helvetica,sans-Serif" font-size="10.50">PRECONVERT</text> -</g> -<!-- phgracut --> -<g id="program~~preconvert~~CallsGraph_node2" class="node"><title>phgracut</title> -<polygon fill="#777777" stroke="#777777" points="200,-864 145,-864 145,-840 200,-840 200,-864"/> -<text text-anchor="middle" x="172.5" y="-849.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">phgracut</text> -</g> -<!-- program~preconvert->phgracut --> -<g id="program~~preconvert~~CallsGraph_edge1" class="edge"><title>program~preconvert->phgracut</title> -<path fill="none" stroke="#000000" d="M44.3378,-444.207C48.6899,-504.387 70.4844,-769.076 121,-831 124.845,-835.713 129.928,-839.383 135.389,-842.236"/> -<polygon fill="#000000" stroke="#000000" points="134.216,-845.542 144.783,-846.306 136.999,-839.119 134.216,-845.542"/> -</g> -<!-- v --> -<g id="program~~preconvert~~CallsGraph_node3" class="node"><title>v</title> -<polygon fill="#777777" stroke="#777777" points="199.5,-822 145.5,-822 145.5,-798 199.5,-798 199.5,-822"/> -<text text-anchor="middle" x="172.5" y="-807.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">v</text> -</g> -<!-- program~preconvert->v --> -<g id="program~~preconvert~~CallsGraph_edge2" class="edge"><title>program~preconvert->v</title> -<path fill="none" stroke="#000000" d="M44.6235,-444.027C50.0639,-499.956 75.295,-734.21 121,-789 124.974,-793.764 130.21,-797.465 135.804,-800.334"/> -<polygon fill="#000000" stroke="#000000" points="134.826,-803.721 145.398,-804.419 137.568,-797.281 134.826,-803.721"/> -</g> -<!-- mars --> -<g id="program~~preconvert~~CallsGraph_node4" class="node"><title>mars</title> -<polygon fill="#777777" stroke="#777777" points="199.5,-780 145.5,-780 145.5,-756 199.5,-756 199.5,-780"/> -<text text-anchor="middle" x="172.5" y="-765.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">mars</text> -</g> -<!-- program~preconvert->mars --> -<g id="program~~preconvert~~CallsGraph_edge3" class="edge"><title>program~preconvert->mars</title> -<path fill="none" stroke="#000000" d="M45.0385,-444.328C51.7802,-496.601 80.2087,-699.444 121,-747 125,-751.663 130.204,-755.311 135.748,-758.158"/> -<polygon fill="#000000" stroke="#000000" points="134.676,-761.507 145.246,-762.233 137.436,-755.074 134.676,-761.507"/> -</g> -<!-- d --> -<g id="program~~preconvert~~CallsGraph_node5" class="node"><title>d</title> -<polygon fill="#777777" stroke="#777777" points="199.5,-738 145.5,-738 145.5,-714 199.5,-714 199.5,-738"/> -<text text-anchor="middle" x="172.5" y="-723.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">d</text> -</g> -<!-- program~preconvert->d --> -<g id="program~~preconvert~~CallsGraph_edge4" class="edge"><title>program~preconvert->d</title> -<path fill="none" stroke="#000000" d="M43.4066,-444.087C43.732,-485.792 50.2971,-625.462 121,-705 125.082,-709.592 130.326,-713.204 135.885,-716.038"/> -<polygon fill="#000000" stroke="#000000" points="134.816,-719.388 145.386,-720.11 137.573,-712.954 134.816,-719.388"/> -</g> -<!-- q --> -<g id="program~~preconvert~~CallsGraph_node6" class="node"><title>q</title> -<polygon fill="#777777" stroke="#777777" points="199.5,-696 145.5,-696 145.5,-672 199.5,-672 199.5,-696"/> -<text text-anchor="middle" x="172.5" y="-681.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">q</text> -</g> -<!-- program~preconvert->q --> -<g id="program~~preconvert~~CallsGraph_edge5" class="edge"><title>program~preconvert->q</title> -<path fill="none" stroke="#000000" d="M44.144,-444.047C46.7727,-481.486 59.7144,-597.241 121,-663 125.147,-667.45 130.381,-670.988 135.898,-673.791"/> -<polygon fill="#000000" stroke="#000000" points="134.74,-677.103 145.309,-677.848 137.511,-670.675 134.74,-677.103"/> -</g> -<!-- phgrad --> -<g id="program~~preconvert~~CallsGraph_node7" class="node"><title>phgrad</title> -<polygon fill="#777777" stroke="#777777" points="199.5,-654 145.5,-654 145.5,-630 199.5,-630 199.5,-654"/> -<text text-anchor="middle" x="172.5" y="-639.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">phgrad</text> -</g> -<!-- program~preconvert->phgrad --> -<g id="program~~preconvert~~CallsGraph_edge6" class="edge"><title>program~preconvert->phgrad</title> -<path fill="none" stroke="#000000" d="M45.2399,-444.403C50.5064,-477.507 69.2195,-568.963 121,-621 125.248,-625.269 130.49,-628.711 135.974,-631.475"/> -<polygon fill="#000000" stroke="#000000" points="134.73,-634.75 145.297,-635.511 137.511,-628.326 134.73,-634.75"/> -</g> -<!-- posnam --> -<g id="program~~preconvert~~CallsGraph_node8" class="node"><title>posnam</title> -<polygon fill="#777777" stroke="#777777" points="199.5,-612 145.5,-612 145.5,-588 199.5,-588 199.5,-612"/> -<text text-anchor="middle" x="172.5" y="-597.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">posnam</text> -</g> -<!-- program~preconvert->posnam --> -<g id="program~~preconvert~~CallsGraph_edge7" class="edge"><title>program~preconvert->posnam</title> -<path fill="none" stroke="#000000" d="M46.7639,-444.026C54.8204,-471.58 78.171,-539.905 121,-579 125.403,-583.019 130.683,-586.33 136.146,-589.038"/> -<polygon fill="#000000" stroke="#000000" points="134.822,-592.279 145.389,-593.045 137.607,-585.856 134.822,-592.279"/> -</g> -<!-- grib_get --> -<g id="program~~preconvert~~CallsGraph_node9" class="node"><title>grib_get</title> -<polygon fill="#777777" stroke="#777777" points="199.5,-570 145.5,-570 145.5,-546 199.5,-546 199.5,-570"/> -<text text-anchor="middle" x="172.5" y="-555.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grib_get</text> -</g> -<!-- program~preconvert->grib_get --> -<g id="program~~preconvert~~CallsGraph_edge8" class="edge"><title>program~preconvert->grib_get</title> -<path fill="none" stroke="#000000" d="M49.5402,-444.045C60.8362,-465.473 87.112,-510.453 121,-537 125.485,-540.513 130.641,-543.533 135.909,-546.098"/> -<polygon fill="#000000" stroke="#000000" points="134.822,-549.443 145.388,-550.232 137.62,-543.026 134.822,-549.443"/> -</g> -<!-- grib_set --> -<g id="program~~preconvert~~CallsGraph_node10" class="node"><title>grib_set</title> -<polygon fill="#777777" stroke="#777777" points="199.5,-528 145.5,-528 145.5,-504 199.5,-504 199.5,-528"/> -<text text-anchor="middle" x="172.5" y="-513.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grib_set</text> -</g> -<!-- program~preconvert->grib_set --> -<g id="program~~preconvert~~CallsGraph_edge9" class="edge"><title>program~preconvert->grib_set</title> -<path fill="none" stroke="#000000" d="M56.0733,-444.166C70.733,-457.867 96.1383,-480.154 121,-495 125.739,-497.83 130.929,-500.457 136.121,-502.828"/> -<polygon fill="#000000" stroke="#000000" points="134.803,-506.071 145.373,-506.807 137.569,-499.641 134.803,-506.071"/> -</g> -<!-- grib_new_from_file --> -<g id="program~~preconvert~~CallsGraph_node11" class="node"><title>grib_new_from_file</title> -<polygon fill="#777777" stroke="#777777" points="224,-486 121,-486 121,-462 224,-462 224,-486"/> -<text text-anchor="middle" x="172.5" y="-471.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grib_new_from_file</text> -</g> -<!-- program~preconvert->grib_new_from_file --> -<g id="program~~preconvert~~CallsGraph_edge10" class="edge"><title>program~preconvert->grib_new_from_file</title> -<path fill="none" stroke="#000000" d="M80.1797,-444.036C94.2389,-448.649 110.464,-453.972 125.301,-458.841"/> -<polygon fill="#000000" stroke="#000000" points="124.222,-462.171 134.815,-461.963 126.405,-455.519 124.222,-462.171"/> -</g> -<!-- lnsp --> -<g id="program~~preconvert~~CallsGraph_node12" class="node"><title>lnsp</title> -<polygon fill="#777777" stroke="#777777" points="199.5,-444 145.5,-444 145.5,-420 199.5,-420 199.5,-444"/> -<text text-anchor="middle" x="172.5" y="-429.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">lnsp</text> -</g> -<!-- program~preconvert->lnsp --> -<g id="program~~preconvert~~CallsGraph_edge11" class="edge"><title>program~preconvert->lnsp</title> -<path fill="none" stroke="#000000" d="M85.0579,-432C101.191,-432 119.502,-432 135.105,-432"/> -<polygon fill="#000000" stroke="#000000" points="135.414,-435.5 145.414,-432 135.414,-428.5 135.414,-435.5"/> -</g> -<!-- grib_open_file --> -<g id="program~~preconvert~~CallsGraph_node13" class="node"><title>grib_open_file</title> -<polygon fill="#777777" stroke="#777777" points="212.5,-402 132.5,-402 132.5,-378 212.5,-378 212.5,-402"/> -<text text-anchor="middle" x="172.5" y="-387.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grib_open_file</text> -</g> -<!-- program~preconvert->grib_open_file --> -<g id="program~~preconvert~~CallsGraph_edge12" class="edge"><title>program~preconvert->grib_open_file</title> -<path fill="none" stroke="#000000" d="M80.1797,-419.964C94.2389,-415.351 110.464,-410.028 125.301,-405.159"/> -<polygon fill="#000000" stroke="#000000" points="126.405,-408.481 134.815,-402.037 124.222,-401.829 126.405,-408.481"/> -</g> -<!-- omega --> -<g id="program~~preconvert~~CallsGraph_node14" class="node"><title>omega</title> -<polygon fill="#777777" stroke="#777777" points="199.5,-360 145.5,-360 145.5,-336 199.5,-336 199.5,-360"/> -<text text-anchor="middle" x="172.5" y="-345.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">omega</text> -</g> -<!-- program~preconvert->omega --> -<g id="program~~preconvert~~CallsGraph_edge13" class="edge"><title>program~preconvert->omega</title> -<path fill="none" stroke="#000000" d="M56.0733,-419.834C70.733,-406.133 96.1383,-383.846 121,-369 125.739,-366.17 130.929,-363.543 136.121,-361.172"/> -<polygon fill="#000000" stroke="#000000" points="137.569,-364.359 145.373,-357.193 134.803,-357.929 137.569,-364.359"/> -</g> -<!-- file --> -<g id="program~~preconvert~~CallsGraph_node15" class="node"><title>file</title> -<polygon fill="#777777" stroke="#777777" points="199.5,-318 145.5,-318 145.5,-294 199.5,-294 199.5,-318"/> -<text text-anchor="middle" x="172.5" y="-303.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">file</text> -</g> -<!-- program~preconvert->file --> -<g id="program~~preconvert~~CallsGraph_edge14" class="edge"><title>program~preconvert->file</title> -<path fill="none" stroke="#000000" d="M49.5402,-419.955C60.8362,-398.527 87.112,-353.547 121,-327 125.485,-323.487 130.641,-320.467 135.909,-317.902"/> -<polygon fill="#000000" stroke="#000000" points="137.62,-320.974 145.388,-313.768 134.822,-314.557 137.62,-320.974"/> -</g> -<!-- winds --> -<g id="program~~preconvert~~CallsGraph_node16" class="node"><title>winds</title> -<polygon fill="#777777" stroke="#777777" points="199.5,-276 145.5,-276 145.5,-252 199.5,-252 199.5,-276"/> -<text text-anchor="middle" x="172.5" y="-261.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">winds</text> -</g> -<!-- program~preconvert->winds --> -<g id="program~~preconvert~~CallsGraph_edge15" class="edge"><title>program~preconvert->winds</title> -<path fill="none" stroke="#000000" d="M46.7639,-419.974C54.8204,-392.42 78.171,-324.095 121,-285 125.403,-280.981 130.683,-277.67 136.146,-274.962"/> -<polygon fill="#000000" stroke="#000000" points="137.607,-278.144 145.389,-270.955 134.822,-271.721 137.607,-278.144"/> -</g> -<!-- jsppole --> -<g id="program~~preconvert~~CallsGraph_node17" class="node"><title>jsppole</title> -<polygon fill="#777777" stroke="#777777" points="199.5,-234 145.5,-234 145.5,-210 199.5,-210 199.5,-234"/> -<text text-anchor="middle" x="172.5" y="-219.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">jsppole</text> -</g> -<!-- program~preconvert->jsppole --> -<g id="program~~preconvert~~CallsGraph_edge16" class="edge"><title>program~preconvert->jsppole</title> -<path fill="none" stroke="#000000" d="M45.2399,-419.597C50.5064,-386.493 69.2195,-295.037 121,-243 125.248,-238.731 130.49,-235.289 135.974,-232.525"/> -<polygon fill="#000000" stroke="#000000" points="137.511,-235.674 145.297,-228.489 134.73,-229.25 137.511,-235.674"/> -</g> -<!-- proc~statis --> -<g id="program~~preconvert~~CallsGraph_node18" class="node"><title>proc~statis</title> -<g id="a_program~~preconvert~~CallsGraph_node18"><a xlink:href="../proc/statis.html" xlink:title="STATIS"> -<polygon fill="#d9534f" stroke="#d9534f" points="199.5,-192 145.5,-192 145.5,-168 199.5,-168 199.5,-192"/> -<text text-anchor="middle" x="172.5" y="-177.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">STATIS</text> -</a> -</g> -</g> -<!-- program~preconvert->proc~statis --> -<g id="program~~preconvert~~CallsGraph_edge17" class="edge"><title>program~preconvert->proc~statis</title> -<path fill="none" stroke="#000000" d="M44.144,-419.953C46.7727,-382.514 59.7144,-266.759 121,-201 125.147,-196.55 130.381,-193.012 135.898,-190.209"/> -<polygon fill="#000000" stroke="#000000" points="137.511,-193.325 145.309,-186.152 134.74,-186.897 137.511,-193.325"/> -</g> -<!-- spfilter --> -<g id="program~~preconvert~~CallsGraph_node19" class="node"><title>spfilter</title> -<polygon fill="#777777" stroke="#777777" points="199.5,-150 145.5,-150 145.5,-126 199.5,-126 199.5,-150"/> -<text text-anchor="middle" x="172.5" y="-135.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">spfilter</text> -</g> -<!-- program~preconvert->spfilter --> -<g id="program~~preconvert~~CallsGraph_edge18" class="edge"><title>program~preconvert->spfilter</title> -<path fill="none" stroke="#000000" d="M43.4066,-419.913C43.732,-378.208 50.2971,-238.538 121,-159 125.082,-154.408 130.326,-150.796 135.885,-147.962"/> -<polygon fill="#000000" stroke="#000000" points="137.573,-151.046 145.386,-143.89 134.816,-144.612 137.573,-151.046"/> -</g> -<!-- contgl --> -<g id="program~~preconvert~~CallsGraph_node20" class="node"><title>contgl</title> -<polygon fill="#777777" stroke="#777777" points="199.5,-108 145.5,-108 145.5,-84 199.5,-84 199.5,-108"/> -<text text-anchor="middle" x="172.5" y="-93.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">contgl</text> -</g> -<!-- program~preconvert->contgl --> -<g id="program~~preconvert~~CallsGraph_edge19" class="edge"><title>program~preconvert->contgl</title> -<path fill="none" stroke="#000000" d="M45.0385,-419.672C51.7802,-367.399 80.2087,-164.556 121,-117 125,-112.337 130.204,-108.689 135.748,-105.842"/> -<polygon fill="#000000" stroke="#000000" points="137.436,-108.926 145.246,-101.767 134.676,-102.493 137.436,-108.926"/> -</g> -<!-- grib_close_file --> -<g id="program~~preconvert~~CallsGraph_node21" class="node"><title>grib_close_file</title> -<polygon fill="#777777" stroke="#777777" points="213,-66 132,-66 132,-42 213,-42 213,-66"/> -<text text-anchor="middle" x="172.5" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grib_close_file</text> -</g> -<!-- program~preconvert->grib_close_file --> -<g id="program~~preconvert~~CallsGraph_edge20" class="edge"><title>program~preconvert->grib_close_file</title> -<path fill="none" stroke="#000000" d="M44.6235,-419.973C50.0639,-364.044 75.295,-129.79 121,-75 121.855,-73.9747 122.769,-72.9986 123.732,-72.0695"/> -<polygon fill="#000000" stroke="#000000" points="126.096,-74.6688 131.934,-65.8277 121.857,-69.0983 126.096,-74.6688"/> -</g> -<!-- set99 --> -<g id="program~~preconvert~~CallsGraph_node22" class="node"><title>set99</title> -<polygon fill="#777777" stroke="#777777" points="199.5,-24 145.5,-24 145.5,-0 199.5,-0 199.5,-24"/> -<text text-anchor="middle" x="172.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">set99</text> -</g> -<!-- program~preconvert->set99 --> -<g id="program~~preconvert~~CallsGraph_edge21" class="edge"><title>program~preconvert->set99</title> -<path fill="none" stroke="#000000" d="M44.3378,-419.793C48.6899,-359.613 70.4844,-94.9245 121,-33 124.922,-28.1923 130.132,-24.4707 135.717,-21.594"/> -<polygon fill="#000000" stroke="#000000" points="137.481,-24.6471 145.309,-17.5078 134.737,-18.2071 137.481,-24.6471"/> -</g> -</g> -</svg> -</div> - <div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div> - <div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"> - <div class="modal-dialog modal-lg" role="document"> - <div class="modal-content"> - <div class="modal-header"> - <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> - <h4 class="modal-title" id="-graph-help-label">Graph Key</h4> - </div> - <div class="modal-body"> - - <p>Nodes of different colours represent the following: </p> - <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<!-- Generated by graphviz version 2.38.0 (20140413.2041) - --> -<!-- Title: Graph Key Pages: 1 --> -<svg width="560pt" height="32pt" - viewBox="0.00 0.00 559.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> -<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> -<title>Graph Key</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-28 555.5,-28 555.5,4 -4,4"/> -<!-- Subroutine --> -<g id="node1" class="node"><title>Subroutine</title> -<polygon fill="#d9534f" stroke="#d9534f" points="64,-24 0,-24 0,-0 64,-0 64,-24"/> -<text text-anchor="middle" x="32" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> -</g> -<!-- Function --> -<g id="node2" class="node"><title>Function</title> -<polygon fill="#d94e8f" stroke="#d94e8f" points="136,-24 82,-24 82,-0 136,-0 136,-24"/> -<text text-anchor="middle" x="109" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> -</g> -<!-- Interface --> -<g id="node3" class="node"><title>Interface</title> -<polygon fill="#a7506f" stroke="#a7506f" points="209.5,-24 154.5,-24 154.5,-0 209.5,-0 209.5,-24"/> -<text text-anchor="middle" x="182" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Interface</text> -</g> -<!-- Unknown Procedure Type --> -<g id="node4" class="node"><title>Unknown Procedure Type</title> -<polygon fill="#777777" stroke="#777777" points="364,-24 228,-24 228,-0 364,-0 364,-24"/> -<text text-anchor="middle" x="296" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Unknown Procedure Type</text> -</g> -<!-- Program --> -<g id="node5" class="node"><title>Program</title> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="436,-24 382,-24 382,-0 436,-0 436,-24"/> -<text text-anchor="middle" x="409" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> -</g> -<!-- This Page's Entity --> -<g id="node6" class="node"><title>This Page's Entity</title> -<polygon fill="none" stroke="black" points="551.5,-24 454.5,-24 454.5,-0 551.5,-0 551.5,-24"/> -<text text-anchor="middle" x="503" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> -</g> -</g> -</svg> - - - <p>Solid arrows point from a procedure to one which it calls. Dashed - arrows point from an interface to procedures which implement that interface. - This could include the module procedures in a generic interface or the - implementation in a submodule of an interface in a parent module. - </p> - - </div> - </div> - </div> - </div> - - - <br> - - <section class="visible-xs visible-sm hidden-md"> - - - - - - - - - - - - - - - - - - - - - - - </section> - <br class="visible-xs visible-sm hidden-md"> - - - - - - - - - - - - - - - - - - - - - </div> - </div> - - <section class="visible-xs visible-sm hidden-md"> - <hr> - - -<div class="panel panel-default"> - <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#allprogs-1">All Programs</a></h3></div> - <div id="allprogs-1" class="panel-collapse collapse"> - <div class="list-group"> - - <a class="list-group-item" href="../program/preconvert.html">PRECONVERT</a> - - </div> - </div> -</div> - - - </section> - - <hr> - </div> <!-- /container --> - <footer> - <div class="container"> - <div class="row"> - <div class="col-xs-6 col-md-4"><p>© 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> - <div class="col-xs-6 col-md-4 col-md-push-4"> - <p class="text-right"> - Documentation generated by - <a href="https://github.com/cmacmackin/ford">FORD</a> - - </p> - </div> - <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> - </div> - <br> - </div> <!-- /container --> - </footer> - - <!-- Bootstrap core JavaScript - ================================================== --> - <!-- Placed at the end of the document so the pages load faster --> -<!-- - <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> ---> - <script src="../js/bootstrap.min.js"></script> - <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> - <script src="../js/ie10-viewport-bug-workaround.js"></script> - - <!-- MathJax JavaScript - ================================================== --> - <!-- Placed at the end of the document so the pages load faster --> - <script type="text/x-mathjax-config"> - MathJax.Hub.Config({ - TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, - jax: ['input/TeX','input/MathML','output/HTML-CSS'], - extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'], - 'HTML-CSS': { - styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: '#000000 ! important'} } - } - }); - </script> - <!-- <script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> --> - </body> -</html> \ No newline at end of file diff --git a/Documentation/FORD/V5/Doc_original/sourcefile/grphreal.f.html b/Documentation/FORD/V5/Doc_original/sourcefile/grphreal.f.html deleted file mode 100644 index 4fbb66015b0c524f9abf7466aa0e6dedecea3f10..0000000000000000000000000000000000000000 --- a/Documentation/FORD/V5/Doc_original/sourcefile/grphreal.f.html +++ /dev/null @@ -1,694 +0,0 @@ -<!DOCTYPE html> -<html lang="en"> - <head> - <meta charset="utf-8"> - <meta http-equiv="X-UA-Compatible" content="IE=edge"> - <meta name="viewport" content="width=device-width, initial-scale=1"> - - <meta name="description" content="Calculation of vertical velocity for FLEXPART"> - - <meta name="author" content="Leopold Haimberger" > - <link rel="icon" href="../favicon.png"> - - <title>grphreal.f – Flex_extract: Calculation of etadot</title> - - <link href="../css/bootstrap.min.css" rel="stylesheet"> - <link href="../css/pygments.css" rel="stylesheet"> - <link href="../css/font-awesome.min.css" rel="stylesheet"> - <link href="../css/local.css" rel="stylesheet"> - - - <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> - <!--[if lt IE 9]> - <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> - <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> - <![endif]--> - - <script src="../js/jquery-2.1.3.min.js"></script> - <script src="../js/svg-pan-zoom.min.js"></script> - - - <script src="../tipuesearch/tipuesearch_content.js"></script> - <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> - <script src="../tipuesearch/tipuesearch_set.js"></script> - <script src="../tipuesearch/tipuesearch.js"></script> - - - </head> - - <body> - - <!-- Fixed navbar --> - <nav class="navbar navbar-inverse navbar-fixed-top"> - <div class="container"> - <div class="navbar-header"> - <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> - <span class="sr-only">Toggle navigation</span> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> - </div> - <div id="navbar" class="navbar-collapse collapse"> - <ul class="nav navbar-nav"> - - <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> - <a href="#" class="dropdown-toggle" - data-toggle="dropdown" role="button" - aria-haspopup="true" - aria-expanded="false">Contents <span class="caret"></span></a> - <ul class="dropdown-menu"> - - <li><a href="../lists/files.html">Source Files</a></li> - - - <li><a href="../lists/modules.html">Modules</a></li> - - - - <li><a href="../lists/procedures.html">Procedures</a></li> - - - - <li><a href="../program/preconvert.html">Program</a></li> - - </ul> - </li> - -<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> - - -<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> - - - -<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> - - - -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> - - </ul> - - <form action="../search.html" class="navbar-form navbar-right" role="search"> - <div class="form-group"> - <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> - </div> -<!-- - <button type="submit" class="btn btn-default">Submit</button> ---> - </form> - - </div><!--/.nav-collapse --> - </div> - </nav> - - <div class="container"> - - - <div class="row"> - <h1>grphreal.f - <small>Source File</small> - - </h1> - -<div class="row"> - <div class="col-lg-12"> -<div class="well well-sm"> - <ul class="list-inline" style="margin-bottom:0px;display:inline"> - - - - - - - <li><i class="fa fa-list-ol"></i> - <a data-toggle="tooltip" - data-placement="bottom" data-html="true" - title="10.2% of total for source files.">136 statements</a> - </li> - - - <li><i class="fa fa-code"></i><a href="../src/grphreal.f"> Source File</a></li> - - </ul> - <ol class="breadcrumb in-well text-right"> - - <li class="active">grphreal.f</li> - </ol> -</div> -</div> -</div> -<script> - $(function () { - $('[data-toggle="tooltip"]').tooltip() - }) -</script> - - </div> - <div class="row"> - <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg"> - -<div id="sidebar"> - - - - - - - -<div class="panel panel-primary"> - <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#mods-0">Modules</a></h3></div> - <div id="mods-0" class="panel-collapse collapse"> - <div class="list-group"> - - <a class="list-group-item" href="../module/grtoph.html">GRTOPH</a> - - </div> - </div> -</div> - - - - - - - - - - - - - - - -<div class="panel panel-primary"> - <div class="panel-heading text-left"><h3 class="panel-title">Source Code</h3></div> - <div class="list-group"> - <a class="list-group-item" href="../sourcefile/grphreal.f.html#src">grphreal.f</a> - </div> -</div> - - - <hr> - - -<div class="panel panel-default"> - <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#allfiles-0">All Source Files</a></h3></div> - <div id="allfiles-0" class="panel-collapse collapse"> - <div class="list-group"> - - <a class="list-group-item" href="../sourcefile/grphreal.f.html">grphreal.f</a> - - <a class="list-group-item" href="../sourcefile/phgrreal.f.html">phgrreal.f</a> - - <a class="list-group-item" href="../sourcefile/preconvert.f90.html">preconvert.f90</a> - - <a class="list-group-item" href="../sourcefile/rwgrib2.f90.html">rwGRIB2.f90</a> - - </div> - </div> -</div> - - -</div> - - </div> - <div class="col-md-9" id='text'> - - - <h3>This File Depends On</h3> - - <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<!-- Generated by graphviz version 2.38.0 (20140413.2041) - --> -<!-- Title: sourcefile~~grphreal.f~~EfferentGraph Pages: 1 --> -<svg id="sourcefilegrphrealfEfferentGraph" width="160pt" height="32pt" - viewBox="0.00 0.00 160.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> -<g id="sourcefile~~grphreal.f~~EfferentGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> -<title>sourcefile~~grphreal.f~~EfferentGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-28 156,-28 156,4 -4,4"/> -<!-- sourcefile~grphreal.f --> -<g id="sourcefile~~grphreal.f~~EfferentGraph_node1" class="node"><title>sourcefile~grphreal.f</title> -<polygon fill="none" stroke="black" points="152,-24 94,-24 94,-0 152,-0 152,-24"/> -<text text-anchor="middle" x="123" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">grphreal.f</text> -</g> -<!-- sourcefile~phgrreal.f --> -<g id="sourcefile~~grphreal.f~~EfferentGraph_node2" class="node"><title>sourcefile~phgrreal.f</title> -<g id="a_sourcefile~~grphreal.f~~EfferentGraph_node2"><a xlink:href="../sourcefile/phgrreal.f.html" xlink:title="phgrreal.f"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="58,-24 3.55271e-15,-24 3.55271e-15,-0 58,-0 58,-24"/> -<text text-anchor="middle" x="29" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">phgrreal.f</text> -</a> -</g> -</g> -<!-- sourcefile~phgrreal.f->sourcefile~grphreal.f --> -<g id="sourcefile~~grphreal.f~~EfferentGraph_edge1" class="edge"><title>sourcefile~phgrreal.f->sourcefile~grphreal.f</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M58.1029,-12C66.1425,-12 75.0461,-12 83.5904,-12"/> -<polygon fill="#000000" stroke="#000000" points="83.7522,-15.5001 93.7521,-12 83.7521,-8.5001 83.7522,-15.5001"/> -</g> -</g> -</svg> -</div> - <div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div> - <div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"> - <div class="modal-dialog modal-lg" role="document"> - <div class="modal-content"> - <div class="modal-header"> - <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> - <h4 class="modal-title" id="-graph-help-label">Graph Key</h4> - </div> - <div class="modal-body"> - - <p>Nodes of different colours represent the following: </p> - <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<!-- Generated by graphviz version 2.38.0 (20140413.2041) - --> -<!-- Title: Graph Key Pages: 1 --> -<svg width="190pt" height="32pt" - viewBox="0.00 0.00 190.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> -<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> -<title>Graph Key</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-28 186,-28 186,4 -4,4"/> -<!-- Source File --> -<g id="node1" class="node"><title>Source File</title> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="67,-24 0,-24 0,-0 67,-0 67,-24"/> -<text text-anchor="middle" x="33.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Source File</text> -</g> -<!-- This Page's Entity --> -<g id="node2" class="node"><title>This Page's Entity</title> -<polygon fill="none" stroke="black" points="182,-24 85,-24 85,-0 182,-0 182,-24"/> -<text text-anchor="middle" x="133.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> -</g> -</g> -</svg> - - - <p>Solid arrows point from a file to a file which depends upon it. A file - is dependent upon another if the latter must be compiled before the former - can be. - </p> - - </div> - </div> - </div> - </div> - - - - <h3>Files Dependent On This One</h3> - - <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<!-- Generated by graphviz version 2.38.0 (20140413.2041) - --> -<!-- Title: sourcefile~~grphreal.f~~AfferentGraph Pages: 1 --> -<svg id="sourcefilegrphrealfAfferentGraph" width="184pt" height="32pt" - viewBox="0.00 0.00 184.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> -<g id="sourcefile~~grphreal.f~~AfferentGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> -<title>sourcefile~~grphreal.f~~AfferentGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-28 180,-28 180,4 -4,4"/> -<!-- sourcefile~grphreal.f --> -<g id="sourcefile~~grphreal.f~~AfferentGraph_node1" class="node"><title>sourcefile~grphreal.f</title> -<polygon fill="none" stroke="black" points="58,-24 3.55271e-15,-24 3.55271e-15,-0 58,-0 58,-24"/> -<text text-anchor="middle" x="29" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">grphreal.f</text> -</g> -<!-- sourcefile~preconvert.f90 --> -<g id="sourcefile~~grphreal.f~~AfferentGraph_node2" class="node"><title>sourcefile~preconvert.f90</title> -<g id="a_sourcefile~~grphreal.f~~AfferentGraph_node2"><a xlink:href="../sourcefile/preconvert.f90.html" xlink:title="preconvert.f90"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="176,-24 94,-24 94,-0 176,-0 176,-24"/> -<text text-anchor="middle" x="135" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">preconvert.f90</text> -</a> -</g> -</g> -<!-- sourcefile~grphreal.f->sourcefile~preconvert.f90 --> -<g id="sourcefile~~grphreal.f~~AfferentGraph_edge1" class="edge"><title>sourcefile~grphreal.f->sourcefile~preconvert.f90</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M58.1439,-12C66.0131,-12 74.8129,-12 83.5541,-12"/> -<polygon fill="#000000" stroke="#000000" points="83.7293,-15.5001 93.7293,-12 83.7292,-8.5001 83.7293,-15.5001"/> -</g> -</g> -</svg> -</div> - <div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div> - <div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"> - <div class="modal-dialog modal-lg" role="document"> - <div class="modal-content"> - <div class="modal-header"> - <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> - <h4 class="modal-title" id="-graph-help-label">Graph Key</h4> - </div> - <div class="modal-body"> - - <p>Nodes of different colours represent the following: </p> - <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<!-- Generated by graphviz version 2.38.0 (20140413.2041) - --> -<!-- Title: Graph Key Pages: 1 --> -<svg width="190pt" height="32pt" - viewBox="0.00 0.00 190.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> -<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> -<title>Graph Key</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-28 186,-28 186,4 -4,4"/> -<!-- Source File --> -<g id="node1" class="node"><title>Source File</title> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="67,-24 0,-24 0,-0 67,-0 67,-24"/> -<text text-anchor="middle" x="33.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Source File</text> -</g> -<!-- This Page's Entity --> -<g id="node2" class="node"><title>This Page's Entity</title> -<polygon fill="none" stroke="black" points="182,-24 85,-24 85,-0 182,-0 182,-24"/> -<text text-anchor="middle" x="133.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> -</g> -</g> -</svg> - - - <p>Solid arrows point from a file to a file which depends upon it. A file - is dependent upon another if the latter must be compiled before the former - can be. - </p> - - </div> - </div> - </div> - </div> - - - <br> - - <section class="visible-xs visible-sm hidden-md"> - - - - - - - -<div class="panel panel-primary"> - <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#mods-1">Modules</a></h3></div> - <div id="mods-1" class="panel-collapse collapse"> - <div class="list-group"> - - <a class="list-group-item" href="../module/grtoph.html">GRTOPH</a> - - </div> - </div> -</div> - - - - - - - - - - - - - - - -<div class="panel panel-primary"> - <div class="panel-heading text-left"><h3 class="panel-title">Source Code</h3></div> - <div class="list-group"> - <a class="list-group-item" href="../sourcefile/grphreal.f.html#src">grphreal.f</a> - </div> -</div> - - - </section> - <br class="visible-xs visible-sm hidden-md"> - - <section> - <h2><span class="anchor" id="src"></span>Source Code</h2> - <div class="hl"><pre><span></span><a name="ln-1"></a><span class="nl"> </span> <span class="k">MODULE </span><span class="n">GRTOPH</span> -<a name="ln-2"></a> -<a name="ln-3"></a><span class="nl"> </span> <span class="k">USE </span><span class="n">PHTOGR</span> -<a name="ln-4"></a> -<a name="ln-5"></a><span class="nl"> </span> <span class="k">CONTAINS</span> -<a name="ln-6"></a><span class="c">C</span> -<a name="ln-7"></a><span class="nl"> </span> <span class="k">SUBROUTINE </span><span class="n">GRPH213</span><span class="p">(</span><span class="n">CXMN</span><span class="p">,</span><span class="n">FELD</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">W</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span> -<a name="ln-8"></a><span class="nl"> </span><span class="gs">*</span><span class="n">MNAUF</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> -<a name="ln-9"></a> -<a name="ln-10"></a><span class="c">C DIE ROUTINE F]HRT EINE TRANSFORMATION EINER</span> -<a name="ln-11"></a><span class="c">C FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN</span> -<a name="ln-12"></a><span class="c">C RAUM AUF KUGELKOORDINATEN DURCH</span> -<a name="ln-13"></a><span class="c">C</span> -<a name="ln-14"></a><span class="c">C CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE</span> -<a name="ln-15"></a><span class="c">C CX00,CX01,CX11,CX02,....CXMNAUFMNAUF</span> -<a name="ln-16"></a><span class="c">C CXM = FOURIERKOEFFIZIENTEN - nur ein Hilfsfeld</span> -<a name="ln-17"></a><span class="c">C FELD = FELD DER METEOROLOGISCHEN VARIABLEN</span> -<a name="ln-18"></a><span class="c">C WSAVE = Working Array fuer Fouriertransformation</span> -<a name="ln-19"></a><span class="c">C Z = LEGENDREFUNKTIONSWERTE</span> -<a name="ln-20"></a><span class="c">C</span> -<a name="ln-21"></a><span class="c">C MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN</span> -<a name="ln-22"></a><span class="c">C MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN</span> -<a name="ln-23"></a><span class="c">C MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN</span> -<a name="ln-24"></a><span class="c">C MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN</span> -<a name="ln-25"></a><span class="c">C</span> -<a name="ln-26"></a><span class="nl"> </span> <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> -<a name="ln-27"></a> -<a name="ln-28"></a> -<a name="ln-29"></a><span class="c">C Anzahl der Gitterpunkte pro Breitenkreis des reduzierten </span> -<a name="ln-30"></a><span class="c">C Gauss'schen Gitters</span> -<a name="ln-31"></a><span class="nl"> INTE</span><span class="gs">G</span><span class="n">ER</span> <span class="n">MLAT</span><span class="p">(</span><span class="n">MAXB</span><span class="p">),</span><span class="n">ISIZE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="n">MAXB</span><span class="p">)</span> -<a name="ln-32"></a> -<a name="ln-33"></a><span class="c">C FELD DER LEGENDREPOLYNOME FUER EINE BREITE</span> -<a name="ln-34"></a><span class="nl"> </span> <span class="kt">REAL</span><span class="o">*</span><span class="mi">8</span> <span class="n">Z</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="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> -<a name="ln-35"></a><span class="nl"> </span> -<a name="ln-36"></a><span class="c">C LOGICAL*1 USED(((216*217)/2+1)*160)</span> -<a name="ln-37"></a> -<a name="ln-38"></a><span class="nl"> </span> <span class="k">DIMENSION </span><span class="n">CXMN</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="n">MLEVEL</span><span class="p">)</span> -<a name="ln-39"></a><span class="nl"> </span> <span class="kt">REAL </span><span class="n">FELD</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">)</span> -<a name="ln-40"></a><span class="nl"> </span> <span class="k">DIMENSION </span><span class="n">WSAVE</span><span class="p">(</span><span class="mi">8</span><span class="o">*</span><span class="n">MAXB</span><span class="o">+</span><span class="mi">15</span><span class="p">,</span><span class="n">MAXB</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span> -<a name="ln-41"></a><span class="nl"> </span> <span class="kt">REAL</span><span class="o">*</span><span class="mi">8</span> <span class="n">W</span><span class="p">(</span><span class="n">MAXB</span><span class="p">)</span> -<a name="ln-42"></a><span class="nl"> </span> <span class="k">DIMENSION </span><span class="n">IND</span><span class="p">(</span><span class="n">MAXB</span><span class="p">)</span> -<a name="ln-43"></a> -<a name="ln-44"></a> -<a name="ln-45"></a><span class="nl"> </span> <span class="n">IND</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="mi">0</span> -<a name="ln-46"></a><span class="nl"> </span> <span class="k">DO </span><span class="mi">6</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">2</span> -<a name="ln-47"></a><span class="nl"> IND</span><span class="gs">(</span><span class="n">j</span><span class="p">)</span><span class="o">=</span><span class="n">IND</span><span class="p">(</span><span class="n">J</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">+</span><span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-48"></a><span class="nl"> 6 </span> <span class="k">CONTINUE</span> -<a name="ln-49"></a><span class="c">!$OMP PARALLEL DO SCHEDULE(DYNAMIC)</span> -<a name="ln-50"></a><span class="nl"> </span> <span class="k">DO </span><span class="mi">16</span> <span class="n">L</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span> -<a name="ln-51"></a><span class="nl"> </span> <span class="k">CALL </span><span class="n">GRPHSUB</span><span class="p">(</span><span class="n">L</span><span class="p">,</span><span class="n">IND</span><span class="p">,</span><span class="n">CXMN</span><span class="p">,</span><span class="n">FELD</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">W</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span> -<a name="ln-52"></a><span class="nl"> </span><span class="gs">*</span><span class="n">MNAUF</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> -<a name="ln-53"></a><span class="nl">16 </span> <span class="k">CONTINUE</span> -<a name="ln-54"></a><span class="c">!$omp end parallel do</span> -<a name="ln-55"></a> -<a name="ln-56"></a> -<a name="ln-57"></a><span class="nl"> </span> <span class="k">RETURN</span> -<a name="ln-58"></a><span class="nl"> </span> <span class="k">END SUBROUTINE </span><span class="n">GRPH213</span> -<a name="ln-59"></a><span class="c">C</span> -<a name="ln-60"></a><span class="nl"> </span> <span class="k">SUBROUTINE </span><span class="n">GRPHSUB</span><span class="p">(</span><span class="n">L</span><span class="p">,</span><span class="n">IND</span><span class="p">,</span><span class="n">CXMN</span><span class="p">,</span><span class="n">FELD</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">W</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span> -<a name="ln-61"></a><span class="nl"> </span><span class="gs">*</span><span class="n">MNAUF</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> -<a name="ln-62"></a> -<a name="ln-63"></a><span class="c">C DIE ROUTINE F]HRT EINE TRANSFORMATION EINER</span> -<a name="ln-64"></a><span class="c">C FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN</span> -<a name="ln-65"></a><span class="c">C RAUM AUF KUGELKOORDINATEN DURCH</span> -<a name="ln-66"></a><span class="c">C</span> -<a name="ln-67"></a><span class="c">C CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE</span> -<a name="ln-68"></a><span class="c">C CX00,CX01,CX11,CX02,....CXMNAUFMNAUF</span> -<a name="ln-69"></a><span class="c">C CXM = FOURIERKOEFFIZIENTEN - nur ein Hilfsfeld</span> -<a name="ln-70"></a><span class="c">C FELD = FELD DER METEOROLOGISCHEN VARIABLEN</span> -<a name="ln-71"></a><span class="c">C WSAVE = Working Array fuer Fouriertransformation</span> -<a name="ln-72"></a><span class="c">C Z = LEGENDREFUNKTIONSWERTE</span> -<a name="ln-73"></a><span class="c">C</span> -<a name="ln-74"></a><span class="c">C MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN</span> -<a name="ln-75"></a><span class="c">C MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN</span> -<a name="ln-76"></a><span class="c">C MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN</span> -<a name="ln-77"></a><span class="c">C MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN</span> -<a name="ln-78"></a><span class="c">C</span> -<a name="ln-79"></a><span class="nl"> </span> <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> -<a name="ln-80"></a> -<a name="ln-81"></a><span class="c">C FELD DER FOURIERKOEFFIZIENTEN</span> -<a name="ln-82"></a><span class="nl"> </span> <span class="kt">REAL </span><span class="n">CXMS</span><span class="p">(</span><span class="mi">4</span><span class="o">*</span><span class="p">(</span><span class="n">MNAUF</span><span class="o">+</span><span class="mi">1</span><span class="p">))</span> -<a name="ln-83"></a><span class="nl"> </span> <span class="kt">REAL </span><span class="n">CXMA</span><span class="p">(</span><span class="mi">4</span><span class="o">*</span><span class="p">(</span><span class="n">MNAUF</span><span class="o">+</span><span class="mi">1</span><span class="p">))</span> -<a name="ln-84"></a><span class="nl"> </span> <span class="kt">REAL</span><span class="p">,</span><span class="k">ALLOCATABLE</span> <span class="kd">::</span> <span class="n">CXM</span><span class="p">(:,:)</span> -<a name="ln-85"></a> -<a name="ln-86"></a><span class="c">C Anzahl der Gitterpunkte pro Breitenkreis des reduzierten </span> -<a name="ln-87"></a><span class="c">C Gauss'schen Gitters</span> -<a name="ln-88"></a><span class="nl"> IN</span><span class="gs">T</span><span class="n">EGER</span> <span class="n">MLAT</span><span class="p">(</span><span class="n">MAXB</span><span class="p">),</span><span class="n">ISIZE</span> -<a name="ln-89"></a> -<a name="ln-90"></a><span class="c">C FELD DER LEGENDREPOLYNOME FUER EINE BREITE</span> -<a name="ln-91"></a><span class="nl"> </span> <span class="kt">REAL </span><span class="n">Z</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="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> -<a name="ln-92"></a><span class="nl"> </span> -<a name="ln-93"></a><span class="c">C LOGICAL*1 USED(((216*217)/2+1)*160)</span> -<a name="ln-94"></a> -<a name="ln-95"></a><span class="nl"> </span> <span class="kt">REAL </span><span class="n">CXMN</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="n">MLEVEL</span><span class="p">)</span> -<a name="ln-96"></a><span class="nl"> </span> <span class="kt">REAL </span><span class="n">FELD</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">)</span> -<a name="ln-97"></a><span class="nl"> </span> <span class="kt">REAL </span><span class="n">WSAVE</span><span class="p">(</span><span class="mi">8</span><span class="o">*</span><span class="n">MAXB</span><span class="o">+</span><span class="mi">15</span><span class="p">,</span><span class="n">MAXB</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span> -<a name="ln-98"></a><span class="nl"> </span> <span class="kt">INTEGER </span><span class="n">IFAX</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="n">MAXB</span><span class="p">)</span> -<a name="ln-99"></a><span class="nl"> </span> <span class="kt">REAL </span><span class="n">W</span><span class="p">(</span><span class="n">MAXB</span><span class="p">)</span> -<a name="ln-100"></a><span class="nl"> </span> <span class="kt">INTEGER </span><span class="n">IND</span><span class="p">(</span><span class="n">MAXB</span><span class="p">)</span> -<a name="ln-101"></a> -<a name="ln-102"></a><span class="nl"> </span> <span class="k">ALLOCATE</span><span class="p">(</span><span class="n">CXM</span><span class="p">(</span> <span class="mi">4</span><span class="o">*</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MAXB</span><span class="p">))</span> -<a name="ln-103"></a><span class="nl"> DO</span> <span class="mi">5</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="o">/</span><span class="mi">2</span> -<a name="ln-104"></a><span class="nl"> </span> <span class="n">CXMS</span><span class="p">(</span><span class="mi">1</span><span class="p">:</span><span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="p">))</span><span class="o">=</span><span class="n">FELD</span><span class="p">(</span><span class="n">IND</span><span class="p">(</span><span class="n">J</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">:</span><span class="n">IND</span><span class="p">(</span><span class="n">J</span><span class="p">)</span><span class="o">+</span><span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="p">),</span><span class="n">L</span><span class="p">)</span> -<a name="ln-105"></a><span class="nl"> </span><span class="gs">C</span><span class="k">ALL </span><span class="n">RFOUFTR</span><span class="p">(</span><span class="n">CXMS</span><span class="p">,</span><span class="n">WSAVE</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">IFAX</span><span class="p">(:,</span><span class="n">J</span><span class="p">),</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="p">),</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-106"></a><span class="nl"> </span> <span class="n">CXMA</span><span class="p">(</span><span class="mi">1</span><span class="p">:</span><span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="p">))</span><span class="o">=</span><span class="n">FELD</span><span class="p">(</span><span class="n">MAXL</span><span class="o">-</span><span class="n">IND</span><span class="p">(</span><span class="n">J</span><span class="p">)</span><span class="o">-</span><span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">:</span><span class="n">MAXL</span><span class="o">-</span><span class="n">IND</span><span class="p">(</span><span class="n">J</span><span class="p">),</span><span class="n">L</span><span class="p">)</span> -<a name="ln-107"></a><span class="nl"> </span><span class="gs">C</span><span class="k">ALL </span><span class="n">RFOUFTR</span><span class="p">(</span><span class="n">CXMA</span><span class="p">,</span> -<a name="ln-108"></a><span class="nl"> </span><span class="gs">*</span><span class="n">WSAVE</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">IFAX</span><span class="p">(:,</span><span class="n">J</span><span class="p">),</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="p">),</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-109"></a><span class="nl"> </span><span class="gs">D</span><span class="n">O</span> <span class="mi">4</span> <span class="n">I</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="p">(</span><span class="n">MNAUF</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-110"></a><span class="nl"> </span><span class="gs"> </span><span class="n">CXM</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="o">=</span><span class="n">CXMS</span><span class="p">(</span><span class="n">I</span><span class="p">)</span><span class="o">+</span><span class="n">CXMA</span><span class="p">(</span><span class="n">I</span><span class="p">)</span> -<a name="ln-111"></a><span class="nl"> </span><span class="gs"> </span><span class="n">CXM</span><span class="p">(</span><span class="n">I</span><span class="p">,</span><span class="n">MAXB</span><span class="o">+</span><span class="mi">1</span><span class="o">-</span><span class="n">J</span><span class="p">)</span><span class="o">=</span><span class="n">CXMS</span><span class="p">(</span><span class="n">I</span><span class="p">)</span><span class="o">-</span><span class="n">CXMA</span><span class="p">(</span><span class="n">I</span><span class="p">)</span> -<a name="ln-112"></a><span class="nl">4 C</span><span class="gs">O</span><span class="n">NTINUE</span> -<a name="ln-113"></a><span class="nl"> 5</span> <span class="k">CONTINUE</span> -<a name="ln-114"></a><span class="nl"> </span> <span class="k">CALL </span><span class="n">LGTR213</span><span class="p">(</span><span class="n">CXMN</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="n">L</span><span class="p">),</span><span class="n">CXM</span><span class="p">,</span><span class="n">Z</span><span class="p">,</span><span class="n">W</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">MAXB</span><span class="p">)</span> -<a name="ln-115"></a> -<a name="ln-116"></a><span class="nl"> </span> <span class="k">DEALLOCATE</span><span class="p">(</span><span class="n">CXM</span><span class="p">)</span> -<a name="ln-117"></a> -<a name="ln-118"></a><span class="nl"> </span> <span class="k">RETURN</span> -<a name="ln-119"></a><span class="nl"> </span> <span class="k">END SUBROUTINE </span><span class="n">GRPHSUB</span> -<a name="ln-120"></a><span class="c">C</span> -<a name="ln-121"></a><span class="nl"> </span> <span class="k">SUBROUTINE </span><span class="n">LGTR213</span><span class="p">(</span><span class="n">CXMN</span><span class="p">,</span><span class="n">CXM</span><span class="p">,</span><span class="n">Z</span><span class="p">,</span><span class="n">W</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">MAXB</span><span class="p">)</span> -<a name="ln-122"></a><span class="nl"> </span> <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> -<a name="ln-123"></a><span class="nl"> </span> <span class="kt">INTEGER </span><span class="n">MLAT</span><span class="p">(</span><span class="n">MAXB</span><span class="p">)</span> -<a name="ln-124"></a><span class="nl"> </span> <span class="k">DIMENSION </span><span class="n">CXM</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="mi">4</span><span class="o">*</span><span class="n">MAXB</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="n">MAXB</span><span class="p">)</span> -<a name="ln-125"></a><span class="nl"> </span> <span class="k">DIMENSION </span><span class="n">CXMN</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="mi">2</span><span class="o">*</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="n">MNAUF</span><span class="p">)</span><span class="o">/</span><span class="mi">2</span><span class="o">+</span><span class="n">MNAUF</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-126"></a><span class="nl"> </span> <span class="kt">REAL</span><span class="o">*</span><span class="mi">8</span> <span class="n">Z</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="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> -<a name="ln-127"></a><span class="nl"> </span> <span class="kt">REAL</span><span class="o">*</span><span class="mi">8</span> <span class="n">W</span><span class="p">(</span><span class="n">MAXB</span><span class="p">),</span><span class="n">CR</span><span class="p">,</span><span class="n">CI</span><span class="p">,</span><span class="n">HILF</span> -<a name="ln-128"></a><span class="nl"> </span> <span class="kt">LOGICAL </span><span class="n">EVEN</span> -<a name="ln-129"></a><span class="c">C</span> -<a name="ln-130"></a><span class="c">C DIESE ROUTINE BERECHNET DIE KFFKs CXMN</span> -<a name="ln-131"></a><span class="c">C</span> -<a name="ln-132"></a><span class="nl"> LL</span><span class="gs">=</span><span class="mi">0</span> -<a name="ln-133"></a><span class="nl"> LL</span><span class="gs">P</span><span class="o">=</span><span class="mi">0</span> -<a name="ln-134"></a><span class="nl"> </span> <span class="k">DO </span><span class="mi">1</span> <span class="n">I</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span><span class="n">MNAUF</span> -<a name="ln-135"></a><span class="nl"> </span> <span class="n">KM</span><span class="o">=</span><span class="mi">0</span> -<a name="ln-136"></a><span class="nl"> 9</span> <span class="n">KM</span><span class="o">=</span><span class="n">KM</span><span class="o">+</span><span class="mi">1</span> -<a name="ln-137"></a><span class="nl"> </span> <span class="k">IF</span><span class="p">(</span><span class="n">MLAT</span><span class="p">(</span><span class="n">KM</span><span class="p">).</span><span class="n">LE</span><span class="p">.</span><span class="mi">2</span><span class="o">*</span><span class="n">I</span><span class="p">)</span> <span class="k">THEN</span> -<a name="ln-138"></a><span class="nl"> </span> <span class="k">GOTO </span><span class="mi">9</span> -<a name="ln-139"></a><span class="nl"> </span> <span class="n">ENDIF</span> -<a name="ln-140"></a><span class="nl"> </span> <span class="k">DO </span><span class="mi">2</span> <span class="n">J</span><span class="o">=</span><span class="n">I</span><span class="p">,</span><span class="n">MNAUF</span> -<a name="ln-141"></a><span class="nl"> </span> <span class="n">CR</span><span class="o">=</span><span class="mi">0</span> -<a name="ln-142"></a><span class="nl"> </span> <span class="n">CI</span><span class="o">=</span><span class="mi">0</span> -<a name="ln-143"></a><span class="nl"> </span> <span class="n">EVEN</span><span class="o">=</span><span class="nb">MOD</span><span class="p">(</span><span class="n">I</span><span class="o">+</span><span class="n">J</span><span class="p">,</span><span class="mi">2</span><span class="p">).</span><span class="n">EQ</span><span class="p">.</span><span class="mi">0</span> -<a name="ln-144"></a><span class="nl"> </span> <span class="k">IF</span><span class="p">(</span><span class="n">EVEN</span><span class="p">)</span> <span class="k">THEN</span> -<a name="ln-145"></a><span class="nl"> </span> <span class="k">DO </span><span class="mi">3</span> <span class="n">K</span><span class="o">=</span><span class="n">KM</span><span class="p">,</span><span class="n">MAXB</span><span class="o">/</span><span class="mi">2</span> -<a name="ln-146"></a><span class="nl"> </span> <span class="n">HILF</span><span class="o">=</span><span class="n">W</span><span class="p">(</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="n">Z</span><span class="p">(</span><span class="n">K</span><span class="p">,</span><span class="n">LLP</span><span class="p">)</span> -<a name="ln-147"></a><span class="nl"> </span> <span class="n">CR</span><span class="o">=</span><span class="n">CR</span><span class="o">+</span><span class="n">CXM</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">I</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="n">HILF</span> -<a name="ln-148"></a><span class="nl"> </span> <span class="n">CI</span><span class="o">=</span><span class="n">CI</span><span class="o">+</span><span class="n">CXM</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">I</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="n">HILF</span> -<a name="ln-149"></a><span class="nl"> 3</span> <span class="k">CONTINUE</span> -<a name="ln-150"></a><span class="nl"> </span> <span class="k">ELSE</span> -<a name="ln-151"></a><span class="nl"> </span> <span class="k">DO </span><span class="mi">4</span> <span class="n">K</span><span class="o">=</span><span class="n">KM</span><span class="p">,</span><span class="n">MAXB</span><span class="o">/</span><span class="mi">2</span> -<a name="ln-152"></a><span class="nl"> </span> <span class="n">HILF</span><span class="o">=</span><span class="n">W</span><span class="p">(</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="n">Z</span><span class="p">(</span><span class="n">K</span><span class="p">,</span><span class="n">LLP</span><span class="p">)</span> -<a name="ln-153"></a><span class="nl"> </span> <span class="n">CR</span><span class="o">=</span><span class="n">CR</span><span class="o">+</span><span class="n">CXM</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">I</span><span class="p">,</span><span class="n">MAXB</span><span class="o">+</span><span class="mi">1</span><span class="o">-</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="n">HILF</span> -<a name="ln-154"></a><span class="nl"> </span> <span class="n">CI</span><span class="o">=</span><span class="n">CI</span><span class="o">+</span><span class="n">CXM</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">I</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="n">MAXB</span><span class="o">+</span><span class="mi">1</span><span class="o">-</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="n">HILF</span> -<a name="ln-155"></a><span class="nl"> 4</span> <span class="k">CONTINUE</span> -<a name="ln-156"></a><span class="nl"> </span> <span class="n">ENDIF</span> -<a name="ln-157"></a><span class="nl"> 5</span> <span class="n">CXMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">LL</span><span class="p">)</span><span class="o">=</span><span class="n">CR</span> -<a name="ln-158"></a><span class="nl"> </span> <span class="n">CXMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">LL</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">CI</span> -<a name="ln-159"></a><span class="nl"> </span> <span class="n">LL</span><span class="o">=</span><span class="n">LL</span><span class="o">+</span><span class="mi">1</span> -<a name="ln-160"></a><span class="nl"> </span> <span class="n">LLP</span><span class="o">=</span><span class="n">LLP</span><span class="o">+</span><span class="mi">1</span> -<a name="ln-161"></a><span class="nl"> 2</span> <span class="k">CONTINUE</span> -<a name="ln-162"></a><span class="nl"> </span> <span class="n">LLP</span><span class="o">=</span><span class="n">LLP</span><span class="o">+</span><span class="mi">2</span> -<a name="ln-163"></a><span class="nl"> 1</span> <span class="k">CONTINUE</span> -<a name="ln-164"></a><span class="nl"> </span> <span class="k">RETURN</span> -<a name="ln-165"></a><span class="nl"> </span> <span class="k">END SUBROUTINE </span><span class="n">LGTR213</span> -<a name="ln-166"></a><span class="c">C</span> -<a name="ln-167"></a> -<a name="ln-168"></a><span class="c">C</span> -<a name="ln-169"></a><span class="nl"> </span> <span class="k">SUBROUTINE </span><span class="n">RFOUFTR</span><span class="p">(</span><span class="n">CXM</span><span class="p">,</span><span class="n">TRIGS</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="nb">ISIGN</span><span class="p">)</span> -<a name="ln-170"></a><span class="c">C BERECHNET DIE FOURIERSUMME MIT EINEM FFT-ALGORITHMUS</span> -<a name="ln-171"></a><span class="nl"> </span> <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> -<a name="ln-172"></a><span class="nl"> </span> <span class="k">DIMENSION </span><span class="n">CXM</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="mi">2</span><span class="o">*</span><span class="n">MAXL</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-173"></a><span class="nl"> </span> <span class="k">DIMENSION </span><span class="n">FELD</span><span class="p">(</span><span class="n">MAXL</span><span class="p">),</span><span class="n">TRIGS</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">MAXL</span><span class="p">)</span> -<a name="ln-174"></a><span class="nl"> </span> <span class="k">DIMENSION </span><span class="n">WSAVE</span><span class="p">(</span><span class="n">MAXAUF</span><span class="p">)</span> -<a name="ln-175"></a><span class="nl"> </span> <span class="kt">INTEGER </span><span class="n">IFAX</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span> -<a name="ln-176"></a> -<a name="ln-177"></a> -<a name="ln-178"></a><span class="c">C NORMIERUNG...</span> -<a name="ln-179"></a><span class="nl"> </span> <span class="n">WSAVE</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">CXM</span><span class="p">(</span><span class="n">MAXL</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-180"></a> -<a name="ln-181"></a><span class="nl"> </span> <span class="n">CXM</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="o">=</span><span class="n">CXM</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MAXL</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">/</span><span class="mi">2</span> -<a name="ln-182"></a><span class="nl"> </span> <span class="n">CXM</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span><span class="o">=</span><span class="n">WSAVE</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">/</span><span class="mi">2</span> -<a name="ln-183"></a><span class="c">! CALL CFFTF(MAXL,CXM,WSAVE)</span> -<a name="ln-184"></a><span class="nl"> </span> <span class="k">CALL </span><span class="n">FFT99</span><span class="p">(</span><span class="n">CXM</span><span class="p">,</span><span class="n">WSAVE</span><span class="p">,</span><span class="n">TRIGS</span><span class="p">,</span><span class="n">IFAX</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">MAXL</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-185"></a><span class="nl"> </span> <span class="k">RETURN</span> -<a name="ln-186"></a><span class="nl"> </span> <span class="k">END SUBROUTINE </span><span class="n">RFOUFTR</span> -<a name="ln-187"></a> -<a name="ln-188"></a><span class="nl"> </span> <span class="k">END MODULE </span><span class="n">GRTOPH</span> -</pre></div> - - </section> - </div> - </div> - - <section class="visible-xs visible-sm hidden-md"> - <hr> - - -<div class="panel panel-default"> - <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#allfiles-1">All Source Files</a></h3></div> - <div id="allfiles-1" class="panel-collapse collapse"> - <div class="list-group"> - - <a class="list-group-item" href="../sourcefile/grphreal.f.html">grphreal.f</a> - - <a class="list-group-item" href="../sourcefile/phgrreal.f.html">phgrreal.f</a> - - <a class="list-group-item" href="../sourcefile/preconvert.f90.html">preconvert.f90</a> - - <a class="list-group-item" href="../sourcefile/rwgrib2.f90.html">rwGRIB2.f90</a> - - </div> - </div> -</div> - - - </section> - - <hr> - </div> <!-- /container --> - <footer> - <div class="container"> - <div class="row"> - <div class="col-xs-6 col-md-4"><p>© 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> - <div class="col-xs-6 col-md-4 col-md-push-4"> - <p class="text-right"> - Documentation generated by - <a href="https://github.com/cmacmackin/ford">FORD</a> - - </p> - </div> - <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> - </div> - <br> - </div> <!-- /container --> - </footer> - - <!-- Bootstrap core JavaScript - ================================================== --> - <!-- Placed at the end of the document so the pages load faster --> -<!-- - <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> ---> - <script src="../js/bootstrap.min.js"></script> - <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> - <script src="../js/ie10-viewport-bug-workaround.js"></script> - - <!-- MathJax JavaScript - ================================================== --> - <!-- Placed at the end of the document so the pages load faster --> - <script type="text/x-mathjax-config"> - MathJax.Hub.Config({ - TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, - jax: ['input/TeX','input/MathML','output/HTML-CSS'], - extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'], - 'HTML-CSS': { - styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: '#000000 ! important'} } - } - }); - </script> - <!-- <script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> --> - </body> -</html> \ No newline at end of file diff --git a/Documentation/FORD/V5/Doc_original/sourcefile/phgrreal.f.html b/Documentation/FORD/V5/Doc_original/sourcefile/phgrreal.f.html deleted file mode 100644 index 5ca4cbca0f59c3c10f65c4a43075071440cdefc1..0000000000000000000000000000000000000000 --- a/Documentation/FORD/V5/Doc_original/sourcefile/phgrreal.f.html +++ /dev/null @@ -1,962 +0,0 @@ -<!DOCTYPE html> -<html lang="en"> - <head> - <meta charset="utf-8"> - <meta http-equiv="X-UA-Compatible" content="IE=edge"> - <meta name="viewport" content="width=device-width, initial-scale=1"> - - <meta name="description" content="Calculation of vertical velocity for FLEXPART"> - - <meta name="author" content="Leopold Haimberger" > - <link rel="icon" href="../favicon.png"> - - <title>phgrreal.f – Flex_extract: Calculation of etadot</title> - - <link href="../css/bootstrap.min.css" rel="stylesheet"> - <link href="../css/pygments.css" rel="stylesheet"> - <link href="../css/font-awesome.min.css" rel="stylesheet"> - <link href="../css/local.css" rel="stylesheet"> - - - <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> - <!--[if lt IE 9]> - <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> - <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> - <![endif]--> - - <script src="../js/jquery-2.1.3.min.js"></script> - <script src="../js/svg-pan-zoom.min.js"></script> - - - <script src="../tipuesearch/tipuesearch_content.js"></script> - <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> - <script src="../tipuesearch/tipuesearch_set.js"></script> - <script src="../tipuesearch/tipuesearch.js"></script> - - - </head> - - <body> - - <!-- Fixed navbar --> - <nav class="navbar navbar-inverse navbar-fixed-top"> - <div class="container"> - <div class="navbar-header"> - <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> - <span class="sr-only">Toggle navigation</span> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> - </div> - <div id="navbar" class="navbar-collapse collapse"> - <ul class="nav navbar-nav"> - - <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> - <a href="#" class="dropdown-toggle" - data-toggle="dropdown" role="button" - aria-haspopup="true" - aria-expanded="false">Contents <span class="caret"></span></a> - <ul class="dropdown-menu"> - - <li><a href="../lists/files.html">Source Files</a></li> - - - <li><a href="../lists/modules.html">Modules</a></li> - - - - <li><a href="../lists/procedures.html">Procedures</a></li> - - - - <li><a href="../program/preconvert.html">Program</a></li> - - </ul> - </li> - -<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> - - -<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> - - - -<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> - - - -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> - - </ul> - - <form action="../search.html" class="navbar-form navbar-right" role="search"> - <div class="form-group"> - <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> - </div> -<!-- - <button type="submit" class="btn btn-default">Submit</button> ---> - </form> - - </div><!--/.nav-collapse --> - </div> - </nav> - - <div class="container"> - - - <div class="row"> - <h1>phgrreal.f - <small>Source File</small> - - </h1> - -<div class="row"> - <div class="col-lg-12"> -<div class="well well-sm"> - <ul class="list-inline" style="margin-bottom:0px;display:inline"> - - - - - - - <li><i class="fa fa-list-ol"></i> - <a data-toggle="tooltip" - data-placement="bottom" data-html="true" - title="29.9% of total for source files.">397 statements</a> - </li> - - - <li><i class="fa fa-code"></i><a href="../src/phgrreal.f"> Source File</a></li> - - </ul> - <ol class="breadcrumb in-well text-right"> - - <li class="active">phgrreal.f</li> - </ol> -</div> -</div> -</div> -<script> - $(function () { - $('[data-toggle="tooltip"]').tooltip() - }) -</script> - - </div> - <div class="row"> - <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg"> - -<div id="sidebar"> - - - - - - - -<div class="panel panel-primary"> - <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#mods-0">Modules</a></h3></div> - <div id="mods-0" class="panel-collapse collapse"> - <div class="list-group"> - - <a class="list-group-item" href="../module/phtogr.html">PHTOGR</a> - - </div> - </div> -</div> - - - - - - - - - - - - - - - -<div class="panel panel-primary"> - <div class="panel-heading text-left"><h3 class="panel-title">Source Code</h3></div> - <div class="list-group"> - <a class="list-group-item" href="../sourcefile/phgrreal.f.html#src">phgrreal.f</a> - </div> -</div> - - - <hr> - - -<div class="panel panel-default"> - <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#allfiles-0">All Source Files</a></h3></div> - <div id="allfiles-0" class="panel-collapse collapse"> - <div class="list-group"> - - <a class="list-group-item" href="../sourcefile/grphreal.f.html">grphreal.f</a> - - <a class="list-group-item" href="../sourcefile/phgrreal.f.html">phgrreal.f</a> - - <a class="list-group-item" href="../sourcefile/preconvert.f90.html">preconvert.f90</a> - - <a class="list-group-item" href="../sourcefile/rwgrib2.f90.html">rwGRIB2.f90</a> - - </div> - </div> -</div> - - -</div> - - </div> - <div class="col-md-9" id='text'> - - - - <h3>Files Dependent On This One</h3> - - <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<!-- Generated by graphviz version 2.38.0 (20140413.2041) - --> -<!-- Title: sourcefile~~phgrreal.f~~AfferentGraph Pages: 1 --> -<svg id="sourcefilephgrrealfAfferentGraph" width="278pt" height="52pt" - viewBox="0.00 0.00 278.00 52.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> -<g id="sourcefile~~phgrreal.f~~AfferentGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 48)"> -<title>sourcefile~~phgrreal.f~~AfferentGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-48 274,-48 274,4 -4,4"/> -<!-- sourcefile~phgrreal.f --> -<g id="sourcefile~~phgrreal.f~~AfferentGraph_node1" class="node"><title>sourcefile~phgrreal.f</title> -<polygon fill="none" stroke="black" points="58,-24 3.55271e-15,-24 3.55271e-15,-0 58,-0 58,-24"/> -<text text-anchor="middle" x="29" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">phgrreal.f</text> -</g> -<!-- sourcefile~grphreal.f --> -<g id="sourcefile~~phgrreal.f~~AfferentGraph_node2" class="node"><title>sourcefile~grphreal.f</title> -<g id="a_sourcefile~~phgrreal.f~~AfferentGraph_node2"><a xlink:href="../sourcefile/grphreal.f.html" xlink:title="grphreal.f"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="152,-44 94,-44 94,-20 152,-20 152,-44"/> -<text text-anchor="middle" x="123" y="-29.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grphreal.f</text> -</a> -</g> -</g> -<!-- sourcefile~phgrreal.f->sourcefile~grphreal.f --> -<g id="sourcefile~~phgrreal.f~~AfferentGraph_edge2" class="edge"><title>sourcefile~phgrreal.f->sourcefile~grphreal.f</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M58.1029,-18.1093C66.2308,-19.8763 75.2419,-21.8352 83.872,-23.7113"/> -<polygon fill="#000000" stroke="#000000" points="83.2368,-27.1549 93.7521,-25.8592 84.7239,-20.3147 83.2368,-27.1549"/> -</g> -<!-- sourcefile~preconvert.f90 --> -<g id="sourcefile~~phgrreal.f~~AfferentGraph_node3" class="node"><title>sourcefile~preconvert.f90</title> -<g id="a_sourcefile~~phgrreal.f~~AfferentGraph_node3"><a xlink:href="../sourcefile/preconvert.f90.html" xlink:title="preconvert.f90"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="270,-24 188,-24 188,-0 270,-0 270,-24"/> -<text text-anchor="middle" x="229" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">preconvert.f90</text> -</a> -</g> -</g> -<!-- sourcefile~phgrreal.f->sourcefile~preconvert.f90 --> -<g id="sourcefile~~phgrreal.f~~AfferentGraph_edge3" class="edge"><title>sourcefile~phgrreal.f->sourcefile~preconvert.f90</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M58.0369,-11.4671C69.224,-11.2793 82.2211,-11.092 94,-11 119.777,-10.7986 126.223,-10.8304 152,-11 160.255,-11.0543 169.015,-11.1418 177.539,-11.243"/> -<polygon fill="#000000" stroke="#000000" points="177.726,-14.7456 187.77,-11.372 177.815,-7.74611 177.726,-14.7456"/> -</g> -<!-- sourcefile~grphreal.f->sourcefile~preconvert.f90 --> -<g id="sourcefile~~phgrreal.f~~AfferentGraph_edge1" class="edge"><title>sourcefile~grphreal.f->sourcefile~preconvert.f90</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M152.144,-26.5877C160.099,-25.058 169.004,-23.3453 177.839,-21.6463"/> -<polygon fill="#000000" stroke="#000000" points="178.57,-25.07 187.729,-19.7444 177.248,-18.1959 178.57,-25.07"/> -</g> -</g> -</svg> -</div> - <div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div> - <div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"> - <div class="modal-dialog modal-lg" role="document"> - <div class="modal-content"> - <div class="modal-header"> - <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> - <h4 class="modal-title" id="-graph-help-label">Graph Key</h4> - </div> - <div class="modal-body"> - - <p>Nodes of different colours represent the following: </p> - <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<!-- Generated by graphviz version 2.38.0 (20140413.2041) - --> -<!-- Title: Graph Key Pages: 1 --> -<svg width="190pt" height="32pt" - viewBox="0.00 0.00 190.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> -<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> -<title>Graph Key</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-28 186,-28 186,4 -4,4"/> -<!-- Source File --> -<g id="node1" class="node"><title>Source File</title> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="67,-24 0,-24 0,-0 67,-0 67,-24"/> -<text text-anchor="middle" x="33.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Source File</text> -</g> -<!-- This Page's Entity --> -<g id="node2" class="node"><title>This Page's Entity</title> -<polygon fill="none" stroke="black" points="182,-24 85,-24 85,-0 182,-0 182,-24"/> -<text text-anchor="middle" x="133.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> -</g> -</g> -</svg> - - - <p>Solid arrows point from a file to a file which depends upon it. A file - is dependent upon another if the latter must be compiled before the former - can be. - </p> - - </div> - </div> - </div> - </div> - - - <br> - - <section class="visible-xs visible-sm hidden-md"> - - - - - - - -<div class="panel panel-primary"> - <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#mods-1">Modules</a></h3></div> - <div id="mods-1" class="panel-collapse collapse"> - <div class="list-group"> - - <a class="list-group-item" href="../module/phtogr.html">PHTOGR</a> - - </div> - </div> -</div> - - - - - - - - - - - - - - - -<div class="panel panel-primary"> - <div class="panel-heading text-left"><h3 class="panel-title">Source Code</h3></div> - <div class="list-group"> - <a class="list-group-item" href="../sourcefile/phgrreal.f.html#src">phgrreal.f</a> - </div> -</div> - - - </section> - <br class="visible-xs visible-sm hidden-md"> - - <section> - <h2><span class="anchor" id="src"></span>Source Code</h2> - <div class="hl"><pre><span></span><a name="ln-1"></a><span class="nl"> </span> <span class="k">MODULE </span><span class="n">PHTOGR</span> -<a name="ln-2"></a> -<a name="ln-3"></a><span class="nl"> </span> <span class="kt">INTEGER</span><span class="p">,</span> <span class="k">PARAMETER</span> <span class="kd">::</span> <span class="n">MAXAUF</span><span class="o">=</span><span class="mi">36000</span> -<a name="ln-4"></a> -<a name="ln-5"></a><span class="nl"> </span> <span class="k">CONTAINS</span> -<a name="ln-6"></a> -<a name="ln-7"></a><span class="nl"> </span> <span class="k">SUBROUTINE </span><span class="n">PHGR213</span><span class="p">(</span><span class="n">CXMN</span><span class="p">,</span><span class="n">FELD</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">MLAT</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span> -<a name="ln-8"></a><span class="nl"> </span><span class="gs">*</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> -<a name="ln-9"></a> -<a name="ln-10"></a><span class="c">C DIE ROUTINE F]HRT EINE TRANSFORMATION EINER</span> -<a name="ln-11"></a><span class="c">C FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN</span> -<a name="ln-12"></a><span class="c">C RAUM AUF DAS REDUZIERTE GAUSS'SCHE GITTER DURCH</span> -<a name="ln-13"></a><span class="c">C</span> -<a name="ln-14"></a><span class="c">C CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE</span> -<a name="ln-15"></a><span class="c">C CX00,CX01,CX11,CX02,....CXMNAUFMNAUF</span> -<a name="ln-16"></a><span class="c">C FELD = FELD DER METEOROLOGISCHEN VARIABLEN</span> -<a name="ln-17"></a><span class="c">C WSAVE = Working Array fuer Fouriertransformation</span> -<a name="ln-18"></a><span class="c">C Z = LEGENDREFUNKTIONSWERTE</span> -<a name="ln-19"></a><span class="c">C</span> -<a name="ln-20"></a><span class="c">C MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN</span> -<a name="ln-21"></a><span class="c">C MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN</span> -<a name="ln-22"></a><span class="c">C MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN</span> -<a name="ln-23"></a><span class="c">C MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN</span> -<a name="ln-24"></a><span class="c">C</span> -<a name="ln-25"></a><span class="nl"> </span> <span class="k">IMPLICIT NONE</span> -<a name="ln-26"></a> -<a name="ln-27"></a><span class="c">C Anzahl der Gitterpunkte auf jedem Breitenkreis</span> -<a name="ln-28"></a><span class="nl"> </span> <span class="kt">INTEGER </span><span class="n">MLAT</span><span class="p">(</span><span class="n">MAXB</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span> -<a name="ln-29"></a><span class="nl"> </span> <span class="kt">INTEGER </span><span class="n">K</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">MNAUF</span> -<a name="ln-30"></a><span class="nl"> </span> <span class="kt">INTEGER </span><span class="n">IND</span><span class="p">(</span><span class="n">MAXB</span><span class="p">)</span> -<a name="ln-31"></a><span class="nl"> </span> -<a name="ln-32"></a> -<a name="ln-33"></a><span class="c">C FELD DER LEGENDREPOLYNOME FUER EINE BREITE</span> -<a name="ln-34"></a><span class="nl"> </span> <span class="kt">REAL </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="o">/</span><span class="mi">2</span><span class="p">)</span> -<a name="ln-35"></a> -<a name="ln-36"></a><span class="nl"> </span> <span class="kt">REAL </span><span class="n">CXMN</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="n">MLEVEL</span><span class="p">)</span> -<a name="ln-37"></a><span class="nl"> </span> <span class="kt">REAL </span><span class="n">FELD</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">)</span> -<a name="ln-38"></a><span class="nl"> </span> <span class="kt">REAL </span><span class="n">WSAVE</span><span class="p">(</span><span class="mi">8</span><span class="o">*</span><span class="n">MAXB</span><span class="o">+</span><span class="mi">15</span><span class="p">,</span><span class="n">MAXB</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span> -<a name="ln-39"></a><span class="nl"> </span> <span class="kt">INTEGER</span> <span class="kd">::</span> <span class="n">IFAX</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="n">MAXB</span><span class="p">)</span> -<a name="ln-40"></a><span class="nl"> </span> -<a name="ln-41"></a><span class="nl"> </span> <span class="n">IND</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="mi">0</span> -<a name="ln-42"></a><span class="nl"> </span><span class="gs"> </span><span class="k">DO </span><span class="mi">7</span> <span class="n">K</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">2</span> -<a name="ln-43"></a><span class="nl"> </span> <span class="n">IND</span><span class="p">(</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">IND</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">MLAT</span><span class="p">(</span><span class="n">K</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-44"></a><span class="nl">7 C</span><span class="gs">O</span><span class="n">NTINUE</span> -<a name="ln-45"></a> -<a name="ln-46"></a><span class="c">!$OMP PARALLEL DO SCHEDULE(DYNAMIC)</span> -<a name="ln-47"></a><span class="nl"> </span><span class="gs"> </span><span class="k">DO </span><span class="mi">17</span> <span class="n">K</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MAXB</span><span class="o">/</span><span class="mi">2</span> -<a name="ln-48"></a><span class="nl"> </span> <span class="k">CALL </span><span class="n">PHSYM</span><span class="p">(</span><span class="n">K</span><span class="p">,</span><span class="n">IND</span><span class="p">,</span><span class="n">CXMN</span><span class="p">,</span><span class="n">FELD</span><span class="p">,</span><span class="n">Z</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">MLAT</span><span class="p">,</span> -<a name="ln-49"></a><span class="nl"> </span><span class="gs">*</span><span class="n">MNAUF</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> -<a name="ln-50"></a> -<a name="ln-51"></a><span class="nl">17 </span><span class="gs">C</span><span class="n">ONTINUE</span> -<a name="ln-52"></a><span class="c">!$OMP END PARALLEL DO</span> -<a name="ln-53"></a> -<a name="ln-54"></a><span class="nl"> </span> <span class="k">RETURN</span> -<a name="ln-55"></a><span class="nl"> </span> <span class="k">END SUBROUTINE </span><span class="n">PHGR213</span> -<a name="ln-56"></a><span class="c">C</span> -<a name="ln-57"></a><span class="c">C</span> -<a name="ln-58"></a><span class="nl"> </span> <span class="k">SUBROUTINE </span><span class="n">PHSYM</span><span class="p">(</span><span class="n">K</span><span class="p">,</span><span class="n">IND</span><span class="p">,</span><span class="n">CXMN</span><span class="p">,</span><span class="n">FELD</span><span class="p">,</span><span class="n">Z</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">MLAT</span><span class="p">,</span> -<a name="ln-59"></a><span class="nl"> </span><span class="gs">*</span><span class="n">MNAUF</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> -<a name="ln-60"></a> -<a name="ln-61"></a><span class="nl"> </span> <span class="k">IMPLICIT NONE</span> -<a name="ln-62"></a> -<a name="ln-63"></a><span class="nl"> </span> <span class="kt">INTEGER </span><span class="n">MLAT</span><span class="p">(</span><span class="n">MAXB</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span> -<a name="ln-64"></a><span class="nl"> </span> <span class="kt">INTEGER </span><span class="n">K</span><span class="p">,</span><span class="n">L</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">LLS</span><span class="p">,</span><span class="n">LLPS</span><span class="p">,</span><span class="n">LL</span><span class="p">,</span><span class="n">LLP</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">MNAUF</span> -<a name="ln-65"></a><span class="nl"> </span> <span class="kt">INTEGER </span><span class="n">IND</span><span class="p">(</span><span class="n">MAXB</span><span class="p">)</span> -<a name="ln-66"></a><span class="nl"> </span> <span class="kt">INTEGER</span> <span class="kd">::</span> <span class="n">IFAX</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="n">MAXB</span><span class="p">)</span> -<a name="ln-67"></a><span class="nl"> </span> -<a name="ln-68"></a> -<a name="ln-69"></a><span class="c">C FELD DER FOURIERKOEFFIZIENTEN</span> -<a name="ln-70"></a><span class="nl"> </span> <span class="kt">REAL</span> <span class="kd">::</span> <span class="n">CXMS</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MAXAUF</span><span class="o">-</span><span class="mi">1</span><span class="p">),</span><span class="n">CXMA</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MAXAUF</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-71"></a> -<a name="ln-72"></a><span class="c">C FELD DER LEGENDREPOLYNOME FUER EINE BREITE</span> -<a name="ln-73"></a><span class="nl"> </span> <span class="kt">REAL </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="o">/</span><span class="mi">2</span><span class="p">)</span> -<a name="ln-74"></a><span class="nl"> </span> <span class="kt">REAL </span><span class="n">ACR</span><span class="p">,</span><span class="n">ACI</span><span class="p">,</span><span class="n">SCR</span><span class="p">,</span><span class="n">SCI</span> -<a name="ln-75"></a> -<a name="ln-76"></a><span class="nl"> </span> <span class="kt">REAL </span><span class="n">CXMN</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="n">MLEVEL</span><span class="p">)</span> -<a name="ln-77"></a><span class="nl"> </span> <span class="kt">REAL </span><span class="n">FELD</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">)</span> -<a name="ln-78"></a><span class="nl"> </span> <span class="kt">REAL </span><span class="n">WSAVE</span><span class="p">(</span><span class="mi">8</span><span class="o">*</span><span class="n">MAXB</span><span class="o">+</span><span class="mi">15</span><span class="p">,</span><span class="n">MAXB</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span> -<a name="ln-79"></a> -<a name="ln-80"></a><span class="nl"> </span> <span class="k">DO </span><span class="mi">6</span> <span class="n">L</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span> -<a name="ln-81"></a><span class="nl"> </span> <span class="n">LL</span><span class="o">=</span><span class="mi">0</span> -<a name="ln-82"></a><span class="nl"> </span> <span class="n">LLP</span><span class="o">=</span><span class="mi">0</span> -<a name="ln-83"></a><span class="nl"> </span> <span class="k">DO </span><span class="mi">1</span> <span class="n">I</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span><span class="n">MNAUF</span> -<a name="ln-84"></a><span class="nl"> </span> <span class="n">SCR</span><span class="o">=</span><span class="mf">0.D0</span> -<a name="ln-85"></a><span class="nl"> </span> <span class="n">SCI</span><span class="o">=</span><span class="mf">0.D0</span> -<a name="ln-86"></a><span class="nl"> </span> <span class="n">ACR</span><span class="o">=</span><span class="mf">0.D0</span> -<a name="ln-87"></a><span class="nl"> </span> <span class="n">ACI</span><span class="o">=</span><span class="mf">0.D0</span> -<a name="ln-88"></a><span class="nl"> </span> <span class="n">LLS</span><span class="o">=</span><span class="n">LL</span> -<a name="ln-89"></a><span class="nl"> </span> <span class="n">LLPS</span><span class="o">=</span><span class="n">LLP</span> -<a name="ln-90"></a><span class="nl"> </span> <span class="k">IF</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">I</span><span class="o">+</span><span class="mf">1.</span><span class="n">LT</span><span class="p">.</span><span class="n">MLAT</span><span class="p">(</span><span class="n">K</span><span class="p">))</span> <span class="k">THEN</span> -<a name="ln-91"></a><span class="c">C Innerste Schleife aufgespalten um if-Abfrage zu sparen</span> -<a name="ln-92"></a><span class="nl"> </span> <span class="k">DO </span><span class="mi">18</span> <span class="n">J</span><span class="o">=</span><span class="n">I</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="mi">2</span> -<a name="ln-93"></a><span class="nl"> </span> <span class="n">SCR</span><span class="o">=</span><span class="n">SCR</span><span class="o">+</span><span class="n">Z</span><span class="p">(</span><span class="n">LLP</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="n">CXMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">LL</span><span class="p">,</span><span class="n">L</span><span class="p">)</span> -<a name="ln-94"></a><span class="nl"> </span> <span class="n">SCI</span><span class="o">=</span><span class="n">SCI</span><span class="o">+</span><span class="n">Z</span><span class="p">(</span><span class="n">LLP</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="n">CXMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">LL</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="n">L</span><span class="p">)</span> -<a name="ln-95"></a><span class="nl"> </span> <span class="n">LL</span><span class="o">=</span><span class="n">LL</span><span class="o">+</span><span class="mi">2</span> -<a name="ln-96"></a><span class="nl"> </span> <span class="n">LLP</span><span class="o">=</span><span class="n">LLP</span><span class="o">+</span><span class="mi">2</span> -<a name="ln-97"></a><span class="nl">18 </span> <span class="k">CONTINUE</span> -<a name="ln-98"></a><span class="nl"> </span> <span class="n">LL</span><span class="o">=</span><span class="n">LLS</span><span class="o">+</span><span class="mi">1</span> -<a name="ln-99"></a><span class="nl"> </span> <span class="n">LLP</span><span class="o">=</span><span class="n">LLPS</span><span class="o">+</span><span class="mi">1</span> -<a name="ln-100"></a><span class="nl"> </span> <span class="k">DO </span><span class="mi">19</span> <span class="n">J</span><span class="o">=</span><span class="n">I</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="mi">2</span> -<a name="ln-101"></a><span class="nl"> </span> <span class="n">ACR</span><span class="o">=</span><span class="n">ACR</span><span class="o">+</span><span class="n">Z</span><span class="p">(</span><span class="n">LLP</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="n">CXMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">LL</span><span class="p">,</span><span class="n">L</span><span class="p">)</span> -<a name="ln-102"></a><span class="nl"> </span> <span class="n">ACI</span><span class="o">=</span><span class="n">ACI</span><span class="o">+</span><span class="n">Z</span><span class="p">(</span><span class="n">LLP</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="n">CXMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">LL</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="n">L</span><span class="p">)</span> -<a name="ln-103"></a><span class="nl"> </span> <span class="n">LL</span><span class="o">=</span><span class="n">LL</span><span class="o">+</span><span class="mi">2</span> -<a name="ln-104"></a><span class="nl"> </span> <span class="n">LLP</span><span class="o">=</span><span class="n">LLP</span><span class="o">+</span><span class="mi">2</span> -<a name="ln-105"></a><span class="nl">19 </span> <span class="k">CONTINUE</span> -<a name="ln-106"></a><span class="nl"> </span> <span class="n">ENDIF</span> -<a name="ln-107"></a><span class="nl"> </span> <span class="n">LL</span><span class="o">=</span><span class="n">LLS</span><span class="o">+</span><span class="p">(</span><span class="n">MNAUF</span><span class="o">-</span><span class="n">I</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-108"></a><span class="nl"> </span> <span class="n">LLP</span><span class="o">=</span><span class="n">LLPS</span><span class="o">+</span><span class="p">(</span><span class="n">MNAUF</span><span class="o">-</span><span class="n">I</span><span class="o">+</span><span class="mi">3</span><span class="p">)</span> -<a name="ln-109"></a><span class="nl"> </span> <span class="n">CXMS</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">I</span><span class="p">)</span><span class="o">=</span><span class="n">SCR</span><span class="o">+</span><span class="n">ACR</span> -<a name="ln-110"></a><span class="nl"> </span> <span class="n">CXMS</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">I</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">SCI</span><span class="o">+</span><span class="n">ACI</span> -<a name="ln-111"></a><span class="nl"> </span> <span class="n">CXMA</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">I</span><span class="p">)</span><span class="o">=</span><span class="n">SCR</span><span class="o">-</span><span class="n">ACR</span> -<a name="ln-112"></a><span class="nl"> </span> <span class="n">CXMA</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">I</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">SCI</span><span class="o">-</span><span class="n">ACI</span> -<a name="ln-113"></a><span class="nl"> 1</span> <span class="k">CONTINUE</span> -<a name="ln-114"></a><span class="c">C CALL FOURTR(CXMS,FELD(IND(k)+1,L),WSAVE(:,K),MNAUF,</span> -<a name="ln-115"></a><span class="c">C *MLAT(K),1)</span> -<a name="ln-116"></a><span class="c">C CALL FOURTR(CXMA,FELD(MAXL-IND(k)-MLAT(K)+1,L),</span> -<a name="ln-117"></a><span class="c">C *WSAVE(:,K),MNAUF,MLAT(K),1)</span> -<a name="ln-118"></a><span class="nl"> </span> <span class="k">CALL </span><span class="n">RFOURTR</span><span class="p">(</span><span class="n">CXMS</span><span class="p">,</span><span class="n">WSAVE</span><span class="p">(:,</span><span class="n">K</span><span class="p">),</span><span class="n">IFAX</span><span class="p">(:,</span><span class="n">K</span><span class="p">),</span><span class="n">MNAUF</span><span class="p">,</span> -<a name="ln-119"></a><span class="nl"> </span><span class="gs">*</span><span class="n">MLAT</span><span class="p">(</span><span class="n">K</span><span class="p">),</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-120"></a><span class="nl"> </span> <span class="n">FELD</span><span class="p">(</span><span class="n">IND</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">IND</span><span class="p">(</span><span class="n">K</span><span class="p">)</span><span class="o">+</span><span class="n">MLAT</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="o">=</span><span class="n">CXMS</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MLAT</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> -<a name="ln-121"></a><span class="nl"> </span> <span class="k">CALL </span><span class="n">RFOURTR</span><span class="p">(</span><span class="n">CXMA</span><span class="p">,</span> -<a name="ln-122"></a><span class="nl"> </span><span class="gs">*</span><span class="n">WSAVE</span><span class="p">(:,</span><span class="n">K</span><span class="p">),</span><span class="n">IFAX</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">MLAT</span><span class="p">(</span><span class="n">K</span><span class="p">),</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-123"></a><span class="nl"> </span> <span class="n">FELD</span><span class="p">(</span><span class="n">MAXL</span><span class="o">-</span><span class="n">IND</span><span class="p">(</span><span class="n">k</span><span class="p">)</span><span class="o">-</span><span class="n">MLAT</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">MAXL</span><span class="o">-</span><span class="n">IND</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="o">=</span><span class="n">CXMA</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MLAT</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> -<a name="ln-124"></a><span class="c">C WRITE(*,*) IND+1,FELD(IND+1,L)</span> -<a name="ln-125"></a><span class="nl">6 </span><span class="gs">C</span><span class="n">ONTINUE</span> -<a name="ln-126"></a> -<a name="ln-127"></a><span class="nl"> </span> <span class="k">END SUBROUTINE </span><span class="n">PHSYM</span> -<a name="ln-128"></a> -<a name="ln-129"></a><span class="nl"> </span> <span class="k">SUBROUTINE </span><span class="n">PHGCUT</span><span class="p">(</span><span class="n">CXMN</span><span class="p">,</span><span class="n">FELD</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> -<a name="ln-130"></a><span class="nl"> </span><span class="gs">*</span> <span class="n">MNAUF</span><span class="p">,</span><span class="n">MMAX</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> -<a name="ln-131"></a> -<a name="ln-132"></a><span class="c">C DIE ROUTINE FUEHRT EINE TRANSFORMATION EINER</span> -<a name="ln-133"></a><span class="c">C FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN</span> -<a name="ln-134"></a><span class="c">C RAUM AUF KUGELKOORDINATEN DURCH. Es kann ein Teilausschnitt</span> -<a name="ln-135"></a><span class="c">C Der Erde angegeben werden. Diese Routine ist langsamer als</span> -<a name="ln-136"></a><span class="c">C phgrph</span> -<a name="ln-137"></a><span class="c">C</span> -<a name="ln-138"></a><span class="c">C CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE</span> -<a name="ln-139"></a><span class="c">C CX00,CX01,CX11,CX02,....CXMNAUFMNAUF</span> -<a name="ln-140"></a><span class="c">C FELD = FELD DER METEOROLOGISCHEN VARIABLEN</span> -<a name="ln-141"></a><span class="c">C BREITE = SINUS DER GEOGRAFISCHEN BREITEN</span> -<a name="ln-142"></a><span class="c">C</span> -<a name="ln-143"></a><span class="c">C MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN</span> -<a name="ln-144"></a><span class="c">C MAUF ANZAHL DER LAENGEN UND DER FOURIERKOEFFIZIENTEN</span> -<a name="ln-145"></a><span class="c">C MANF ANFANG DES LAENGENBEREICHS FUER DAS GITTER,</span> -<a name="ln-146"></a><span class="c">C AUF DAS INTERPOLIERT WERDEN SOLL</span> -<a name="ln-147"></a><span class="c">C MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN</span> -<a name="ln-148"></a><span class="c">C MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN</span> -<a name="ln-149"></a><span class="c">C MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN</span> -<a name="ln-150"></a><span class="c">C</span> -<a name="ln-151"></a><span class="nl"> </span> <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> -<a name="ln-152"></a> -<a name="ln-153"></a><span class="c">C FELD DER FOURIERKOEFFIZIENTEN</span> -<a name="ln-154"></a> -<a name="ln-155"></a><span class="c">C FELD DER LEGENDREPOLYNOME FUER EINE BREITE</span> -<a name="ln-156"></a><span class="nl"> </span> <span class="kt">REAL </span><span class="n">Z</span><span class="p">(</span><span class="mi">0</span><span class="p">:((</span><span class="n">MMAX</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">MMAX</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> -<a name="ln-157"></a> -<a name="ln-158"></a><span class="nl"> </span> <span class="k">DIMENSION </span><span class="n">CXMN</span><span class="p">(</span><span class="mi">0</span><span class="p">:(</span><span class="n">MMAX</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">MMAX</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="n">MLEVEL</span><span class="p">)</span> -<a name="ln-159"></a><span class="nl"> </span> <span class="kt">REAL </span><span class="n">FELD</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> -<a name="ln-160"></a><span class="nl"> </span> <span class="k">DIMENSION </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> -<a name="ln-161"></a><span class="nl"> </span> <span class="kt">INTEGER</span><span class="kd">::</span> <span class="n">IFAX</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span> -<a name="ln-162"></a><span class="nl"> </span> -<a name="ln-163"></a><span class="nl"> </span> <span class="kt">LOGICAL </span><span class="n">SYM</span> -<a name="ln-164"></a> -<a name="ln-165"></a><span class="c">C</span> -<a name="ln-166"></a><span class="c">C write(*,*)mauf,mnauf,manf,maxl</span> -<a name="ln-167"></a> -<a name="ln-168"></a><span class="nl"> </span> -<a name="ln-169"></a><span class="nl"> </span> <span class="k">IF</span><span class="p">(</span><span class="n">MAUF</span><span class="p">.</span><span class="n">LE</span><span class="p">.</span><span class="n">MNAUF</span><span class="p">)</span> <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">'TOO COARSE LONGITUDE RESOLUTION'</span> -<a name="ln-170"></a><span class="nl"> </span> <span class="k">IF</span><span class="p">((</span><span class="n">MANF</span><span class="p">.</span><span class="n">LT</span><span class="p">.</span><span class="mi">1</span><span class="p">).</span><span class="nb">OR</span><span class="p">.(</span><span class="n">MAXL</span><span class="p">.</span><span class="n">LT</span><span class="p">.</span><span class="mi">1</span><span class="p">).</span><span class="nb">OR</span><span class="p">.</span> -<a name="ln-171"></a><span class="nl"> </span><span class="gs">*</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="nb">OR</span><span class="p">.(</span><span class="n">MAXL</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="k">THEN</span> -<a name="ln-172"></a><span class="nl"> </span> <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">'WRONG LONGITUDE RANGE'</span><span class="p">,</span><span class="n">MANF</span><span class="p">,</span><span class="n">MAXL</span> -<a name="ln-173"></a><span class="nl"> </span> <span class="k">STOP</span> -<a name="ln-174"></a><span class="nl"> </span> <span class="n">ENDIF</span> -<a name="ln-175"></a> -<a name="ln-176"></a><span class="c">C Pruefe, ob Ausgabegitter symmetrisch zum Aequator ist</span> -<a name="ln-177"></a><span class="c">C Wenn ja soll Symmetrie der Legendrepolynome ausgenutzt werden</span> -<a name="ln-178"></a><span class="nl"> </span> <span class="k">IF</span><span class="p">(</span><span class="n">MAXB</span> <span class="p">.</span><span class="n">GT</span><span class="p">.</span> <span class="mi">4</span><span class="p">)</span> <span class="k">THEN</span> -<a name="ln-179"></a><span class="nl"> </span> <span class="n">SYM</span><span class="o">=</span><span class="p">.</span><span class="n">TRUE</span><span class="p">.</span> -<a name="ln-180"></a><span class="nl"> </span><span class="gs">D</span><span class="n">O</span> <span class="mi">11</span> <span class="n">J</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span><span class="mi">5</span> -<a name="ln-181"></a><span class="nl"> </span> <span class="k">IF</span><span class="p">(</span><span class="nb">ABS</span><span class="p">(</span><span class="nb">ABS</span><span class="p">(</span><span class="n">Z</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="n">J</span><span class="p">))</span><span class="o">-</span><span class="nb">ABS</span><span class="p">(</span><span class="n">Z</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="n">MAXB</span><span class="o">+</span><span class="mi">1</span><span class="o">-</span><span class="n">J</span><span class="p">))).</span><span class="n">GT</span><span class="p">.</span><span class="err">1</span><span class="n">E</span><span class="o">-</span><span class="mi">11</span><span class="p">)</span> -<a name="ln-182"></a><span class="nl"> </span><span class="gs">*</span> <span class="n">SYM</span><span class="o">=</span><span class="p">.</span><span class="n">FALSE</span><span class="p">.</span> -<a name="ln-183"></a><span class="c">C WRITE(*,*) ABS(Z(100,J)),ABS(Z(100,MAXB+1-J))</span> -<a name="ln-184"></a><span class="nl">11 </span><span class="gs">C</span><span class="n">ONTINUE</span> -<a name="ln-185"></a><span class="nl"> </span> <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">'Symmetrisch: '</span><span class="p">,</span><span class="n">SYM</span> -<a name="ln-186"></a><span class="nl"> </span> <span class="k">ELSE</span> -<a name="ln-187"></a><span class="nl"> </span> <span class="n">SYM</span><span class="o">=</span><span class="p">.</span><span class="n">FALSE</span><span class="p">.</span> -<a name="ln-188"></a><span class="nl"> </span> <span class="n">ENDIF</span> -<a name="ln-189"></a> -<a name="ln-190"></a> -<a name="ln-191"></a><span class="nl"> IF(</span><span class="gs">S</span><span class="n">YM</span><span class="p">)</span> <span class="k">THEN</span> -<a name="ln-192"></a><span class="c">!$OMP PARALLEL DO </span> -<a name="ln-193"></a><span class="nl"> </span> <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="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">/</span><span class="mi">2</span> -<a name="ln-194"></a><span class="nl"> </span> <span class="k">CALL </span><span class="n">PHSYMCUT</span><span class="p">(</span><span class="n">J</span><span class="p">,</span><span class="n">CXMN</span><span class="p">,</span><span class="n">FELD</span><span class="p">,</span><span class="n">Z</span><span class="p">,</span><span class="n">WSAVE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span> -<a name="ln-195"></a><span class="nl"> </span><span class="gs">*</span><span class="n">MAUF</span><span class="p">,</span><span class="n">MNAUF</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">MANF</span><span class="p">)</span> -<a name="ln-196"></a> -<a name="ln-197"></a><span class="nl"> </span> <span class="n">ENDDO</span> -<a name="ln-198"></a><span class="c">!$OMP END PARALLEL DO</span> -<a name="ln-199"></a><span class="nl"> ELS</span><span class="gs">E</span> -<a name="ln-200"></a><span class="c">!$OMP PARALLEL DO </span> -<a name="ln-201"></a><span class="nl"> </span> <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> -<a name="ln-202"></a><span class="nl"> </span> <span class="k">CALL </span><span class="n">PHGPNS</span><span class="p">(</span><span class="n">CXMN</span><span class="p">,</span><span class="n">FELD</span><span class="p">,</span><span class="n">Z</span><span class="p">,</span><span class="n">WSAVE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span> -<a name="ln-203"></a><span class="nl"> </span><span class="gs">*</span><span class="n">J</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> -<a name="ln-204"></a><span class="nl"> </span> <span class="n">ENDDO</span> -<a name="ln-205"></a><span class="c">!$OMP END PARALLEL DO</span> -<a name="ln-206"></a> -<a name="ln-207"></a><span class="nl"> </span> <span class="n">ENDIF</span> -<a name="ln-208"></a> -<a name="ln-209"></a> -<a name="ln-210"></a><span class="nl"> </span> <span class="k">RETURN</span> -<a name="ln-211"></a><span class="nl"> </span> <span class="k">END SUBROUTINE </span><span class="n">PHGCUT</span> -<a name="ln-212"></a> -<a name="ln-213"></a><span class="nl"> </span> <span class="k">SUBROUTINE </span><span class="n">PHSYMCUT</span><span class="p">(</span><span class="n">J</span><span class="p">,</span><span class="n">CXMN</span><span class="p">,</span><span class="n">FELD</span><span class="p">,</span><span class="n">Z</span><span class="p">,</span><span class="n">WSAVE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span> -<a name="ln-214"></a><span class="nl"> </span><span class="gs">*</span><span class="n">MAUF</span><span class="p">,</span><span class="n">MNAUF</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">MANF</span><span class="p">)</span> -<a name="ln-215"></a> -<a name="ln-216"></a><span class="nl"> </span> <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> -<a name="ln-217"></a> -<a name="ln-218"></a><span class="c">C FELD DER FOURIERKOEFFIZIENTEN</span> -<a name="ln-219"></a> -<a name="ln-220"></a><span class="nl"> </span> <span class="kt">REAL</span> <span class="kd">::</span> <span class="n">CXM</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MAXAUF</span><span class="o">-</span><span class="mi">1</span><span class="p">),</span><span class="n">CXMA</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MAXAUF</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-221"></a> -<a name="ln-222"></a> -<a name="ln-223"></a><span class="c">C FELD DER LEGENDREPOLYNOME FUER EINE BREITE</span> -<a name="ln-224"></a><span class="nl"> </span> <span class="kt">REAL </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> -<a name="ln-225"></a><span class="nl"> </span> <span class="kt">REAL </span><span class="n">SCR</span><span class="p">,</span><span class="n">SCI</span><span class="p">,</span><span class="n">ACR</span><span class="p">,</span><span class="n">ACI</span> -<a name="ln-226"></a> -<a name="ln-227"></a><span class="nl"> </span> <span class="k">DIMENSION </span><span class="n">CXMN</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="n">MLEVEL</span><span class="p">)</span> -<a name="ln-228"></a><span class="nl"> </span> <span class="kt">REAL </span><span class="n">FELD</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> -<a name="ln-229"></a><span class="nl"> </span> <span class="k">DIMENSION </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> -<a name="ln-230"></a><span class="nl"> </span> <span class="kt">INTEGER</span> <span class="kd">::</span> <span class="n">IFAX</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span> -<a name="ln-231"></a> -<a name="ln-232"></a><span class="nl"> </span> <span class="k">DO </span><span class="mi">16</span> <span class="n">L</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span> -<a name="ln-233"></a><span class="nl"> </span> <span class="n">LL</span><span class="o">=</span><span class="mi">0</span> -<a name="ln-234"></a><span class="nl"> </span> <span class="n">LLP</span><span class="o">=</span><span class="mi">0</span> -<a name="ln-235"></a><span class="nl"> </span> <span class="k">DO </span><span class="mi">17</span> <span class="n">I</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span><span class="n">MNAUF</span> -<a name="ln-236"></a><span class="nl"> </span> <span class="n">SCR</span><span class="o">=</span><span class="mf">0.D0</span> -<a name="ln-237"></a><span class="nl"> </span> <span class="n">SCI</span><span class="o">=</span><span class="mf">0.D0</span> -<a name="ln-238"></a><span class="nl"> </span> <span class="n">ACR</span><span class="o">=</span><span class="mf">0.D0</span> -<a name="ln-239"></a><span class="nl"> </span> <span class="n">ACI</span><span class="o">=</span><span class="mf">0.D0</span> -<a name="ln-240"></a><span class="nl"> </span> <span class="n">LLS</span><span class="o">=</span><span class="n">LL</span> -<a name="ln-241"></a><span class="nl"> </span> <span class="n">LLPS</span><span class="o">=</span><span class="n">LLP</span> -<a name="ln-242"></a><span class="c">C Innerste Schleife aufgespalten um if-Abfrage zu sparen</span> -<a name="ln-243"></a><span class="nl"> </span> <span class="k">DO </span><span class="mi">18</span> <span class="n">K</span><span class="o">=</span><span class="n">I</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="mi">2</span> -<a name="ln-244"></a><span class="nl"> </span> <span class="n">SCR</span><span class="o">=</span><span class="n">SCR</span><span class="o">+</span><span class="n">Z</span><span class="p">(</span><span class="n">LLP</span><span class="p">,</span><span class="n">J</span><span class="p">)</span><span class="o">*</span><span class="n">CXMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">LL</span><span class="p">,</span><span class="n">L</span><span class="p">)</span> -<a name="ln-245"></a><span class="nl"> </span> <span class="n">SCI</span><span class="o">=</span><span class="n">SCI</span><span class="o">+</span><span class="n">Z</span><span class="p">(</span><span class="n">LLP</span><span class="p">,</span><span class="n">J</span><span class="p">)</span><span class="o">*</span><span class="n">CXMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">LL</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="n">L</span><span class="p">)</span> -<a name="ln-246"></a><span class="nl"> </span> <span class="n">LL</span><span class="o">=</span><span class="n">LL</span><span class="o">+</span><span class="mi">2</span> -<a name="ln-247"></a><span class="nl"> </span> <span class="n">LLP</span><span class="o">=</span><span class="n">LLP</span><span class="o">+</span><span class="mi">2</span> -<a name="ln-248"></a><span class="nl">18 </span> <span class="k">CONTINUE</span> -<a name="ln-249"></a><span class="nl"> </span> <span class="n">LL</span><span class="o">=</span><span class="n">LLS</span><span class="o">+</span><span class="mi">1</span> -<a name="ln-250"></a><span class="nl"> </span> <span class="n">LLP</span><span class="o">=</span><span class="n">LLPS</span><span class="o">+</span><span class="mi">1</span> -<a name="ln-251"></a><span class="nl"> </span> <span class="k">DO </span><span class="mi">19</span> <span class="n">K</span><span class="o">=</span><span class="n">I</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="mi">2</span> -<a name="ln-252"></a><span class="nl"> </span> <span class="n">ACR</span><span class="o">=</span><span class="n">ACR</span><span class="o">+</span><span class="n">Z</span><span class="p">(</span><span class="n">LLP</span><span class="p">,</span><span class="n">J</span><span class="p">)</span><span class="o">*</span><span class="n">CXMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">LL</span><span class="p">,</span><span class="n">L</span><span class="p">)</span> -<a name="ln-253"></a><span class="nl"> </span> <span class="n">ACI</span><span class="o">=</span><span class="n">ACI</span> <span class="o">+</span><span class="n">Z</span><span class="p">(</span><span class="n">LLP</span><span class="p">,</span><span class="n">J</span><span class="p">)</span><span class="o">*</span><span class="n">CXMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">LL</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="n">L</span><span class="p">)</span> -<a name="ln-254"></a><span class="nl"> </span> <span class="n">LL</span><span class="o">=</span><span class="n">LL</span><span class="o">+</span><span class="mi">2</span> -<a name="ln-255"></a><span class="nl"> </span> <span class="n">LLP</span><span class="o">=</span><span class="n">LLP</span><span class="o">+</span><span class="mi">2</span> -<a name="ln-256"></a><span class="nl">19 </span> <span class="k">CONTINUE</span> -<a name="ln-257"></a><span class="nl"> </span> <span class="n">LL</span><span class="o">=</span><span class="n">LLS</span><span class="o">+</span><span class="n">MNAUF</span><span class="o">-</span><span class="n">I</span><span class="o">+</span><span class="mi">1</span> -<a name="ln-258"></a><span class="nl"> </span> <span class="n">LLP</span><span class="o">=</span><span class="n">LLPS</span><span class="o">+</span><span class="n">MNAUF</span><span class="o">-</span><span class="n">I</span><span class="o">+</span><span class="mi">3</span> -<a name="ln-259"></a><span class="nl"> </span> <span class="n">CXM</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">I</span><span class="p">)</span><span class="o">=</span><span class="n">SCR</span><span class="o">+</span><span class="n">ACR</span> -<a name="ln-260"></a><span class="nl"> </span> <span class="n">CXM</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">I</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">SCI</span><span class="o">+</span><span class="n">ACI</span> -<a name="ln-261"></a><span class="nl"> </span> <span class="n">CXMA</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">I</span><span class="p">)</span><span class="o">=</span><span class="n">SCR</span><span class="o">-</span><span class="n">ACR</span> -<a name="ln-262"></a><span class="nl"> </span> <span class="n">CXMA</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">I</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">SCI</span><span class="o">-</span><span class="n">ACI</span> -<a name="ln-263"></a><span class="nl">17 </span> <span class="k">CONTINUE</span> -<a name="ln-264"></a><span class="nl"> </span> -<a name="ln-265"></a><span class="nl"> </span> <span class="k">CALL </span><span class="n">RFOURTR</span><span class="p">(</span><span class="n">CXM</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">MNAUF</span><span class="p">,</span><span class="n">MAUF</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-266"></a><span class="nl"> </span> <span class="k">DO </span><span class="mi">26</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> -<a name="ln-267"></a><span class="nl"> </span> <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">MAUF</span><span class="p">)</span> <span class="k">THEN</span> -<a name="ln-268"></a><span class="nl"> </span> <span class="n">FELD</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">L</span><span class="p">)</span><span class="o">=</span><span class="n">CXM</span><span class="p">(</span><span class="n">MANF</span><span class="o">+</span><span class="n">I</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-269"></a><span class="nl"> </span> <span class="k">ELSE</span> -<a name="ln-270"></a><span class="nl"> </span> <span class="n">FELD</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">L</span><span class="p">)</span><span class="o">=</span><span class="n">CXM</span><span class="p">(</span><span class="n">MANF</span><span class="o">-</span><span class="n">MAUF</span><span class="o">+</span><span class="n">I</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-271"></a><span class="nl"> </span> <span class="n">ENDIF</span> -<a name="ln-272"></a><span class="nl">26 </span> <span class="k">CONTINUE</span> -<a name="ln-273"></a><span class="nl"> </span> <span class="k">CALL </span><span class="n">RFOURTR</span><span class="p">(</span><span class="n">CXMA</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">MNAUF</span><span class="p">,</span><span class="n">MAUF</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-274"></a><span class="nl"> </span> <span class="k">DO </span><span class="mi">36</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> -<a name="ln-275"></a><span class="nl"> </span> <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">MAUF</span><span class="p">)</span> <span class="k">THEN</span> -<a name="ln-276"></a><span class="nl"> </span> <span class="n">FELD</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">MAXB</span><span class="o">+</span><span class="mi">1</span><span class="o">-</span><span class="n">J</span><span class="p">,</span><span class="n">L</span><span class="p">)</span><span class="o">=</span><span class="n">CXMA</span><span class="p">(</span><span class="n">MANF</span><span class="o">+</span><span class="n">I</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-277"></a><span class="nl"> </span> <span class="k">ELSE</span> -<a name="ln-278"></a><span class="nl"> </span> <span class="n">FELD</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">MAXB</span><span class="o">+</span><span class="mi">1</span><span class="o">-</span><span class="n">J</span><span class="p">,</span><span class="n">L</span><span class="p">)</span><span class="o">=</span><span class="n">CXMA</span><span class="p">(</span><span class="n">MANF</span><span class="o">-</span><span class="n">MAUF</span><span class="o">+</span><span class="n">I</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-279"></a><span class="nl"> </span> <span class="n">ENDIF</span> -<a name="ln-280"></a><span class="nl">36 </span> <span class="k">CONTINUE</span> -<a name="ln-281"></a><span class="nl">16 </span><span class="gs"> </span><span class="k">CONTINUE</span> -<a name="ln-282"></a> -<a name="ln-283"></a><span class="nl"> </span> <span class="k">END SUBROUTINE </span><span class="n">PHSYMCUT</span> -<a name="ln-284"></a> -<a name="ln-285"></a><span class="nl"> </span> <span class="k">SUBROUTINE </span><span class="n">PHGPNS</span><span class="p">(</span><span class="n">CXMN</span><span class="p">,</span><span class="n">FELD</span><span class="p">,</span><span class="n">Z</span><span class="p">,</span><span class="n">WSAVE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span> -<a name="ln-286"></a><span class="nl"> </span><span class="gs">*</span><span class="n">J</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> -<a name="ln-287"></a> -<a name="ln-288"></a><span class="nl"> </span> <span class="k">IMPLICIT NONE</span> -<a name="ln-289"></a><span class="nl"> </span> <span class="kt">INTEGER</span><span class="p">,</span><span class="k">intent</span><span class="p">(</span><span class="n">in</span><span class="p">)</span> <span class="kd">::</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">J</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> -<a name="ln-290"></a><span class="nl"> </span> <span class="kt">REAL</span> <span class="kd">::</span> <span class="n">CXM</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MAXAUF</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-291"></a><span class="nl"> </span> <span class="kt">REAL</span><span class="p">,</span><span class="k">intent</span><span class="p">(</span><span class="n">in</span><span class="p">)</span> <span class="kd">::</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> -<a name="ln-292"></a> -<a name="ln-293"></a><span class="nl"> </span> <span class="kt">REAL</span><span class="p">,</span><span class="k">intent</span><span class="p">(</span><span class="n">in</span><span class="p">)</span> <span class="kd">::</span> <span class="n">CXMN</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="n">MLEVEL</span><span class="p">)</span> -<a name="ln-294"></a> -<a name="ln-295"></a><span class="nl"> </span> <span class="kt">REAL</span><span class="p">,</span><span class="k">intent</span><span class="p">(</span><span class="n">in</span><span class="p">)</span> <span class="kd">::</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> -<a name="ln-296"></a> -<a name="ln-297"></a><span class="nl"> </span> <span class="kt">REAL</span> <span class="kd">::</span> <span class="n">FELD</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> -<a name="ln-298"></a><span class="nl"> </span> <span class="kt">INTEGER</span> <span class="kd">::</span> <span class="n">IFAX</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span> -<a name="ln-299"></a> -<a name="ln-300"></a><span class="nl"> </span> <span class="kt">INTEGER </span><span class="n">I</span><span class="p">,</span><span class="n">L</span> -<a name="ln-301"></a> -<a name="ln-302"></a><span class="nl"> </span> <span class="k">DO </span><span class="n">L</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span> -<a name="ln-303"></a><span class="nl"> </span> <span class="k">CALL </span><span class="n">LEGTR</span><span class="p">(</span><span class="n">CXMN</span><span class="p">(:,</span><span class="n">L</span><span class="p">),</span><span class="n">CXM</span><span class="p">,</span><span class="n">Z</span><span class="p">(:,</span><span class="n">J</span><span class="p">),</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MAUF</span><span class="p">)</span> -<a name="ln-304"></a><span class="nl"> </span> <span class="k">CALL </span><span class="n">RFOURTR</span><span class="p">(</span><span class="n">CXM</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">MNAUF</span><span class="p">,</span><span class="n">MAUF</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-305"></a><span class="nl"> </span> -<a name="ln-306"></a><span class="nl"> </span> <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> -<a name="ln-307"></a><span class="nl"> </span> <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">MAUF</span><span class="p">)</span> <span class="k">THEN</span> -<a name="ln-308"></a><span class="nl"> </span> <span class="n">FELD</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">L</span><span class="p">)</span><span class="o">=</span><span class="n">CXM</span><span class="p">(</span><span class="n">MANF</span><span class="o">+</span><span class="n">I</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-309"></a><span class="nl"> </span> <span class="k">ELSE</span> -<a name="ln-310"></a><span class="nl"> </span> <span class="n">FELD</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">L</span><span class="p">)</span><span class="o">=</span><span class="n">CXM</span><span class="p">(</span><span class="n">MANF</span><span class="o">-</span><span class="n">MAUF</span><span class="o">+</span><span class="n">I</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-311"></a><span class="nl"> </span> <span class="n">ENDIF</span> -<a name="ln-312"></a><span class="nl"> </span> <span class="n">ENDDO</span> -<a name="ln-313"></a><span class="nl"> </span> <span class="n">ENDDO</span> -<a name="ln-314"></a><span class="nl"> </span> <span class="k">END SUBROUTINE </span><span class="n">PHGPNS</span> -<a name="ln-315"></a><span class="c">C</span> -<a name="ln-316"></a><span class="nl"> </span> <span class="k">SUBROUTINE </span><span class="n">LEGTR</span><span class="p">(</span><span class="n">CXMN</span><span class="p">,</span><span class="n">CXM</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">MAUF</span><span class="p">)</span> -<a name="ln-317"></a><span class="nl"> </span> <span class="k">IMPLICIT NONE</span> -<a name="ln-318"></a><span class="nl"> </span> <span class="kt">INTEGER </span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MAUF</span><span class="p">,</span><span class="n">LL</span><span class="p">,</span><span class="n">LLP</span><span class="p">,</span><span class="n">I</span><span class="p">,</span><span class="n">J</span> -<a name="ln-319"></a><span class="nl"> </span> <span class="kt">REAL </span><span class="n">CXM</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MAXAUF</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-320"></a><span class="nl"> </span> <span class="kt">REAL </span><span class="n">CXMN</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> -<a name="ln-321"></a><span class="nl"> </span> <span class="kt">REAL </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> -<a name="ln-322"></a><span class="nl"> </span> <span class="kt">REAL </span><span class="n">CI</span><span class="p">,</span><span class="n">CR</span> -<a name="ln-323"></a><span class="c">C</span> -<a name="ln-324"></a><span class="c">C DIESE ROUTINE BERECHNET DIE FOURIERKOEFFIZIENTEN CXM</span> -<a name="ln-325"></a><span class="c">C</span> -<a name="ln-326"></a><span class="nl"> </span> <span class="n">LL</span><span class="o">=</span><span class="mi">0</span> -<a name="ln-327"></a><span class="nl"> </span> <span class="n">LLP</span><span class="o">=</span><span class="mi">0</span> -<a name="ln-328"></a><span class="nl"> </span> <span class="k">DO </span><span class="mi">1</span> <span class="n">I</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span><span class="n">MNAUF</span> -<a name="ln-329"></a><span class="nl"> </span> <span class="n">CR</span><span class="o">=</span><span class="mf">0.D0</span> -<a name="ln-330"></a><span class="nl"> </span> <span class="n">CI</span><span class="o">=</span><span class="mf">0.D0</span> -<a name="ln-331"></a><span class="nl"> </span> <span class="k">DO </span><span class="mi">2</span> <span class="n">J</span><span class="o">=</span><span class="n">I</span><span class="p">,</span><span class="n">MNAUF</span> -<a name="ln-332"></a><span class="nl"> </span> <span class="n">CR</span><span class="o">=</span><span class="n">CR</span><span class="o">+</span><span class="n">Z</span><span class="p">(</span><span class="n">LLP</span><span class="p">)</span><span class="o">*</span><span class="n">CXMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">LL</span><span class="p">)</span> -<a name="ln-333"></a><span class="nl"> </span> <span class="n">CI</span><span class="o">=</span><span class="n">CI</span><span class="o">+</span><span class="n">Z</span><span class="p">(</span><span class="n">LLP</span><span class="p">)</span><span class="o">*</span><span class="n">CXMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">LL</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-334"></a><span class="nl"> </span> <span class="n">LL</span><span class="o">=</span><span class="n">LL</span><span class="o">+</span><span class="mi">1</span> -<a name="ln-335"></a><span class="nl"> </span> <span class="n">LLP</span><span class="o">=</span><span class="n">LLP</span><span class="o">+</span><span class="mi">1</span> -<a name="ln-336"></a><span class="nl"> 2</span> <span class="k">CONTINUE</span> -<a name="ln-337"></a><span class="nl"> </span> <span class="n">LLP</span><span class="o">=</span><span class="n">LLP</span><span class="o">+</span><span class="mi">2</span> -<a name="ln-338"></a><span class="nl"> </span> <span class="n">CXM</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">I</span><span class="p">)</span><span class="o">=</span><span class="n">CR</span> -<a name="ln-339"></a><span class="nl"> </span> <span class="n">CXM</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">I</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">CI</span> -<a name="ln-340"></a><span class="nl"> 1</span> <span class="k">CONTINUE</span> -<a name="ln-341"></a><span class="nl"> </span> <span class="k">RETURN</span> -<a name="ln-342"></a><span class="nl"> </span> <span class="k">END SUBROUTINE </span><span class="n">LEGTR</span> -<a name="ln-343"></a><span class="c">C</span> -<a name="ln-344"></a><span class="c">C </span> -<a name="ln-345"></a><span class="c">C</span> -<a name="ln-346"></a><span class="nl"> </span> <span class="k">SUBROUTINE </span><span class="n">RFOURTR</span><span class="p">(</span><span class="n">CXM</span><span class="p">,</span><span class="n">TRIGS</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="nb">ISIGN</span><span class="p">)</span> -<a name="ln-347"></a><span class="c">C BERECHNET DIE FOURIERSUMME MIT EINEM FFT-ALGORITHMUS</span> -<a name="ln-348"></a><span class="nl"> </span> <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> -<a name="ln-349"></a><span class="nl"> </span> <span class="k">DIMENSION </span><span class="n">CXM</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MAXAUF</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-350"></a><span class="nl"> </span> <span class="kt">REAL</span> <span class="kd">::</span> <span class="n">WSAVE</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="n">TRIGS</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">MAXL</span><span class="p">)</span> -<a name="ln-351"></a><span class="nl"> </span> <span class="kt">INTEGER </span><span class="n">IFAX</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span> -<a name="ln-352"></a> -<a name="ln-353"></a><span class="nl"> </span> <span class="k">DO </span><span class="n">I</span><span class="o">=</span><span class="n">MNAUF</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="n">MAXL</span><span class="o">-</span><span class="mi">1</span> -<a name="ln-354"></a><span class="nl"> </span> <span class="n">CXM</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">I</span><span class="p">)</span><span class="o">=</span><span class="mf">0.0</span> -<a name="ln-355"></a><span class="nl"> </span> <span class="n">CXM</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">I</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="mf">0.0</span> -<a name="ln-356"></a><span class="nl"> </span> <span class="n">ENDDO</span> -<a name="ln-357"></a><span class="nl"> </span> <span class="k">CALL </span><span class="n">FFT99</span><span class="p">(</span><span class="n">CXM</span><span class="p">,</span><span class="n">WSAVE</span><span class="p">,</span><span class="n">TRIGS</span><span class="p">,</span><span class="n">IFAX</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">MAXL</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-358"></a><span class="nl"> </span> <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> -<a name="ln-359"></a><span class="nl"> </span> <span class="n">CXM</span><span class="p">(</span><span class="n">I</span><span class="p">)</span><span class="o">=</span><span class="n">CXM</span><span class="p">(</span><span class="n">I</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-360"></a><span class="nl"> </span> <span class="n">ENDDO</span> -<a name="ln-361"></a> -<a name="ln-362"></a><span class="nl"> </span> <span class="k">RETURN</span> -<a name="ln-363"></a><span class="nl"> </span> <span class="k">END SUBROUTINE </span><span class="n">RFOURTR</span> -<a name="ln-364"></a><span class="c">C </span> -<a name="ln-365"></a><span class="c">C </span> -<a name="ln-366"></a><span class="nl"> </span> <span class="k">SUBROUTINE </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">X</span><span class="p">,</span><span class="n">W</span><span class="p">,</span><span class="n">N</span><span class="p">)</span> -<a name="ln-367"></a><span class="c">C BERECHNET DIE GAUSS+SCHEN BREITEN</span> -<a name="ln-368"></a><span class="nl"> </span> <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> -<a name="ln-369"></a><span class="nl"> </span> <span class="k">DIMENSION </span><span class="n">X</span><span class="p">(</span><span class="n">N</span><span class="p">),</span><span class="n">W</span><span class="p">(</span><span class="n">N</span><span class="p">)</span> -<a name="ln-370"></a><span class="nl"> </span> <span class="k">PARAMETER</span> <span class="p">(</span><span class="n">EPS</span><span class="o">=</span><span class="mf">3.D-14</span><span class="p">)</span> -<a name="ln-371"></a><span class="nl"> </span> <span class="n">M</span><span class="o">=</span><span class="p">(</span><span class="n">N</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">/</span><span class="mi">2</span> -<a name="ln-372"></a><span class="nl"> </span> <span class="n">XM</span><span class="o">=</span><span class="mf">0.5D0</span><span class="o">*</span><span class="p">(</span><span class="n">X2</span><span class="o">+</span><span class="n">X1</span><span class="p">)</span> -<a name="ln-373"></a><span class="nl"> </span> <span class="n">XL</span><span class="o">=</span><span class="mf">0.5D0</span><span class="o">*</span><span class="p">(</span><span class="n">X2</span><span class="o">-</span><span class="n">X1</span><span class="p">)</span> -<a name="ln-374"></a><span class="nl"> </span> <span class="k">DO </span><span class="mi">12</span> <span class="n">I</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">M</span> -<a name="ln-375"></a><span class="nl"> </span> <span class="n">Z</span><span class="o">=</span><span class="nb">DCOS</span><span class="p">(</span><span class="mf">3.141592654D0</span><span class="o">*</span><span class="p">(</span><span class="n">I</span><span class="o">-</span><span class="p">.</span><span class="mi">25</span><span class="n">D0</span><span class="p">)</span><span class="o">/</span><span class="p">(</span><span class="n">N</span><span class="o">+</span><span class="p">.</span><span class="mi">5</span><span class="n">D0</span><span class="p">))</span> -<a name="ln-376"></a><span class="nl">1 </span> <span class="k">CONTINUE</span> -<a name="ln-377"></a><span class="nl"> </span> <span class="n">P1</span><span class="o">=</span><span class="mf">1.D0</span> -<a name="ln-378"></a><span class="nl"> </span> <span class="n">P2</span><span class="o">=</span><span class="mf">0.D0</span> -<a name="ln-379"></a><span class="nl"> </span> <span class="k">DO </span><span class="mi">11</span> <span class="n">J</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">N</span> -<a name="ln-380"></a><span class="nl"> </span> <span class="n">P3</span><span class="o">=</span><span class="n">P2</span> -<a name="ln-381"></a><span class="nl"> </span> <span class="n">P2</span><span class="o">=</span><span class="n">P1</span> -<a name="ln-382"></a><span class="nl"> </span> <span class="n">P1</span><span class="o">=</span><span class="p">((</span><span class="mf">2.D0</span><span class="o">*</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="n">Z</span><span class="o">*</span><span class="n">P2</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="n">P3</span><span class="p">)</span><span class="o">/</span><span class="n">J</span> -<a name="ln-383"></a><span class="nl">11 </span> <span class="k">CONTINUE</span> -<a name="ln-384"></a><span class="nl"> </span> <span class="n">PP</span><span class="o">=</span><span class="n">N</span><span class="o">*</span><span class="p">(</span><span class="n">Z</span><span class="o">*</span><span class="n">P1</span><span class="o">-</span><span class="n">P2</span><span class="p">)</span><span class="o">/</span><span class="p">(</span><span class="n">Z</span><span class="o">*</span><span class="n">Z</span><span class="o">-</span><span class="mf">1.D0</span><span class="p">)</span> -<a name="ln-385"></a><span class="nl"> </span> <span class="n">Z1</span><span class="o">=</span><span class="n">Z</span> -<a name="ln-386"></a><span class="nl"> </span> <span class="n">Z</span><span class="o">=</span><span class="n">Z1</span><span class="o">-</span><span class="n">P1</span><span class="o">/</span><span class="n">PP</span> -<a name="ln-387"></a><span class="nl"> </span> <span class="k">IF</span><span class="p">(</span><span class="nb">ABS</span><span class="p">(</span><span class="n">Z</span><span class="o">-</span><span class="n">Z1</span><span class="p">).</span><span class="n">GT</span><span class="p">.</span><span class="n">EPS</span><span class="p">)</span><span class="n">GO</span> <span class="n">TO</span> <span class="mi">1</span> -<a name="ln-388"></a><span class="nl"> </span> <span class="n">X</span><span class="p">(</span><span class="n">I</span><span class="p">)</span><span class="o">=</span><span class="n">XM</span><span class="o">-</span><span class="n">XL</span><span class="o">*</span><span class="n">Z</span> -<a name="ln-389"></a><span class="nl"> </span> <span class="n">X</span><span class="p">(</span><span class="n">N</span><span class="o">+</span><span class="mi">1</span><span class="o">-</span><span class="n">I</span><span class="p">)</span><span class="o">=</span><span class="n">XM</span><span class="o">+</span><span class="n">XL</span><span class="o">*</span><span class="n">Z</span> -<a name="ln-390"></a><span class="nl"> </span> <span class="n">W</span><span class="p">(</span><span class="n">I</span><span class="p">)</span><span class="o">=</span><span class="mf">2.D0</span><span class="o">*</span><span class="n">XL</span><span class="o">/</span><span class="p">((</span><span class="mf">1.D0</span><span class="o">-</span><span class="n">Z</span><span class="o">*</span><span class="n">Z</span><span class="p">)</span><span class="o">*</span><span class="n">PP</span><span class="o">*</span><span class="n">PP</span><span class="p">)</span> -<a name="ln-391"></a><span class="nl"> </span> <span class="n">W</span><span class="p">(</span><span class="n">N</span><span class="o">+</span><span class="mi">1</span><span class="o">-</span><span class="n">I</span><span class="p">)</span><span class="o">=</span><span class="n">W</span><span class="p">(</span><span class="n">I</span><span class="p">)</span> -<a name="ln-392"></a><span class="nl">12 </span> <span class="k">CONTINUE</span> -<a name="ln-393"></a><span class="nl"> </span> <span class="k">RETURN</span> -<a name="ln-394"></a><span class="nl"> </span> <span class="k">END SUBROUTINE </span><span class="n">GAULEG</span> -<a name="ln-395"></a><span class="c">C</span> -<a name="ln-396"></a><span class="c">C</span> -<a name="ln-397"></a><span class="nl"> </span> <span class="k">SUBROUTINE </span><span class="n">PLGNFA</span><span class="p">(</span><span class="n">LL</span><span class="p">,</span><span class="n">X</span><span class="p">,</span><span class="n">Z</span><span class="p">)</span> -<a name="ln-398"></a><span class="c">C</span> -<a name="ln-399"></a><span class="c">C PLGNDN BERECHNET ALLE NORMIERTEN ASSOZIIERTEN</span> -<a name="ln-400"></a><span class="c">C LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X)</span> -<a name="ln-401"></a><span class="c">C UND SCHREIBT SIE IN DAS FELD Z</span> -<a name="ln-402"></a><span class="c">C Die Polynome sind wie im ECMWF indiziert, d.h.</span> -<a name="ln-403"></a><span class="c">C P00,P10,P11,P20,P21,P22,...</span> -<a name="ln-404"></a><span class="c">C Ansonsten ist die Routine analog zu PLGNDN</span> -<a name="ln-405"></a><span class="c">C X IST DER COSINUS DES ZENITWINKELS ODER</span> -<a name="ln-406"></a><span class="c">C DER SINUS DER GEOGRAFISCHEN BREITE</span> -<a name="ln-407"></a><span class="c">C</span> -<a name="ln-408"></a><span class="nl"> </span> <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> -<a name="ln-409"></a><span class="nl"> </span> <span class="k">DIMENSION </span><span class="n">Z</span><span class="p">(</span><span class="mi">0</span><span class="p">:((</span><span class="n">LL</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">LL</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> -<a name="ln-410"></a><span class="c">C</span> -<a name="ln-411"></a><span class="nl"> </span> <span class="n">L</span><span class="o">=</span><span class="n">LL</span><span class="o">+</span><span class="mi">2</span> -<a name="ln-412"></a><span class="nl"> </span> <span class="n">I</span><span class="o">=</span><span class="mi">1</span> -<a name="ln-413"></a><span class="nl"> </span> <span class="n">Z</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span><span class="o">=</span><span class="mf">1.D0</span> -<a name="ln-414"></a><span class="nl"> </span> <span class="n">FACT</span><span class="o">=</span><span class="mf">1.D0</span> -<a name="ln-415"></a><span class="nl"> </span> <span class="n">POT</span><span class="o">=</span><span class="mf">1.D0</span> -<a name="ln-416"></a><span class="nl"> </span> <span class="n">SOMX2</span><span class="o">=</span><span class="nb">DSQRT</span><span class="p">(</span><span class="mf">1.D0</span><span class="o">-</span><span class="n">X</span><span class="o">*</span><span class="n">X</span><span class="p">)</span> -<a name="ln-417"></a><span class="nl"> </span> <span class="k">DO </span><span class="mi">14</span> <span class="n">J</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span><span class="n">L</span> -<a name="ln-418"></a><span class="nl"> </span> <span class="n">DJ</span><span class="o">=</span><span class="nb">DBLE</span><span class="p">(</span><span class="n">J</span><span class="p">)</span> -<a name="ln-419"></a><span class="nl"> </span> <span class="k">IF</span><span class="p">(</span><span class="n">J</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="k">THEN</span> -<a name="ln-420"></a><span class="nl"> </span> <span class="n">FACT</span><span class="o">=</span><span class="n">FACT</span><span class="o">*</span><span class="p">(</span><span class="mf">2.D0</span><span class="o">*</span><span class="n">DJ</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="mf">2.D0</span><span class="o">*</span><span class="n">DJ</span><span class="p">)</span> -<a name="ln-421"></a><span class="nl"> </span> <span class="n">POT</span><span class="o">=</span><span class="n">POT</span><span class="o">*</span><span class="n">SOMX2</span> -<a name="ln-422"></a><span class="nl"> </span> <span class="n">Z</span><span class="p">(</span><span class="n">I</span><span class="p">)</span><span class="o">=</span><span class="nb">DSQRT</span><span class="p">((</span><span class="mf">2.D0</span><span class="o">*</span><span class="n">DJ</span><span class="o">+</span><span class="mf">1.D0</span><span class="p">)</span><span class="o">*</span><span class="n">FACT</span><span class="p">)</span><span class="o">*</span><span class="n">POT</span> -<a name="ln-423"></a><span class="nl"> </span> <span class="n">I</span><span class="o">=</span><span class="n">I</span><span class="o">+</span><span class="mi">1</span> -<a name="ln-424"></a><span class="nl"> </span> <span class="n">ENDIF</span> -<a name="ln-425"></a><span class="nl"> </span> <span class="k">IF</span><span class="p">(</span><span class="n">J</span><span class="p">.</span><span class="n">LT</span><span class="p">.</span><span class="n">L</span><span class="p">)</span> <span class="k">THEN</span> -<a name="ln-426"></a><span class="nl"> </span> <span class="n">Z</span><span class="p">(</span><span class="n">I</span><span class="p">)</span><span class="o">=</span><span class="n">X</span><span class="o">*</span> -<a name="ln-427"></a><span class="nl"> </span><span class="gs">*</span><span class="nb">DSQRT</span><span class="p">((</span><span class="mf">4.D0</span><span class="o">*</span><span class="n">DJ</span><span class="o">*</span><span class="n">DJ</span><span class="o">+</span><span class="mf">8.D0</span><span class="o">*</span><span class="n">DJ</span><span class="o">+</span><span class="mf">3.D0</span><span class="p">)</span><span class="o">/</span><span class="p">(</span><span class="mf">2.D0</span><span class="o">*</span><span class="n">DJ</span><span class="o">+</span><span class="mf">1.D0</span><span class="p">))</span><span class="o">*</span><span class="n">Z</span><span class="p">(</span><span class="n">I</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-428"></a><span class="nl"> </span> <span class="n">I</span><span class="o">=</span><span class="n">I</span><span class="o">+</span><span class="mi">1</span> -<a name="ln-429"></a><span class="nl"> </span> <span class="n">ENDIF</span> -<a name="ln-430"></a><span class="nl"> </span> <span class="n">DK</span><span class="o">=</span><span class="n">DJ</span><span class="o">+</span><span class="mf">2.D0</span> -<a name="ln-431"></a><span class="nl"> </span> <span class="k">DO </span><span class="mi">14</span> <span class="n">K</span><span class="o">=</span><span class="n">J</span><span class="o">+</span><span class="mi">2</span><span class="p">,</span><span class="n">L</span> -<a name="ln-432"></a><span class="nl"> </span> <span class="n">DDK</span><span class="o">=</span><span class="p">(</span><span class="n">DK</span><span class="o">*</span><span class="n">DK</span><span class="o">-</span><span class="n">DJ</span><span class="o">*</span><span class="n">DJ</span><span class="p">)</span> -<a name="ln-433"></a><span class="nl"> </span> <span class="n">Z</span><span class="p">(</span><span class="n">I</span><span class="p">)</span><span class="o">=</span><span class="n">X</span><span class="o">*</span><span class="nb">DSQRT</span><span class="p">((</span><span class="mf">4.D0</span><span class="o">*</span><span class="n">DK</span><span class="o">*</span><span class="n">DK</span><span class="o">-</span><span class="mf">1.D0</span><span class="p">)</span><span class="o">/</span><span class="n">DDK</span><span class="p">)</span><span class="o">*</span><span class="n">Z</span><span class="p">(</span><span class="n">I</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">-</span> -<a name="ln-434"></a><span class="nl"> </span><span class="gs">*</span> <span class="nb">DSQRT</span><span class="p">(((</span><span class="mf">2.D0</span><span class="o">*</span><span class="n">DK</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">DK</span><span class="o">-</span><span class="n">DJ</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">DK</span><span class="o">+</span><span class="n">DJ</span><span class="o">-</span><span class="mf">1.D0</span><span class="p">))</span><span class="o">/</span> -<a name="ln-435"></a><span class="nl"> </span><span class="gs">*</span> <span class="p">((</span><span class="mf">2.D0</span><span class="o">*</span><span class="n">DK</span><span class="o">-</span><span class="mf">3.D0</span><span class="p">)</span><span class="o">*</span><span class="n">DDK</span><span class="p">))</span><span class="o">*</span><span class="n">Z</span><span class="p">(</span><span class="n">I</span><span class="o">-</span><span class="mi">2</span><span class="p">)</span> -<a name="ln-436"></a><span class="nl"> </span> <span class="n">DK</span><span class="o">=</span><span class="n">DK</span><span class="o">+</span><span class="mf">1.D0</span> -<a name="ln-437"></a><span class="nl"> </span> <span class="n">I</span><span class="o">=</span><span class="n">I</span><span class="o">+</span><span class="mi">1</span> -<a name="ln-438"></a><span class="nl">14 </span> <span class="k">CONTINUE</span> -<a name="ln-439"></a><span class="nl"> </span> <span class="k">RETURN</span> -<a name="ln-440"></a><span class="nl"> </span> <span class="k">END SUBROUTINE </span><span class="n">PLGNFA</span> -<a name="ln-441"></a> -<a name="ln-442"></a> -<a name="ln-443"></a><span class="nl"> </span> <span class="k">SUBROUTINE </span><span class="n">DPLGND</span><span class="p">(</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">Z</span><span class="p">,</span><span class="n">DZ</span><span class="p">)</span> -<a name="ln-444"></a><span class="c">C</span> -<a name="ln-445"></a><span class="c">C DPLGND BERECHNET DIE ABLEITUNG DER NORMIERTEN ASSOZIIERTEN</span> -<a name="ln-446"></a><span class="c">C LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X)</span> -<a name="ln-447"></a><span class="c">C UND SCHREIBT SIE IN DAS FELD DZ</span> -<a name="ln-448"></a><span class="c">C DIE REIHENFOLGE IST</span> -<a name="ln-449"></a><span class="c">C P00(X),P01(X),P11(X),P02(X),P12(X),P22(X),..PLL(X)</span> -<a name="ln-450"></a><span class="c">C</span> -<a name="ln-451"></a><span class="nl"> </span> <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> -<a name="ln-452"></a><span class="nl"> </span> <span class="k">DIMENSION </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> -<a name="ln-453"></a><span class="nl"> </span> <span class="k">DIMENSION </span><span class="n">DZ</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> -<a name="ln-454"></a><span class="c">C</span> -<a name="ln-455"></a><span class="nl"> I</span><span class="gs">F</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">NE</span><span class="p">.</span><span class="mf">1.D0</span><span class="p">)</span> <span class="k">THEN</span> -<a name="ln-456"></a><span class="nl"> WR</span><span class="gs">I</span><span class="n">TE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="o">*</span><span class="p">)</span> <span class="s1">'DPLGND: Z(0) must be 1.0'</span> -<a name="ln-457"></a><span class="nl"> </span><span class="gs">S</span><span class="n">TOP</span> -<a name="ln-458"></a><span class="nl"> E</span><span class="gs">N</span><span class="n">DIF</span> -<a name="ln-459"></a> -<a name="ln-460"></a><span class="nl"> L</span><span class="gs">L</span><span class="n">P</span><span class="o">=</span><span class="mi">0</span> -<a name="ln-461"></a><span class="nl"> L</span><span class="gs">L</span><span class="n">H</span><span class="o">=</span><span class="mi">0</span> -<a name="ln-462"></a><span class="nl"> </span> <span class="k">DO </span><span class="mi">1</span> <span class="n">I</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">1</span> -<a name="ln-463"></a><span class="nl"> </span> <span class="k">DO </span><span class="mi">2</span> <span class="n">J</span><span class="o">=</span><span class="n">I</span><span class="p">,</span><span class="n">MNAUF</span><span class="o">+</span><span class="mi">1</span> -<a name="ln-464"></a><span class="nl"> </span> <span class="k">IF</span><span class="p">(</span><span class="n">I</span><span class="p">.</span><span class="n">EQ</span><span class="p">.</span><span class="n">J</span><span class="p">)</span> <span class="k">THEN</span> -<a name="ln-465"></a><span class="nl"> </span> <span class="n">WURZELA</span><span class="o">=</span> -<a name="ln-466"></a><span class="nl"> </span><span class="gs">*</span><span class="nb">DSQRT</span><span class="p">(</span><span class="nb">DBLE</span><span class="p">((</span><span class="n">J</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">J</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">-</span><span class="n">I</span><span class="o">*</span><span class="n">I</span><span class="p">)</span><span class="o">/</span><span class="nb">DBLE</span><span class="p">(</span><span class="mi">4</span><span class="o">*</span><span class="p">(</span><span class="n">J</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">J</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span> -<a name="ln-467"></a><span class="nl"> </span> <span class="n">DZ</span><span class="p">(</span><span class="n">LLH</span><span class="p">)</span><span class="o">=</span><span class="nb">DBLE</span><span class="p">(</span><span class="n">J</span><span class="p">)</span><span class="o">*</span><span class="n">WURZELA</span><span class="o">*</span><span class="n">Z</span><span class="p">(</span><span class="n">LLP</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-468"></a><span class="nl"> </span> <span class="k">ELSE</span> -<a name="ln-469"></a><span class="nl"> </span> <span class="n">WURZELB</span><span class="o">=</span> -<a name="ln-470"></a><span class="nl"> </span><span class="gs">*</span><span class="nb">DSQRT</span><span class="p">(</span><span class="nb">DBLE</span><span class="p">((</span><span class="n">J</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">J</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">-</span><span class="n">I</span><span class="o">*</span><span class="n">I</span><span class="p">)</span><span class="o">/</span><span class="nb">DBLE</span><span class="p">(</span><span class="mi">4</span><span class="o">*</span><span class="p">(</span><span class="n">J</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">J</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span> -<a name="ln-471"></a><span class="nl"> </span> <span class="n">DZ</span><span class="p">(</span><span class="n">LLH</span><span class="p">)</span><span class="o">=</span> -<a name="ln-472"></a><span class="nl"> </span><span class="gs">*</span><span class="nb">DBLE</span><span class="p">(</span><span class="n">J</span><span class="p">)</span><span class="o">*</span><span class="n">WURZELB</span><span class="o">*</span><span class="n">Z</span><span class="p">(</span><span class="n">LLP</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">-</span><span class="nb">DBLE</span><span class="p">(</span><span class="n">J</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">*</span><span class="n">WURZELA</span><span class="o">*</span><span class="n">Z</span><span class="p">(</span><span class="n">LLP</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> -<a name="ln-473"></a><span class="nl"> </span><span class="gs"> </span> <span class="n">WURZELA</span><span class="o">=</span><span class="n">WURZELB</span> -<a name="ln-474"></a><span class="nl"> </span> <span class="n">ENDIF</span> -<a name="ln-475"></a><span class="nl"> </span> <span class="n">LLH</span><span class="o">=</span><span class="n">LLH</span><span class="o">+</span><span class="mi">1</span> -<a name="ln-476"></a><span class="nl"> </span> <span class="n">LLP</span><span class="o">=</span><span class="n">LLP</span><span class="o">+</span><span class="mi">1</span> -<a name="ln-477"></a><span class="nl">2 </span> <span class="k">CONTINUE</span> -<a name="ln-478"></a><span class="nl"> </span> <span class="n">LLP</span><span class="o">=</span><span class="n">LLP</span><span class="o">+</span><span class="mi">1</span> -<a name="ln-479"></a><span class="nl">1 CON</span><span class="gs">T</span><span class="n">INUE</span> -<a name="ln-480"></a><span class="nl"> RETU</span><span class="gs">R</span><span class="n">N</span> -<a name="ln-481"></a><span class="nl"> END </span><span class="gs">S</span><span class="n">UBROUTINE</span> <span class="n">DPLGND</span> -<a name="ln-482"></a> -<a name="ln-483"></a> -<a name="ln-484"></a><span class="c">* Spectral Filter of Sardeshmukh and Hoskins (1984, MWR)</span> -<a name="ln-485"></a><span class="c">* MM=Spectral truncation of field</span> -<a name="ln-486"></a><span class="c">* MMAX= Spectral truncation of filter</span> -<a name="ln-487"></a><span class="c">*</span> -<a name="ln-488"></a><span class="nl"> </span> <span class="k">SUBROUTINE </span><span class="n">SPFILTER</span><span class="p">(</span><span class="n">FELDMN</span><span class="p">,</span><span class="n">MM</span><span class="p">,</span><span class="n">MMAX</span><span class="p">)</span> -<a name="ln-489"></a> -<a name="ln-490"></a><span class="nl"> </span> <span class="k">IMPLICIT NONE</span> -<a name="ln-491"></a> -<a name="ln-492"></a><span class="nl"> </span> <span class="kt">INTEGER </span><span class="n">MM</span><span class="p">,</span><span class="n">MMAX</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">L</span> -<a name="ln-493"></a><span class="nl"> </span> <span class="kt">REAL </span><span class="n">FELDMN</span><span class="p">(</span><span class="mi">0</span><span class="p">:(</span><span class="n">MM</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">MM</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> -<a name="ln-494"></a><span class="nl"> </span> <span class="kt">REAL </span><span class="n">KMAX</span><span class="p">,</span><span class="n">SMAX</span><span class="p">,</span><span class="n">FAK</span> -<a name="ln-495"></a> -<a name="ln-496"></a><span class="nl"> </span> <span class="n">SMAX</span><span class="o">=</span><span class="mf">0.1</span> -<a name="ln-497"></a><span class="nl"> </span> <span class="n">KMAX</span><span class="o">=-</span><span class="nb">ALOG</span><span class="p">(</span><span class="n">SMAX</span><span class="p">)</span> -<a name="ln-498"></a><span class="nl"> </span> <span class="n">KMAX</span><span class="o">=</span><span class="n">KMAX</span><span class="o">/</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="n">MMAX</span><span class="p">)</span><span class="o">*</span><span class="nb">float</span><span class="p">(</span><span class="n">MMAX</span><span class="o">+</span><span class="mi">1</span><span class="p">))</span><span class="o">**</span><span class="mi">2</span> -<a name="ln-499"></a><span class="c">c WRITE(*,*)'alogsmax',alog(smax),'KMAX:',KMAX</span> -<a name="ln-500"></a><span class="nl"> </span> <span class="n">l</span><span class="o">=</span><span class="mi">0</span> -<a name="ln-501"></a><span class="nl"> </span> <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">MM</span> -<a name="ln-502"></a><span class="nl"> </span> <span class="k">do </span><span class="n">j</span><span class="o">=</span><span class="n">i</span><span class="p">,</span><span class="n">MM</span> -<a name="ln-503"></a><span class="c">c write(*,*) i,j,feld(k),feld(k)*exp(-KMAX*(j*(j+1))**2)</span> -<a name="ln-504"></a><span class="nl"> </span> <span class="k">if</span><span class="p">(</span><span class="n">j</span> <span class="p">.</span><span class="n">le</span><span class="p">.</span> <span class="n">MMAX</span><span class="p">)</span> <span class="k">then</span> -<a name="ln-505"></a><span class="c">c fak=exp(-KMAX*(j*(j+1))**2)</span> -<a name="ln-506"></a><span class="nl"> </span> <span class="n">fak</span><span class="o">=</span><span class="mf">1.0</span> -<a name="ln-507"></a><span class="nl"> </span> <span class="n">feldmn</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">l</span><span class="p">)</span><span class="o">=</span><span class="n">feldmn</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">l</span><span class="p">)</span><span class="o">*</span><span class="n">fak</span> -<a name="ln-508"></a><span class="nl"> </span> <span class="n">feldmn</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">l</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">feldmn</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">l</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">*</span><span class="n">fak</span> -<a name="ln-509"></a><span class="nl"> </span> <span class="k">else</span> -<a name="ln-510"></a><span class="nl"> </span> <span class="n">feldmn</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">l</span><span class="p">)</span><span class="o">=</span><span class="mf">0.</span> -<a name="ln-511"></a><span class="nl"> </span> <span class="n">feldmn</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">l</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="mf">0.</span> -<a name="ln-512"></a><span class="nl"> </span> <span class="n">endif</span> -<a name="ln-513"></a><span class="nl"> </span> <span class="n">l</span><span class="o">=</span><span class="n">l</span><span class="o">+</span><span class="mi">1</span> -<a name="ln-514"></a><span class="nl"> </span> <span class="n">enddo</span> -<a name="ln-515"></a><span class="nl"> </span> <span class="n">enddo</span> -<a name="ln-516"></a><span class="nl"> </span> <span class="k">END SUBROUTINE </span><span class="n">SPFILTER</span> -<a name="ln-517"></a> -<a name="ln-518"></a><span class="nl"> </span> <span class="k">END MODULE </span><span class="n">PHTOGR</span> -<a name="ln-519"></a> -</pre></div> - - </section> - </div> - </div> - - <section class="visible-xs visible-sm hidden-md"> - <hr> - - -<div class="panel panel-default"> - <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#allfiles-1">All Source Files</a></h3></div> - <div id="allfiles-1" class="panel-collapse collapse"> - <div class="list-group"> - - <a class="list-group-item" href="../sourcefile/grphreal.f.html">grphreal.f</a> - - <a class="list-group-item" href="../sourcefile/phgrreal.f.html">phgrreal.f</a> - - <a class="list-group-item" href="../sourcefile/preconvert.f90.html">preconvert.f90</a> - - <a class="list-group-item" href="../sourcefile/rwgrib2.f90.html">rwGRIB2.f90</a> - - </div> - </div> -</div> - - - </section> - - <hr> - </div> <!-- /container --> - <footer> - <div class="container"> - <div class="row"> - <div class="col-xs-6 col-md-4"><p>© 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> - <div class="col-xs-6 col-md-4 col-md-push-4"> - <p class="text-right"> - Documentation generated by - <a href="https://github.com/cmacmackin/ford">FORD</a> - - </p> - </div> - <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> - </div> - <br> - </div> <!-- /container --> - </footer> - - <!-- Bootstrap core JavaScript - ================================================== --> - <!-- Placed at the end of the document so the pages load faster --> -<!-- - <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> ---> - <script src="../js/bootstrap.min.js"></script> - <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> - <script src="../js/ie10-viewport-bug-workaround.js"></script> - - <!-- MathJax JavaScript - ================================================== --> - <!-- Placed at the end of the document so the pages load faster --> - <script type="text/x-mathjax-config"> - MathJax.Hub.Config({ - TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, - jax: ['input/TeX','input/MathML','output/HTML-CSS'], - extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'], - 'HTML-CSS': { - styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: '#000000 ! important'} } - } - }); - </script> - <!-- <script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> --> - </body> -</html> \ No newline at end of file diff --git a/Documentation/FORD/V5/Doc_original/sourcefile/preconvert.f90.html b/Documentation/FORD/V5/Doc_original/sourcefile/preconvert.f90.html deleted file mode 100644 index 7bdd76051c557743e9d7f4c357a2bbc68c85d067..0000000000000000000000000000000000000000 --- a/Documentation/FORD/V5/Doc_original/sourcefile/preconvert.f90.html +++ /dev/null @@ -1,1307 +0,0 @@ -<!DOCTYPE html> -<html lang="en"> - <head> - <meta charset="utf-8"> - <meta http-equiv="X-UA-Compatible" content="IE=edge"> - <meta name="viewport" content="width=device-width, initial-scale=1"> - - <meta name="description" content="Calculation of vertical velocity for FLEXPART"> - - <meta name="author" content="Leopold Haimberger" > - <link rel="icon" href="../favicon.png"> - - <title>preconvert.f90 – Flex_extract: Calculation of etadot</title> - - <link href="../css/bootstrap.min.css" rel="stylesheet"> - <link href="../css/pygments.css" rel="stylesheet"> - <link href="../css/font-awesome.min.css" rel="stylesheet"> - <link href="../css/local.css" rel="stylesheet"> - - - <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> - <!--[if lt IE 9]> - <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> - <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> - <![endif]--> - - <script src="../js/jquery-2.1.3.min.js"></script> - <script src="../js/svg-pan-zoom.min.js"></script> - - - <script src="../tipuesearch/tipuesearch_content.js"></script> - <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> - <script src="../tipuesearch/tipuesearch_set.js"></script> - <script src="../tipuesearch/tipuesearch.js"></script> - - - </head> - - <body> - - <!-- Fixed navbar --> - <nav class="navbar navbar-inverse navbar-fixed-top"> - <div class="container"> - <div class="navbar-header"> - <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> - <span class="sr-only">Toggle navigation</span> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> - </div> - <div id="navbar" class="navbar-collapse collapse"> - <ul class="nav navbar-nav"> - - <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> - <a href="#" class="dropdown-toggle" - data-toggle="dropdown" role="button" - aria-haspopup="true" - aria-expanded="false">Contents <span class="caret"></span></a> - <ul class="dropdown-menu"> - - <li><a href="../lists/files.html">Source Files</a></li> - - - <li><a href="../lists/modules.html">Modules</a></li> - - - - <li><a href="../lists/procedures.html">Procedures</a></li> - - - - <li><a href="../program/preconvert.html">Program</a></li> - - </ul> - </li> - -<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> - - -<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> - - - -<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> - - - -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> - - </ul> - - <form action="../search.html" class="navbar-form navbar-right" role="search"> - <div class="form-group"> - <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> - </div> -<!-- - <button type="submit" class="btn btn-default">Submit</button> ---> - </form> - - </div><!--/.nav-collapse --> - </div> - </nav> - - <div class="container"> - - - <div class="row"> - <h1>preconvert.f90 - <small>Source File</small> - - </h1> - -<div class="row"> - <div class="col-lg-12"> -<div class="well well-sm"> - <ul class="list-inline" style="margin-bottom:0px;display:inline"> - - - - - - - <li><i class="fa fa-list-ol"></i> - <a data-toggle="tooltip" - data-placement="bottom" data-html="true" - title="45.0% of total for source files.">598 statements</a> - </li> - - - <li><i class="fa fa-code"></i><a href="../src/preconvert.f90"> Source File</a></li> - - </ul> - <ol class="breadcrumb in-well text-right"> - - <li class="active">preconvert.f90</li> - </ol> -</div> -</div> -</div> -<script> - $(function () { - $('[data-toggle="tooltip"]').tooltip() - }) -</script> - - </div> - <div class="row"> - <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg"> - -<div id="sidebar"> - - - - - - -<div class="panel panel-primary"> - <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#progs-0">Programs</a></h3></div> - <div id="progs-0" class="panel-collapse collapse"> - <div class="list-group"> - - <a class="list-group-item" href="../program/preconvert.html">PRECONVERT</a> - - </div> - </div> -</div> - - - - - - - - -<div class="panel panel-primary"> - <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#funcs-0">Functions</a></h3></div> - <div id="funcs-0" class="panel-collapse collapse"> - <div class="list-group"> - - <a class="list-group-item" href="../proc/ia.html">IA</a> - - </div> - </div> -</div> - - -<div class="panel panel-primary"> - <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#subs-0">Subroutines</a></h3></div> - <div class="list-group"> - <div id="subs-0" class="panel-collapse collapse"> - - <a class="list-group-item" href="../proc/statis.html">STATIS</a> - - </div> - </div> -</div> - - - - - - - - -<div class="panel panel-primary"> - <div class="panel-heading text-left"><h3 class="panel-title">Source Code</h3></div> - <div class="list-group"> - <a class="list-group-item" href="../sourcefile/preconvert.f90.html#src">preconvert.f90</a> - </div> -</div> - - - <hr> - - -<div class="panel panel-default"> - <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#allfiles-0">All Source Files</a></h3></div> - <div id="allfiles-0" class="panel-collapse collapse"> - <div class="list-group"> - - <a class="list-group-item" href="../sourcefile/grphreal.f.html">grphreal.f</a> - - <a class="list-group-item" href="../sourcefile/phgrreal.f.html">phgrreal.f</a> - - <a class="list-group-item" href="../sourcefile/preconvert.f90.html">preconvert.f90</a> - - <a class="list-group-item" href="../sourcefile/rwgrib2.f90.html">rwGRIB2.f90</a> - - </div> - </div> -</div> - - -</div> - - </div> - <div class="col-md-9" id='text'> - - - <h3>This File Depends On</h3> - - <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<!-- Generated by graphviz version 2.38.0 (20140413.2041) - --> -<!-- Title: sourcefile~~preconvert.f90~~EfferentGraph Pages: 1 --> -<svg id="sourcefilepreconvertf90EfferentGraph" width="293pt" height="94pt" - viewBox="0.00 0.00 293.00 94.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> -<g id="sourcefile~~preconvert.f90~~EfferentGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 90)"> -<title>sourcefile~~preconvert.f90~~EfferentGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-90 289,-90 289,4 -4,4"/> -<!-- sourcefile~preconvert.f90 --> -<g id="sourcefile~~preconvert.f90~~EfferentGraph_node1" class="node"><title>sourcefile~preconvert.f90</title> -<polygon fill="none" stroke="black" points="285,-66 203,-66 203,-42 285,-42 285,-66"/> -<text text-anchor="middle" x="244" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50">preconvert.f90</text> -</g> -<!-- sourcefile~grphreal.f --> -<g id="sourcefile~~preconvert.f90~~EfferentGraph_node2" class="node"><title>sourcefile~grphreal.f</title> -<g id="a_sourcefile~~preconvert.f90~~EfferentGraph_node2"><a xlink:href="../sourcefile/grphreal.f.html" xlink:title="grphreal.f"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="159.5,-66 101.5,-66 101.5,-42 159.5,-42 159.5,-66"/> -<text text-anchor="middle" x="130.5" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grphreal.f</text> -</a> -</g> -</g> -<!-- sourcefile~grphreal.f->sourcefile~preconvert.f90 --> -<g id="sourcefile~~preconvert.f90~~EfferentGraph_edge2" class="edge"><title>sourcefile~grphreal.f->sourcefile~preconvert.f90</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M159.636,-54C169.614,-54 181.17,-54 192.44,-54"/> -<polygon fill="#000000" stroke="#000000" points="192.657,-57.5001 202.657,-54 192.657,-50.5001 192.657,-57.5001"/> -</g> -<!-- sourcefile~phgrreal.f --> -<g id="sourcefile~~preconvert.f90~~EfferentGraph_node3" class="node"><title>sourcefile~phgrreal.f</title> -<g id="a_sourcefile~~preconvert.f90~~EfferentGraph_node3"><a xlink:href="../sourcefile/phgrreal.f.html" xlink:title="phgrreal.f"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="58,-86 3.55271e-15,-86 3.55271e-15,-62 58,-62 58,-86"/> -<text text-anchor="middle" x="29" y="-71.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">phgrreal.f</text> -</a> -</g> -</g> -<!-- sourcefile~phgrreal.f->sourcefile~preconvert.f90 --> -<g id="sourcefile~~preconvert.f90~~EfferentGraph_edge3" class="edge"><title>sourcefile~phgrreal.f->sourcefile~preconvert.f90</title> -<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"/> -<polygon fill="#000000" stroke="#000000" points="198.371,-72.1018 207.076,-66.0636 196.505,-65.3548 198.371,-72.1018"/> -</g> -<!-- sourcefile~phgrreal.f->sourcefile~grphreal.f --> -<g id="sourcefile~~preconvert.f90~~EfferentGraph_edge1" class="edge"><title>sourcefile~phgrreal.f->sourcefile~grphreal.f</title> -<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"/> -<polygon fill="#000000" stroke="#000000" points="92.0687,-65.094 101.183,-59.6919 90.6892,-58.2312 92.0687,-65.094"/> -</g> -<!-- sourcefile~rwgrib2.f90 --> -<g id="sourcefile~~preconvert.f90~~EfferentGraph_node4" class="node"><title>sourcefile~rwgrib2.f90</title> -<g id="a_sourcefile~~preconvert.f90~~EfferentGraph_node4"><a xlink:href="../sourcefile/rwgrib2.f90.html" xlink:title="rwGRIB2.f90"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="167,-24 94,-24 94,-0 167,-0 167,-24"/> -<text text-anchor="middle" x="130.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">rwGRIB2.f90</text> -</a> -</g> -</g> -<!-- sourcefile~rwgrib2.f90->sourcefile~preconvert.f90 --> -<g id="sourcefile~~preconvert.f90~~EfferentGraph_edge4" class="edge"><title>sourcefile~rwgrib2.f90->sourcefile~preconvert.f90</title> -<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"/> -<polygon fill="#000000" stroke="#000000" points="200.452,-41.713 211.044,-41.9627 202.92,-35.1623 200.452,-41.713"/> -</g> -</g> -</svg> -</div> - <div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div> - <div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"> - <div class="modal-dialog modal-lg" role="document"> - <div class="modal-content"> - <div class="modal-header"> - <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> - <h4 class="modal-title" id="-graph-help-label">Graph Key</h4> - </div> - <div class="modal-body"> - - <p>Nodes of different colours represent the following: </p> - <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<!-- Generated by graphviz version 2.38.0 (20140413.2041) - --> -<!-- Title: Graph Key Pages: 1 --> -<svg width="190pt" height="32pt" - viewBox="0.00 0.00 190.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> -<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> -<title>Graph Key</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-28 186,-28 186,4 -4,4"/> -<!-- Source File --> -<g id="node1" class="node"><title>Source File</title> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="67,-24 0,-24 0,-0 67,-0 67,-24"/> -<text text-anchor="middle" x="33.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Source File</text> -</g> -<!-- This Page's Entity --> -<g id="node2" class="node"><title>This Page's Entity</title> -<polygon fill="none" stroke="black" points="182,-24 85,-24 85,-0 182,-0 182,-24"/> -<text text-anchor="middle" x="133.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> -</g> -</g> -</svg> - - - <p>Solid arrows point from a file to a file which depends upon it. A file - is dependent upon another if the latter must be compiled before the former - can be. - </p> - - </div> - </div> - </div> - </div> - - - - <br> - - <section class="visible-xs visible-sm hidden-md"> - - - - - - -<div class="panel panel-primary"> - <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#progs-1">Programs</a></h3></div> - <div id="progs-1" class="panel-collapse collapse"> - <div class="list-group"> - - <a class="list-group-item" href="../program/preconvert.html">PRECONVERT</a> - - </div> - </div> -</div> - - - - - - - - -<div class="panel panel-primary"> - <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#funcs-1">Functions</a></h3></div> - <div id="funcs-1" class="panel-collapse collapse"> - <div class="list-group"> - - <a class="list-group-item" href="../proc/ia.html">IA</a> - - </div> - </div> -</div> - - -<div class="panel panel-primary"> - <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#subs-1">Subroutines</a></h3></div> - <div class="list-group"> - <div id="subs-1" class="panel-collapse collapse"> - - <a class="list-group-item" href="../proc/statis.html">STATIS</a> - - </div> - </div> -</div> - - - - - - - - -<div class="panel panel-primary"> - <div class="panel-heading text-left"><h3 class="panel-title">Source Code</h3></div> - <div class="list-group"> - <a class="list-group-item" href="../sourcefile/preconvert.f90.html#src">preconvert.f90</a> - </div> -</div> - - - </section> - <br class="visible-xs visible-sm hidden-md"> - - <section> - <h2><span class="anchor" id="src"></span>Source Code</h2> - <div class="hl"><pre><span></span><a name="ln-1"></a> <span class="k">PROGRAM </span><span class="n">PRECONVERT</span> -<a name="ln-2"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span> -<a name="ln-3"></a><span class="c">! !</span> -<a name="ln-4"></a><span class="c">! PROGRAM PRECONVERT - PREPARES INPUT DATA FOR POP MODEL METEOR- !</span> -<a name="ln-5"></a><span class="c">! OLOGICAL PREPROCESSOR !</span> -<a name="ln-6"></a><span class="c">! !</span> -<a name="ln-7"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span> -<a name="ln-8"></a><span class="c">! !</span> -<a name="ln-9"></a><span class="c">! CALCULATION OF ETAPOINT ON A REGULAR LAMDA/PHI GRID AND WRITING !</span> -<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> -<a name="ln-11"></a><span class="c">! EWSS,NSSS TO AN OUTPUT FILE (GRIB 1 or 2 FORMAT). ! </span> -<a name="ln-12"></a><span class="c">! !</span> -<a name="ln-13"></a><span class="c">! AUTHORS: L. HAIMBERGER, G. WOTAWA, 1994-04 !</span> -<a name="ln-14"></a><span class="c">! adapted: A. BECK !</span> -<a name="ln-15"></a><span class="c">! 2003-05-11 !</span> -<a name="ln-16"></a><span class="c">! L. Haimberger 2006-12 V2.0 !</span> -<a name="ln-17"></a><span class="c">! modified to handle arbitrary regular grids !</span> -<a name="ln-18"></a><span class="c">! and T799 resolution data !</span> -<a name="ln-19"></a><span class="c">! L. Haimberger 2010-03 V4.0 !</span> -<a name="ln-20"></a><span class="c">! modified to grib edition 2 fields !</span> -<a name="ln-21"></a><span class="c">! and T1279 resolution data !</span> -<a name="ln-22"></a><span class="c">! !</span> -<a name="ln-23"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span> -<a name="ln-24"></a><span class="c">! !</span> -<a name="ln-25"></a><span class="c">! DESCRIPTION OF NEEDED INPUT: !</span> -<a name="ln-26"></a><span class="c">! !</span> -<a name="ln-27"></a><span class="c">! UNIT FILE PARAMETER(S) DATA REPRESENTATION !</span> -<a name="ln-28"></a><span class="c">! !</span> -<a name="ln-29"></a><span class="c">! 11 fort.11 T,U,V regular lamda phi grid !</span> -<a name="ln-30"></a><span class="c">! 12 fort.12 D regular lamda phi grid !</span> -<a name="ln-31"></a><span class="c">! 13 fort.13 LNSP fort.13 spherical harmonics !</span> -<a name="ln-32"></a><span class="c">! 14 fort.14 SD,MSL,TCC,10U, !</span> -<a name="ln-33"></a><span class="c">! 10V,2T,2D regular lamda phi grid !</span> -<a name="ln-34"></a><span class="c">! 16 fort.16 LSP,CP,SSHF, !</span> -<a name="ln-35"></a><span class="c">! SSR,EWSS,NSSS regular lamda phi grid !</span> -<a name="ln-36"></a><span class="c">! 17 fort.17 Q regular lamda phi grid !</span> -<a name="ln-37"></a><span class="c">! !</span> -<a name="ln-38"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span> -<a name="ln-39"></a><span class="c">! !</span> -<a name="ln-40"></a><span class="c">! DESCRIPTION OF OUTPUT: !</span> -<a name="ln-41"></a><span class="c">! !</span> -<a name="ln-42"></a><span class="c">! UNIT FILE PARAMETER(S) DATA REPRESENTATION !</span> -<a name="ln-43"></a><span class="c">! !</span> -<a name="ln-44"></a><span class="c">! 15 fort.15 U,V,ETA,T,PS, !</span> -<a name="ln-45"></a><span class="c">! Q,SD,MSL,TCC, !</span> -<a name="ln-46"></a><span class="c">! 10U,10V,2T,2D, regular lamda phi grid !</span> -<a name="ln-47"></a><span class="c">! LSP,CP,SSHF, !</span> -<a name="ln-48"></a><span class="c">! SSR,EWSS,NSSS !</span> -<a name="ln-49"></a><span class="c">! !</span> -<a name="ln-50"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span> -<a name="ln-51"></a><span class="c">!</span> -<a name="ln-52"></a> -<a name="ln-53"></a> <span class="k">USE </span><span class="n">PHTOGR</span> -<a name="ln-54"></a> <span class="k">USE </span><span class="n">GRTOPH</span> -<a name="ln-55"></a> <span class="k">USE </span><span class="n">FTRAFO</span> -<a name="ln-56"></a> <span class="k">USE </span><span class="n">RWGRIB2</span> -<a name="ln-57"></a> <span class="k">USE </span><span class="n">GRIB_API</span> -<a name="ln-58"></a> -<a name="ln-59"></a> <span class="k">IMPLICIT NONE</span> -<a name="ln-60"></a> -<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> -<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> -<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> -<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> -<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> -<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> -<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> -<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> -<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> -<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> -<a name="ln-71"></a> -<a name="ln-72"></a><span class="c">! Arrays for Gaussian grid calculations</span> -<a name="ln-73"></a> -<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> -<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> -<a name="ln-76"></a> -<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> -<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> -<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> -<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> -<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> -<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> -<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> -<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> -<a name="ln-85"></a> -<a name="ln-86"></a><span class="c">! end arrays for Gaussian grid calculations</span> -<a name="ln-87"></a> -<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> -<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> -<a name="ln-90"></a> -<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> -<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> -<a name="ln-93"></a> -<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> -<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> -<a name="ln-96"></a> <span class="kt">INTEGER </span><span class="n">LUNIT</span><span class="p">,</span><span class="n">LUNIT2</span> -<a name="ln-97"></a> -<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> -<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> -<a name="ln-100"></a> <span class="kt">INTEGER </span><span class="n">MDPDETA</span><span class="p">,</span><span class="n">METAPAR</span> -<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> -<a name="ln-102"></a> <span class="kt">CHARACTER</span><span class="o">*</span><span class="mi">300</span> <span class="n">MLEVELIST</span> -<a name="ln-103"></a> -<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> -<a name="ln-105"></a> -<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> -<a name="ln-107"></a> -<a name="ln-108"></a> <span class="kt">CHARACTER</span><span class="o">*</span><span class="mi">80</span> <span class="n">FILENAME</span> -<a name="ln-109"></a> -<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">&</span> -<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">&</span> -<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">&</span> -<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">&</span> -<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">,&</span> -<a name="ln-115"></a> <span class="n">MDPDETA</span> -<a name="ln-116"></a> -<a name="ln-117"></a> <span class="n">LTEST</span><span class="o">=</span><span class="mi">1</span> -<a name="ln-118"></a> -<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">'NAMGEN'</span><span class="p">)</span> -<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> -<a name="ln-121"></a> -<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> -<a name="ln-123"></a><span class="c">! PRINT*, MAUF</span> -<a name="ln-124"></a> -<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> -<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> -<a name="ln-127"></a> -<a name="ln-128"></a> -<a name="ln-129"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span> -<a name="ln-130"></a><span class="c">! ALLOCATE VARIABLES !</span> -<a name="ln-131"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span> -<a name="ln-132"></a> -<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> -<a name="ln-134"></a> -<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> -<a name="ln-136"></a> -<a name="ln-137"></a> -<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> -<a name="ln-139"></a> -<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> -<a name="ln-141"></a> -<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> -<a name="ln-143"></a> -<a name="ln-144"></a> -<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> -<a name="ln-146"></a> -<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> -<a name="ln-148"></a> -<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> -<a name="ln-150"></a> -<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> -<a name="ln-152"></a> -<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> -<a name="ln-154"></a> -<a name="ln-155"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span> -<a name="ln-156"></a><span class="c">! GAUSS STUFF !</span> -<a name="ln-157"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span> -<a name="ln-158"></a> -<a name="ln-159"></a> -<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> -<a name="ln-161"></a><span class="k"> </span><span class="n">LUNIT</span><span class="o">=</span><span class="mi">0</span> -<a name="ln-162"></a> <span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.18'</span> -<a name="ln-163"></a> -<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">'r'</span><span class="p">)</span> -<a name="ln-165"></a> -<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> -<a name="ln-167"></a> -<a name="ln-168"></a><span class="c">! we can close the file</span> -<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> -<a name="ln-170"></a> -<a name="ln-171"></a><span class="c">! call grib_get(igrib(1),'gridType', j)</span> -<a name="ln-172"></a> -<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> -<a name="ln-174"></a> -<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> -<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> -<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> -<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> -<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> -<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> -<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> -<a name="ln-182"></a> -<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">'numberOfPointsAlongAMeridian'</span><span class="p">,</span> <span class="n">NGJ</span><span class="p">)</span> -<a name="ln-184"></a> -<a name="ln-185"></a> <span class="c">! get as a integer</span> -<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">'pl'</span><span class="p">,</span> <span class="n">MLAT</span><span class="p">)</span> -<a name="ln-187"></a> -<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> -<a name="ln-189"></a> -<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">'numberOfVerticalCoordinateValues'</span><span class="p">,</span><span class="n">mk</span><span class="p">)</span> -<a name="ln-191"></a> -<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> -<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">'FATAL: Number of model levels'</span><span class="p">,</span><span class="n">mk</span><span class="p">,</span> <span class="p">&</span> -<a name="ln-194"></a> <span class="s1">' does not agree with'</span><span class="p">,</span> <span class="n">MLEVEL</span><span class="p">,</span><span class="s1">' in namelist'</span> -<a name="ln-195"></a> <span class="k">STOP</span> -<a name="ln-196"></a><span class="k"> </span><span class="n">ENDIF</span> -<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">'pv'</span><span class="p">,</span><span class="n">pv</span><span class="p">)</span> -<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> -<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> -<a name="ln-200"></a> -<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> -<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> -<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> -<a name="ln-204"></a> -<a name="ln-205"></a> -<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> -<a name="ln-207"></a> -<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> -<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> -<a name="ln-210"></a><span class="c">! ALLOCATE (UV2(MAXL, MAXB, 2*MLEVEL))</span> -<a name="ln-211"></a> -<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> -<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> -<a name="ln-214"></a> -<a name="ln-215"></a><span class="c">! Initialisieren Legendretransformation</span> -<a name="ln-216"></a><span class="c">! auf das LaT/LON Gitter</span> -<a name="ln-217"></a> -<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> -<a name="ln-219"></a><span class="c">!$OMP PARALLEL DO</span> -<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> -<a name="ln-221"></a> -<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> -<a name="ln-223"></a> -<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> -<a name="ln-225"></a> -<a name="ln-226"></a><span class="mi">20</span> <span class="k">CONTINUE</span> -<a name="ln-227"></a><span class="c">!$OMP END PARALLEL DO</span> -<a name="ln-228"></a> -<a name="ln-229"></a><span class="c">! Avoid possible Pole problem</span> -<a name="ln-230"></a><span class="c">! IF(RLA0 .EQ. -90.0) BREITE(MAXB)=sin(-89.99*PI/180.d0)</span> -<a name="ln-231"></a><span class="c">! IF(RLA1 .EQ. 90.0) BREITE(1)=sin(89.99*PI/180.d0)</span> -<a name="ln-232"></a> -<a name="ln-233"></a><span class="c">! Initialisation of fields for FFT and Legendre transformation</span> -<a name="ln-234"></a><span class="c">! to Gaussian grid and back to phase space</span> -<a name="ln-235"></a> <span class="n">X1</span><span class="o">=-</span><span class="mf">1.D0</span> -<a name="ln-236"></a> <span class="n">X2</span><span class="o">=</span><span class="mf">1.D0</span> -<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> -<a name="ln-238"></a> -<a name="ln-239"></a><span class="c">!$OMP PARALLEL DO PRIVATE(M)</span> -<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> -<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> -<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> -<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> -<a name="ln-244"></a> <span class="n">ENDDO</span> -<a name="ln-245"></a> <span class="n">ENDDO</span> -<a name="ln-246"></a><span class="c">!$OMP END PARALLEL DO</span> -<a name="ln-247"></a> -<a name="ln-248"></a> -<a name="ln-249"></a><span class="c">! MPAR(1)=152</span> -<a name="ln-250"></a> <span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.12'</span> -<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> -<a name="ln-252"></a><span class="c">! goto 111</span> -<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> -<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">&</span> -<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> -<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> -<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">'(A12,3F12.4)'</span><span class="p">)</span> <span class="s1">'STATISTICS: '</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> -<a name="ln-258"></a> -<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> -<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> -<a name="ln-261"></a> <span class="n">ENDDO</span> -<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> -<a name="ln-263"></a> <span class="n">PSG</span><span class="o">=</span><span class="n">HILF</span> -<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">&</span> -<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> -<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> -<a name="ln-267"></a> -<a name="ln-268"></a> -<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> -<a name="ln-270"></a> -<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> -<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">'(A12,3F11.4)'</span><span class="p">)</span> <span class="s1">'STATISTICS: '</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> -<a name="ln-273"></a> -<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> -<a name="ln-275"></a> <span class="n">HILF</span><span class="o">=</span><span class="n">PSG</span> -<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> -<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">'(A12,3F11.4)'</span><span class="p">)</span> <span class="s1">'STATISTICS: '</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> -<a name="ln-278"></a> -<a name="ln-279"></a> <span class="mi">111</span> <span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.10'</span> -<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">&</span> -<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> -<a name="ln-282"></a><span class="c">! Transformieren des Windes auf das Gaussgitter </span> -<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> -<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> -<a name="ln-285"></a><span class="c">! North Pole</span> -<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> -<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> -<a name="ln-288"></a><span class="c">! South Pole</span> -<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> -<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> -<a name="ln-291"></a> <span class="n">ENDDO</span> -<a name="ln-292"></a> -<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> -<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> -<a name="ln-295"></a> <span class="n">ENDDO</span> -<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">&</span> -<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> -<a name="ln-298"></a> -<a name="ln-299"></a> -<a name="ln-300"></a> <span class="mi">112</span> <span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.13'</span> -<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> -<a name="ln-302"></a><span class="c">! Transformieren der horizontalen Divergenz auf das Gaussgitter </span> -<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> -<a name="ln-304"></a> -<a name="ln-305"></a> -<a name="ln-306"></a><span class="c">! Berechnung des Gradienten des Logarithmus des Bodendrucks </span> -<a name="ln-307"></a><span class="c">! auf dem Gaussgitter </span> -<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> -<a name="ln-309"></a> -<a name="ln-310"></a><span class="c">! Berechnung der Vertikalgeschwindigkeit auf dem Gaussgitter</span> -<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">&</span> -<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> -<a name="ln-313"></a> -<a name="ln-314"></a> -<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">&</span> -<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> -<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> -<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> -<a name="ln-319"></a> <span class="n">ENDDO</span> -<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> -<a name="ln-321"></a> -<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> -<a name="ln-323"></a> -<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> -<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> -<a name="ln-326"></a><span class="c">! GOTO 114</span> -<a name="ln-327"></a> -<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> -<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">'(A12,3F11.4)'</span><span class="p">)</span> <span class="s1">'STATISTICS 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> -<a name="ln-330"></a> -<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> -<a name="ln-332"></a><span class="c">! Berechnung von Omega auf dem Gaussgitter</span> -<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">&</span> -<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> -<a name="ln-335"></a> -<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">,&</span> -<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> -<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> -<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> -<a name="ln-340"></a> <span class="n">ENDDO</span> -<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> -<a name="ln-342"></a> -<a name="ln-343"></a> <span class="n">ENDIF</span> <span class="c">!MOMEGA</span> -<a name="ln-344"></a> -<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> -<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> -<a name="ln-347"></a> -<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> -<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">'(A12,3F11.4)'</span><span class="p">)</span> <span class="s1">'STATISTICS: '</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> -<a name="ln-350"></a> -<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> -<a name="ln-352"></a> -<a name="ln-353"></a><span class="c">! ALLOCATE (UV(MAXL, MAXB, 2*MLEVEL))</span> -<a name="ln-354"></a><span class="c">! CALL GRPH213(XMN,UGVG,GWSAVE,GIFAX,PP,WEIGHT,MLAT,</span> -<a name="ln-355"></a><span class="c">! *MNAUF,NGI,NGJ,2*MLEVEL)</span> -<a name="ln-356"></a><span class="c">! DO K=1,2*MLEVEL</span> -<a name="ln-357"></a><span class="c">! IF(MSMOOTH .ne. 0) CALL SPFILTER(XMN(:,K),MNAUF,MSMOOTH)</span> -<a name="ln-358"></a><span class="c">! ENDDO</span> -<a name="ln-359"></a><span class="c">! CALL PHGCUT(XMN,UV,WSAVE,IFAX,Z,</span> -<a name="ln-360"></a><span class="c">! *MNAUF,MNAUF,MAUF,MANF,MAXL,MAXB,2*MLEVEL)</span> -<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> -<a name="ln-362"></a> -<a name="ln-363"></a><span class="c">! CALL ETAGAUSS(Z,WSAVE</span> -<a name="ln-364"></a><span class="c">! *,BREITE,UV,ETA,OM,PS,</span> -<a name="ln-365"></a><span class="c">! *MAUF,MAXB,MAXL,MANF,MNAUF,MLEVEL,MSMOOTH)</span> -<a name="ln-366"></a> -<a name="ln-367"></a> <span class="k">ELSE</span> -<a name="ln-368"></a> -<a name="ln-369"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span> -<a name="ln-370"></a><span class="c">! READING OF PREPARED METEOROLOGICAL FIELDS !</span> -<a name="ln-371"></a><span class="c">! !</span> -<a name="ln-372"></a><span class="c">! THE FOLLOWING FIELDS ARE EXPECTED: !</span> -<a name="ln-373"></a><span class="c">! !</span> -<a name="ln-374"></a><span class="c">! UNIT 11: T,U,V (REGULAR GRID) !</span> -<a name="ln-375"></a><span class="c">! UNIT 17: Q (REGULAR GRID) !</span> -<a name="ln-376"></a><span class="c">! UNIT 13: D (REGULAR GRID) !</span> -<a name="ln-377"></a><span class="c">! UNIT 12: LNSP (SPHERICAL HARMONICS) !</span> -<a name="ln-378"></a><span class="c">! UNIT 14: SURFACE DATA (REGULAR GRID) !</span> -<a name="ln-379"></a><span class="c">! UNIT 16: FLUX DATA (REGULAR GRID) !</span> -<a name="ln-380"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span> -<a name="ln-381"></a><span class="c">!</span> -<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> -<a name="ln-383"></a> <span class="n">MLAT</span><span class="o">=</span><span class="n">MAXL</span> -<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> -<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> -<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> -<a name="ln-387"></a> -<a name="ln-388"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span> -<a name="ln-389"></a><span class="c">! READING OF SURFACE PRESSURE !</span> -<a name="ln-390"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span> -<a name="ln-391"></a> -<a name="ln-392"></a> <span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.12'</span> -<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> -<a name="ln-394"></a> -<a name="ln-395"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span> -<a name="ln-396"></a><span class="c">! READING OF U,V !</span> -<a name="ln-397"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span> -<a name="ln-398"></a><span class="c">!</span> -<a name="ln-399"></a><span class="c">! OPENING OF UNBLOCKED GRIB FILE</span> -<a name="ln-400"></a><span class="c">!</span> -<a name="ln-401"></a> <span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.10'</span> -<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> -<a name="ln-403"></a> -<a name="ln-404"></a> -<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> -<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> -<a name="ln-407"></a> -<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> -<a name="ln-409"></a> -<a name="ln-410"></a> <span class="n">ENDDO</span> -<a name="ln-411"></a><span class="c">! Avoid possible Pole problem</span> -<a name="ln-412"></a><span class="c">! IF(RLA0 .EQ. -90.0) BREITE(MAXB)=sin(-89.99*PI/180.d0)</span> -<a name="ln-413"></a><span class="c">! IF(RLA1 .EQ. 90.0) BREITE(1)=sin(89.99*PI/180.d0)</span> -<a name="ln-414"></a> -<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> -<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> -<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> -<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">&</span> -<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> -<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> -<a name="ln-421"></a> <span class="k">else</span> -<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> -<a name="ln-423"></a> <span class="n">endif</span> -<a name="ln-424"></a> <span class="n">ENDDO</span> -<a name="ln-425"></a> <span class="n">ENDDO</span> -<a name="ln-426"></a> -<a name="ln-427"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span> -<a name="ln-428"></a><span class="c">! READING OF LNSP on grid !</span> -<a name="ln-429"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span> -<a name="ln-430"></a> -<a name="ln-431"></a><span class="c">! For debugging only</span> -<a name="ln-432"></a><span class="c">! FILENAME='LNSPG_G.20060330.600'</span> -<a name="ln-433"></a><span class="c">! INQUIRE(FILE=FILENAME,EXIST=EX)</span> -<a name="ln-434"></a><span class="c">! CALL READLATLON(FILENAME,QA,</span> -<a name="ln-435"></a><span class="c">! *MAXL,MAXB,1,1,(/152/))</span> -<a name="ln-436"></a> -<a name="ln-437"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span> -<a name="ln-438"></a><span class="c">! READING OF DIVERGENCE !</span> -<a name="ln-439"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span> -<a name="ln-440"></a> -<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> -<a name="ln-442"></a><span class="k"> </span><span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.13'</span> -<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> -<a name="ln-444"></a> <span class="n">ENDIF</span> -<a name="ln-445"></a> -<a name="ln-446"></a> -<a name="ln-447"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span> -<a name="ln-448"></a><span class="c">! CALCULATION OF ETAPOINT --> TOTAL TIME DERIVATIVE OF !</span> -<a name="ln-449"></a><span class="c">! ECMWF VERTICAL COORDINATE ETA MULTIPLIED BY DERIVATIVE !</span> -<a name="ln-450"></a><span class="c">! OF PRESSURE IN ETA DIRECTION !</span> -<a name="ln-451"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span> -<a name="ln-452"></a> -<a name="ln-453"></a><span class="c">! Initialisieren Legendretransformation</span> -<a name="ln-454"></a><span class="c">! auf das LaT/LON Gitter</span> -<a name="ln-455"></a><span class="c">! Without Gaussian grid calculation Legendre Polynomials are calculated</span> -<a name="ln-456"></a><span class="c">! only for one latitude to save space</span> -<a name="ln-457"></a> -<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> -<a name="ln-459"></a> -<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> -<a name="ln-461"></a> -<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> -<a name="ln-463"></a> -<a name="ln-464"></a> -<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> -<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">&</span> -<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> -<a name="ln-468"></a> <span class="n">ENDIF</span> -<a name="ln-469"></a> <span class="n">ENDDO</span> -<a name="ln-470"></a> -<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> -<a name="ln-472"></a> -<a name="ln-473"></a><span class="c">! For debugging only</span> -<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> -<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">'(A12,3F11.4)'</span><span class="p">)</span> <span class="s1">'STATISTICS: '</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> -<a name="ln-476"></a> -<a name="ln-477"></a> -<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> -<a name="ln-479"></a> -<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">&</span> -<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> -<a name="ln-482"></a> <span class="n">ENDIF</span> -<a name="ln-483"></a> -<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> -<a name="ln-485"></a><span class="k"> </span><span class="n">DPSDT</span><span class="o">=</span><span class="n">PS</span> -<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">&</span> -<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> -<a name="ln-488"></a> <span class="n">ENDIF</span> -<a name="ln-489"></a> -<a name="ln-490"></a> <span class="n">ENDIF</span> <span class="c">! MGAUSS</span> -<a name="ln-491"></a> -<a name="ln-492"></a><span class="c">! CREATE FILE VERTICAL.EC NEEDED BY POP MODEL</span> -<a name="ln-493"></a> -<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">'VERTICAL.EC'</span><span class="p">)</span> -<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">'(a)'</span><span class="p">)</span> -<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">'(a)'</span><span class="p">)</span> <span class="s1">'VERTICAL DISCRETIZATION OF POP MODEL'</span> -<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">'(a)'</span><span class="p">)</span> -<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">'(i3,a)'</span><span class="p">)</span> <span class="n">MLEVEL</span><span class="p">,</span><span class="s1">' number of layers'</span> -<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">'(a)'</span><span class="p">)</span> -<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">'(a)'</span><span class="p">)</span> <span class="s1">'* A(NLEV+1)'</span> -<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">'(a)'</span><span class="p">)</span> -<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> -<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">'(f18.12)'</span><span class="p">)</span> <span class="n">AK</span><span class="p">(</span><span class="n">I</span><span class="p">)</span> -<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">'(a)'</span><span class="p">)</span> -<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">'(a)'</span><span class="p">)</span> <span class="s1">'* B(NLEV+1)'</span> -<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">'(a)'</span><span class="p">)</span> -<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> -<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">'(f18.12)'</span><span class="p">)</span> <span class="n">BK</span><span class="p">(</span><span class="n">I</span><span class="p">)</span> -<a name="ln-509"></a> <span class="k">close</span><span class="p">(</span><span class="mi">21</span><span class="p">)</span> -<a name="ln-510"></a> -<a name="ln-511"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span> -<a name="ln-512"></a><span class="c">! READING OF OMEGA !</span> -<a name="ln-513"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span> -<a name="ln-514"></a> -<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> -<a name="ln-516"></a> -<a name="ln-517"></a> -<a name="ln-518"></a> -<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> -<a name="ln-520"></a> -<a name="ln-521"></a> <span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.19'</span> -<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> -<a name="ln-523"></a> -<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> -<a name="ln-525"></a> -<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> -<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> -<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">'(A12,I3,3F11.4)'</span><span class="p">)</span> <span class="s1">' 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> -<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> -<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">'(A12,I3,3F11.4)'</span><span class="p">)</span> <span class="s1">' OMEGA: '</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> -<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> -<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">'(A12,I3,3F11.4)'</span><span class="p">)</span> <span class="s1">'OMEGA DIFF: '</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> -<a name="ln-533"></a> <span class="n">ENDDO</span> -<a name="ln-534"></a> -<a name="ln-535"></a> <span class="n">ENDIF</span> -<a name="ln-536"></a> <span class="n">ENDIF</span> -<a name="ln-537"></a> -<a name="ln-538"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span> -<a name="ln-539"></a><span class="c">! READING OF ETA !</span> -<a name="ln-540"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span> -<a name="ln-541"></a> -<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> -<a name="ln-543"></a> -<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> -<a name="ln-545"></a> -<a name="ln-546"></a> <span class="n">P00</span><span class="o">=</span><span class="mi">10132</span><span class="mf">5.</span> -<a name="ln-547"></a> <span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.21'</span> -<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> -<a name="ln-549"></a> -<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> -<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> -<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> -<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> -<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> -<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> -<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">&</span> -<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> -<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> -<a name="ln-559"></a> <span class="n">ENDDO</span> -<a name="ln-560"></a> <span class="n">ENDDO</span> -<a name="ln-561"></a> <span class="n">ENDDO</span> -<a name="ln-562"></a> <span class="n">ENDIF</span> -<a name="ln-563"></a> -<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> -<a name="ln-565"></a> -<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> -<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> -<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">'(A12,I3,3F11.4)'</span><span class="p">)</span> <span class="s1">' 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> -<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> -<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">'(A12,I3,3F11.4)'</span><span class="p">)</span> <span class="s1">' 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> -<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> -<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">'(A12,I3,3F11.4)'</span><span class="p">)</span> <span class="s1">'ETA DIFF: '</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> -<a name="ln-573"></a> <span class="n">ENDDO</span> -<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> -<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">'(I3,2F11.4)'</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> -<a name="ln-576"></a> <span class="n">ENDDO</span> -<a name="ln-577"></a> <span class="k">ELSE</span> -<a name="ln-578"></a><span class="k"> </span><span class="n">ETA</span><span class="o">=</span><span class="n">ETAR</span> -<a name="ln-579"></a> <span class="n">ENDIF</span> -<a name="ln-580"></a> <span class="n">ENDIF</span> -<a name="ln-581"></a> -<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> -<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> -<a name="ln-584"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span> -<a name="ln-585"></a><span class="c">! READING OF T !</span> -<a name="ln-586"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span> -<a name="ln-587"></a><span class="c">!</span> -<a name="ln-588"></a><span class="c">! OPENING OF UNBLOCKED GRIB FILE</span> -<a name="ln-589"></a><span class="c">!</span> -<a name="ln-590"></a> <span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.11'</span> -<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> -<a name="ln-592"></a> -<a name="ln-593"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span> -<a name="ln-594"></a><span class="c">! READING OF SPECIFIC HUMIDITY !</span> -<a name="ln-595"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span> -<a name="ln-596"></a> -<a name="ln-597"></a> <span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.17'</span> -<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> -<a name="ln-599"></a> -<a name="ln-600"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span> -<a name="ln-601"></a><span class="c">! TEST READING OF UV from MARS (debug only) !</span> -<a name="ln-602"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span> -<a name="ln-603"></a> -<a name="ln-604"></a><span class="c">! FILENAME='fort.22'</span> -<a name="ln-605"></a><span class="c">! CALL READLATLON(FILENAME,UV2,MAXL,MAXB,2*MLEVEL,2,(/131,132/))</span> -<a name="ln-606"></a> -<a name="ln-607"></a> -<a name="ln-608"></a> -<a name="ln-609"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span> -<a name="ln-610"></a><span class="c">! WRITE MODEL LEVEL DATA TO fort.15 !</span> -<a name="ln-611"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span> -<a name="ln-612"></a> -<a name="ln-613"></a><span class="c">! Calculation of etadot in CONTGL needed scaled winds (ucosphi,vcosphi)</span> -<a name="ln-614"></a><span class="c">! Now we are transforming back to the usual winds. </span> -<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> -<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> -<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> -<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> -<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> -<a name="ln-620"></a> <span class="n">ENDDO</span> -<a name="ln-621"></a><span class="c">! special treatment for poles, if necessary. </span> -<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> -<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> -<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> -<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">&</span> -<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> -<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> -<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> -<a name="ln-629"></a> <span class="k">else</span> -<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> -<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> -<a name="ln-632"></a> <span class="n">endif</span> -<a name="ln-633"></a> <span class="k">else</span> -<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> -<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> -<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> -<a name="ln-637"></a><span class="c">! Suedpol</span> -<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> -<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> -<a name="ln-640"></a> <span class="k">ELSE</span> -<a name="ln-641"></a><span class="c">! Nordpol</span> -<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> -<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> -<a name="ln-644"></a> <span class="n">ENDIF</span> -<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> -<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> -<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> -<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> -<a name="ln-649"></a> <span class="k">ELSE</span> -<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> -<a name="ln-651"></a> <span class="n">ENDIF</span> -<a name="ln-652"></a> <span class="n">ENDDO</span> -<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> -<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> -<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> -<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> -<a name="ln-657"></a> <span class="k">ELSE</span> -<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> -<a name="ln-659"></a> <span class="n">ENDIF</span> -<a name="ln-660"></a> <span class="n">ENDDO</span> -<a name="ln-661"></a> <span class="n">endif</span> -<a name="ln-662"></a> <span class="n">ENDDO</span> -<a name="ln-663"></a> <span class="n">ENDDO</span> -<a name="ln-664"></a> -<a name="ln-665"></a><span class="c">! open output file</span> -<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">'fort.15'</span><span class="p">,</span><span class="s1">'w'</span><span class="p">)</span> -<a name="ln-667"></a> -<a name="ln-668"></a><span class="c">! we use temperature on lat/lon on model levels as template for model level data</span> -<a name="ln-669"></a> <span class="n">LUNIT2</span><span class="o">=</span><span class="mi">0</span> -<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">'fort.11'</span><span class="p">,</span><span class="s1">'r'</span><span class="p">)</span> -<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> -<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> -<a name="ln-673"></a> -<a name="ln-674"></a> -<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> -<a name="ln-676"></a> -<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> -<a name="ln-678"></a> -<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> -<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> -<a name="ln-681"></a> <span class="k">ELSE</span> -<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> -<a name="ln-683"></a> <span class="n">ENDIF</span> -<a name="ln-684"></a> -<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> -<a name="ln-686"></a> -<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">'1'</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> -<a name="ln-688"></a> -<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">"levelType"</span><span class="p">,</span><span class="s2">"ml"</span><span class="p">)</span> -<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">"typeOfLevel"</span><span class="p">,</span><span class="s2">"hybrid"</span><span class="p">)</span> -<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> -<a name="ln-692"></a> -<a name="ln-693"></a> -<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> -<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">'fort.25'</span><span class="p">,</span><span class="s1">'w'</span><span class="p">)</span> -<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> -<a name="ln-697"></a> -<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> -<a name="ln-699"></a> -<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">'1'</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> -<a name="ln-701"></a> -<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> -<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> -<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> -<a name="ln-705"></a> <span class="n">ENDIF</span> -<a name="ln-706"></a> <span class="n">ENDIF</span> -<a name="ln-707"></a> -<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> -<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">'fort.26'</span><span class="p">,</span><span class="s1">'w'</span><span class="p">)</span> -<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> -<a name="ln-711"></a> -<a name="ln-712"></a><span class="c">! IF(MOMEGADIFF .EQ. 1) THEN</span> -<a name="ln-713"></a> -<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">'1'</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> -<a name="ln-715"></a> -<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> -<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> -<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> -<a name="ln-719"></a><span class="c">! ENDIF</span> -<a name="ln-720"></a> <span class="n">ENDIF</span> -<a name="ln-721"></a> -<a name="ln-722"></a> -<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> -<a name="ln-724"></a> -<a name="ln-725"></a> -<a name="ln-726"></a> -<a name="ln-727"></a> <span class="mi">2000</span> <span class="k">STOP</span> <span class="s1">'SUCCESSFULLY FINISHED CONVERT_PRE: CONGRATULATIONS'</span> -<a name="ln-728"></a> <span class="mi">3000</span> <span class="k">STOP</span> <span class="s1">'ROUTINE CONVERT_PRE: ERROR'</span> -<a name="ln-729"></a> <span class="mi">9999</span> <span class="k">stop</span> <span class="s1">'ROUTINE CONVERT_PRE: ERROR'</span> -<a name="ln-730"></a> <span class="k">END</span> -<a name="ln-731"></a> -<a name="ln-732"></a> -<a name="ln-733"></a> -<a name="ln-734"></a><span class="c">!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</span> -<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> -<a name="ln-736"></a> -<a name="ln-737"></a> <span class="k">IMPLICIT NONE</span> -<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> -<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> -<a name="ln-740"></a> <span class="kt">REAL </span><span class="n">G</span> -<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> -<a name="ln-742"></a> -<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> -<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> -<a name="ln-745"></a> -<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> -<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> -<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> -<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> -<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> -<a name="ln-751"></a><span class="mi">100</span> <span class="k">CONTINUE</span> -<a name="ln-752"></a> -<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> -<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> -<a name="ln-755"></a> <span class="k">ELSE</span> -<a name="ln-756"></a><span class="k"> </span><span class="n">XMAX</span><span class="o">=</span><span class="n">RMAX</span> -<a name="ln-757"></a> <span class="n">ENDIF</span> -<a name="ln-758"></a> -<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> -<a name="ln-760"></a><span class="k"> </span><span class="n">IA</span> <span class="o">=</span> <span class="mi">0</span> -<a name="ln-761"></a> <span class="k">RETURN</span> -<a name="ln-762"></a><span class="k"> </span><span class="n">ENDIF</span> -<a name="ln-763"></a> -<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> -<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> -<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> -<a name="ln-767"></a><span class="k"> </span><span class="n">A</span><span class="o">=</span><span class="n">A2</span> -<a name="ln-768"></a> <span class="k">ELSE </span> -<a name="ln-769"></a><span class="k"> </span><span class="n">A</span><span class="o">=</span><span class="n">A1</span> -<a name="ln-770"></a> <span class="n">ENDIF</span> -<a name="ln-771"></a> -<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> -<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> -<a name="ln-774"></a> -<a name="ln-775"></a> <span class="k">RETURN</span> -<a name="ln-776"></a><span class="k"> END</span> -<a name="ln-777"></a><span class="k"> </span> -<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> -<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> -<a name="ln-780"></a> -<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> -<a name="ln-782"></a> -<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> -<a name="ln-784"></a> -<a name="ln-785"></a> <span class="n">RMS</span><span class="o">=</span><span class="mf">0.</span> -<a name="ln-786"></a> <span class="n">MW</span><span class="o">=</span><span class="mf">0.</span> -<a name="ln-787"></a> -<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> -<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> -<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> -<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> -<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> -<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> -<a name="ln-794"></a><span class="mi">10</span> <span class="k">CONTINUE</span> -<a name="ln-795"></a> -<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> -<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> -<a name="ln-798"></a> -<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> -<a name="ln-800"></a><span class="k"> </span><span class="n">SIG</span><span class="o">=</span><span class="mf">0.0</span> -<a name="ln-801"></a> <span class="k">ELSE</span> -<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> -<a name="ln-803"></a> <span class="n">ENDIF</span> -<a name="ln-804"></a> -<a name="ln-805"></a> <span class="k">RETURN</span> -<a name="ln-806"></a><span class="k"> END</span> -<a name="ln-807"></a> -</pre></div> - - </section> - </div> - </div> - - <section class="visible-xs visible-sm hidden-md"> - <hr> - - -<div class="panel panel-default"> - <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#allfiles-1">All Source Files</a></h3></div> - <div id="allfiles-1" class="panel-collapse collapse"> - <div class="list-group"> - - <a class="list-group-item" href="../sourcefile/grphreal.f.html">grphreal.f</a> - - <a class="list-group-item" href="../sourcefile/phgrreal.f.html">phgrreal.f</a> - - <a class="list-group-item" href="../sourcefile/preconvert.f90.html">preconvert.f90</a> - - <a class="list-group-item" href="../sourcefile/rwgrib2.f90.html">rwGRIB2.f90</a> - - </div> - </div> -</div> - - - </section> - - <hr> - </div> <!-- /container --> - <footer> - <div class="container"> - <div class="row"> - <div class="col-xs-6 col-md-4"><p>© 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> - <div class="col-xs-6 col-md-4 col-md-push-4"> - <p class="text-right"> - Documentation generated by - <a href="https://github.com/cmacmackin/ford">FORD</a> - - </p> - </div> - <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> - </div> - <br> - </div> <!-- /container --> - </footer> - - <!-- Bootstrap core JavaScript - ================================================== --> - <!-- Placed at the end of the document so the pages load faster --> -<!-- - <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> ---> - <script src="../js/bootstrap.min.js"></script> - <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> - <script src="../js/ie10-viewport-bug-workaround.js"></script> - - <!-- MathJax JavaScript - ================================================== --> - <!-- Placed at the end of the document so the pages load faster --> - <script type="text/x-mathjax-config"> - MathJax.Hub.Config({ - TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, - jax: ['input/TeX','input/MathML','output/HTML-CSS'], - extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'], - 'HTML-CSS': { - styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: '#000000 ! important'} } - } - }); - </script> - <!-- <script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> --> - </body> -</html> \ No newline at end of file diff --git a/Documentation/FORD/V5/Doc_original/sourcefile/rwgrib2.f90.html b/Documentation/FORD/V5/Doc_original/sourcefile/rwgrib2.f90.html deleted file mode 100644 index 929d0f9a96d50da797f75b8d90200f50668077a6..0000000000000000000000000000000000000000 --- a/Documentation/FORD/V5/Doc_original/sourcefile/rwgrib2.f90.html +++ /dev/null @@ -1,690 +0,0 @@ -<!DOCTYPE html> -<html lang="en"> - <head> - <meta charset="utf-8"> - <meta http-equiv="X-UA-Compatible" content="IE=edge"> - <meta name="viewport" content="width=device-width, initial-scale=1"> - - <meta name="description" content="Calculation of vertical velocity for FLEXPART"> - - <meta name="author" content="Leopold Haimberger" > - <link rel="icon" href="../favicon.png"> - - <title>rwGRIB2.f90 – Flex_extract: Calculation of etadot</title> - - <link href="../css/bootstrap.min.css" rel="stylesheet"> - <link href="../css/pygments.css" rel="stylesheet"> - <link href="../css/font-awesome.min.css" rel="stylesheet"> - <link href="../css/local.css" rel="stylesheet"> - - - <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> - <!--[if lt IE 9]> - <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> - <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> - <![endif]--> - - <script src="../js/jquery-2.1.3.min.js"></script> - <script src="../js/svg-pan-zoom.min.js"></script> - - - <script src="../tipuesearch/tipuesearch_content.js"></script> - <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> - <script src="../tipuesearch/tipuesearch_set.js"></script> - <script src="../tipuesearch/tipuesearch.js"></script> - - - </head> - - <body> - - <!-- Fixed navbar --> - <nav class="navbar navbar-inverse navbar-fixed-top"> - <div class="container"> - <div class="navbar-header"> - <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> - <span class="sr-only">Toggle navigation</span> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - <span class="icon-bar"></span> - </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> - </div> - <div id="navbar" class="navbar-collapse collapse"> - <ul class="nav navbar-nav"> - - <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> - <a href="#" class="dropdown-toggle" - data-toggle="dropdown" role="button" - aria-haspopup="true" - aria-expanded="false">Contents <span class="caret"></span></a> - <ul class="dropdown-menu"> - - <li><a href="../lists/files.html">Source Files</a></li> - - - <li><a href="../lists/modules.html">Modules</a></li> - - - - <li><a href="../lists/procedures.html">Procedures</a></li> - - - - <li><a href="../program/preconvert.html">Program</a></li> - - </ul> - </li> - -<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> - - -<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> - - - -<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> - - - -<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> - - </ul> - - <form action="../search.html" class="navbar-form navbar-right" role="search"> - <div class="form-group"> - <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> - </div> -<!-- - <button type="submit" class="btn btn-default">Submit</button> ---> - </form> - - </div><!--/.nav-collapse --> - </div> - </nav> - - <div class="container"> - - - <div class="row"> - <h1>rwGRIB2.f90 - <small>Source File</small> - - </h1> - -<div class="row"> - <div class="col-lg-12"> -<div class="well well-sm"> - <ul class="list-inline" style="margin-bottom:0px;display:inline"> - - - - - - - <li><i class="fa fa-list-ol"></i> - <a data-toggle="tooltip" - data-placement="bottom" data-html="true" - title="14.8% of total for source files.">197 statements</a> - </li> - - - <li><i class="fa fa-code"></i><a href="../src/rwGRIB2.f90"> Source File</a></li> - - </ul> - <ol class="breadcrumb in-well text-right"> - - <li class="active">rwGRIB2.f90</li> - </ol> -</div> -</div> -</div> -<script> - $(function () { - $('[data-toggle="tooltip"]').tooltip() - }) -</script> - - </div> - <div class="row"> - <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg"> - -<div id="sidebar"> - - - - - - - -<div class="panel panel-primary"> - <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#mods-0">Modules</a></h3></div> - <div id="mods-0" class="panel-collapse collapse"> - <div class="list-group"> - - <a class="list-group-item" href="../module/rwgrib2.html">RWGRIB2</a> - - </div> - </div> -</div> - - - - - - - - - - - - - - - -<div class="panel panel-primary"> - <div class="panel-heading text-left"><h3 class="panel-title">Source Code</h3></div> - <div class="list-group"> - <a class="list-group-item" href="../sourcefile/rwgrib2.f90.html#src">rwGRIB2.f90</a> - </div> -</div> - - - <hr> - - -<div class="panel panel-default"> - <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#allfiles-0">All Source Files</a></h3></div> - <div id="allfiles-0" class="panel-collapse collapse"> - <div class="list-group"> - - <a class="list-group-item" href="../sourcefile/grphreal.f.html">grphreal.f</a> - - <a class="list-group-item" href="../sourcefile/phgrreal.f.html">phgrreal.f</a> - - <a class="list-group-item" href="../sourcefile/preconvert.f90.html">preconvert.f90</a> - - <a class="list-group-item" href="../sourcefile/rwgrib2.f90.html">rwGRIB2.f90</a> - - </div> - </div> -</div> - - -</div> - - </div> - <div class="col-md-9" id='text'> - - - - <h3>Files Dependent On This One</h3> - - <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<!-- Generated by graphviz version 2.38.0 (20140413.2041) - --> -<!-- Title: sourcefile~~rwgrib2.f90~~AfferentGraph Pages: 1 --> -<svg id="sourcefilerwgrib2f90AfferentGraph" width="199pt" height="32pt" - viewBox="0.00 0.00 199.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> -<g id="sourcefile~~rwgrib2.f90~~AfferentGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> -<title>sourcefile~~rwgrib2.f90~~AfferentGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-28 195,-28 195,4 -4,4"/> -<!-- sourcefile~rwgrib2.f90 --> -<g id="sourcefile~~rwgrib2.f90~~AfferentGraph_node1" class="node"><title>sourcefile~rwgrib2.f90</title> -<polygon fill="none" stroke="black" points="73,-24 0,-24 0,-0 73,-0 73,-24"/> -<text text-anchor="middle" x="36.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">rwGRIB2.f90</text> -</g> -<!-- sourcefile~preconvert.f90 --> -<g id="sourcefile~~rwgrib2.f90~~AfferentGraph_node2" class="node"><title>sourcefile~preconvert.f90</title> -<g id="a_sourcefile~~rwgrib2.f90~~AfferentGraph_node2"><a xlink:href="../sourcefile/preconvert.f90.html" xlink:title="preconvert.f90"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="191,-24 109,-24 109,-0 191,-0 191,-24"/> -<text text-anchor="middle" x="150" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">preconvert.f90</text> -</a> -</g> -</g> -<!-- sourcefile~rwgrib2.f90->sourcefile~preconvert.f90 --> -<g id="sourcefile~~rwgrib2.f90~~AfferentGraph_edge1" class="edge"><title>sourcefile~rwgrib2.f90->sourcefile~preconvert.f90</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M73.0859,-12C81.2397,-12 90.0586,-12 98.7011,-12"/> -<polygon fill="#000000" stroke="#000000" points="98.7152,-15.5001 108.715,-12 98.7151,-8.5001 98.7152,-15.5001"/> -</g> -</g> -</svg> -</div> - <div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div> - <div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"> - <div class="modal-dialog modal-lg" role="document"> - <div class="modal-content"> - <div class="modal-header"> - <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> - <h4 class="modal-title" id="-graph-help-label">Graph Key</h4> - </div> - <div class="modal-body"> - - <p>Nodes of different colours represent the following: </p> - <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" - "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<!-- Generated by graphviz version 2.38.0 (20140413.2041) - --> -<!-- Title: Graph Key Pages: 1 --> -<svg width="190pt" height="32pt" - viewBox="0.00 0.00 190.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> -<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> -<title>Graph Key</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-28 186,-28 186,4 -4,4"/> -<!-- Source File --> -<g id="node1" class="node"><title>Source File</title> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="67,-24 0,-24 0,-0 67,-0 67,-24"/> -<text text-anchor="middle" x="33.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Source File</text> -</g> -<!-- This Page's Entity --> -<g id="node2" class="node"><title>This Page's Entity</title> -<polygon fill="none" stroke="black" points="182,-24 85,-24 85,-0 182,-0 182,-24"/> -<text text-anchor="middle" x="133.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> -</g> -</g> -</svg> - - - <p>Solid arrows point from a file to a file which depends upon it. A file - is dependent upon another if the latter must be compiled before the former - can be. - </p> - - </div> - </div> - </div> - </div> - - - <br> - - <section class="visible-xs visible-sm hidden-md"> - - - - - - - -<div class="panel panel-primary"> - <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#mods-1">Modules</a></h3></div> - <div id="mods-1" class="panel-collapse collapse"> - <div class="list-group"> - - <a class="list-group-item" href="../module/rwgrib2.html">RWGRIB2</a> - - </div> - </div> -</div> - - - - - - - - - - - - - - - -<div class="panel panel-primary"> - <div class="panel-heading text-left"><h3 class="panel-title">Source Code</h3></div> - <div class="list-group"> - <a class="list-group-item" href="../sourcefile/rwgrib2.f90.html#src">rwGRIB2.f90</a> - </div> -</div> - - - </section> - <br class="visible-xs visible-sm hidden-md"> - - <section> - <h2><span class="anchor" id="src"></span>Source Code</h2> - <div class="hl"><pre><span></span><a name="ln-1"></a> <span class="k">MODULE </span><span class="n">RWGRIB2</span> -<a name="ln-2"></a> -<a name="ln-3"></a> <span class="k">CONTAINS</span> -<a name="ln-4"></a> -<a name="ln-5"></a><span class="k"> SUBROUTINE </span><span class="n">READLATLON</span><span class="p">(</span><span class="n">FILENAME</span><span class="p">,</span><span class="n">FELD</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">MPAR</span><span class="p">)</span> -<a name="ln-6"></a> -<a name="ln-7"></a> <span class="k">USE </span><span class="n">GRIB_API</span> -<a name="ln-8"></a> -<a name="ln-9"></a> <span class="k">IMPLICIT NONE</span> -<a name="ln-10"></a> -<a name="ln-11"></a><span class="k"> </span><span class="kt">integer</span> <span class="kd">::</span> <span class="n">ifile</span> -<a name="ln-12"></a> <span class="kt">integer</span> <span class="kd">::</span> <span class="n">iret</span> -<a name="ln-13"></a> <span class="kt">integer</span> <span class="kd">::</span> <span class="n">n</span><span class="p">,</span><span class="n">mk</span><span class="p">,</span><span class="n">parid</span><span class="p">,</span><span class="n">nm</span> -<a name="ln-14"></a> <span class="kt">integer</span> <span class="kd">::</span> <span class="n">i</span><span class="p">,</span><span class="n">k</span> -<a name="ln-15"></a> <span class="kt">integer</span><span class="p">,</span><span class="k">dimension</span><span class="p">(:),</span><span class="k">allocatable</span> <span class="kd">::</span> <span class="n">igrib</span> -<a name="ln-16"></a> <span class="kt">integer</span> <span class="kd">::</span> <span class="n">numberOfPointsAlongAParallel</span> -<a name="ln-17"></a> <span class="kt">integer</span> <span class="kd">::</span> <span class="n">numberOfPointsAlongAMeridian</span> -<a name="ln-18"></a> <span class="kt">real</span><span class="p">,</span> <span class="k">dimension</span><span class="p">(:),</span> <span class="k">allocatable</span> <span class="kd">::</span> <span class="n">values</span> -<a name="ln-19"></a> <span class="kt">integer</span> <span class="kd">::</span> <span class="n">numberOfValues</span> -<a name="ln-20"></a> <span class="kt">real</span><span class="p">,</span><span class="k">dimension</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="kd">::</span> <span class="n">feld</span> -<a name="ln-21"></a> <span class="kt">integer</span><span class="kd">::</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">mstride</span><span class="p">,</span><span class="n">mpar</span><span class="p">(:),</span><span class="n">irest</span><span class="p">,</span><span class="n">div</span><span class="p">,</span><span class="n">level</span> -<a name="ln-22"></a> <span class="kt">integer</span> <span class="kd">::</span> <span class="n">l</span><span class="p">(</span><span class="n">size</span><span class="p">(</span><span class="n">mpar</span><span class="p">))</span> -<a name="ln-23"></a> <span class="kt">character</span><span class="o">*</span><span class="p">(</span><span class="o">*</span><span class="p">)</span><span class="kd">::</span> <span class="n">filename</span> -<a name="ln-24"></a> -<a name="ln-25"></a> <span class="n">feld</span><span class="o">=</span><span class="mf">0.</span> -<a name="ln-26"></a> -<a name="ln-27"></a> <span class="k">call </span><span class="n">grib_open_file</span><span class="p">(</span><span class="n">ifile</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">'r'</span><span class="p">)</span> -<a name="ln-28"></a> -<a name="ln-29"></a> <span class="c">! count the messages in the file</span> -<a name="ln-30"></a> <span class="k">call </span><span class="n">grib_count_in_file</span><span class="p">(</span><span class="n">ifile</span><span class="p">,</span><span class="n">n</span><span class="p">)</span> -<a name="ln-31"></a> <span class="k">allocate</span><span class="p">(</span><span class="n">igrib</span><span class="p">(</span><span class="n">n</span><span class="p">))</span> -<a name="ln-32"></a> <span class="n">igrib</span><span class="o">=-</span><span class="mi">1</span> -<a name="ln-33"></a> -<a name="ln-34"></a> <span class="c">! Load the messages from the file.</span> -<a name="ln-35"></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">n</span> -<a name="ln-36"></a> <span class="k">call </span><span class="n">grib_new_from_file</span><span class="p">(</span><span class="n">ifile</span><span class="p">,</span><span class="n">igrib</span><span class="p">(</span><span class="n">i</span><span class="p">),</span> <span class="n">iret</span><span class="p">)</span> -<a name="ln-37"></a> <span class="k">END DO</span> -<a name="ln-38"></a> -<a name="ln-39"></a> <span class="c">! we can close the file</span> -<a name="ln-40"></a> <span class="k">call </span><span class="n">grib_close_file</span><span class="p">(</span><span class="n">ifile</span><span class="p">)</span> -<a name="ln-41"></a> -<a name="ln-42"></a> <span class="n">nm</span><span class="o">=</span><span class="n">size</span><span class="p">(</span><span class="n">mpar</span><span class="p">)</span> -<a name="ln-43"></a> <span class="n">div</span><span class="o">=</span><span class="n">mlevel</span><span class="o">/</span><span class="n">nm</span> -<a name="ln-44"></a> <span class="n">l</span><span class="o">=</span><span class="mi">0</span> -<a name="ln-45"></a> -<a name="ln-46"></a> <span class="c">! Loop on all the messages in memory</span> -<a name="ln-47"></a> <span class="n">iloop</span><span class="p">:</span> <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">n</span> -<a name="ln-48"></a><span class="c">! write(*,*) 'processing message number ',i</span> -<a name="ln-49"></a> <span class="c">! get as a integer</span> -<a name="ln-50"></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="n">i</span><span class="p">),</span><span class="s1">'numberOfPointsAlongAParallel'</span><span class="p">,</span> <span class="p">&</span> -<a name="ln-51"></a> <span class="n">numberOfPointsAlongAParallel</span><span class="p">)</span> -<a name="ln-52"></a> -<a name="ln-53"></a> <span class="c">! get as a integer</span> -<a name="ln-54"></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="n">i</span><span class="p">),</span><span class="s1">'numberOfPointsAlongAMeridian'</span><span class="p">,</span> <span class="p">&</span> -<a name="ln-55"></a> <span class="n">numberOfPointsAlongAMeridian</span><span class="p">)</span> -<a name="ln-56"></a> -<a name="ln-57"></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="n">i</span><span class="p">),</span><span class="s1">'numberOfVerticalCoordinateValues'</span><span class="p">,</span><span class="n">mk</span><span class="p">)</span> -<a name="ln-58"></a> -<a name="ln-59"></a> <span class="k">call </span><span class="n">grib_get_size</span><span class="p">(</span><span class="n">igrib</span><span class="p">(</span><span class="n">i</span><span class="p">),</span><span class="s1">'values'</span><span class="p">,</span><span class="n">numberOfValues</span><span class="p">)</span> -<a name="ln-60"></a><span class="c">! write(*,*) 'numberOfValues=',numberOfValues</span> -<a name="ln-61"></a> -<a name="ln-62"></a> <span class="k">allocate</span><span class="p">(</span><span class="n">values</span><span class="p">(</span><span class="n">numberOfValues</span><span class="p">),</span> <span class="nb">stat</span><span class="o">=</span><span class="n">iret</span><span class="p">)</span> -<a name="ln-63"></a> <span class="c">! get data values</span> -<a name="ln-64"></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="n">i</span><span class="p">),</span><span class="s1">'values'</span><span class="p">,</span><span class="n">values</span><span class="p">)</span> -<a name="ln-65"></a> -<a name="ln-66"></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="n">i</span><span class="p">),</span><span class="s1">'paramId'</span><span class="p">,</span><span class="n">parid</span><span class="p">)</span> -<a name="ln-67"></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="n">i</span><span class="p">),</span><span class="s1">'level'</span><span class="p">,</span><span class="n">level</span><span class="p">)</span> -<a name="ln-68"></a> -<a name="ln-69"></a> <span class="n">kloop</span><span class="p">:</span> <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">nm</span> -<a name="ln-70"></a> <span class="k">if</span><span class="p">(</span><span class="n">parid</span> <span class="p">.</span><span class="n">eq</span><span class="p">.</span> <span class="n">mpar</span><span class="p">(</span><span class="n">k</span><span class="p">))</span> <span class="k">then</span> -<a name="ln-71"></a><span class="c">! l(k)=l(k)+1</span> -<a name="ln-72"></a> <span class="n">feld</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">div</span><span class="o">+</span><span class="n">level</span><span class="p">)</span><span class="o">=</span><span class="nb">reshape</span><span class="p">(</span><span class="n">values</span><span class="p">,(</span><span class="o">/</span><span class="n">maxl</span><span class="p">,</span><span class="n">maxb</span><span class="o">/</span><span class="p">))</span> -<a name="ln-73"></a><span class="c">! print*,(k-1)*div+l(k),parid</span> -<a name="ln-74"></a> <span class="k">exit </span><span class="n">kloop</span> -<a name="ln-75"></a> <span class="n">endif</span> -<a name="ln-76"></a> <span class="n">enddo</span> <span class="n">kloop</span> -<a name="ln-77"></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="n">nm</span> <span class="p">.</span><span class="nb">and</span><span class="p">.</span> <span class="n">parid</span> <span class="p">.</span><span class="n">ne</span><span class="p">.</span> <span class="n">mpar</span><span class="p">(</span><span class="n">nm</span><span class="p">))</span> <span class="k">then</span> -<a name="ln-78"></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="n">k</span><span class="p">,</span><span class="n">nm</span><span class="p">,</span><span class="n">parid</span><span class="p">,</span><span class="n">mpar</span><span class="p">(</span><span class="n">nm</span><span class="p">)</span> -<a name="ln-79"></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">'ERROR readlatlon: parameter '</span><span class="p">,</span><span class="n">parid</span><span class="p">,</span><span class="s1">'is not'</span><span class="p">,</span><span class="n">mpar</span> -<a name="ln-80"></a> <span class="k">stop</span> -<a name="ln-81"></a><span class="k"> </span><span class="n">endif</span> -<a name="ln-82"></a> -<a name="ln-83"></a><span class="c">! print*,i</span> -<a name="ln-84"></a> <span class="k">END DO </span><span class="n">iloop</span> -<a name="ln-85"></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">'readlatlon: '</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="s1">' records read'</span> -<a name="ln-86"></a> -<a name="ln-87"></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">n</span> -<a name="ln-88"></a> <span class="k">call </span><span class="n">grib_release</span><span class="p">(</span><span class="n">igrib</span><span class="p">(</span><span class="n">i</span><span class="p">))</span> -<a name="ln-89"></a> <span class="k">END DO</span> -<a name="ln-90"></a><span class="k"> </span> -<a name="ln-91"></a><span class="k"> deallocate</span><span class="p">(</span><span class="n">values</span><span class="p">)</span> -<a name="ln-92"></a> <span class="k">deallocate</span><span class="p">(</span><span class="n">igrib</span><span class="p">)</span> -<a name="ln-93"></a> -<a name="ln-94"></a> <span class="k">END SUBROUTINE </span><span class="n">READLATLON</span> -<a name="ln-95"></a> -<a name="ln-96"></a> <span class="k">SUBROUTINE </span><span class="n">WRITELATLON</span><span class="p">(</span><span class="n">iunit</span><span class="p">,</span><span class="n">igrib</span><span class="p">,</span><span class="n">ogrib</span><span class="p">,</span><span class="n">FELD</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> -<a name="ln-97"></a> <span class="n">MLEVELIST</span><span class="p">,</span><span class="n">MSTRIDE</span><span class="p">,</span><span class="n">MPAR</span><span class="p">)</span> -<a name="ln-98"></a> -<a name="ln-99"></a> <span class="k">USE </span><span class="n">GRIB_API</span> -<a name="ln-100"></a> -<a name="ln-101"></a> <span class="k">IMPLICIT NONE</span> -<a name="ln-102"></a> -<a name="ln-103"></a><span class="k"> </span><span class="kt">INTEGER </span><span class="n">IFIELD</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,</span><span class="n">MNAUF</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">L</span><span class="p">,</span><span class="n">MSTRIDE</span><span class="p">,</span><span class="n">IERR</span><span class="p">,</span><span class="n">JOUT</span> -<a name="ln-104"></a> <span class="kt">INTEGER </span><span class="n">MPAR</span><span class="p">(</span><span class="n">MSTRIDE</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">LEVMIN</span><span class="p">,</span><span class="n">LEVMAX</span> -<a name="ln-105"></a> <span class="kt">INTEGER </span><span class="n">IUNIT</span><span class="p">,</span><span class="n">igrib</span><span class="p">,</span><span class="n">ogrib</span> -<a name="ln-106"></a> <span class="kt">REAL </span><span class="n">ZSEC4</span><span class="p">(</span><span class="n">MAXL</span><span class="o">*</span><span class="n">MAXB</span><span class="p">)</span> -<a name="ln-107"></a> <span class="kt">REAL </span><span class="n">FELD</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> -<a name="ln-108"></a> <span class="kt">CHARACTER</span><span class="o">*</span><span class="p">(</span><span class="o">*</span><span class="p">)</span> <span class="n">MLEVELIST</span> -<a name="ln-109"></a> <span class="kt">INTEGER </span><span class="n">ILEVEL</span><span class="p">(</span><span class="n">MLEVEL</span><span class="p">),</span><span class="n">MLINDEX</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">LLEN</span> -<a name="ln-110"></a> -<a name="ln-111"></a> <span class="c">! parse MLEVELIST</span> -<a name="ln-112"></a> -<a name="ln-113"></a> <span class="n">LLEN</span><span class="o">=</span><span class="nb">len</span><span class="p">(</span><span class="nb">trim</span><span class="p">(</span><span class="n">MLEVELIST</span><span class="p">))</span> -<a name="ln-114"></a> <span class="k">if</span><span class="p">(</span><span class="nb">index</span><span class="p">(</span><span class="n">MLEVELIST</span><span class="p">,</span><span class="s1">'to'</span><span class="p">)</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="nb">or</span><span class="p">.</span> <span class="nb">index</span><span class="p">(</span><span class="n">MLEVELIST</span><span class="p">,</span><span class="s1">'TO'</span><span class="p">)</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> -<a name="ln-115"></a><span class="k"> </span><span class="n">i</span><span class="o">=</span><span class="nb">index</span><span class="p">(</span><span class="n">MLEVELIST</span><span class="p">,</span><span class="s1">'/'</span><span class="p">)</span> -<a name="ln-116"></a> <span class="k">read</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="n">i</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">LEVMIN</span> -<a name="ln-117"></a> <span class="n">i</span><span class="o">=</span><span class="nb">index</span><span class="p">(</span><span class="n">MLEVELIST</span><span class="p">,</span><span class="s1">'/'</span><span class="p">,.</span><span class="n">true</span><span class="p">.)</span> -<a name="ln-118"></a> <span class="k">read</span><span class="p">(</span><span class="n">MLEVELIST</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">LLEN</span><span class="p">),</span><span class="o">*</span><span class="p">)</span> <span class="n">LEVMAX</span> -<a name="ln-119"></a> <span class="n">l</span><span class="o">=</span><span class="mi">0</span> -<a name="ln-120"></a> <span class="k">do </span><span class="n">i</span><span class="o">=</span><span class="n">LEVMIN</span><span class="p">,</span><span class="n">LEVMAX</span> -<a name="ln-121"></a> <span class="n">l</span><span class="o">=</span><span class="n">l</span><span class="o">+</span><span class="mi">1</span> -<a name="ln-122"></a> <span class="n">ILEVEL</span><span class="p">(</span><span class="n">l</span><span class="p">)</span><span class="o">=</span><span class="n">i</span> -<a name="ln-123"></a> <span class="n">enddo</span> -<a name="ln-124"></a> <span class="k">else</span> -<a name="ln-125"></a><span class="k"> </span><span class="n">l</span><span class="o">=</span><span class="mi">1</span> -<a name="ln-126"></a> <span class="n">MLINDEX</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="mi">0</span> -<a name="ln-127"></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">LLEN</span> -<a name="ln-128"></a> <span class="k">if</span><span class="p">(</span><span class="n">MLEVELIST</span><span class="p">(</span><span class="n">i</span><span class="p">:</span><span class="n">i</span><span class="p">)</span> <span class="p">.</span><span class="n">eq</span><span class="p">.</span> <span class="s1">'/'</span><span class="p">)</span> <span class="k">THEN</span> -<a name="ln-129"></a><span class="k"> </span><span class="n">l</span><span class="o">=</span><span class="n">l</span><span class="o">+</span><span class="mi">1</span> -<a name="ln-130"></a> <span class="n">MLINDEX</span><span class="p">(</span><span class="n">l</span><span class="p">)</span><span class="o">=</span><span class="n">i</span> -<a name="ln-131"></a> <span class="n">endif</span> -<a name="ln-132"></a> <span class="n">enddo</span> -<a name="ln-133"></a> <span class="n">MLINDEX</span><span class="p">(</span><span class="n">l</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">LLEN</span><span class="o">+</span><span class="mi">1</span> -<a name="ln-134"></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">l</span> -<a name="ln-135"></a> <span class="k">read</span><span class="p">(</span><span class="n">MLEVELIST</span><span class="p">(</span><span class="n">MLINDEX</span><span class="p">(</span><span class="n">i</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">:</span><span class="n">MLINDEX</span><span class="p">(</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">),</span><span class="o">*</span><span class="p">)</span> <span class="n">ILEVEL</span><span class="p">(</span><span class="n">i</span><span class="p">)</span> -<a name="ln-136"></a> <span class="n">enddo</span> -<a name="ln-137"></a> <span class="n">endif</span> -<a name="ln-138"></a> -<a name="ln-139"></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">l</span> -<a name="ln-140"></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="s2">"level"</span><span class="p">,</span><span class="n">ILEVEL</span><span class="p">(</span><span class="n">k</span><span class="p">))</span> -<a name="ln-141"></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">MSTRIDE</span> -<a name="ln-142"></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="s2">"paramId"</span><span class="p">,</span><span class="n">MPAR</span><span class="p">(</span><span class="n">j</span><span class="p">))</span> -<a name="ln-143"></a><span class="c">! if(MPAR(j) .eq. 87) then</span> -<a name="ln-144"></a><span class="c">! call grib_set(igrib,"shortName","etadot")</span> -<a name="ln-145"></a><span class="c">! call grib_set(igrib,"units","Pa,s**-1")</span> -<a name="ln-146"></a><span class="c">! endif</span> -<a name="ln-147"></a><span class="c">! if(MPAR(j) .eq. 77) then</span> -<a name="ln-148"></a><span class="c">! call grib_set(igrib,"shortName","etadot")</span> -<a name="ln-149"></a><span class="c">! call grib_set(igrib,"units","s**-1")</span> -<a name="ln-150"></a><span class="c">! endif</span> -<a name="ln-151"></a> <span class="k">if</span><span class="p">(</span><span class="n">l</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> -<a name="ln-152"></a><span class="k"> </span><span class="n">zsec4</span><span class="p">(</span><span class="mi">1</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="o">=</span><span class="nb">RESHAPE</span><span class="p">(</span><span class="n">FELD</span><span class="p">(:,:,</span><span class="n">ILEVEL</span><span class="p">(</span><span class="n">k</span><span class="p">)),(</span><span class="o">/</span><span class="n">maxl</span><span class="o">*</span><span class="n">maxb</span><span class="o">/</span><span class="p">))</span> -<a name="ln-153"></a> <span class="k">else</span> -<a name="ln-154"></a><span class="k"> </span><span class="n">zsec4</span><span class="p">(</span><span class="mi">1</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="o">=</span><span class="nb">RESHAPE</span><span class="p">(</span><span class="n">FELD</span><span class="p">(:,:,</span><span class="n">k</span><span class="p">),(</span><span class="o">/</span><span class="n">maxl</span><span class="o">*</span><span class="n">maxb</span><span class="o">/</span><span class="p">))</span> -<a name="ln-155"></a> <span class="n">endif</span> -<a name="ln-156"></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="s2">"values"</span><span class="p">,</span><span class="n">zsec4</span><span class="p">)</span> -<a name="ln-157"></a> -<a name="ln-158"></a> <span class="k">call </span><span class="n">grib_write</span><span class="p">(</span><span class="n">igrib</span><span class="p">,</span><span class="n">iunit</span><span class="p">)</span> -<a name="ln-159"></a> -<a name="ln-160"></a> <span class="n">ENDDO</span> -<a name="ln-161"></a> <span class="n">ENDDO</span> -<a name="ln-162"></a> -<a name="ln-163"></a> -<a name="ln-164"></a> -<a name="ln-165"></a> <span class="k">END SUBROUTINE </span><span class="n">WRITELATLON</span> -<a name="ln-166"></a> -<a name="ln-167"></a> <span class="k">SUBROUTINE </span><span class="n">READSPECTRAL</span><span class="p">(</span><span class="n">FILENAME</span><span class="p">,</span><span class="n">CXMN</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,&</span> -<a name="ln-168"></a> <span class="n">MAXLEV</span><span class="p">,</span><span class="n">MPAR</span><span class="p">,</span><span class="n">A</span><span class="p">,</span><span class="n">B</span><span class="p">)</span> -<a name="ln-169"></a> -<a name="ln-170"></a> <span class="k">USE </span><span class="n">GRIB_API</span> -<a name="ln-171"></a> -<a name="ln-172"></a> <span class="k">IMPLICIT NONE</span> -<a name="ln-173"></a> -<a name="ln-174"></a> -<a name="ln-175"></a><span class="k"> </span><span class="kt">integer</span> <span class="kd">::</span> <span class="n">ifile</span> -<a name="ln-176"></a> <span class="kt">integer</span> <span class="kd">::</span> <span class="n">iret</span> -<a name="ln-177"></a> <span class="kt">integer</span> <span class="kd">::</span> <span class="n">n</span><span class="p">,</span><span class="n">mk</span><span class="p">,</span><span class="n">div</span><span class="p">,</span><span class="n">nm</span><span class="p">,</span><span class="n">k</span> -<a name="ln-178"></a> <span class="kt">integer</span> <span class="kd">::</span> <span class="n">i</span><span class="p">,</span><span class="n">j</span><span class="p">,</span><span class="n">parid</span> -<a name="ln-179"></a> <span class="kt">integer</span><span class="p">,</span><span class="k">dimension</span><span class="p">(:),</span><span class="k">allocatable</span> <span class="kd">::</span> <span class="n">igrib</span> -<a name="ln-180"></a> <span class="kt">real</span><span class="p">,</span> <span class="k">dimension</span><span class="p">(:),</span> <span class="k">allocatable</span> <span class="kd">::</span> <span class="n">values</span> -<a name="ln-181"></a> <span class="kt">integer</span> <span class="kd">::</span> <span class="n">numberOfValues</span><span class="p">,</span><span class="n">maxlev</span> -<a name="ln-182"></a> <span class="kt">REAL</span> <span class="kd">::</span> <span class="n">A</span><span class="p">(</span><span class="n">MAXLEV</span><span class="o">+</span><span class="mi">1</span><span class="p">),</span><span class="n">B</span><span class="p">(</span><span class="n">MAXLEV</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">MAXLEV</span><span class="o">+</span><span class="mi">2</span><span class="p">)</span> -<a name="ln-183"></a> <span class="kt">REAL</span><span class="kd">::</span> <span class="n">CXMN</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="n">MLEVEL</span><span class="p">)</span> -<a name="ln-184"></a><span class="kt">integer</span><span class="kd">::</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">mstride</span><span class="p">,</span><span class="n">mpar</span><span class="p">(:),</span><span class="n">mnauf</span><span class="p">,</span><span class="n">ioffset</span><span class="p">,</span><span class="n">ipar</span><span class="p">,</span><span class="n">ilev</span><span class="p">,</span><span class="n">l</span><span class="p">(</span><span class="n">size</span><span class="p">(</span><span class="n">mpar</span><span class="p">))</span> -<a name="ln-185"></a><span class="kt">character</span><span class="o">*</span><span class="p">(</span><span class="o">*</span><span class="p">)</span><span class="kd">::</span> <span class="n">filename</span> -<a name="ln-186"></a> -<a name="ln-187"></a> <span class="k">call </span><span class="n">grib_open_file</span><span class="p">(</span><span class="n">ifile</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">'r'</span><span class="p">)</span> -<a name="ln-188"></a> -<a name="ln-189"></a> <span class="c">! count the messages in the file</span> -<a name="ln-190"></a> <span class="k">call </span><span class="n">grib_count_in_file</span><span class="p">(</span><span class="n">ifile</span><span class="p">,</span><span class="n">n</span><span class="p">)</span> -<a name="ln-191"></a> <span class="k">allocate</span><span class="p">(</span><span class="n">igrib</span><span class="p">(</span><span class="n">n</span><span class="p">))</span> -<a name="ln-192"></a> <span class="n">igrib</span><span class="o">=-</span><span class="mi">1</span> -<a name="ln-193"></a> -<a name="ln-194"></a> <span class="c">! Load the messages from the file.</span> -<a name="ln-195"></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">n</span> -<a name="ln-196"></a> <span class="k">call </span><span class="n">grib_new_from_file</span><span class="p">(</span><span class="n">ifile</span><span class="p">,</span><span class="n">igrib</span><span class="p">(</span><span class="n">i</span><span class="p">),</span> <span class="n">iret</span><span class="p">)</span> -<a name="ln-197"></a> <span class="k">END DO</span> -<a name="ln-198"></a> -<a name="ln-199"></a> <span class="c">! we can close the file</span> -<a name="ln-200"></a> <span class="k">call </span><span class="n">grib_close_file</span><span class="p">(</span><span class="n">ifile</span><span class="p">)</span> -<a name="ln-201"></a> -<a name="ln-202"></a> <span class="n">l</span><span class="o">=</span><span class="mi">0</span> -<a name="ln-203"></a> <span class="c">! Loop on all the messages in memory</span> -<a name="ln-204"></a> <span class="n">iloop</span><span class="p">:</span> <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">n</span> -<a name="ln-205"></a> <span class="c">! write(*,*) 'processing message number ',i</span> -<a name="ln-206"></a> <span class="c">! get as a integer</span> -<a name="ln-207"></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="n">i</span><span class="p">),</span><span class="s1">'pentagonalResolutionParameterJ'</span><span class="p">,</span> <span class="n">j</span><span class="p">)</span> -<a name="ln-208"></a> -<a name="ln-209"></a> <span class="k">call </span><span class="n">grib_get_size</span><span class="p">(</span><span class="n">igrib</span><span class="p">(</span><span class="n">i</span><span class="p">),</span><span class="s1">'values'</span><span class="p">,</span><span class="n">numberOfValues</span><span class="p">)</span> -<a name="ln-210"></a> <span class="c">! write(*,*) 'numberOfValues=',numberOfValues</span> -<a name="ln-211"></a> -<a name="ln-212"></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="n">i</span><span class="p">),</span><span class="s1">'numberOfVerticalCoordinateValues'</span><span class="p">,</span><span class="n">mk</span><span class="p">)</span> -<a name="ln-213"></a> -<a name="ln-214"></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="n">i</span><span class="p">),</span><span class="s1">'level'</span><span class="p">,</span><span class="n">ilev</span><span class="p">)</span> -<a name="ln-215"></a> -<a name="ln-216"></a> -<a name="ln-217"></a> -<a name="ln-218"></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="n">i</span><span class="p">),</span><span class="s1">'pv'</span><span class="p">,</span><span class="n">pv</span><span class="p">)</span> -<a name="ln-219"></a> -<a name="ln-220"></a> <span class="k">allocate</span><span class="p">(</span><span class="n">values</span><span class="p">(</span><span class="n">numberOfValues</span><span class="p">),</span> <span class="nb">stat</span><span class="o">=</span><span class="n">iret</span><span class="p">)</span> -<a name="ln-221"></a> <span class="c">! get data values</span> -<a name="ln-222"></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="n">i</span><span class="p">),</span><span class="s1">'values'</span><span class="p">,</span><span class="n">values</span><span class="p">)</span> -<a name="ln-223"></a> -<a name="ln-224"></a><span class="c">! IOFFSET=mod(i-1,MSTRIDE)*(mk/2-1)</span> -<a name="ln-225"></a><span class="c">! CXMN(:,IOFFSET+ilev)=values(1:(MNAUF+1)*(MNAUF+2))</span> -<a name="ln-226"></a> -<a name="ln-227"></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="n">i</span><span class="p">),</span><span class="s1">'paramId'</span><span class="p">,</span><span class="n">parid</span><span class="p">)</span> -<a name="ln-228"></a> <span class="n">nm</span><span class="o">=</span><span class="n">size</span><span class="p">(</span><span class="n">mpar</span><span class="p">)</span> -<a name="ln-229"></a> <span class="n">div</span><span class="o">=</span><span class="n">mlevel</span><span class="o">/</span><span class="n">nm</span> -<a name="ln-230"></a> <span class="n">kloop</span><span class="p">:</span> <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">nm</span> -<a name="ln-231"></a> <span class="k">if</span><span class="p">(</span><span class="n">parid</span> <span class="p">.</span><span class="n">eq</span><span class="p">.</span> <span class="n">mpar</span><span class="p">(</span><span class="n">k</span><span class="p">))</span> <span class="k">then</span> -<a name="ln-232"></a><span class="k"> </span><span class="n">l</span><span class="p">(</span><span class="n">k</span><span class="p">)</span><span class="o">=</span><span class="n">l</span><span class="p">(</span><span class="n">k</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span> -<a name="ln-233"></a> <span class="n">cxmn</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">div</span><span class="o">+</span><span class="n">l</span><span class="p">(</span><span class="n">k</span><span class="p">))</span><span class="o">=</span><span class="n">values</span><span class="p">(</span><span class="mi">1</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> -<a name="ln-234"></a><span class="c">! print*,(k-1)*div+l(k),parid</span> -<a name="ln-235"></a> <span class="k">exit </span><span class="n">kloop</span> -<a name="ln-236"></a> <span class="n">endif</span> -<a name="ln-237"></a> -<a name="ln-238"></a> <span class="n">enddo</span> <span class="n">kloop</span> -<a name="ln-239"></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="n">nm</span> <span class="p">.</span><span class="nb">and</span><span class="p">.</span> <span class="n">parid</span> <span class="p">.</span><span class="n">ne</span><span class="p">.</span> <span class="n">mpar</span><span class="p">(</span><span class="n">nm</span><span class="p">))</span> <span class="k">then</span> -<a name="ln-240"></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="n">k</span><span class="p">,</span><span class="n">nm</span><span class="p">,</span><span class="n">parid</span><span class="p">,</span><span class="n">mpar</span><span class="p">(</span><span class="n">nm</span><span class="p">)</span> -<a name="ln-241"></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">'ERROR readspectral: parameter '</span><span class="p">,</span><span class="n">parid</span><span class="p">,</span><span class="s1">'is not'</span><span class="p">,</span><span class="n">mpar</span> -<a name="ln-242"></a> <span class="k">stop</span> -<a name="ln-243"></a><span class="k"> </span><span class="n">endif</span> -<a name="ln-244"></a> -<a name="ln-245"></a><span class="c">! print*,i</span> -<a name="ln-246"></a> -<a name="ln-247"></a> <span class="k">END DO </span><span class="n">iloop</span> -<a name="ln-248"></a> -<a name="ln-249"></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">'readspectral: '</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="s1">' records read'</span> -<a name="ln-250"></a> -<a name="ln-251"></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">n</span> -<a name="ln-252"></a> <span class="k">call </span><span class="n">grib_release</span><span class="p">(</span><span class="n">igrib</span><span class="p">(</span><span class="n">i</span><span class="p">))</span> -<a name="ln-253"></a> <span class="k">END DO</span> -<a name="ln-254"></a><span class="k"> </span> -<a name="ln-255"></a><span class="k"> deallocate</span><span class="p">(</span><span class="n">values</span><span class="p">)</span> -<a name="ln-256"></a> <span class="k">deallocate</span><span class="p">(</span><span class="n">igrib</span><span class="p">)</span> -<a name="ln-257"></a> -<a name="ln-258"></a> -<a name="ln-259"></a> -<a name="ln-260"></a> <span class="n">A</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">MAXLEV</span><span class="p">)</span> -<a name="ln-261"></a> <span class="n">B</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">MAXLEV</span><span class="p">:</span><span class="mi">2</span><span class="o">*</span><span class="n">MAXLEV</span><span class="o">+</span><span class="mi">2</span><span class="p">)</span> -<a name="ln-262"></a> -<a name="ln-263"></a> <span class="k">END SUBROUTINE </span><span class="n">READSPECTRAL</span> -<a name="ln-264"></a> -<a name="ln-265"></a> <span class="k">END MODULE </span><span class="n">RWGRIB2</span> -</pre></div> - - </section> - </div> - </div> - - <section class="visible-xs visible-sm hidden-md"> - <hr> - - -<div class="panel panel-default"> - <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#allfiles-1">All Source Files</a></h3></div> - <div id="allfiles-1" class="panel-collapse collapse"> - <div class="list-group"> - - <a class="list-group-item" href="../sourcefile/grphreal.f.html">grphreal.f</a> - - <a class="list-group-item" href="../sourcefile/phgrreal.f.html">phgrreal.f</a> - - <a class="list-group-item" href="../sourcefile/preconvert.f90.html">preconvert.f90</a> - - <a class="list-group-item" href="../sourcefile/rwgrib2.f90.html">rwGRIB2.f90</a> - - </div> - </div> -</div> - - - </section> - - <hr> - </div> <!-- /container --> - <footer> - <div class="container"> - <div class="row"> - <div class="col-xs-6 col-md-4"><p>© 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> - <div class="col-xs-6 col-md-4 col-md-push-4"> - <p class="text-right"> - Documentation generated by - <a href="https://github.com/cmacmackin/ford">FORD</a> - - </p> - </div> - <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> - </div> - <br> - </div> <!-- /container --> - </footer> - - <!-- Bootstrap core JavaScript - ================================================== --> - <!-- Placed at the end of the document so the pages load faster --> -<!-- - <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> ---> - <script src="../js/bootstrap.min.js"></script> - <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> - <script src="../js/ie10-viewport-bug-workaround.js"></script> - - <!-- MathJax JavaScript - ================================================== --> - <!-- Placed at the end of the document so the pages load faster --> - <script type="text/x-mathjax-config"> - MathJax.Hub.Config({ - TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, - jax: ['input/TeX','input/MathML','output/HTML-CSS'], - extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'], - 'HTML-CSS': { - styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: '#000000 ! important'} } - } - }); - </script> - <!-- <script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> --> - </body> -</html> \ No newline at end of file diff --git a/Documentation/FORD/V5/Doc_original/src/grphreal.f b/Documentation/FORD/V5/Doc_original/src/grphreal.f deleted file mode 100644 index dae342bf336d149d97ffa55234c0b1375eff2661..0000000000000000000000000000000000000000 --- a/Documentation/FORD/V5/Doc_original/src/grphreal.f +++ /dev/null @@ -1,188 +0,0 @@ - MODULE GRTOPH - - USE PHTOGR - - CONTAINS -C - SUBROUTINE GRPH213(CXMN,FELD,WSAVE,IFAX,Z,W,MLAT, - *MNAUF,MAXL,MAXB,MLEVEL) - -C DIE ROUTINE F]HRT EINE TRANSFORMATION EINER -C FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN -C RAUM AUF KUGELKOORDINATEN DURCH -C -C CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE -C CX00,CX01,CX11,CX02,....CXMNAUFMNAUF -C CXM = FOURIERKOEFFIZIENTEN - nur ein Hilfsfeld -C FELD = FELD DER METEOROLOGISCHEN VARIABLEN -C WSAVE = Working Array fuer Fouriertransformation -C Z = LEGENDREFUNKTIONSWERTE -C -C MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN -C MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN -C MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN -C MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN -C - IMPLICIT REAL (A-H,O-Z) - - -C Anzahl der Gitterpunkte pro Breitenkreis des reduzierten -C Gauss'schen Gitters - INTEGER MLAT(MAXB),ISIZE,IFAX(10,MAXB) - -C FELD DER LEGENDREPOLYNOME FUER EINE BREITE - REAL*8 Z(MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) - -C LOGICAL*1 USED(((216*217)/2+1)*160) - - DIMENSION CXMN(0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) - REAL FELD(MAXL,MLEVEL) - DIMENSION WSAVE(8*MAXB+15,MAXB/2) - REAL*8 W(MAXB) - DIMENSION IND(MAXB) - - - IND(1)=0 - DO 6 J=2,MAXB/2 - IND(j)=IND(J-1)+MLAT(J-1) - 6 CONTINUE -!$OMP PARALLEL DO SCHEDULE(DYNAMIC) - DO 16 L=1,MLEVEL - CALL GRPHSUB(L,IND,CXMN,FELD,WSAVE,IFAX,Z,W,MLAT, - *MNAUF,MAXL,MAXB,MLEVEL) -16 CONTINUE -!$omp end parallel do - - - RETURN - END SUBROUTINE GRPH213 -C - SUBROUTINE GRPHSUB(L,IND,CXMN,FELD,WSAVE,IFAX,Z,W,MLAT, - *MNAUF,MAXL,MAXB,MLEVEL) - -C DIE ROUTINE F]HRT EINE TRANSFORMATION EINER -C FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN -C RAUM AUF KUGELKOORDINATEN DURCH -C -C CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE -C CX00,CX01,CX11,CX02,....CXMNAUFMNAUF -C CXM = FOURIERKOEFFIZIENTEN - nur ein Hilfsfeld -C FELD = FELD DER METEOROLOGISCHEN VARIABLEN -C WSAVE = Working Array fuer Fouriertransformation -C Z = LEGENDREFUNKTIONSWERTE -C -C MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN -C MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN -C MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN -C MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN -C - IMPLICIT REAL (A-H,O-Z) - -C FELD DER FOURIERKOEFFIZIENTEN - REAL CXMS(4*(MNAUF+1)) - REAL CXMA(4*(MNAUF+1)) - REAL,ALLOCATABLE :: CXM(:,:) - -C Anzahl der Gitterpunkte pro Breitenkreis des reduzierten -C Gauss'schen Gitters - INTEGER MLAT(MAXB),ISIZE - -C FELD DER LEGENDREPOLYNOME FUER EINE BREITE - REAL Z(MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) - -C LOGICAL*1 USED(((216*217)/2+1)*160) - - REAL CXMN(0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) - REAL FELD(MAXL,MLEVEL) - REAL WSAVE(8*MAXB+15,MAXB/2) - INTEGER IFAX(10,MAXB) - REAL W(MAXB) - INTEGER IND(MAXB) - - ALLOCATE(CXM( 4*MAXB,MAXB)) - DO 5 J=1,MAXB/2 - CXMS(1:MLAT(J))=FELD(IND(J)+1:IND(J)+MLAT(J),L) - CALL RFOUFTR(CXMS,WSAVE(1,J),IFAX(:,J),MNAUF,MLAT(J),1) - CXMA(1:MLAT(J))=FELD(MAXL-IND(J)-MLAT(J)+1:MAXL-IND(J),L) - CALL RFOUFTR(CXMA, - *WSAVE(1,J),IFAX(:,J),MNAUF,MLAT(J),1) - DO 4 I=1,2*(MNAUF+1) - CXM(I,J)=CXMS(I)+CXMA(I) - CXM(I,MAXB+1-J)=CXMS(I)-CXMA(I) -4 CONTINUE - 5 CONTINUE - CALL LGTR213(CXMN(0,L),CXM,Z,W,MLAT,MNAUF,MAXB) - - DEALLOCATE(CXM) - - RETURN - END SUBROUTINE GRPHSUB -C - SUBROUTINE LGTR213(CXMN,CXM,Z,W,MLAT,MNAUF,MAXB) - IMPLICIT REAL (A-H,O-Z) - INTEGER MLAT(MAXB) - DIMENSION CXM(0:4*MAXB-1,MAXB) - DIMENSION CXMN(0:2*(((MNAUF+1)*MNAUF)/2+MNAUF)+1) - REAL*8 Z(MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) - REAL*8 W(MAXB),CR,CI,HILF - LOGICAL EVEN -C -C DIESE ROUTINE BERECHNET DIE KFFKs CXMN -C - LL=0 - LLP=0 - DO 1 I=0,MNAUF - KM=0 - 9 KM=KM+1 - IF(MLAT(KM).LE.2*I) THEN - GOTO 9 - ENDIF - DO 2 J=I,MNAUF - CR=0 - CI=0 - EVEN=MOD(I+J,2).EQ.0 - IF(EVEN) THEN - DO 3 K=KM,MAXB/2 - HILF=W(K)*Z(K,LLP) - CR=CR+CXM(2*I,K)*HILF - CI=CI+CXM(2*I+1,K)*HILF - 3 CONTINUE - ELSE - DO 4 K=KM,MAXB/2 - HILF=W(K)*Z(K,LLP) - CR=CR+CXM(2*I,MAXB+1-K)*HILF - CI=CI+CXM(2*I+1,MAXB+1-K)*HILF - 4 CONTINUE - ENDIF - 5 CXMN(2*LL)=CR - CXMN(2*LL+1)=CI - LL=LL+1 - LLP=LLP+1 - 2 CONTINUE - LLP=LLP+2 - 1 CONTINUE - RETURN - END SUBROUTINE LGTR213 -C - -C - SUBROUTINE RFOUFTR(CXM,TRIGS,IFAX,MNAUF,MAXL,ISIGN) -C BERECHNET DIE FOURIERSUMME MIT EINEM FFT-ALGORITHMUS - IMPLICIT REAL (A-H,O-Z) - DIMENSION CXM(0:2*MAXL-1) - DIMENSION FELD(MAXL),TRIGS(2*MAXL) - DIMENSION WSAVE(MAXAUF) - INTEGER IFAX(10) - - -C NORMIERUNG... - WSAVE(1)=CXM(MAXL-1) - - CXM(1:MAXL)=CXM(0:MAXL-1)/2 - CXM(0)=WSAVE(1)/2 -! CALL CFFTF(MAXL,CXM,WSAVE) - CALL FFT99(CXM,WSAVE,TRIGS,IFAX,1,1,MAXL,1,-1) - RETURN - END SUBROUTINE RFOUFTR - - END MODULE GRTOPH diff --git a/Documentation/FORD/V5/Doc_original/src/phgrreal.f b/Documentation/FORD/V5/Doc_original/src/phgrreal.f deleted file mode 100644 index aa3658c917fd35d15dd4c2b9959f4fcf074923a1..0000000000000000000000000000000000000000 --- a/Documentation/FORD/V5/Doc_original/src/phgrreal.f +++ /dev/null @@ -1,553 +0,0 @@ - MODULE PHTOGR - - INTEGER, PARAMETER :: MAXAUF=36000 - - CONTAINS - - SUBROUTINE PHGR213(CXMN,FELD,WSAVE,IFAX,Z,MLAT,MNAUF, - *MAXL,MAXB,MLEVEL) - -C DIE ROUTINE F]HRT EINE TRANSFORMATION EINER -C FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN -C RAUM AUF DAS REDUZIERTE GAUSS'SCHE GITTER DURCH -C -C CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE -C CX00,CX01,CX11,CX02,....CXMNAUFMNAUF -C FELD = FELD DER METEOROLOGISCHEN VARIABLEN -C WSAVE = Working Array fuer Fouriertransformation -C Z = LEGENDREFUNKTIONSWERTE -C -C MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN -C MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN -C MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN -C MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN -C - IMPLICIT NONE - -C Anzahl der Gitterpunkte auf jedem Breitenkreis - INTEGER MLAT(MAXB/2) - INTEGER K,MAXL,MAXB,MLEVEL,MNAUF - INTEGER IND(MAXB) - - -C FELD DER LEGENDREPOLYNOME FUER EINE BREITE - REAL Z(0:((MNAUF+3)*(MNAUF+4))/2,MAXB/2) - - REAL CXMN(0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) - REAL FELD(MAXL,MLEVEL) - REAL WSAVE(8*MAXB+15,MAXB/2) - INTEGER :: IFAX(10,MAXB) - - IND(1)=0 - DO 7 K=2,MAXB/2 - IND(K)=IND(K-1)+MLAT(K-1) -7 CONTINUE - -!$OMP PARALLEL DO SCHEDULE(DYNAMIC) - DO 17 K=1,MAXB/2 - CALL PHSYM(K,IND,CXMN,FELD,Z,WSAVE,IFAX,MLAT, - *MNAUF,MAXL,MAXB,MLEVEL) - -17 CONTINUE -!$OMP END PARALLEL DO - - RETURN - END SUBROUTINE PHGR213 -C -C - SUBROUTINE PHSYM(K,IND,CXMN,FELD,Z,WSAVE,IFAX,MLAT, - *MNAUF,MAXL,MAXB,MLEVEL) - - IMPLICIT NONE - - INTEGER MLAT(MAXB/2) - INTEGER K,L,I,J,LLS,LLPS,LL,LLP,MAXL,MAXB,MLEVEL,MNAUF - INTEGER IND(MAXB) - INTEGER :: IFAX(10,MAXB) - - -C FELD DER FOURIERKOEFFIZIENTEN - REAL :: CXMS(0:MAXAUF-1),CXMA(0:MAXAUF-1) - -C FELD DER LEGENDREPOLYNOME FUER EINE BREITE - REAL Z(0:((MNAUF+3)*(MNAUF+4))/2,MAXB/2) - REAL ACR,ACI,SCR,SCI - - REAL CXMN(0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) - REAL FELD(MAXL,MLEVEL) - REAL WSAVE(8*MAXB+15,MAXB/2) - - DO 6 L=1,MLEVEL - LL=0 - LLP=0 - DO 1 I=0,MNAUF - SCR=0.D0 - SCI=0.D0 - ACR=0.D0 - ACI=0.D0 - LLS=LL - LLPS=LLP - IF(2*I+1.LT.MLAT(K)) THEN -C Innerste Schleife aufgespalten um if-Abfrage zu sparen - DO 18 J=I,MNAUF,2 - SCR=SCR+Z(LLP,K)*CXMN(2*LL,L) - SCI=SCI+Z(LLP,K)*CXMN(2*LL+1,L) - LL=LL+2 - LLP=LLP+2 -18 CONTINUE - LL=LLS+1 - LLP=LLPS+1 - DO 19 J=I+1,MNAUF,2 - ACR=ACR+Z(LLP,K)*CXMN(2*LL,L) - ACI=ACI+Z(LLP,K)*CXMN(2*LL+1,L) - LL=LL+2 - LLP=LLP+2 -19 CONTINUE - ENDIF - LL=LLS+(MNAUF-I+1) - LLP=LLPS+(MNAUF-I+3) - CXMS(2*I)=SCR+ACR - CXMS(2*I+1)=SCI+ACI - CXMA(2*I)=SCR-ACR - CXMA(2*I+1)=SCI-ACI - 1 CONTINUE -C CALL FOURTR(CXMS,FELD(IND(k)+1,L),WSAVE(:,K),MNAUF, -C *MLAT(K),1) -C CALL FOURTR(CXMA,FELD(MAXL-IND(k)-MLAT(K)+1,L), -C *WSAVE(:,K),MNAUF,MLAT(K),1) - CALL RFOURTR(CXMS,WSAVE(:,K),IFAX(:,K),MNAUF, - *MLAT(K),1) - FELD(IND(k)+1:IND(K)+MLAT(K),L)=CXMS(0:MLAT(K)-1) - CALL RFOURTR(CXMA, - *WSAVE(:,K),IFAX(:,K),MNAUF,MLAT(K),1) - FELD(MAXL-IND(k)-MLAT(K)+1:MAXL-IND(k),L)=CXMA(0:MLAT(K)-1) -C WRITE(*,*) IND+1,FELD(IND+1,L) -6 CONTINUE - - END SUBROUTINE PHSYM - - SUBROUTINE PHGCUT(CXMN,FELD,WSAVE,IFAX,Z, - * MNAUF,MMAX,MAUF,MANF,MAXL,MAXB,MLEVEL) - -C DIE ROUTINE FUEHRT EINE TRANSFORMATION EINER -C FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN -C RAUM AUF KUGELKOORDINATEN DURCH. Es kann ein Teilausschnitt -C Der Erde angegeben werden. Diese Routine ist langsamer als -C phgrph -C -C CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE -C CX00,CX01,CX11,CX02,....CXMNAUFMNAUF -C FELD = FELD DER METEOROLOGISCHEN VARIABLEN -C BREITE = SINUS DER GEOGRAFISCHEN BREITEN -C -C MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN -C MAUF ANZAHL DER LAENGEN UND DER FOURIERKOEFFIZIENTEN -C MANF ANFANG DES LAENGENBEREICHS FUER DAS GITTER, -C AUF DAS INTERPOLIERT WERDEN SOLL -C MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN -C MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN -C MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN -C - IMPLICIT REAL (A-H,O-Z) - -C FELD DER FOURIERKOEFFIZIENTEN - -C FELD DER LEGENDREPOLYNOME FUER EINE BREITE - REAL Z(0:((MMAX+3)*(MMAX+4))/2,MAXB) - - DIMENSION CXMN(0:(MMAX+1)*(MMAX+2)-1,MLEVEL) - REAL FELD(MAXL,MAXB,MLEVEL) - DIMENSION WSAVE(4*MAUF+15) - INTEGER:: IFAX(10) - - LOGICAL SYM - -C -C write(*,*)mauf,mnauf,manf,maxl - - - IF(MAUF.LE.MNAUF) WRITE(*,*) 'TOO COARSE LONGITUDE RESOLUTION' - IF((MANF.LT.1).OR.(MAXL.LT.1).OR. - * (MANF.GT.MAUF).OR.(MAXL.GT.MAUF)) THEN - WRITE(*,*) 'WRONG LONGITUDE RANGE',MANF,MAXL - STOP - ENDIF - -C Pruefe, ob Ausgabegitter symmetrisch zum Aequator ist -C Wenn ja soll Symmetrie der Legendrepolynome ausgenutzt werden - IF(MAXB .GT. 4) THEN - SYM=.TRUE. - DO 11 J=5,5 - IF(ABS(ABS(Z(100,J))-ABS(Z(100,MAXB+1-J))).GT.1E-11) - * SYM=.FALSE. -C WRITE(*,*) ABS(Z(100,J)),ABS(Z(100,MAXB+1-J)) -11 CONTINUE - WRITE(*,*) 'Symmetrisch: ',SYM - ELSE - SYM=.FALSE. - ENDIF - - - IF(SYM) THEN -!$OMP PARALLEL DO - DO J=1,(MAXB+1)/2 - CALL PHSYMCUT(J,CXMN,FELD,Z,WSAVE,IFAX, - *MAUF,MNAUF,MAXL,MAXB,MLEVEL,MANF) - - ENDDO -!$OMP END PARALLEL DO - ELSE -!$OMP PARALLEL DO - DO J=1,MAXB - CALL PHGPNS(CXMN,FELD,Z,WSAVE,IFAX, - *J,MNAUF,MAUF,MANF,MAXL,MAXB,MLEVEL) - ENDDO -!$OMP END PARALLEL DO - - ENDIF - - - RETURN - END SUBROUTINE PHGCUT - - SUBROUTINE PHSYMCUT(J,CXMN,FELD,Z,WSAVE,IFAX, - *MAUF,MNAUF,MAXL,MAXB,MLEVEL,MANF) - - IMPLICIT REAL (A-H,O-Z) - -C FELD DER FOURIERKOEFFIZIENTEN - - REAL :: CXM(0:MAXAUF-1),CXMA(0:MAXAUF-1) - - -C FELD DER LEGENDREPOLYNOME FUER EINE BREITE - REAL Z(0:((MNAUF+3)*(MNAUF+4))/2,MAXB) - REAL SCR,SCI,ACR,ACI - - DIMENSION CXMN(0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) - REAL FELD(MAXL,MAXB,MLEVEL) - DIMENSION WSAVE(4*MAUF+15) - INTEGER :: IFAX(10) - - DO 16 L=1,MLEVEL - LL=0 - LLP=0 - DO 17 I=0,MNAUF - SCR=0.D0 - SCI=0.D0 - ACR=0.D0 - ACI=0.D0 - LLS=LL - LLPS=LLP -C Innerste Schleife aufgespalten um if-Abfrage zu sparen - DO 18 K=I,MNAUF,2 - SCR=SCR+Z(LLP,J)*CXMN(2*LL,L) - SCI=SCI+Z(LLP,J)*CXMN(2*LL+1,L) - LL=LL+2 - LLP=LLP+2 -18 CONTINUE - LL=LLS+1 - LLP=LLPS+1 - DO 19 K=I+1,MNAUF,2 - ACR=ACR+Z(LLP,J)*CXMN(2*LL,L) - ACI=ACI +Z(LLP,J)*CXMN(2*LL+1,L) - LL=LL+2 - LLP=LLP+2 -19 CONTINUE - LL=LLS+MNAUF-I+1 - LLP=LLPS+MNAUF-I+3 - CXM(2*I)=SCR+ACR - CXM(2*I+1)=SCI+ACI - CXMA(2*I)=SCR-ACR - CXMA(2*I+1)=SCI-ACI -17 CONTINUE - - CALL RFOURTR(CXM,WSAVE,IFAX,MNAUF,MAUF,1) - DO 26 I=0,MAXL-1 - IF(MANF+I.LE.MAUF) THEN - FELD(I+1,J,L)=CXM(MANF+I-1) - ELSE - FELD(I+1,J,L)=CXM(MANF-MAUF+I-1) - ENDIF -26 CONTINUE - CALL RFOURTR(CXMA,WSAVE,IFAX,MNAUF,MAUF,1) - DO 36 I=0,MAXL-1 - IF(MANF+I.LE.MAUF) THEN - FELD(I+1,MAXB+1-J,L)=CXMA(MANF+I-1) - ELSE - FELD(I+1,MAXB+1-J,L)=CXMA(MANF-MAUF+I-1) - ENDIF -36 CONTINUE -16 CONTINUE - - END SUBROUTINE PHSYMCUT - - SUBROUTINE PHGPNS(CXMN,FELD,Z,WSAVE,IFAX, - *J,MNAUF,MAUF,MANF,MAXL,MAXB,MLEVEL) - - IMPLICIT NONE - INTEGER,intent(in) :: MNAUF,MAUF,MANF,J,MAXL,MAXB,MLEVEL - REAL :: CXM(0:MAXAUF-1) - REAL,intent(in) :: Z(0:((MNAUF+3)*(MNAUF+4))/2,MAXB) - - REAL,intent(in) :: CXMN(0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) - - REAL,intent(in) :: WSAVE(4*MAUF+15) - - REAL :: FELD(MAXL,MAXB,MLEVEL) - INTEGER :: IFAX(10) - - INTEGER I,L - - DO L=1,MLEVEL - CALL LEGTR(CXMN(:,L),CXM,Z(:,J),MNAUF,MAUF) - CALL RFOURTR(CXM,WSAVE,IFAX,MNAUF,MAUF,1) - - DO I=0,MAXL-1 - IF(MANF+I.LE.MAUF) THEN - FELD(I+1,J,L)=CXM(MANF+I-1) - ELSE - FELD(I+1,J,L)=CXM(MANF-MAUF+I-1) - ENDIF - ENDDO - ENDDO - END SUBROUTINE PHGPNS -C - SUBROUTINE LEGTR(CXMN,CXM,Z,MNAUF,MAUF) - IMPLICIT NONE - INTEGER MNAUF,MAUF,LL,LLP,I,J - REAL CXM(0:MAXAUF-1) - REAL CXMN(0:(MNAUF+1)*(MNAUF+2)-1) - REAL Z(0:((MNAUF+3)*(MNAUF+4))/2) - REAL CI,CR -C -C DIESE ROUTINE BERECHNET DIE FOURIERKOEFFIZIENTEN CXM -C - LL=0 - LLP=0 - DO 1 I=0,MNAUF - CR=0.D0 - CI=0.D0 - DO 2 J=I,MNAUF - CR=CR+Z(LLP)*CXMN(2*LL) - CI=CI+Z(LLP)*CXMN(2*LL+1) - LL=LL+1 - LLP=LLP+1 - 2 CONTINUE - LLP=LLP+2 - CXM(2*I)=CR - CXM(2*I+1)=CI - 1 CONTINUE - RETURN - END SUBROUTINE LEGTR -C -C -C - SUBROUTINE RFOURTR(CXM,TRIGS,IFAX,MNAUF,MAXL,ISIGN) -C BERECHNET DIE FOURIERSUMME MIT EINEM FFT-ALGORITHMUS - IMPLICIT REAL (A-H,O-Z) - DIMENSION CXM(0:MAXAUF-1) - REAL :: WSAVE(2*MAXL),TRIGS(2*MAXL) - INTEGER IFAX(10) - - DO I=MNAUF+1,MAXL-1 - CXM(2*I)=0.0 - CXM(2*I+1)=0.0 - ENDDO - CALL FFT99(CXM,WSAVE,TRIGS,IFAX,1,1,MAXL,1,1) - DO I=0,MAXL-1 - CXM(I)=CXM(I+1) - ENDDO - - RETURN - END SUBROUTINE RFOURTR -C -C - SUBROUTINE GAULEG(X1,X2,X,W,N) -C BERECHNET DIE GAUSS+SCHEN BREITEN - IMPLICIT REAL (A-H,O-Z) - DIMENSION X(N),W(N) - PARAMETER (EPS=3.D-14) - M=(N+1)/2 - XM=0.5D0*(X2+X1) - XL=0.5D0*(X2-X1) - DO 12 I=1,M - Z=DCOS(3.141592654D0*(I-.25D0)/(N+.5D0)) -1 CONTINUE - P1=1.D0 - P2=0.D0 - DO 11 J=1,N - P3=P2 - P2=P1 - P1=((2.D0*J-1.D0)*Z*P2-(J-1.D0)*P3)/J -11 CONTINUE - PP=N*(Z*P1-P2)/(Z*Z-1.D0) - Z1=Z - Z=Z1-P1/PP - IF(ABS(Z-Z1).GT.EPS)GO TO 1 - X(I)=XM-XL*Z - X(N+1-I)=XM+XL*Z - W(I)=2.D0*XL/((1.D0-Z*Z)*PP*PP) - W(N+1-I)=W(I) -12 CONTINUE - RETURN - END SUBROUTINE GAULEG -C -C - SUBROUTINE PLGNFA(LL,X,Z) -C -C PLGNDN BERECHNET ALLE NORMIERTEN ASSOZIIERTEN -C LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X) -C UND SCHREIBT SIE IN DAS FELD Z -C Die Polynome sind wie im ECMWF indiziert, d.h. -C P00,P10,P11,P20,P21,P22,... -C Ansonsten ist die Routine analog zu PLGNDN -C X IST DER COSINUS DES ZENITWINKELS ODER -C DER SINUS DER GEOGRAFISCHEN BREITE -C - IMPLICIT REAL (A-H,O-Z) - DIMENSION Z(0:((LL+3)*(LL+4))/2) -C - L=LL+2 - I=1 - Z(0)=1.D0 - FACT=1.D0 - POT=1.D0 - SOMX2=DSQRT(1.D0-X*X) - DO 14 J=0,L - DJ=DBLE(J) - IF(J.GT.0) THEN - FACT=FACT*(2.D0*DJ-1.D0)/(2.D0*DJ) - POT=POT*SOMX2 - Z(I)=DSQRT((2.D0*DJ+1.D0)*FACT)*POT - I=I+1 - ENDIF - IF(J.LT.L) THEN - Z(I)=X* - *DSQRT((4.D0*DJ*DJ+8.D0*DJ+3.D0)/(2.D0*DJ+1.D0))*Z(I-1) - I=I+1 - ENDIF - DK=DJ+2.D0 - DO 14 K=J+2,L - DDK=(DK*DK-DJ*DJ) - Z(I)=X*DSQRT((4.D0*DK*DK-1.D0)/DDK)*Z(I-1)- - * DSQRT(((2.D0*DK+1.D0)*(DK-DJ-1.D0)*(DK+DJ-1.D0))/ - * ((2.D0*DK-3.D0)*DDK))*Z(I-2) - DK=DK+1.D0 - I=I+1 -14 CONTINUE - RETURN - END SUBROUTINE PLGNFA - - - SUBROUTINE DPLGND(MNAUF,Z,DZ) -C -C DPLGND BERECHNET DIE ABLEITUNG DER NORMIERTEN ASSOZIIERTEN -C LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X) -C UND SCHREIBT SIE IN DAS FELD DZ -C DIE REIHENFOLGE IST -C P00(X),P01(X),P11(X),P02(X),P12(X),P22(X),..PLL(X) -C - IMPLICIT REAL (A-H,O-Z) - DIMENSION Z(0:((MNAUF+3)*(MNAUF+4))/2) - DIMENSION DZ(0:((MNAUF+2)*(MNAUF+3))/2) -C - IF(Z(0).NE.1.D0) THEN - WRITE(*,*) 'DPLGND: Z(0) must be 1.0' - STOP - ENDIF - - LLP=0 - LLH=0 - DO 1 I=0,MNAUF+1 - DO 2 J=I,MNAUF+1 - IF(I.EQ.J) THEN - WURZELA= - *DSQRT(DBLE((J+1)*(J+1)-I*I)/DBLE(4*(J+1)*(J+1)-1)) - DZ(LLH)=DBLE(J)*WURZELA*Z(LLP+1) - ELSE - WURZELB= - *DSQRT(DBLE((J+1)*(J+1)-I*I)/DBLE(4*(J+1)*(J+1)-1)) - DZ(LLH)= - *DBLE(J)*WURZELB*Z(LLP+1)-DBLE(J+1)*WURZELA*Z(LLP-1) - WURZELA=WURZELB - ENDIF - LLH=LLH+1 - LLP=LLP+1 -2 CONTINUE - LLP=LLP+1 -1 CONTINUE - RETURN - END SUBROUTINE DPLGND - - -* Spectral Filter of Sardeshmukh and Hoskins (1984, MWR) -* MM=Spectral truncation of field -* MMAX= Spectral truncation of filter -* - SUBROUTINE SPFILTER(FELDMN,MM,MMAX) - - IMPLICIT NONE - - INTEGER MM,MMAX,I,J,K,L - REAL FELDMN(0:(MM+1)*(MM+2)-1) - REAL KMAX,SMAX,FAK - - SMAX=0.1 - KMAX=-ALOG(SMAX) - KMAX=KMAX/(float(MMAX)*float(MMAX+1))**2 -c WRITE(*,*)'alogsmax',alog(smax),'KMAX:',KMAX - l=0 - do i=0,MM - do j=i,MM -c write(*,*) i,j,feld(k),feld(k)*exp(-KMAX*(j*(j+1))**2) - if(j .le. MMAX) then -c fak=exp(-KMAX*(j*(j+1))**2) - fak=1.0 - feldmn(2*l)=feldmn(2*l)*fak - feldmn(2*l+1)=feldmn(2*l+1)*fak - else - feldmn(2*l)=0. - feldmn(2*l+1)=0. - endif - l=l+1 - enddo - enddo - END SUBROUTINE SPFILTER - - END MODULE PHTOGR - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Documentation/FORD/V5/Doc_original/src/preconvert.f90 b/Documentation/FORD/V5/Doc_original/src/preconvert.f90 deleted file mode 100644 index c28610f2aecb31a3f4c3860d7a482ae0fa85d23f..0000000000000000000000000000000000000000 --- a/Documentation/FORD/V5/Doc_original/src/preconvert.f90 +++ /dev/null @@ -1,807 +0,0 @@ - PROGRAM PRECONVERT -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! ! -! PROGRAM PRECONVERT - PREPARES INPUT DATA FOR POP MODEL METEOR- ! -! OLOGICAL PREPROCESSOR ! -! ! -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! ! -! CALCULATION OF ETAPOINT ON A REGULAR LAMDA/PHI GRID AND WRITING ! -! U,V,ETAPOINT,T,PS,Q,SD,MSL,TCC,10U, 10V, 2T,2D,LSP,CP,SSHF,SSR, ! -! EWSS,NSSS TO AN OUTPUT FILE (GRIB 1 or 2 FORMAT). ! -! ! -! AUTHORS: L. HAIMBERGER, G. WOTAWA, 1994-04 ! -! adapted: A. BECK ! -! 2003-05-11 ! -! L. Haimberger 2006-12 V2.0 ! -! modified to handle arbitrary regular grids ! -! and T799 resolution data ! -! L. Haimberger 2010-03 V4.0 ! -! modified to grib edition 2 fields ! -! and T1279 resolution data ! -! ! -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! ! -! DESCRIPTION OF NEEDED INPUT: ! -! ! -! UNIT FILE PARAMETER(S) DATA REPRESENTATION ! -! ! -! 11 fort.11 T,U,V regular lamda phi grid ! -! 12 fort.12 D regular lamda phi grid ! -! 13 fort.13 LNSP fort.13 spherical harmonics ! -! 14 fort.14 SD,MSL,TCC,10U, ! -! 10V,2T,2D regular lamda phi grid ! -! 16 fort.16 LSP,CP,SSHF, ! -! SSR,EWSS,NSSS regular lamda phi grid ! -! 17 fort.17 Q regular lamda phi grid ! -! ! -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! ! -! DESCRIPTION OF OUTPUT: ! -! ! -! UNIT FILE PARAMETER(S) DATA REPRESENTATION ! -! ! -! 15 fort.15 U,V,ETA,T,PS, ! -! Q,SD,MSL,TCC, ! -! 10U,10V,2T,2D, regular lamda phi grid ! -! LSP,CP,SSHF, ! -! SSR,EWSS,NSSS ! -! ! -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! - - USE PHTOGR - USE GRTOPH - USE FTRAFO - USE RWGRIB2 - USE GRIB_API - - IMPLICIT NONE - - REAL, ALLOCATABLE, DIMENSION (:,:) :: LNPS - REAL, ALLOCATABLE, DIMENSION (:,:) :: Z - REAL, ALLOCATABLE, DIMENSION (:,:,:) :: T, UV , UV2 - REAL, ALLOCATABLE, DIMENSION (:,:,:) :: QA,OM,OMR - REAL, ALLOCATABLE, DIMENSION (:,:,:) :: DIV, ETA,ETAR - REAL, ALLOCATABLE, DIMENSION (:,:) :: DPSDL, DPSDM - REAL, ALLOCATABLE, DIMENSION (:,:,:) :: PS,DPSDT - REAL, ALLOCATABLE, DIMENSION (:,:,:) :: SURF,FLUX,OROLSM - REAL, ALLOCATABLE, DIMENSION (:) :: WSAVE,H,SINL,COSL,WSAVE2 - REAL, ALLOCATABLE, DIMENSION (:) :: BREITE, GBREITE,AK, BK,pv - -! Arrays for Gaussian grid calculations - - REAL :: X1,X2,RMS,MW,SIG,LAM - REAL,ALLOCATABLE :: CUA(:,:,:),CVA(:,:,:) - - REAL, ALLOCATABLE, DIMENSION (:,:) :: P,PP !,P2 - REAL, ALLOCATABLE, DIMENSION (:,:) :: XMN,HILFUV - REAL, ALLOCATABLE, DIMENSION (:) :: LNPMN,LNPMN2,LNPMN3 - REAL, ALLOCATABLE, DIMENSION (:) :: WEIGHT - REAL, ALLOCATABLE, DIMENSION (:,:) :: UGVG - REAL, ALLOCATABLE, DIMENSION (:,:) :: DG, ETAG - REAL, ALLOCATABLE, DIMENSION (:,:) :: GWSAVE - REAL, ALLOCATABLE, DIMENSION (:) :: PSG,HILF - -! end arrays for Gaussian grid calculations - - INTEGER, ALLOCATABLE, DIMENSION (:) :: MLAT,MPSURF,MPFLUX,MPORO,MPAR - INTEGER, ALLOCATABLE :: GIFAX(:,:) - - REAL PI,COSB,DAK,DBK,P00 - REAL URLAR8,JMIN1,LLLAR8,MAXBMIN1,PIR8,DCOSB - - INTEGER I,J,K,L,IERR,M,LTEST,MK,NGI,NGJ - INTEGER MFLUX,MSURF,MORO - INTEGER LUNIT,LUNIT2 - - INTEGER MAXL, MAXB, MLEVEL, LEVOUT,LEVMIN,LEVMAX - INTEGER MOMEGA,MOMEGADIFF,MGAUSS,MSMOOTH, MNAUF,META,METADIFF - INTEGER MDPDETA,METAPAR - REAL RLO0, RLO1, RLA0, RLA1 - CHARACTER*300 MLEVELIST - - INTEGER MAUF, MANF,IFAX(10) - - INTEGER IGRIB(1),iret,ogrib - - CHARACTER*80 FILENAME - - NAMELIST /NAMGEN/ & - MAXL, MAXB, & - MLEVEL,MLEVELIST,MNAUF,METAPAR, & - RLO0, RLO1, RLA0, RLA1, & - MOMEGA,MOMEGADIFF,MGAUSS,MSMOOTH,META,METADIFF,& - MDPDETA - - LTEST=1 - - call posnam (4,'NAMGEN') - read (4,NAMGEN) - - MAUF=INT(360.*(REAL(MAXL)-1.)/(RLO1-RLO0)+0.0001) -! PRINT*, MAUF - - MANF=INT(REAL(MAUF)/360.*(360.+RLO0)+1.0001) - IF(MANF .gt. MAUF) MANF=MANF-MAUF - - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! ALLOCATE VARIABLES ! -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - ALLOCATE (LNPS(0:(MNAUF+1)*(MNAUF+2)-1,1)) - - ALLOCATE (H(0:(MNAUF+2)*(MNAUF+3)/2)) - - - ALLOCATE (OM(MAXL, MAXB, MLEVEL)) - - ALLOCATE (ETA(MAXL,MAXB,MLEVEL)) - - ALLOCATE (PS(MAXL, MAXB,1),DPSDT(MAXL, MAXB,1)) - - - ALLOCATE (WSAVE(4*MAUF+15),WSAVE2(4*MAUF+15)) - - ALLOCATE (BREITE(MAXB),AK(MLEVEL+1),BK(MLEVEL+1),pv(2*mlevel+2)) - - ALLOCATE (MPAR(2)) - - ALLOCATE (COSL(MAXL),SINL(MAXL)) - - ALLOCATE (CUA(2,4,MLEVEL),CVA(2,4,MLEVEL)) - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! GAUSS STUFF ! -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - - IF(MGAUSS .EQ. 1) THEN - LUNIT=0 - FILENAME='fort.18' - - call grib_open_file(LUNIT, TRIM(FILENAME),'r') - - call grib_new_from_file(LUNIT,igrib(1), iret) - -! we can close the file - call grib_close_file(LUNIT) - -! call grib_get(igrib(1),'gridType', j) - - NGJ=MNAUF+1 - - ALLOCATE (GWSAVE(8*NGJ+15,NGJ/2)) - ALLOCATE(GIFAX(10,NGJ)) - ALLOCATE (GBREITE(NGJ),WEIGHT(NGJ)) - ALLOCATE (MLAT(NGJ)) - ALLOCATE (P(0:((MNAUF+3)*(MNAUF+4))/2,NGJ/2)) - ALLOCATE (PP(NGJ/2,0:((MNAUF+3)*(MNAUF+4))/2)) - ALLOCATE (Z(0:((MNAUF+3)*(MNAUF+4))/2,MAXB)) - - call grib_get(igrib(1),'numberOfPointsAlongAMeridian', NGJ) - - ! get as a integer - call grib_get(igrib(1),'pl', MLAT) - - NGI=SUM(MLAT) - - call grib_get(igrib(1),'numberOfVerticalCoordinateValues',mk) - - IF(mk/2-1 .ne. MLEVEL) THEN - WRITE(*,*) 'FATAL: Number of model levels',mk, & - ' does not agree with', MLEVEL,' in namelist' - STOP - ENDIF - call grib_get(igrib(1),'pv',pv) - AK=pv(1:1+MLEVEL) - BK=pv(2+MLEVEL:2*MLEVEL+2) - - ALLOCATE (LNPMN(0:(MNAUF+1)*(MNAUF+2)-1)) - ALLOCATE (LNPMN2(0:(MNAUF+1)*(MNAUF+2)-1)) - ALLOCATE (UGVG(NGI, 2*MLEVEL),HILFUV(2*MAXL,2)) - - - ALLOCATE (DPSDL(NGI,1),DPSDM(NGI,1)) - - ALLOCATE (PSG(NGI),HILF(NGI)) - ALLOCATE (UV(MAXL, MAXB, 2*MLEVEL)) -! ALLOCATE (UV2(MAXL, MAXB, 2*MLEVEL)) - - ALLOCATE (XMN(0:(MNAUF+1)*(MNAUF+2)-1, 2*MLEVEL)) - ALLOCATE (DG(NGI,MLEVEL),ETAG(NGI,MLEVEL)) - -! Initialisieren Legendretransformation -! auf das LaT/LON Gitter - - PI=ACOS(-1.D0) -!$OMP PARALLEL DO - DO 20 J=1,MAXB - - BREITE(J)=SIN((RLA1-(J-1.D0)*(RLA1-RLA0)/(MAXB-1))* PI/180.D0) - - CALL PLGNFA(MNAUF,BREITE(J),Z(0,J)) - -20 CONTINUE -!$OMP END PARALLEL DO - -! Avoid possible Pole problem -! IF(RLA0 .EQ. -90.0) BREITE(MAXB)=sin(-89.99*PI/180.d0) -! IF(RLA1 .EQ. 90.0) BREITE(1)=sin(89.99*PI/180.d0) - -! Initialisation of fields for FFT and Legendre transformation -! to Gaussian grid and back to phase space - X1=-1.D0 - X2=1.D0 - CALL GAULEG(X1,X2,GBREITE,WEIGHT,NGJ) - -!$OMP PARALLEL DO PRIVATE(M) - DO J=1,NGJ/2 - CALL PLGNFA(MNAUF,GBREITE(J),P(:,J)) - DO M=0,(MNAUF+3)*(MNAUF+4)/2 - PP(J,M)=P(M,J) - ENDDO - ENDDO -!$OMP END PARALLEL DO - - -! MPAR(1)=152 - FILENAME='fort.12' - CALL READSPECTRAL(FILENAME,LNPMN,MNAUF,1,MLEVEL,(/152/),AK,BK) -! goto 111 - CALL SET99(WSAVE,IFAX,mauf) - CALL PHGCUT(LNPMN,PS,WSAVE,IFAX,Z, & - MNAUF,MNAUF,MAUF,MANF,MAXL,MAXB,1) - CALL STATIS(MAXL,MAXB,1,EXP(PS),RMS,MW,SIG) - WRITE(*,'(A12,3F12.4)') 'STATISTICS: ',RMS,MW,SIG - - DO J=1,NGJ/2 - CALL SET99(GWSAVE(1,J),GIFAX(1,J),MLAT(J)) - ENDDO - CALL PHGR213(LNPMN,HILF,GWSAVE,GIFAX,P,MLAT,MNAUF,NGI,NGJ,1) - PSG=HILF - CALL GRPH213(LNPMN2,PSG,GWSAVE,GIFAX,PP,WEIGHT,MLAT, & - MNAUF,NGI,NGJ,1) - CALL PHGR213(LNPMN2,HILF,GWSAVE,GIFAX,P,MLAT,MNAUF,NGI,NGJ,1) - - - HILF=exp(PSG)-exp(HILF) - - CALL STATIS(NGI,1,1,HILF,RMS,MW,SIG) - WRITE(*,'(A12,3F11.4)') 'STATISTICS: ',RMS,MW,SIG - - PSG=EXP(PSG) - HILF=PSG - CALL STATIS(NGI,1,1,HILF,RMS,MW,SIG) - WRITE(*,'(A12,3F11.4)') 'STATISTICS: ',RMS,MW,SIG - - 111 FILENAME='fort.10' - CALL READSPECTRAL(FILENAME, & - XMN,MNAUF,2*MLEVEL,MLEVEL,(/131,132/),AK,BK) -! Transformieren des Windes auf das Gaussgitter - CALL PHGR213(XMN,UGVG,GWSAVE,GIFAX,P,MLAT,MNAUF,NGI,NGJ,2*MLEVEL) - DO K=1,MLEVEL -! North Pole - CALL JSPPOLE(XMN(:,K),1,MNAUF,.TRUE.,CUA(:,:,K)) - CALL JSPPOLE(XMN(:,MLEVEL+K),1,MNAUF,.TRUE.,CVA(:,:,K)) -! South Pole - CALL JSPPOLE(XMN(:,K),-1,MNAUF,.TRUE.,CUA(:,3:4,K)) - CALL JSPPOLE(XMN(:,MLEVEL+K),-1,MNAUF,.TRUE.,CVA(:,3:4,K)) - ENDDO - - DO K=1,2*MLEVEL - IF(MSMOOTH .ne. 0) CALL SPFILTER(XMN(:,K),MNAUF,MSMOOTH) - ENDDO - CALL PHGCUT(XMN,UV,WSAVE,IFAX,Z, & - MNAUF,MNAUF,MAUF,MANF,MAXL,MAXB,2*MLEVEL) - - - 112 FILENAME='fort.13' - CALL READSPECTRAL(FILENAME,XMN,MNAUF,MLEVEL,MLEVEL,(/155/),AK,BK) -! Transformieren der horizontalen Divergenz auf das Gaussgitter - CALL PHGR213(XMN,DG,GWSAVE,GIFAX,P,MLAT,MNAUF,NGI,NGJ,MLEVEL) - - -! Berechnung des Gradienten des Logarithmus des Bodendrucks -! auf dem Gaussgitter - CALL PHGRAD(LNPMN,DPSDL,DPSDM,GWSAVE,GIFAX,P,H,MLAT,MNAUF,NGI,NGJ,1) - -! Berechnung der Vertikalgeschwindigkeit auf dem Gaussgitter - CALL CONTGL(HILF,DPSDL,DPSDM,DG,UGVG(:,1),UGVG(:,MLEVEL+1), & - GBREITE,ETAG,MLAT,AK,BK,NGI,NGJ,MLEVEL) - - - CALL GRPH213(XMN,ETAG,GWSAVE,GIFAX,PP,WEIGHT,MLAT, & - MNAUF,NGI,NGJ,MLEVEL) - DO K=1,MLEVEL - IF(MSMOOTH .ne. 0) CALL SPFILTER(XMN(:,K),MNAUF,MSMOOTH) - ENDDO - CALL PHGCUT(XMN,ETA,WSAVE,IFAX,Z,MNAUF,MNAUF,MAUF,MANF,MAXL,MAXB,MLEVEL) - - CALL GRPH213(XMN,HILF,GWSAVE,GIFAX,PP,WEIGHT,MLAT, MNAUF,NGI,NGJ,1) - - IF(MSMOOTH .ne. 0) CALL SPFILTER(XMN(:,1),MNAUF,MSMOOTH) - CALL PHGCUT(XMN,DPSDT,WSAVE,IFAX,Z,MNAUF,MNAUF,MAUF,MANF,MAXL,MAXB,1) -! GOTO 114 - - CALL STATIS(MAXL,MAXB,1,DPSDT,RMS,MW,SIG) - WRITE(*,'(A12,3F11.4)') 'STATISTICS DPSDT: ',RMS,MW,SIG - - IF(MOMEGADIFF .ne. 0) THEN -! Berechnung von Omega auf dem Gaussgitter - CALL OMEGA(PSG,DPSDL,DPSDM,DG,UGVG(:,1),UGVG(:,MLEVEL+1), & - GBREITE,ETAG,MLAT,AK,BK,NGI ,NGJ,MLEVEL) - - CALL GRPH213(XMN,ETAG,GWSAVE,GIFAX,PP,WEIGHT,MLAT,& - MNAUF,NGI,NGJ,MLEVEL) - DO K=1,MLEVEL - IF(MSMOOTH .ne. 0) CALL SPFILTER(XMN(:,K),MNAUF,MSMOOTH) - ENDDO - CALL PHGCUT(XMN,OM,WSAVE,IFAX,Z,MNAUF,MNAUF,MAUF,MANF,MAXL,MAXB,MLEVEL) - - ENDIF !MOMEGA - - CALL GRPH213(XMN,PSG,GWSAVE,GIFAX,PP,WEIGHT,MLAT,MNAUF,NGI,NGJ,1) - CALL PHGCUT(XMN,PS,WSAVE,IFAX,Z,MNAUF,MNAUF,MAUF,MANF,MAXL,MAXB,1) - - CALL STATIS(MAXL,MAXB,1,PS,RMS,MW,SIG) - WRITE(*,'(A12,3F11.4)') 'STATISTICS: ',RMS,MW,SIG - - 114 DEALLOCATE(HILF,PSG,DPSDL,DPSDM,ETAG,DG,LNPMN) - -! ALLOCATE (UV(MAXL, MAXB, 2*MLEVEL)) -! CALL GRPH213(XMN,UGVG,GWSAVE,GIFAX,PP,WEIGHT,MLAT, -! *MNAUF,NGI,NGJ,2*MLEVEL) -! DO K=1,2*MLEVEL -! IF(MSMOOTH .ne. 0) CALL SPFILTER(XMN(:,K),MNAUF,MSMOOTH) -! ENDDO -! CALL PHGCUT(XMN,UV,WSAVE,IFAX,Z, -! *MNAUF,MNAUF,MAUF,MANF,MAXL,MAXB,2*MLEVEL) - DEALLOCATE(PP,P,UGVG,MLAT,GBREITE,WEIGHT,GWSAVE,XMN) - -! CALL ETAGAUSS(Z,WSAVE -! *,BREITE,UV,ETA,OM,PS, -! *MAUF,MAXB,MAXL,MANF,MNAUF,MLEVEL,MSMOOTH) - - ELSE - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! READING OF PREPARED METEOROLOGICAL FIELDS ! -! ! -! THE FOLLOWING FIELDS ARE EXPECTED: ! -! ! -! UNIT 11: T,U,V (REGULAR GRID) ! -! UNIT 17: Q (REGULAR GRID) ! -! UNIT 13: D (REGULAR GRID) ! -! UNIT 12: LNSP (SPHERICAL HARMONICS) ! -! UNIT 14: SURFACE DATA (REGULAR GRID) ! -! UNIT 16: FLUX DATA (REGULAR GRID) ! -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! - ALLOCATE (MLAT(MAXB)) - MLAT=MAXL - ALLOCATE (Z(0:((MNAUF+3)*(MNAUF+4))/2,1)) - ALLOCATE (DPSDL(MAXL,MAXB),DPSDM(MAXL,MAXB)) - ALLOCATE (UV(MAXL, MAXB, 2*MLEVEL),DIV(MAXL,MAXB,MLEVEL)) - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! READING OF SURFACE PRESSURE ! -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - FILENAME='fort.12' - CALL READSPECTRAL(FILENAME,LNPS,MNAUF,1,MLEVEL,(/152/),AK,BK) - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! READING OF U,V ! -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! -! OPENING OF UNBLOCKED GRIB FILE -! - FILENAME='fort.10' - CALL READLATLON(FILENAME,UV,MAXL,MAXB,2*MLEVEL,(/131,132/)) - - - PI=ACOS(-1.D0) - DO J=1,MAXB - - BREITE(J)=SIN((RLA1-(J-1.D0)*(RLA1-RLA0)/(MAXB-1))*PI/180.D0) - - ENDDO -! Avoid possible Pole problem -! IF(RLA0 .EQ. -90.0) BREITE(MAXB)=sin(-89.99*PI/180.d0) -! IF(RLA1 .EQ. 90.0) BREITE(1)=sin(89.99*PI/180.d0) - - DO K=1,2*MLEVEL - DO J=1,MAXB - COSB=SQRT(1.0-(BREITE(J))*(BREITE(J))) - IF(RLA0 .EQ. -90.0 .AND. J .EQ. MAXB .OR. & - RLA1 .EQ. 90.0 .AND. J .EQ. 1) then - UV(:,J,K)=UV(:,J,K)/1.D6 - else - UV(:,J,K)=UV(:,J,K)*COSB - endif - ENDDO - ENDDO - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! READING OF LNSP on grid ! -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -! For debugging only -! FILENAME='LNSPG_G.20060330.600' -! INQUIRE(FILE=FILENAME,EXIST=EX) -! CALL READLATLON(FILENAME,QA, -! *MAXL,MAXB,1,1,(/152/)) - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! READING OF DIVERGENCE ! -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - IF(META .EQ. 0 .OR. METADIFF .EQ. 1) THEN - FILENAME='fort.13' - CALL READLATLON(FILENAME,DIV,MAXL,MAXB,MLEVEL,(/155/)) - ENDIF - - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! CALCULATION OF ETAPOINT --> TOTAL TIME DERIVATIVE OF ! -! ECMWF VERTICAL COORDINATE ETA MULTIPLIED BY DERIVATIVE ! -! OF PRESSURE IN ETA DIRECTION ! -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -! Initialisieren Legendretransformation -! auf das LaT/LON Gitter -! Without Gaussian grid calculation Legendre Polynomials are calculated -! only for one latitude to save space - - DO J=1,MAXB - - CALL PLGNFA(MNAUF,BREITE(J),Z(0,1)) - - CALL PHGCUT(LNPS,PS(:,J,1),WSAVE,IFAX,Z,MNAUF,MNAUF,MAUF,MANF,MAXL,1,1) - - - IF(META .EQ. 0 .or. METADIFF .EQ. 1 ) THEN - CALL PHGRACUT(LNPS,DPSDL(:,J),DPSDM(:,J),WSAVE,IFAX,Z,H,MAUF, & - MNAUF,MAXL,1,MANF,1) - ENDIF - ENDDO - - PS=EXP(PS) - -! For debugging only - CALL STATIS(MAXL,MAXB,1,PS(:,:,1),RMS,MW,SIG) - WRITE(*,'(A12,3F11.4)') 'STATISTICS: ',RMS,MW,SIG - - - IF(MOMEGADIFF .ne. 0) THEN - - CALL OMEGA(PS,DPSDL,DPSDM,DIV,UV(:,:,1),UV(:,:,MLEVEL+1), & - BREITE,OM,MLAT,AK,BK,MAXL*MAXB,MAXB,MLEVEL) - ENDIF - - IF(META .EQ. 0 .OR. METADIFF .ne. 0) THEN - DPSDT=PS - CALL CONTGL(DPSDT,DPSDL,DPSDM,DIV,UV(:,:,1),UV(:,:,MLEVEL+1), & - BREITE,ETA,MLAT,AK,BK,MAXL*MAXB,MAXB,MLEVEL) - ENDIF - - ENDIF ! MGAUSS - -! CREATE FILE VERTICAL.EC NEEDED BY POP MODEL - - open(21,file='VERTICAL.EC') - write(21,'(a)') - write(21,'(a)') 'VERTICAL DISCRETIZATION OF POP MODEL' - write(21,'(a)') - write(21,'(i3,a)') MLEVEL,' number of layers' - write(21,'(a)') - write(21,'(a)') '* A(NLEV+1)' - write(21,'(a)') - do 205 i=1,MLEVEL+1 -205 write(21,'(f18.12)') AK(I) - write(21,'(a)') - write(21,'(a)') '* B(NLEV+1)' - write(21,'(a)') - do 210 i=1,MLEVEL+1 -210 write(21,'(f18.12)') BK(I) - close(21) - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! READING OF OMEGA ! -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - IF(MOMEGA .NE. 0 ) THEN - - - - ALLOCATE (OMR(MAXL, MAXB, MLEVEL)) - - FILENAME='fort.19' - CALL READLATLON(FILENAME,OMR,MAXL,MAXB,MLEVEL,(/135/)) - - IF(MOMEGADIFF .NE. 0 ) THEN - - DO K=1,MLEVEL - CALL STATIS(MAXL,MAXB,1,ETA(:,:,K),RMS,MW,SIG) - WRITE(*,'(A12,I3,3F11.4)') ' ETA: ',K,RMS,MW,SIG - CALL STATIS(MAXL,MAXB,1,OMR(:,:,K),RMS,MW,SIG) - WRITE(*,'(A12,I3,3F11.4)') ' OMEGA: ',K,RMS,MW,SIG - CALL STATIS(MAXL,MAXB,1,OM(:,:,K)-OMR(:,:,K),RMS,MW,SIG) - WRITE(*,'(A12,I3,3F11.4)') 'OMEGA DIFF: ',K,RMS,MW,SIG - ENDDO - - ENDIF - ENDIF - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! READING OF ETA ! -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - IF(META .NE. 0 ) THEN - - ALLOCATE (ETAR(MAXL, MAXB, MLEVEL)) - - P00=101325. - FILENAME='fort.21' - CALL READLATLON(FILENAME,ETAR,MAXL,MAXB,MLEVEL,(/77/)) - - if(MDPDETA .EQ. 1) THEN - DO K=1,MLEVEL - DAK=AK(K+1)-AK(K) - DBK=BK(K+1)-BK(K) - DO J=1,MAXB - DO I=1,MAXL - ETAR(I,J,K)=2*ETAR(I,J,K)*PS(I,J,1)*(DAK/PS(I,J,1)+DBK)/ & - (DAK/P00+DBK) - IF(K .GT. 1) ETAR(I,J,K)=ETAR(I,J,K)-ETAR(I,J,K-1) - ENDDO - ENDDO - ENDDO - ENDIF - - IF(METADIFF .NE. 0 ) THEN - - DO K=1,MLEVEL - CALL STATIS(MAXL,MAXB,1,ETA(:,:,K),RMS,MW,SIG) - WRITE(*,'(A12,I3,3F11.4)') ' ETA: ',K,RMS,MW,SIG - CALL STATIS(MAXL,MAXB,1,ETAR(:,:,K),RMS,MW,SIG) - WRITE(*,'(A12,I3,3F11.4)') ' ETAR: ',K,RMS,MW,SIG - CALL STATIS(MAXL,MAXB,1,ETA(:,:,K)-ETAR(:,:,K),RMS,MW,SIG) - WRITE(*,'(A12,I3,3F11.4)') 'ETA DIFF: ',K,RMS,MW,SIG - ENDDO - DO K=1,MLEVEL - WRITE(*,'(I3,2F11.4)') K,ETA(1,MAXB/2,K),ETAR(1,MAXB/2,K) - ENDDO - ELSE - ETA=ETAR - ENDIF - ENDIF - - ALLOCATE (T(MAXL, MAXB, MLEVEL)) - ALLOCATE (QA(MAXL, MAXB, MLEVEL)) -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! READING OF T ! -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! -! OPENING OF UNBLOCKED GRIB FILE -! - FILENAME='fort.11' - CALL READLATLON(FILENAME,T,MAXL,MAXB,MLEVEL,(/130/)) - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! READING OF SPECIFIC HUMIDITY ! -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - FILENAME='fort.17' - CALL READLATLON(FILENAME,QA,MAXL,MAXB,MLEVEL,(/133/)) - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! TEST READING OF UV from MARS (debug only) ! -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -! FILENAME='fort.22' -! CALL READLATLON(FILENAME,UV2,MAXL,MAXB,2*MLEVEL,2,(/131,132/)) - - - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! WRITE MODEL LEVEL DATA TO fort.15 ! -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -! Calculation of etadot in CONTGL needed scaled winds (ucosphi,vcosphi) -! Now we are transforming back to the usual winds. - DO K=1,MLEVEL - DO J=2,MAXB-1 - COSB=SQRT(1.0-(BREITE(J))*(BREITE(J))) - UV(:,J,K)=UV(:,J,K)/COSB - UV(:,J,MLEVEL+K)=UV(:,J,MLEVEL+K)/COSB - ENDDO -! special treatment for poles, if necessary. - DO J=1,MAXB,MAXB-1 - COSB=SQRT(1.0-(BREITE(J))*(BREITE(J))) - if(1.0-BREITE(J)*BREITE(J) .gt. 0 .OR. MGAUSS .NE. 1) then - IF(RLA0 .EQ. -90.0 .AND. J .EQ. MAXB .OR. & - RLA1 .EQ. 90.0 .AND. J .EQ. 1) then - UV(:,J,K)=UV(:,J,K)*1.D6 - UV(:,J,MLEVEL+K)=UV(:,J,MLEVEL+K)*1.D6 - else - UV(:,J,K)=UV(:,J,K)/COSB - UV(:,J,MLEVEL+K)=UV(:,J,MLEVEL+K)/COSB - endif - else - HILFUV(5:MAXL,:)=0. - HILFUV(1:2,:)=0. - IF(J.EQ.MAXB) THEN -! Suedpol - HILFUV(3:4,1)=CUA(:,4,K) - HILFUV(3:4,2)=CVA(:,4,K) - ELSE -! Nordpol - HILFUV(3:4,1)=CUA(:,2,K) - HILFUV(3:4,2)=CVA(:,2,K) - ENDIF - CALL RFOURTR(HILFUV(:,1),WSAVE,IFAX,MAXL/2-1,MAXL,-1) - DO I=0,MAXL-1 - IF(MANF+I.LE.MAXL) THEN - UV(I+1,J,K)=HILFUV(MANF+I,1) - ELSE - UV(I+1,J,K)=HILFUV(MANF-MAXL+I,1) - ENDIF - ENDDO - CALL RFOURTR(HILFUV(:,2),WSAVE,IFAX,MAXL/2-1,MAXL,-1) - DO I=0,MAXL-1 - IF(MANF+I.LE.MAXL) THEN - UV(I+1,J,MLEVEL+K)=HILFUV(MANF+I,2) - ELSE - UV(I+1,J,MLEVEL+K)=HILFUV(MANF-MAXL+I,2) - ENDIF - ENDDO - endif - ENDDO - ENDDO - -! open output file - call grib_open_file(LUNIT,'fort.15','w') - -! we use temperature on lat/lon on model levels as template for model level data - LUNIT2=0 - call grib_open_file(LUNIT2,'fort.11','r') - call grib_new_from_file(LUNIT2,igrib(1), iret) - call grib_close_file(LUNIT2) - - - CALL WRITELATLON(LUNIT,igrib(1),ogrib,UV(:,:,1),MAXL,MAXB,MLEVEL,MLEVELIST,1,(/131/)) - - CALL WRITELATLON(LUNIT,igrib(1),ogrib,UV(:,:,MLEVEL+1),MAXL,MAXB,MLEVEL,MLEVELIST,1,(/132/)) - - IF(MDPDETA .ne. 1 .AND. MGAUSS .EQ. 0 .and. META .eq. 1) THEN - CALL WRITELATLON(LUNIT,igrib(1),ogrib,ETA,MAXL,MAXB,MLEVEL,MLEVELIST,1,(/77/)) - ELSE - CALL WRITELATLON(LUNIT,igrib(1),ogrib,ETA,MAXL,MAXB,MLEVEL,MLEVELIST,1,(/METAPAR/)) - ENDIF - - CALL WRITELATLON(LUNIT,igrib(1),ogrib,T,MAXL,MAXB,MLEVEL,MLEVELIST,1,(/130/)) - - CALL WRITELATLON(LUNIT,igrib(1),ogrib,PS,MAXL,MAXB,1,'1',1,(/134/)) - - call grib_set(igrib(1),"levelType","ml") - call grib_set(igrib(1),"typeOfLevel","hybrid") - CALL WRITELATLON(LUNIT,igrib(1),ogrib,QA,MAXL,MAXB,MLEVEL,MLEVELIST,1,(/133/)) - - - IF(MOMEGA .EQ. 1) THEN - call grib_open_file(LUNIT2,'fort.25','w') - CALL WRITELATLON(LUNIT2,igrib(1),ogrib,OMR,MAXL,MAXB,MLEVEL,MLEVELIST,1,(/135/)) - - IF(MOMEGADIFF .EQ. 1) THEN - - CALL WRITELATLON(LUNIT2,igrib(1),ogrib,DPSDT,MAXL,MAXB,1,'1',1,(/158/)) - - OM=OM-OMR - CALL WRITELATLON(LUNIT2,igrib(1),ogrib,OM,MAXL,MAXB,MLEVEL,MLEVELIST,1,(/001/)) - call grib_close_file(LUNIT2) - ENDIF - ENDIF - - IF(META .EQ. 1 .and. METADIFF .EQ. 1) THEN - call grib_open_file(LUNIT2,'fort.26','w') - CALL WRITELATLON(LUNIT2,igrib(1),ogrib,ETAR,MAXL,MAXB,MLEVEL,MLEVELIST,1,(/135/)) - -! IF(MOMEGADIFF .EQ. 1) THEN - - CALL WRITELATLON(LUNIT2,igrib(1),ogrib,DPSDT,MAXL,MAXB,1,'1',1,(/158/)) - - OM=ETA-ETAR - CALL WRITELATLON(LUNIT2,igrib(1),ogrib,OM,MAXL,MAXB,MLEVEL,MLEVELIST,1,(/001/)) - call grib_close_file(LUNIT2) -! ENDIF - ENDIF - - - call grib_close_file(LUNIT) - - - - 2000 STOP 'SUCCESSFULLY FINISHED CONVERT_PRE: CONGRATULATIONS' - 3000 STOP 'ROUTINE CONVERT_PRE: ERROR' - 9999 stop 'ROUTINE CONVERT_PRE: ERROR' - END - - - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - INTEGER FUNCTION IA (FIELD1,NI,NJ,NK,G) - - IMPLICIT NONE - INTEGER NI,NJ,NK,I,J,K - REAL FIELD1(NI,NJ,NK) - REAL G - REAL RMIN,RMAX,XMAX,A,A1,A2 - - RMAX=FIELD1(1,1,1) - RMIN=FIELD1(1,1,1) - - DO 100 K=1,NK - DO 100 J=1,NJ - DO 100 I=1,NI - IF (FIELD1(I,J,K).GT.RMAX)RMAX=FIELD1(I,J,K) - IF (FIELD1(I,J,K).LT.RMIN)RMIN=FIELD1(I,J,K) -100 CONTINUE - - IF (ABS(RMIN).GT.RMAX.OR.ABS(RMIN).EQ.RMAX) THEN - XMAX=ABS(RMIN) - ELSE - XMAX=RMAX - ENDIF - - IF (XMAX.EQ.0) THEN - IA = 0 - RETURN - ENDIF - - A1=LOG10 ((G/10.d0)/XMAX) - A2=LOG10 ( G/XMAX ) - IF(A1 .gt. A2) THEN - A=A2 - ELSE - A=A1 - ENDIF - - IF (A.GT.0) IA=INT(A) - IF (A.LT.0) IA=INT(A-1.0) - - RETURN - END - - SUBROUTINE STATIS (NI,NJ,NK,PHI,RMS,MW,SIG) - IMPLICIT REAL (A-H,O-Z) - - REAL PHI(NI,NJ,NK),SIG,MW,RMS,P - - N=NI*NJ*NK - - RMS=0. - MW=0. - - DO 10 I=1,NI - DO 10 J=1,NJ - DO 10 K=1,NK - P=PHI(I,J,K) - RMS=RMS+P*P - MW=MW+P -10 CONTINUE - - RMS=SQRT(RMS/N) - MW=MW/N - - IF(RMS*RMS-MW*MW.LT.0.) THEN - SIG=0.0 - ELSE - SIG=SQRT(RMS*RMS-MW*MW) - ENDIF - - RETURN - END - diff --git a/Documentation/FORD/V5/Doc_original/tipuesearch/tipuesearch_content.js b/Documentation/FORD/V5/Doc_original/tipuesearch/tipuesearch_content.js deleted file mode 100644 index 1c0ba81b14f5e4122a2d0cd47deb34d0d3186232..0000000000000000000000000000000000000000 --- a/Documentation/FORD/V5/Doc_original/tipuesearch/tipuesearch_content.js +++ /dev/null @@ -1 +0,0 @@ -var tipuesearch = {"pages":[{"text":"Flex_extract: Calculation of etadot Developer Info Leopold Haimberger Univ. of Vienna, Dept. of Meteorology & Geophysics","tags":"","loc":"index.html","title":" Flex_extract: Calculation of etadot "},{"text":"Files Dependent On This One sourcefile~~phgrreal.f~~AfferentGraph sourcefile~phgrreal.f phgrreal.f sourcefile~grphreal.f grphreal.f sourcefile~phgrreal.f->sourcefile~grphreal.f sourcefile~preconvert.f90 preconvert.f90 sourcefile~phgrreal.f->sourcefile~preconvert.f90 sourcefile~grphreal.f->sourcefile~preconvert.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which depends upon it. A file \n is dependent upon another if the latter must be compiled before the former\n can be. Modules PHTOGR Source Code phgrreal.f Source Code MODULE PHTOGR INTEGER , PARAMETER :: MAXAUF = 36000 CONTAINS SUBROUTINE PHGR213 ( CXMN , FELD , WSAVE , IFAX , Z , MLAT , MNAUF , * MAXL , MAXB , MLEVEL ) C DIE ROUTINE F]HRT EINE TRANSFORMATION EINER C FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN C RAUM AUF DAS REDUZIERTE GAUSS'SCHE GITTER DURCH C C CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE C CX00,CX01,CX11,CX02,....CXMNAUFMNAUF C FELD = FELD DER METEOROLOGISCHEN VARIABLEN C\tWSAVE = Working Array fuer Fouriertransformation C Z \t = LEGENDREFUNKTIONSWERTE C C MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN C MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN C MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN C MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN C IMPLICIT NONE C\t\t\tAnzahl der Gitterpunkte auf jedem Breitenkreis INTEGER MLAT ( MAXB / 2 ) INTEGER K , MAXL , MAXB , MLEVEL , MNAUF INTEGER IND ( MAXB ) C FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , MAXB / 2 ) REAL CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MLEVEL ) REAL WSAVE ( 8 * MAXB + 15 , MAXB / 2 ) INTEGER :: IFAX ( 10 , MAXB ) IND ( 1 ) = 0 DO 7 K = 2 , MAXB / 2 IND ( K ) = IND ( K - 1 ) + MLAT ( K - 1 ) 7 \t\tC O NTINUE !$OMP PARALLEL DO SCHEDULE(DYNAMIC) DO 17 K = 1 , MAXB / 2 CALL PHSYM ( K , IND , CXMN , FELD , Z , WSAVE , IFAX , MLAT , * MNAUF , MAXL , MAXB , MLEVEL ) 17 C ONTINUE !$OMP END PARALLEL DO RETURN END SUBROUTINE PHGR213 C C SUBROUTINE PHSYM ( K , IND , CXMN , FELD , Z , WSAVE , IFAX , MLAT , * MNAUF , MAXL , MAXB , MLEVEL ) IMPLICIT NONE INTEGER MLAT ( MAXB / 2 ) INTEGER K , L , I , J , LLS , LLPS , LL , LLP , MAXL , MAXB , MLEVEL , MNAUF INTEGER IND ( MAXB ) INTEGER :: IFAX ( 10 , MAXB ) C FELD DER FOURIERKOEFFIZIENTEN REAL :: CXMS ( 0 : MAXAUF - 1 ), CXMA ( 0 : MAXAUF - 1 ) C FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , MAXB / 2 ) REAL ACR , ACI , SCR , SCI REAL CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MLEVEL ) REAL WSAVE ( 8 * MAXB + 15 , MAXB / 2 ) DO 6 L = 1 , MLEVEL LL = 0 LLP = 0 DO 1 I = 0 , MNAUF SCR = 0.D0 SCI = 0.D0 ACR = 0.D0 ACI = 0.D0 LLS = LL LLPS = LLP IF ( 2 * I + 1. LT . MLAT ( K )) THEN C\tInnerste Schleife aufgespalten um if-Abfrage zu sparen DO 18 J = I , MNAUF , 2 SCR = SCR + Z ( LLP , K ) * CXMN ( 2 * LL , L ) SCI = SCI + Z ( LLP , K ) * CXMN ( 2 * LL + 1 , L ) LL = LL + 2 LLP = LLP + 2 18 CONTINUE LL = LLS + 1 LLP = LLPS + 1 DO 19 J = I + 1 , MNAUF , 2 ACR = ACR + Z ( LLP , K ) * CXMN ( 2 * LL , L ) ACI = ACI + Z ( LLP , K ) * CXMN ( 2 * LL + 1 , L ) LL = LL + 2 LLP = LLP + 2 19 CONTINUE ENDIF LL = LLS + ( MNAUF - I + 1 ) LLP = LLPS + ( MNAUF - I + 3 ) CXMS ( 2 * I ) = SCR + ACR CXMS ( 2 * I + 1 ) = SCI + ACI CXMA ( 2 * I ) = SCR - ACR CXMA ( 2 * I + 1 ) = SCI - ACI 1 CONTINUE C CALL FOURTR(CXMS,FELD(IND(k)+1,L),WSAVE(:,K),MNAUF, C *MLAT(K),1) C CALL FOURTR(CXMA,FELD(MAXL-IND(k)-MLAT(K)+1,L), C *WSAVE(:,K),MNAUF,MLAT(K),1) CALL RFOURTR ( CXMS , WSAVE (:, K ), IFAX (:, K ), MNAUF , * MLAT ( K ), 1 ) FELD ( IND ( k ) + 1 : IND ( K ) + MLAT ( K ), L ) = CXMS ( 0 : MLAT ( K ) - 1 ) CALL RFOURTR ( CXMA , * WSAVE (:, K ), IFAX (:, K ), MNAUF , MLAT ( K ), 1 ) FELD ( MAXL - IND ( k ) - MLAT ( K ) + 1 : MAXL - IND ( k ), L ) = CXMA ( 0 : MLAT ( K ) - 1 ) C WRITE(*,*) IND+1,FELD(IND+1,L) 6 C ONTINUE END SUBROUTINE PHSYM SUBROUTINE PHGCUT ( CXMN , FELD , WSAVE , IFAX , Z , * MNAUF , MMAX , MAUF , MANF , MAXL , MAXB , MLEVEL ) C DIE ROUTINE FUEHRT EINE TRANSFORMATION EINER C FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN C RAUM AUF KUGELKOORDINATEN DURCH. Es kann ein Teilausschnitt C\t\t\tDer Erde angegeben werden. Diese Routine ist langsamer als C\t\t\tphgrph C C CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE C CX00,CX01,CX11,CX02,....CXMNAUFMNAUF C FELD = FELD DER METEOROLOGISCHEN VARIABLEN C BREITE = SINUS DER GEOGRAFISCHEN BREITEN C C MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN C MAUF ANZAHL DER LAENGEN UND DER FOURIERKOEFFIZIENTEN C MANF ANFANG DES LAENGENBEREICHS FUER DAS GITTER, C AUF DAS INTERPOLIERT WERDEN SOLL C MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN C MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN C MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN C IMPLICIT REAL ( A - H , O - Z ) C FELD DER FOURIERKOEFFIZIENTEN C FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( 0 :(( MMAX + 3 ) * ( MMAX + 4 )) / 2 , MAXB ) DIMENSION CXMN ( 0 :( MMAX + 1 ) * ( MMAX + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MAXB , MLEVEL ) DIMENSION WSAVE ( 4 * MAUF + 15 ) INTEGER :: IFAX ( 10 ) LOGICAL SYM C C write(*,*)mauf,mnauf,manf,maxl IF ( MAUF . LE . MNAUF ) WRITE ( * , * ) 'TOO COARSE LONGITUDE RESOLUTION' IF (( MANF . LT . 1 ). OR .( MAXL . LT . 1 ). OR . * ( MANF . GT . MAUF ). OR .( MAXL . GT . MAUF )) THEN WRITE ( * , * ) 'WRONG LONGITUDE RANGE' , MANF , MAXL STOP ENDIF C Pruefe, ob Ausgabegitter symmetrisch zum Aequator ist C Wenn ja soll Symmetrie der Legendrepolynome ausgenutzt werden IF ( MAXB . GT . 4 ) THEN SYM = . TRUE . D O 11 J = 5 , 5 IF ( ABS ( ABS ( Z ( 100 , J )) - ABS ( Z ( 100 , MAXB + 1 - J ))). GT . 1 E - 11 ) * SYM = . FALSE . C\t WRITE(*,*) ABS(Z(100,J)),ABS(Z(100,MAXB+1-J)) 11 C ONTINUE WRITE ( * , * ) 'Symmetrisch: ' , SYM ELSE SYM = . FALSE . ENDIF IF( S YM ) THEN !$OMP PARALLEL DO DO J = 1 ,( MAXB + 1 ) / 2 CALL PHSYMCUT ( J , CXMN , FELD , Z , WSAVE , IFAX , * MAUF , MNAUF , MAXL , MAXB , MLEVEL , MANF ) ENDDO !$OMP END PARALLEL DO ELS E !$OMP PARALLEL DO DO J = 1 , MAXB CALL PHGPNS ( CXMN , FELD , Z , WSAVE , IFAX , * J , MNAUF , MAUF , MANF , MAXL , MAXB , MLEVEL ) ENDDO !$OMP END PARALLEL DO ENDIF RETURN END SUBROUTINE PHGCUT SUBROUTINE PHSYMCUT ( J , CXMN , FELD , Z , WSAVE , IFAX , * MAUF , MNAUF , MAXL , MAXB , MLEVEL , MANF ) IMPLICIT REAL ( A - H , O - Z ) C FELD DER FOURIERKOEFFIZIENTEN REAL :: CXM ( 0 : MAXAUF - 1 ), CXMA ( 0 : MAXAUF - 1 ) C FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , MAXB ) REAL SCR , SCI , ACR , ACI DIMENSION CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MAXB , MLEVEL ) DIMENSION WSAVE ( 4 * MAUF + 15 ) INTEGER :: IFAX ( 10 ) DO 16 L = 1 , MLEVEL LL = 0 LLP = 0 DO 17 I = 0 , MNAUF SCR = 0.D0 SCI = 0.D0 ACR = 0.D0 ACI = 0.D0 LLS = LL LLPS = LLP C\tInnerste Schleife aufgespalten um if-Abfrage zu sparen DO 18 K = I , MNAUF , 2 SCR = SCR + Z ( LLP , J ) * CXMN ( 2 * LL , L ) SCI = SCI + Z ( LLP , J ) * CXMN ( 2 * LL + 1 , L ) LL = LL + 2 LLP = LLP + 2 18 CONTINUE LL = LLS + 1 LLP = LLPS + 1 DO 19 K = I + 1 , MNAUF , 2 ACR = ACR + Z ( LLP , J ) * CXMN ( 2 * LL , L ) ACI = ACI + Z ( LLP , J ) * CXMN ( 2 * LL + 1 , L ) LL = LL + 2 LLP = LLP + 2 19 CONTINUE LL = LLS + MNAUF - I + 1 LLP = LLPS + MNAUF - I + 3 CXM ( 2 * I ) = SCR + ACR CXM ( 2 * I + 1 ) = SCI + ACI CXMA ( 2 * I ) = SCR - ACR CXMA ( 2 * I + 1 ) = SCI - ACI 17 CONTINUE CALL RFOURTR ( CXM , WSAVE , IFAX , MNAUF , MAUF , 1 ) DO 26 I = 0 , MAXL - 1 IF ( MANF + I . LE . MAUF ) THEN FELD ( I + 1 , J , L ) = CXM ( MANF + I - 1 ) ELSE FELD ( I + 1 , J , L ) = CXM ( MANF - MAUF + I - 1 ) ENDIF 26 CONTINUE CALL RFOURTR ( CXMA , WSAVE , IFAX , MNAUF , MAUF , 1 ) DO 36 I = 0 , MAXL - 1 IF ( MANF + I . LE . MAUF ) THEN FELD ( I + 1 , MAXB + 1 - J , L ) = CXMA ( MANF + I - 1 ) ELSE FELD ( I + 1 , MAXB + 1 - J , L ) = CXMA ( MANF - MAUF + I - 1 ) ENDIF 36 CONTINUE 16 CONTINUE END SUBROUTINE PHSYMCUT SUBROUTINE PHGPNS ( CXMN , FELD , Z , WSAVE , IFAX , * J , MNAUF , MAUF , MANF , MAXL , MAXB , MLEVEL ) IMPLICIT NONE INTEGER , intent ( in ) :: MNAUF , MAUF , MANF , J , MAXL , MAXB , MLEVEL REAL :: CXM ( 0 : MAXAUF - 1 ) REAL , intent ( in ) :: Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , MAXB ) REAL , intent ( in ) :: CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL , intent ( in ) :: WSAVE ( 4 * MAUF + 15 ) REAL :: FELD ( MAXL , MAXB , MLEVEL ) INTEGER :: IFAX ( 10 ) INTEGER I , L DO L = 1 , MLEVEL CALL LEGTR ( CXMN (:, L ), CXM , Z (:, J ), MNAUF , MAUF ) CALL RFOURTR ( CXM , WSAVE , IFAX , MNAUF , MAUF , 1 ) DO I = 0 , MAXL - 1 IF ( MANF + I . LE . MAUF ) THEN FELD ( I + 1 , J , L ) = CXM ( MANF + I - 1 ) ELSE FELD ( I + 1 , J , L ) = CXM ( MANF - MAUF + I - 1 ) ENDIF ENDDO ENDDO END SUBROUTINE PHGPNS C SUBROUTINE LEGTR ( CXMN , CXM , Z , MNAUF , MAUF ) IMPLICIT NONE INTEGER MNAUF , MAUF , LL , LLP , I , J REAL CXM ( 0 : MAXAUF - 1 ) REAL CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 ) REAL Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 ) REAL CI , CR C C DIESE ROUTINE BERECHNET DIE FOURIERKOEFFIZIENTEN CXM C LL = 0 LLP = 0 DO 1 I = 0 , MNAUF CR = 0.D0 CI = 0.D0 DO 2 J = I , MNAUF CR = CR + Z ( LLP ) * CXMN ( 2 * LL ) CI = CI + Z ( LLP ) * CXMN ( 2 * LL + 1 ) LL = LL + 1 LLP = LLP + 1 2 CONTINUE LLP = LLP + 2 CXM ( 2 * I ) = CR CXM ( 2 * I + 1 ) = CI 1 CONTINUE RETURN END SUBROUTINE LEGTR C C C SUBROUTINE RFOURTR ( CXM , TRIGS , IFAX , MNAUF , MAXL , ISIGN ) C BERECHNET DIE FOURIERSUMME MIT EINEM FFT-ALGORITHMUS IMPLICIT REAL ( A - H , O - Z ) DIMENSION CXM ( 0 : MAXAUF - 1 ) REAL :: WSAVE ( 2 * MAXL ), TRIGS ( 2 * MAXL ) INTEGER IFAX ( 10 ) DO I = MNAUF + 1 , MAXL - 1 CXM ( 2 * I ) = 0.0 CXM ( 2 * I + 1 ) = 0.0 ENDDO CALL FFT99 ( CXM , WSAVE , TRIGS , IFAX , 1 , 1 , MAXL , 1 , 1 ) DO I = 0 , MAXL - 1 CXM ( I ) = CXM ( I + 1 ) ENDDO RETURN END SUBROUTINE RFOURTR C C SUBROUTINE GAULEG ( X1 , X2 , X , W , N ) C BERECHNET DIE GAUSS+SCHEN BREITEN IMPLICIT REAL ( A - H , O - Z ) DIMENSION X ( N ), W ( N ) PARAMETER ( EPS = 3.D-14 ) M = ( N + 1 ) / 2 XM = 0.5D0 * ( X2 + X1 ) XL = 0.5D0 * ( X2 - X1 ) DO 12 I = 1 , M Z = DCOS ( 3.141592654D0 * ( I - . 25 D0 ) / ( N + . 5 D0 )) 1 CONTINUE P1 = 1.D0 P2 = 0.D0 DO 11 J = 1 , N P3 = P2 P2 = P1 P1 = (( 2.D0 * J - 1.D0 ) * Z * P2 - ( J - 1.D0 ) * P3 ) / J 11 CONTINUE PP = N * ( Z * P1 - P2 ) / ( Z * Z - 1.D0 ) Z1 = Z Z = Z1 - P1 / PP IF ( ABS ( Z - Z1 ). GT . EPS ) GO TO 1 X ( I ) = XM - XL * Z X ( N + 1 - I ) = XM + XL * Z W ( I ) = 2.D0 * XL / (( 1.D0 - Z * Z ) * PP * PP ) W ( N + 1 - I ) = W ( I ) 12 CONTINUE RETURN END SUBROUTINE GAULEG C C SUBROUTINE PLGNFA ( LL , X , Z ) C C PLGNDN BERECHNET ALLE NORMIERTEN ASSOZIIERTEN C LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X) C UND SCHREIBT SIE IN DAS FELD Z C Die Polynome sind wie im ECMWF indiziert, d.h. C P00,P10,P11,P20,P21,P22,... C\tAnsonsten ist die Routine analog zu PLGNDN C X IST DER COSINUS DES ZENITWINKELS ODER C DER SINUS DER GEOGRAFISCHEN BREITE C IMPLICIT REAL ( A - H , O - Z ) DIMENSION Z ( 0 :(( LL + 3 ) * ( LL + 4 )) / 2 ) C L = LL + 2 I = 1 Z ( 0 ) = 1.D0 FACT = 1.D0 POT = 1.D0 SOMX2 = DSQRT ( 1.D0 - X * X ) DO 14 J = 0 , L DJ = DBLE ( J ) IF ( J . GT . 0 ) THEN FACT = FACT * ( 2.D0 * DJ - 1.D0 ) / ( 2.D0 * DJ ) POT = POT * SOMX2 Z ( I ) = DSQRT (( 2.D0 * DJ + 1.D0 ) * FACT ) * POT I = I + 1 ENDIF IF ( J . LT . L ) THEN Z ( I ) = X * * DSQRT (( 4.D0 * DJ * DJ + 8.D0 * DJ + 3.D0 ) / ( 2.D0 * DJ + 1.D0 )) * Z ( I - 1 ) I = I + 1 ENDIF DK = DJ + 2.D0 DO 14 K = J + 2 , L DDK = ( DK * DK - DJ * DJ ) Z ( I ) = X * DSQRT (( 4.D0 * DK * DK - 1.D0 ) / DDK ) * Z ( I - 1 ) - * DSQRT ((( 2.D0 * DK + 1.D0 ) * ( DK - DJ - 1.D0 ) * ( DK + DJ - 1.D0 )) / * (( 2.D0 * DK - 3.D0 ) * DDK )) * Z ( I - 2 ) DK = DK + 1.D0 I = I + 1 14 CONTINUE RETURN END SUBROUTINE PLGNFA SUBROUTINE DPLGND ( MNAUF , Z , DZ ) C C DPLGND BERECHNET DIE ABLEITUNG DER NORMIERTEN ASSOZIIERTEN C LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X) C UND SCHREIBT SIE IN DAS FELD DZ C DIE REIHENFOLGE IST C P00(X),P01(X),P11(X),P02(X),P12(X),P22(X),..PLL(X) C IMPLICIT REAL ( A - H , O - Z ) DIMENSION Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 ) DIMENSION DZ ( 0 :(( MNAUF + 2 ) * ( MNAUF + 3 )) / 2 ) C I F ( Z ( 0 ). NE . 1.D0 ) THEN WR I TE ( * , * ) 'DPLGND: Z(0) must be 1.0' S TOP E N DIF L L P = 0 L L H = 0 DO 1 I = 0 , MNAUF + 1 DO 2 J = I , MNAUF + 1 IF ( I . EQ . J ) THEN WURZELA = * DSQRT ( DBLE (( J + 1 ) * ( J + 1 ) - I * I ) / DBLE ( 4 * ( J + 1 ) * ( J + 1 ) - 1 )) DZ ( LLH ) = DBLE ( J ) * WURZELA * Z ( LLP + 1 ) ELSE WURZELB = * DSQRT ( DBLE (( J + 1 ) * ( J + 1 ) - I * I ) / DBLE ( 4 * ( J + 1 ) * ( J + 1 ) - 1 )) DZ ( LLH ) = * DBLE ( J ) * WURZELB * Z ( LLP + 1 ) - DBLE ( J + 1 ) * WURZELA * Z ( LLP - 1 ) WURZELA = WURZELB ENDIF LLH = LLH + 1 LLP = LLP + 1 2 CONTINUE LLP = LLP + 1 1\tCON T INUE RETU R N END S UBROUTINE DPLGND * Spectral Filter of Sardeshmukh and Hoskins (1984, MWR) * MM=Spectral truncation of field * MMAX= Spectral truncation of filter * SUBROUTINE SPFILTER ( FELDMN , MM , MMAX ) IMPLICIT NONE INTEGER MM , MMAX , I , J , K , L REAL FELDMN ( 0 :( MM + 1 ) * ( MM + 2 ) - 1 ) REAL KMAX , SMAX , FAK SMAX = 0.1 KMAX =- ALOG ( SMAX ) KMAX = KMAX / ( float ( MMAX ) * float ( MMAX + 1 )) ** 2 c WRITE(*,*)'alogsmax',alog(smax),'KMAX:',KMAX l = 0 do i = 0 , MM do j = i , MM c write(*,*) i,j,feld(k),feld(k)*exp(-KMAX*(j*(j+1))**2) if ( j . le . MMAX ) then c fak=exp(-KMAX*(j*(j+1))**2) fak = 1.0 feldmn ( 2 * l ) = feldmn ( 2 * l ) * fak feldmn ( 2 * l + 1 ) = feldmn ( 2 * l + 1 ) * fak else feldmn ( 2 * l ) = 0. feldmn ( 2 * l + 1 ) = 0. endif l = l + 1 enddo enddo END SUBROUTINE SPFILTER END MODULE PHTOGR","tags":"","loc":"sourcefile/phgrreal.f.html","title":"phgrreal.f – Flex_extract: Calculation of etadot"},{"text":"This File Depends On sourcefile~~grphreal.f~~EfferentGraph sourcefile~grphreal.f grphreal.f sourcefile~phgrreal.f phgrreal.f sourcefile~phgrreal.f->sourcefile~grphreal.f Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which depends upon it. A file \n is dependent upon another if the latter must be compiled before the former\n can be. Files Dependent On This One sourcefile~~grphreal.f~~AfferentGraph sourcefile~grphreal.f grphreal.f sourcefile~preconvert.f90 preconvert.f90 sourcefile~grphreal.f->sourcefile~preconvert.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which depends upon it. A file \n is dependent upon another if the latter must be compiled before the former\n can be. Modules GRTOPH Source Code grphreal.f Source Code MODULE GRTOPH USE PHTOGR CONTAINS C SUBROUTINE GRPH213 ( CXMN , FELD , WSAVE , IFAX , Z , W , MLAT , * MNAUF , MAXL , MAXB , MLEVEL ) C DIE ROUTINE F]HRT EINE TRANSFORMATION EINER C FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN C RAUM AUF KUGELKOORDINATEN DURCH C C CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE C CX00,CX01,CX11,CX02,....CXMNAUFMNAUF C\t\t\tCXM\t\t = FOURIERKOEFFIZIENTEN - nur ein Hilfsfeld C FELD = FELD DER METEOROLOGISCHEN VARIABLEN C\t\t\tWSAVE = Working Array fuer Fouriertransformation C Z \t = LEGENDREFUNKTIONSWERTE C C MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN C MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN C MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN C MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN C IMPLICIT REAL ( A - H , O - Z ) C\t\t\tAnzahl der Gitterpunkte pro Breitenkreis des reduzierten C\t\t\tGauss'schen Gitters INTE G ER MLAT ( MAXB ), ISIZE , IFAX ( 10 , MAXB ) C FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL * 8 Z ( MAXB / 2 , 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 ) C LOGICAL*1 USED(((216*217)/2+1)*160) DIMENSION CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MLEVEL ) DIMENSION WSAVE ( 8 * MAXB + 15 , MAXB / 2 ) REAL * 8 W ( MAXB ) DIMENSION IND ( MAXB ) IND ( 1 ) = 0 DO 6 J = 2 , MAXB / 2 IND ( j ) = IND ( J - 1 ) + MLAT ( J - 1 ) 6 CONTINUE !$OMP PARALLEL DO SCHEDULE(DYNAMIC) DO 16 L = 1 , MLEVEL CALL GRPHSUB ( L , IND , CXMN , FELD , WSAVE , IFAX , Z , W , MLAT , * MNAUF , MAXL , MAXB , MLEVEL ) 16 CONTINUE !$omp end parallel do RETURN END SUBROUTINE GRPH213 C SUBROUTINE GRPHSUB ( L , IND , CXMN , FELD , WSAVE , IFAX , Z , W , MLAT , * MNAUF , MAXL , MAXB , MLEVEL ) C DIE ROUTINE F]HRT EINE TRANSFORMATION EINER C FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN C RAUM AUF KUGELKOORDINATEN DURCH C C CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE C CX00,CX01,CX11,CX02,....CXMNAUFMNAUF C\t\t\tCXM\t\t = FOURIERKOEFFIZIENTEN - nur ein Hilfsfeld C FELD = FELD DER METEOROLOGISCHEN VARIABLEN C\t\t\tWSAVE = Working Array fuer Fouriertransformation C Z \t = LEGENDREFUNKTIONSWERTE C C MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN C MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN C MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN C MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN C IMPLICIT REAL ( A - H , O - Z ) C FELD DER FOURIERKOEFFIZIENTEN REAL CXMS ( 4 * ( MNAUF + 1 )) REAL CXMA ( 4 * ( MNAUF + 1 )) REAL , ALLOCATABLE :: CXM (:,:) C\t\t\tAnzahl der Gitterpunkte pro Breitenkreis des reduzierten C\t\t\tGauss'schen Gitters IN T EGER MLAT ( MAXB ), ISIZE C FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( MAXB / 2 , 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 ) C LOGICAL*1 USED(((216*217)/2+1)*160) REAL CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MLEVEL ) REAL WSAVE ( 8 * MAXB + 15 , MAXB / 2 ) INTEGER IFAX ( 10 , MAXB ) REAL W ( MAXB ) INTEGER IND ( MAXB ) ALLOCATE ( CXM ( 4 * MAXB , MAXB )) DO 5 J = 1 , MAXB / 2 CXMS ( 1 : MLAT ( J )) = FELD ( IND ( J ) + 1 : IND ( J ) + MLAT ( J ), L ) C ALL RFOUFTR ( CXMS , WSAVE ( 1 , J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) CXMA ( 1 : MLAT ( J )) = FELD ( MAXL - IND ( J ) - MLAT ( J ) + 1 : MAXL - IND ( J ), L ) C ALL RFOUFTR ( CXMA , * WSAVE ( 1 , J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) D O 4 I = 1 , 2 * ( MNAUF + 1 ) CXM ( I , J ) = CXMS ( I ) + CXMA ( I ) CXM ( I , MAXB + 1 - J ) = CXMS ( I ) - CXMA ( I ) 4\t\t\tC O NTINUE 5 CONTINUE CALL LGTR213 ( CXMN ( 0 , L ), CXM , Z , W , MLAT , MNAUF , MAXB ) DEALLOCATE ( CXM ) RETURN END SUBROUTINE GRPHSUB C SUBROUTINE LGTR213 ( CXMN , CXM , Z , W , MLAT , MNAUF , MAXB ) IMPLICIT REAL ( A - H , O - Z ) INTEGER MLAT ( MAXB ) DIMENSION CXM ( 0 : 4 * MAXB - 1 , MAXB ) DIMENSION CXMN ( 0 : 2 * ((( MNAUF + 1 ) * MNAUF ) / 2 + MNAUF ) + 1 ) REAL * 8 Z ( MAXB / 2 , 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 ) REAL * 8 W ( MAXB ), CR , CI , HILF LOGICAL EVEN C C DIESE ROUTINE BERECHNET DIE KFFKs CXMN C LL = 0 LL P = 0 DO 1 I = 0 , MNAUF KM = 0 9 KM = KM + 1 IF ( MLAT ( KM ). LE . 2 * I ) THEN GOTO 9 ENDIF DO 2 J = I , MNAUF CR = 0 CI = 0 EVEN = MOD ( I + J , 2 ). EQ . 0 IF ( EVEN ) THEN DO 3 K = KM , MAXB / 2 HILF = W ( K ) * Z ( K , LLP ) CR = CR + CXM ( 2 * I , K ) * HILF CI = CI + CXM ( 2 * I + 1 , K ) * HILF 3 CONTINUE ELSE DO 4 K = KM , MAXB / 2 HILF = W ( K ) * Z ( K , LLP ) CR = CR + CXM ( 2 * I , MAXB + 1 - K ) * HILF CI = CI + CXM ( 2 * I + 1 , MAXB + 1 - K ) * HILF 4 CONTINUE ENDIF 5 CXMN ( 2 * LL ) = CR CXMN ( 2 * LL + 1 ) = CI LL = LL + 1 LLP = LLP + 1 2 CONTINUE LLP = LLP + 2 1 CONTINUE RETURN END SUBROUTINE LGTR213 C C SUBROUTINE RFOUFTR ( CXM , TRIGS , IFAX , MNAUF , MAXL , ISIGN ) C BERECHNET DIE FOURIERSUMME MIT EINEM FFT-ALGORITHMUS IMPLICIT REAL ( A - H , O - Z ) DIMENSION CXM ( 0 : 2 * MAXL - 1 ) DIMENSION FELD ( MAXL ), TRIGS ( 2 * MAXL ) DIMENSION WSAVE ( MAXAUF ) INTEGER IFAX ( 10 ) C NORMIERUNG... WSAVE ( 1 ) = CXM ( MAXL - 1 ) CXM ( 1 : MAXL ) = CXM ( 0 : MAXL - 1 ) / 2 CXM ( 0 ) = WSAVE ( 1 ) / 2 ! CALL CFFTF(MAXL,CXM,WSAVE) CALL FFT99 ( CXM , WSAVE , TRIGS , IFAX , 1 , 1 , MAXL , 1 , - 1 ) RETURN END SUBROUTINE RFOUFTR END MODULE GRTOPH","tags":"","loc":"sourcefile/grphreal.f.html","title":"grphreal.f – Flex_extract: Calculation of etadot"},{"text":"Files Dependent On This One sourcefile~~rwgrib2.f90~~AfferentGraph sourcefile~rwgrib2.f90 rwGRIB2.f90 sourcefile~preconvert.f90 preconvert.f90 sourcefile~rwgrib2.f90->sourcefile~preconvert.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which depends upon it. A file \n is dependent upon another if the latter must be compiled before the former\n can be. Modules RWGRIB2 Source Code rwGRIB2.f90 Source Code MODULE RWGRIB2 CONTAINS SUBROUTINE READLATLON ( FILENAME , FELD , MAXL , MAXB , MLEVEL , MPAR ) USE GRIB_API IMPLICIT NONE integer :: ifile integer :: iret integer :: n , mk , parid , nm integer :: i , k integer , dimension (:), allocatable :: igrib integer :: numberOfPointsAlongAParallel integer :: numberOfPointsAlongAMeridian real , dimension (:), allocatable :: values integer :: numberOfValues real , dimension ( maxl , maxb , mlevel ) :: feld integer :: maxl , maxb , mlevel , mstride , mpar (:), irest , div , level integer :: l ( size ( mpar )) character * ( * ) :: filename feld = 0. call grib_open_file ( ifile , TRIM ( FILENAME ), 'r' ) ! count the messages in the file call grib_count_in_file ( ifile , n ) allocate ( igrib ( n )) igrib =- 1 ! Load the messages from the file. DO i = 1 , n call grib_new_from_file ( ifile , igrib ( i ), iret ) END DO ! we can close the file call grib_close_file ( ifile ) nm = size ( mpar ) div = mlevel / nm l = 0 ! Loop on all the messages in memory iloop : DO i = 1 , n ! write(*,*) 'processing message number ',i ! get as a integer call grib_get ( igrib ( i ), 'numberOfPointsAlongAParallel' , & numberOfPointsAlongAParallel ) ! get as a integer call grib_get ( igrib ( i ), 'numberOfPointsAlongAMeridian' , & numberOfPointsAlongAMeridian ) call grib_get ( igrib ( i ), 'numberOfVerticalCoordinateValues' , mk ) call grib_get_size ( igrib ( i ), 'values' , numberOfValues ) ! write(*,*) 'numberOfValues=',numberOfValues allocate ( values ( numberOfValues ), stat = iret ) ! get data values call grib_get ( igrib ( i ), 'values' , values ) call grib_get ( igrib ( i ), 'paramId' , parid ) call grib_get ( igrib ( i ), 'level' , level ) kloop : do k = 1 , nm if ( parid . eq . mpar ( k )) then ! l(k)=l(k)+1 feld (:,:,( k - 1 ) * div + level ) = reshape ( values ,( / maxl , maxb / )) ! print*,(k-1)*div+l(k),parid exit kloop endif enddo kloop if ( k . gt . nm . and . parid . ne . mpar ( nm )) then write ( * , * ) k , nm , parid , mpar ( nm ) write ( * , * ) 'ERROR readlatlon: parameter ' , parid , 'is not' , mpar stop endif ! print*,i END DO iloop write ( * , * ) 'readlatlon: ' , i - 1 , ' records read' DO i = 1 , n call grib_release ( igrib ( i )) END DO deallocate ( values ) deallocate ( igrib ) END SUBROUTINE READLATLON SUBROUTINE WRITELATLON ( iunit , igrib , ogrib , FELD , MAXL , MAXB , MLEVEL ,& MLEVELIST , MSTRIDE , MPAR ) USE GRIB_API IMPLICIT NONE INTEGER IFIELD , MLEVEL , MNAUF , I , J , K , L , MSTRIDE , IERR , JOUT INTEGER MPAR ( MSTRIDE ), MAXL , MAXB , LEVMIN , LEVMAX INTEGER IUNIT , igrib , ogrib REAL ZSEC4 ( MAXL * MAXB ) REAL FELD ( MAXL , MAXB , MLEVEL ) CHARACTER * ( * ) MLEVELIST INTEGER ILEVEL ( MLEVEL ), MLINDEX ( MLEVEL + 1 ), LLEN ! parse MLEVELIST LLEN = len ( trim ( MLEVELIST )) if ( index ( MLEVELIST , 'to' ) . ne . 0 . or . index ( MLEVELIST , 'TO' ) . ne . 0 ) THEN i = index ( MLEVELIST , '/' ) read ( MLEVELIST ( 1 : i - 1 ), * ) LEVMIN i = index ( MLEVELIST , '/' ,. true .) read ( MLEVELIST ( i + 1 : LLEN ), * ) LEVMAX l = 0 do i = LEVMIN , LEVMAX l = l + 1 ILEVEL ( l ) = i enddo else l = 1 MLINDEX ( 1 ) = 0 do i = 1 , LLEN if ( MLEVELIST ( i : i ) . eq . '/' ) THEN l = l + 1 MLINDEX ( l ) = i endif enddo MLINDEX ( l + 1 ) = LLEN + 1 do i = 1 , l read ( MLEVELIST ( MLINDEX ( i ) + 1 : MLINDEX ( i + 1 ) - 1 ), * ) ILEVEL ( i ) enddo endif DO k = 1 , l call grib_set ( igrib , \"level\" , ILEVEL ( k )) DO j = 1 , MSTRIDE call grib_set ( igrib , \"paramId\" , MPAR ( j )) ! if(MPAR(j) .eq. 87) then ! call grib_set(igrib,\"shortName\",\"etadot\") ! call grib_set(igrib,\"units\",\"Pa,s**-1\") ! endif ! if(MPAR(j) .eq. 77) then ! call grib_set(igrib,\"shortName\",\"etadot\") ! call grib_set(igrib,\"units\",\"s**-1\") ! endif if ( l . ne . mlevel ) then zsec4 ( 1 : maxl * maxb ) = RESHAPE ( FELD (:,:, ILEVEL ( k )),( / maxl * maxb / )) else zsec4 ( 1 : maxl * maxb ) = RESHAPE ( FELD (:,:, k ),( / maxl * maxb / )) endif call grib_set ( igrib , \"values\" , zsec4 ) call grib_write ( igrib , iunit ) ENDDO ENDDO END SUBROUTINE WRITELATLON SUBROUTINE READSPECTRAL ( FILENAME , CXMN , MNAUF , MLEVEL ,& MAXLEV , MPAR , A , B ) USE GRIB_API IMPLICIT NONE integer :: ifile integer :: iret integer :: n , mk , div , nm , k integer :: i , j , parid integer , dimension (:), allocatable :: igrib real , dimension (:), allocatable :: values integer :: numberOfValues , maxlev REAL :: A ( MAXLEV + 1 ), B ( MAXLEV + 1 ), pv ( 2 * MAXLEV + 2 ) REAL :: CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) integer :: maxl , maxb , mlevel , mstride , mpar (:), mnauf , ioffset , ipar , ilev , l ( size ( mpar )) character * ( * ) :: filename call grib_open_file ( ifile , TRIM ( FILENAME ), 'r' ) ! count the messages in the file call grib_count_in_file ( ifile , n ) allocate ( igrib ( n )) igrib =- 1 ! Load the messages from the file. DO i = 1 , n call grib_new_from_file ( ifile , igrib ( i ), iret ) END DO ! we can close the file call grib_close_file ( ifile ) l = 0 ! Loop on all the messages in memory iloop : DO i = 1 , n ! write(*,*) 'processing message number ',i ! get as a integer call grib_get ( igrib ( i ), 'pentagonalResolutionParameterJ' , j ) call grib_get_size ( igrib ( i ), 'values' , numberOfValues ) ! write(*,*) 'numberOfValues=',numberOfValues call grib_get ( igrib ( i ), 'numberOfVerticalCoordinateValues' , mk ) call grib_get ( igrib ( i ), 'level' , ilev ) call grib_get ( igrib ( i ), 'pv' , pv ) allocate ( values ( numberOfValues ), stat = iret ) ! get data values call grib_get ( igrib ( i ), 'values' , values ) ! IOFFSET=mod(i-1,MSTRIDE)*(mk/2-1) ! CXMN(:,IOFFSET+ilev)=values(1:(MNAUF+1)*(MNAUF+2)) call grib_get ( igrib ( i ), 'paramId' , parid ) nm = size ( mpar ) div = mlevel / nm kloop : do k = 1 , nm if ( parid . eq . mpar ( k )) then l ( k ) = l ( k ) + 1 cxmn (:,( k - 1 ) * div + l ( k )) = values ( 1 :( MNAUF + 1 ) * ( MNAUF + 2 )) ! print*,(k-1)*div+l(k),parid exit kloop endif enddo kloop if ( k . gt . nm . and . parid . ne . mpar ( nm )) then write ( * , * ) k , nm , parid , mpar ( nm ) write ( * , * ) 'ERROR readspectral: parameter ' , parid , 'is not' , mpar stop endif ! print*,i END DO iloop write ( * , * ) 'readspectral: ' , i - 1 , ' records read' DO i = 1 , n call grib_release ( igrib ( i )) END DO deallocate ( values ) deallocate ( igrib ) A = pv ( 1 : 1 + MAXLEV ) B = pv ( 2 + MAXLEV : 2 * MAXLEV + 2 ) END SUBROUTINE READSPECTRAL END MODULE RWGRIB2","tags":"","loc":"sourcefile/rwgrib2.f90.html","title":"rwGRIB2.f90 – Flex_extract: Calculation of etadot"},{"text":"This File Depends On sourcefile~~preconvert.f90~~EfferentGraph sourcefile~preconvert.f90 preconvert.f90 sourcefile~grphreal.f grphreal.f sourcefile~grphreal.f->sourcefile~preconvert.f90 sourcefile~phgrreal.f phgrreal.f sourcefile~phgrreal.f->sourcefile~preconvert.f90 sourcefile~phgrreal.f->sourcefile~grphreal.f sourcefile~rwgrib2.f90 rwGRIB2.f90 sourcefile~rwgrib2.f90->sourcefile~preconvert.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which depends upon it. A file \n is dependent upon another if the latter must be compiled before the former\n can be. Programs PRECONVERT Functions IA Subroutines STATIS Source Code preconvert.f90 Source Code PROGRAM PRECONVERT !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ! ! PROGRAM PRECONVERT - PREPARES INPUT DATA FOR POP MODEL METEOR- ! ! OLOGICAL PREPROCESSOR ! ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ! ! CALCULATION OF ETAPOINT ON A REGULAR LAMDA/PHI GRID AND WRITING ! ! U,V,ETAPOINT,T,PS,Q,SD,MSL,TCC,10U, 10V, 2T,2D,LSP,CP,SSHF,SSR, ! ! EWSS,NSSS TO AN OUTPUT FILE (GRIB 1 or 2 FORMAT). ! ! ! ! AUTHORS: L. HAIMBERGER, G. WOTAWA, 1994-04 ! ! adapted: A. BECK ! ! 2003-05-11 ! ! L. Haimberger 2006-12 V2.0 ! ! modified to handle arbitrary regular grids ! ! and T799 resolution data ! ! L. Haimberger 2010-03 V4.0 ! ! modified to grib edition 2 fields ! ! and T1279 resolution data ! ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ! ! DESCRIPTION OF NEEDED INPUT: ! ! ! ! UNIT FILE PARAMETER(S) DATA REPRESENTATION ! ! ! ! 11 fort.11 T,U,V regular lamda phi grid ! ! 12 fort.12 D regular lamda phi grid ! ! 13 fort.13 LNSP fort.13 spherical harmonics ! ! 14 fort.14 SD,MSL,TCC,10U, ! ! 10V,2T,2D regular lamda phi grid ! ! 16 fort.16 LSP,CP,SSHF, ! ! SSR,EWSS,NSSS regular lamda phi grid ! ! 17 fort.17 Q regular lamda phi grid ! ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ! ! DESCRIPTION OF OUTPUT: ! ! ! ! UNIT FILE PARAMETER(S) DATA REPRESENTATION ! ! ! ! 15 fort.15 U,V,ETA,T,PS, ! ! Q,SD,MSL,TCC, ! ! 10U,10V,2T,2D, regular lamda phi grid ! ! LSP,CP,SSHF, ! ! SSR,EWSS,NSSS ! ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! USE PHTOGR USE GRTOPH USE FTRAFO USE RWGRIB2 USE GRIB_API IMPLICIT NONE REAL , ALLOCATABLE , DIMENSION (:,:) :: LNPS REAL , ALLOCATABLE , DIMENSION (:,:) :: Z REAL , ALLOCATABLE , DIMENSION (:,:,:) :: T , UV , UV2 REAL , ALLOCATABLE , DIMENSION (:,:,:) :: QA , OM , OMR REAL , ALLOCATABLE , DIMENSION (:,:,:) :: DIV , ETA , ETAR REAL , ALLOCATABLE , DIMENSION (:,:) :: DPSDL , DPSDM REAL , ALLOCATABLE , DIMENSION (:,:,:) :: PS , DPSDT REAL , ALLOCATABLE , DIMENSION (:,:,:) :: SURF , FLUX , OROLSM REAL , ALLOCATABLE , DIMENSION (:) :: WSAVE , H , SINL , COSL , WSAVE2 REAL , ALLOCATABLE , DIMENSION (:) :: BREITE , GBREITE , AK , BK , pv ! Arrays for Gaussian grid calculations REAL :: X1 , X2 , RMS , MW , SIG , LAM REAL , ALLOCATABLE :: CUA (:,:,:), CVA (:,:,:) REAL , ALLOCATABLE , DIMENSION (:,:) :: P , PP !,P2 REAL , ALLOCATABLE , DIMENSION (:,:) :: XMN , HILFUV REAL , ALLOCATABLE , DIMENSION (:) :: LNPMN , LNPMN2 , LNPMN3 REAL , ALLOCATABLE , DIMENSION (:) :: WEIGHT REAL , ALLOCATABLE , DIMENSION (:,:) :: UGVG REAL , ALLOCATABLE , DIMENSION (:,:) :: DG , ETAG REAL , ALLOCATABLE , DIMENSION (:,:) :: GWSAVE REAL , ALLOCATABLE , DIMENSION (:) :: PSG , HILF ! end arrays for Gaussian grid calculations INTEGER , ALLOCATABLE , DIMENSION (:) :: MLAT , MPSURF , MPFLUX , MPORO , MPAR INTEGER , ALLOCATABLE :: GIFAX (:,:) REAL PI , COSB , DAK , DBK , P00 REAL URLAR8 , JMIN1 , LLLAR8 , MAXBMIN1 , PIR8 , DCOSB INTEGER I , J , K , L , IERR , M , LTEST , MK , NGI , NGJ INTEGER MFLUX , MSURF , MORO INTEGER LUNIT , LUNIT2 INTEGER MAXL , MAXB , MLEVEL , LEVOUT , LEVMIN , LEVMAX INTEGER MOMEGA , MOMEGADIFF , MGAUSS , MSMOOTH , MNAUF , META , METADIFF INTEGER MDPDETA , METAPAR REAL RLO0 , RLO1 , RLA0 , RLA1 CHARACTER * 300 MLEVELIST INTEGER MAUF , MANF , IFAX ( 10 ) INTEGER IGRIB ( 1 ), iret , ogrib CHARACTER * 80 FILENAME NAMELIST / NAMGEN / & MAXL , MAXB , & MLEVEL , MLEVELIST , MNAUF , METAPAR , & RLO0 , RLO1 , RLA0 , RLA1 , & MOMEGA , MOMEGADIFF , MGAUSS , MSMOOTH , META , METADIFF ,& MDPDETA LTEST = 1 call posnam ( 4 , 'NAMGEN' ) read ( 4 , NAMGEN ) MAUF = INT ( 36 0. * ( REAL ( MAXL ) - 1. ) / ( RLO1 - RLO0 ) + 0.0001 ) ! PRINT*, MAUF MANF = INT ( REAL ( MAUF ) / 36 0. * ( 36 0. + RLO0 ) + 1.0001 ) IF ( MANF . gt . MAUF ) MANF = MANF - MAUF !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ALLOCATE VARIABLES ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ALLOCATE ( LNPS ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , 1 )) ALLOCATE ( H ( 0 :( MNAUF + 2 ) * ( MNAUF + 3 ) / 2 )) ALLOCATE ( OM ( MAXL , MAXB , MLEVEL )) ALLOCATE ( ETA ( MAXL , MAXB , MLEVEL )) ALLOCATE ( PS ( MAXL , MAXB , 1 ), DPSDT ( MAXL , MAXB , 1 )) ALLOCATE ( WSAVE ( 4 * MAUF + 15 ), WSAVE2 ( 4 * MAUF + 15 )) ALLOCATE ( BREITE ( MAXB ), AK ( MLEVEL + 1 ), BK ( MLEVEL + 1 ), pv ( 2 * mlevel + 2 )) ALLOCATE ( MPAR ( 2 )) ALLOCATE ( COSL ( MAXL ), SINL ( MAXL )) ALLOCATE ( CUA ( 2 , 4 , MLEVEL ), CVA ( 2 , 4 , MLEVEL )) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! GAUSS STUFF ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! IF ( MGAUSS . EQ . 1 ) THEN LUNIT = 0 FILENAME = 'fort.18' call grib_open_file ( LUNIT , TRIM ( FILENAME ), 'r' ) call grib_new_from_file ( LUNIT , igrib ( 1 ), iret ) ! we can close the file call grib_close_file ( LUNIT ) ! call grib_get(igrib(1),'gridType', j) NGJ = MNAUF + 1 ALLOCATE ( GWSAVE ( 8 * NGJ + 15 , NGJ / 2 )) ALLOCATE ( GIFAX ( 10 , NGJ )) ALLOCATE ( GBREITE ( NGJ ), WEIGHT ( NGJ )) ALLOCATE ( MLAT ( NGJ )) ALLOCATE ( P ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , NGJ / 2 )) ALLOCATE ( PP ( NGJ / 2 , 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 )) ALLOCATE ( Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , MAXB )) call grib_get ( igrib ( 1 ), 'numberOfPointsAlongAMeridian' , NGJ ) ! get as a integer call grib_get ( igrib ( 1 ), 'pl' , MLAT ) NGI = SUM ( MLAT ) call grib_get ( igrib ( 1 ), 'numberOfVerticalCoordinateValues' , mk ) IF ( mk / 2 - 1 . ne . MLEVEL ) THEN WRITE ( * , * ) 'FATAL: Number of model levels' , mk , & ' does not agree with' , MLEVEL , ' in namelist' STOP ENDIF call grib_get ( igrib ( 1 ), 'pv' , pv ) AK = pv ( 1 : 1 + MLEVEL ) BK = pv ( 2 + MLEVEL : 2 * MLEVEL + 2 ) ALLOCATE ( LNPMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 )) ALLOCATE ( LNPMN2 ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 )) ALLOCATE ( UGVG ( NGI , 2 * MLEVEL ), HILFUV ( 2 * MAXL , 2 )) ALLOCATE ( DPSDL ( NGI , 1 ), DPSDM ( NGI , 1 )) ALLOCATE ( PSG ( NGI ), HILF ( NGI )) ALLOCATE ( UV ( MAXL , MAXB , 2 * MLEVEL )) ! ALLOCATE (UV2(MAXL, MAXB, 2*MLEVEL)) ALLOCATE ( XMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , 2 * MLEVEL )) ALLOCATE ( DG ( NGI , MLEVEL ), ETAG ( NGI , MLEVEL )) ! Initialisieren Legendretransformation !\tauf das LaT/LON Gitter PI = ACOS ( - 1.D0 ) !$OMP PARALLEL DO DO 20 J = 1 , MAXB BREITE ( J ) = SIN (( RLA1 - ( J - 1.D0 ) * ( RLA1 - RLA0 ) / ( MAXB - 1 )) * PI / 18 0.D0 ) CALL PLGNFA ( MNAUF , BREITE ( J ), Z ( 0 , J )) 20 CONTINUE !$OMP END PARALLEL DO ! Avoid possible Pole problem ! IF(RLA0 .EQ. -90.0) BREITE(MAXB)=sin(-89.99*PI/180.d0) ! IF(RLA1 .EQ. 90.0) BREITE(1)=sin(89.99*PI/180.d0) ! Initialisation of fields for FFT and Legendre transformation !\tto Gaussian grid and back to phase space X1 =- 1.D0 X2 = 1.D0 CALL GAULEG ( X1 , X2 , GBREITE , WEIGHT , NGJ ) !$OMP PARALLEL DO PRIVATE(M) DO J = 1 , NGJ / 2 CALL PLGNFA ( MNAUF , GBREITE ( J ), P (:, J )) DO M = 0 ,( MNAUF + 3 ) * ( MNAUF + 4 ) / 2 PP ( J , M ) = P ( M , J ) ENDDO ENDDO !$OMP END PARALLEL DO ! MPAR(1)=152 FILENAME = 'fort.12' CALL READSPECTRAL ( FILENAME , LNPMN , MNAUF , 1 , MLEVEL ,( / 152 / ), AK , BK ) ! goto 111 CALL SET99 ( WSAVE , IFAX , mauf ) CALL PHGCUT ( LNPMN , PS , WSAVE , IFAX , Z , & MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , 1 ) CALL STATIS ( MAXL , MAXB , 1 , EXP ( PS ), RMS , MW , SIG ) WRITE ( * , '(A12,3F12.4)' ) 'STATISTICS: ' , RMS , MW , SIG DO J = 1 , NGJ / 2 CALL SET99 ( GWSAVE ( 1 , J ), GIFAX ( 1 , J ), MLAT ( J )) ENDDO CALL PHGR213 ( LNPMN , HILF , GWSAVE , GIFAX , P , MLAT , MNAUF , NGI , NGJ , 1 ) PSG = HILF CALL GRPH213 ( LNPMN2 , PSG , GWSAVE , GIFAX , PP , WEIGHT , MLAT , & MNAUF , NGI , NGJ , 1 ) CALL PHGR213 ( LNPMN2 , HILF , GWSAVE , GIFAX , P , MLAT , MNAUF , NGI , NGJ , 1 ) HILF = exp ( PSG ) - exp ( HILF ) CALL STATIS ( NGI , 1 , 1 , HILF , RMS , MW , SIG ) WRITE ( * , '(A12,3F11.4)' ) 'STATISTICS: ' , RMS , MW , SIG PSG = EXP ( PSG ) HILF = PSG CALL STATIS ( NGI , 1 , 1 , HILF , RMS , MW , SIG ) WRITE ( * , '(A12,3F11.4)' ) 'STATISTICS: ' , RMS , MW , SIG 111 FILENAME = 'fort.10' CALL READSPECTRAL ( FILENAME , & XMN , MNAUF , 2 * MLEVEL , MLEVEL ,( / 131 , 132 / ), AK , BK ) !\tTransformieren des Windes auf das Gaussgitter CALL PHGR213 ( XMN , UGVG , GWSAVE , GIFAX , P , MLAT , MNAUF , NGI , NGJ , 2 * MLEVEL ) DO K = 1 , MLEVEL ! North Pole CALL JSPPOLE ( XMN (:, K ), 1 , MNAUF ,. TRUE ., CUA (:,:, K )) CALL JSPPOLE ( XMN (:, MLEVEL + K ), 1 , MNAUF ,. TRUE ., CVA (:,:, K )) ! South Pole CALL JSPPOLE ( XMN (:, K ), - 1 , MNAUF ,. TRUE ., CUA (:, 3 : 4 , K )) CALL JSPPOLE ( XMN (:, MLEVEL + K ), - 1 , MNAUF ,. TRUE ., CVA (:, 3 : 4 , K )) ENDDO DO K = 1 , 2 * MLEVEL IF ( MSMOOTH . ne . 0 ) CALL SPFILTER ( XMN (:, K ), MNAUF , MSMOOTH ) ENDDO CALL PHGCUT ( XMN , UV , WSAVE , IFAX , Z , & MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , 2 * MLEVEL ) 112 FILENAME = 'fort.13' CALL READSPECTRAL ( FILENAME , XMN , MNAUF , MLEVEL , MLEVEL ,( / 155 / ), AK , BK ) !\tTransformieren der horizontalen Divergenz auf das Gaussgitter CALL PHGR213 ( XMN , DG , GWSAVE , GIFAX , P , MLAT , MNAUF , NGI , NGJ , MLEVEL ) !\tBerechnung des Gradienten des Logarithmus des Bodendrucks ! auf dem Gaussgitter CALL PHGRAD ( LNPMN , DPSDL , DPSDM , GWSAVE , GIFAX , P , H , MLAT , MNAUF , NGI , NGJ , 1 ) !\tBerechnung der Vertikalgeschwindigkeit auf dem Gaussgitter CALL CONTGL ( HILF , DPSDL , DPSDM , DG , UGVG (:, 1 ), UGVG (:, MLEVEL + 1 ), & GBREITE , ETAG , MLAT , AK , BK , NGI , NGJ , MLEVEL ) CALL GRPH213 ( XMN , ETAG , GWSAVE , GIFAX , PP , WEIGHT , MLAT , & MNAUF , NGI , NGJ , MLEVEL ) DO K = 1 , MLEVEL IF ( MSMOOTH . ne . 0 ) CALL SPFILTER ( XMN (:, K ), MNAUF , MSMOOTH ) ENDDO CALL PHGCUT ( XMN , ETA , WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , MLEVEL ) CALL GRPH213 ( XMN , HILF , GWSAVE , GIFAX , PP , WEIGHT , MLAT , MNAUF , NGI , NGJ , 1 ) IF ( MSMOOTH . ne . 0 ) CALL SPFILTER ( XMN (:, 1 ), MNAUF , MSMOOTH ) CALL PHGCUT ( XMN , DPSDT , WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , 1 ) ! GOTO 114 CALL STATIS ( MAXL , MAXB , 1 , DPSDT , RMS , MW , SIG ) WRITE ( * , '(A12,3F11.4)' ) 'STATISTICS DPSDT: ' , RMS , MW , SIG IF ( MOMEGADIFF . ne . 0 ) THEN !\tBerechnung von Omega auf dem Gaussgitter CALL OMEGA ( PSG , DPSDL , DPSDM , DG , UGVG (:, 1 ), UGVG (:, MLEVEL + 1 ), & GBREITE , ETAG , MLAT , AK , BK , NGI , NGJ , MLEVEL ) CALL GRPH213 ( XMN , ETAG , GWSAVE , GIFAX , PP , WEIGHT , MLAT ,& MNAUF , NGI , NGJ , MLEVEL ) DO K = 1 , MLEVEL IF ( MSMOOTH . ne . 0 ) CALL SPFILTER ( XMN (:, K ), MNAUF , MSMOOTH ) ENDDO CALL PHGCUT ( XMN , OM , WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , MLEVEL ) ENDIF !MOMEGA CALL GRPH213 ( XMN , PSG , GWSAVE , GIFAX , PP , WEIGHT , MLAT , MNAUF , NGI , NGJ , 1 ) CALL PHGCUT ( XMN , PS , WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , 1 ) CALL STATIS ( MAXL , MAXB , 1 , PS , RMS , MW , SIG ) WRITE ( * , '(A12,3F11.4)' ) 'STATISTICS: ' , RMS , MW , SIG 114 DEALLOCATE ( HILF , PSG , DPSDL , DPSDM , ETAG , DG , LNPMN ) ! ALLOCATE (UV(MAXL, MAXB, 2*MLEVEL)) !\tCALL GRPH213(XMN,UGVG,GWSAVE,GIFAX,PP,WEIGHT,MLAT, ! *MNAUF,NGI,NGJ,2*MLEVEL) ! DO K=1,2*MLEVEL ! IF(MSMOOTH .ne. 0) CALL SPFILTER(XMN(:,K),MNAUF,MSMOOTH) ! ENDDO ! CALL PHGCUT(XMN,UV,WSAVE,IFAX,Z, ! *MNAUF,MNAUF,MAUF,MANF,MAXL,MAXB,2*MLEVEL) DEALLOCATE ( PP , P , UGVG , MLAT , GBREITE , WEIGHT , GWSAVE , XMN ) ! CALL ETAGAUSS(Z,WSAVE ! *,BREITE,UV,ETA,OM,PS, ! *MAUF,MAXB,MAXL,MANF,MNAUF,MLEVEL,MSMOOTH) ELSE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! READING OF PREPARED METEOROLOGICAL FIELDS ! ! ! ! THE FOLLOWING FIELDS ARE EXPECTED: ! ! ! ! UNIT 11: T,U,V (REGULAR GRID) ! ! UNIT 17: Q (REGULAR GRID) ! ! UNIT 13: D (REGULAR GRID) ! ! UNIT 12: LNSP (SPHERICAL HARMONICS) ! ! UNIT 14: SURFACE DATA (REGULAR GRID) ! ! UNIT 16: FLUX DATA (REGULAR GRID) ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ALLOCATE ( MLAT ( MAXB )) MLAT = MAXL ALLOCATE ( Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , 1 )) ALLOCATE ( DPSDL ( MAXL , MAXB ), DPSDM ( MAXL , MAXB )) ALLOCATE ( UV ( MAXL , MAXB , 2 * MLEVEL ), DIV ( MAXL , MAXB , MLEVEL )) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! READING OF SURFACE PRESSURE ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! FILENAME = 'fort.12' CALL READSPECTRAL ( FILENAME , LNPS , MNAUF , 1 , MLEVEL ,( / 152 / ), AK , BK ) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! READING OF U,V ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ! OPENING OF UNBLOCKED GRIB FILE ! FILENAME = 'fort.10' CALL READLATLON ( FILENAME , UV , MAXL , MAXB , 2 * MLEVEL ,( / 131 , 132 / )) PI = ACOS ( - 1.D0 ) DO J = 1 , MAXB BREITE ( J ) = SIN (( RLA1 - ( J - 1.D0 ) * ( RLA1 - RLA0 ) / ( MAXB - 1 )) * PI / 18 0.D0 ) ENDDO ! Avoid possible Pole problem ! IF(RLA0 .EQ. -90.0) BREITE(MAXB)=sin(-89.99*PI/180.d0) ! IF(RLA1 .EQ. 90.0) BREITE(1)=sin(89.99*PI/180.d0) DO K = 1 , 2 * MLEVEL DO J = 1 , MAXB COSB = SQRT ( 1.0 - ( BREITE ( J )) * ( BREITE ( J ))) IF ( RLA0 . EQ . - 9 0.0 . AND . J . EQ . MAXB . OR . & RLA1 . EQ . 9 0.0 . AND . J . EQ . 1 ) then UV (:, J , K ) = UV (:, J , K ) / 1.D6 else UV (:, J , K ) = UV (:, J , K ) * COSB endif ENDDO ENDDO !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! READING OF LNSP on grid ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! For debugging only ! FILENAME='LNSPG_G.20060330.600' ! INQUIRE(FILE=FILENAME,EXIST=EX) ! CALL READLATLON(FILENAME,QA, ! *MAXL,MAXB,1,1,(/152/)) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! READING OF DIVERGENCE ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! IF ( META . EQ . 0 . OR . METADIFF . EQ . 1 ) THEN FILENAME = 'fort.13' CALL READLATLON ( FILENAME , DIV , MAXL , MAXB , MLEVEL ,( / 155 / )) ENDIF !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! CALCULATION OF ETAPOINT --> TOTAL TIME DERIVATIVE OF ! ! ECMWF VERTICAL COORDINATE ETA MULTIPLIED BY DERIVATIVE ! ! OF PRESSURE IN ETA DIRECTION ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Initialisieren Legendretransformation !\tauf das LaT/LON Gitter ! Without Gaussian grid calculation Legendre Polynomials are calculated ! only for one latitude to save space DO J = 1 , MAXB CALL PLGNFA ( MNAUF , BREITE ( J ), Z ( 0 , 1 )) CALL PHGCUT ( LNPS , PS (:, J , 1 ), WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , 1 , 1 ) IF ( META . EQ . 0 . or . METADIFF . EQ . 1 ) THEN CALL PHGRACUT ( LNPS , DPSDL (:, J ), DPSDM (:, J ), WSAVE , IFAX , Z , H , MAUF , & MNAUF , MAXL , 1 , MANF , 1 ) ENDIF ENDDO PS = EXP ( PS ) ! For debugging only CALL STATIS ( MAXL , MAXB , 1 , PS (:,:, 1 ), RMS , MW , SIG ) WRITE ( * , '(A12,3F11.4)' ) 'STATISTICS: ' , RMS , MW , SIG IF ( MOMEGADIFF . ne . 0 ) THEN CALL OMEGA ( PS , DPSDL , DPSDM , DIV , UV (:,:, 1 ), UV (:,:, MLEVEL + 1 ), & BREITE , OM , MLAT , AK , BK , MAXL * MAXB , MAXB , MLEVEL ) ENDIF IF ( META . EQ . 0 . OR . METADIFF . ne . 0 ) THEN DPSDT = PS CALL CONTGL ( DPSDT , DPSDL , DPSDM , DIV , UV (:,:, 1 ), UV (:,:, MLEVEL + 1 ), & BREITE , ETA , MLAT , AK , BK , MAXL * MAXB , MAXB , MLEVEL ) ENDIF ENDIF ! MGAUSS ! CREATE FILE VERTICAL.EC NEEDED BY POP MODEL open ( 21 , file = 'VERTICAL.EC' ) write ( 21 , '(a)' ) write ( 21 , '(a)' ) 'VERTICAL DISCRETIZATION OF POP MODEL' write ( 21 , '(a)' ) write ( 21 , '(i3,a)' ) MLEVEL , ' number of layers' write ( 21 , '(a)' ) write ( 21 , '(a)' ) '* A(NLEV+1)' write ( 21 , '(a)' ) do 205 i = 1 , MLEVEL + 1 205 write ( 21 , '(f18.12)' ) AK ( I ) write ( 21 , '(a)' ) write ( 21 , '(a)' ) '* B(NLEV+1)' write ( 21 , '(a)' ) do 210 i = 1 , MLEVEL + 1 210 write ( 21 , '(f18.12)' ) BK ( I ) close ( 21 ) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! READING OF OMEGA ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! IF ( MOMEGA . NE . 0 ) THEN ALLOCATE ( OMR ( MAXL , MAXB , MLEVEL )) FILENAME = 'fort.19' CALL READLATLON ( FILENAME , OMR , MAXL , MAXB , MLEVEL ,( / 135 / )) IF ( MOMEGADIFF . NE . 0 ) THEN DO K = 1 , MLEVEL CALL STATIS ( MAXL , MAXB , 1 , ETA (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F11.4)' ) ' ETA: ' , K , RMS , MW , SIG CALL STATIS ( MAXL , MAXB , 1 , OMR (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F11.4)' ) ' OMEGA: ' , K , RMS , MW , SIG CALL STATIS ( MAXL , MAXB , 1 , OM (:,:, K ) - OMR (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F11.4)' ) 'OMEGA DIFF: ' , K , RMS , MW , SIG ENDDO ENDIF ENDIF !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! READING OF ETA ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! IF ( META . NE . 0 ) THEN ALLOCATE ( ETAR ( MAXL , MAXB , MLEVEL )) P00 = 10132 5. FILENAME = 'fort.21' CALL READLATLON ( FILENAME , ETAR , MAXL , MAXB , MLEVEL ,( / 77 / )) if ( MDPDETA . EQ . 1 ) THEN DO K = 1 , MLEVEL DAK = AK ( K + 1 ) - AK ( K ) DBK = BK ( K + 1 ) - BK ( K ) DO J = 1 , MAXB DO I = 1 , MAXL ETAR ( I , J , K ) = 2 * ETAR ( I , J , K ) * PS ( I , J , 1 ) * ( DAK / PS ( I , J , 1 ) + DBK ) / & ( DAK / P00 + DBK ) IF ( K . GT . 1 ) ETAR ( I , J , K ) = ETAR ( I , J , K ) - ETAR ( I , J , K - 1 ) ENDDO ENDDO ENDDO ENDIF IF ( METADIFF . NE . 0 ) THEN DO K = 1 , MLEVEL CALL STATIS ( MAXL , MAXB , 1 , ETA (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F11.4)' ) ' ETA: ' , K , RMS , MW , SIG CALL STATIS ( MAXL , MAXB , 1 , ETAR (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F11.4)' ) ' ETAR: ' , K , RMS , MW , SIG CALL STATIS ( MAXL , MAXB , 1 , ETA (:,:, K ) - ETAR (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F11.4)' ) 'ETA DIFF: ' , K , RMS , MW , SIG ENDDO DO K = 1 , MLEVEL WRITE ( * , '(I3,2F11.4)' ) K , ETA ( 1 , MAXB / 2 , K ), ETAR ( 1 , MAXB / 2 , K ) ENDDO ELSE ETA = ETAR ENDIF ENDIF ALLOCATE ( T ( MAXL , MAXB , MLEVEL )) ALLOCATE ( QA ( MAXL , MAXB , MLEVEL )) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! READING OF T ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ! OPENING OF UNBLOCKED GRIB FILE ! FILENAME = 'fort.11' CALL READLATLON ( FILENAME , T , MAXL , MAXB , MLEVEL ,( / 130 / )) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! READING OF SPECIFIC HUMIDITY ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! FILENAME = 'fort.17' CALL READLATLON ( FILENAME , QA , MAXL , MAXB , MLEVEL ,( / 133 / )) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! TEST READING OF UV from MARS (debug only) ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! FILENAME='fort.22' ! CALL READLATLON(FILENAME,UV2,MAXL,MAXB,2*MLEVEL,2,(/131,132/)) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! WRITE MODEL LEVEL DATA TO fort.15 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! Calculation of etadot in CONTGL needed scaled winds (ucosphi,vcosphi) ! Now we are transforming back to the usual winds. DO K = 1 , MLEVEL DO J = 2 , MAXB - 1 COSB = SQRT ( 1.0 - ( BREITE ( J )) * ( BREITE ( J ))) UV (:, J , K ) = UV (:, J , K ) / COSB UV (:, J , MLEVEL + K ) = UV (:, J , MLEVEL + K ) / COSB ENDDO ! special treatment for poles, if necessary. DO J = 1 , MAXB , MAXB - 1 COSB = SQRT ( 1.0 - ( BREITE ( J )) * ( BREITE ( J ))) if ( 1.0 - BREITE ( J ) * BREITE ( J ) . gt . 0 . OR . MGAUSS . NE . 1 ) then IF ( RLA0 . EQ . - 9 0.0 . AND . J . EQ . MAXB . OR . & RLA1 . EQ . 9 0.0 . AND . J . EQ . 1 ) then UV (:, J , K ) = UV (:, J , K ) * 1.D6 UV (:, J , MLEVEL + K ) = UV (:, J , MLEVEL + K ) * 1.D6 else UV (:, J , K ) = UV (:, J , K ) / COSB UV (:, J , MLEVEL + K ) = UV (:, J , MLEVEL + K ) / COSB endif else HILFUV ( 5 : MAXL ,:) = 0. HILFUV ( 1 : 2 ,:) = 0. IF ( J . EQ . MAXB ) THEN ! Suedpol HILFUV ( 3 : 4 , 1 ) = CUA (:, 4 , K ) HILFUV ( 3 : 4 , 2 ) = CVA (:, 4 , K ) ELSE ! Nordpol HILFUV ( 3 : 4 , 1 ) = CUA (:, 2 , K ) HILFUV ( 3 : 4 , 2 ) = CVA (:, 2 , K ) ENDIF CALL RFOURTR ( HILFUV (:, 1 ), WSAVE , IFAX , MAXL / 2 - 1 , MAXL , - 1 ) DO I = 0 , MAXL - 1 IF ( MANF + I . LE . MAXL ) THEN UV ( I + 1 , J , K ) = HILFUV ( MANF + I , 1 ) ELSE UV ( I + 1 , J , K ) = HILFUV ( MANF - MAXL + I , 1 ) ENDIF ENDDO CALL RFOURTR ( HILFUV (:, 2 ), WSAVE , IFAX , MAXL / 2 - 1 , MAXL , - 1 ) DO I = 0 , MAXL - 1 IF ( MANF + I . LE . MAXL ) THEN UV ( I + 1 , J , MLEVEL + K ) = HILFUV ( MANF + I , 2 ) ELSE UV ( I + 1 , J , MLEVEL + K ) = HILFUV ( MANF - MAXL + I , 2 ) ENDIF ENDDO endif ENDDO ENDDO ! open output file call grib_open_file ( LUNIT , 'fort.15' , 'w' ) ! we use temperature on lat/lon on model levels as template for model level data LUNIT2 = 0 call grib_open_file ( LUNIT2 , 'fort.11' , 'r' ) call grib_new_from_file ( LUNIT2 , igrib ( 1 ), iret ) call grib_close_file ( LUNIT2 ) CALL WRITELATLON ( LUNIT , igrib ( 1 ), ogrib , UV (:,:, 1 ), MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 131 / )) CALL WRITELATLON ( LUNIT , igrib ( 1 ), ogrib , UV (:,:, MLEVEL + 1 ), MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 132 / )) IF ( MDPDETA . ne . 1 . AND . MGAUSS . EQ . 0 . and . META . eq . 1 ) THEN CALL WRITELATLON ( LUNIT , igrib ( 1 ), ogrib , ETA , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 77 / )) ELSE CALL WRITELATLON ( LUNIT , igrib ( 1 ), ogrib , ETA , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / METAPAR / )) ENDIF CALL WRITELATLON ( LUNIT , igrib ( 1 ), ogrib , T , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 130 / )) CALL WRITELATLON ( LUNIT , igrib ( 1 ), ogrib , PS , MAXL , MAXB , 1 , '1' , 1 ,( / 134 / )) call grib_set ( igrib ( 1 ), \"levelType\" , \"ml\" ) call grib_set ( igrib ( 1 ), \"typeOfLevel\" , \"hybrid\" ) CALL WRITELATLON ( LUNIT , igrib ( 1 ), ogrib , QA , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 133 / )) IF ( MOMEGA . EQ . 1 ) THEN call grib_open_file ( LUNIT2 , 'fort.25' , 'w' ) CALL WRITELATLON ( LUNIT2 , igrib ( 1 ), ogrib , OMR , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 135 / )) IF ( MOMEGADIFF . EQ . 1 ) THEN CALL WRITELATLON ( LUNIT2 , igrib ( 1 ), ogrib , DPSDT , MAXL , MAXB , 1 , '1' , 1 ,( / 158 / )) OM = OM - OMR CALL WRITELATLON ( LUNIT2 , igrib ( 1 ), ogrib , OM , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 001 / )) call grib_close_file ( LUNIT2 ) ENDIF ENDIF IF ( META . EQ . 1 . and . METADIFF . EQ . 1 ) THEN call grib_open_file ( LUNIT2 , 'fort.26' , 'w' ) CALL WRITELATLON ( LUNIT2 , igrib ( 1 ), ogrib , ETAR , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 135 / )) ! IF(MOMEGADIFF .EQ. 1) THEN CALL WRITELATLON ( LUNIT2 , igrib ( 1 ), ogrib , DPSDT , MAXL , MAXB , 1 , '1' , 1 ,( / 158 / )) OM = ETA - ETAR CALL WRITELATLON ( LUNIT2 , igrib ( 1 ), ogrib , OM , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 001 / )) call grib_close_file ( LUNIT2 ) ! ENDIF ENDIF call grib_close_file ( LUNIT ) 2000 STOP 'SUCCESSFULLY FINISHED CONVERT_PRE: CONGRATULATIONS' 3000 STOP 'ROUTINE CONVERT_PRE: ERROR' 9999 stop 'ROUTINE CONVERT_PRE: ERROR' END !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! INTEGER FUNCTION IA ( FIELD1 , NI , NJ , NK , G ) IMPLICIT NONE INTEGER NI , NJ , NK , I , J , K REAL FIELD1 ( NI , NJ , NK ) REAL G REAL RMIN , RMAX , XMAX , A , A1 , A2 RMAX = FIELD1 ( 1 , 1 , 1 ) RMIN = FIELD1 ( 1 , 1 , 1 ) DO 100 K = 1 , NK DO 100 J = 1 , NJ DO 100 I = 1 , NI IF ( FIELD1 ( I , J , K ). GT . RMAX ) RMAX = FIELD1 ( I , J , K ) IF ( FIELD1 ( I , J , K ). LT . RMIN ) RMIN = FIELD1 ( I , J , K ) 100 CONTINUE IF ( ABS ( RMIN ). GT . RMAX . OR . ABS ( RMIN ). EQ . RMAX ) THEN XMAX = ABS ( RMIN ) ELSE XMAX = RMAX ENDIF IF ( XMAX . EQ . 0 ) THEN IA = 0 RETURN ENDIF A1 = LOG10 (( G / 1 0.d0 ) / XMAX ) A2 = LOG10 ( G / XMAX ) IF ( A1 . gt . A2 ) THEN A = A2 ELSE A = A1 ENDIF IF ( A . GT . 0 ) IA = INT ( A ) IF ( A . LT . 0 ) IA = INT ( A - 1.0 ) RETURN END SUBROUTINE STATIS ( NI , NJ , NK , PHI , RMS , MW , SIG ) IMPLICIT REAL ( A - H , O - Z ) REAL PHI ( NI , NJ , NK ), SIG , MW , RMS , P N = NI * NJ * NK RMS = 0. MW = 0. DO 10 I = 1 , NI DO 10 J = 1 , NJ DO 10 K = 1 , NK P = PHI ( I , J , K ) RMS = RMS + P * P MW = MW + P 10 CONTINUE RMS = SQRT ( RMS / N ) MW = MW / N IF ( RMS * RMS - MW * MW . LT . 0. ) THEN SIG = 0.0 ELSE SIG = SQRT ( RMS * RMS - MW * MW ) ENDIF RETURN END","tags":"","loc":"sourcefile/preconvert.f90.html","title":"preconvert.f90 – Flex_extract: Calculation of etadot"},{"text":"function IA(FIELD1, NI, NJ, NK, G) Arguments Type Intent Optional Attributes Name real :: FIELD1 (NI,NJ,NK) integer :: NI integer :: NJ integer :: NK real :: G Return Value integer","tags":"","loc":"proc/ia.html","title":"IA – Flex_extract: Calculation of etadot"},{"text":"subroutine STATIS(NI, NJ, NK, PHI, RMS, MW, SIG) Arguments Type Intent Optional Attributes Name integer :: NI integer :: NJ integer :: NK real :: PHI (NI,NJ,NK) real :: RMS real :: MW real :: SIG Called By proc~~statis~~CalledByGraph proc~statis STATIS program~preconvert PRECONVERT program~preconvert->proc~statis Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module.","tags":"","loc":"proc/statis.html","title":"STATIS – Flex_extract: Calculation of etadot"},{"text":"Used By module~~phtogr~~UsedByGraph module~phtogr PHTOGR module~grtoph GRTOPH module~phtogr->module~grtoph program~preconvert PRECONVERT module~phtogr->program~preconvert module~grtoph->program~preconvert Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a parent (sub)module to the submodule which is\n descended from it. Dashed arrows point from a module being used to the\n module or program unit using it.","tags":"","loc":"module/phtogr.html","title":"PHTOGR – Flex_extract: Calculation of etadot"},{"text":"Uses: PHTOGR module~~grtoph~~UsesGraph module~grtoph GRTOPH module~phtogr PHTOGR module~phtogr->module~grtoph Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a parent (sub)module to the submodule which is\n descended from it. Dashed arrows point from a module being used to the\n module or program unit using it. Used By module~~grtoph~~UsedByGraph module~grtoph GRTOPH program~preconvert PRECONVERT module~grtoph->program~preconvert Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a parent (sub)module to the submodule which is\n descended from it. Dashed arrows point from a module being used to the\n module or program unit using it.","tags":"","loc":"module/grtoph.html","title":"GRTOPH – Flex_extract: Calculation of etadot"},{"text":"Used By module~~rwgrib2~~UsedByGraph module~rwgrib2 RWGRIB2 program~preconvert PRECONVERT module~rwgrib2->program~preconvert Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a parent (sub)module to the submodule which is\n descended from it. Dashed arrows point from a module being used to the\n module or program unit using it.","tags":"","loc":"module/rwgrib2.html","title":"RWGRIB2 – Flex_extract: Calculation of etadot"},{"text":"Uses: PHTOGR GRTOPH FTRAFO RWGRIB2 GRIB_API program~~preconvert~~UsesGraph program~preconvert PRECONVERT module~rwgrib2 RWGRIB2 module~rwgrib2->program~preconvert module~grtoph GRTOPH module~grtoph->program~preconvert GRIB_API GRIB_API GRIB_API->program~preconvert module~phtogr PHTOGR module~phtogr->program~preconvert module~phtogr->module~grtoph FTRAFO FTRAFO FTRAFO->program~preconvert Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a parent (sub)module to the submodule which is\n descended from it. Dashed arrows point from a module being used to the\n module or program unit using it. Calls program~~preconvert~~CallsGraph program~preconvert PRECONVERT phgracut phgracut program~preconvert->phgracut v v program~preconvert->v mars mars program~preconvert->mars d d program~preconvert->d q q program~preconvert->q phgrad phgrad program~preconvert->phgrad posnam posnam program~preconvert->posnam grib_get grib_get program~preconvert->grib_get grib_set grib_set program~preconvert->grib_set grib_new_from_file grib_new_from_file program~preconvert->grib_new_from_file lnsp lnsp program~preconvert->lnsp grib_open_file grib_open_file program~preconvert->grib_open_file omega omega program~preconvert->omega file file program~preconvert->file winds winds program~preconvert->winds jsppole jsppole program~preconvert->jsppole proc~statis STATIS program~preconvert->proc~statis spfilter spfilter program~preconvert->spfilter contgl contgl program~preconvert->contgl grib_close_file grib_close_file program~preconvert->grib_close_file set99 set99 program~preconvert->set99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module.","tags":"","loc":"program/preconvert.html","title":"PRECONVERT – Flex_extract: Calculation of etadot"}]} \ No newline at end of file diff --git a/Documentation/FORD/V5/sanitise.sh b/Documentation/FORD/V5/sanitise.sh new file mode 100755 index 0000000000000000000000000000000000000000..562ec6541d29766bcfc229aa9ff39ec40e737036 --- /dev/null +++ b/Documentation/FORD/V5/sanitise.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +# Sanitise the output of FORD so that it uses a local copy of the CC-BY img +# rather than downloading it, and comment out the mathjax.js library being +# fetched (from mathjax.com) for data protection reasons. + +# Copyright Petra Seibert, 2019 +# SPDX-License-Identifier: MIT-0 + +doc=`grep output_dir fmw.md|cut -d\ -f2` +old='https://i.creativecommons.org/l/by/4.0/80x15.png' +new='80x15.png' +for f in `find $doc -type f -exec grep -l ${old} {} \; ` ; do + + depth=`echo $f | tr -cd '/' | wc -c` + depth=$(( depth - 2)) + sub=$new + while (( --depth >= 0 )); do + sub='../'$sub + done + sed -i "s=${old}=${sub}=g" $f + echo 'remove cc link in ' $f + +done +searchstring='https://cdn.mathjax.org' +old='<script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>' +new='<!-- <script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> -->' +for f in `find $doc -type f -exec grep -l ${searchstring} {} \; ` ; do + + sed -i "s+${old}+${new}+g" $f + echo 'comment out mathjax link in ' $f + +done + diff --git a/Documentation/FORD/V5/test.tgz b/Documentation/FORD/V5/test.tgz new file mode 100644 index 0000000000000000000000000000000000000000..00a99d074ff64383c1a13e18d772c84a2ef56074 Binary files /dev/null and b/Documentation/FORD/V5/test.tgz differ diff --git a/Documentation/FORD/V5/Doc_original/css/bootstrap.css b/Documentation/FORD/V6/Doc/css/bootstrap.css similarity index 100% rename from Documentation/FORD/V5/Doc_original/css/bootstrap.css rename to Documentation/FORD/V6/Doc/css/bootstrap.css diff --git a/Documentation/FORD/V5/Doc_original/css/bootstrap.min.css b/Documentation/FORD/V6/Doc/css/bootstrap.min.css similarity index 100% rename from Documentation/FORD/V5/Doc_original/css/bootstrap.min.css rename to Documentation/FORD/V6/Doc/css/bootstrap.min.css diff --git a/Documentation/FORD/V5/Doc_original/css/font-awesome.css b/Documentation/FORD/V6/Doc/css/font-awesome.css similarity index 100% rename from Documentation/FORD/V5/Doc_original/css/font-awesome.css rename to Documentation/FORD/V6/Doc/css/font-awesome.css diff --git a/Documentation/FORD/V5/Doc_original/css/font-awesome.min.css b/Documentation/FORD/V6/Doc/css/font-awesome.min.css similarity index 100% rename from Documentation/FORD/V5/Doc_original/css/font-awesome.min.css rename to Documentation/FORD/V6/Doc/css/font-awesome.min.css diff --git a/Documentation/FORD/V5/Doc_original/css/local.css b/Documentation/FORD/V6/Doc/css/local.css similarity index 72% rename from Documentation/FORD/V5/Doc_original/css/local.css rename to Documentation/FORD/V6/Doc/css/local.css index c9a27914f4b008da62efe33d02fcafb6c4a20ce9..8ab50bcaafa5878b1fc5e2440885d87aa94a70e9 100644 --- a/Documentation/FORD/V5/Doc_original/css/local.css +++ b/Documentation/FORD/V6/Doc/css/local.css @@ -12,6 +12,13 @@ body { white-space:nowrap; } + :target:before { + content:""; + display:block; + height:60px; + margin:-60px 0 0; + } + ol.hierarchy { min-height: 40px; background-color: #f5f5f5; @@ -194,4 +201,82 @@ body { .gitter-chat-embed { z-index: 100000; } - \ No newline at end of file + +table.graph { + text-align: center; +} + + +.graph td.root { + border:2px solid black; + padding:10px; +} + +.graph td.triangle-right:after { + content: ""; + display: block; + border-top: 7px solid transparent; + border-bottom: 7px solid transparent; + border-left: 7px solid black; +} + +.graph td.triangle-left:after { + content: ""; + display: block; + border-top: 7px solid transparent; + border-bottom: 7px solid transparent; + border-right: 7px solid black; +} + +.graph td.node { + color: white; + padding:10px; + border-style: solid; + border-width: 3px 0px 3px 0px; + border-color: white; +} + +.graph td.node a{ + color: white; +} + +.graph td.dashedText, +.graph td.solidText { + padding: 0px 10px 0px 10px; + min-width: 40px; + color: black; + border-color: black; +} + +.graph td.dashedText { + border-bottom-style: dashed; +} + +.graph td.solidText { + border-bottom-style: solid; +} + +.graph td.dashedBottom, +.graph td.dashedTop, +.graph td.solidTop, +.graph td.solidBottom { + min-width: 40px; + color: transparent; + border-color: black; +} + +.graph td.dashedBottom { + border-bottom-style: dashed; +} + +.graph td.dashedTop { + border-top-style: dashed; +} + +.graph td.solidBottom { + border-bottom-style: solid; +} + +.graph td.solidTop { + border-top-style: solid; +} diff --git a/Documentation/FORD/V6/Doc/css/pygments.css b/Documentation/FORD/V6/Doc/css/pygments.css new file mode 100644 index 0000000000000000000000000000000000000000..4a3a8d85707d7cbb6f43971074a269de9d8f4d68 --- /dev/null +++ b/Documentation/FORD/V6/Doc/css/pygments.css @@ -0,0 +1,61 @@ +pre .hll { background-color: #ffffcc } +pre .c { color: #408080; font-style: italic } /* Comment */ +pre .err { border: 1px solid #FF0000 } /* Error */ +pre .k { color: #008000; font-weight: bold } /* Keyword */ +pre .o { color: #666666 } /* Operator */ +pre .cm { color: #408080; font-style: italic } /* Comment.Multiline */ +pre .cp { color: #BC7A00 } /* Comment.Preproc */ +pre .c1 { color: #408080; font-style: italic } /* Comment.Single */ +pre .cs { color: #408080; font-style: italic } /* Comment.Special */ +pre .gd { color: #A00000 } /* Generic.Deleted */ +pre .ge { font-style: italic } /* Generic.Emph */ +pre .gr { color: #FF0000 } /* Generic.Error */ +pre .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +pre .gi { color: #00A000 } /* Generic.Inserted */ +pre .go { color: #888888 } /* Generic.Output */ +pre .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ +pre .gs { font-weight: bold } /* Generic.Strong */ +pre .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +pre .gt { color: #0044DD } /* Generic.Traceback */ +pre .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ +pre .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ +pre .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ +pre .kp { color: #008000 } /* Keyword.Pseudo */ +pre .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ +pre .kt { color: #B00040 } /* Keyword.Type */ +pre .m { color: #666666 } /* Literal.Number */ +pre .s { color: #BA2121 } /* Literal.String */ +pre .na { color: #7D9029 } /* Name.Attribute */ +pre .nb { color: #008000 } /* Name.Builtin */ +pre .nc { color: #0000FF; font-weight: bold } /* Name.Class */ +pre .no { color: #880000 } /* Name.Constant */ +pre .nd { color: #AA22FF } /* Name.Decorator */ +pre .ni { color: #999999; font-weight: bold } /* Name.Entity */ +pre .ne { color: #D2413A; font-weight: bold } /* Name.Exception */ +pre .nf { color: #0000FF } /* Name.Function */ +pre .nl { color: #A0A000 } /* Name.Label */ +pre .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ +pre .nt { color: #008000; font-weight: bold } /* Name.Tag */ +pre .nv { color: #19177C } /* Name.Variable */ +pre .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ +pre .w { color: #bbbbbb } /* Text.Whitespace */ +pre .mf { color: #666666 } /* Literal.Number.Float */ +pre .mh { color: #666666 } /* Literal.Number.Hex */ +pre .mi { color: #666666 } /* Literal.Number.Integer */ +pre .mo { color: #666666 } /* Literal.Number.Oct */ +pre .sb { color: #BA2121 } /* Literal.String.Backtick */ +pre .sc { color: #BA2121 } /* Literal.String.Char */ +pre .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ +pre .s2 { color: #BA2121 } /* Literal.String.Double */ +pre .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */ +pre .sh { color: #BA2121 } /* Literal.String.Heredoc */ +pre .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */ +pre .sx { color: #008000 } /* Literal.String.Other */ +pre .sr { color: #BB6688 } /* Literal.String.Regex */ +pre .s1 { color: #BA2121 } /* Literal.String.Single */ +pre .ss { color: #19177C } /* Literal.String.Symbol */ +pre .bp { color: #008000 } /* Name.Builtin.Pseudo */ +pre .vc { color: #19177C } /* Name.Variable.Class */ +pre .vg { color: #19177C } /* Name.Variable.Global */ +pre .vi { color: #19177C } /* Name.Variable.Instance */ +pre .il { color: #666666 } /* Literal.Number.Integer.Long */ diff --git a/Documentation/FORD/V6/Doc/favicon.png b/Documentation/FORD/V6/Doc/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..d697f4d7acd14cae987bdb7f715a764060025739 Binary files /dev/null and b/Documentation/FORD/V6/Doc/favicon.png differ diff --git a/Documentation/FORD/V5/Doc_original/fonts/fontawesome-webfont.eot b/Documentation/FORD/V6/Doc/fonts/fontawesome-webfont.eot similarity index 100% rename from Documentation/FORD/V5/Doc_original/fonts/fontawesome-webfont.eot rename to Documentation/FORD/V6/Doc/fonts/fontawesome-webfont.eot diff --git a/Documentation/FORD/V5/Doc_original/fonts/fontawesome-webfont.svg b/Documentation/FORD/V6/Doc/fonts/fontawesome-webfont.svg similarity index 100% rename from Documentation/FORD/V5/Doc_original/fonts/fontawesome-webfont.svg rename to Documentation/FORD/V6/Doc/fonts/fontawesome-webfont.svg diff --git a/Documentation/FORD/V5/Doc_original/fonts/fontawesome-webfont.ttf b/Documentation/FORD/V6/Doc/fonts/fontawesome-webfont.ttf similarity index 100% rename from Documentation/FORD/V5/Doc_original/fonts/fontawesome-webfont.ttf rename to Documentation/FORD/V6/Doc/fonts/fontawesome-webfont.ttf diff --git a/Documentation/FORD/V5/Doc_original/fonts/fontawesome-webfont.woff b/Documentation/FORD/V6/Doc/fonts/fontawesome-webfont.woff similarity index 100% rename from Documentation/FORD/V5/Doc_original/fonts/fontawesome-webfont.woff rename to Documentation/FORD/V6/Doc/fonts/fontawesome-webfont.woff diff --git a/Documentation/FORD/V5/Doc_original/fonts/glyphicons-halflings-regular.eot b/Documentation/FORD/V6/Doc/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from Documentation/FORD/V5/Doc_original/fonts/glyphicons-halflings-regular.eot rename to Documentation/FORD/V6/Doc/fonts/glyphicons-halflings-regular.eot diff --git a/Documentation/FORD/V5/Doc_original/fonts/glyphicons-halflings-regular.svg b/Documentation/FORD/V6/Doc/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from Documentation/FORD/V5/Doc_original/fonts/glyphicons-halflings-regular.svg rename to Documentation/FORD/V6/Doc/fonts/glyphicons-halflings-regular.svg diff --git a/Documentation/FORD/V5/Doc_original/fonts/glyphicons-halflings-regular.ttf b/Documentation/FORD/V6/Doc/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from Documentation/FORD/V5/Doc_original/fonts/glyphicons-halflings-regular.ttf rename to Documentation/FORD/V6/Doc/fonts/glyphicons-halflings-regular.ttf diff --git a/Documentation/FORD/V5/Doc_original/fonts/glyphicons-halflings-regular.woff b/Documentation/FORD/V6/Doc/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from Documentation/FORD/V5/Doc_original/fonts/glyphicons-halflings-regular.woff rename to Documentation/FORD/V6/Doc/fonts/glyphicons-halflings-regular.woff diff --git a/Documentation/FORD/V5/Doc_original/index.html b/Documentation/FORD/V6/Doc/index.html similarity index 63% rename from Documentation/FORD/V5/Doc_original/index.html rename to Documentation/FORD/V6/Doc/index.html index 0d3b5d55386587e1fd45f226a06fd43fbe2a4174..7e79e2d16a4ff6cd0d8e851dbf8e56bc79e80709 100644 --- a/Documentation/FORD/V5/Doc_original/index.html +++ b/Documentation/FORD/V6/Doc/index.html @@ -4,10 +4,10 @@ <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> - - <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> - <meta name="author" content="Leopold Haimberger" > + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > <link rel="icon" href="./favicon.png"> <title> Flex_extract: Calculation of etadot </title> @@ -17,6 +17,9 @@ <link href="./css/font-awesome.min.css" rel="stylesheet"> <link href="./css/local.css" rel="stylesheet"> + <link href="./tipuesearch/tipuesearch.css" rel="stylesheet"> + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> <!--[if lt IE 9]> @@ -27,13 +30,6 @@ <script src="./js/jquery-2.1.3.min.js"></script> <script src="./js/svg-pan-zoom.min.js"></script> - - <script src="./tipuesearch/tipuesearch_content.js"></script> - <link href="./tipuesearch/tipuesearch.css" rel="stylesheet"> - <script src="./tipuesearch/tipuesearch_set.js"></script> - <script src="./tipuesearch/tipuesearch.js"></script> - - </head> <body> @@ -48,37 +44,41 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="./index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> + <a class="navbar-brand" href="./index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> - + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" - aria-expanded="false">Contents <span class="caret"></span></a> - <ul class="dropdown-menu"> + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + <li><a href="./lists/files.html">Source Files</a></li> - - + + + <li><a href="./lists/modules.html">Modules</a></li> - + <li><a href="./lists/procedures.html">Procedures</a></li> - - - + + + <li><a href="./program/preconvert.html">Program</a></li> - + </ul> </li> + <li class="visible-xs hidden-sm visible-lg"><a href="./lists/files.html">Source Files</a></li> + <li class="visible-xs hidden-sm visible-lg"><a href="./lists/modules.html">Modules</a></li> @@ -110,6 +110,17 @@ <div class="jumbotron"> <p>Calculation of vertical velocity for FLEXPART</p> + <p> Find us on…</p> + <p> + + + + + <a class="btn btn-lg btn-primary" href="https://flexpart.eu/" role="button">The Web</a> + + + + <a class="btn btn-lg btn-danger" style="float:right" href="https://www.flexpart.eu/downloads" role="button">Download the Source</a> </p> </div> @@ -119,15 +130,19 @@ <div class="col-md-8"> <h1>Flex_extract: Calculation of etadot</h1> - + <p></p><div class="alert alert-info" role="alert"><h4>Note</h4><p>for this version +All code transferred to free form. +Some code cosmetics, should not have any effects</p></div> </div> <div class="col-md-4"> <div class="well"> <h2>Developer Info</h2> - <h4>Leopold Haimberger</h4> + <h4>Leopold Haimberger<sup>1</sup></h4> - <p>Univ. of Vienna, Dept. of Meteorology & Geophysics</p> + <img src="./fplogo.jpg" alt="Developer picture" class="img-thumbnail"> + + <p><sup>1</sup>Univ. of Vienna, Dept. of Meteorology & Geophysics</p> </div> </div> @@ -144,15 +159,23 @@ <ul> - <li><a href='./sourcefile/grphreal.f.html'>grphreal.f</a></li> + <li><a href='./sourcefile/ftrafo.f90.html'>ftrafo.f90</a></li> - <li><a href='./sourcefile/phgrreal.f.html'>phgrreal.f</a></li> + <li><a href='./sourcefile/grphreal.f90.html'>grphreal.f90</a></li> - <li><a href='./sourcefile/preconvert.f90.html'>preconvert.f90</a></li> + <li><a href='./sourcefile/phgrreal.f90.html'>phgrreal.f90</a></li> + + + + <li><a href='./sourcefile/posnam.f90.html'>posnam.f90</a></li> + + + + <li><a href='./sourcefile/preconvert_new.f90.html'>preconvert_new.f90</a></li> @@ -167,6 +190,10 @@ <ul> + <li><a href='./module/ftrafo.html'>FTRAFO</a></li> + + + <li><a href='./module/grtoph.html'>GRTOPH</a></li> @@ -187,11 +214,79 @@ <ul> + <li><a href='./proc/contgl.html'>CONTGL</a></li> + + + + <li><a href='./proc/dplgnd.html'>DPLGND</a></li> + + + + <li><a href='./proc/gauleg.html'>GAULEG</a></li> + + + + <li><a href='./proc/grph213.html'>GRPH213</a></li> + + + + <li><a href='./proc/grphsub.html'>GRPHSUB</a></li> + + + <li><a href='./proc/ia.html'>IA</a></li> - <li><a href='./proc/statis.html'>STATIS</a></li> + <li><a href='./proc/legtr.html'>LEGTR</a></li> + + + + <li><a href='./proc/lgtr213.html'>LGTR213</a></li> + + + + <li><a href='./proc/omega.html'>OMEGA</a></li> + + + + <li><a href='./proc/phgcut.html'>PHGCUT</a></li> + + + + <li><a href="./lists/procedures.html"><em>All procedures…</em></a></li> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + </ul> @@ -205,7 +300,8 @@ <footer> <div class="container"> <div class="row"> - <div class="col-xs-6 col-md-4"><p>© 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> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by @@ -213,7 +309,7 @@ </p> </div> - <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> + <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<sup>1</sup></p></div> </div> <br> </div> <!-- /container --> @@ -236,12 +332,17 @@ MathJax.Hub.Config({ TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, jax: ['input/TeX','input/MathML','output/HTML-CSS'], - extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'], - 'HTML-CSS': { - styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: '#000000 ! important'} } - } + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] }); </script> - <!-- <script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> --> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="./tipuesearch/tipuesearch_content.js"></script> + <script src="./tipuesearch/tipuesearch_set.js"></script> + <script src="./tipuesearch/tipuesearch.js"></script> + + </body> </html> \ No newline at end of file diff --git a/Documentation/FORD/V5/Doc_original/js/bootstrap.js b/Documentation/FORD/V6/Doc/js/bootstrap.js similarity index 100% rename from Documentation/FORD/V5/Doc_original/js/bootstrap.js rename to Documentation/FORD/V6/Doc/js/bootstrap.js diff --git a/Documentation/FORD/V5/Doc_original/js/bootstrap.min.js b/Documentation/FORD/V6/Doc/js/bootstrap.min.js similarity index 100% rename from Documentation/FORD/V5/Doc_original/js/bootstrap.min.js rename to Documentation/FORD/V6/Doc/js/bootstrap.min.js diff --git a/Documentation/FORD/V5/Doc_original/js/ie10-viewport-bug-workaround.js b/Documentation/FORD/V6/Doc/js/ie10-viewport-bug-workaround.js similarity index 100% rename from Documentation/FORD/V5/Doc_original/js/ie10-viewport-bug-workaround.js rename to Documentation/FORD/V6/Doc/js/ie10-viewport-bug-workaround.js diff --git a/Documentation/FORD/V5/Doc_original/js/jquery-2.1.3.min.js b/Documentation/FORD/V6/Doc/js/jquery-2.1.3.min.js similarity index 100% rename from Documentation/FORD/V5/Doc_original/js/jquery-2.1.3.min.js rename to Documentation/FORD/V6/Doc/js/jquery-2.1.3.min.js diff --git a/Documentation/FORD/V5/Doc_original/js/svg-pan-zoom.min.js b/Documentation/FORD/V6/Doc/js/svg-pan-zoom.min.js similarity index 100% rename from Documentation/FORD/V5/Doc_original/js/svg-pan-zoom.min.js rename to Documentation/FORD/V6/Doc/js/svg-pan-zoom.min.js diff --git a/Documentation/FORD/V5/Doc_original/lists/files.html b/Documentation/FORD/V6/Doc/lists/files.html similarity index 52% rename from Documentation/FORD/V5/Doc_original/lists/files.html rename to Documentation/FORD/V6/Doc/lists/files.html index f547f3ef6550bdd22a761bedc72a9a8cb57b8b23..692e31855c40a9aa646d74287fb739aab77a4c4b 100644 --- a/Documentation/FORD/V5/Doc_original/lists/files.html +++ b/Documentation/FORD/V6/Doc/lists/files.html @@ -4,10 +4,10 @@ <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> - - <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> - <meta name="author" content="Leopold Haimberger" > + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > <link rel="icon" href="../favicon.png"> <title> @@ -19,6 +19,9 @@ All Files – Flex_extract: Calculation of etadot <link href="../css/font-awesome.min.css" rel="stylesheet"> <link href="../css/local.css" rel="stylesheet"> + <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> <!--[if lt IE 9]> @@ -29,13 +32,6 @@ All Files – Flex_extract: Calculation of etadot <script src="../js/jquery-2.1.3.min.js"></script> <script src="../js/svg-pan-zoom.min.js"></script> - - <script src="../tipuesearch/tipuesearch_content.js"></script> - <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> - <script src="../tipuesearch/tipuesearch_set.js"></script> - <script src="../tipuesearch/tipuesearch.js"></script> - - </head> <body> @@ -50,37 +46,41 @@ All Files – Flex_extract: Calculation of etadot <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> - + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" - aria-expanded="false">Contents <span class="caret"></span></a> - <ul class="dropdown-menu"> + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + <li><a href="../lists/files.html">Source Files</a></li> - - + + + <li><a href="../lists/modules.html">Modules</a></li> - + <li><a href="../lists/procedures.html">Procedures</a></li> - - - + + + <li><a href="../program/preconvert.html">Program</a></li> - + </ul> </li> + <li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> + <li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> @@ -115,92 +115,111 @@ All Files – Flex_extract: Calculation of etadot <thead><tr><th>File</th><th>Description</th></tr></thead> <tbody> - <tr><td><a href='../sourcefile/grphreal.f.html'>grphreal.f</a></td><td></td></tr> + <tr><td><a href='../sourcefile/ftrafo.f90.html'>ftrafo.f90</a></td><td></td></tr> + + <tr><td><a href='../sourcefile/grphreal.f90.html'>grphreal.f90</a></td><td></td></tr> + + <tr><td><a href='../sourcefile/phgrreal.f90.html'>phgrreal.f90</a></td><td></td></tr> - <tr><td><a href='../sourcefile/phgrreal.f.html'>phgrreal.f</a></td><td></td></tr> + <tr><td><a href='../sourcefile/posnam.f90.html'>posnam.f90</a></td><td></td></tr> - <tr><td><a href='../sourcefile/preconvert.f90.html'>preconvert.f90</a></td><td></td></tr> + <tr><td><a href='../sourcefile/preconvert_new.f90.html'>preconvert_new.f90</a></td><td></td></tr> <tr><td><a href='../sourcefile/rwgrib2.f90.html'>rwGRIB2.f90</a></td><td></td></tr> </tbody></table> - - <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <!-- Generated by graphviz version 2.38.0 (20140413.2041) --> <!-- Title: file~~graph~~FileGraph Pages: 1 --> -<svg id="filegraphFileGraph" width="293pt" height="94pt" - viewBox="0.00 0.00 293.00 94.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> -<g id="file~~graph~~FileGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 90)"> +<svg id="filegraphFileGraph" width="330pt" height="130pt" + viewBox="0.00 0.00 330.00 129.74" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="file~~graph~~FileGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 125.743)"> <title>file~~graph~~FileGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-90 289,-90 289,4 -4,4"/> -<!-- sourcefile~preconvert.f90 --> -<g id="file~~graph~~FileGraph_node1" class="node"><title>sourcefile~preconvert.f90</title> -<g id="a_file~~graph~~FileGraph_node1"><a xlink:href="../sourcefile/preconvert.f90.html" xlink:title="preconvert.f90"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="285,-66 203,-66 203,-42 285,-42 285,-66"/> -<text text-anchor="middle" x="244" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">preconvert.f90</text> +<polygon fill="white" stroke="none" points="-4,4 -4,-125.743 326,-125.743 326,4 -4,4"/> +<!-- sourcefile~rwgrib2.f90 --> +<g id="file~~graph~~FileGraph_node1" class="node"><title>sourcefile~rwgrib2.f90</title> +<g id="a_file~~graph~~FileGraph_node1"><a xlink:href=".././sourcefile/rwgrib2.f90.html" xlink:title="rwGRIB2.f90"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="216,-121.743 143,-121.743 143,-97.7426 216,-97.7426 216,-121.743"/> +<text text-anchor="middle" x="179.5" y="-107.343" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">rwGRIB2.f90</text> </a> </g> </g> -<!-- sourcefile~phgrreal.f --> -<g id="file~~graph~~FileGraph_node2" class="node"><title>sourcefile~phgrreal.f</title> -<g id="a_file~~graph~~FileGraph_node2"><a xlink:href="../sourcefile/phgrreal.f.html" xlink:title="phgrreal.f"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="58,-86 3.55271e-15,-86 3.55271e-15,-62 58,-62 58,-86"/> -<text text-anchor="middle" x="29" y="-71.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">phgrreal.f</text> +<!-- sourcefile~preconvert_new.f90 --> +<g id="file~~graph~~FileGraph_node5" class="node"><title>sourcefile~preconvert_new.f90</title> +<g id="a_file~~graph~~FileGraph_node5"><a xlink:href=".././sourcefile/preconvert_new.f90.html" xlink:title="preconvert_new.f90"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="107,-58.7426 -7.10543e-15,-58.7426 -7.10543e-15,-34.7426 107,-34.7426 107,-58.7426"/> +<text text-anchor="middle" x="53.5" y="-44.3426" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">preconvert_new.f90</text> </a> </g> </g> -<!-- sourcefile~phgrreal.f->sourcefile~preconvert.f90 --> -<g id="file~~graph~~FileGraph_edge2" class="edge"><title>sourcefile~phgrreal.f->sourcefile~preconvert.f90</title> -<path fill="none" stroke="#000000" 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"/> -<polygon fill="#000000" stroke="#000000" points="198.371,-72.1018 207.076,-66.0636 196.505,-65.3548 198.371,-72.1018"/> +<!-- sourcefile~rwgrib2.f90->sourcefile~preconvert_new.f90 --> +<g id="file~~graph~~FileGraph_edge3" class="edge"><title>sourcefile~rwgrib2.f90->sourcefile~preconvert_new.f90</title> +<path fill="none" stroke="#000000" d="M154.592,-97.5955C135.464,-87.8777 108.44,-74.1478 87.2928,-63.4034"/> +<polygon fill="#000000" stroke="#000000" points="88.8358,-60.2616 78.335,-58.8523 85.665,-66.5023 88.8358,-60.2616"/> </g> -<!-- sourcefile~grphreal.f --> -<g id="file~~graph~~FileGraph_node3" class="node"><title>sourcefile~grphreal.f</title> -<g id="a_file~~graph~~FileGraph_node3"><a xlink:href="../sourcefile/grphreal.f.html" xlink:title="grphreal.f"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="159.5,-66 101.5,-66 101.5,-42 159.5,-42 159.5,-66"/> -<text text-anchor="middle" x="130.5" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grphreal.f</text> +<!-- sourcefile~posnam.f90 --> +<g id="file~~graph~~FileGraph_node2" class="node"><title>sourcefile~posnam.f90</title> +<g id="a_file~~graph~~FileGraph_node2"><a xlink:href=".././sourcefile/posnam.f90.html" xlink:title="posnam.f90"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="321.5,-79.7426 252.5,-79.7426 252.5,-55.7426 321.5,-55.7426 321.5,-79.7426"/> +<text text-anchor="middle" x="287" y="-65.3426" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">posnam.f90</text> </a> </g> </g> -<!-- sourcefile~phgrreal.f->sourcefile~grphreal.f --> -<g id="file~~graph~~FileGraph_edge4" class="edge"><title>sourcefile~phgrreal.f->sourcefile~grphreal.f</title> -<path fill="none" stroke="#000000" d="M58.2466,-68.3223C68.5398,-66.2533 80.3539,-63.8786 91.3641,-61.6655"/> -<polygon fill="#000000" stroke="#000000" points="92.0687,-65.094 101.183,-59.6919 90.6892,-58.2312 92.0687,-65.094"/> +<!-- sourcefile~ftrafo.f90 --> +<g id="file~~graph~~FileGraph_node3" class="node"><title>sourcefile~ftrafo.f90</title> +<g id="a_file~~graph~~FileGraph_node3"><a xlink:href=".././sourcefile/ftrafo.f90.html" xlink:title="ftrafo.f90"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="207,-79.7426 152,-79.7426 152,-55.7426 207,-55.7426 207,-79.7426"/> +<text text-anchor="middle" x="179.5" y="-65.3426" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">ftrafo.f90</text> +</a> </g> -<!-- sourcefile~grphreal.f->sourcefile~preconvert.f90 --> -<g id="file~~graph~~FileGraph_edge1" class="edge"><title>sourcefile~grphreal.f->sourcefile~preconvert.f90</title> -<path fill="none" stroke="#000000" d="M159.636,-54C169.614,-54 181.17,-54 192.44,-54"/> -<polygon fill="#000000" stroke="#000000" points="192.657,-57.5001 202.657,-54 192.657,-50.5001 192.657,-57.5001"/> </g> -<!-- sourcefile~rwgrib2.f90 --> -<g id="file~~graph~~FileGraph_node4" class="node"><title>sourcefile~rwgrib2.f90</title> -<g id="a_file~~graph~~FileGraph_node4"><a xlink:href="../sourcefile/rwgrib2.f90.html" xlink:title="rwGRIB2.f90"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="167,-24 94,-24 94,-0 167,-0 167,-24"/> -<text text-anchor="middle" x="130.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">rwGRIB2.f90</text> +<!-- sourcefile~ftrafo.f90->sourcefile~preconvert_new.f90 --> +<g id="file~~graph~~FileGraph_edge4" class="edge"><title>sourcefile~ftrafo.f90->sourcefile~preconvert_new.f90</title> +<path fill="none" stroke="#000000" d="M151.899,-63.2375C141.669,-61.5051 129.506,-59.4452 117.302,-57.3783"/> +<polygon fill="#000000" stroke="#000000" points="117.526,-53.8665 107.082,-55.6475 116.357,-60.7682 117.526,-53.8665"/> +</g> +<!-- sourcefile~grphreal.f90 --> +<g id="file~~graph~~FileGraph_node4" class="node"><title>sourcefile~grphreal.f90</title> +<g id="a_file~~graph~~FileGraph_node4"><a xlink:href=".././sourcefile/grphreal.f90.html" xlink:title="grphreal.f90"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="214.5,-37.7426 144.5,-37.7426 144.5,-13.7426 214.5,-13.7426 214.5,-37.7426"/> +<text text-anchor="middle" x="179.5" y="-23.3426" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grphreal.f90</text> </a> </g> </g> -<!-- sourcefile~rwgrib2.f90->sourcefile~preconvert.f90 --> -<g id="file~~graph~~FileGraph_edge3" class="edge"><title>sourcefile~rwgrib2.f90->sourcefile~preconvert.f90</title> -<path fill="none" stroke="#000000" d="M163.451,-24.0355C175.348,-28.5169 189.025,-33.6688 201.646,-38.4227"/> -<polygon fill="#000000" stroke="#000000" points="200.452,-41.713 211.044,-41.9627 202.92,-35.1623 200.452,-41.713"/> +<!-- sourcefile~grphreal.f90->sourcefile~preconvert_new.f90 --> +<g id="file~~graph~~FileGraph_edge5" class="edge"><title>sourcefile~grphreal.f90->sourcefile~preconvert_new.f90</title> +<path fill="none" stroke="#000000" d="M144.288,-31.5365C135.865,-32.963 126.579,-34.5356 117.27,-36.1121"/> +<polygon fill="#000000" stroke="#000000" points="116.475,-32.6969 107.2,-37.8176 117.644,-39.5987 116.475,-32.6969"/> +</g> +<!-- sourcefile~phgrreal.f90 --> +<g id="file~~graph~~FileGraph_node6" class="node"><title>sourcefile~phgrreal.f90</title> +<g id="a_file~~graph~~FileGraph_node6"><a xlink:href=".././sourcefile/phgrreal.f90.html" xlink:title="phgrreal.f90"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="322,-37.7426 252,-37.7426 252,-13.7426 322,-13.7426 322,-37.7426"/> +<text text-anchor="middle" x="287" y="-23.3426" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">phgrreal.f90</text> +</a> +</g> +</g> +<!-- sourcefile~phgrreal.f90->sourcefile~ftrafo.f90 --> +<g id="file~~graph~~FileGraph_edge1" class="edge"><title>sourcefile~phgrreal.f90->sourcefile~ftrafo.f90</title> +<path fill="none" stroke="#000000" d="M255.768,-37.7781C243.541,-42.6458 229.326,-48.3046 216.564,-53.3851"/> +<polygon fill="#000000" stroke="#000000" points="215.142,-50.1843 207.146,-57.1349 217.731,-56.6879 215.142,-50.1843"/> +</g> +<!-- sourcefile~phgrreal.f90->sourcefile~grphreal.f90 --> +<g id="file~~graph~~FileGraph_edge2" class="edge"><title>sourcefile~phgrreal.f90->sourcefile~grphreal.f90</title> +<path fill="none" stroke="#000000" d="M251.747,-25.7426C243.092,-25.7426 233.675,-25.7426 224.609,-25.7426"/> +<polygon fill="#000000" stroke="#000000" points="224.581,-22.2427 214.581,-25.7426 224.581,-29.2427 224.581,-22.2427"/> +</g> +<!-- sourcefile~phgrreal.f90->sourcefile~preconvert_new.f90 --> +<g id="file~~graph~~FileGraph_edge6" class="edge"><title>sourcefile~phgrreal.f90->sourcefile~preconvert_new.f90</title> +<path fill="none" stroke="#000000" d="M252.979,-13.6821C241.444,-10.0488 228.302,-6.54816 216,-4.74256 183.899,-0.0312039 174.651,2.38688 143,-4.74256 121.582,-9.56703 99.2599,-20.206 82.3924,-29.5685"/> +<polygon fill="#000000" stroke="#000000" points="80.5594,-26.5849 73.6231,-34.5935 84.0397,-32.6584 80.5594,-26.5849"/> </g> </g> </svg> -</div> - <div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div> - <div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"> - <div class="modal-dialog modal-lg" role="document"> - <div class="modal-content"> - <div class="modal-header"> - <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> - <h4 class="modal-title" id="-graph-help-label">Graph Key</h4> - </div> - <div class="modal-body"> - +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> <p>Nodes of different colours represent the following: </p> <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" @@ -227,16 +246,11 @@ All Files – Flex_extract: Calculation of etadot </svg> - <p>Solid arrows point from a file to a file which depends upon it. A file + <p>Solid arrows point from a file to a file which it depends on. A file is dependent upon another if the latter must be compiled before the former can be. </p> - - </div> - </div> - </div> - </div> - + </div></div></div></div> </div> </div> @@ -245,7 +259,8 @@ All Files – Flex_extract: Calculation of etadot <footer> <div class="container"> <div class="row"> - <div class="col-xs-6 col-md-4"><p>© 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> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by @@ -253,7 +268,7 @@ All Files – Flex_extract: Calculation of etadot </p> </div> - <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> + <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<sup>1</sup></p></div> </div> <br> </div> <!-- /container --> @@ -276,12 +291,17 @@ All Files – Flex_extract: Calculation of etadot MathJax.Hub.Config({ TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, jax: ['input/TeX','input/MathML','output/HTML-CSS'], - extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'], - 'HTML-CSS': { - styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: '#000000 ! important'} } - } + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] }); </script> - <!-- <script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> --> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="../tipuesearch/tipuesearch_content.js"></script> + <script src="../tipuesearch/tipuesearch_set.js"></script> + <script src="../tipuesearch/tipuesearch.js"></script> + + </body> </html> \ No newline at end of file diff --git a/Documentation/FORD/V6/Doc/lists/modules.html b/Documentation/FORD/V6/Doc/lists/modules.html new file mode 100644 index 0000000000000000000000000000000000000000..a0eeff8397e09da9bbe5d06aca1619a7077d5f30 --- /dev/null +++ b/Documentation/FORD/V6/Doc/lists/modules.html @@ -0,0 +1,421 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > + <link rel="icon" href="../favicon.png"> + + <title> +All Modules – Flex_extract: Calculation of etadot +</title> + + <link href="../css/bootstrap.min.css" rel="stylesheet"> + <link href="../css/pygments.css" rel="stylesheet"> + <link href="../css/font-awesome.min.css" rel="stylesheet"> + <link href="../css/local.css" rel="stylesheet"> + + <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> + + + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> + <![endif]--> + + <script src="../js/jquery-2.1.3.min.js"></script> + <script src="../js/svg-pan-zoom.min.js"></script> + + </head> + + <body> + + <!-- Fixed navbar --> + <nav class="navbar navbar-inverse navbar-fixed-top"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + </div> + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> + <a href="#" class="dropdown-toggle" + data-toggle="dropdown" role="button" + aria-haspopup="true" + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + + + <li><a href="../lists/files.html">Source Files</a></li> + + + + <li><a href="../lists/modules.html">Modules</a></li> + + + + <li><a href="../lists/procedures.html">Procedures</a></li> + + + + <li><a href="../program/preconvert.html">Program</a></li> + + </ul> + </li> + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> + + </ul> + + <form action="../search.html" class="navbar-form navbar-right" role="search"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> + </div> +<!-- + <button type="submit" class="btn btn-default">Submit</button> +--> + </form> + + </div><!--/.nav-collapse --> + </div> + </nav> + + <div class="container"> + + + <div class="row"> + <div class="col-lg-12" id='text'> + <h1>Modules</h1> + <table class="table"> + <thead><tr><th>Module</th><th>Source File</th><th>Description</th></tr></thead> + <tbody> + + + <tr class="active"><td><a href='../module/ftrafo.html'>FTRAFO</a></td><td><a href='../sourcefile/ftrafo.f90.html'>ftrafo.f90</a></td><td><p>Implementation of the spectral transformation using reduced the Gaussian grid</p></td></tr> + + <!--active--> + + <tr class=""><td><a href='../module/grtoph.html'>GRTOPH</a></td><td><a href='../sourcefile/grphreal.f90.html'>grphreal.f90</a></td><td></td></tr> + + <!----> + + <tr class="active"><td><a href='../module/phtogr.html'>PHTOGR</a></td><td><a href='../sourcefile/phgrreal.f90.html'>phgrreal.f90</a></td><td></td></tr> + + <!--active--> + + <tr class=""><td><a href='../module/rwgrib2.html'>RWGRIB2</a></td><td><a href='../sourcefile/rwgrib2.f90.html'>rwGRIB2.f90</a></td><td></td></tr> + + <!----> + + </tbody></table> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: module~~graph~~ModuleGraph Pages: 1 --> +<svg id="modulegraphModuleGraph" width="305pt" height="364pt" + viewBox="0.00 0.00 305.00 364.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="module~~graph~~ModuleGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 360)"> +<title>module~~graph~~ModuleGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-360 301,-360 301,4 -4,4"/> +<!-- module~grtoph --> +<g id="module~~graph~~ModuleGraph_node1" class="node"><title>module~grtoph</title> +<g id="a_module~~graph~~ModuleGraph_node1"><a xlink:href=".././module/grtoph.html" xlink:title="GRTOPH"> +<polygon fill="#337ab7" stroke="#337ab7" points="158.5,-356 100.5,-356 100.5,-332 158.5,-332 158.5,-356"/> +<text text-anchor="middle" x="129.5" y="-341.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GRTOPH</text> +</a> +</g> +</g> +<!-- module~phtogr --> +<g id="module~~graph~~ModuleGraph_node4" class="node"><title>module~phtogr</title> +<g id="a_module~~graph~~ModuleGraph_node4"><a xlink:href=".././module/phtogr.html" xlink:title="PHTOGR"> +<polygon fill="#337ab7" stroke="#337ab7" points="58,-129 0,-129 0,-105 58,-105 58,-129"/> +<text text-anchor="middle" x="29" y="-114.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHTOGR</text> +</a> +</g> +</g> +<!-- module~grtoph->module~phtogr --> +<g id="module~~graph~~ModuleGraph_edge1" class="edge"><title>module~grtoph->module~phtogr</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M103.348,-331.753C99.8583,-329.233 96.5882,-326.317 94,-323 49.9872,-266.595 36.0226,-179.656 31.7695,-139.166"/> +<polygon fill="#000000" stroke="#000000" points="35.238,-138.667 30.8106,-129.041 28.2692,-139.327 35.238,-138.667"/> +</g> +<!-- module~ftrafo --> +<g id="module~~graph~~ModuleGraph_node2" class="node"><title>module~ftrafo</title> +<g id="a_module~~graph~~ModuleGraph_node2"><a xlink:href=".././module/ftrafo.html" xlink:title="FTRAFO"> +<polygon fill="#337ab7" stroke="#337ab7" points="157,-314 102,-314 102,-290 157,-290 157,-314"/> +<text text-anchor="middle" x="129.5" y="-299.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">FTRAFO</text> +</a> +</g> +</g> +<!-- module~rwgrib2 --> +<g id="module~~graph~~ModuleGraph_node3" class="node"><title>module~rwgrib2</title> +<g id="a_module~~graph~~ModuleGraph_node3"><a xlink:href=".././module/rwgrib2.html" xlink:title="RWGRIB2"> +<polygon fill="#337ab7" stroke="#337ab7" points="160,-272 99,-272 99,-248 160,-248 160,-272"/> +<text text-anchor="middle" x="129.5" y="-257.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">RWGRIB2</text> +</a> +</g> +</g> +<!-- program~preconvert --> +<g id="module~~graph~~ModuleGraph_node5" class="node"><title>program~preconvert</title> +<g id="a_module~~graph~~ModuleGraph_node5"><a xlink:href=".././program/preconvert.html" xlink:title="PRECONVERT"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="291.5,-274 206.5,-274 206.5,-250 291.5,-250 291.5,-274"/> +<text text-anchor="middle" x="249" y="-259.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> +</a> +</g> +</g> +<!-- program~preconvert->module~grtoph --> +<g id="module~~graph~~ModuleGraph_edge4" class="edge"><title>program~preconvert->module~grtoph</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M232.381,-274.111C215.912,-286.731 189.068,-306.875 165,-323 163.34,-324.112 161.622,-325.237 159.879,-326.358"/> +<polygon fill="#000000" stroke="#000000" points="157.73,-323.575 151.117,-331.853 161.449,-329.505 157.73,-323.575"/> +</g> +<!-- program~preconvert->module~ftrafo --> +<g id="module~~graph~~ModuleGraph_edge5" class="edge"><title>program~preconvert->module~ftrafo</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M212.746,-274.001C198.246,-278.937 181.46,-284.652 166.849,-289.626"/> +<polygon fill="#000000" stroke="#000000" points="165.474,-286.397 157.135,-292.933 167.729,-293.023 165.474,-286.397"/> +</g> +<!-- program~preconvert->module~rwgrib2 --> +<g id="module~~graph~~ModuleGraph_edge3" class="edge"><title>program~preconvert->module~rwgrib2</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M206.243,-261.289C194.627,-261.092 182.042,-260.877 170.528,-260.681"/> +<polygon fill="#000000" stroke="#000000" points="170.372,-257.178 160.314,-260.507 170.253,-264.177 170.372,-257.178"/> +</g> +<!-- program~preconvert->module~phtogr --> +<g id="module~~graph~~ModuleGraph_edge6" class="edge"><title>program~preconvert->module~phtogr</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M206.343,-252.126C173.47,-242.854 127.693,-226.53 94,-201 71.3738,-183.855 52.7047,-156.72 41.4834,-137.952"/> +<polygon fill="#000000" stroke="#000000" points="44.4849,-136.151 36.4504,-129.244 38.4244,-139.654 44.4849,-136.151"/> +</g> +<!-- GRIB_API --> +<g id="module~~graph~~ModuleGraph_node13" class="node"><title>GRIB_API</title> +<polygon fill="#337ab7" stroke="#337ab7" points="160,-192 99,-192 99,-168 160,-168 160,-192"/> +<text text-anchor="middle" x="129.5" y="-177.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GRIB_API</text> +</g> +<!-- program~preconvert->GRIB_API --> +<g id="module~~graph~~ModuleGraph_edge2" class="edge"><title>program~preconvert->GRIB_API</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M216.829,-249.937C211.371,-247.309 205.882,-244.31 201,-241 182.529,-228.478 181.944,-220.522 165,-206 161.948,-203.384 158.662,-200.724 155.373,-198.153"/> +<polygon fill="#000000" stroke="#000000" points="157.401,-195.298 147.326,-192.021 153.158,-200.866 157.401,-195.298"/> +</g> +<!-- proc~readspectral --> +<g id="module~~graph~~ModuleGraph_node6" class="node"><title>proc~readspectral</title> +<g id="a_module~~graph~~ModuleGraph_node6"><a xlink:href=".././proc/readspectral.html" xlink:title="READSPECTRAL"> +<polygon fill="#d9534f" stroke="#d9534f" points="297,-232 201,-232 201,-208 297,-208 297,-232"/> +<text text-anchor="middle" x="249" y="-217.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">READSPECTRAL</text> +</a> +</g> +</g> +<!-- proc~readspectral->GRIB_API --> +<g id="module~~graph~~ModuleGraph_edge7" class="edge"><title>proc~readspectral->GRIB_API</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M212.746,-207.999C199.256,-203.406 183.787,-198.14 169.931,-193.423"/> +<polygon fill="#000000" stroke="#000000" points="170.773,-190.013 160.179,-190.103 168.517,-196.639 170.773,-190.013"/> +</g> +<!-- proc~readlatlon --> +<g id="module~~graph~~ModuleGraph_node7" class="node"><title>proc~readlatlon</title> +<g id="a_module~~graph~~ModuleGraph_node7"><a xlink:href=".././proc/readlatlon.html" xlink:title="READLATLON"> +<polygon fill="#d9534f" stroke="#d9534f" points="290,-190 208,-190 208,-166 290,-166 290,-190"/> +<text text-anchor="middle" x="249" y="-175.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">READLATLON</text> +</a> +</g> +</g> +<!-- proc~readlatlon->GRIB_API --> +<g id="module~~graph~~ModuleGraph_edge8" class="edge"><title>proc~readlatlon->GRIB_API</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M207.892,-178.683C195.757,-178.889 182.438,-179.116 170.322,-179.322"/> +<polygon fill="#000000" stroke="#000000" points="169.983,-175.827 160.044,-179.497 170.102,-182.826 169.983,-175.827"/> +</g> +<!-- proc~vdtouv --> +<g id="module~~graph~~ModuleGraph_node8" class="node"><title>proc~vdtouv</title> +<g id="a_module~~graph~~ModuleGraph_node8"><a xlink:href=".././proc/vdtouv.html" xlink:title="VDTOUV"> +<polygon fill="#d9534f" stroke="#d9534f" points="157.5,-150 101.5,-150 101.5,-126 157.5,-126 157.5,-150"/> +<text text-anchor="middle" x="129.5" y="-135.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">VDTOUV</text> +</a> +</g> +</g> +<!-- proc~vdtouv->module~phtogr --> +<g id="module~~graph~~ModuleGraph_edge9" class="edge"><title>proc~vdtouv->module~phtogr</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M101.324,-132.206C91.0346,-130.012 79.1248,-127.473 68.0197,-125.106"/> +<polygon fill="#000000" stroke="#000000" points="68.627,-121.657 58.117,-122.994 67.1674,-128.503 68.627,-121.657"/> +</g> +<!-- proc~writelatlon --> +<g id="module~~graph~~ModuleGraph_node9" class="node"><title>proc~writelatlon</title> +<g id="a_module~~graph~~ModuleGraph_node9"><a xlink:href=".././proc/writelatlon.html" xlink:title="WRITELATLON"> +<polygon fill="#d9534f" stroke="#d9534f" points="293,-148 205,-148 205,-124 293,-124 293,-148"/> +<text text-anchor="middle" x="249" y="-133.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">WRITELATLON</text> +</a> +</g> +</g> +<!-- proc~writelatlon->GRIB_API --> +<g id="module~~graph~~ModuleGraph_edge10" class="edge"><title>proc~writelatlon->GRIB_API</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M215.893,-148.023C201.623,-153.367 184.694,-159.706 169.687,-165.326"/> +<polygon fill="#000000" stroke="#000000" points="168.288,-162.112 160.15,-168.897 170.743,-168.668 168.288,-162.112"/> +</g> +<!-- proc~phgracut --> +<g id="module~~graph~~ModuleGraph_node10" class="node"><title>proc~phgracut</title> +<g id="a_module~~graph~~ModuleGraph_node10"><a xlink:href=".././proc/phgracut.html" xlink:title="PHGRACUT"> +<polygon fill="#d9534f" stroke="#d9534f" points="165,-108 94,-108 94,-84 165,-84 165,-108"/> +<text text-anchor="middle" x="129.5" y="-93.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGRACUT</text> +</a> +</g> +</g> +<!-- proc~phgracut->module~phtogr --> +<g id="module~~graph~~ModuleGraph_edge11" class="edge"><title>proc~phgracut->module~phtogr</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M93.7726,-103.404C85.5033,-105.167 76.6341,-107.058 68.2181,-108.852"/> +<polygon fill="#000000" stroke="#000000" points="67.2982,-105.469 58.2478,-110.978 68.7578,-112.316 67.2982,-105.469"/> +</g> +<!-- proc~vduvsub --> +<g id="module~~graph~~ModuleGraph_node11" class="node"><title>proc~vduvsub</title> +<g id="a_module~~graph~~ModuleGraph_node11"><a xlink:href=".././proc/vduvsub.html" xlink:title="VDUVSUB"> +<polygon fill="#d9534f" stroke="#d9534f" points="160.5,-66 98.5,-66 98.5,-42 160.5,-42 160.5,-66"/> +<text text-anchor="middle" x="129.5" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">VDUVSUB</text> +</a> +</g> +</g> +<!-- proc~vduvsub->module~phtogr --> +<g id="module~~graph~~ModuleGraph_edge12" class="edge"><title>proc~vduvsub->module~phtogr</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M108.362,-66.1004C103.632,-68.9861 98.6229,-72.0773 94,-75 81.6793,-82.7894 68.1682,-91.6137 56.7482,-99.1563"/> +<polygon fill="#000000" stroke="#000000" points="54.5035,-96.445 48.1007,-104.886 58.37,-102.28 54.5035,-96.445"/> +</g> +<!-- proc~phgrad --> +<g id="module~~graph~~ModuleGraph_node12" class="node"><title>proc~phgrad</title> +<g id="a_module~~graph~~ModuleGraph_node12"><a xlink:href=".././proc/phgrad.html" xlink:title="PHGRAD"> +<polygon fill="#d9534f" stroke="#d9534f" points="158,-24 101,-24 101,-0 158,-0 158,-24"/> +<text text-anchor="middle" x="129.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGRAD</text> +</a> +</g> +</g> +<!-- proc~phgrad->module~phtogr --> +<g id="module~~graph~~ModuleGraph_edge13" class="edge"><title>proc~phgrad->module~phtogr</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M105.741,-24.1789C101.638,-26.8312 97.5427,-29.8087 94,-33 73.2359,-51.7042 54.5087,-77.9153 42.7542,-96.0624"/> +<polygon fill="#000000" stroke="#000000" points="39.6566,-94.4123 37.2692,-104.735 45.5726,-98.1541 39.6566,-94.4123"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="490pt" height="32pt" + viewBox="0.00 0.00 489.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 485.5,-28 485.5,4 -4,4"/> +<!-- Module --> +<g id="node1" class="node"><title>Module</title> +<polygon fill="#337ab7" stroke="#337ab7" points="54,-24 0,-24 0,-0 54,-0 54,-24"/> +<text text-anchor="middle" x="27" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Module</text> +</g> +<!-- Submodule --> +<g id="node2" class="node"><title>Submodule</title> +<polygon fill="#5bc0de" stroke="#5bc0de" points="139.5,-24 72.5,-24 72.5,-0 139.5,-0 139.5,-24"/> +<text text-anchor="middle" x="106" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Submodule</text> +</g> +<!-- Subroutine --> +<g id="node3" class="node"><title>Subroutine</title> +<polygon fill="#d9534f" stroke="#d9534f" points="222,-24 158,-24 158,-0 222,-0 222,-24"/> +<text text-anchor="middle" x="190" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> +</g> +<!-- Function --> +<g id="node4" class="node"><title>Function</title> +<polygon fill="#d94e8f" stroke="#d94e8f" points="294,-24 240,-24 240,-0 294,-0 294,-24"/> +<text text-anchor="middle" x="267" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> +</g> +<!-- Program --> +<g id="node5" class="node"><title>Program</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="366,-24 312,-24 312,-0 366,-0 366,-24"/> +<text text-anchor="middle" x="339" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> +</g> +<!-- This Page's Entity --> +<g id="node6" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="481.5,-24 384.5,-24 384.5,-0 481.5,-0 481.5,-24"/> +<text text-anchor="middle" x="433" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a submodule to the (sub)module which it is + descended from. Dashed arrows point from a module or program unit to + modules which it uses. + </p> + </div></div></div></div> + </div> + </div> + + <hr> + </div> <!-- /container --> + <footer> + <div class="container"> + <div class="row"> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> + <div class="col-xs-6 col-md-4 col-md-push-4"> + <p class="text-right"> + Documentation generated by + <a href="https://github.com/cmacmackin/ford">FORD</a> + + </p> + </div> + <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<sup>1</sup></p></div> + </div> + <br> + </div> <!-- /container --> + </footer> + + <!-- Bootstrap core JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> +<!-- + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> +--> + <script src="../js/bootstrap.min.js"></script> + <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> + <script src="../js/ie10-viewport-bug-workaround.js"></script> + + <!-- MathJax JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> + <script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, + jax: ['input/TeX','input/MathML','output/HTML-CSS'], + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] + }); + </script> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="../tipuesearch/tipuesearch_content.js"></script> + <script src="../tipuesearch/tipuesearch_set.js"></script> + <script src="../tipuesearch/tipuesearch.js"></script> + + + </body> +</html> \ No newline at end of file diff --git a/Documentation/FORD/V6/Doc/lists/procedures.html b/Documentation/FORD/V6/Doc/lists/procedures.html new file mode 100644 index 0000000000000000000000000000000000000000..fcd9fe1f31c5c292cf5aeae338fdc12c3d6648af --- /dev/null +++ b/Documentation/FORD/V6/Doc/lists/procedures.html @@ -0,0 +1,769 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > + <link rel="icon" href="../favicon.png"> + + <title> +All Procedures – Flex_extract: Calculation of etadot +</title> + + <link href="../css/bootstrap.min.css" rel="stylesheet"> + <link href="../css/pygments.css" rel="stylesheet"> + <link href="../css/font-awesome.min.css" rel="stylesheet"> + <link href="../css/local.css" rel="stylesheet"> + + <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> + + + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> + <![endif]--> + + <script src="../js/jquery-2.1.3.min.js"></script> + <script src="../js/svg-pan-zoom.min.js"></script> + + </head> + + <body> + + <!-- Fixed navbar --> + <nav class="navbar navbar-inverse navbar-fixed-top"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + </div> + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> + <a href="#" class="dropdown-toggle" + data-toggle="dropdown" role="button" + aria-haspopup="true" + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + + + <li><a href="../lists/files.html">Source Files</a></li> + + + + <li><a href="../lists/modules.html">Modules</a></li> + + + + <li><a href="../lists/procedures.html">Procedures</a></li> + + + + <li><a href="../program/preconvert.html">Program</a></li> + + </ul> + </li> + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> + + </ul> + + <form action="../search.html" class="navbar-form navbar-right" role="search"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> + </div> +<!-- + <button type="submit" class="btn btn-default">Submit</button> +--> + </form> + + </div><!--/.nav-collapse --> + </div> + </nav> + + <div class="container"> + + <div class="row"> + <div class="col-lg-12" id='text'> + <h1>Procedures</h1> + <table class="table table-striped"> + <thead><tr><th>Procedure</th><th>Location</th><th>Procedure Type</th><th>Description</th></tr></thead> + <tbody> + + <tr><td><a href='../proc/contgl.html'>CONTGL</a></td><td><a href='../module/ftrafo.html'>FTRAFO</a></td><td>Subroutine</td><td><p>Berechnung der Divergenz aus dem Windfeld (U,V) + im Phasenraum. Zurueckgegeben werden die Felder der + Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter.</p></td></tr> + + <tr><td><a href='../proc/dplgnd.html'>DPLGND</a></td><td><a href='../module/phtogr.html'>PHTOGR</a></td><td>Subroutine</td><td><p>DPLGND BERECHNET DIE ABLEITUNG DER NORMIERTEN ASSOZIIERTEN + LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X) + UND SCHREIBT SIE IN DAS FELD DZ</p></td></tr> + + <tr><td><a href='../proc/gauleg.html'>GAULEG</a></td><td><a href='../module/phtogr.html'>PHTOGR</a></td><td>Subroutine</td><td><p>BERECHNET DIE GAUSS+SCHEN BREITEN</p></td></tr> + + <tr><td><a href='../proc/grph213.html'>GRPH213</a></td><td><a href='../module/grtoph.html'>GRTOPH</a></td><td>Subroutine</td><td><p>DIE ROUTINE F]HRT EINE TRANSFORMATION EINER + FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN + RAUM AUF KUGELKOORDINATEN DURCH</p></td></tr> + + <tr><td><a href='../proc/grphsub.html'>GRPHSUB</a></td><td><a href='../module/grtoph.html'>GRTOPH</a></td><td>Subroutine</td><td><p>DIE ROUTINE F]HRT EINE TRANSFORMATION EINER + FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN + RAUM AUF KUGELKOORDINATEN DURCH</p></td></tr> + + <tr><td><a href='../proc/ia.html'>IA</a></td><td><a href='../sourcefile/preconvert_new.f90.html'>preconvert_new.f90</a></td><td>Function</td><td><p>Calculate something that is roughly log10( maxval(field1)/g ) [PS] </p></td></tr> + + <tr><td><a href='../proc/legtr.html'>LEGTR</a></td><td><a href='../module/phtogr.html'>PHTOGR</a></td><td>Subroutine</td><td><p>DIESE ROUTINE BERECHNET DIE FOURIERKOEFFIZIENTEN CXM</p></td></tr> + + <tr><td><a href='../proc/lgtr213.html'>LGTR213</a></td><td><a href='../module/grtoph.html'>GRTOPH</a></td><td>Subroutine</td><td><a href="../proc/lgtr213.html" class="pull-right"><emph>Read more…</emph></a></td></tr> + + <tr><td><a href='../proc/omega.html'>OMEGA</a></td><td><a href='../module/ftrafo.html'>FTRAFO</a></td><td>Subroutine</td><td><p>calculates $\omega$ in the hybrid ($\eta$-) coordinate system</p></td></tr> + + <tr><td><a href='../proc/phgcut.html'>PHGCUT</a></td><td><a href='../module/phtogr.html'>PHTOGR</a></td><td>Subroutine</td><td><p>DIE ROUTINE FUEHRT EINE TRANSFORMATION EINER + FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN + RAUM AUF KUGELKOORDINATEN DURCH. Es kann ein Teilausschnitt + Der Erde angegeben werden. Diese Routine ist langsamer als phgrph</p></td></tr> + + <tr><td><a href='../proc/phgpns.html'>PHGPNS</a></td><td><a href='../module/phtogr.html'>PHTOGR</a></td><td>Subroutine</td><td></td></tr> + + <tr><td><a href='../proc/phgr213.html'>PHGR213</a></td><td><a href='../module/phtogr.html'>PHTOGR</a></td><td>Subroutine</td><td><p>DIE ROUTINE F]HRT EINE TRANSFORMATION EINER + FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN + RAUM AUF DAS REDUZIERTE GAUSS'SCHE GITTER DURCH</p></td></tr> + + <tr><td><a href='../proc/phgracut.html'>PHGRACUT</a></td><td><a href='../module/ftrafo.html'>FTRAFO</a></td><td>Subroutine</td><td><p>Berechnung des Gradienten eines Skalars aus dem Feld des + Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der + Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter.</p></td></tr> + + <tr><td><a href='../proc/phgrad.html'>PHGRAD</a></td><td><a href='../module/ftrafo.html'>FTRAFO</a></td><td>Subroutine</td><td><p>Berechnung des Gradienten eines Skalars aus dem Feld des + Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der + Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter.</p></td></tr> + + <tr><td><a href='../proc/phsym.html'>PHSYM</a></td><td><a href='../module/phtogr.html'>PHTOGR</a></td><td>Subroutine</td><td></td></tr> + + <tr><td><a href='../proc/phsymcut.html'>PHSYMCUT</a></td><td><a href='../module/phtogr.html'>PHTOGR</a></td><td>Subroutine</td><td></td></tr> + + <tr><td><a href='../proc/plgnfa.html'>PLGNFA</a></td><td><a href='../module/phtogr.html'>PHTOGR</a></td><td>Subroutine</td><td><p>PLGNDN BERECHNET ALLE NORMIERTEN ASSOZIIERTEN + LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X) + UND SCHREIBT SIE IN DAS FELD Z</p></td></tr> + + <tr><td><a href='../proc/posnam.html'>POSNAM</a></td><td><a href='../sourcefile/posnam.f90.html'>posnam.f90</a></td><td>Subroutine</td><td><p>position in namelist file.</p></td></tr> + + <tr><td><a href='../proc/readlatlon.html'>READLATLON</a></td><td><a href='../module/rwgrib2.html'>RWGRIB2</a></td><td>Subroutine</td><td><p>Read a field from GRIB file on lat-lon grid</p></td></tr> + + <tr><td><a href='../proc/readspectral.html'>READSPECTRAL</a></td><td><a href='../module/rwgrib2.html'>RWGRIB2</a></td><td>Subroutine</td><td><p>read a GRIB file in spherical harmonics</p></td></tr> + + <tr><td><a href='../proc/rfouftr.html'>RFOUFTR</a></td><td><a href='../module/grtoph.html'>GRTOPH</a></td><td>Subroutine</td><td></td></tr> + + <tr><td><a href='../proc/rfourtr.html'>RFOURTR</a></td><td><a href='../module/phtogr.html'>PHTOGR</a></td><td>Subroutine</td><td><a href="../proc/rfourtr.html" class="pull-right"><emph>Read more…</emph></a></td></tr> + + <tr><td><a href='../proc/spfilter.html'>SPFILTER</a></td><td><a href='../module/phtogr.html'>PHTOGR</a></td><td>Subroutine</td><td><p>Spectral Filter of Sardeshmukh and Hoskins (1984, MWR)</p></td></tr> + + <tr><td><a href='../proc/statis.html'>STATIS</a></td><td><a href='../sourcefile/preconvert_new.f90.html'>preconvert_new.f90</a></td><td>Subroutine</td><td><p>calculate mean, rms, stdev</p></td></tr> + + <tr><td><a href='../proc/vdtouv.html'>VDTOUV</a></td><td><a href='../module/ftrafo.html'>FTRAFO</a></td><td>Subroutine</td><td><p>Berechnung der scale winds aus Vorticity und Divergenz + uebergibt man in XMN die Divergenz, so wird der divergente Anteil des + Windes (XPHI=Ud,XPHI=Vd) zurueckgegeben, uebergibt man die Vorticity, so + erhaelt man den rotationellen Wind (XLAM=Vrot,XPHI=-Urot). + Summiert man beide, erhaelt man den gesamten Scale wind</p></td></tr> + + <tr><td><a href='../proc/vduvsub.html'>VDUVSUB</a></td><td><a href='../module/ftrafo.html'>FTRAFO</a></td><td>Subroutine</td><td></td></tr> + + <tr><td><a href='../proc/writelatlon.html'>WRITELATLON</a></td><td><a href='../module/rwgrib2.html'>RWGRIB2</a></td><td>Subroutine</td><td><p>write a field on lat-lon grid to GRIB file</p></td></tr> + + </tbody></table> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: call~~graph~~CallGraph Pages: 1 --> +<svg id="callgraphCallGraph" width="551pt" height="921pt" + viewBox="0.00 0.00 551.00 921.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="call~~graph~~CallGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 917)"> +<title>call~~graph~~CallGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-917 547,-917 547,4 -4,4"/> +<!-- proc~phgcut --> +<g id="call~~graph~~CallGraph_node1" class="node"><title>proc~phgcut</title> +<g id="a_call~~graph~~CallGraph_node1"><a xlink:href=".././proc/phgcut.html" xlink:title="PHGCUT"> +<polygon fill="#d9534f" stroke="#d9534f" points="200.5,-514 143.5,-514 143.5,-490 200.5,-490 200.5,-514"/> +<text text-anchor="middle" x="172" y="-499.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGCUT</text> +</a> +</g> +</g> +<!-- proc~phgpns --> +<g id="call~~graph~~CallGraph_node2" class="node"><title>proc~phgpns</title> +<g id="a_call~~graph~~CallGraph_node2"><a xlink:href=".././proc/phgpns.html" xlink:title="PHGPNS"> +<polygon fill="#d9534f" stroke="#d9534f" points="332.5,-556 276.5,-556 276.5,-532 332.5,-532 332.5,-556"/> +<text text-anchor="middle" x="304.5" y="-541.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGPNS</text> +</a> +</g> +</g> +<!-- proc~phgcut->proc~phgpns --> +<g id="call~~graph~~CallGraph_edge2" class="edge"><title>proc~phgcut->proc~phgpns</title> +<path fill="none" stroke="#000000" d="M200.676,-510.907C219.923,-517.102 245.788,-525.426 266.761,-532.176"/> +<polygon fill="#000000" stroke="#000000" points="265.72,-535.518 276.312,-535.25 267.865,-528.854 265.72,-535.518"/> +</g> +<!-- proc~phsymcut --> +<g id="call~~graph~~CallGraph_node13" class="node"><title>proc~phsymcut</title> +<g id="a_call~~graph~~CallGraph_node13"><a xlink:href=".././proc/phsymcut.html" xlink:title="PHSYMCUT"> +<polygon fill="#d9534f" stroke="#d9534f" points="340,-514 269,-514 269,-490 340,-490 340,-514"/> +<text text-anchor="middle" x="304.5" y="-499.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHSYMCUT</text> +</a> +</g> +</g> +<!-- proc~phgcut->proc~phsymcut --> +<g id="call~~graph~~CallGraph_edge1" class="edge"><title>proc~phgcut->proc~phsymcut</title> +<path fill="none" stroke="#000000" d="M200.676,-502C217.546,-502 239.498,-502 258.786,-502"/> +<polygon fill="#000000" stroke="#000000" points="258.882,-505.5 268.882,-502 258.882,-498.5 258.882,-505.5"/> +</g> +<!-- proc~rfourtr --> +<g id="call~~graph~~CallGraph_node24" class="node"><title>proc~rfourtr</title> +<g id="a_call~~graph~~CallGraph_node24"><a xlink:href=".././proc/rfourtr.html" xlink:title="RFOURTR"> +<polygon fill="#d9534f" stroke="#d9534f" points="453,-514 389,-514 389,-490 453,-490 453,-514"/> +<text text-anchor="middle" x="421" y="-499.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">RFOURTR</text> +</a> +</g> +</g> +<!-- proc~phgpns->proc~rfourtr --> +<g id="call~~graph~~CallGraph_edge3" class="edge"><title>proc~phgpns->proc~rfourtr</title> +<path fill="none" stroke="#000000" d="M332.635,-534.047C346.414,-528.992 363.447,-522.744 378.803,-517.112"/> +<polygon fill="#000000" stroke="#000000" points="380.418,-520.247 388.601,-513.517 378.008,-513.675 380.418,-520.247"/> +</g> +<!-- proc~readspectral --> +<g id="call~~graph~~CallGraph_node3" class="node"><title>proc~readspectral</title> +<g id="a_call~~graph~~CallGraph_node3"><a xlink:href=".././proc/readspectral.html" xlink:title="READSPECTRAL"> +<polygon fill="#d9534f" stroke="#d9534f" points="220,-440 124,-440 124,-416 220,-416 220,-440"/> +<text text-anchor="middle" x="172" y="-425.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">READSPECTRAL</text> +</a> +</g> +</g> +<!-- grib_count_in_file --> +<g id="call~~graph~~CallGraph_node35" class="node"><title>grib_count_in_file</title> +<polygon fill="#777777" stroke="#777777" points="353,-430 256,-430 256,-406 353,-406 353,-430"/> +<text text-anchor="middle" x="304.5" y="-415.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grib_count_in_file</text> +</g> +<!-- proc~readspectral->grib_count_in_file --> +<g id="call~~graph~~CallGraph_edge4" class="edge"><title>proc~readspectral->grib_count_in_file</title> +<path fill="none" stroke="#000000" d="M220.113,-424.39C228.314,-423.761 236.93,-423.101 245.385,-422.453"/> +<polygon fill="#000000" stroke="#000000" points="245.875,-425.926 255.578,-421.672 245.34,-418.947 245.875,-425.926"/> +</g> +<!-- grib_close_file --> +<g id="call~~graph~~CallGraph_node41" class="node"><title>grib_close_file</title> +<polygon fill="#777777" stroke="#777777" points="345,-388 264,-388 264,-364 345,-364 345,-388"/> +<text text-anchor="middle" x="304.5" y="-373.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grib_close_file</text> +</g> +<!-- proc~readspectral->grib_close_file --> +<g id="call~~graph~~CallGraph_edge5" class="edge"><title>proc~readspectral->grib_close_file</title> +<path fill="none" stroke="#000000" d="M203.267,-415.939C221.174,-408.804 244.071,-399.68 263.459,-391.955"/> +<polygon fill="#000000" stroke="#000000" points="264.951,-395.128 272.945,-388.175 262.359,-388.626 264.951,-395.128"/> +</g> +<!-- proc~omega --> +<g id="call~~graph~~CallGraph_node4" class="node"><title>proc~omega</title> +<g id="a_call~~graph~~CallGraph_node4"><a xlink:href=".././proc/omega.html" xlink:title="OMEGA"> +<polygon fill="#d9534f" stroke="#d9534f" points="71,-339 17,-339 17,-315 71,-315 71,-339"/> +<text text-anchor="middle" x="44" y="-324.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">OMEGA</text> +</a> +</g> +</g> +<!-- proc~plgnfa --> +<g id="call~~graph~~CallGraph_node5" class="node"><title>proc~plgnfa</title> +<g id="a_call~~graph~~CallGraph_node5"><a xlink:href=".././proc/plgnfa.html" xlink:title="PLGNFA"> +<polygon fill="#d9534f" stroke="#d9534f" points="71.5,-465 16.5,-465 16.5,-441 71.5,-441 71.5,-465"/> +<text text-anchor="middle" x="44" y="-450.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PLGNFA</text> +</a> +</g> +</g> +<!-- proc~spfilter --> +<g id="call~~graph~~CallGraph_node6" class="node"><title>proc~spfilter</title> +<g id="a_call~~graph~~CallGraph_node6"><a xlink:href=".././proc/spfilter.html" xlink:title="SPFILTER"> +<polygon fill="#d9534f" stroke="#d9534f" points="75.5,-561 12.5,-561 12.5,-537 75.5,-537 75.5,-561"/> +<text text-anchor="middle" x="44" y="-546.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">SPFILTER</text> +</a> +</g> +</g> +<!-- float --> +<g id="call~~graph~~CallGraph_node29" class="node"><title>float</title> +<polygon fill="#777777" stroke="#777777" points="199,-598 145,-598 145,-574 199,-574 199,-598"/> +<text text-anchor="middle" x="172" y="-583.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">float</text> +</g> +<!-- proc~spfilter->float --> +<g id="call~~graph~~CallGraph_edge6" class="edge"><title>proc~spfilter->float</title> +<path fill="none" stroke="#000000" d="M75.5011,-557.957C93.4047,-563.214 116.13,-569.887 134.921,-575.405"/> +<polygon fill="#000000" stroke="#000000" points="134.039,-578.794 144.62,-578.253 136.011,-572.078 134.039,-578.794"/> +</g> +<!-- alog --> +<g id="call~~graph~~CallGraph_node38" class="node"><title>alog</title> +<polygon fill="#777777" stroke="#777777" points="199,-556 145,-556 145,-532 199,-532 199,-556"/> +<text text-anchor="middle" x="172" y="-541.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">alog</text> +</g> +<!-- proc~spfilter->alog --> +<g id="call~~graph~~CallGraph_edge7" class="edge"><title>proc~spfilter->alog</title> +<path fill="none" stroke="#000000" d="M75.5011,-547.79C93.2397,-547.086 115.712,-546.194 134.4,-545.452"/> +<polygon fill="#000000" stroke="#000000" points="134.767,-548.941 144.62,-545.047 134.489,-541.946 134.767,-548.941"/> +</g> +<!-- proc~readlatlon --> +<g id="call~~graph~~CallGraph_node7" class="node"><title>proc~readlatlon</title> +<g id="a_call~~graph~~CallGraph_node7"><a xlink:href=".././proc/readlatlon.html" xlink:title="READLATLON"> +<polygon fill="#d9534f" stroke="#d9534f" points="213,-398 131,-398 131,-374 213,-374 213,-398"/> +<text text-anchor="middle" x="172" y="-383.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">READLATLON</text> +</a> +</g> +</g> +<!-- proc~readlatlon->grib_count_in_file --> +<g id="call~~graph~~CallGraph_edge8" class="edge"><title>proc~readlatlon->grib_count_in_file</title> +<path fill="none" stroke="#000000" d="M213.219,-395.862C223.54,-398.393 234.846,-401.165 245.858,-403.866"/> +<polygon fill="#000000" stroke="#000000" points="245.307,-407.334 255.853,-406.316 246.974,-400.535 245.307,-407.334"/> +</g> +<!-- proc~readlatlon->grib_close_file --> +<g id="call~~graph~~CallGraph_edge9" class="edge"><title>proc~readlatlon->grib_close_file</title> +<path fill="none" stroke="#000000" d="M213.219,-382.918C225.99,-381.939 240.269,-380.845 253.635,-379.821"/> +<polygon fill="#000000" stroke="#000000" points="253.935,-383.308 263.638,-379.055 253.4,-376.329 253.935,-383.308"/> +</g> +<!-- proc~grph213 --> +<g id="call~~graph~~CallGraph_node8" class="node"><title>proc~grph213</title> +<g id="a_call~~graph~~CallGraph_node8"><a xlink:href=".././proc/grph213.html" xlink:title="GRPH213"> +<polygon fill="#d9534f" stroke="#d9534f" points="202.5,-318 141.5,-318 141.5,-294 202.5,-294 202.5,-318"/> +<text text-anchor="middle" x="172" y="-303.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GRPH213</text> +</a> +</g> +</g> +<!-- proc~grphsub --> +<g id="call~~graph~~CallGraph_node19" class="node"><title>proc~grphsub</title> +<g id="a_call~~graph~~CallGraph_node19"><a xlink:href=".././proc/grphsub.html" xlink:title="GRPHSUB"> +<polygon fill="#d9534f" stroke="#d9534f" points="336.5,-327 272.5,-327 272.5,-303 336.5,-303 336.5,-327"/> +<text text-anchor="middle" x="304.5" y="-312.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GRPHSUB</text> +</a> +</g> +</g> +<!-- proc~grph213->proc~grphsub --> +<g id="call~~graph~~CallGraph_edge11" class="edge"><title>proc~grph213->proc~grphsub</title> +<path fill="none" stroke="#000000" d="M202.612,-308.042C220.206,-309.256 242.786,-310.813 262.122,-312.146"/> +<polygon fill="#000000" stroke="#000000" points="261.968,-315.644 272.185,-312.84 262.449,-308.661 261.968,-315.644"/> +</g> +<!-- ind --> +<g id="call~~graph~~CallGraph_node31" class="node"><title>ind</title> +<polygon fill="#777777" stroke="#777777" points="331.5,-285 277.5,-285 277.5,-261 331.5,-261 331.5,-285"/> +<text text-anchor="middle" x="304.5" y="-270.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">ind</text> +</g> +<!-- proc~grph213->ind --> +<g id="call~~graph~~CallGraph_edge10" class="edge"><title>proc~grph213->ind</title> +<path fill="none" stroke="#000000" d="M202.612,-298.512C221.783,-293.664 246.875,-287.319 267.239,-282.17"/> +<polygon fill="#000000" stroke="#000000" points="268.267,-285.52 277.104,-279.675 266.551,-278.733 268.267,-285.52"/> +</g> +<!-- proc~posnam --> +<g id="call~~graph~~CallGraph_node9" class="node"><title>proc~posnam</title> +<g id="a_call~~graph~~CallGraph_node9"><a xlink:href=".././proc/posnam.html" xlink:title="POSNAM"> +<polygon fill="#d9534f" stroke="#d9534f" points="201,-276 143,-276 143,-252 201,-252 201,-276"/> +<text text-anchor="middle" x="172" y="-261.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">POSNAM</text> +</a> +</g> +</g> +<!-- proc~gauleg --> +<g id="call~~graph~~CallGraph_node10" class="node"><title>proc~gauleg</title> +<g id="a_call~~graph~~CallGraph_node10"><a xlink:href=".././proc/gauleg.html" xlink:title="GAULEG"> +<polygon fill="#d9534f" stroke="#d9534f" points="200,-234 144,-234 144,-210 200,-210 200,-234"/> +<text text-anchor="middle" x="172" y="-219.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GAULEG</text> +</a> +</g> +</g> +<!-- dcos --> +<g id="call~~graph~~CallGraph_node34" class="node"><title>dcos</title> +<polygon fill="#777777" stroke="#777777" points="331.5,-234 277.5,-234 277.5,-210 331.5,-210 331.5,-234"/> +<text text-anchor="middle" x="304.5" y="-219.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">dcos</text> +</g> +<!-- proc~gauleg->dcos --> +<g id="call~~graph~~CallGraph_edge12" class="edge"><title>proc~gauleg->dcos</title> +<path fill="none" stroke="#000000" d="M200.04,-222C219.455,-222 245.84,-222 267.104,-222"/> +<polygon fill="#000000" stroke="#000000" points="267.385,-225.5 277.385,-222 267.385,-218.5 267.385,-225.5"/> +</g> +<!-- proc~vdtouv --> +<g id="call~~graph~~CallGraph_node11" class="node"><title>proc~vdtouv</title> +<g id="a_call~~graph~~CallGraph_node11"><a xlink:href=".././proc/vdtouv.html" xlink:title="VDTOUV"> +<polygon fill="#d9534f" stroke="#d9534f" points="72,-613 16,-613 16,-589 72,-589 72,-613"/> +<text text-anchor="middle" x="44" y="-598.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">VDTOUV</text> +</a> +</g> +</g> +<!-- proc~phsym --> +<g id="call~~graph~~CallGraph_node12" class="node"><title>proc~phsym</title> +<g id="a_call~~graph~~CallGraph_node12"><a xlink:href=".././proc/phsym.html" xlink:title="PHSYM"> +<polygon fill="#d9534f" stroke="#d9534f" points="331.5,-192 277.5,-192 277.5,-168 331.5,-168 331.5,-192"/> +<text text-anchor="middle" x="304.5" y="-177.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHSYM</text> +</a> +</g> +</g> +<!-- proc~phsymcut->proc~rfourtr --> +<g id="call~~graph~~CallGraph_edge13" class="edge"><title>proc~phsymcut->proc~rfourtr</title> +<path fill="none" stroke="#000000" d="M340.165,-502C352.3,-502 366.048,-502 378.674,-502"/> +<polygon fill="#000000" stroke="#000000" points="378.956,-505.5 388.956,-502 378.956,-498.5 378.956,-505.5"/> +</g> +<!-- proc~rfouftr --> +<g id="call~~graph~~CallGraph_node14" class="node"><title>proc~rfouftr</title> +<g id="a_call~~graph~~CallGraph_node14"><a xlink:href=".././proc/rfouftr.html" xlink:title="RFOUFTR"> +<polygon fill="#d9534f" stroke="#d9534f" points="453,-472 389,-472 389,-448 453,-448 453,-472"/> +<text text-anchor="middle" x="421" y="-457.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">RFOUFTR</text> +</a> +</g> +</g> +<!-- fft99 --> +<g id="call~~graph~~CallGraph_node32" class="node"><title>fft99</title> +<polygon fill="#777777" stroke="#777777" points="543,-514 489,-514 489,-490 543,-490 543,-514"/> +<text text-anchor="middle" x="516" y="-499.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">fft99</text> +</g> +<!-- proc~rfouftr->fft99 --> +<g id="call~~graph~~CallGraph_edge15" class="edge"><title>proc~rfouftr->fft99</title> +<path fill="none" stroke="#000000" d="M448.899,-472.148C458.412,-476.444 469.265,-481.345 479.388,-485.917"/> +<polygon fill="#000000" stroke="#000000" points="478.248,-489.243 488.802,-490.169 481.129,-482.863 478.248,-489.243"/> +</g> +<!-- wsave --> +<g id="call~~graph~~CallGraph_node40" class="node"><title>wsave</title> +<polygon fill="#777777" stroke="#777777" points="543,-472 489,-472 489,-448 543,-448 543,-472"/> +<text text-anchor="middle" x="516" y="-457.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">wsave</text> +</g> +<!-- proc~rfouftr->wsave --> +<g id="call~~graph~~CallGraph_edge14" class="edge"><title>proc~rfouftr->wsave</title> +<path fill="none" stroke="#000000" d="M453.226,-460C461.48,-460 470.455,-460 478.941,-460"/> +<polygon fill="#000000" stroke="#000000" points="478.969,-463.5 488.969,-460 478.969,-456.5 478.969,-463.5"/> +</g> +<!-- proc~writelatlon --> +<g id="call~~graph~~CallGraph_node15" class="node"><title>proc~writelatlon</title> +<g id="a_call~~graph~~CallGraph_node15"><a xlink:href=".././proc/writelatlon.html" xlink:title="WRITELATLON"> +<polygon fill="#d9534f" stroke="#d9534f" points="88,-661 7.10543e-15,-661 7.10543e-15,-637 88,-637 88,-661"/> +<text text-anchor="middle" x="44" y="-646.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">WRITELATLON</text> +</a> +</g> +</g> +<!-- grib_set --> +<g id="call~~graph~~CallGraph_node33" class="node"><title>grib_set</title> +<polygon fill="#777777" stroke="#777777" points="199,-682 145,-682 145,-658 199,-658 199,-682"/> +<text text-anchor="middle" x="172" y="-667.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grib_set</text> +</g> +<!-- proc~writelatlon->grib_set --> +<g id="call~~graph~~CallGraph_edge17" class="edge"><title>proc~writelatlon->grib_set</title> +<path fill="none" stroke="#000000" d="M88.0096,-656.168C103.155,-658.692 120.019,-661.503 134.569,-663.928"/> +<polygon fill="#000000" stroke="#000000" points="134.257,-667.424 144.697,-665.616 135.408,-660.52 134.257,-667.424"/> +</g> +<!-- grib_write --> +<g id="call~~graph~~CallGraph_node36" class="node"><title>grib_write</title> +<polygon fill="#777777" stroke="#777777" points="201.5,-640 142.5,-640 142.5,-616 201.5,-616 201.5,-640"/> +<text text-anchor="middle" x="172" y="-625.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grib_write</text> +</g> +<!-- proc~writelatlon->grib_write --> +<g id="call~~graph~~CallGraph_edge16" class="edge"><title>proc~writelatlon->grib_write</title> +<path fill="none" stroke="#000000" d="M88.0096,-641.832C102.326,-639.446 118.179,-636.804 132.16,-634.473"/> +<polygon fill="#000000" stroke="#000000" points="133.142,-637.858 142.431,-632.762 131.991,-630.953 133.142,-637.858"/> +</g> +<!-- proc~phgr213 --> +<g id="call~~graph~~CallGraph_node16" class="node"><title>proc~phgr213</title> +<g id="a_call~~graph~~CallGraph_node16"><a xlink:href=".././proc/phgr213.html" xlink:title="PHGR213"> +<polygon fill="#d9534f" stroke="#d9534f" points="202.5,-192 141.5,-192 141.5,-168 202.5,-168 202.5,-192"/> +<text text-anchor="middle" x="172" y="-177.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGR213</text> +</a> +</g> +</g> +<!-- proc~phgr213->proc~phsym --> +<g id="call~~graph~~CallGraph_edge18" class="edge"><title>proc~phgr213->proc~phsym</title> +<path fill="none" stroke="#000000" d="M202.612,-180C221.696,-180 246.646,-180 266.959,-180"/> +<polygon fill="#000000" stroke="#000000" points="267.104,-183.5 277.104,-180 267.104,-176.5 267.104,-183.5"/> +</g> +<!-- proc~phgracut --> +<g id="call~~graph~~CallGraph_node17" class="node"><title>proc~phgracut</title> +<g id="a_call~~graph~~CallGraph_node17"><a xlink:href=".././proc/phgracut.html" xlink:title="PHGRACUT"> +<polygon fill="#d9534f" stroke="#d9534f" points="340,-472 269,-472 269,-448 340,-448 340,-472"/> +<text text-anchor="middle" x="304.5" y="-457.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGRACUT</text> +</a> +</g> +</g> +<!-- proc~phgracut->proc~rfourtr --> +<g id="call~~graph~~CallGraph_edge19" class="edge"><title>proc~phgracut->proc~rfourtr</title> +<path fill="none" stroke="#000000" d="M338.311,-472.036C351.073,-476.717 365.83,-482.13 379.262,-487.057"/> +<polygon fill="#000000" stroke="#000000" points="378.166,-490.383 388.76,-490.541 380.577,-483.811 378.166,-490.383"/> +</g> +<!-- proc~vduvsub --> +<g id="call~~graph~~CallGraph_node18" class="node"><title>proc~vduvsub</title> +<g id="a_call~~graph~~CallGraph_node18"><a xlink:href=".././proc/vduvsub.html" xlink:title="VDUVSUB"> +<polygon fill="#d9534f" stroke="#d9534f" points="75,-703 13,-703 13,-679 75,-679 75,-703"/> +<text text-anchor="middle" x="44" y="-688.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">VDUVSUB</text> +</a> +</g> +</g> +<!-- proc~lgtr213 --> +<g id="call~~graph~~CallGraph_node20" class="node"><title>proc~lgtr213</title> +<g id="a_call~~graph~~CallGraph_node20"><a xlink:href=".././proc/lgtr213.html" xlink:title="LGTR213"> +<polygon fill="#d9534f" stroke="#d9534f" points="73.5,-745 14.5,-745 14.5,-721 73.5,-721 73.5,-745"/> +<text text-anchor="middle" x="44" y="-730.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">LGTR213</text> +</a> +</g> +</g> +<!-- proc~dplgnd --> +<g id="call~~graph~~CallGraph_node21" class="node"><title>proc~dplgnd</title> +<g id="a_call~~graph~~CallGraph_node21"><a xlink:href=".././proc/dplgnd.html" xlink:title="DPLGND"> +<polygon fill="#d9534f" stroke="#d9534f" points="72,-787 16,-787 16,-763 72,-763 72,-787"/> +<text text-anchor="middle" x="44" y="-772.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">DPLGND</text> +</a> +</g> +</g> +<!-- proc~contgl --> +<g id="call~~graph~~CallGraph_node22" class="node"><title>proc~contgl</title> +<g id="a_call~~graph~~CallGraph_node22"><a xlink:href=".././proc/contgl.html" xlink:title="CONTGL"> +<polygon fill="#d9534f" stroke="#d9534f" points="72.5,-829 15.5,-829 15.5,-805 72.5,-805 72.5,-829"/> +<text text-anchor="middle" x="44" y="-814.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">CONTGL</text> +</a> +</g> +</g> +<!-- proc~legtr --> +<g id="call~~graph~~CallGraph_node23" class="node"><title>proc~legtr</title> +<g id="a_call~~graph~~CallGraph_node23"><a xlink:href=".././proc/legtr.html" xlink:title="LEGTR"> +<polygon fill="#d9534f" stroke="#d9534f" points="71,-871 17,-871 17,-847 71,-847 71,-871"/> +<text text-anchor="middle" x="44" y="-856.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">LEGTR</text> +</a> +</g> +</g> +<!-- proc~rfourtr->fft99 --> +<g id="call~~graph~~CallGraph_edge20" class="edge"><title>proc~rfourtr->fft99</title> +<path fill="none" stroke="#000000" d="M453.226,-502C461.48,-502 470.455,-502 478.941,-502"/> +<polygon fill="#000000" stroke="#000000" points="478.969,-505.5 488.969,-502 478.969,-498.5 478.969,-505.5"/> +</g> +<!-- proc~ia --> +<g id="call~~graph~~CallGraph_node25" class="node"><title>proc~ia</title> +<g id="a_call~~graph~~CallGraph_node25"><a xlink:href=".././proc/ia.html" xlink:title="IA"> +<polygon fill="#d94e8f" stroke="#d94e8f" points="71,-913 17,-913 17,-889 71,-889 71,-913"/> +<text text-anchor="middle" x="44" y="-898.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">IA</text> +</a> +</g> +</g> +<!-- proc~phgrad --> +<g id="call~~graph~~CallGraph_node26" class="node"><title>proc~phgrad</title> +<g id="a_call~~graph~~CallGraph_node26"><a xlink:href=".././proc/phgrad.html" xlink:title="PHGRAD"> +<polygon fill="#d9534f" stroke="#d9534f" points="200.5,-150 143.5,-150 143.5,-126 200.5,-126 200.5,-150"/> +<text text-anchor="middle" x="172" y="-135.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGRAD</text> +</a> +</g> +</g> +<!-- integermlat --> +<g id="call~~graph~~CallGraph_node30" class="node"><title>integermlat</title> +<polygon fill="#777777" stroke="#777777" points="337.5,-150 271.5,-150 271.5,-126 337.5,-126 337.5,-150"/> +<text text-anchor="middle" x="304.5" y="-135.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">integermlat</text> +</g> +<!-- proc~phgrad->integermlat --> +<g id="call~~graph~~CallGraph_edge21" class="edge"><title>proc~phgrad->integermlat</title> +<path fill="none" stroke="#000000" d="M200.676,-138C218.26,-138 241.368,-138 261.223,-138"/> +<polygon fill="#000000" stroke="#000000" points="261.263,-141.5 271.263,-138 261.262,-134.5 261.263,-141.5"/> +</g> +<!-- proc~statis --> +<g id="call~~graph~~CallGraph_node27" class="node"><title>proc~statis</title> +<g id="a_call~~graph~~CallGraph_node27"><a xlink:href=".././proc/statis.html" xlink:title="STATIS"> +<polygon fill="#d9534f" stroke="#d9534f" points="199,-108 145,-108 145,-84 199,-84 199,-108"/> +<text text-anchor="middle" x="172" y="-93.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">STATIS</text> +</a> +</g> +</g> +<!-- program~preconvert --> +<g id="call~~graph~~CallGraph_node28" class="node"><title>program~preconvert</title> +<g id="a_call~~graph~~CallGraph_node28"><a xlink:href=".././program/preconvert.html" xlink:title="PRECONVERT"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="86.5,-255 1.5,-255 1.5,-231 86.5,-231 86.5,-255"/> +<text text-anchor="middle" x="44" y="-240.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> +</a> +</g> +</g> +<!-- program~preconvert->proc~phgcut --> +<g id="call~~graph~~CallGraph_edge23" class="edge"><title>program~preconvert->proc~phgcut</title> +<path fill="none" stroke="#000000" d="M55.3058,-255.24C65.048,-267.393 79.4156,-286.919 88,-306 114.89,-365.768 93.3847,-391.052 124,-449 130.553,-461.403 140.597,-473.275 149.72,-482.627"/> +<polygon fill="#000000" stroke="#000000" points="147.483,-485.336 157.07,-489.847 152.388,-480.342 147.483,-485.336"/> +</g> +<!-- program~preconvert->proc~readspectral --> +<g id="call~~graph~~CallGraph_edge22" class="edge"><title>program~preconvert->proc~readspectral</title> +<path fill="none" stroke="#000000" d="M54.9086,-255.43C64.3563,-267.725 78.5121,-287.352 88,-306 109.61,-348.474 91.6387,-372.018 124,-407 124.888,-407.959 125.827,-408.878 126.81,-409.757"/> +<polygon fill="#000000" stroke="#000000" points="124.897,-412.693 135.042,-415.746 129.015,-407.033 124.897,-412.693"/> +</g> +<!-- program~preconvert->proc~readlatlon --> +<g id="call~~graph~~CallGraph_edge32" class="edge"><title>program~preconvert->proc~readlatlon</title> +<path fill="none" stroke="#000000" d="M53.2825,-255.051C61.9703,-267.711 76.0031,-288.216 88,-306 104.131,-329.912 102.778,-340.465 124,-360 127.332,-363.067 131.091,-365.906 134.995,-368.493"/> +<polygon fill="#000000" stroke="#000000" points="133.298,-371.557 143.665,-373.745 136.925,-365.57 133.298,-371.557"/> +</g> +<!-- program~preconvert->proc~grph213 --> +<g id="call~~graph~~CallGraph_edge24" class="edge"><title>program~preconvert->proc~grph213</title> +<path fill="none" stroke="#000000" d="M66.9259,-255.176C82.6657,-263.788 104.461,-275.455 124,-285 127.147,-286.537 130.432,-288.096 133.738,-289.634"/> +<polygon fill="#000000" stroke="#000000" points="132.469,-292.902 143.019,-293.875 135.379,-286.535 132.469,-292.902"/> +</g> +<!-- program~preconvert->proc~posnam --> +<g id="call~~graph~~CallGraph_edge31" class="edge"><title>program~preconvert->proc~posnam</title> +<path fill="none" stroke="#000000" d="M86.6063,-249.934C101.488,-252.415 118.177,-255.196 132.761,-257.627"/> +<polygon fill="#000000" stroke="#000000" points="132.513,-261.134 142.952,-259.325 133.664,-254.229 132.513,-261.134"/> +</g> +<!-- program~preconvert->proc~gauleg --> +<g id="call~~graph~~CallGraph_edge27" class="edge"><title>program~preconvert->proc~gauleg</title> +<path fill="none" stroke="#000000" d="M86.6063,-236.066C101.719,-233.547 118.695,-230.717 133.438,-228.26"/> +<polygon fill="#000000" stroke="#000000" points="134.431,-231.643 143.719,-226.547 133.28,-224.738 134.431,-231.643"/> +</g> +<!-- program~preconvert->proc~phgr213 --> +<g id="call~~graph~~CallGraph_edge26" class="edge"><title>program~preconvert->proc~phgr213</title> +<path fill="none" stroke="#000000" d="M66.9259,-230.824C82.6657,-222.212 104.461,-210.545 124,-201 127.147,-199.463 130.432,-197.904 133.738,-196.366"/> +<polygon fill="#000000" stroke="#000000" points="135.379,-199.465 143.019,-192.125 132.469,-193.098 135.379,-199.465"/> +</g> +<!-- program~preconvert->proc~phgrad --> +<g id="call~~graph~~CallGraph_edge30" class="edge"><title>program~preconvert->proc~phgrad</title> +<path fill="none" stroke="#000000" d="M53.989,-230.707C67.5067,-212.928 94.6326,-179.883 124,-159 127.095,-156.799 130.459,-154.75 133.915,-152.863"/> +<polygon fill="#000000" stroke="#000000" points="135.774,-155.847 143.163,-148.254 132.652,-149.582 135.774,-155.847"/> +</g> +<!-- program~preconvert->proc~statis --> +<g id="call~~graph~~CallGraph_edge25" class="edge"><title>program~preconvert->proc~statis</title> +<path fill="none" stroke="#000000" d="M49.6902,-230.951C59.7874,-206.42 85.8043,-150.196 124,-117 127.432,-114.017 131.356,-111.391 135.441,-109.097"/> +<polygon fill="#000000" stroke="#000000" points="137.11,-112.176 144.512,-104.596 133.999,-105.905 137.11,-112.176"/> +</g> +<!-- set99 --> +<g id="call~~graph~~CallGraph_node37" class="node"><title>set99</title> +<polygon fill="#777777" stroke="#777777" points="199,-66 145,-66 145,-42 199,-42 199,-66"/> +<text text-anchor="middle" x="172" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">set99</text> +</g> +<!-- program~preconvert->set99 --> +<g id="call~~graph~~CallGraph_edge29" class="edge"><title>program~preconvert->set99</title> +<path fill="none" stroke="#000000" d="M47.6442,-230.72C54.7648,-200.385 77.0598,-121.04 124,-75 127.32,-71.7438 131.232,-68.9438 135.358,-66.549"/> +<polygon fill="#000000" stroke="#000000" points="137.208,-69.5371 144.586,-61.9338 134.077,-63.2764 137.208,-69.5371"/> +</g> +<!-- grib_open_file --> +<g id="call~~graph~~CallGraph_node39" class="node"><title>grib_open_file</title> +<polygon fill="#777777" stroke="#777777" points="212,-24 132,-24 132,-0 212,-0 212,-24"/> +<text text-anchor="middle" x="172" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grib_open_file</text> +</g> +<!-- program~preconvert->grib_open_file --> +<g id="call~~graph~~CallGraph_edge28" class="edge"><title>program~preconvert->grib_open_file</title> +<path fill="none" stroke="#000000" d="M46.3044,-230.865C50.6899,-195.717 67.9305,-92.5616 124,-33 125.034,-31.9019 126.135,-30.8573 127.292,-29.8639"/> +<polygon fill="#000000" stroke="#000000" points="129.414,-32.65 135.57,-24.0274 125.381,-26.9289 129.414,-32.65"/> +</g> +<!-- program~preconvert->grib_close_file --> +<g id="call~~graph~~CallGraph_edge33" class="edge"><title>program~preconvert->grib_close_file</title> +<path fill="none" stroke="#000000" d="M53.1591,-255.293C66.0176,-273.691 92.7728,-308.227 124,-327 163.984,-351.037 215.983,-363.548 253.714,-369.888"/> +<polygon fill="#000000" stroke="#000000" points="253.531,-373.403 263.956,-371.517 254.63,-366.489 253.531,-373.403"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="560pt" height="32pt" + viewBox="0.00 0.00 559.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 555.5,-28 555.5,4 -4,4"/> +<!-- Subroutine --> +<g id="node1" class="node"><title>Subroutine</title> +<polygon fill="#d9534f" stroke="#d9534f" points="64,-24 0,-24 0,-0 64,-0 64,-24"/> +<text text-anchor="middle" x="32" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> +</g> +<!-- Function --> +<g id="node2" class="node"><title>Function</title> +<polygon fill="#d94e8f" stroke="#d94e8f" points="136,-24 82,-24 82,-0 136,-0 136,-24"/> +<text text-anchor="middle" x="109" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> +</g> +<!-- Interface --> +<g id="node3" class="node"><title>Interface</title> +<polygon fill="#a7506f" stroke="#a7506f" points="209.5,-24 154.5,-24 154.5,-0 209.5,-0 209.5,-24"/> +<text text-anchor="middle" x="182" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Interface</text> +</g> +<!-- Unknown Procedure Type --> +<g id="node4" class="node"><title>Unknown Procedure Type</title> +<polygon fill="#777777" stroke="#777777" points="364,-24 228,-24 228,-0 364,-0 364,-24"/> +<text text-anchor="middle" x="296" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Unknown Procedure Type</text> +</g> +<!-- Program --> +<g id="node5" class="node"><title>Program</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="436,-24 382,-24 382,-0 436,-0 436,-24"/> +<text text-anchor="middle" x="409" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> +</g> +<!-- This Page's Entity --> +<g id="node6" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="551.5,-24 454.5,-24 454.5,-0 551.5,-0 551.5,-24"/> +<text text-anchor="middle" x="503" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a procedure to one which it calls. Dashed + arrows point from an interface to procedures which implement that interface. + This could include the module procedures in a generic interface or the + implementation in a submodule of an interface in a parent module. + </p> + </div></div></div></div> + </div> + </div> + + <hr> + </div> <!-- /container --> + <footer> + <div class="container"> + <div class="row"> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> + <div class="col-xs-6 col-md-4 col-md-push-4"> + <p class="text-right"> + Documentation generated by + <a href="https://github.com/cmacmackin/ford">FORD</a> + + </p> + </div> + <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<sup>1</sup></p></div> + </div> + <br> + </div> <!-- /container --> + </footer> + + <!-- Bootstrap core JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> +<!-- + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> +--> + <script src="../js/bootstrap.min.js"></script> + <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> + <script src="../js/ie10-viewport-bug-workaround.js"></script> + + <!-- MathJax JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> + <script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, + jax: ['input/TeX','input/MathML','output/HTML-CSS'], + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] + }); + </script> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="../tipuesearch/tipuesearch_content.js"></script> + <script src="../tipuesearch/tipuesearch_set.js"></script> + <script src="../tipuesearch/tipuesearch.js"></script> + + + </body> +</html> \ No newline at end of file diff --git a/Documentation/FORD/V5/Doc_original/media/css/bootstrap.css b/Documentation/FORD/V6/Doc/media/css/bootstrap.css similarity index 100% rename from Documentation/FORD/V5/Doc_original/media/css/bootstrap.css rename to Documentation/FORD/V6/Doc/media/css/bootstrap.css diff --git a/Documentation/FORD/V5/Doc_original/media/css/bootstrap.min.css b/Documentation/FORD/V6/Doc/media/css/bootstrap.min.css similarity index 100% rename from Documentation/FORD/V5/Doc_original/media/css/bootstrap.min.css rename to Documentation/FORD/V6/Doc/media/css/bootstrap.min.css diff --git a/Documentation/FORD/V5/Doc_original/media/css/font-awesome.css b/Documentation/FORD/V6/Doc/media/css/font-awesome.css similarity index 100% rename from Documentation/FORD/V5/Doc_original/media/css/font-awesome.css rename to Documentation/FORD/V6/Doc/media/css/font-awesome.css diff --git a/Documentation/FORD/V5/Doc_original/media/css/font-awesome.min.css b/Documentation/FORD/V6/Doc/media/css/font-awesome.min.css similarity index 100% rename from Documentation/FORD/V5/Doc_original/media/css/font-awesome.min.css rename to Documentation/FORD/V6/Doc/media/css/font-awesome.min.css diff --git a/Documentation/FORD/V5/Doc_original/media/css/local.css b/Documentation/FORD/V6/Doc/media/css/local.css similarity index 72% rename from Documentation/FORD/V5/Doc_original/media/css/local.css rename to Documentation/FORD/V6/Doc/media/css/local.css index c9a27914f4b008da62efe33d02fcafb6c4a20ce9..8ab50bcaafa5878b1fc5e2440885d87aa94a70e9 100644 --- a/Documentation/FORD/V5/Doc_original/media/css/local.css +++ b/Documentation/FORD/V6/Doc/media/css/local.css @@ -12,6 +12,13 @@ body { white-space:nowrap; } + :target:before { + content:""; + display:block; + height:60px; + margin:-60px 0 0; + } + ol.hierarchy { min-height: 40px; background-color: #f5f5f5; @@ -194,4 +201,82 @@ body { .gitter-chat-embed { z-index: 100000; } - \ No newline at end of file + +table.graph { + text-align: center; +} + + +.graph td.root { + border:2px solid black; + padding:10px; +} + +.graph td.triangle-right:after { + content: ""; + display: block; + border-top: 7px solid transparent; + border-bottom: 7px solid transparent; + border-left: 7px solid black; +} + +.graph td.triangle-left:after { + content: ""; + display: block; + border-top: 7px solid transparent; + border-bottom: 7px solid transparent; + border-right: 7px solid black; +} + +.graph td.node { + color: white; + padding:10px; + border-style: solid; + border-width: 3px 0px 3px 0px; + border-color: white; +} + +.graph td.node a{ + color: white; +} + +.graph td.dashedText, +.graph td.solidText { + padding: 0px 10px 0px 10px; + min-width: 40px; + color: black; + border-color: black; +} + +.graph td.dashedText { + border-bottom-style: dashed; +} + +.graph td.solidText { + border-bottom-style: solid; +} + +.graph td.dashedBottom, +.graph td.dashedTop, +.graph td.solidTop, +.graph td.solidBottom { + min-width: 40px; + color: transparent; + border-color: black; +} + +.graph td.dashedBottom { + border-bottom-style: dashed; +} + +.graph td.dashedTop { + border-top-style: dashed; +} + +.graph td.solidBottom { + border-bottom-style: solid; +} + +.graph td.solidTop { + border-top-style: solid; +} diff --git a/Documentation/FORD/V6/Doc/media/css/pygments.css b/Documentation/FORD/V6/Doc/media/css/pygments.css new file mode 100644 index 0000000000000000000000000000000000000000..4a3a8d85707d7cbb6f43971074a269de9d8f4d68 --- /dev/null +++ b/Documentation/FORD/V6/Doc/media/css/pygments.css @@ -0,0 +1,61 @@ +pre .hll { background-color: #ffffcc } +pre .c { color: #408080; font-style: italic } /* Comment */ +pre .err { border: 1px solid #FF0000 } /* Error */ +pre .k { color: #008000; font-weight: bold } /* Keyword */ +pre .o { color: #666666 } /* Operator */ +pre .cm { color: #408080; font-style: italic } /* Comment.Multiline */ +pre .cp { color: #BC7A00 } /* Comment.Preproc */ +pre .c1 { color: #408080; font-style: italic } /* Comment.Single */ +pre .cs { color: #408080; font-style: italic } /* Comment.Special */ +pre .gd { color: #A00000 } /* Generic.Deleted */ +pre .ge { font-style: italic } /* Generic.Emph */ +pre .gr { color: #FF0000 } /* Generic.Error */ +pre .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +pre .gi { color: #00A000 } /* Generic.Inserted */ +pre .go { color: #888888 } /* Generic.Output */ +pre .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ +pre .gs { font-weight: bold } /* Generic.Strong */ +pre .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +pre .gt { color: #0044DD } /* Generic.Traceback */ +pre .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ +pre .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ +pre .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ +pre .kp { color: #008000 } /* Keyword.Pseudo */ +pre .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ +pre .kt { color: #B00040 } /* Keyword.Type */ +pre .m { color: #666666 } /* Literal.Number */ +pre .s { color: #BA2121 } /* Literal.String */ +pre .na { color: #7D9029 } /* Name.Attribute */ +pre .nb { color: #008000 } /* Name.Builtin */ +pre .nc { color: #0000FF; font-weight: bold } /* Name.Class */ +pre .no { color: #880000 } /* Name.Constant */ +pre .nd { color: #AA22FF } /* Name.Decorator */ +pre .ni { color: #999999; font-weight: bold } /* Name.Entity */ +pre .ne { color: #D2413A; font-weight: bold } /* Name.Exception */ +pre .nf { color: #0000FF } /* Name.Function */ +pre .nl { color: #A0A000 } /* Name.Label */ +pre .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ +pre .nt { color: #008000; font-weight: bold } /* Name.Tag */ +pre .nv { color: #19177C } /* Name.Variable */ +pre .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ +pre .w { color: #bbbbbb } /* Text.Whitespace */ +pre .mf { color: #666666 } /* Literal.Number.Float */ +pre .mh { color: #666666 } /* Literal.Number.Hex */ +pre .mi { color: #666666 } /* Literal.Number.Integer */ +pre .mo { color: #666666 } /* Literal.Number.Oct */ +pre .sb { color: #BA2121 } /* Literal.String.Backtick */ +pre .sc { color: #BA2121 } /* Literal.String.Char */ +pre .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ +pre .s2 { color: #BA2121 } /* Literal.String.Double */ +pre .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */ +pre .sh { color: #BA2121 } /* Literal.String.Heredoc */ +pre .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */ +pre .sx { color: #008000 } /* Literal.String.Other */ +pre .sr { color: #BB6688 } /* Literal.String.Regex */ +pre .s1 { color: #BA2121 } /* Literal.String.Single */ +pre .ss { color: #19177C } /* Literal.String.Symbol */ +pre .bp { color: #008000 } /* Name.Builtin.Pseudo */ +pre .vc { color: #19177C } /* Name.Variable.Class */ +pre .vg { color: #19177C } /* Name.Variable.Global */ +pre .vi { color: #19177C } /* Name.Variable.Instance */ +pre .il { color: #666666 } /* Literal.Number.Integer.Long */ diff --git a/Documentation/FORD/V5/Doc_original/media/fonts/fontawesome-webfont.eot b/Documentation/FORD/V6/Doc/media/fonts/fontawesome-webfont.eot similarity index 100% rename from Documentation/FORD/V5/Doc_original/media/fonts/fontawesome-webfont.eot rename to Documentation/FORD/V6/Doc/media/fonts/fontawesome-webfont.eot diff --git a/Documentation/FORD/V5/Doc_original/media/fonts/fontawesome-webfont.svg b/Documentation/FORD/V6/Doc/media/fonts/fontawesome-webfont.svg similarity index 100% rename from Documentation/FORD/V5/Doc_original/media/fonts/fontawesome-webfont.svg rename to Documentation/FORD/V6/Doc/media/fonts/fontawesome-webfont.svg diff --git a/Documentation/FORD/V5/Doc_original/media/fonts/fontawesome-webfont.ttf b/Documentation/FORD/V6/Doc/media/fonts/fontawesome-webfont.ttf similarity index 100% rename from Documentation/FORD/V5/Doc_original/media/fonts/fontawesome-webfont.ttf rename to Documentation/FORD/V6/Doc/media/fonts/fontawesome-webfont.ttf diff --git a/Documentation/FORD/V5/Doc_original/media/fonts/fontawesome-webfont.woff b/Documentation/FORD/V6/Doc/media/fonts/fontawesome-webfont.woff similarity index 100% rename from Documentation/FORD/V5/Doc_original/media/fonts/fontawesome-webfont.woff rename to Documentation/FORD/V6/Doc/media/fonts/fontawesome-webfont.woff diff --git a/Documentation/FORD/V5/Doc_original/media/fonts/glyphicons-halflings-regular.eot b/Documentation/FORD/V6/Doc/media/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from Documentation/FORD/V5/Doc_original/media/fonts/glyphicons-halflings-regular.eot rename to Documentation/FORD/V6/Doc/media/fonts/glyphicons-halflings-regular.eot diff --git a/Documentation/FORD/V5/Doc_original/media/fonts/glyphicons-halflings-regular.svg b/Documentation/FORD/V6/Doc/media/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from Documentation/FORD/V5/Doc_original/media/fonts/glyphicons-halflings-regular.svg rename to Documentation/FORD/V6/Doc/media/fonts/glyphicons-halflings-regular.svg diff --git a/Documentation/FORD/V5/Doc_original/media/fonts/glyphicons-halflings-regular.ttf b/Documentation/FORD/V6/Doc/media/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from Documentation/FORD/V5/Doc_original/media/fonts/glyphicons-halflings-regular.ttf rename to Documentation/FORD/V6/Doc/media/fonts/glyphicons-halflings-regular.ttf diff --git a/Documentation/FORD/V5/Doc_original/media/fonts/glyphicons-halflings-regular.woff b/Documentation/FORD/V6/Doc/media/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from Documentation/FORD/V5/Doc_original/media/fonts/glyphicons-halflings-regular.woff rename to Documentation/FORD/V6/Doc/media/fonts/glyphicons-halflings-regular.woff diff --git a/Documentation/FORD/V5/Doc_original/media/js/bootstrap.js b/Documentation/FORD/V6/Doc/media/js/bootstrap.js similarity index 100% rename from Documentation/FORD/V5/Doc_original/media/js/bootstrap.js rename to Documentation/FORD/V6/Doc/media/js/bootstrap.js diff --git a/Documentation/FORD/V5/Doc_original/media/js/bootstrap.min.js b/Documentation/FORD/V6/Doc/media/js/bootstrap.min.js similarity index 100% rename from Documentation/FORD/V5/Doc_original/media/js/bootstrap.min.js rename to Documentation/FORD/V6/Doc/media/js/bootstrap.min.js diff --git a/Documentation/FORD/V5/Doc_original/media/js/ie10-viewport-bug-workaround.js b/Documentation/FORD/V6/Doc/media/js/ie10-viewport-bug-workaround.js similarity index 100% rename from Documentation/FORD/V5/Doc_original/media/js/ie10-viewport-bug-workaround.js rename to Documentation/FORD/V6/Doc/media/js/ie10-viewport-bug-workaround.js diff --git a/Documentation/FORD/V5/Doc_original/media/js/jquery-2.1.3.min.js b/Documentation/FORD/V6/Doc/media/js/jquery-2.1.3.min.js similarity index 100% rename from Documentation/FORD/V5/Doc_original/media/js/jquery-2.1.3.min.js rename to Documentation/FORD/V6/Doc/media/js/jquery-2.1.3.min.js diff --git a/Documentation/FORD/V5/Doc_original/media/js/svg-pan-zoom.min.js b/Documentation/FORD/V6/Doc/media/js/svg-pan-zoom.min.js similarity index 100% rename from Documentation/FORD/V5/Doc_original/media/js/svg-pan-zoom.min.js rename to Documentation/FORD/V6/Doc/media/js/svg-pan-zoom.min.js diff --git a/Documentation/FORD/V5/Doc_original/media/tipuesearch/img/loader.gif b/Documentation/FORD/V6/Doc/media/tipuesearch/img/loader.gif similarity index 100% rename from Documentation/FORD/V5/Doc_original/media/tipuesearch/img/loader.gif rename to Documentation/FORD/V6/Doc/media/tipuesearch/img/loader.gif diff --git a/Documentation/FORD/V5/Doc_original/media/tipuesearch/img/search.png b/Documentation/FORD/V6/Doc/media/tipuesearch/img/search.png similarity index 100% rename from Documentation/FORD/V5/Doc_original/media/tipuesearch/img/search.png rename to Documentation/FORD/V6/Doc/media/tipuesearch/img/search.png diff --git a/Documentation/FORD/V5/Doc_original/media/tipuesearch/tipuesearch.css b/Documentation/FORD/V6/Doc/media/tipuesearch/tipuesearch.css similarity index 100% rename from Documentation/FORD/V5/Doc_original/media/tipuesearch/tipuesearch.css rename to Documentation/FORD/V6/Doc/media/tipuesearch/tipuesearch.css diff --git a/Documentation/FORD/V5/Doc_original/media/tipuesearch/tipuesearch.js b/Documentation/FORD/V6/Doc/media/tipuesearch/tipuesearch.js similarity index 100% rename from Documentation/FORD/V5/Doc_original/media/tipuesearch/tipuesearch.js rename to Documentation/FORD/V6/Doc/media/tipuesearch/tipuesearch.js diff --git a/Documentation/FORD/V5/Doc_original/media/tipuesearch/tipuesearch.min.js b/Documentation/FORD/V6/Doc/media/tipuesearch/tipuesearch.min.js similarity index 100% rename from Documentation/FORD/V5/Doc_original/media/tipuesearch/tipuesearch.min.js rename to Documentation/FORD/V6/Doc/media/tipuesearch/tipuesearch.min.js diff --git a/Documentation/FORD/V6/Doc/media/tipuesearch/tipuesearch_content.js b/Documentation/FORD/V6/Doc/media/tipuesearch/tipuesearch_content.js new file mode 100644 index 0000000000000000000000000000000000000000..2012a7c43415b9fe55f69de885085e5217227314 --- /dev/null +++ b/Documentation/FORD/V6/Doc/media/tipuesearch/tipuesearch_content.js @@ -0,0 +1 @@ +var tipuesearch = {"pages":[{"text":"Flex_extract: Calculation of etadot Note for this version\nAll code transferred to free form.\nSome code cosmetics, should not have any effects Developer Info Leopold Haimberger 1 1 Univ. of Vienna, Dept. of Meteorology & Geophysics","tags":"home","loc":"index.html","title":" Flex_extract: Calculation of etadot "},{"text":"Files dependent on this one sourcefile~~rwgrib2.f90~~AfferentGraph sourcefile~rwgrib2.f90 rwGRIB2.f90 sourcefile~preconvert_new.f90 preconvert_new.f90 sourcefile~preconvert_new.f90->sourcefile~rwgrib2.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Modules RWGRIB2 Source Code rwGRIB2.f90 Source Code MODULE RWGRIB2 CONTAINS SUBROUTINE READLATLON ( FILENAME , FELD , MAXL , MAXB , MLEVEL , MPAR ) !! Read a field from GRIB file on lat-lon grid USE GRIB_API IMPLICIT NONE integer :: ifile integer :: iret integer :: n , mk , parid , nm integer :: i , k integer , dimension (:), allocatable :: igrib integer :: numberOfPointsAlongAParallel integer :: numberOfPointsAlongAMeridian real , dimension (:), allocatable :: values integer :: numberOfValues real , dimension ( maxl , maxb , mlevel ) :: feld integer :: maxl , maxb , mlevel , mstride , mpar (:), irest , div , level integer :: l ( size ( mpar )) character * ( * ) :: filename feld = 0. call grib_open_file ( ifile , TRIM ( FILENAME ), 'r' ) ! count the messages in the file call grib_count_in_file ( ifile , n ) allocate ( igrib ( n )) igrib =- 1 ! Load the messages from the file. DO i = 1 , n call grib_new_from_file ( ifile , igrib ( i ), iret ) END DO ! we can close the file call grib_close_file ( ifile ) nm = size ( mpar ) div = mlevel / nm l = 0 ! Loop on all the messages in memory iloop : DO i = 1 , n ! write(*,*) 'processing message number ',i ! get as a integer call grib_get ( igrib ( i ), 'numberOfPointsAlongAParallel' , & numberOfPointsAlongAParallel ) ! get as a integer call grib_get ( igrib ( i ), 'numberOfPointsAlongAMeridian' , & numberOfPointsAlongAMeridian ) call grib_get ( igrib ( i ), 'numberOfVerticalCoordinateValues' , mk ) call grib_get_size ( igrib ( i ), 'values' , numberOfValues ) ! write(*,*) 'numberOfValues=',numberOfValues allocate ( values ( numberOfValues ), stat = iret ) ! get data values call grib_get ( igrib ( i ), 'values' , values ) call grib_get ( igrib ( i ), 'paramId' , parid ) call grib_get ( igrib ( i ), 'level' , level ) kloop : do k = 1 , nm if ( parid . eq . mpar ( k )) then ! l(k)=l(k)+1 feld (:,:,( k - 1 ) * div + level ) = reshape ( values ,( / maxl , maxb / )) ! print*,(k-1)*div+l(k),parid exit kloop end if end do kloop if ( k . gt . nm . and . parid . ne . mpar ( nm )) then write ( * , * ) k , nm , parid , mpar ( nm ) write ( * , * ) 'ERROR readlatlon: parameter ' , parid , 'is not' , mpar stop end if ! print*,i END DO iloop write ( * , * ) 'readlatlon: ' , i - 1 , ' records read' DO i = 1 , n call grib_release ( igrib ( i )) END DO deallocate ( values ) deallocate ( igrib ) END SUBROUTINE READLATLON SUBROUTINE WRITELATLON ( iunit , igrib , ogrib , FELD , MAXL , MAXB , MLEVEL ,& MLEVELIST , MSTRIDE , MPAR ) !! write a field on lat-lon grid to GRIB file USE GRIB_API IMPLICIT NONE INTEGER IFIELD , MLEVEL , MNAUF , I , J , K , L , MSTRIDE , IERR , JOUT INTEGER MPAR ( MSTRIDE ), MAXL , MAXB , LEVMIN , LEVMAX INTEGER IUNIT , igrib , ogrib REAL ZSEC4 ( MAXL * MAXB ) REAL FELD ( MAXL , MAXB , MLEVEL ) CHARACTER * ( * ) MLEVELIST INTEGER ILEVEL ( MLEVEL ), MLINDEX ( MLEVEL + 1 ), LLEN ! parse MLEVELIST LLEN = len ( trim ( MLEVELIST )) if ( index ( MLEVELIST , 'to' ) . ne . 0 . or . index ( MLEVELIST , 'TO' ) . ne . 0 ) THEN i = index ( MLEVELIST , '/' ) read ( MLEVELIST ( 1 : i - 1 ), * ) LEVMIN i = index ( MLEVELIST , '/' ,. true .) read ( MLEVELIST ( i + 1 : LLEN ), * ) LEVMAX l = 0 do i = LEVMIN , LEVMAX l = l + 1 ILEVEL ( l ) = i end do else l = 1 MLINDEX ( 1 ) = 0 do i = 1 , LLEN if ( MLEVELIST ( i : i ) . eq . '/' ) THEN l = l + 1 MLINDEX ( l ) = i end if end do MLINDEX ( l + 1 ) = LLEN + 1 do i = 1 , l read ( MLEVELIST ( MLINDEX ( i ) + 1 : MLINDEX ( i + 1 ) - 1 ), * ) ILEVEL ( i ) end do end if DO k = 1 , l call grib_set ( igrib , \"level\" , ILEVEL ( k )) DO j = 1 , MSTRIDE call grib_set ( igrib , \"paramId\" , MPAR ( j )) ! if (MPAR(j) .eq. 87) then ! call grib_set(igrib,\"shortName\",\"etadot\") ! call grib_set(igrib,\"units\",\"Pa,s**-1\") ! end if ! if (MPAR(j) .eq. 77) then ! call grib_set(igrib,\"shortName\",\"etadot\") ! call grib_set(igrib,\"units\",\"s**-1\") ! end if if ( l . ne . mlevel ) then zsec4 ( 1 : maxl * maxb ) = RESHAPE ( FELD (:,:, ILEVEL ( k )),( / maxl * maxb / )) else zsec4 ( 1 : maxl * maxb ) = RESHAPE ( FELD (:,:, k ),( / maxl * maxb / )) end if call grib_set ( igrib , \"values\" , zsec4 ) call grib_write ( igrib , iunit ) END DO END DO END SUBROUTINE WRITELATLON SUBROUTINE READSPECTRAL ( FILENAME , CXMN , MNAUF , MLEVEL , MAXLEV , MPAR , A , B ) !! read a GRIB file in spherical harmonics USE GRIB_API IMPLICIT NONE integer :: ifile integer :: iret integer :: n , mk , div , nm , k integer :: i , j , parid integer , dimension (:), allocatable :: igrib real , dimension (:), allocatable :: values integer :: numberOfValues , maxlev REAL :: A ( MAXLEV + 1 ), B ( MAXLEV + 1 ), pv ( 2 * MAXLEV + 2 ) REAL :: CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) integer :: maxl , maxb , mlevel , mstride , mpar (:), mnauf , ioffset , ipar , ilev , l ( size ( mpar )) character * ( * ) :: filename call grib_open_file ( ifile , TRIM ( FILENAME ), 'r' ) ! count the messages in the file call grib_count_in_file ( ifile , n ) allocate ( igrib ( n )) igrib =- 1 ! Load the messages from the file. DO i = 1 , n call grib_new_from_file ( ifile , igrib ( i ), iret ) END DO ! we can close the file call grib_close_file ( ifile ) l = 0 ! Loop on all the messages in memory iloop : DO i = 1 , n ! write(*,*) 'processing message number ',i ! get as a integer call grib_get ( igrib ( i ), 'pentagonalResolutionParameterJ' , j ) call grib_get_size ( igrib ( i ), 'values' , numberOfValues ) ! write(*,*) 'numberOfValues=',numberOfValues call grib_get ( igrib ( i ), 'numberOfVerticalCoordinateValues' , mk ) call grib_get ( igrib ( i ), 'level' , ilev ) call grib_get ( igrib ( i ), 'pv' , pv ) allocate ( values ( numberOfValues ), stat = iret ) ! get data values call grib_get ( igrib ( i ), 'values' , values ) ! IOFFSET=mod(i-1,MSTRIDE)*(mk/2-1) ! CXMN(:,IOFFSET+ilev)=values(1:(MNAUF+1)*(MNAUF+2)) call grib_get ( igrib ( i ), 'paramId' , parid ) nm = size ( mpar ) div = mlevel / nm kloop : do k = 1 , nm if ( parid . eq . mpar ( k )) then l ( k ) = l ( k ) + 1 cxmn (:,( k - 1 ) * div + l ( k )) = values ( 1 :( MNAUF + 1 ) * ( MNAUF + 2 )) ! print*,(k-1)*div+l(k),parid exit kloop end if end do kloop if ( k . gt . nm . and . parid . ne . mpar ( nm )) then write ( * , * ) k , nm , parid , mpar ( nm ) write ( * , * ) 'ERROR readspectral: parameter ' , parid , 'is not' , mpar stop end if ! print*,i END DO iloop write ( * , * ) 'readspectral: ' , i - 1 , ' records read' DO i = 1 , n call grib_release ( igrib ( i )) END DO deallocate ( values ) deallocate ( igrib ) A = pv ( 1 : 1 + MAXLEV ) B = pv ( 2 + MAXLEV : 2 * MAXLEV + 2 ) END SUBROUTINE READSPECTRAL END MODULE RWGRIB2","tags":"","loc":"sourcefile/rwgrib2.f90.html","title":"rwGRIB2.f90 – Flex_extract: Calculation of etadot"},{"text":"This file depends on sourcefile~~preconvert_new.f90~~EfferentGraph sourcefile~preconvert_new.f90 preconvert_new.f90 sourcefile~rwgrib2.f90 rwGRIB2.f90 sourcefile~preconvert_new.f90->sourcefile~rwgrib2.f90 sourcefile~ftrafo.f90 ftrafo.f90 sourcefile~preconvert_new.f90->sourcefile~ftrafo.f90 sourcefile~phgrreal.f90 phgrreal.f90 sourcefile~preconvert_new.f90->sourcefile~phgrreal.f90 sourcefile~grphreal.f90 grphreal.f90 sourcefile~preconvert_new.f90->sourcefile~grphreal.f90 sourcefile~ftrafo.f90->sourcefile~phgrreal.f90 sourcefile~grphreal.f90->sourcefile~phgrreal.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Programs PRECONVERT Functions IA Subroutines STATIS Source Code preconvert_new.f90 Source Code PROGRAM PRECONVERT !! Prepare input data for FLEXPART, esp. vertical velocity as !! etadot or etadot * dp/deta !*---------------------------------------------------------------- ! author: L. Haimberger ! date: 03/2010 ! version: V4.0 ! !## Program PRECONVERT ! ! **Prepares input data for POP model meteorological preprocessor** ! !----------------------------------------------------------------- ! ! Calculation of etapoint on a regular \\lambda-\\phi grid and writing ! `U,V,ETAPOINT,T,PS,Q,SD,MSL,TCC,10U, 10V, 2T,2D,LSP,CP,SSHF,SSR, ! EWSS,NSSS` ! to an output file (input and output in GRIB 1 or 2 format). ! etapoint is defined as the total time derivative of ! ECMWF vertical coordinate eta multiplied by the derivative ! of pressure with respect to eta: ! \\frac{\\mathrm{d}\\eta}{\\mathrm{d}t}\\frac{\\partial p}{\\partial \\eta} ! !### Version history and authors: ! - 04/1994: Leopold Haimberger, Gerhard Wotawa ! ! - 2003-05-11: Alexander Beck ! ! - 12/2006: L. Haimberger V2.0, ! handle arbitrary regular grids and T799 resolution data ! ! - 03/2010: L. Haimberger V4.0, ! handle GRIB edition 2 fields and T1279 resolution data ! - 04-06/2019: Petra Seibert, ! beautify code and add FORD documentation ! !----------------------------------------------------------------- ! # !## Input required: ! ! UNIT FILE PARAMETER(S) DATA REPRESENTATION ! ! 11 fort.11 T,U,V regular lambda phi grid ! 12 fort.12 D regular lambda phi grid ! 13 fort.13 LNSP spherical harmonics ! 14 fort.14 SD,MSL,TCC,10U, ! 10V,2T,2D regular lambda phi grid ! 16 fort.16 LSP,CP,SSHF, ! SSR,EWSS,NSSS regular lambda phi grid ! 17 fort.17 Q regular lambda phi grid ! !------------------------------------------------------------------ ! !### Output produced: ! ! UNIT FILE PARAMETER(S) DATA REPRESENTATION ! ! 15 fort.15 `U,V,ETA,T,PS, ! `Q,SD,MSL,TCC,` ! `10U,10V,2T,2D,` regular lambda phi grid ! `LSP,CP,SSHF,` ! `SSR,EWSS,NSSS` ! !------------------------------------------------------------------ USE PHTOGR USE GRTOPH USE FTRAFO USE RWGRIB2 USE GRIB_API IMPLICIT NONE REAL , ALLOCATABLE , DIMENSION (:,:) :: LNPS REAL , ALLOCATABLE , DIMENSION (:,:) :: Z REAL , ALLOCATABLE , DIMENSION (:,:,:) :: T , UV , UV2 REAL , ALLOCATABLE , DIMENSION (:,:,:) :: QA , OM , OMR REAL , ALLOCATABLE , DIMENSION (:,:,:) :: DIV , ETA , ETAR REAL , ALLOCATABLE , DIMENSION (:,:) :: DPSDL , DPSDM REAL , ALLOCATABLE , DIMENSION (:,:,:) :: PS , DPSDT REAL , ALLOCATABLE , DIMENSION (:,:,:) :: SURF , FLUX , OROLSM REAL , ALLOCATABLE , DIMENSION (:) :: WSAVE , H , SINL , COSL , WSAVE2 REAL , ALLOCATABLE , DIMENSION (:) :: BREITE , GBREITE , AK , BK , pv ! Arrays for Gaussian grid calculations REAL :: X1 , X2 , RMS , MW , SIG , LAM REAL , ALLOCATABLE :: CUA (:,:,:), CVA (:,:,:) REAL , ALLOCATABLE , DIMENSION (:,:) :: P , PP , P2 REAL , ALLOCATABLE , DIMENSION (:,:) :: XMN , HILFUV REAL , ALLOCATABLE , DIMENSION (:) :: LNPMN , LNPMN2 , LNPMN3 REAL , ALLOCATABLE , DIMENSION (:) :: WEIGHT REAL , ALLOCATABLE , DIMENSION (:,:) :: UGVG REAL , ALLOCATABLE , DIMENSION (:,:) :: DG , ETAG REAL , ALLOCATABLE , DIMENSION (:,:) :: GWSAVE REAL , ALLOCATABLE , DIMENSION (:) :: PSG , HILF ! end arrays for Gaussian grid calculations INTEGER , ALLOCATABLE , DIMENSION (:) :: MLAT , MPSURF , MPFLUX , MPORO , MPAR INTEGER , ALLOCATABLE :: GIFAX (:,:) REAL PI , COSB , DAK , DBK , P00 REAL URLAR8 , JMIN1 , LLLAR8 , MAXBMIN1 , PIR8 , DCOSB INTEGER I , J , K , L , IERR , M , LTEST , MK , NGI , NGJ INTEGER MFLUX , MSURF , MORO INTEGER LUNIT , LUNIT2 INTEGER MAXL , MAXB , MLEVEL , LEVOUT , LEVMIN , LEVMAX INTEGER MOMEGA , MOMEGADIFF , MGAUSS , MSMOOTH , MNAUF , META , METADIFF INTEGER MDPDETA , METAPAR REAL RLO0 , RLO1 , RLA0 , RLA1 CHARACTER * 300 MLEVELIST INTEGER MAUF , MANF , IFAX ( 10 ) INTEGER IGRIB ( 1 ), iret , ogrib CHARACTER * 80 FILENAME NAMELIST / NAMGEN / & MAXL , MAXB , & MLEVEL , MLEVELIST , MNAUF , METAPAR , & RLO0 , RLO1 , RLA0 , RLA1 , & MOMEGA , MOMEGADIFF , MGAUSS , MSMOOTH , META , METADIFF ,& MDPDETA LTEST = 1 CALL POSNAM ( 4 , 'NAMGEN' ) READ ( 4 , NAMGEN ) MAUF = INT ( 36 0. * ( REAL ( MAXL ) - 1. ) / ( RLO1 - RLO0 ) + 0.0001 ) ! PRINT*, MAUF MANF = INT ( REAL ( MAUF ) / 36 0. * ( 36 0. + RLO0 ) + 1.0001 ) IF ( MANF . gt . MAUF ) MANF = MANF - MAUF !------------------------------------------------------------------ !! ALLOCATE VARIABLES !------------------------------------------------------------------ ALLOCATE ( LNPS ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , 1 )) ALLOCATE ( H ( 0 :( MNAUF + 2 ) * ( MNAUF + 3 ) / 2 )) ALLOCATE ( OM ( MAXL , MAXB , MLEVEL )) ALLOCATE ( ETA ( MAXL , MAXB , MLEVEL )) ALLOCATE ( PS ( MAXL , MAXB , 1 ), DPSDT ( MAXL , MAXB , 1 )) ALLOCATE ( WSAVE ( 4 * MAUF + 15 ), WSAVE2 ( 4 * MAUF + 15 )) ALLOCATE ( BREITE ( MAXB ), AK ( MLEVEL + 1 ), BK ( MLEVEL + 1 ), PV ( 2 * MLEVEL + 2 )) ALLOCATE ( MPAR ( 2 )) ALLOCATE ( COSL ( MAXL ), SINL ( MAXL )) ALLOCATE ( CUA ( 2 , 4 , MLEVEL ), CVA ( 2 , 4 , MLEVEL )) !------------------------------------------------------------------ ! GAUSS STUFF !------------------------------------------------------------------ IF ( MGAUSS . EQ . 1 ) THEN LUNIT = 0 FILENAME = 'fort.18' CALL GRIB_OPEN_FILE ( LUNIT , TRIM ( FILENAME ), 'R' ) CALL GRIB_NEW_FROM_FILE ( LUNIT , IGRIB ( 1 ), IRET ) ! we can close the file CALL GRIB_CLOSE_FILE ( LUNIT ) ! call grib_get(igrib(1),'gridType', j) NGJ = MNAUF + 1 ALLOCATE ( GWSAVE ( 8 * NGJ + 15 , NGJ / 2 )) ALLOCATE ( GIFAX ( 10 , NGJ )) ALLOCATE ( GBREITE ( NGJ ), WEIGHT ( NGJ )) ALLOCATE ( MLAT ( NGJ )) ALLOCATE ( P ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , NGJ / 2 )) ALLOCATE ( PP ( NGJ / 2 , 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 )) ALLOCATE ( Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , MAXB )) CALL GRIB_GET ( IGRIB ( 1 ), 'numberOfPointsAlongAMeridian' , NGJ ) get as a integer call grib_get ( igrib ( 1 ), 'pl' , MLAT ) NGI = SUM ( MLAT ) CALL GRIB_GET ( IGRIB ( 1 ), 'numberOfVerticalCoordinateValues' , MK ) IF ( MK / 2 - 1 . NE . MLEVEL ) THEN WRITE ( * , * ) 'FATAL: Number of model levels' , mk , & ' does not agree with' , MLEVEL , ' in namelist' STOP END IF call grib_get ( igrib ( 1 ), 'pv' , pv ) AK = PV ( 1 : 1 + MLEVEL ) BK = PV ( 2 + MLEVEL : 2 * MLEVEL + 2 ) ALLOCATE ( LNPMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 )) ALLOCATE ( LNPMN2 ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 )) ALLOCATE ( UGVG ( NGI , 2 * MLEVEL ), HILFUV ( 2 * MAXL , 2 )) ALLOCATE ( DPSDL ( NGI , 1 ), DPSDM ( NGI , 1 )) ALLOCATE ( PSG ( NGI ), HILF ( NGI )) ALLOCATE ( UV ( MAXL , MAXB , 2 * MLEVEL )) ! ALLOCATE (UV2(MAXL, MAXB, 2*MLEVEL)) ALLOCATE ( XMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , 2 * MLEVEL )) ALLOCATE ( DG ( NGI , MLEVEL ), ETAG ( NGI , MLEVEL )) !! Initialisieren Legendretransformation auf das LaT/LON Gitter PI = ACOS ( - 1.D0 ) !$OMP PARALLEL DO DO 20 J = 1 , MAXB BREITE ( J ) = SIN (( RLA1 - ( J - 1.D0 ) * ( RLA1 - RLA0 ) / ( MAXB - 1 )) * PI / 18 0.D0 ) CALL PLGNFA ( MNAUF , BREITE ( J ), Z ( 0 , J )) 20 CONTINUE !$OMP END PARALLEL DO ! Avoid possible Pole problem ! IF (RLA0 .EQ. -90.0) BREITE(MAXB)=sin(-89.99*PI/180.d0) ! IF (RLA1 .EQ. 90.0) BREITE(1)=sin(89.99*PI/180.d0) !* Initialisation of fields for FFT and Legendre transformation ! to Gaussian grid and back to phase space X1 =- 1.D0 X2 = 1.D0 CALL GAULEG ( X1 , X2 , GBREITE , WEIGHT , NGJ ) !$OMP PARALLEL DO PRIVATE(M) DO J = 1 , NGJ / 2 CALL PLGNFA ( MNAUF , GBREITE ( J ), P (:, J )) DO M = 0 ,( MNAUF + 3 ) * ( MNAUF + 4 ) / 2 PP ( J , M ) = P ( M , J ) END DO END DO !$OMP END PARALLEL DO ! MPAR(1)=152 FILENAME = 'fort.12' CALL READSPECTRAL ( FILENAME , LNPMN , MNAUF , 1 , MLEVEL ,( / 152 / ), AK , BK ) ! goto 111 CALL SET99 ( WSAVE , IFAX , mauf ) CALL PHGCUT ( LNPMN , PS , WSAVE , IFAX , Z , & MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , 1 ) CALL STATIS ( MAXL , MAXB , 1 , EXP ( PS ), RMS , MW , SIG ) WRITE ( * , '(A12,3F12.4)' ) 'STATISTICS: ' , RMS , MW , SIG DO J = 1 , NGJ / 2 CALL SET99 ( GWSAVE ( 1 , J ), GIFAX ( 1 , J ), MLAT ( J )) END DO CALL PHGR213 ( LNPMN , HILF , GWSAVE , GIFAX , P , MLAT , MNAUF , NGI , NGJ , 1 ) PSG = HILF CALL GRPH213 ( LNPMN2 , PSG , GWSAVE , GIFAX , PP , WEIGHT , MLAT , & MNAUF , NGI , NGJ , 1 ) CALL PHGR213 ( LNPMN2 , HILF , GWSAVE , GIFAX , P , MLAT , MNAUF , NGI , NGJ , 1 ) HILF = exp ( PSG ) - exp ( HILF ) CALL STATIS ( NGI , 1 , 1 , HILF , RMS , MW , SIG ) WRITE ( * , '(A12,3F11.4)' ) 'STATISTICS: ' , RMS , MW , SIG PSG = EXP ( PSG ) HILF = PSG CALL STATIS ( NGI , 1 , 1 , HILF , RMS , MW , SIG ) WRITE ( * , '(A12,3F11.4)' ) 'STATISTICS: ' , RMS , MW , SIG 111 FILENAME = 'fort.10' CALL READSPECTRAL ( FILENAME , XMN , MNAUF , 2 * MLEVEL , MLEVEL ,( / 131 , 132 / ), AK , BK ) !! Transformieren des Windes auf das Gaussgitter CALL PHGR213 ( XMN , UGVG , GWSAVE , GIFAX , P , MLAT , MNAUF , NGI , NGJ , 2 * MLEVEL ) DO K = 1 , MLEVEL ! North Pole CALL JSPPOLE ( XMN (:, K ), 1 , MNAUF ,. TRUE ., CUA (:,:, K )) CALL JSPPOLE ( XMN (:, MLEVEL + K ), 1 , MNAUF ,. TRUE ., CVA (:,:, K )) ! South Pole CALL JSPPOLE ( XMN (:, K ), - 1 , MNAUF ,. TRUE ., CUA (:, 3 : 4 , K )) CALL JSPPOLE ( XMN (:, MLEVEL + K ), - 1 , MNAUF ,. TRUE ., CVA (:, 3 : 4 , K )) END DO DO K = 1 , 2 * MLEVEL IF ( MSMOOTH . ne . 0 ) CALL SPFILTER ( XMN (:, K ), MNAUF , MSMOOTH ) END DO CALL PHGCUT ( XMN , UV , WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , 2 * MLEVEL ) 112 FILENAME = 'fort.13' CALL READSPECTRAL ( FILENAME , XMN , MNAUF , MLEVEL , MLEVEL ,( / 155 / ), AK , BK ) !! Transformieren der horizontalen Divergenz auf das Gaussgitter CALL PHGR213 ( XMN , DG , GWSAVE , GIFAX , P , MLAT , MNAUF , NGI , NGJ , MLEVEL ) !! Berechnung des Gradienten des Logarithmus des Bodendrucks auf dem Gaussgitter CALL PHGRAD ( LNPMN , DPSDL , DPSDM , GWSAVE , GIFAX , P , H , MLAT , MNAUF , NGI , NGJ , 1 ) !! Berechnung der Vertikalgeschwindigkeit auf dem Gaussgitter CALL CONTGL ( HILF , DPSDL , DPSDM , DG , UGVG (:, 1 ), UGVG (:, MLEVEL + 1 ), & GBREITE , ETAG , MLAT , AK , BK , NGI , NGJ , MLEVEL ) CALL GRPH213 ( XMN , ETAG , GWSAVE , GIFAX , PP , WEIGHT , MLAT , MNAUF , NGI , NGJ , MLEVEL ) DO K = 1 , MLEVEL IF ( MSMOOTH . ne . 0 ) CALL SPFILTER ( XMN (:, K ), MNAUF , MSMOOTH ) END DO CALL PHGCUT ( XMN , ETA , WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , MLEVEL ) CALL GRPH213 ( XMN , HILF , GWSAVE , GIFAX , PP , WEIGHT , MLAT , MNAUF , NGI , NGJ , 1 ) IF ( MSMOOTH . ne . 0 ) CALL SPFILTER ( XMN (:, 1 ), MNAUF , MSMOOTH ) CALL PHGCUT ( XMN , DPSDT , WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , 1 ) ! GOTO 114 CALL STATIS ( MAXL , MAXB , 1 , DPSDT , RMS , MW , SIG ) WRITE ( * , '(A12,3F11.4)' ) 'STATISTICS DPSDT: ' , RMS , MW , SIG IF ( MOMEGADIFF . ne . 0 ) THEN !! Berechnung von Omega auf dem Gaussgitter CALL OMEGA ( PSG , DPSDL , DPSDM , DG , UGVG (:, 1 ), UGVG (:, MLEVEL + 1 ), & GBREITE , ETAG , MLAT , AK , BK , NGI , NGJ , MLEVEL ) CALL GRPH213 ( XMN , ETAG , GWSAVE , GIFAX , PP , WEIGHT , MLAT , MNAUF , NGI , NGJ , MLEVEL ) DO K = 1 , MLEVEL IF ( MSMOOTH . ne . 0 ) CALL SPFILTER ( XMN (:, K ), MNAUF , MSMOOTH ) END DO CALL PHGCUT ( XMN , OM , WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , MLEVEL ) END IF ! MOMEGA CALL GRPH213 ( XMN , PSG , GWSAVE , GIFAX , PP , WEIGHT , MLAT , MNAUF , NGI , NGJ , 1 ) CALL PHGCUT ( XMN , PS , WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , 1 ) CALL STATIS ( MAXL , MAXB , 1 , PS , RMS , MW , SIG ) WRITE ( * , '(A12,3F11.4)' ) 'STATISTICS: ' , RMS , MW , SIG 114 DEALLOCATE ( HILF , PSG , DPSDL , DPSDM , ETAG , DG , LNPMN ) ! ALLOCATE (UV(MAXL, MAXB, 2*MLEVEL)) ! CALL GRPH213(XMN,UGVG,GWSAVE,GIFAX,PP,WEIGHT,MLAT, ! *MNAUF,NGI,NGJ,2*MLEVEL) ! DO K=1,2*MLEVEL ! IF (MSMOOTH .ne. 0) CALL SPFILTER(XMN(:,K),MNAUF,MSMOOTH) ! END DO ! CALL PHGCUT(XMN,UV,WSAVE,IFAX,Z, ! *MNAUF,MNAUF,MAUF,MANF,MAXL,MAXB,2*MLEVEL) DEALLOCATE ( PP , P , UGVG , MLAT , GBREITE , WEIGHT , GWSAVE , XMN ) ! CALL ETAGAUSS(Z,WSAVE ! *,BREITE,UV,ETA,OM,PS, ! *MAUF,MAXB,MAXL,MANF,MNAUF,MLEVEL,MSMOOTH) ELSE !----------------------------------------------------------------- ! READING OF PREPARED METEOROLOGICAL FIELDS ! ! THE FOLLOWING FIELDS ARE EXPECTED: ! ! UNIT 11: T,U,V (REGULAR GRID) ! UNIT 17: Q (REGULAR GRID) ! UNIT 13: D (REGULAR GRID) ! UNIT 12: LNSP (SPHERICAL HARMONICS) ! UNIT 14: SURFACE DATA (REGULAR GRID) ! UNIT 16: FLUX DATA (REGULAR GRID) !------------------------------------------------------------------ ALLOCATE ( MLAT ( MAXB )) MLAT = MAXL ALLOCATE ( Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , 1 )) ALLOCATE ( DPSDL ( MAXL , MAXB ), DPSDM ( MAXL , MAXB )) ALLOCATE ( UV ( MAXL , MAXB , 2 * MLEVEL ), DIV ( MAXL , MAXB , MLEVEL )) !------------------------------------------------------------------ !! READING OF SURFACE PRESSURE !------------------------------------------------------------------ FILENAME = 'fort.12' CALL READSPECTRAL ( FILENAME , LNPS , MNAUF , 1 , MLEVEL ,( / 152 / ), AK , BK ) !------------------------------------------------------------------ !! READING OF U,V !------------------------------------------------------------------ ! OPENING OF UNBLOCKED GRIB FILE FILENAME = 'fort.10' CALL READLATLON ( FILENAME , UV , MAXL , MAXB , 2 * MLEVEL ,( / 131 , 132 / )) PI = ACOS ( - 1.D0 ) DO J = 1 , MAXB BREITE ( J ) = SIN (( RLA1 - ( J - 1.D0 ) * ( RLA1 - RLA0 ) / ( MAXB - 1 )) * PI / 18 0.D0 ) END DO ! Avoid possible Pole problem ! IF (RLA0 .EQ. -90.0) BREITE(MAXB)=sin(-89.99*PI/180.d0) ! IF (RLA1 .EQ. 90.0) BREITE(1)=sin(89.99*PI/180.d0) DO K = 1 , 2 * MLEVEL DO J = 1 , MAXB COSB = SQRT ( 1.0 - ( BREITE ( J )) * ( BREITE ( J ))) IF ( RLA0 . EQ . - 9 0.0 . AND . J . EQ . MAXB . OR . & RLA1 . EQ . 9 0.0 . AND . J . EQ . 1 ) THEN UV (:, J , K ) = UV (:, J , K ) / 1.D6 ELSE UV (:, J , K ) = UV (:, J , K ) * COSB END IF END DO END DO !------------------------------------------------------------------ !! READING OF LNSP on grid !------------------------------------------------------------------ ! For debugging only ! FILENAME='LNSPG_G.20060330.600' ! INQUIRE(FILE=FILENAME,EXIST=EX) ! CALL READLATLON(FILENAME,QA, ! *MAXL,MAXB,1,1,(/152/)) !------------------------------------------------------------------ !! READING OF DIVERGENCE !------------------------------------------------------------------ IF ( META . EQ . 0 . OR . METADIFF . EQ . 1 ) THEN FILENAME = 'fort.13' CALL READLATLON ( FILENAME , DIV , MAXL , MAXB , MLEVEL ,( / 155 / )) END IF !------------------------------------------------------------------ ! ! Calculation of etapoint --> total time derivative of ! ECMWF vertical coordinate eta multiplied by the derivative ! of pressure with respect to eta: ! \\frac{\\mathrm{d}\\eta}{\\mathrm{d}t}\\frac{\\partial p}{\\partial \\eta} !------------------------------------------------------------------ !* Initialisieren Legendretransformation auf das LaT/LON Gitter !! Without Gaussian grid calculation Legendre Polynomials are calculated !! only for one latitude to save space DO J = 1 , MAXB CALL PLGNFA ( MNAUF , BREITE ( J ), Z ( 0 , 1 )) CALL PHGCUT ( LNPS , PS (:, J , 1 ), WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , 1 , 1 ) IF ( META . EQ . 0 . OR . METADIFF . EQ . 1 ) THEN CALL PHGRACUT ( LNPS , DPSDL (:, J ), DPSDM (:, J ), WSAVE , IFAX , Z , H , MAUF , & MNAUF , MAXL , 1 , MANF , 1 ) END IF END DO PS = EXP ( PS ) ! For debugging only CALL STATIS ( MAXL , MAXB , 1 , PS (:,:, 1 ), RMS , MW , SIG ) WRITE ( * , '(A12,3F11.4)' ) 'STATISTICS: ' , RMS , MW , SIG IF ( MOMEGADIFF . ne . 0 ) THEN CALL OMEGA ( PS , DPSDL , DPSDM , DIV , UV (:,:, 1 ), UV (:,:, MLEVEL + 1 ), & BREITE , OM , MLAT , AK , BK , MAXL * MAXB , MAXB , MLEVEL ) END IF IF ( META . EQ . 0 . OR . METADIFF . ne . 0 ) THEN DPSDT = PS CALL CONTGL ( DPSDT , DPSDL , DPSDM , DIV , UV (:,:, 1 ), UV (:,:, MLEVEL + 1 ), & BREITE , ETA , MLAT , AK , BK , MAXL * MAXB , MAXB , MLEVEL ) END IF END IF ! sMGAUSS !! CREATE FILE VERTICAL.EC NEEDED BY POP MODEL OPEN ( 21 , FILE = 'VERTICAL.EC' ) WRITE ( 21 , '(A)' ) WRITE ( 21 , '(A)' ) 'VERTICAL DISCRETIZATION OF POP MODEL' WRITE ( 21 , '(A)' ) write ( 21 , '(i3,a)' ) MLEVEL , ' number of layers' WRITE ( 21 , '(A)' ) WRITE ( 21 , '(A)' ) '* A(NLEV+1)' WRITE ( 21 , '(A)' ) DO 205 I = 1 , MLEVEL + 1 205 WRITE ( 21 , '(F18.12)' ) AK ( I ) WRITE ( 21 , '(A)' ) WRITE ( 21 , '(A)' ) '* B(NLEV+1)' WRITE ( 21 , '(A)' ) DO 210 I = 1 , MLEVEL + 1 210 WRITE ( 21 , '(F18.12)' ) BK ( I ) CLOSE ( 21 ) !------------------------------------------------------------------ ! READING OF OMEGA !------------------------------------------------------------------ IF ( MOMEGA . NE . 0 ) THEN ALLOCATE ( OMR ( MAXL , MAXB , MLEVEL )) FILENAME = 'fort.19' CALL READLATLON ( FILENAME , OMR , MAXL , MAXB , MLEVEL ,( / 135 / )) IF ( MOMEGADIFF . NE . 0 ) THEN DO K = 1 , MLEVEL CALL STATIS ( MAXL , MAXB , 1 , ETA (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F11.4)' ) ' ETA: ' , K , RMS , MW , SIG CALL STATIS ( MAXL , MAXB , 1 , OMR (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F11.4)' ) ' OMEGA: ' , K , RMS , MW , SIG CALL STATIS ( MAXL , MAXB , 1 , OM (:,:, K ) - OMR (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F11.4)' ) 'OMEGA DIFF: ' , K , RMS , MW , SIG END DO END IF END IF !------------------------------------------------------------------ ! READING OF ETA !------------------------------------------------------------------ IF ( META . NE . 0 ) THEN ALLOCATE ( ETAR ( MAXL , MAXB , MLEVEL )) P00 = 10132 5. FILENAME = 'fort.21' CALL READLATLON ( FILENAME , ETAR , MAXL , MAXB , MLEVEL ,( / 77 / )) IF ( MDPDETA . EQ . 1 ) THEN DO K = 1 , MLEVEL DAK = AK ( K + 1 ) - AK ( K ) DBK = BK ( K + 1 ) - BK ( K ) DO J = 1 , MAXB DO I = 1 , MAXL ETAR ( I , J , K ) = 2 * ETAR ( I , J , K ) * PS ( I , J , 1 ) * ( DAK / PS ( I , J , 1 ) + DBK ) / & ( DAK / P00 + DBK ) IF ( K . GT . 1 ) ETAR ( I , J , K ) = ETAR ( I , J , K ) - ETAR ( I , J , K - 1 ) END DO END DO END DO END IF IF ( METADIFF . NE . 0 ) THEN DO K = 1 , MLEVEL CALL STATIS ( MAXL , MAXB , 1 , ETA (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F11.4)' ) ' ETA: ' , K , RMS , MW , SIG CALL STATIS ( MAXL , MAXB , 1 , ETAR (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F11.4)' ) ' ETAR: ' , K , RMS , MW , SIG CALL STATIS ( MAXL , MAXB , 1 , ETA (:,:, K ) - ETAR (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F11.4)' ) 'ETA DIFF: ' , K , RMS , MW , SIG END DO DO K = 1 , MLEVEL WRITE ( * , '(I3,2F11.4)' ) K , ETA ( 1 , MAXB / 2 , K ), ETAR ( 1 , MAXB / 2 , K ) END DO ELSE ETA = ETAR END IF END IF ALLOCATE ( T ( MAXL , MAXB , MLEVEL )) ALLOCATE ( QA ( MAXL , MAXB , MLEVEL )) !------------------------------------------------------------------ !! READING OF T !------------------------------------------------------------------ ! OPENING OF UNBLOCKED GRIB FILE FILENAME = 'fort.11' CALL READLATLON ( FILENAME , T , MAXL , MAXB , MLEVEL ,( / 130 / )) !------------------------------------------------------------------ !! READING OF SPECIFIC HUMIDITY !------------------------------------------------------------------ FILENAME = 'fort.17' CALL READLATLON ( FILENAME , QA , MAXL , MAXB , MLEVEL ,( / 133 / )) !------------------------------------------------------------------ ! TEST READING OF UV from MARS (debug only) !------------------------------------------------------------------ ! FILENAME='fort.22' ! CALL READLATLON(FILENAME,UV2,MAXL,MAXB,2*MLEVEL,2,(/131,132/)) !------------------------------------------------------------------ !! WRITE MODEL LEVEL DATA TO fort.15 !------------------------------------------------------------------ !! Calculation of etadot in CONTGL needed scaled winds (ucosphi,vcosphi) !! Now we are transforming back to the usual winds. DO K = 1 , MLEVEL DO J = 2 , MAXB - 1 COSB = SQRT ( 1.0 - ( BREITE ( J )) * ( BREITE ( J ))) UV (:, J , K ) = UV (:, J , K ) / COSB UV (:, J , MLEVEL + K ) = UV (:, J , MLEVEL + K ) / COSB END DO ! special treatment for poles, if necessary. DO J = 1 , MAXB , MAXB - 1 COSB = SQRT ( 1.0 - ( BREITE ( J )) * ( BREITE ( J ))) IF ( 1.0 - BREITE ( J ) * BREITE ( J ) . GT . 0 . OR . MGAUSS . NE . 1 ) THEN IF ( RLA0 . EQ . - 9 0.0 . AND . J . EQ . MAXB . OR . & RLA1 . EQ . 9 0.0 . AND . J . EQ . 1 ) THEN UV (:, J , K ) = UV (:, J , K ) * 1.D6 UV (:, J , MLEVEL + K ) = UV (:, J , MLEVEL + K ) * 1.D6 ELSE UV (:, J , K ) = UV (:, J , K ) / COSB UV (:, J , MLEVEL + K ) = UV (:, J , MLEVEL + K ) / COSB END IF ELSE HILFUV ( 5 : MAXL ,:) = 0. HILFUV ( 1 : 2 ,:) = 0. IF ( J . EQ . MAXB ) THEN ! Suedpol HILFUV ( 3 : 4 , 1 ) = CUA (:, 4 , K ) HILFUV ( 3 : 4 , 2 ) = CVA (:, 4 , K ) ELSE ! Nordpol HILFUV ( 3 : 4 , 1 ) = CUA (:, 2 , K ) HILFUV ( 3 : 4 , 2 ) = CVA (:, 2 , K ) END IF CALL RFOURTR ( HILFUV (:, 1 ), WSAVE , IFAX , MAXL / 2 - 1 , MAXL , - 1 ) DO I = 0 , MAXL - 1 IF ( MANF + I . LE . MAXL ) THEN UV ( I + 1 , J , K ) = HILFUV ( MANF + I , 1 ) ELSE UV ( I + 1 , J , K ) = HILFUV ( MANF - MAXL + I , 1 ) END IF END DO CALL RFOURTR ( HILFUV (:, 2 ), WSAVE , IFAX , MAXL / 2 - 1 , MAXL , - 1 ) DO I = 0 , MAXL - 1 IF ( MANF + I . LE . MAXL ) THEN UV ( I + 1 , J , MLEVEL + K ) = HILFUV ( MANF + I , 2 ) ELSE UV ( I + 1 , J , MLEVEL + K ) = HILFUV ( MANF - MAXL + I , 2 ) END IF END DO end if END DO END DO ! open output file call grib_open_file ( LUNIT , 'fort.15' , 'w' ) ! we use temperature on lat/lon on model levels as template for model level data LUNIT2 = 0 CALL GRIB_OPEN_FILE ( LUNIT2 , 'fort.11' , 'R' ) CALL GRIB_NEW_FROM_FILE ( LUNIT2 , IGRIB ( 1 ), IRET ) CALL GRIB_CLOSE_FILE ( LUNIT2 ) CALL WRITELATLON & ( LUNIT , IGRIB ( 1 ), OGRIB , UV (:,:, 1 ), MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 131 / )) CALL WRITELATLON & ( LUNIT , IGRIB ( 1 ), OGRIB , UV (:,:, MLEVEL + 1 ), MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 132 / )) IF ( MDPDETA . ne . 1 . AND . MGAUSS . EQ . 0 . and . META . eq . 1 ) THEN CALL WRITELATLON & ( LUNIT , IGRIB ( 1 ), OGRIB , ETA , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 77 / )) ELSE CALL WRITELATLON & ( LUNIT , IGRIB ( 1 ), OGRIB , ETA , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / METAPAR / )) END IF CALL WRITELATLON ( LUNIT , IGRIB ( 1 ), OGRIB , T , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 130 / )) CALL WRITELATLON ( LUNIT , IGRIB ( 1 ), OGRIB , PS , MAXL , MAXB , 1 , '1' , 1 ,( / 134 / )) CALL GRIB_SET ( IGRIB ( 1 ), \"levelType\" , \"ml\" ) CALL GRIB_SET ( IGRIB ( 1 ), \"typeOfLevel\" , \"hybrid\" ) CALL WRITELATLON ( LUNIT , IGRIB ( 1 ), OGRIB , QA , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 133 / )) IF ( MOMEGA . EQ . 1 ) THEN CALL GRIB_OPEN_FILE ( LUNIT2 , 'fort.25' , 'w' ) CALL WRITELATLON & ( LUNIT2 , IGRIB ( 1 ), OGRIB , OMR , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 135 / )) IF ( MOMEGADIFF . EQ . 1 ) THEN CALL WRITELATLON ( LUNIT2 , IGRIB ( 1 ), OGRIB , DPSDT , MAXL , MAXB , 1 , '1' , 1 ,( / 158 / )) OM = OM - OMR CALL WRITELATLON & ( LUNIT2 , IGRIB ( 1 ), OGRIB , OM , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 001 / )) CALL GRIB_CLOSE_FILE ( LUNIT2 ) END IF END IF IF ( META . EQ . 1 . AND . METADIFF . EQ . 1 ) THEN CALL GRIB_OPEN_FILE ( LUNIT2 , 'fort.26' , 'w' ) CALL WRITELATLON & ( LUNIT2 , IGRIB ( 1 ), OGRIB , ETAR , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 135 / )) ! IF (MOMEGADIFF .EQ. 1) THEN CALL WRITELATLON ( LUNIT2 , IGRIB ( 1 ), OGRIB , DPSDT , MAXL , MAXB , 1 , '1' , 1 ,( / 158 / )) OM = ETA - ETAR CALL WRITELATLON & ( LUNIT2 , IGRIB ( 1 ), OGRIB , OM , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 001 / )) CALL GRIB_CLOSE_FILE ( LUNIT2 ) ! END IF END IF CALL GRIB_CLOSE_FILE ( LUNIT ) 2000 STOP 'SUCCESSFULLY FINISHED CONVERT_PRE: CONGRATULATIONS' 3000 STOP 'ROUTINE CONVERT_PRE: ERROR' 9999 stop 'ROUTINE CONVERT_PRE: ERROR' END !------------------------------------------------------------------ INTEGER FUNCTION IA ( FIELD1 , NI , NJ , NK , G ) !------------------------------------------------------------------ !! Calculate something that is roughly log10( maxval(field1)/g ) [PS] !------------------------------------------------------------------ IMPLICIT NONE INTEGER :: I , J , K INTEGER , INTENT ( IN ) :: NI , NJ , NK REAL , INTENT ( IN ) :: FIELD1 ( NI , NJ , NK ) REAL INTENT ( IN ) :: G REAL :: RMIN , RMAX , XMAX , A , A1 , A2 RMAX = FIELD1 ( 1 , 1 , 1 ) RMIN = FIELD1 ( 1 , 1 , 1 ) DO 100 K = 1 , NK DO 100 J = 1 , NJ DO 100 I = 1 , NI IF ( FIELD1 ( I , J , K ) . GT . RMAX ) RMAX = FIELD1 ( I , J , K ) IF ( FIELD1 ( I , J , K ) . LT . RMIN ) RMIN = FIELD1 ( I , J , K ) 100 CONTINUE IF ( ABS ( RMIN ) . GT . RMAX . OR . ABS ( RMIN ) . EQ . RMAX ) THEN XMAX = ABS ( RMIN ) ELSE XMAX = RMAX END IF IF ( XMAX . EQ . 0 ) THEN IA = 0 RETURN END IF A1 = LOG10 ( ( G / 1 0.d0 ) / XMAX ) A2 = LOG10 ( G / XMAX ) IF ( A1 . gt . A2 ) THEN A = A2 ELSE A = A1 END IF IF ( A . GT . 0 ) IA = INT ( A ) IF ( A . LT . 0 ) IA = INT ( A - 1.0 ) RETURN END SUBROUTINE STATIS ( NI , NJ , NK , PHI , RMS , MW , SIG ) !------------------------------------------------------------------ !! calculate mean, rms, stdev !------------------------------------------------------------------ IMPLICIT REAL ( A - H , O - Z ) REAL PHI ( NI , NJ , NK ), SIG , MW , RMS , P N = NI * NJ * NK RMS = 0. MW = 0. DO 10 I = 1 , NI DO 10 J = 1 , NJ DO 10 K = 1 , NK P = PHI ( I , J , K ) RMS = RMS + P * P MW = MW + P 10 CONTINUE RMS = SQRT ( RMS / N ) MW = MW / N IF ( RMS * RMS - MW * MW . LT . 0. ) THEN SIG = 0.0 ELSE SIG = SQRT ( RMS * RMS - MW * MW ) END IF RETURN END","tags":"","loc":"sourcefile/preconvert_new.f90.html","title":"preconvert_new.f90 – Flex_extract: Calculation of etadot"},{"text":"This file depends on sourcefile~~grphreal.f90~~EfferentGraph sourcefile~grphreal.f90 grphreal.f90 sourcefile~phgrreal.f90 phgrreal.f90 sourcefile~grphreal.f90->sourcefile~phgrreal.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Files dependent on this one sourcefile~~grphreal.f90~~AfferentGraph sourcefile~grphreal.f90 grphreal.f90 sourcefile~preconvert_new.f90 preconvert_new.f90 sourcefile~preconvert_new.f90->sourcefile~grphreal.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Modules GRTOPH Source Code grphreal.f90 Source Code MODULE GRTOPH USE PHTOGR CONTAINS SUBROUTINE GRPH213 ( CXMN , FELD , WSAVE , IFAX , Z , W , MLAT , MNAUF , MAXL , MAXB , MLEVEL ) !! DIE ROUTINE F]HRT EINE TRANSFORMATION EINER !! FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN !! RAUM AUF KUGELKOORDINATEN DURCH ! CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE ! CX00,CX01,CX11,CX02,....CXMNAUFMNAUF ! CXM = FOURIERKOEFFIZIENTEN - nur ein Hilfsfeld ! FELD = FELD DER METEOROLOGISCHEN VARIABLEN ! WSAVE = Working Array fuer Fouriertransformation ! Z = LEGENDREFUNKTIONSWERTE ! ! MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN ! MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN ! MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN ! MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN IMPLICIT REAL ( A - H , O - Z ) ! Anzahl der Gitterpunkte pro Breitenkreis des reduzierten ! Gauss'schen Gitters INTEGER MLAT ( MAXB ), ISIZE , IFAX ( 10 , MAXB ) ! FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL * 8 Z ( MAXB / 2 , 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 ) ! LOGICAL*1 USED(((216*217)/2+1)*160) DIMENSION CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MLEVEL ) DIMENSION WSAVE ( 8 * MAXB + 15 , MAXB / 2 ) REAL * 8 W ( MAXB ) DIMENSION IND ( MAXB ) IND ( 1 ) = 0 DO 6 J = 2 , MAXB / 2 IND ( j ) = IND ( J - 1 ) + MLAT ( J - 1 ) 6 CONTINUE !$OMP PARALLEL DO SCHEDULE(DYNAMIC) DO 16 L = 1 , MLEVEL CALL GRPHSUB ( L , IND , CXMN , FELD , WSAVE , IFAX , Z , W , MLAT , MNAUF , MAXL , MAXB , MLEVEL ) 16 CONTINUE !$omp end parallel do RETURN END SUBROUTINE GRPH213 SUBROUTINE GRPHSUB ( L , IND , CXMN , FELD , WSAVE , IFAX , Z , W , MLAT , MNAUF , MAXL , MAXB , MLEVEL ) !! DIE ROUTINE F]HRT EINE TRANSFORMATION EINER !! FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN !! RAUM AUF KUGELKOORDINATEN DURCH ! ! CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE ! CX00,CX01,CX11,CX02,....CXMNAUFMNAUF ! CXM = FOURIERKOEFFIZIENTEN - nur ein Hilfsfeld ! FELD = FELD DER METEOROLOGISCHEN VARIABLEN ! WSAVE = Working Array fuer Fouriertransformation ! Z = LEGENDREFUNKTIONSWERTE ! ! MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN ! MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN ! MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN ! MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN IMPLICIT REAL ( A - H , O - Z ) ! FELD DER FOURIERKOEFFIZIENTEN REAL CXMS ( 4 * ( MNAUF + 1 )) REAL CXMA ( 4 * ( MNAUF + 1 )) REAL , ALLOCATABLE :: CXM (:,:) ! Anzahl der Gitterpunkte pro Breitenkreis des reduzierten ! Gauss'schen Gitters INTEGER MLAT ( MAXB ), ISIZE ! FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( MAXB / 2 , 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 ) ! LOGICAL*1 USED(((216*217)/2+1)*160) REAL CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MLEVEL ) REAL WSAVE ( 8 * MAXB + 15 , MAXB / 2 ) INTEGER IFAX ( 10 , MAXB ) REAL W ( MAXB ) INTEGER IND ( MAXB ) ALLOCATE ( CXM ( 4 * MAXB , MAXB )) DO 5 J = 1 , MAXB / 2 CXMS ( 1 : MLAT ( J )) = FELD ( IND ( J ) + 1 : IND ( J ) + MLAT ( J ), L ) CALL RFOUFTR ( CXMS , WSAVE ( 1 , J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) CXMA ( 1 : MLAT ( J )) = FELD ( MAXL - IND ( J ) - MLAT ( J ) + 1 : MAXL - IND ( J ), L ) CALL RFOUFTR ( CXMA , WSAVE ( 1 , J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) DO 4 I = 1 , 2 * ( MNAUF + 1 ) CXM ( I , J ) = CXMS ( I ) + CXMA ( I ) CXM ( I , MAXB + 1 - J ) = CXMS ( I ) - CXMA ( I ) 4 CONTINUE 5 CONTINUE CALL LGTR213 ( CXMN ( 0 , L ), CXM , Z , W , MLAT , MNAUF , MAXB ) DEALLOCATE ( CXM ) RETURN END SUBROUTINE GRPHSUB ! SUBROUTINE LGTR213 ( CXMN , CXM , Z , W , MLAT , MNAUF , MAXB ) !! DIESE ROUTINE BERECHNET DIE KFFKs CXMN IMPLICIT REAL ( A - H , O - Z ) INTEGER MLAT ( MAXB ) DIMENSION CXM ( 0 : 4 * MAXB - 1 , MAXB ) DIMENSION CXMN ( 0 : 2 * ((( MNAUF + 1 ) * MNAUF ) / 2 + MNAUF ) + 1 ) REAL * 8 Z ( MAXB / 2 , 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 ) REAL * 8 W ( MAXB ), CR , CI , HILF LOGICAL EVEN LL = 0 LLP = 0 DO 1 I = 0 , MNAUF KM = 0 9 KM = KM + 1 IF ( MLAT ( KM ) . LE . 2 * I ) THEN GOTO 9 END IF DO 2 J = I , MNAUF CR = 0 CI = 0 EVEN = MOD ( I + J , 2 ) . EQ . 0 IF ( EVEN ) THEN DO 3 K = KM , MAXB / 2 HILF = W ( K ) * Z ( K , LLP ) CR = CR + CXM ( 2 * I , K ) * HILF CI = CI + CXM ( 2 * I + 1 , K ) * HILF 3 CONTINUE ELSE DO 4 K = KM , MAXB / 2 HILF = W ( K ) * Z ( K , LLP ) CR = CR + CXM ( 2 * I , MAXB + 1 - K ) * HILF CI = CI + CXM ( 2 * I + 1 , MAXB + 1 - K ) * HILF 4 CONTINUE END IF 5 CXMN ( 2 * LL ) = CR CXMN ( 2 * LL + 1 ) = CI LL = LL + 1 LLP = LLP + 1 2 CONTINUE LLP = LLP + 2 1 CONTINUE RETURN END SUBROUTINE LGTR213 SUBROUTINE RFOUFTR ( CXM , TRIGS , IFAX , MNAUF , MAXL , ISIGN ) ! ! BERECHNET DIE FOURIERSUMME MIT EINEM FFT-ALGORITHMUS IMPLICIT REAL ( A - H , O - Z ) DIMENSION CXM ( 0 : 2 * MAXL - 1 ) DIMENSION FELD ( MAXL ), TRIGS ( 2 * MAXL ) DIMENSION WSAVE ( MAXAUF ) INTEGER IFAX ( 10 ) ! NORMIERUNG... WSAVE ( 1 ) = CXM ( MAXL - 1 ) CXM ( 1 : MAXL ) = CXM ( 0 : MAXL - 1 ) / 2 CXM ( 0 ) = WSAVE ( 1 ) / 2 ! CALL CFFTF(MAXL,CXM,WSAVE) CALL FFT99 ( CXM , WSAVE , TRIGS , IFAX , 1 , 1 , MAXL , 1 , - 1 ) RETURN END SUBROUTINE RFOUFTR END MODULE GRTOPH","tags":"","loc":"sourcefile/grphreal.f90.html","title":"grphreal.f90 – Flex_extract: Calculation of etadot"},{"text":"Files dependent on this one sourcefile~~phgrreal.f90~~AfferentGraph sourcefile~phgrreal.f90 phgrreal.f90 sourcefile~ftrafo.f90 ftrafo.f90 sourcefile~ftrafo.f90->sourcefile~phgrreal.f90 sourcefile~preconvert_new.f90 preconvert_new.f90 sourcefile~preconvert_new.f90->sourcefile~phgrreal.f90 sourcefile~preconvert_new.f90->sourcefile~ftrafo.f90 sourcefile~grphreal.f90 grphreal.f90 sourcefile~preconvert_new.f90->sourcefile~grphreal.f90 sourcefile~grphreal.f90->sourcefile~phgrreal.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Modules PHTOGR Source Code phgrreal.f90 Source Code MODULE PHTOGR INTEGER , PARAMETER :: MAXAUF = 36000 CONTAINS SUBROUTINE PHGR213 ( CXMN , FELD , WSAVE , IFAX , Z , MLAT , MNAUF , MAXL , MAXB , MLEVEL ) !! DIE ROUTINE F]HRT EINE TRANSFORMATION EINER !! FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN !! RAUM AUF DAS REDUZIERTE GAUSS'SCHE GITTER DURCH ! ! CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE ! CX00,CX01,CX11,CX02,....CXMNAUFMNAUF ! FELD = FELD DER METEOROLOGISCHEN VARIABLEN !\tWSAVE = Working Array fuer Fouriertransformation ! Z \t = LEGENDREFUNKTIONSWERTE ! ! MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN ! MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN ! MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN ! MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN IMPLICIT NONE !\t\t\tAnzahl der Gitterpunkte auf jedem Breitenkreis INTEGER MLAT ( MAXB / 2 ) INTEGER K , MAXL , MAXB , MLEVEL , MNAUF INTEGER IND ( MAXB ) ! FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , MAXB / 2 ) REAL CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MLEVEL ) REAL WSAVE ( 8 * MAXB + 15 , MAXB / 2 ) INTEGER :: IFAX ( 10 , MAXB ) IND ( 1 ) = 0 DO 7 K = 2 , MAXB / 2 IND ( K ) = IND ( K - 1 ) + MLAT ( K - 1 ) 7 CONTINUE !$OMP PARALLEL DO SCHEDULE(DYNAMIC) DO 17 K = 1 , MAXB / 2 CALL PHSYM ( K , IND , CXMN , FELD , Z , WSAVE , IFAX , MLAT , MNAUF , MAXL , MAXB , MLEVEL ) 17 CONTINUE !$OMP END PARALLEL DO RETURN END SUBROUTINE PHGR213 SUBROUTINE PHSYM ( K , IND , CXMN , FELD , Z , WSAVE , IFAX , MLAT , MNAUF , MAXL , MAXB , MLEVEL ) IMPLICIT NONE INTEGER MLAT ( MAXB / 2 ) INTEGER K , L , I , J , LLS , LLPS , LL , LLP , MAXL , MAXB , MLEVEL , MNAUF INTEGER IND ( MAXB ) INTEGER :: IFAX ( 10 , MAXB ) ! FELD DER FOURIERKOEFFIZIENTEN REAL :: CXMS ( 0 : MAXAUF - 1 ), CXMA ( 0 : MAXAUF - 1 ) ! FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , MAXB / 2 ) REAL ACR , ACI , SCR , SCI REAL CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MLEVEL ) REAL WSAVE ( 8 * MAXB + 15 , MAXB / 2 ) DO 6 L = 1 , MLEVEL LL = 0 LLP = 0 DO 1 I = 0 , MNAUF SCR = 0.D0 SCI = 0.D0 ACR = 0.D0 ACI = 0.D0 LLS = LL LLPS = LLP IF ( 2 * I + 1 . LT . MLAT ( K )) THEN !\t Innerste Schleife aufgespalten um if-Abfrage zu sparen DO 18 J = I , MNAUF , 2 SCR = SCR + Z ( LLP , K ) * CXMN ( 2 * LL , L ) SCI = SCI + Z ( LLP , K ) * CXMN ( 2 * LL + 1 , L ) LL = LL + 2 LLP = LLP + 2 18 CONTINUE LL = LLS + 1 LLP = LLPS + 1 DO 19 J = I + 1 , MNAUF , 2 ACR = ACR + Z ( LLP , K ) * CXMN ( 2 * LL , L ) ACI = ACI + Z ( LLP , K ) * CXMN ( 2 * LL + 1 , L ) LL = LL + 2 LLP = LLP + 2 19 CONTINUE END IF LL = LLS + ( MNAUF - I + 1 ) LLP = LLPS + ( MNAUF - I + 3 ) CXMS ( 2 * I ) = SCR + ACR CXMS ( 2 * I + 1 ) = SCI + ACI CXMA ( 2 * I ) = SCR - ACR CXMA ( 2 * I + 1 ) = SCI - ACI 1 CONTINUE ! CALL FOURTR(CXMS,FELD(IND(k)+1,L),WSAVE(:,K),MNAUF,*MLAT(K),1) ! CALL FOURTR(CXMA,FELD(MAXL-IND(k)-MLAT(K)+1,L),WSAVE(:,K),MNAUF,MLAT(K),1) CALL RFOURTR ( CXMS , WSAVE (:, K ), IFAX (:, K ), MNAUF , MLAT ( K ), 1 ) FELD ( IND ( k ) + 1 : IND ( K ) + MLAT ( K ), L ) = CXMS ( 0 : MLAT ( K ) - 1 ) CALL RFOURTR ( CXMA , WSAVE (:, K ), IFAX (:, K ), MNAUF , MLAT ( K ), 1 ) FELD ( MAXL - IND ( k ) - MLAT ( K ) + 1 : MAXL - IND ( k ), L ) = CXMA ( 0 : MLAT ( K ) - 1 ) ! WRITE(*,*) IND+1,FELD(IND+1,L) 6 CONTINUE END SUBROUTINE PHSYM SUBROUTINE PHGCUT ( CXMN , FELD , WSAVE , IFAX , Z , & MNAUF , MMAX , MAUF , MANF , MAXL , MAXB , MLEVEL ) !! DIE ROUTINE FUEHRT EINE TRANSFORMATION EINER !! FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN !! RAUM AUF KUGELKOORDINATEN DURCH. Es kann ein Teilausschnitt !!\tDer Erde angegeben werden. Diese Routine ist langsamer als phgrph ! CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE ! CX00,CX01,CX11,CX02,....CXMNAUFMNAUF ! FELD = FELD DER METEOROLOGISCHEN VARIABLEN ! BREITE = SINUS DER GEOGRAFISCHEN BREITEN ! ! MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN ! MAUF ANZAHL DER LAENGEN UND DER FOURIERKOEFFIZIENTEN ! MANF ANFANG DES LAENGENBEREICHS FUER DAS GITTER, ! AUF DAS INTERPOLIERT WERDEN SOLL ! MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN ! MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN ! MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN IMPLICIT REAL ( A - H , O - Z ) ! FELD DER FOURIERKOEFFIZIENTEN ! FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( 0 :(( MMAX + 3 ) * ( MMAX + 4 )) / 2 , MAXB ) DIMENSION CXMN ( 0 :( MMAX + 1 ) * ( MMAX + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MAXB , MLEVEL ) DIMENSION WSAVE ( 4 * MAUF + 15 ) INTEGER :: IFAX ( 10 ) LOGICAL SYM ! write(*,*)mauf,mnauf,manf,maxl IF ( MAUF . LE . MNAUF ) WRITE ( * , * ) 'TOO COARSE LONGITUDE RESOLUTION' IF ( MANF . LT . 1 . OR . MAXL . LT . 1 . OR . & MANF . GT . MAUF . OR . MAXL . GT . MAUF )) THEN WRITE ( * , * ) 'WRONG LONGITUDE RANGE' , MANF , MAXL STOP END IF ! Pruefe, ob Ausgabegitter symmetrisch zum Aequator ist ! Wenn ja soll Symmetrie der Legendrepolynome ausgenutzt werden IF ( MAXB . GT . 4 ) THEN SYM = . TRUE . DO 11 J = 5 , 5 IF ( ABS ( ABS ( Z ( 100 , J )) - ABS ( Z ( 100 , MAXB + 1 - J ))) . GT . 1E-11 ) SYM = . FALSE . !\t WRITE(*,*) ABS(Z(100,J)),ABS(Z(100,MAXB+1-J)) 11 CONTINUE WRITE ( * , * ) 'Symmetrisch: ' , SYM ELSE SYM = . FALSE . END IF IF ( SYM ) THEN !$OMP PARALLEL DO DO J = 1 ,( MAXB + 1 ) / 2 CALL PHSYMCUT ( J , CXMN , FELD , Z , WSAVE , IFAX , MAUF , MNAUF , MAXL , MAXB , MLEVEL , MANF ) END DO !$OMP END PARALLEL DO ELSE !$OMP PARALLEL DO DO J = 1 , MAXB CALL PHGPNS ( CXMN , FELD , Z , WSAVE , IFAX , J , MNAUF , MAUF , MANF , MAXL , MAXB , MLEVEL ) END DO !$OMP END PARALLEL DO END IF RETURN END SUBROUTINE PHGCUT SUBROUTINE PHSYMCUT ( J , CXMN , FELD , Z , WSAVE , IFAX , MAUF , MNAUF , MAXL , MAXB , MLEVEL , MANF ) IMPLICIT REAL ( A - H , O - Z ) ! FELD DER FOURIERKOEFFIZIENTEN REAL :: CXM ( 0 : MAXAUF - 1 ), CXMA ( 0 : MAXAUF - 1 ) ! FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , MAXB ) REAL SCR , SCI , ACR , ACI DIMENSION CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MAXB , MLEVEL ) DIMENSION WSAVE ( 4 * MAUF + 15 ) INTEGER :: IFAX ( 10 ) DO 16 L = 1 , MLEVEL LL = 0 LLP = 0 DO 17 I = 0 , MNAUF SCR = 0.D0 SCI = 0.D0 ACR = 0.D0 ACI = 0.D0 LLS = LL LLPS = LLP !\t Innerste Schleife aufgespalten um if-Abfrage zu sparen DO 18 K = I , MNAUF , 2 SCR = SCR + Z ( LLP , J ) * CXMN ( 2 * LL , L ) SCI = SCI + Z ( LLP , J ) * CXMN ( 2 * LL + 1 , L ) LL = LL + 2 LLP = LLP + 2 18 CONTINUE LL = LLS + 1 LLP = LLPS + 1 DO 19 K = I + 1 , MNAUF , 2 ACR = ACR + Z ( LLP , J ) * CXMN ( 2 * LL , L ) ACI = ACI + Z ( LLP , J ) * CXMN ( 2 * LL + 1 , L ) LL = LL + 2 LLP = LLP + 2 19 CONTINUE LL = LLS + MNAUF - I + 1 LLP = LLPS + MNAUF - I + 3 CXM ( 2 * I ) = SCR + ACR CXM ( 2 * I + 1 ) = SCI + ACI CXMA ( 2 * I ) = SCR - ACR CXMA ( 2 * I + 1 ) = SCI - ACI 17 CONTINUE CALL RFOURTR ( CXM , WSAVE , IFAX , MNAUF , MAUF , 1 ) DO 26 I = 0 , MAXL - 1 IF ( MANF + I . LE . MAUF ) THEN FELD ( I + 1 , J , L ) = CXM ( MANF + I - 1 ) ELSE FELD ( I + 1 , J , L ) = CXM ( MANF - MAUF + I - 1 ) END IF 26 CONTINUE CALL RFOURTR ( CXMA , WSAVE , IFAX , MNAUF , MAUF , 1 ) DO 36 I = 0 , MAXL - 1 IF ( MANF + I . LE . MAUF ) THEN FELD ( I + 1 , MAXB + 1 - J , L ) = CXMA ( MANF + I - 1 ) ELSE FELD ( I + 1 , MAXB + 1 - J , L ) = CXMA ( MANF - MAUF + I - 1 ) END IF 36 CONTINUE 16 CONTINUE END SUBROUTINE PHSYMCUT SUBROUTINE PHGPNS ( CXMN , FELD , Z , WSAVE , IFAX , J , MNAUF , MAUF , MANF , MAXL , MAXB , MLEVEL ) IMPLICIT NONE INTEGER , INTENT ( IN ) :: MNAUF , MAUF , MANF , J , MAXL , MAXB , MLEVEL REAL :: CXM ( 0 : MAXAUF - 1 ) REAL , INTENT ( IN ) :: Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , MAXB ) REAL , INTENT ( IN ) :: CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL , INTENT ( IN ) :: WSAVE ( 4 * MAUF + 15 ) REAL :: FELD ( MAXL , MAXB , MLEVEL ) INTEGER :: IFAX ( 10 ) INTEGER I , L DO L = 1 , MLEVEL CALL LEGTR ( CXMN (:, L ), CXM , Z (:, J ), MNAUF , MAUF ) CALL RFOURTR ( CXM , WSAVE , IFAX , MNAUF , MAUF , 1 ) DO I = 0 , MAXL - 1 IF ( MANF + I . LE . MAUF ) THEN FELD ( I + 1 , J , L ) = CXM ( MANF + I - 1 ) ELSE FELD ( I + 1 , J , L ) = CXM ( MANF - MAUF + I - 1 ) END IF END DO END DO END SUBROUTINE PHGPNS SUBROUTINE LEGTR ( CXMN , CXM , Z , MNAUF , MAUF ) !! DIESE ROUTINE BERECHNET DIE FOURIERKOEFFIZIENTEN CXM IMPLICIT NONE INTEGER MNAUF , MAUF , LL , LLP , I , J REAL CXM ( 0 : MAXAUF - 1 ) REAL CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 ) REAL Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 ) REAL CI , CR LL = 0 LLP = 0 DO 1 I = 0 , MNAUF CR = 0.D0 CI = 0.D0 DO 2 J = I , MNAUF CR = CR + Z ( LLP ) * CXMN ( 2 * LL ) CI = CI + Z ( LLP ) * CXMN ( 2 * LL + 1 ) LL = LL + 1 LLP = LLP + 1 2 CONTINUE LLP = LLP + 2 CXM ( 2 * I ) = CR CXM ( 2 * I + 1 ) = CI 1 CONTINUE RETURN END SUBROUTINE LEGTR SUBROUTINE RFOURTR ( CXM , TRIGS , IFAX , MNAUF , MAXL , ISIGN ) !! BERECHNET DIE FOURIERSUMME MIT EINEM FFT-ALGORITHMUS IMPLICIT REAL ( A - H , O - Z ) DIMENSION CXM ( 0 : MAXAUF - 1 ) REAL :: WSAVE ( 2 * MAXL ), TRIGS ( 2 * MAXL ) INTEGER IFAX ( 10 ) DO I = MNAUF + 1 , MAXL - 1 CXM ( 2 * I ) = 0.0 CXM ( 2 * I + 1 ) = 0.0 END DO CALL FFT99 ( CXM , WSAVE , TRIGS , IFAX , 1 , 1 , MAXL , 1 , 1 ) DO I = 0 , MAXL - 1 CXM ( I ) = CXM ( I + 1 ) END DO RETURN END SUBROUTINE RFOURTR SUBROUTINE GAULEG ( X1 , X2 , X , W , N ) !! BERECHNET DIE GAUSS+SCHEN BREITEN IMPLICIT REAL ( A - H , O - Z ) DIMENSION X ( N ), W ( N ) PARAMETER ( EPS = 3.D-14 ) M = ( N + 1 ) / 2 XM = 0.5D0 * ( X2 + X1 ) XL = 0.5D0 * ( X2 - X1 ) DO 12 I = 1 , M Z = DCOS ( 3.141592654D0 * ( I - . 25 D0 ) / ( N + . 5 D0 )) 1 CONTINUE P1 = 1.D0 P2 = 0.D0 DO 11 J = 1 , N P3 = P2 P2 = P1 P1 = (( 2.D0 * J - 1.D0 ) * Z * P2 - ( J - 1.D0 ) * P3 ) / J 11 CONTINUE PP = N * ( Z * P1 - P2 ) / ( Z * Z - 1.D0 ) Z1 = Z Z = Z1 - P1 / PP IF ( ABS ( Z - Z1 ) . GT . EPS ) GO TO 1 X ( I ) = XM - XL * Z X ( N + 1 - I ) = XM + XL * Z W ( I ) = 2.D0 * XL / (( 1.D0 - Z * Z ) * PP * PP ) W ( N + 1 - I ) = W ( I ) 12 CONTINUE RETURN END SUBROUTINE GAULEG SUBROUTINE PLGNFA ( LL , X , Z ) !! PLGNDN BERECHNET ALLE NORMIERTEN ASSOZIIERTEN !! LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X) !! UND SCHREIBT SIE IN DAS FELD Z ! Die Polynome sind wie im ECMWF indiziert, d.h. ! P00,P10,P11,P20,P21,P22,... !\tAnsonsten ist die Routine analog zu PLGNDN ! X IST DER COSINUS DES ZENITWINKELS ODER ! DER SINUS DER GEOGRAFISCHEN BREITE IMPLICIT REAL ( A - H , O - Z ) DIMENSION Z ( 0 :(( LL + 3 ) * ( LL + 4 )) / 2 ) L = LL + 2 I = 1 Z ( 0 ) = 1.D0 FACT = 1.D0 POT = 1.D0 SOMX2 = DSQRT ( 1.D0 - X * X ) DO 14 J = 0 , L DJ = DBLE ( J ) IF ( J . GT . 0 ) THEN FACT = FACT * ( 2.D0 * DJ - 1.D0 ) / ( 2.D0 * DJ ) POT = POT * SOMX2 Z ( I ) = DSQRT (( 2.D0 * DJ + 1.D0 ) * FACT ) * POT I = I + 1 END IF IF ( J . LT . L ) THEN Z ( I ) = X * DSQRT (( 4.D0 * DJ * DJ + 8.D0 * DJ + 3.D0 ) / ( 2.D0 * DJ + 1.D0 )) * Z ( I - 1 ) I = I + 1 END IF DK = DJ + 2.D0 DO 14 K = J + 2 , L DDK = ( DK * DK - DJ * DJ ) Z ( I ) = X * DSQRT (( 4.D0 * DK * DK - 1.D0 ) / DDK ) * Z ( I - 1 ) - & DSQRT ((( 2.D0 * DK + 1.D0 ) * ( DK - DJ - 1.D0 ) * ( DK + DJ - 1.D0 )) / & (( 2.D0 * DK - 3.D0 ) * DDK )) * Z ( I - 2 ) DK = DK + 1.D0 I = I + 1 14 CONTINUE RETURN END SUBROUTINE PLGNFA SUBROUTINE DPLGND ( MNAUF , Z , DZ ) !! DPLGND BERECHNET DIE ABLEITUNG DER NORMIERTEN ASSOZIIERTEN !! LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X) !! UND SCHREIBT SIE IN DAS FELD DZ ! DIE REIHENFOLGE IST ! P00(X),P01(X),P11(X),P02(X),P12(X),P22(X),..PLL(X) IMPLICIT REAL ( A - H , O - Z ) DIMENSION Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 ) DIMENSION DZ ( 0 :(( MNAUF + 2 ) * ( MNAUF + 3 )) / 2 ) IF ( Z ( 0 ) . NE . 1.D0 ) THEN WRITE ( * , * ) 'DPLGND: Z(0) must be 1.0' STOP END IF LLP = 0 LLH = 0 DO 1 I = 0 , MNAUF + 1 DO 2 J = I , MNAUF + 1 IF ( I . EQ . J ) THEN WURZELA = DSQRT ( DBLE (( J + 1 ) * ( J + 1 ) - I * I ) / DBLE ( 4 * ( J + 1 ) * ( J + 1 ) - 1 )) DZ ( LLH ) = DBLE ( J ) * WURZELA * Z ( LLP + 1 ) ELSE WURZELB = DSQRT ( DBLE (( J + 1 ) * ( J + 1 ) - I * I ) / DBLE ( 4 * ( J + 1 ) * ( J + 1 ) - 1 )) DZ ( LLH ) = DBLE ( J ) * WURZELB * Z ( LLP + 1 ) - DBLE ( J + 1 ) * WURZELA * Z ( LLP - 1 ) WURZELA = WURZELB END IF LLH = LLH + 1 LLP = LLP + 1 2 CONTINUE LLP = LLP + 1 1 CONTINUE RETURN END SUBROUTINE DPLGND SUBROUTINE SPFILTER ( FELDMN , MM , MMAX ) !! Spectral Filter of Sardeshmukh and Hoskins (1984, MWR) ! MM=Spectral truncation of field ! MMAX= Spectral truncation of filter IMPLICIT NONE INTEGER MM , MMAX , I , J , K , L REAL FELDMN ( 0 :( MM + 1 ) * ( MM + 2 ) - 1 ) REAL KMAX , SMAX , FAK SMAX = 0.1 KMAX =- ALOG ( SMAX ) KMAX = KMAX / ( float ( MMAX ) * float ( MMAX + 1 )) ** 2 ! WRITE(*,*)'alogsmax',alog(smax),'KMAX:',KMAX L = 0 DO I = 0 , MM DO J = I , MM ! WRITE(*,*) I,J,FELD(K),FELD(K)*EXP(-KMAX*(J*(J+1))**2) IF ( J . LE . MMAX ) THEN ! FAK=EXP(-KMAX*(J*(J+1))**2) FAK = 1.0 FELDMN ( 2 * L ) = FELDMN ( 2 * L ) * FAK FELDMN ( 2 * L + 1 ) = FELDMN ( 2 * L + 1 ) * FAK ELSE FELDMN ( 2 * L ) = 0. FELDMN ( 2 * L + 1 ) = 0. END IF L = L + 1 END DO END DO END SUBROUTINE SPFILTER END MODULE PHTOGR","tags":"","loc":"sourcefile/phgrreal.f90.html","title":"phgrreal.f90 – Flex_extract: Calculation of etadot"},{"text":"Contents Subroutines POSNAM Source Code posnam.f90 Source Code SUBROUTINE POSNAM ( KULNAM , CDNAML ) !! position in namelist file. ! author: Mats Hamrud, ECMWF INTEGER , INTENT ( IN ) :: KULNAM CHARACTER * ( * ), INTENT ( IN ) :: CDNAML CHARACTER * 120 CLINE CHARACTER * 1 CLTEST REWIND ( KULNAM ) ILEN = LEN ( CDNAML ) 102 CONTINUE CLINE = ' ' READ ( KULNAM , '(A)' ) CLINE IND1 = INDEX ( CLINE , '&' // CDNAML ) IF ( IND1 . EQ . 0 ) GO TO 102 CLTEST = CLINE ( IND1 + ILEN + 1 : IND1 + ILEN + 1 ) IF ( LGE ( CLTEST , '0' ) . AND . LLE ( CLTEST , '9' ) . OR . & LGE ( CLTEST , 'A' ) . AND . LLE ( CLTEST , 'Z' )) GOTO 102 BACKSPACE ( KULNAM ) RETURN END SUBROUTINE POSNAM","tags":"","loc":"sourcefile/posnam.f90.html","title":"posnam.f90 – Flex_extract: Calculation of etadot"},{"text":"This file depends on sourcefile~~ftrafo.f90~~EfferentGraph sourcefile~ftrafo.f90 ftrafo.f90 sourcefile~phgrreal.f90 phgrreal.f90 sourcefile~ftrafo.f90->sourcefile~phgrreal.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Files dependent on this one sourcefile~~ftrafo.f90~~AfferentGraph sourcefile~ftrafo.f90 ftrafo.f90 sourcefile~preconvert_new.f90 preconvert_new.f90 sourcefile~preconvert_new.f90->sourcefile~ftrafo.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Modules FTRAFO Source Code ftrafo.f90 Source Code MODULE FTRAFO !! Implementation of the spectral transformation using reduced the Gaussian grid CONTAINS ! Implementierung der spektralen Transformationsmethode unter Verwendung ! des reduzierten Gauss'schen Gitters SUBROUTINE VDTOUV ( XMN , XLAM , XPHI , GWSAVE , IFAX , P , MLAT , MNAUF , NI , NJ , NK ) !! Berechnung der scale winds aus Vorticity und Divergenz !! uebergibt man in XMN die Divergenz, so wird der divergente Anteil des !! Windes (XPHI=Ud,XPHI=Vd) zurueckgegeben, uebergibt man die Vorticity, so !! erhaelt man den rotationellen Wind (XLAM=Vrot,XPHI=-Urot). !! Summiert man beide, erhaelt man den gesamten Scale wind ! GWSAVE ist ein Hilfsfeld fuer die FFT ! P enthaelt die assoziierten Legendrepolynome, H deren Ableitung ! MLAT enthaelt die Anzahl der Gitterpunkte pro Breitenkreis ! MNAUF gibt die spektrale Aufloesung an, ! NI = Anzahl der Gauss'schen Gitterpunkte pro Flaeche ! NJ = Anzahl der Gauss'schen Breiten, ! NK = Anzahl der Niveaus USE PHTOGR IMPLICIT NONE INTEGER J , N , NI , NJ , NK , MNAUF , GGIND ( NJ / 2 ) INTEGER MLAT ( NJ ), IFAX ( 10 , NJ ) REAL XMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , NK ) REAL P ( 0 :( MNAUF + 3 ) * ( MNAUF + 4 ) / 2 , NJ / 2 ) REAL H ( 0 :( MNAUF + 2 ) * ( MNAUF + 3 ) / 2 ) REAL XLAM ( NI , NK ), XPHI ( NI , NK ) REAL GWSAVE ( 8 * NJ + 15 , NJ / 2 ) REAL SCR , SCI , ACR , ACI , MUSCR , MUSCI , MUACR , MUACI REAL RT , IT GGIND ( 1 ) = 0 DO 4 J = 2 , NJ / 2 GGIND ( J ) = GGIND ( J - 1 ) + MLAT ( J - 1 ) 4 CONTINUE !$OMP PARALLEL DO SCHEDULE(DYNAMIC) DO 5 J = 1 , NJ / 2 CALL VDUVSUB ( J , XMN , XLAM , XPHI , GWSAVE , IFAX , P , GGIND ( J ), MLAT , MNAUF , NI , NJ , NK ) 5 CONTINUE !$OMP END PARALLEL DO RETURN END SUBROUTINE VDTOUV SUBROUTINE VDUVSUB ( J , XMN , XLAM , XPHI , GWSAVE , IFAX , P , GGIND , MLAT , MNAUF , NI , NJ , NK ) USE PHTOGR IMPLICIT NONE INTEGER J , K , M , N , NI , NJ , NK , MNAUF , GGIND , LL , LLP , LLH , LLS , LLPS , LLHS INTEGER MLAT ( NJ ), IFAX ( 10 , NJ ) REAL UFOUC ( 0 : MAXAUF ), MUFOUC ( 0 : MAXAUF ) REAL VFOUC ( 0 : MAXAUF ), MVFOUC ( 0 : MAXAUF ) REAL XMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , NK ) REAL P ( 0 :( MNAUF + 3 ) * ( MNAUF + 4 ) / 2 , NJ / 2 ) REAL H ( 0 :( MNAUF + 2 ) * ( MNAUF + 3 ) / 2 ) REAL XLAM ( NI , NK ), XPHI ( NI , NK ) REAL GWSAVE ( 8 * NJ + 15 , NJ / 2 ) REAL ERAD , SCR , SCI , ACR , ACI , MUSCR , MUSCI , MUACR , MUACI REAL FAC ( 0 : MNAUF ), RT , IT ERAD = 636747 0.D0 FAC ( 0 ) = 0.D0 DO 12 N = 1 , MNAUF FAC ( N ) =- ERAD / DBLE ( N ) / DBLE ( N + 1 ) 12 CONTINUE CALL DPLGND ( MNAUF , P ( 0 , J ), H ) DO 3 K = 1 , NK LL = 0 LLP = 0 LLH = 0 DO 2 M = 0 , MNAUF SCR = 0.D0 SCI = 0.D0 ACR = 0.D0 ACI = 0.D0 MUSCR = 0.D0 MUSCI = 0.D0 MUACR = 0.D0 MUACI = 0.D0 LLS = LL LLPS = LLP LLHS = LLH IF ( 2 * M + 1 . LT . MLAT ( J )) THEN DO 1 N = M , MNAUF , 2 RT = XMN ( 2 * LL , K ) * FAC ( N ) IT = XMN ( 2 * LL + 1 , K ) * FAC ( N ) SCR = SCR + RT * P ( LLP , J ) SCI = SCI + IT * P ( LLP , J ) MUACR = MUACR + RT * H ( LLH ) MUACI = MUACI + IT * H ( LLH ) LL = LL + 2 LLP = LLP + 2 LLH = LLH + 2 1 CONTINUE LL = LLS + 1 LLP = LLPS + 1 LLH = LLHS + 1 DO 11 N = M + 1 , MNAUF , 2 RT = XMN ( 2 * LL , K ) * FAC ( N ) IT = XMN ( 2 * LL + 1 , K ) * FAC ( N ) ACR = ACR + RT * P ( LLP , J ) ACI = ACI + IT * P ( LLP , J ) MUSCR = MUSCR + RT * H ( LLH ) MUSCI = MUSCI + IT * H ( LLH ) LL = LL + 2 LLP = LLP + 2 LLH = LLH + 2 11 CONTINUE END IF LL = LLS + ( MNAUF - M + 1 ) LLP = LLPS + ( MNAUF - M + 3 ) LLH = LLHS + ( MNAUF - M + 2 ) UFOUC ( 2 * M ) =- M * ( SCI - ACI ) UFOUC ( 2 * M + 1 ) = M * ( SCR - ACR ) VFOUC ( 2 * M ) =- M * ( SCI + ACI ) VFOUC ( 2 * M + 1 ) = M * ( SCR + ACR ) MUFOUC ( 2 * M ) =- ( MUSCR - MUACR ) MUFOUC ( 2 * M + 1 ) =- ( MUSCI - MUACI ) MVFOUC ( 2 * M ) =- ( MUSCR + MUACR ) MVFOUC ( 2 * M + 1 ) =- ( MUSCI + MUACI ) 2 CONTINUE CALL RFOURTR ( VFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XLAM ( GGIND + 1 : GGIND + MLAT ( J ), K ) = VFOUC ( 0 : MLAT ( J ) - 1 ) CALL RFOURTR ( UFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XLAM ( NI - GGIND - MLAT ( J ) + 1 : NI - GGIND , K ) = UFOUC ( 0 : MLAT ( J ) - 1 ) CALL RFOURTR ( MVFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XPHI ( GGIND + 1 : GGIND + MLAT ( J ), K ) = MVFOUC ( 0 : MLAT ( J ) - 1 ) CALL RFOURTR ( MUFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XPHI ( NI - GGIND - MLAT ( J ) + 1 : NI - GGIND , K ) = MUFOUC ( 0 : MLAT ( J ) - 1 ) 3 CONTINUE RETURN END SUBROUTINE VDUVSUB SUBROUTINE PHGRAD ( XMN , XLAM , XPHI , GWSAVE , IFAX , P , H , MLAT , MNAUF , NI , NJ , NK ) !! Berechnung des Gradienten eines Skalars aus dem Feld des !! Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der !! Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. ! GWSAVE ist ein Hilfsfeld fuer die FFT ! P enthaelt die assoziierten Legendrepolynome, H deren Ableitung ! MLAT enthaelt die Anzahl der Gitterpunkte pro Breitenkreis ! MNAUF gibt die spektrale Aufloesung an, ! NI = Anzahl der Gauss'schen Gitterpunkte, ! NJ = Anzahl der Gauss'schen Breiten, ! NK = Anzahl der Niveaus USE PHTOGR IMPLICIT NONE INTEGER J , K , M , N , NI , NJ , NK , MNAUF , GGIND , LL , LLP , LLH , LLS , LLPS , LLHS INTEGERMLAT ( NJ ), IFAX ( 10 , NJ ) REAL UFOUC ( 0 : MAXAUF ), MUFOUC ( 0 : MAXAUF ) REAL VFOUC ( 0 : MAXAUF ), MVFOUC ( 0 : MAXAUF ) REAL XMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , NK ) REAL P ( 0 :( MNAUF + 3 ) * ( MNAUF + 4 ) / 2 , NJ / 2 ) REAL H ( 0 :( MNAUF + 2 ) * ( MNAUF + 3 ) / 2 ) REAL XLAM ( NI , NK ), XPHI ( NI , NK ) REAL GWSAVE ( 8 * NJ + 15 , NJ / 2 ) REAL ERAD REAL SCR , SCI , ACR , ACI , MUSCR , MUSCI , MUACR , MUACI , RT , IT ERAD = 636747 0.0 GGIND = 0 DO 4 J = 1 , NJ / 2 CALL DPLGND ( MNAUF , P ( 0 , J ), H ) DO 3 K = 1 , NK LL = 0 LLP = 0 LLH = 0 DO 2 M = 0 , MNAUF SCR = 0.D0 SCI = 0.D0 ACR = 0.D0 ACI = 0.D0 MUSCR = 0.D0 MUSCI = 0.D0 MUACR = 0.D0 MUACI = 0.D0 LLS = LL LLPS = LLP LLHS = LLH IF ( 2 * M + 1 . LT . MLAT ( J )) THEN DO 1 N = M , MNAUF , 2 RT = XMN ( 2 * LL , K ) IT = XMN ( 2 * LL + 1 , K ) SCR = SCR + RT * P ( LLP , J ) SCI = SCI + IT * P ( LLP , J ) MUACR = MUACR + RT * H ( LLH ) MUACI = MUACI + IT * H ( LLH ) LL = LL + 2 LLP = LLP + 2 LLH = LLH + 2 1 CONTINUE LL = LLS + 1 LLP = LLPS + 1 LLH = LLHS + 1 DO 11 N = M + 1 , MNAUF , 2 RT = XMN ( 2 * LL , K ) IT = XMN ( 2 * LL + 1 , K ) ACR = ACR + RT * P ( LLP , J ) ACI = ACI + IT * P ( LLP , J ) MUSCR = MUSCR + RT * H ( LLH ) MUSCI = MUSCI + IT * H ( LLH ) LL = LL + 2 LLP = LLP + 2 LLH = LLH + 2 11 CONTINUE END IF LL = LLS + ( MNAUF - M + 1 ) LLP = LLPS + ( MNAUF - M + 3 ) LLH = LLHS + ( MNAUF - M + 2 ) UFOUC ( 2 * M ) =- M * ( SCI - ACI ) / ERAD UFOUC ( 2 * M + 1 ) = M * ( SCR - ACR ) / ERAD VFOUC ( 2 * M ) =- M * ( SCI + ACI ) / ERAD VFOUC ( 2 * M + 1 ) = M * ( SCR + ACR ) / ERAD MUFOUC ( 2 * M ) =- ( MUSCR - MUACR ) / ERAD MUFOUC ( 2 * M + 1 ) =- ( MUSCI - MUACI ) / ERAD MVFOUC ( 2 * M ) =- ( MUSCR + MUACR ) / ERAD MVFOUC ( 2 * M + 1 ) =- ( MUSCI + MUACI ) / ERAD 2 CONTINUE CALL RFOURTR ( VFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XLAM ( GGIND + 1 : GGIND + MLAT ( J ), K ) = VFOUC ( 0 : MLAT ( J ) - 1 ) CALL RFOURTR ( UFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XLAM ( NI - GGIND - MLAT ( J ) + 1 : NI - GGIND , K ) = UFOUC ( 0 : MLAT ( J ) - 1 ) CALL RFOURTR ( MVFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XPHI ( GGIND + 1 : GGIND + MLAT ( J ), K ) = MVFOUC ( 0 : MLAT ( J ) - 1 ) CALL RFOURTR ( MUFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XPHI ( NI - GGIND - MLAT ( J ) + 1 : NI - GGIND , K ) = MUFOUC ( 0 : MLAT ( J ) - 1 ) 3 CONTINUE GGIND = GGIND + MLAT ( J ) 4 CONTINUE RETURN END SUBROUTINE PHGRAD SUBROUTINE PHGRACUT ( XMN , XLAM , XPHI , GWSAVE , IFAX , P , H , MAUF , MNAUF , NI , NJ , MANF , NK ) !! Berechnung des Gradienten eines Skalars aus dem Feld des !! Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der !! Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. ! GWSAVE ist ein Hilfsfeld fuer die FFT ! P enthaelt die assoziierten Legendrepolynome, H deren Ableitung ! MLAT enthaelt die Anzahl der Gitterpunkte pro Breitenkreis ! MNAUF gibt die spektrale Aufloesung an, ! NI = Anzahl der Gauss'schen Gitterpunkte, ! NJ = Anzahl der Gauss'schen Breiten, ! NK = Anzahl der Niveaus USE PHTOGR IMPLICIT NONE INTEGER J , K , M , N , NI , NJ , NK , MNAUF , GGIND , LL , LLP , LLH , LLS , LLPS , LLHS INTEGER MAUF , MANF , I , IFAX ( 10 ) REAL UFOUC ( 0 : MAXAUF ), MUFOUC ( 0 : MAXAUF ) REAL VFOUC ( 0 : MAXAUF ), MVFOUC ( 0 : MAXAUF ) REAL XMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , NK ) REAL P ( 0 :( MNAUF + 3 ) * ( MNAUF + 4 ) / 2 , NJ ) REAL H ( 0 :( MNAUF + 2 ) * ( MNAUF + 3 ) / 2 ) REAL XLAM ( NI , NJ , NK ), XPHI ( NI , NJ , NK ) REAL HLAM ( MAXAUF , 2 ), HPHI ( MAXAUF , 2 ) REAL GWSAVE ( 4 * MAUF + 15 ) REAL ERAD REAL SCR , SCI , ACR , ACI , MUSCR , MUSCI , MUACR , MUACI , RT , IT ERAD = 636747 0.0 GGIND = 0 DO 4 J = 1 , NJ CALL DPLGND ( MNAUF , P ( 0 , J ), H ) DO 3 K = 1 , NK LL = 0 LLP = 0 LLH = 0 DO 2 M = 0 , MNAUF SCR = 0.D0 SCI = 0.D0 ACR = 0.D0 ACI = 0.D0 MUSCR = 0.D0 MUSCI = 0.D0 MUACR = 0.D0 MUACI = 0.D0 LLS = LL LLPS = LLP LLHS = LLH IF ( 2 * M + 1 . LT . MAUF ) THEN DO 1 N = M , MNAUF , 2 RT = XMN ( 2 * LL , K ) IT = XMN ( 2 * LL + 1 , K ) SCR = SCR + RT * P ( LLP , J ) SCI = SCI + IT * P ( LLP , J ) MUACR = MUACR + RT * H ( LLH ) MUACI = MUACI + IT * H ( LLH ) LL = LL + 2 LLP = LLP + 2 LLH = LLH + 2 1 CONTINUE LL = LLS + 1 LLP = LLPS + 1 LLH = LLHS + 1 DO 11 N = M + 1 , MNAUF , 2 RT = XMN ( 2 * LL , K ) IT = XMN ( 2 * LL + 1 , K ) ACR = ACR + RT * P ( LLP , J ) ACI = ACI + IT * P ( LLP , J ) MUSCR = MUSCR + RT * H ( LLH ) MUSCI = MUSCI + IT * H ( LLH ) LL = LL + 2 LLP = LLP + 2 LLH = LLH + 2 11 CONTINUE END IF LL = LLS + ( MNAUF - M + 1 ) LLP = LLPS + ( MNAUF - M + 3 ) LLH = LLHS + ( MNAUF - M + 2 ) UFOUC ( 2 * M ) =- M * ( SCI - ACI ) / ERAD UFOUC ( 2 * M + 1 ) = M * ( SCR - ACR ) / ERAD VFOUC ( 2 * M ) =- M * ( SCI + ACI ) / ERAD VFOUC ( 2 * M + 1 ) = M * ( SCR + ACR ) / ERAD MUFOUC ( 2 * M ) =- ( MUSCR - MUACR ) / ERAD MUFOUC ( 2 * M + 1 ) =- ( MUSCI - MUACI ) / ERAD MVFOUC ( 2 * M ) =- ( MUSCR + MUACR ) / ERAD MVFOUC ( 2 * M + 1 ) =- ( MUSCI + MUACI ) / ERAD 2 CONTINUE CALL RFOURTR ( VFOUC , GWSAVE , IFAX , MNAUF , MAUF , 1 ) CALL RFOURTR ( MVFOUC , GWSAVE , IFAX , MNAUF , MAUF , 1 ) DO 6 I = 0 , NI - 1 IF ( MANF + I . LE . MAUF ) THEN XLAM ( I + 1 , J , K ) = VFOUC ( MANF + I - 1 ) XPHI ( I + 1 , J , K ) = MVFOUC ( MANF + I - 1 ) ELSE XLAM ( I + 1 , J , K ) = VFOUC ( MANF - MAUF + I - 1 ) XPHI ( I + 1 , J , K ) = MVFOUC ( MANF - MAUF + I - 1 ) END IF 6 CONTINUE 3 CONTINUE GGIND = GGIND + MAUF 4 CONTINUE RETURN END SUBROUTINE PHGRACUT SUBROUTINE CONTGL ( PS , DPSDL , DPSDM , DIV , U , V , BREITE , ETA , MLAT , A , B , NI , NJ , NK ) !! Berechnung der Divergenz aus dem Windfeld (U,V) !! im Phasenraum. Zurueckgegeben werden die Felder der !! Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. ! GWSAVE ist ein Hilfsfeld fuer die FFT ! P enthaelt die assoziierten Legendrepolynome, H deren Ableitung ! MLAT enthaelt die Anzahl der Gitterpunkte pro Breitenkreis ! MNAUF gibt die spektrale Aufloesung an, ! NI = Anzahl der Gauss'schen Gitterpunkte, ! NJ = Anzahl der Gauss'schen Breiten, ! NK = Anzahl der Niveaus ! Beachte, dass das Windfeld eine um 1 erhoehte Aufloesung in mu-Richtung hat. IMPLICIT NONE INTEGER NI , NJ , NK , I , J , K , MLAT ( NJ ), L REAL A ( NK + 1 ), B ( NK + 1 ) REAL PS ( NI ), DPSDL ( NI ), DPSDM ( NI ) REAL DIV ( NI , NK ), U ( NI , NK ), V ( NI , NK ), ETA ( NI , NK ) REAL BREITE ( NJ ) REAL DIVT1 , DIVT2 , POB , PUN , DPSDT , COSB L = 0 DO 4 J = 1 , NJ COSB = ( 1.0 - BREITE ( J ) * BREITE ( J )) DO 3 I = 1 , MLAT ( J ) L = L + 1 DIVT1 = 0.0 DIVT2 = 0.0 DO 1 K = 1 , NK POB = A ( K ) + B ( K ) * PS ( L ) PUN = A ( K + 1 ) + B ( K + 1 ) * PS ( L ) DIVT1 = DIVT1 + DIV ( L , K ) * ( PUN - POB ) IF ( COSB . GT . 0. ) THEN DIVT2 = DIVT2 + ( B ( K + 1 ) - B ( K )) * PS ( L ) * & ( U ( L , K ) * DPSDL ( L ) + V ( L , K ) * DPSDM ( L )) / COSB END IF ETA ( L , K ) =- DIVT1 - DIVT2 1 CONTINUE DPSDT = ( - DIVT1 - DIVT2 ) / PS ( L ) DO 2 K = 1 , NK ETA ( L , K ) = ETA ( L , K ) - DPSDT * B ( K + 1 ) * PS ( L ) 2 CONTINUE PS ( L ) = DPSDT * PS ( L ) 3 CONTINUE 4 CONTINUE RETURN END SUBROUTINE CONTGL SUBROUTINE OMEGA ( PS , DPSDL , DPSDM , DIV , U , V , BREITE , E , MLAT , A , B , NGI , NGJ , MKK ) !! calculates $\\omega$ in the hybrid ($\\eta$-) coordinate system ! OMEGA berechnet omega im Hybridkoordinatensystem ! PS ist der Bodendruck, ! DPSDL,DPSDM sind die Komponenten des Gradienten des Logarithmus des ! Bodendrucks ! DIV,U,V sind die horizontale Divergenz und das horizontale Windfeld ! BREITE ist das Feld der Gauss'schen Breiten ! E ist omega, IMPLICIT NONE INTEGER I , J , K , L , NGI , NGJ , MKK , MLAT ( NGJ ) REAL PS ( NGI ), DPSDL ( NGI ), DPSDM ( NGI ), A ( MKK + 1 ), B ( MKK + 1 ) REAL DIV ( NGI , MKK ), U ( NGI , MKK ), V ( NGI , MKK ), E ( NGI , MKK ) REAL BREITE ( NGJ ) REAL DIVT1 , DIVT2 , POB , PUN , DP , X , Y , COSB REAL DIVT3 ( MKK + 2 ) L = 0 DO 4 J = 1 , NGJ COSB = ( 1.0 - BREITE ( J ) * BREITE ( J )) DO 3 I = 1 , MLAT ( J ) L = L + 1 DIVT1 = 0.0 DIVT2 = 0.0 DIVT3 ( 1 ) = 0.0 DO 1 K = 1 , MKK POB = A ( K ) + B ( K ) * PS ( L ) PUN = A ( K + 1 ) + B ( K + 1 ) * PS ( L ) DP = PUN - POB Y = PS ( L ) * ( U ( L , K ) * DPSDL ( L ) + V ( L , K ) * DPSDM ( L )) / COSB IF ( K . LT . 3 ) THEN X = 0.0 ELSE X = ( B ( K + 1 ) - B ( K )) * Y END IF DIVT1 = DIVT1 + DIV ( L , K ) * DP DIVT2 = DIVT2 + X DIVT3 ( K + 1 ) =- DIVT1 - DIVT2 IF ( K . GT . 1 ) THEN E ( L , K ) = 0.5 * ( POB + PUN ) / & DP * Y * (( B ( K + 1 ) - B ( K )) + ( A ( K + 1 ) * B ( K ) - A ( K ) * B ( K + 1 )) / DP * LOG ( PUN / POB )) ELSE E ( L , K ) = 0.0 END IF E ( L , K ) = E ( L , K ) + 0.5 * ( DIVT3 ( K ) + DIVT3 ( K + 1 )) 1 CONTINUE 3 CONTINUE 4 CONTINUE RETURN END SUBROUTINE OMEGA END MODULE FTRAFO","tags":"","loc":"sourcefile/ftrafo.f90.html","title":"ftrafo.f90 – Flex_extract: Calculation of etadot"},{"text":"function IA(FIELD1, NI, NJ, NK, G) Calculate something that is roughly log10( maxval(field1)/g ) [PS] Arguments Type Intent Optional Attributes Name real, intent(in) :: FIELD1 (NI,NJ,NK) integer, intent(in) :: NI integer, intent(in) :: NJ integer, intent(in) :: NK real :: G Return Value integer Contents None","tags":"","loc":"proc/ia.html","title":"IA – Flex_extract: Calculation of etadot"},{"text":"subroutine STATIS(NI, NJ, NK, PHI, RMS, MW, SIG) calculate mean, rms, stdev Arguments Type Intent Optional Attributes Name integer :: NI integer :: NJ integer :: NK real :: PHI (NI,NJ,NK) real :: RMS real :: MW real :: SIG Called by proc~~statis~~CalledByGraph proc~statis STATIS program~preconvert PRECONVERT program~preconvert->proc~statis Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/statis.html","title":"STATIS – Flex_extract: Calculation of etadot"},{"text":"subroutine POSNAM(KULNAM, CDNAML) position in namelist file. Arguments Type Intent Optional Attributes Name integer, intent(in) :: KULNAM character(len=*), intent(in) :: CDNAML Called by proc~~posnam~~CalledByGraph proc~posnam POSNAM program~preconvert PRECONVERT program~preconvert->proc~posnam Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/posnam.html","title":"POSNAM – Flex_extract: Calculation of etadot"},{"text":"public subroutine READLATLON(filename, feld, maxl, maxb, mlevel, mpar) Uses GRIB_API proc~~readlatlon~~UsesGraph proc~readlatlon READLATLON GRIB_API GRIB_API proc~readlatlon->GRIB_API Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Read a field from GRIB file on lat-lon grid Arguments Type Intent Optional Attributes Name character(len=*) :: filename real, dimension(maxl,maxb,mlevel) :: feld integer :: maxl integer :: maxb integer :: mlevel integer :: mpar (:) Calls proc~~readlatlon~~CallsGraph proc~readlatlon READLATLON grib_count_in_file grib_count_in_file proc~readlatlon->grib_count_in_file grib_close_file grib_close_file proc~readlatlon->grib_close_file Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~readlatlon~~CalledByGraph proc~readlatlon READLATLON program~preconvert PRECONVERT program~preconvert->proc~readlatlon Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/readlatlon.html","title":"READLATLON – Flex_extract: Calculation of etadot"},{"text":"public subroutine WRITELATLON(IUNIT, igrib, ogrib, FELD, MAXL, MAXB, MLEVEL, MLEVELIST, MSTRIDE, MPAR) Uses GRIB_API proc~~writelatlon~~UsesGraph proc~writelatlon WRITELATLON GRIB_API GRIB_API proc~writelatlon->GRIB_API Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. write a field on lat-lon grid to GRIB file Arguments Type Intent Optional Attributes Name integer :: IUNIT integer :: igrib integer :: ogrib real :: FELD (MAXL,MAXB,MLEVEL) integer :: MAXL integer :: MAXB integer :: MLEVEL character(len=*) :: MLEVELIST integer :: MSTRIDE integer :: MPAR (MSTRIDE) Calls proc~~writelatlon~~CallsGraph proc~writelatlon WRITELATLON grib_write grib_write proc~writelatlon->grib_write grib_set grib_set proc~writelatlon->grib_set Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/writelatlon.html","title":"WRITELATLON – Flex_extract: Calculation of etadot"},{"text":"public subroutine READSPECTRAL(filename, CXMN, mnauf, mlevel, maxlev, mpar, A, B) Uses GRIB_API proc~~readspectral~~UsesGraph proc~readspectral READSPECTRAL GRIB_API GRIB_API proc~readspectral->GRIB_API Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. read a GRIB file in spherical harmonics Arguments Type Intent Optional Attributes Name character(len=*) :: filename real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) integer :: mnauf integer :: mlevel integer :: maxlev integer :: mpar (:) real :: A (MAXLEV+1) real :: B (MAXLEV+1) Calls proc~~readspectral~~CallsGraph proc~readspectral READSPECTRAL grib_count_in_file grib_count_in_file proc~readspectral->grib_count_in_file grib_close_file grib_close_file proc~readspectral->grib_close_file Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~readspectral~~CalledByGraph proc~readspectral READSPECTRAL program~preconvert PRECONVERT program~preconvert->proc~readspectral Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/readspectral.html","title":"READSPECTRAL – Flex_extract: Calculation of etadot"},{"text":"public subroutine GRPH213(CXMN, FELD, WSAVE, IFAX, Z, W, MLAT, MNAUF, MAXL, MAXB, MLEVEL) DIE ROUTINE F]HRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF KUGELKOORDINATEN DURCH Arguments Type Intent Optional Attributes Name real :: CXMN real :: FELD (MAXL,MLEVEL) real :: WSAVE integer :: IFAX (10,MAXB) real(kind=8) :: Z (MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) real(kind=8) :: W (MAXB) integer :: MLAT (MAXB) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL Calls proc~~grph213~~CallsGraph proc~grph213 GRPH213 ind ind proc~grph213->ind proc~grphsub GRPHSUB proc~grph213->proc~grphsub Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~grph213~~CalledByGraph proc~grph213 GRPH213 program~preconvert PRECONVERT program~preconvert->proc~grph213 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/grph213.html","title":"GRPH213 – Flex_extract: Calculation of etadot"},{"text":"public subroutine GRPHSUB(L, IND, CXMN, FELD, WSAVE, IFAX, Z, W, MLAT, MNAUF, MAXL, MAXB, MLEVEL) DIE ROUTINE F]HRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF KUGELKOORDINATEN DURCH Arguments Type Intent Optional Attributes Name integer :: L integer :: IND (MAXB) real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MLEVEL) real :: WSAVE (8*MAXB+15,MAXB/2) integer :: IFAX (10,MAXB) real :: Z (MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) real :: W (MAXB) integer :: MLAT (MAXB) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL Called by proc~~grphsub~~CalledByGraph proc~grphsub GRPHSUB proc~grph213 GRPH213 proc~grph213->proc~grphsub program~preconvert PRECONVERT program~preconvert->proc~grph213 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/grphsub.html","title":"GRPHSUB – Flex_extract: Calculation of etadot"},{"text":"public subroutine LGTR213(CXMN, CXM, Z, W, MLAT, MNAUF, MAXB) DIESE ROUTINE BERECHNET DIE KFFKs CXMN Arguments Type Intent Optional Attributes Name real :: CXMN real :: CXM real(kind=8) :: Z (MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) real(kind=8) :: W (MAXB) integer :: MLAT (MAXB) integer :: MNAUF integer :: MAXB Contents None","tags":"","loc":"proc/lgtr213.html","title":"LGTR213 – Flex_extract: Calculation of etadot"},{"text":"public subroutine RFOUFTR(CXM, TRIGS, IFAX, MNAUF, MAXL, ISIGN) Arguments Type Intent Optional Attributes Name real :: CXM real :: TRIGS integer :: IFAX (10) integer :: MNAUF integer :: MAXL integer :: ISIGN Calls proc~~rfouftr~~CallsGraph proc~rfouftr RFOUFTR wsave wsave proc~rfouftr->wsave fft99 fft99 proc~rfouftr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/rfouftr.html","title":"RFOUFTR – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHGR213(CXMN, FELD, WSAVE, IFAX, Z, MLAT, MNAUF, MAXL, MAXB, MLEVEL) DIE ROUTINE F]HRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF DAS REDUZIERTE GAUSS'SCHE GITTER DURCH Arguments Type Intent Optional Attributes Name real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MLEVEL) real :: WSAVE (8*MAXB+15,MAXB/2) integer :: IFAX (10,MAXB) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB/2) integer :: MLAT (MAXB/2) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL Calls proc~~phgr213~~CallsGraph proc~phgr213 PHGR213 proc~phsym PHSYM proc~phgr213->proc~phsym Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~phgr213~~CalledByGraph proc~phgr213 PHGR213 program~preconvert PRECONVERT program~preconvert->proc~phgr213 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phgr213.html","title":"PHGR213 – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHSYM(K, IND, CXMN, FELD, Z, WSAVE, IFAX, MLAT, MNAUF, MAXL, MAXB, MLEVEL) Arguments Type Intent Optional Attributes Name integer :: K integer :: IND (MAXB) real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MLEVEL) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB/2) real :: WSAVE (8*MAXB+15,MAXB/2) integer :: IFAX (10,MAXB) integer :: MLAT (MAXB/2) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL Called by proc~~phsym~~CalledByGraph proc~phsym PHSYM proc~phgr213 PHGR213 proc~phgr213->proc~phsym program~preconvert PRECONVERT program~preconvert->proc~phgr213 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phsym.html","title":"PHSYM – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHGCUT(CXMN, FELD, WSAVE, IFAX, Z, MNAUF, MMAX, MAUF, MANF, MAXL, MAXB, MLEVEL) DIE ROUTINE FUEHRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF KUGELKOORDINATEN DURCH. Es kann ein Teilausschnitt\n Der Erde angegeben werden. Diese Routine ist langsamer als phgrph Arguments Type Intent Optional Attributes Name real :: CXMN real :: FELD (MAXL,MAXB,MLEVEL) real :: WSAVE integer :: IFAX (10) real :: Z (0:((MMAX+3)*(MMAX+4))/2,MAXB) integer :: MNAUF integer :: MMAX integer :: MAUF integer :: MANF integer :: MAXL integer :: MAXB integer :: MLEVEL Calls proc~~phgcut~~CallsGraph proc~phgcut PHGCUT proc~phsymcut PHSYMCUT proc~phgcut->proc~phsymcut proc~phgpns PHGPNS proc~phgcut->proc~phgpns proc~rfourtr RFOURTR proc~phsymcut->proc~rfourtr proc~phgpns->proc~rfourtr fft99 fft99 proc~rfourtr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~phgcut~~CalledByGraph proc~phgcut PHGCUT program~preconvert PRECONVERT program~preconvert->proc~phgcut Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phgcut.html","title":"PHGCUT – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHSYMCUT(J, CXMN, FELD, Z, WSAVE, IFAX, MAUF, MNAUF, MAXL, MAXB, MLEVEL, MANF) Arguments Type Intent Optional Attributes Name integer :: J real :: CXMN real :: FELD (MAXL,MAXB,MLEVEL) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB) real :: WSAVE integer :: IFAX (10) integer :: MAUF integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL integer :: MANF Calls proc~~phsymcut~~CallsGraph proc~phsymcut PHSYMCUT proc~rfourtr RFOURTR proc~phsymcut->proc~rfourtr fft99 fft99 proc~rfourtr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~phsymcut~~CalledByGraph proc~phsymcut PHSYMCUT proc~phgcut PHGCUT proc~phgcut->proc~phsymcut program~preconvert PRECONVERT program~preconvert->proc~phgcut Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phsymcut.html","title":"PHSYMCUT – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHGPNS(CXMN, FELD, Z, WSAVE, IFAX, J, MNAUF, MAUF, MANF, MAXL, MAXB, MLEVEL) Arguments Type Intent Optional Attributes Name real, intent(in) :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MAXB,MLEVEL) real, intent(in) :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB) real, intent(in) :: WSAVE (4*MAUF+15) integer :: IFAX (10) integer, intent(in) :: J integer, intent(in) :: MNAUF integer, intent(in) :: MAUF integer, intent(in) :: MANF integer, intent(in) :: MAXL integer, intent(in) :: MAXB integer, intent(in) :: MLEVEL Calls proc~~phgpns~~CallsGraph proc~phgpns PHGPNS proc~rfourtr RFOURTR proc~phgpns->proc~rfourtr fft99 fft99 proc~rfourtr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~phgpns~~CalledByGraph proc~phgpns PHGPNS proc~phgcut PHGCUT proc~phgcut->proc~phgpns program~preconvert PRECONVERT program~preconvert->proc~phgcut Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phgpns.html","title":"PHGPNS – Flex_extract: Calculation of etadot"},{"text":"public subroutine LEGTR(CXMN, CXM, Z, MNAUF, MAUF) DIESE ROUTINE BERECHNET DIE FOURIERKOEFFIZIENTEN CXM Arguments Type Intent Optional Attributes Name real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1) real :: CXM (0:MAXAUF-1) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2) integer :: MNAUF integer :: MAUF Contents None","tags":"","loc":"proc/legtr.html","title":"LEGTR – Flex_extract: Calculation of etadot"},{"text":"public subroutine RFOURTR(CXM, TRIGS, IFAX, MNAUF, MAXL, ISIGN) BERECHNET DIE FOURIERSUMME MIT EINEM FFT-ALGORITHMUS Arguments Type Intent Optional Attributes Name real :: CXM real :: TRIGS (2*MAXL) integer :: IFAX (10) integer :: MNAUF integer :: MAXL integer :: ISIGN Calls proc~~rfourtr~~CallsGraph proc~rfourtr RFOURTR fft99 fft99 proc~rfourtr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~rfourtr~~CalledByGraph proc~rfourtr RFOURTR proc~phsymcut PHSYMCUT proc~phsymcut->proc~rfourtr proc~phgpns PHGPNS proc~phgpns->proc~rfourtr proc~phgracut PHGRACUT proc~phgracut->proc~rfourtr proc~phgcut PHGCUT proc~phgcut->proc~phsymcut proc~phgcut->proc~phgpns program~preconvert PRECONVERT program~preconvert->proc~phgcut Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/rfourtr.html","title":"RFOURTR – Flex_extract: Calculation of etadot"},{"text":"public subroutine GAULEG(X1, X2, X, W, N) BERECHNET DIE GAUSS+SCHEN BREITEN Arguments Type Intent Optional Attributes Name real :: X1 real :: X2 real :: X real :: W integer :: N Calls proc~~gauleg~~CallsGraph proc~gauleg GAULEG dcos dcos proc~gauleg->dcos Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~gauleg~~CalledByGraph proc~gauleg GAULEG program~preconvert PRECONVERT program~preconvert->proc~gauleg Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/gauleg.html","title":"GAULEG – Flex_extract: Calculation of etadot"},{"text":"public subroutine PLGNFA(LL, X, Z) PLGNDN BERECHNET ALLE NORMIERTEN ASSOZIIERTEN\n LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X)\n UND SCHREIBT SIE IN DAS FELD Z Arguments Type Intent Optional Attributes Name integer :: LL real :: X real :: Z Contents None","tags":"","loc":"proc/plgnfa.html","title":"PLGNFA – Flex_extract: Calculation of etadot"},{"text":"public subroutine DPLGND(MNAUF, Z, DZ) DPLGND BERECHNET DIE ABLEITUNG DER NORMIERTEN ASSOZIIERTEN\n LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X)\n UND SCHREIBT SIE IN DAS FELD DZ Arguments Type Intent Optional Attributes Name integer :: MNAUF real :: Z real :: DZ Contents None","tags":"","loc":"proc/dplgnd.html","title":"DPLGND – Flex_extract: Calculation of etadot"},{"text":"public subroutine SPFILTER(FELDMN, MM, MMAX) Spectral Filter of Sardeshmukh and Hoskins (1984, MWR) Arguments Type Intent Optional Attributes Name real :: FELDMN (0:(MM+1)*(MM+2)-1) integer :: MM integer :: MMAX Calls proc~~spfilter~~CallsGraph proc~spfilter SPFILTER float float proc~spfilter->float alog alog proc~spfilter->alog Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/spfilter.html","title":"SPFILTER – Flex_extract: Calculation of etadot"},{"text":"public subroutine VDTOUV(XMN, XLAM, XPHI, GWSAVE, IFAX, P, MLAT, MNAUF, NI, NJ, NK) Uses PHTOGR proc~~vdtouv~~UsesGraph proc~vdtouv VDTOUV module~phtogr PHTOGR proc~vdtouv->module~phtogr Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Berechnung der scale winds aus Vorticity und Divergenz\n uebergibt man in XMN die Divergenz, so wird der divergente Anteil des\n Windes (XPHI=Ud,XPHI=Vd) zurueckgegeben, uebergibt man die Vorticity, so\n erhaelt man den rotationellen Wind (XLAM=Vrot,XPHI=-Urot).\n Summiert man beide, erhaelt man den gesamten Scale wind Arguments Type Intent Optional Attributes Name real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NK) real :: XPHI (NI,NK) real :: GWSAVE (8*NJ+15,NJ/2) integer :: IFAX (10,NJ) real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ/2) integer :: MLAT (NJ) integer :: MNAUF integer :: NI integer :: NJ integer :: NK Contents None","tags":"","loc":"proc/vdtouv.html","title":"VDTOUV – Flex_extract: Calculation of etadot"},{"text":"public subroutine VDUVSUB(J, XMN, XLAM, XPHI, GWSAVE, IFAX, P, GGIND, MLAT, MNAUF, NI, NJ, NK) Uses PHTOGR proc~~vduvsub~~UsesGraph proc~vduvsub VDUVSUB module~phtogr PHTOGR proc~vduvsub->module~phtogr Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Arguments Type Intent Optional Attributes Name integer :: J real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NK) real :: XPHI (NI,NK) real :: GWSAVE (8*NJ+15,NJ/2) integer :: IFAX (10,NJ) real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ/2) integer :: GGIND integer :: MLAT (NJ) integer :: MNAUF integer :: NI integer :: NJ integer :: NK Contents None","tags":"","loc":"proc/vduvsub.html","title":"VDUVSUB – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHGRAD(XMN, XLAM, XPHI, GWSAVE, IFAX, P, H, MLAT, MNAUF, NI, NJ, NK) Uses PHTOGR proc~~phgrad~~UsesGraph proc~phgrad PHGRAD module~phtogr PHTOGR proc~phgrad->module~phtogr Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Berechnung des Gradienten eines Skalars aus dem Feld des\n Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der\n Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. Arguments Type Intent Optional Attributes Name real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NK) real :: XPHI (NI,NK) real :: GWSAVE (8*NJ+15,NJ/2) integer :: IFAX real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ/2) real :: H (0:(MNAUF+2)*(MNAUF+3)/2) integer :: MLAT integer :: MNAUF integer :: NI integer :: NJ integer :: NK Calls proc~~phgrad~~CallsGraph proc~phgrad PHGRAD integermlat integermlat proc~phgrad->integermlat Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~phgrad~~CalledByGraph proc~phgrad PHGRAD program~preconvert PRECONVERT program~preconvert->proc~phgrad Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phgrad.html","title":"PHGRAD – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHGRACUT(XMN, XLAM, XPHI, GWSAVE, IFAX, P, H, MAUF, MNAUF, NI, NJ, MANF, NK) Uses PHTOGR proc~~phgracut~~UsesGraph proc~phgracut PHGRACUT module~phtogr PHTOGR proc~phgracut->module~phtogr Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Berechnung des Gradienten eines Skalars aus dem Feld des\n Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der\n Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. Arguments Type Intent Optional Attributes Name real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NJ,NK) real :: XPHI (NI,NJ,NK) real :: GWSAVE (4*MAUF+15) integer :: IFAX (10) real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ) real :: H (0:(MNAUF+2)*(MNAUF+3)/2) integer :: MAUF integer :: MNAUF integer :: NI integer :: NJ integer :: MANF integer :: NK Calls proc~~phgracut~~CallsGraph proc~phgracut PHGRACUT proc~rfourtr RFOURTR proc~phgracut->proc~rfourtr fft99 fft99 proc~rfourtr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phgracut.html","title":"PHGRACUT – Flex_extract: Calculation of etadot"},{"text":"public subroutine CONTGL(PS, DPSDL, DPSDM, DIV, U, V, BREITE, ETA, MLAT, A, B, NI, NJ, NK) Berechnung der Divergenz aus dem Windfeld (U,V)\n im Phasenraum. Zurueckgegeben werden die Felder der\n Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. Arguments Type Intent Optional Attributes Name real :: PS (NI) real :: DPSDL (NI) real :: DPSDM (NI) real :: DIV (NI,NK) real :: U (NI,NK) real :: V (NI,NK) real :: BREITE (NJ) real :: ETA (NI,NK) integer :: MLAT (NJ) real :: A (NK+1) real :: B (NK+1) integer :: NI integer :: NJ integer :: NK Contents None","tags":"","loc":"proc/contgl.html","title":"CONTGL – Flex_extract: Calculation of etadot"},{"text":"public subroutine OMEGA(PS, DPSDL, DPSDM, DIV, U, V, BREITE, E, MLAT, A, B, NGI, NGJ, MKK) calculates $\\omega$ in the hybrid ($\\eta$-) coordinate system Arguments Type Intent Optional Attributes Name real :: PS (NGI) real :: DPSDL (NGI) real :: DPSDM (NGI) real :: DIV (NGI,MKK) real :: U (NGI,MKK) real :: V (NGI,MKK) real :: BREITE (NGJ) real :: E (NGI,MKK) integer :: MLAT (NGJ) real :: A (MKK+1) real :: B (MKK+1) integer :: NGI integer :: NGJ integer :: MKK Contents None","tags":"","loc":"proc/omega.html","title":"OMEGA – Flex_extract: Calculation of etadot"},{"text":"Used by module~~rwgrib2~~UsedByGraph module~rwgrib2 RWGRIB2 program~preconvert PRECONVERT program~preconvert->module~rwgrib2 Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Contents Subroutines READLATLON WRITELATLON READSPECTRAL Subroutines public subroutine READLATLON (filename, feld, maxl, maxb, mlevel, mpar) Read a field from GRIB file on lat-lon grid Arguments Type Intent Optional Attributes Name character(len=*) :: filename real, dimension(maxl,maxb,mlevel) :: feld integer :: maxl integer :: maxb integer :: mlevel integer :: mpar (:) public subroutine WRITELATLON (IUNIT, igrib, ogrib, FELD, MAXL, MAXB, MLEVEL, MLEVELIST, MSTRIDE, MPAR) write a field on lat-lon grid to GRIB file Arguments Type Intent Optional Attributes Name integer :: IUNIT integer :: igrib integer :: ogrib real :: FELD (MAXL,MAXB,MLEVEL) integer :: MAXL integer :: MAXB integer :: MLEVEL character(len=*) :: MLEVELIST integer :: MSTRIDE integer :: MPAR (MSTRIDE) public subroutine READSPECTRAL (filename, CXMN, mnauf, mlevel, maxlev, mpar, A, B) read a GRIB file in spherical harmonics Arguments Type Intent Optional Attributes Name character(len=*) :: filename real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) integer :: mnauf integer :: mlevel integer :: maxlev integer :: mpar (:) real :: A (MAXLEV+1) real :: B (MAXLEV+1)","tags":"","loc":"module/rwgrib2.html","title":"RWGRIB2 – Flex_extract: Calculation of etadot"},{"text":"Uses PHTOGR module~~grtoph~~UsesGraph module~grtoph GRTOPH module~phtogr PHTOGR module~grtoph->module~phtogr Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Used by module~~grtoph~~UsedByGraph module~grtoph GRTOPH program~preconvert PRECONVERT program~preconvert->module~grtoph Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Contents Subroutines GRPH213 GRPHSUB LGTR213 RFOUFTR Subroutines public subroutine GRPH213 (CXMN, FELD, WSAVE, IFAX, Z, W, MLAT, MNAUF, MAXL, MAXB, MLEVEL) DIE ROUTINE F]HRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF KUGELKOORDINATEN DURCH Arguments Type Intent Optional Attributes Name real :: CXMN real :: FELD (MAXL,MLEVEL) real :: WSAVE integer :: IFAX (10,MAXB) real(kind=8) :: Z (MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) real(kind=8) :: W (MAXB) integer :: MLAT (MAXB) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL public subroutine GRPHSUB (L, IND, CXMN, FELD, WSAVE, IFAX, Z, W, MLAT, MNAUF, MAXL, MAXB, MLEVEL) DIE ROUTINE F]HRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF KUGELKOORDINATEN DURCH Arguments Type Intent Optional Attributes Name integer :: L integer :: IND (MAXB) real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MLEVEL) real :: WSAVE (8*MAXB+15,MAXB/2) integer :: IFAX (10,MAXB) real :: Z (MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) real :: W (MAXB) integer :: MLAT (MAXB) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL public subroutine LGTR213 (CXMN, CXM, Z, W, MLAT, MNAUF, MAXB) Read more… Arguments Type Intent Optional Attributes Name real :: CXMN real :: CXM real(kind=8) :: Z (MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) real(kind=8) :: W (MAXB) integer :: MLAT (MAXB) integer :: MNAUF integer :: MAXB public subroutine RFOUFTR (CXM, TRIGS, IFAX, MNAUF, MAXL, ISIGN) Arguments Type Intent Optional Attributes Name real :: CXM real :: TRIGS integer :: IFAX (10) integer :: MNAUF integer :: MAXL integer :: ISIGN","tags":"","loc":"module/grtoph.html","title":"GRTOPH – Flex_extract: Calculation of etadot"},{"text":"Used by module~~phtogr~~UsedByGraph module~phtogr PHTOGR proc~vduvsub VDUVSUB proc~vduvsub->module~phtogr proc~phgrad PHGRAD proc~phgrad->module~phtogr module~grtoph GRTOPH module~grtoph->module~phtogr proc~vdtouv VDTOUV proc~vdtouv->module~phtogr proc~phgracut PHGRACUT proc~phgracut->module~phtogr program~preconvert PRECONVERT program~preconvert->module~phtogr program~preconvert->module~grtoph Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Contents Variables MAXAUF Subroutines PHGR213 PHSYM PHGCUT PHSYMCUT PHGPNS LEGTR RFOURTR GAULEG PLGNFA DPLGND SPFILTER Variables Type Visibility Attributes Name Initial integer, public, parameter :: MAXAUF = 36000 Subroutines public subroutine PHGR213 (CXMN, FELD, WSAVE, IFAX, Z, MLAT, MNAUF, MAXL, MAXB, MLEVEL) DIE ROUTINE F]HRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF DAS REDUZIERTE GAUSS'SCHE GITTER DURCH Arguments Type Intent Optional Attributes Name real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MLEVEL) real :: WSAVE (8*MAXB+15,MAXB/2) integer :: IFAX (10,MAXB) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB/2) integer :: MLAT (MAXB/2) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL public subroutine PHSYM (K, IND, CXMN, FELD, Z, WSAVE, IFAX, MLAT, MNAUF, MAXL, MAXB, MLEVEL) Arguments Type Intent Optional Attributes Name integer :: K integer :: IND (MAXB) real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MLEVEL) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB/2) real :: WSAVE (8*MAXB+15,MAXB/2) integer :: IFAX (10,MAXB) integer :: MLAT (MAXB/2) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL public subroutine PHGCUT (CXMN, FELD, WSAVE, IFAX, Z, MNAUF, MMAX, MAUF, MANF, MAXL, MAXB, MLEVEL) DIE ROUTINE FUEHRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF KUGELKOORDINATEN DURCH. Es kann ein Teilausschnitt\n Der Erde angegeben werden. Diese Routine ist langsamer als phgrph Arguments Type Intent Optional Attributes Name real :: CXMN real :: FELD (MAXL,MAXB,MLEVEL) real :: WSAVE integer :: IFAX (10) real :: Z (0:((MMAX+3)*(MMAX+4))/2,MAXB) integer :: MNAUF integer :: MMAX integer :: MAUF integer :: MANF integer :: MAXL integer :: MAXB integer :: MLEVEL public subroutine PHSYMCUT (J, CXMN, FELD, Z, WSAVE, IFAX, MAUF, MNAUF, MAXL, MAXB, MLEVEL, MANF) Arguments Type Intent Optional Attributes Name integer :: J real :: CXMN real :: FELD (MAXL,MAXB,MLEVEL) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB) real :: WSAVE integer :: IFAX (10) integer :: MAUF integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL integer :: MANF public subroutine PHGPNS (CXMN, FELD, Z, WSAVE, IFAX, J, MNAUF, MAUF, MANF, MAXL, MAXB, MLEVEL) Arguments Type Intent Optional Attributes Name real, intent(in) :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MAXB,MLEVEL) real, intent(in) :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB) real, intent(in) :: WSAVE (4*MAUF+15) integer :: IFAX (10) integer, intent(in) :: J integer, intent(in) :: MNAUF integer, intent(in) :: MAUF integer, intent(in) :: MANF integer, intent(in) :: MAXL integer, intent(in) :: MAXB integer, intent(in) :: MLEVEL public subroutine LEGTR (CXMN, CXM, Z, MNAUF, MAUF) DIESE ROUTINE BERECHNET DIE FOURIERKOEFFIZIENTEN CXM Arguments Type Intent Optional Attributes Name real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1) real :: CXM (0:MAXAUF-1) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2) integer :: MNAUF integer :: MAUF public subroutine RFOURTR (CXM, TRIGS, IFAX, MNAUF, MAXL, ISIGN) Read more… Arguments Type Intent Optional Attributes Name real :: CXM real :: TRIGS (2*MAXL) integer :: IFAX (10) integer :: MNAUF integer :: MAXL integer :: ISIGN public subroutine GAULEG (X1, X2, X, W, N) BERECHNET DIE GAUSS+SCHEN BREITEN Arguments Type Intent Optional Attributes Name real :: X1 real :: X2 real :: X real :: W integer :: N public subroutine PLGNFA (LL, X, Z) PLGNDN BERECHNET ALLE NORMIERTEN ASSOZIIERTEN\n LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X)\n UND SCHREIBT SIE IN DAS FELD Z Arguments Type Intent Optional Attributes Name integer :: LL real :: X real :: Z public subroutine DPLGND (MNAUF, Z, DZ) DPLGND BERECHNET DIE ABLEITUNG DER NORMIERTEN ASSOZIIERTEN\n LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X)\n UND SCHREIBT SIE IN DAS FELD DZ Arguments Type Intent Optional Attributes Name integer :: MNAUF real :: Z real :: DZ public subroutine SPFILTER (FELDMN, MM, MMAX) Spectral Filter of Sardeshmukh and Hoskins (1984, MWR) Arguments Type Intent Optional Attributes Name real :: FELDMN (0:(MM+1)*(MM+2)-1) integer :: MM integer :: MMAX","tags":"","loc":"module/phtogr.html","title":"PHTOGR – Flex_extract: Calculation of etadot"},{"text":"Implementation of the spectral transformation using reduced the Gaussian grid Used by module~~ftrafo~~UsedByGraph module~ftrafo FTRAFO program~preconvert PRECONVERT program~preconvert->module~ftrafo Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Contents Subroutines VDTOUV VDUVSUB PHGRAD PHGRACUT CONTGL OMEGA Subroutines public subroutine VDTOUV (XMN, XLAM, XPHI, GWSAVE, IFAX, P, MLAT, MNAUF, NI, NJ, NK) Berechnung der scale winds aus Vorticity und Divergenz\n uebergibt man in XMN die Divergenz, so wird der divergente Anteil des\n Windes (XPHI=Ud,XPHI=Vd) zurueckgegeben, uebergibt man die Vorticity, so\n erhaelt man den rotationellen Wind (XLAM=Vrot,XPHI=-Urot).\n Summiert man beide, erhaelt man den gesamten Scale wind Arguments Type Intent Optional Attributes Name real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NK) real :: XPHI (NI,NK) real :: GWSAVE (8*NJ+15,NJ/2) integer :: IFAX (10,NJ) real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ/2) integer :: MLAT (NJ) integer :: MNAUF integer :: NI integer :: NJ integer :: NK public subroutine VDUVSUB (J, XMN, XLAM, XPHI, GWSAVE, IFAX, P, GGIND, MLAT, MNAUF, NI, NJ, NK) Arguments Type Intent Optional Attributes Name integer :: J real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NK) real :: XPHI (NI,NK) real :: GWSAVE (8*NJ+15,NJ/2) integer :: IFAX (10,NJ) real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ/2) integer :: GGIND integer :: MLAT (NJ) integer :: MNAUF integer :: NI integer :: NJ integer :: NK public subroutine PHGRAD (XMN, XLAM, XPHI, GWSAVE, IFAX, P, H, MLAT, MNAUF, NI, NJ, NK) Berechnung des Gradienten eines Skalars aus dem Feld des\n Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der\n Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. Arguments Type Intent Optional Attributes Name real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NK) real :: XPHI (NI,NK) real :: GWSAVE (8*NJ+15,NJ/2) integer :: IFAX real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ/2) real :: H (0:(MNAUF+2)*(MNAUF+3)/2) integer :: MLAT integer :: MNAUF integer :: NI integer :: NJ integer :: NK public subroutine PHGRACUT (XMN, XLAM, XPHI, GWSAVE, IFAX, P, H, MAUF, MNAUF, NI, NJ, MANF, NK) Berechnung des Gradienten eines Skalars aus dem Feld des\n Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der\n Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. Arguments Type Intent Optional Attributes Name real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NJ,NK) real :: XPHI (NI,NJ,NK) real :: GWSAVE (4*MAUF+15) integer :: IFAX (10) real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ) real :: H (0:(MNAUF+2)*(MNAUF+3)/2) integer :: MAUF integer :: MNAUF integer :: NI integer :: NJ integer :: MANF integer :: NK public subroutine CONTGL (PS, DPSDL, DPSDM, DIV, U, V, BREITE, ETA, MLAT, A, B, NI, NJ, NK) Berechnung der Divergenz aus dem Windfeld (U,V)\n im Phasenraum. Zurueckgegeben werden die Felder der\n Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. Arguments Type Intent Optional Attributes Name real :: PS (NI) real :: DPSDL (NI) real :: DPSDM (NI) real :: DIV (NI,NK) real :: U (NI,NK) real :: V (NI,NK) real :: BREITE (NJ) real :: ETA (NI,NK) integer :: MLAT (NJ) real :: A (NK+1) real :: B (NK+1) integer :: NI integer :: NJ integer :: NK public subroutine OMEGA (PS, DPSDL, DPSDM, DIV, U, V, BREITE, E, MLAT, A, B, NGI, NGJ, MKK) calculates $\\omega$ in the hybrid ($\\eta$-) coordinate system Arguments Type Intent Optional Attributes Name real :: PS (NGI) real :: DPSDL (NGI) real :: DPSDM (NGI) real :: DIV (NGI,MKK) real :: U (NGI,MKK) real :: V (NGI,MKK) real :: BREITE (NGJ) real :: E (NGI,MKK) integer :: MLAT (NGJ) real :: A (MKK+1) real :: B (MKK+1) integer :: NGI integer :: NGJ integer :: MKK","tags":"","loc":"module/ftrafo.html","title":"FTRAFO – Flex_extract: Calculation of etadot"},{"text":"Uses PHTOGR GRTOPH FTRAFO RWGRIB2 GRIB_API program~~preconvert~~UsesGraph program~preconvert PRECONVERT module~phtogr PHTOGR program~preconvert->module~phtogr module~rwgrib2 RWGRIB2 program~preconvert->module~rwgrib2 module~ftrafo FTRAFO program~preconvert->module~ftrafo module~grtoph GRTOPH program~preconvert->module~grtoph GRIB_API GRIB_API program~preconvert->GRIB_API module~grtoph->module~phtogr Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Prepare input data for FLEXPART, esp. vertical velocity as \n etadot or etadot * dp/deta author: L. Haimberger\n date: 03/2010\n version: V4.0 Program PRECONVERT Prepares input data for POP model meteorological preprocessor Calculation of etapoint on a regular \\lambda-\\phi grid and writing U,V,ETAPOINT,T,PS,Q,SD,MSL,TCC,10U, 10V, 2T,2D,LSP,CP,SSHF,SSR, \n EWSS,NSSS to an output file (input and output in GRIB 1 or 2 format). etapoint is defined as the total time derivative of \n ECMWF vertical coordinate eta multiplied by the derivative\n of pressure with respect to eta: \\frac{\\mathrm{d}\\eta}{\\mathrm{d}t}\\frac{\\partial p}{\\partial \\eta} Version history and authors: 04/1994: Leopold Haimberger, Gerhard Wotawa 2003-05-11: Alexander Beck 12/2006: L. Haimberger V2.0,\n handle arbitrary regular grids and T799 resolution data 03/2010: L. Haimberger V4.0,\n handle GRIB edition 2 fields and T1279 resolution data 04-06/2019: Petra Seibert, \n beautify code and add FORD documentation # Input required: UNIT FILE PARAMETER(S) DATA REPRESENTATION\n\n 11 fort.11 T,U,V regular lambda phi grid\n 12 fort.12 D regular lambda phi grid \n 13 fort.13 LNSP spherical harmonics\n 14 fort.14 SD,MSL,TCC,10U, \n 10V,2T,2D regular lambda phi grid \n 16 fort.16 LSP,CP,SSHF, \n SSR,EWSS,NSSS regular lambda phi grid\n 17 fort.17 Q regular lambda phi grid Output produced: UNIT FILE PARAMETER(S) DATA REPRESENTATION\n\n15 fort.15 `U,V,ETA,T,PS, \n `Q,SD,MSL,TCC,` \n `10U,10V,2T,2D,` regular lambda phi grid \n `LSP,CP,SSHF,` \n `SSR,EWSS,NSSS` ALLOCATE VARIABLES Initialisieren Legendretransformation auf das LaT/LON Gitter Initialisation of fields for FFT and Legendre transformation\n to Gaussian grid and back to phase space\n Transformieren des Windes auf das Gaussgitter Transformieren der horizontalen Divergenz auf das Gaussgitter Berechnung des Gradienten des Logarithmus des Bodendrucks auf dem Gaussgitter Berechnung der Vertikalgeschwindigkeit auf dem Gaussgitter Berechnung von Omega auf dem Gaussgitter READING OF SURFACE PRESSURE READING OF U,V READING OF LNSP on grid READING OF DIVERGENCE Initialisieren Legendretransformation auf das LaT/LON Gitter\n Without Gaussian grid calculation Legendre Polynomials are calculated\n only for one latitude to save space CREATE FILE VERTICAL.EC NEEDED BY POP MODEL READING OF T READING OF SPECIFIC HUMIDITY WRITE MODEL LEVEL DATA TO fort.15 Calculation of etadot in CONTGL needed scaled winds (ucosphi,vcosphi)\n Now we are transforming back to the usual winds. Calls program~~preconvert~~CallsGraph program~preconvert PRECONVERT proc~readspectral READSPECTRAL program~preconvert->proc~readspectral proc~phgcut PHGCUT program~preconvert->proc~phgcut proc~grph213 GRPH213 program~preconvert->proc~grph213 grib_close_file grib_close_file program~preconvert->grib_close_file proc~statis STATIS program~preconvert->proc~statis proc~phgr213 PHGR213 program~preconvert->proc~phgr213 proc~gauleg GAULEG program~preconvert->proc~gauleg grib_open_file grib_open_file program~preconvert->grib_open_file set99 set99 program~preconvert->set99 proc~posnam POSNAM program~preconvert->proc~posnam proc~readlatlon READLATLON program~preconvert->proc~readlatlon proc~phgrad PHGRAD program~preconvert->proc~phgrad proc~readspectral->grib_close_file grib_count_in_file grib_count_in_file proc~readspectral->grib_count_in_file proc~phsymcut PHSYMCUT proc~phgcut->proc~phsymcut proc~phgpns PHGPNS proc~phgcut->proc~phgpns proc~grphsub GRPHSUB proc~grph213->proc~grphsub ind ind proc~grph213->ind proc~phsym PHSYM proc~phgr213->proc~phsym dcos dcos proc~gauleg->dcos proc~readlatlon->grib_close_file proc~readlatlon->grib_count_in_file integermlat integermlat proc~phgrad->integermlat proc~rfourtr RFOURTR proc~phsymcut->proc~rfourtr proc~phgpns->proc~rfourtr fft99 fft99 proc~rfourtr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents Variables LNPS Z T UV UV2 QA OM OMR DIV ETA ETAR DPSDL DPSDM PS DPSDT SURF FLUX OROLSM WSAVE H SINL COSL WSAVE2 BREITE GBREITE AK BK pv X1 X2 RMS MW SIG LAM CUA CVA P PP P2 XMN HILFUV LNPMN LNPMN2 LNPMN3 WEIGHT UGVG DG ETAG GWSAVE PSG HILF MLAT MPSURF MPFLUX MPORO MPAR GIFAX PI COSB DAK DBK P00 URLAR8 JMIN1 LLLAR8 MAXBMIN1 PIR8 DCOSB I J K L IERR M LTEST MK NGI NGJ MFLUX MSURF MORO LUNIT LUNIT2 MAXL MAXB MLEVEL LEVOUT LEVMIN LEVMAX MOMEGA MOMEGADIFF MGAUSS MSMOOTH MNAUF META METADIFF MDPDETA METAPAR RLO0 RLO1 RLA0 RLA1 MLEVELIST MAUF MANF IFAX IGRIB iret ogrib FILENAME Variables Type Attributes Name Initial real, ALLOCATABLE, DIMENSION (:,:) :: LNPS real, ALLOCATABLE, DIMENSION (:,:) :: Z real, ALLOCATABLE, DIMENSION (:,:,:) :: T real, ALLOCATABLE, DIMENSION (:,:,:) :: UV real, ALLOCATABLE, DIMENSION (:,:,:) :: UV2 real, ALLOCATABLE, DIMENSION (:,:,:) :: QA real, ALLOCATABLE, DIMENSION (:,:,:) :: OM real, ALLOCATABLE, DIMENSION (:,:,:) :: OMR real, ALLOCATABLE, DIMENSION (:,:,:) :: DIV real, ALLOCATABLE, DIMENSION (:,:,:) :: ETA real, ALLOCATABLE, DIMENSION (:,:,:) :: ETAR real, ALLOCATABLE, DIMENSION (:,:) :: DPSDL real, ALLOCATABLE, DIMENSION (:,:) :: DPSDM real, ALLOCATABLE, DIMENSION (:,:,:) :: PS real, ALLOCATABLE, DIMENSION (:,:,:) :: DPSDT real, ALLOCATABLE, DIMENSION (:,:,:) :: SURF real, ALLOCATABLE, DIMENSION (:,:,:) :: FLUX real, ALLOCATABLE, DIMENSION (:,:,:) :: OROLSM real, ALLOCATABLE, DIMENSION (:) :: WSAVE real, ALLOCATABLE, DIMENSION (:) :: H real, ALLOCATABLE, DIMENSION (:) :: SINL real, ALLOCATABLE, DIMENSION (:) :: COSL real, ALLOCATABLE, DIMENSION (:) :: WSAVE2 real, ALLOCATABLE, DIMENSION (:) :: BREITE real, ALLOCATABLE, DIMENSION (:) :: GBREITE real, ALLOCATABLE, DIMENSION (:) :: AK real, ALLOCATABLE, DIMENSION (:) :: BK real, ALLOCATABLE, DIMENSION (:) :: pv real :: X1 real :: X2 real :: RMS real :: MW real :: SIG real :: LAM real, ALLOCATABLE :: CUA (:,:,:) real, ALLOCATABLE :: CVA (:,:,:) real, ALLOCATABLE, DIMENSION (:,:) :: P real, ALLOCATABLE, DIMENSION (:,:) :: PP real, ALLOCATABLE, DIMENSION (:,:) :: P2 real, ALLOCATABLE, DIMENSION (:,:) :: XMN real, ALLOCATABLE, DIMENSION (:,:) :: HILFUV real, ALLOCATABLE, DIMENSION (:) :: LNPMN real, ALLOCATABLE, DIMENSION (:) :: LNPMN2 real, ALLOCATABLE, DIMENSION (:) :: LNPMN3 real, ALLOCATABLE, DIMENSION (:) :: WEIGHT real, ALLOCATABLE, DIMENSION (:,:) :: UGVG real, ALLOCATABLE, DIMENSION (:,:) :: DG real, ALLOCATABLE, DIMENSION (:,:) :: ETAG real, ALLOCATABLE, DIMENSION (:,:) :: GWSAVE real, ALLOCATABLE, DIMENSION (:) :: PSG real, ALLOCATABLE, DIMENSION (:) :: HILF integer, ALLOCATABLE, DIMENSION (:) :: MLAT integer, ALLOCATABLE, DIMENSION (:) :: MPSURF integer, ALLOCATABLE, DIMENSION (:) :: MPFLUX integer, ALLOCATABLE, DIMENSION (:) :: MPORO integer, ALLOCATABLE, DIMENSION (:) :: MPAR integer, ALLOCATABLE :: GIFAX (:,:) real :: PI real :: COSB real :: DAK real :: DBK real :: P00 real :: URLAR8 real :: JMIN1 real :: LLLAR8 real :: MAXBMIN1 real :: PIR8 real :: DCOSB integer :: I integer :: J integer :: K integer :: L integer :: IERR integer :: M integer :: LTEST integer :: MK integer :: NGI integer :: NGJ integer :: MFLUX integer :: MSURF integer :: MORO integer :: LUNIT integer :: LUNIT2 integer :: MAXL integer :: MAXB integer :: MLEVEL integer :: LEVOUT integer :: LEVMIN integer :: LEVMAX integer :: MOMEGA integer :: MOMEGADIFF integer :: MGAUSS integer :: MSMOOTH integer :: MNAUF integer :: META integer :: METADIFF integer :: MDPDETA integer :: METAPAR real :: RLO0 real :: RLO1 real :: RLA0 real :: RLA1 character(len=300) :: MLEVELIST integer :: MAUF integer :: MANF integer :: IFAX (10) integer :: IGRIB (1) integer :: iret integer :: ogrib character(len=80) :: FILENAME","tags":"","loc":"program/preconvert.html","title":"PRECONVERT – Flex_extract: Calculation of etadot"}]} \ No newline at end of file diff --git a/Documentation/FORD/V5/Doc_original/media/tipuesearch/tipuesearch_set.js b/Documentation/FORD/V6/Doc/media/tipuesearch/tipuesearch_set.js similarity index 100% rename from Documentation/FORD/V5/Doc_original/media/tipuesearch/tipuesearch_set.js rename to Documentation/FORD/V6/Doc/media/tipuesearch/tipuesearch_set.js diff --git a/Documentation/FORD/V6/Doc/module/ftrafo.html b/Documentation/FORD/V6/Doc/module/ftrafo.html new file mode 100644 index 0000000000000000000000000000000000000000..de4ac468c97c8add45458d3a298df9b0dc39f385 --- /dev/null +++ b/Documentation/FORD/V6/Doc/module/ftrafo.html @@ -0,0 +1,1868 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > + <link rel="icon" href="../favicon.png"> + + <title>FTRAFO – Flex_extract: Calculation of etadot</title> + + <link href="../css/bootstrap.min.css" rel="stylesheet"> + <link href="../css/pygments.css" rel="stylesheet"> + <link href="../css/font-awesome.min.css" rel="stylesheet"> + <link href="../css/local.css" rel="stylesheet"> + + <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> + + + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> + <![endif]--> + + <script src="../js/jquery-2.1.3.min.js"></script> + <script src="../js/svg-pan-zoom.min.js"></script> + + </head> + + <body> + + <!-- Fixed navbar --> + <nav class="navbar navbar-inverse navbar-fixed-top"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + </div> + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> + <a href="#" class="dropdown-toggle" + data-toggle="dropdown" role="button" + aria-haspopup="true" + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + + + <li><a href="../lists/files.html">Source Files</a></li> + + + + <li><a href="../lists/modules.html">Modules</a></li> + + + + <li><a href="../lists/procedures.html">Procedures</a></li> + + + + <li><a href="../program/preconvert.html">Program</a></li> + + </ul> + </li> + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> + + </ul> + + <form action="../search.html" class="navbar-form navbar-right" role="search"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> + </div> +<!-- + <button type="submit" class="btn btn-default">Submit</button> +--> + </form> + + </div><!--/.nav-collapse --> + </div> + </nav> + + <div class="container"> + + + <div class="row"> + <h1>FTRAFO + <small>Module</small> + + </h1> + +<div class="row"> + <div class="col-lg-12"> +<div class="well well-sm"> + <ul class="list-inline" style="margin-bottom:0px;display:inline"> + + + + + + + <li><i class="fa fa-list-ol"></i> + <a data-toggle="tooltip" + data-placement="bottom" data-html="true" + title="37.4% of total for modules and submodules.">359 statements</a> + </li> + + + + <li><i class="fa fa-code"></i><a href="../src/ftrafo.f90"> Source File</a></li> + + + </ul> + <ol class="breadcrumb in-well text-right"> + + + <li><a href='../sourcefile/ftrafo.f90.html'>ftrafo.f90</a></li> + + + <li class="active">FTRAFO</li> + </ol> +</div> +</div> +</div> +<script> + $(function () { + $('[data-toggle="tooltip"]').tooltip() + }) +</script> + + </div> + + <div class="row"> + <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg"> + +<div id="sidebar"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + +<div class="panel panel-primary"> + <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#subs-0">Subroutines</a></h3></div> + <div class="list-group"> + <div id="subs-0" class="panel-collapse collapse"> + + <a class="list-group-item" href="../module/ftrafo.html#proc-vdtouv">VDTOUV</a> + + <a class="list-group-item" href="../module/ftrafo.html#proc-vduvsub">VDUVSUB</a> + + <a class="list-group-item" href="../module/ftrafo.html#proc-phgrad">PHGRAD</a> + + <a class="list-group-item" href="../module/ftrafo.html#proc-phgracut">PHGRACUT</a> + + <a class="list-group-item" href="../module/ftrafo.html#proc-contgl">CONTGL</a> + + <a class="list-group-item" href="../module/ftrafo.html#proc-omega">OMEGA</a> + + </div> + </div> +</div> + + + + + + + + + + +</div> + + </div> + + <div class="col-md-9" id='text'> + <p>Implementation of the spectral transformation using reduced the Gaussian grid</p> + <br> + + + + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Used by</h3> + </div> + <ul class="list-group"> + + + <li class="list-group-item"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: module~~ftrafo~~UsedByGraph Pages: 1 --> +<svg id="moduleftrafoUsedByGraph" width="184pt" height="32pt" + viewBox="0.00 0.00 184.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="module~~ftrafo~~UsedByGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>module~~ftrafo~~UsedByGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 180,-28 180,4 -4,4"/> +<!-- module~ftrafo --> +<g id="module~~ftrafo~~UsedByGraph_node1" class="node"><title>module~ftrafo</title> +<polygon fill="none" stroke="black" points="55,-24 0,-24 0,-0 55,-0 55,-24"/> +<text text-anchor="middle" x="27.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">FTRAFO</text> +</g> +<!-- program~preconvert --> +<g id="module~~ftrafo~~UsedByGraph_node2" class="node"><title>program~preconvert</title> +<g id="a_module~~ftrafo~~UsedByGraph_node2"><a xlink:href=".././program/preconvert.html" xlink:title="PRECONVERT"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="176,-24 91,-24 91,-0 176,-0 176,-24"/> +<text text-anchor="middle" x="133.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> +</a> +</g> +</g> +<!-- program~preconvert->module~ftrafo --> +<g id="module~~ftrafo~~UsedByGraph_edge1" class="edge"><title>program~preconvert->module~ftrafo</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M90.7985,-12C82.3748,-12 73.5755,-12 65.3334,-12"/> +<polygon fill="#000000" stroke="#000000" points="65.2615,-8.5001 55.2615,-12 65.2614,-15.5001 65.2615,-8.5001"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="490pt" height="32pt" + viewBox="0.00 0.00 489.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 485.5,-28 485.5,4 -4,4"/> +<!-- Module --> +<g id="node1" class="node"><title>Module</title> +<polygon fill="#337ab7" stroke="#337ab7" points="54,-24 0,-24 0,-0 54,-0 54,-24"/> +<text text-anchor="middle" x="27" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Module</text> +</g> +<!-- Submodule --> +<g id="node2" class="node"><title>Submodule</title> +<polygon fill="#5bc0de" stroke="#5bc0de" points="139.5,-24 72.5,-24 72.5,-0 139.5,-0 139.5,-24"/> +<text text-anchor="middle" x="106" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Submodule</text> +</g> +<!-- Subroutine --> +<g id="node3" class="node"><title>Subroutine</title> +<polygon fill="#d9534f" stroke="#d9534f" points="222,-24 158,-24 158,-0 222,-0 222,-24"/> +<text text-anchor="middle" x="190" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> +</g> +<!-- Function --> +<g id="node4" class="node"><title>Function</title> +<polygon fill="#d94e8f" stroke="#d94e8f" points="294,-24 240,-24 240,-0 294,-0 294,-24"/> +<text text-anchor="middle" x="267" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> +</g> +<!-- Program --> +<g id="node5" class="node"><title>Program</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="366,-24 312,-24 312,-0 366,-0 366,-24"/> +<text text-anchor="middle" x="339" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> +</g> +<!-- This Page's Entity --> +<g id="node6" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="481.5,-24 384.5,-24 384.5,-0 481.5,-0 481.5,-24"/> +<text text-anchor="middle" x="433" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a submodule to the (sub)module which it is + descended from. Dashed arrows point from a module or program unit to + modules which it uses. + </p> + </div></div></div></div> + </li> + + </ul> + </div> + + + <br> + + <section class="visible-xs visible-sm hidden-md"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + +<div class="panel panel-primary"> + <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#subs-1">Subroutines</a></h3></div> + <div class="list-group"> + <div id="subs-1" class="panel-collapse collapse"> + + <a class="list-group-item" href="../module/ftrafo.html#proc-vdtouv">VDTOUV</a> + + <a class="list-group-item" href="../module/ftrafo.html#proc-vduvsub">VDUVSUB</a> + + <a class="list-group-item" href="../module/ftrafo.html#proc-phgrad">PHGRAD</a> + + <a class="list-group-item" href="../module/ftrafo.html#proc-phgracut">PHGRACUT</a> + + <a class="list-group-item" href="../module/ftrafo.html#proc-contgl">CONTGL</a> + + <a class="list-group-item" href="../module/ftrafo.html#proc-omega">OMEGA</a> + + </div> + </div> +</div> + + + + + + + + + + + </section> + <br class="visible-xs visible-sm hidden-md"> + + + + + + + + + + + + + + + + + <section> + <h2>Subroutines</h2> + + + <div class="panel panel-default"> + <div class="panel-heading codesum"><span class="anchor" id="proc-vdtouv"></span><h3> +public subroutine <a href='../proc/vdtouv.html'>VDTOUV</a>(XMN, XLAM, XPHI, GWSAVE, IFAX, P, MLAT, MNAUF, NI, NJ, NK) + + + +</h3></div> + <div class="panel-body"> + + + + + + + + + +<p>Berechnung der scale winds aus Vorticity und Divergenz + uebergibt man in XMN die Divergenz, so wird der divergente Anteil des + Windes (XPHI=Ud,XPHI=Vd) zurueckgegeben, uebergibt man die Vorticity, so + erhaelt man den rotationellen Wind (XLAM=Vrot,XPHI=-Urot). + Summiert man beide, erhaelt man den gesamten Scale wind</p> + + <h4>Arguments</h4> + + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>XMN</strong>(0:(MNAUF+1)*(MNAUF+2)-1,NK)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>XLAM</strong>(NI,NK)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>XPHI</strong>(NI,NK)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>GWSAVE</strong>(8*NJ+15,NJ/2)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>IFAX</strong>(10,NJ)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>P</strong>(0:(MNAUF+3)*(MNAUF+4)/2,NJ/2)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MLAT</strong>(NJ)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MNAUF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>NI</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>NJ</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>NK</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + + </div> + </div> + + + + <div class="panel panel-default"> + <div class="panel-heading codesum"><span class="anchor" id="proc-vduvsub"></span><h3> +public subroutine <a href='../proc/vduvsub.html'>VDUVSUB</a>(J, XMN, XLAM, XPHI, GWSAVE, IFAX, P, GGIND, MLAT, MNAUF, NI, NJ, NK) + + + +</h3></div> + <div class="panel-body"> + + + + <h4>Arguments</h4> + + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>J</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>XMN</strong>(0:(MNAUF+1)*(MNAUF+2)-1,NK)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>XLAM</strong>(NI,NK)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>XPHI</strong>(NI,NK)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>GWSAVE</strong>(8*NJ+15,NJ/2)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>IFAX</strong>(10,NJ)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>P</strong>(0:(MNAUF+3)*(MNAUF+4)/2,NJ/2)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>GGIND</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MLAT</strong>(NJ)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MNAUF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>NI</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>NJ</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>NK</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + + </div> + </div> + + + + <div class="panel panel-default"> + <div class="panel-heading codesum"><span class="anchor" id="proc-phgrad"></span><h3> +public subroutine <a href='../proc/phgrad.html'>PHGRAD</a>(XMN, XLAM, XPHI, GWSAVE, IFAX, P, H, MLAT, MNAUF, NI, NJ, NK) + + + +</h3></div> + <div class="panel-body"> + + + + + + + + + +<p>Berechnung des Gradienten eines Skalars aus dem Feld des + Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der + Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter.</p> + + <h4>Arguments</h4> + + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>XMN</strong>(0:(MNAUF+1)*(MNAUF+2)-1,NK)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>XLAM</strong>(NI,NK)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>XPHI</strong>(NI,NK)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>GWSAVE</strong>(8*NJ+15,NJ/2)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>IFAX</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>P</strong>(0:(MNAUF+3)*(MNAUF+4)/2,NJ/2)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>H</strong>(0:(MNAUF+2)*(MNAUF+3)/2)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MLAT</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MNAUF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>NI</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>NJ</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>NK</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + + </div> + </div> + + + + <div class="panel panel-default"> + <div class="panel-heading codesum"><span class="anchor" id="proc-phgracut"></span><h3> +public subroutine <a href='../proc/phgracut.html'>PHGRACUT</a>(XMN, XLAM, XPHI, GWSAVE, IFAX, P, H, MAUF, MNAUF, NI, NJ, MANF, NK) + + + +</h3></div> + <div class="panel-body"> + + + + + + + + + +<p>Berechnung des Gradienten eines Skalars aus dem Feld des + Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der + Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter.</p> + + <h4>Arguments</h4> + + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>XMN</strong>(0:(MNAUF+1)*(MNAUF+2)-1,NK)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>XLAM</strong>(NI,NJ,NK)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>XPHI</strong>(NI,NJ,NK)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>GWSAVE</strong>(4*MAUF+15)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>IFAX</strong>(10)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>P</strong>(0:(MNAUF+3)*(MNAUF+4)/2,NJ)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>H</strong>(0:(MNAUF+2)*(MNAUF+3)/2)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAUF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MNAUF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>NI</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>NJ</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MANF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>NK</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + + </div> + </div> + + + + <div class="panel panel-default"> + <div class="panel-heading codesum"><span class="anchor" id="proc-contgl"></span><h3> +public subroutine <a href='../proc/contgl.html'>CONTGL</a>(PS, DPSDL, DPSDM, DIV, U, V, BREITE, ETA, MLAT, A, B, NI, NJ, NK) + + + +</h3></div> + <div class="panel-body"> + + + + + + + + + +<p>Berechnung der Divergenz aus dem Windfeld (U,V) + im Phasenraum. Zurueckgegeben werden die Felder der + Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter.</p> + + <h4>Arguments</h4> + + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>PS</strong>(NI)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>DPSDL</strong>(NI)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>DPSDM</strong>(NI)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>DIV</strong>(NI,NK)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>U</strong>(NI,NK)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>V</strong>(NI,NK)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>BREITE</strong>(NJ)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>ETA</strong>(NI,NK)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MLAT</strong>(NJ)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>A</strong>(NK+1)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>B</strong>(NK+1)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>NI</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>NJ</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>NK</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + + </div> + </div> + + + + <div class="panel panel-default"> + <div class="panel-heading codesum"><span class="anchor" id="proc-omega"></span><h3> +public subroutine <a href='../proc/omega.html'>OMEGA</a>(PS, DPSDL, DPSDM, DIV, U, V, BREITE, E, MLAT, A, B, NGI, NGJ, MKK) + + + +</h3></div> + <div class="panel-body"> + + + + + + + + + +<p>calculates $\omega$ in the hybrid ($\eta$-) coordinate system</p> + + <h4>Arguments</h4> + + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>PS</strong>(NGI)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>DPSDL</strong>(NGI)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>DPSDM</strong>(NGI)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>DIV</strong>(NGI,MKK)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>U</strong>(NGI,MKK)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>V</strong>(NGI,MKK)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>BREITE</strong>(NGJ)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>E</strong>(NGI,MKK)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MLAT</strong>(NGJ)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>A</strong>(MKK+1)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>B</strong>(MKK+1)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>NGI</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>NGJ</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MKK</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + + </div> + </div> + + + </section> + <br> + + + + </div> + </div> + + + <hr> + </div> <!-- /container --> + <footer> + <div class="container"> + <div class="row"> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> + <div class="col-xs-6 col-md-4 col-md-push-4"> + <p class="text-right"> + Documentation generated by + <a href="https://github.com/cmacmackin/ford">FORD</a> + + </p> + </div> + <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<sup>1</sup></p></div> + </div> + <br> + </div> <!-- /container --> + </footer> + + <!-- Bootstrap core JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> +<!-- + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> +--> + <script src="../js/bootstrap.min.js"></script> + <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> + <script src="../js/ie10-viewport-bug-workaround.js"></script> + + <!-- MathJax JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> + <script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, + jax: ['input/TeX','input/MathML','output/HTML-CSS'], + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] + }); + </script> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="../tipuesearch/tipuesearch_content.js"></script> + <script src="../tipuesearch/tipuesearch_set.js"></script> + <script src="../tipuesearch/tipuesearch.js"></script> + + + </body> +</html> \ No newline at end of file diff --git a/Documentation/FORD/V6/Doc/module/grtoph.html b/Documentation/FORD/V6/Doc/module/grtoph.html new file mode 100644 index 0000000000000000000000000000000000000000..bf99804a101933432bde7db573b1b0d374c82b20 --- /dev/null +++ b/Documentation/FORD/V6/Doc/module/grtoph.html @@ -0,0 +1,1271 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > + <link rel="icon" href="../favicon.png"> + + <title>GRTOPH – Flex_extract: Calculation of etadot</title> + + <link href="../css/bootstrap.min.css" rel="stylesheet"> + <link href="../css/pygments.css" rel="stylesheet"> + <link href="../css/font-awesome.min.css" rel="stylesheet"> + <link href="../css/local.css" rel="stylesheet"> + + <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> + + + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> + <![endif]--> + + <script src="../js/jquery-2.1.3.min.js"></script> + <script src="../js/svg-pan-zoom.min.js"></script> + + </head> + + <body> + + <!-- Fixed navbar --> + <nav class="navbar navbar-inverse navbar-fixed-top"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + </div> + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> + <a href="#" class="dropdown-toggle" + data-toggle="dropdown" role="button" + aria-haspopup="true" + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + + + <li><a href="../lists/files.html">Source Files</a></li> + + + + <li><a href="../lists/modules.html">Modules</a></li> + + + + <li><a href="../lists/procedures.html">Procedures</a></li> + + + + <li><a href="../program/preconvert.html">Program</a></li> + + </ul> + </li> + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> + + </ul> + + <form action="../search.html" class="navbar-form navbar-right" role="search"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> + </div> +<!-- + <button type="submit" class="btn btn-default">Submit</button> +--> + </form> + + </div><!--/.nav-collapse --> + </div> + </nav> + + <div class="container"> + + + <div class="row"> + <h1>GRTOPH + <small>Module</small> + + </h1> + +<div class="row"> + <div class="col-lg-12"> +<div class="well well-sm"> + <ul class="list-inline" style="margin-bottom:0px;display:inline"> + + + + + + + <li><i class="fa fa-list-ol"></i> + <a data-toggle="tooltip" + data-placement="bottom" data-html="true" + title="10.8% of total for modules and submodules.">104 statements</a> + </li> + + + + <li><i class="fa fa-code"></i><a href="../src/grphreal.f90"> Source File</a></li> + + + </ul> + <ol class="breadcrumb in-well text-right"> + + + <li><a href='../sourcefile/grphreal.f90.html'>grphreal.f90</a></li> + + + <li class="active">GRTOPH</li> + </ol> +</div> +</div> +</div> +<script> + $(function () { + $('[data-toggle="tooltip"]').tooltip() + }) +</script> + + </div> + + <div class="row"> + <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg"> + +<div id="sidebar"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + +<div class="panel panel-primary"> + <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#subs-0">Subroutines</a></h3></div> + <div class="list-group"> + <div id="subs-0" class="panel-collapse collapse"> + + <a class="list-group-item" href="../module/grtoph.html#proc-grph213">GRPH213</a> + + <a class="list-group-item" href="../module/grtoph.html#proc-grphsub">GRPHSUB</a> + + <a class="list-group-item" href="../module/grtoph.html#proc-lgtr213">LGTR213</a> + + <a class="list-group-item" href="../module/grtoph.html#proc-rfouftr">RFOUFTR</a> + + </div> + </div> +</div> + + + + + + + + + + +</div> + + </div> + + <div class="col-md-9" id='text'> + + <br> + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Uses</h3> + </div> + <ul class="list-group"> + + <li class="list-group-item"> + <ul class="list-inline"> + + <li><a href='../module/phtogr.html'>PHTOGR</a></li> + + </ul> + </li> + + + + <li class="list-group-item"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: module~~grtoph~~UsesGraph Pages: 1 --> +<svg id="modulegrtophUsesGraph" width="160pt" height="32pt" + viewBox="0.00 0.00 160.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="module~~grtoph~~UsesGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>module~~grtoph~~UsesGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 156,-28 156,4 -4,4"/> +<!-- module~grtoph --> +<g id="module~~grtoph~~UsesGraph_node1" class="node"><title>module~grtoph</title> +<polygon fill="none" stroke="black" points="152,-24 94,-24 94,-0 152,-0 152,-24"/> +<text text-anchor="middle" x="123" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">GRTOPH</text> +</g> +<!-- module~phtogr --> +<g id="module~~grtoph~~UsesGraph_node2" class="node"><title>module~phtogr</title> +<g id="a_module~~grtoph~~UsesGraph_node2"><a xlink:href=".././module/phtogr.html" xlink:title="PHTOGR"> +<polygon fill="#337ab7" stroke="#337ab7" points="58,-24 0,-24 0,-0 58,-0 58,-24"/> +<text text-anchor="middle" x="29" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHTOGR</text> +</a> +</g> +</g> +<!-- module~grtoph->module~phtogr --> +<g id="module~~grtoph~~UsesGraph_edge1" class="edge"><title>module~grtoph->module~phtogr</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M93.8971,-12C85.8575,-12 76.9539,-12 68.4096,-12"/> +<polygon fill="#000000" stroke="#000000" points="68.2479,-8.5001 58.2479,-12 68.2478,-15.5001 68.2479,-8.5001"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="490pt" height="32pt" + viewBox="0.00 0.00 489.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 485.5,-28 485.5,4 -4,4"/> +<!-- Module --> +<g id="node1" class="node"><title>Module</title> +<polygon fill="#337ab7" stroke="#337ab7" points="54,-24 0,-24 0,-0 54,-0 54,-24"/> +<text text-anchor="middle" x="27" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Module</text> +</g> +<!-- Submodule --> +<g id="node2" class="node"><title>Submodule</title> +<polygon fill="#5bc0de" stroke="#5bc0de" points="139.5,-24 72.5,-24 72.5,-0 139.5,-0 139.5,-24"/> +<text text-anchor="middle" x="106" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Submodule</text> +</g> +<!-- Subroutine --> +<g id="node3" class="node"><title>Subroutine</title> +<polygon fill="#d9534f" stroke="#d9534f" points="222,-24 158,-24 158,-0 222,-0 222,-24"/> +<text text-anchor="middle" x="190" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> +</g> +<!-- Function --> +<g id="node4" class="node"><title>Function</title> +<polygon fill="#d94e8f" stroke="#d94e8f" points="294,-24 240,-24 240,-0 294,-0 294,-24"/> +<text text-anchor="middle" x="267" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> +</g> +<!-- Program --> +<g id="node5" class="node"><title>Program</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="366,-24 312,-24 312,-0 366,-0 366,-24"/> +<text text-anchor="middle" x="339" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> +</g> +<!-- This Page's Entity --> +<g id="node6" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="481.5,-24 384.5,-24 384.5,-0 481.5,-0 481.5,-24"/> +<text text-anchor="middle" x="433" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a submodule to the (sub)module which it is + descended from. Dashed arrows point from a module or program unit to + modules which it uses. + </p> + </div></div></div></div> + </li> + + </ul> + </div> + + + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Used by</h3> + </div> + <ul class="list-group"> + + + <li class="list-group-item"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: module~~grtoph~~UsedByGraph Pages: 1 --> +<svg id="modulegrtophUsedByGraph" width="187pt" height="32pt" + viewBox="0.00 0.00 187.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="module~~grtoph~~UsedByGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>module~~grtoph~~UsedByGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 183,-28 183,4 -4,4"/> +<!-- module~grtoph --> +<g id="module~~grtoph~~UsedByGraph_node1" class="node"><title>module~grtoph</title> +<polygon fill="none" stroke="black" points="58,-24 0,-24 0,-0 58,-0 58,-24"/> +<text text-anchor="middle" x="29" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">GRTOPH</text> +</g> +<!-- program~preconvert --> +<g id="module~~grtoph~~UsedByGraph_node2" class="node"><title>program~preconvert</title> +<g id="a_module~~grtoph~~UsedByGraph_node2"><a xlink:href=".././program/preconvert.html" xlink:title="PRECONVERT"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="179,-24 94,-24 94,-0 179,-0 179,-24"/> +<text text-anchor="middle" x="136.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> +</a> +</g> +</g> +<!-- program~preconvert->module~grtoph --> +<g id="module~~grtoph~~UsedByGraph_edge1" class="edge"><title>program~preconvert->module~grtoph</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M93.8036,-12C85.3802,-12 76.5631,-12 68.2645,-12"/> +<polygon fill="#000000" stroke="#000000" points="68.0989,-8.5001 58.0989,-12 68.0988,-15.5001 68.0989,-8.5001"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="490pt" height="32pt" + viewBox="0.00 0.00 489.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 485.5,-28 485.5,4 -4,4"/> +<!-- Module --> +<g id="node1" class="node"><title>Module</title> +<polygon fill="#337ab7" stroke="#337ab7" points="54,-24 0,-24 0,-0 54,-0 54,-24"/> +<text text-anchor="middle" x="27" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Module</text> +</g> +<!-- Submodule --> +<g id="node2" class="node"><title>Submodule</title> +<polygon fill="#5bc0de" stroke="#5bc0de" points="139.5,-24 72.5,-24 72.5,-0 139.5,-0 139.5,-24"/> +<text text-anchor="middle" x="106" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Submodule</text> +</g> +<!-- Subroutine --> +<g id="node3" class="node"><title>Subroutine</title> +<polygon fill="#d9534f" stroke="#d9534f" points="222,-24 158,-24 158,-0 222,-0 222,-24"/> +<text text-anchor="middle" x="190" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> +</g> +<!-- Function --> +<g id="node4" class="node"><title>Function</title> +<polygon fill="#d94e8f" stroke="#d94e8f" points="294,-24 240,-24 240,-0 294,-0 294,-24"/> +<text text-anchor="middle" x="267" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> +</g> +<!-- Program --> +<g id="node5" class="node"><title>Program</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="366,-24 312,-24 312,-0 366,-0 366,-24"/> +<text text-anchor="middle" x="339" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> +</g> +<!-- This Page's Entity --> +<g id="node6" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="481.5,-24 384.5,-24 384.5,-0 481.5,-0 481.5,-24"/> +<text text-anchor="middle" x="433" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a submodule to the (sub)module which it is + descended from. Dashed arrows point from a module or program unit to + modules which it uses. + </p> + </div></div></div></div> + </li> + + </ul> + </div> + + + <br> + + <section class="visible-xs visible-sm hidden-md"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + +<div class="panel panel-primary"> + <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#subs-1">Subroutines</a></h3></div> + <div class="list-group"> + <div id="subs-1" class="panel-collapse collapse"> + + <a class="list-group-item" href="../module/grtoph.html#proc-grph213">GRPH213</a> + + <a class="list-group-item" href="../module/grtoph.html#proc-grphsub">GRPHSUB</a> + + <a class="list-group-item" href="../module/grtoph.html#proc-lgtr213">LGTR213</a> + + <a class="list-group-item" href="../module/grtoph.html#proc-rfouftr">RFOUFTR</a> + + </div> + </div> +</div> + + + + + + + + + + + </section> + <br class="visible-xs visible-sm hidden-md"> + + + + + + + + + + + + + + + + + <section> + <h2>Subroutines</h2> + + + <div class="panel panel-default"> + <div class="panel-heading codesum"><span class="anchor" id="proc-grph213"></span><h3> +public subroutine <a href='../proc/grph213.html'>GRPH213</a>(CXMN, FELD, WSAVE, IFAX, Z, W, MLAT, MNAUF, MAXL, MAXB, MLEVEL) + + + +</h3></div> + <div class="panel-body"> + + + + + + + + + +<p>DIE ROUTINE F]HRT EINE TRANSFORMATION EINER + FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN + RAUM AUF KUGELKOORDINATEN DURCH</p> + + <h4>Arguments</h4> + + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>CXMN</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>FELD</strong>(MAXL,MLEVEL)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>WSAVE</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>IFAX</strong>(10,MAXB)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real(kind=8)</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>Z</strong>(MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real(kind=8)</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>W</strong>(MAXB)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MLAT</strong>(MAXB)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MNAUF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAXL</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAXB</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MLEVEL</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + + </div> + </div> + + + + <div class="panel panel-default"> + <div class="panel-heading codesum"><span class="anchor" id="proc-grphsub"></span><h3> +public subroutine <a href='../proc/grphsub.html'>GRPHSUB</a>(L, IND, CXMN, FELD, WSAVE, IFAX, Z, W, MLAT, MNAUF, MAXL, MAXB, MLEVEL) + + + +</h3></div> + <div class="panel-body"> + + + + + + + + + +<p>DIE ROUTINE F]HRT EINE TRANSFORMATION EINER + FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN + RAUM AUF KUGELKOORDINATEN DURCH</p> + + <h4>Arguments</h4> + + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>L</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>IND</strong>(MAXB)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>CXMN</strong>(0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>FELD</strong>(MAXL,MLEVEL)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>WSAVE</strong>(8*MAXB+15,MAXB/2)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>IFAX</strong>(10,MAXB)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>Z</strong>(MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>W</strong>(MAXB)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MLAT</strong>(MAXB)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MNAUF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAXL</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAXB</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MLEVEL</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + + </div> + </div> + + + + <div class="panel panel-default"> + <div class="panel-heading codesum"><span class="anchor" id="proc-lgtr213"></span><h3> +public subroutine <a href='../proc/lgtr213.html'>LGTR213</a>(CXMN, CXM, Z, W, MLAT, MNAUF, MAXB) + + + +</h3></div> + <div class="panel-body"> + + + + + + + + + +<a href="../proc/lgtr213.html" class="pull-right"><emph>Read more…</emph></a> + + <h4>Arguments</h4> + + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>CXMN</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>CXM</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real(kind=8)</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>Z</strong>(MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real(kind=8)</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>W</strong>(MAXB)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MLAT</strong>(MAXB)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MNAUF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAXB</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + + </div> + </div> + + + + <div class="panel panel-default"> + <div class="panel-heading codesum"><span class="anchor" id="proc-rfouftr"></span><h3> +public subroutine <a href='../proc/rfouftr.html'>RFOUFTR</a>(CXM, TRIGS, IFAX, MNAUF, MAXL, ISIGN) + + + +</h3></div> + <div class="panel-body"> + + + + <h4>Arguments</h4> + + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>CXM</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>TRIGS</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>IFAX</strong>(10)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MNAUF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAXL</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>ISIGN</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + + </div> + </div> + + + </section> + <br> + + + + </div> + </div> + + + <hr> + </div> <!-- /container --> + <footer> + <div class="container"> + <div class="row"> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> + <div class="col-xs-6 col-md-4 col-md-push-4"> + <p class="text-right"> + Documentation generated by + <a href="https://github.com/cmacmackin/ford">FORD</a> + + </p> + </div> + <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<sup>1</sup></p></div> + </div> + <br> + </div> <!-- /container --> + </footer> + + <!-- Bootstrap core JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> +<!-- + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> +--> + <script src="../js/bootstrap.min.js"></script> + <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> + <script src="../js/ie10-viewport-bug-workaround.js"></script> + + <!-- MathJax JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> + <script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, + jax: ['input/TeX','input/MathML','output/HTML-CSS'], + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] + }); + </script> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="../tipuesearch/tipuesearch_content.js"></script> + <script src="../tipuesearch/tipuesearch_set.js"></script> + <script src="../tipuesearch/tipuesearch.js"></script> + + + </body> +</html> \ No newline at end of file diff --git a/Documentation/FORD/V6/Doc/module/phtogr.html b/Documentation/FORD/V6/Doc/module/phtogr.html new file mode 100644 index 0000000000000000000000000000000000000000..a2733ba3689d6fa485b415f510c355023ac3c1ee --- /dev/null +++ b/Documentation/FORD/V6/Doc/module/phtogr.html @@ -0,0 +1,2307 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > + <link rel="icon" href="../favicon.png"> + + <title>PHTOGR – Flex_extract: Calculation of etadot</title> + + <link href="../css/bootstrap.min.css" rel="stylesheet"> + <link href="../css/pygments.css" rel="stylesheet"> + <link href="../css/font-awesome.min.css" rel="stylesheet"> + <link href="../css/local.css" rel="stylesheet"> + + <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> + + + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> + <![endif]--> + + <script src="../js/jquery-2.1.3.min.js"></script> + <script src="../js/svg-pan-zoom.min.js"></script> + + </head> + + <body> + + <!-- Fixed navbar --> + <nav class="navbar navbar-inverse navbar-fixed-top"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + </div> + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> + <a href="#" class="dropdown-toggle" + data-toggle="dropdown" role="button" + aria-haspopup="true" + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + + + <li><a href="../lists/files.html">Source Files</a></li> + + + + <li><a href="../lists/modules.html">Modules</a></li> + + + + <li><a href="../lists/procedures.html">Procedures</a></li> + + + + <li><a href="../program/preconvert.html">Program</a></li> + + </ul> + </li> + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> + + </ul> + + <form action="../search.html" class="navbar-form navbar-right" role="search"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> + </div> +<!-- + <button type="submit" class="btn btn-default">Submit</button> +--> + </form> + + </div><!--/.nav-collapse --> + </div> + </nav> + + <div class="container"> + + + <div class="row"> + <h1>PHTOGR + <small>Module</small> + + </h1> + +<div class="row"> + <div class="col-lg-12"> +<div class="well well-sm"> + <ul class="list-inline" style="margin-bottom:0px;display:inline"> + + + + + + + <li><i class="fa fa-list-ol"></i> + <a data-toggle="tooltip" + data-placement="bottom" data-html="true" + title="34.8% of total for modules and submodules.">334 statements</a> + </li> + + + + <li><i class="fa fa-code"></i><a href="../src/phgrreal.f90"> Source File</a></li> + + + </ul> + <ol class="breadcrumb in-well text-right"> + + + <li><a href='../sourcefile/phgrreal.f90.html'>phgrreal.f90</a></li> + + + <li class="active">PHTOGR</li> + </ol> +</div> +</div> +</div> +<script> + $(function () { + $('[data-toggle="tooltip"]').tooltip() + }) +</script> + + </div> + + <div class="row"> + <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg"> + +<div id="sidebar"> + +<h3>Contents</h3> + + + + +<div class="panel panel-primary"> + <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#vars-0">Variables</a></h3></div> + <div id="vars-0" class="panel-collapse collapse"> + <div class="list-group"> + + <a class="list-group-item" href="../module/phtogr.html#variable-maxauf">MAXAUF</a> + + </div> + </div> +</div> + + + + + + + + + + + + + +<div class="panel panel-primary"> + <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#subs-0">Subroutines</a></h3></div> + <div class="list-group"> + <div id="subs-0" class="panel-collapse collapse"> + + <a class="list-group-item" href="../module/phtogr.html#proc-phgr213">PHGR213</a> + + <a class="list-group-item" href="../module/phtogr.html#proc-phsym">PHSYM</a> + + <a class="list-group-item" href="../module/phtogr.html#proc-phgcut">PHGCUT</a> + + <a class="list-group-item" href="../module/phtogr.html#proc-phsymcut">PHSYMCUT</a> + + <a class="list-group-item" href="../module/phtogr.html#proc-phgpns">PHGPNS</a> + + <a class="list-group-item" href="../module/phtogr.html#proc-legtr">LEGTR</a> + + <a class="list-group-item" href="../module/phtogr.html#proc-rfourtr">RFOURTR</a> + + <a class="list-group-item" href="../module/phtogr.html#proc-gauleg">GAULEG</a> + + <a class="list-group-item" href="../module/phtogr.html#proc-plgnfa">PLGNFA</a> + + <a class="list-group-item" href="../module/phtogr.html#proc-dplgnd">DPLGND</a> + + <a class="list-group-item" href="../module/phtogr.html#proc-spfilter">SPFILTER</a> + + </div> + </div> +</div> + + + + + + + + + + +</div> + + </div> + + <div class="col-md-9" id='text'> + + <br> + + + + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Used by</h3> + </div> + <ul class="list-group"> + + + <li class="list-group-item"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: module~~phtogr~~UsedByGraph Pages: 1 --> +<svg id="modulephtogrUsedByGraph" width="294pt" height="238pt" + viewBox="0.00 0.00 294.00 238.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="module~~phtogr~~UsedByGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 234)"> +<title>module~~phtogr~~UsedByGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-234 290,-234 290,4 -4,4"/> +<!-- module~phtogr --> +<g id="module~~phtogr~~UsedByGraph_node1" class="node"><title>module~phtogr</title> +<polygon fill="none" stroke="black" points="58,-128 0,-128 0,-104 58,-104 58,-128"/> +<text text-anchor="middle" x="29" y="-113.6" font-family="Helvetica,sans-Serif" font-size="10.50">PHTOGR</text> +</g> +<!-- proc~vduvsub --> +<g id="module~~phtogr~~UsedByGraph_node2" class="node"><title>proc~vduvsub</title> +<g id="a_module~~phtogr~~UsedByGraph_node2"><a xlink:href=".././proc/vduvsub.html" xlink:title="VDUVSUB"> +<polygon fill="#d9534f" stroke="#d9534f" points="160.5,-230 98.5,-230 98.5,-206 160.5,-206 160.5,-230"/> +<text text-anchor="middle" x="129.5" y="-215.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">VDUVSUB</text> +</a> +</g> +</g> +<!-- proc~vduvsub->module~phtogr --> +<g id="module~~phtogr~~UsedByGraph_edge1" class="edge"><title>proc~vduvsub->module~phtogr</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M105.787,-205.77C101.679,-203.123 97.5707,-200.16 94,-197 73.656,-178.996 54.9661,-153.915 43.1037,-136.45"/> +<polygon fill="#000000" stroke="#000000" points="45.9984,-134.482 37.5502,-128.088 40.1674,-138.355 45.9984,-134.482"/> +</g> +<!-- proc~phgrad --> +<g id="module~~phtogr~~UsedByGraph_node3" class="node"><title>proc~phgrad</title> +<g id="a_module~~phtogr~~UsedByGraph_node3"><a xlink:href=".././proc/phgrad.html" xlink:title="PHGRAD"> +<polygon fill="#d9534f" stroke="#d9534f" points="158,-188 101,-188 101,-164 158,-164 158,-188"/> +<text text-anchor="middle" x="129.5" y="-173.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGRAD</text> +</a> +</g> +</g> +<!-- proc~phgrad->module~phtogr --> +<g id="module~~phtogr~~UsedByGraph_edge2" class="edge"><title>proc~phgrad->module~phtogr</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M108.567,-163.858C94.2815,-155.156 74.8217,-143.303 58.8434,-133.57"/> +<polygon fill="#000000" stroke="#000000" points="60.2644,-130.337 49.9033,-128.124 56.6228,-136.315 60.2644,-130.337"/> +</g> +<!-- module~grtoph --> +<g id="module~~phtogr~~UsedByGraph_node4" class="node"><title>module~grtoph</title> +<g id="a_module~~phtogr~~UsedByGraph_node4"><a xlink:href=".././module/grtoph.html" xlink:title="GRTOPH"> +<polygon fill="#337ab7" stroke="#337ab7" points="158.5,-108 100.5,-108 100.5,-84 158.5,-84 158.5,-108"/> +<text text-anchor="middle" x="129.5" y="-93.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GRTOPH</text> +</a> +</g> +</g> +<!-- module~grtoph->module~phtogr --> +<g id="module~~phtogr~~UsedByGraph_edge4" class="edge"><title>module~grtoph->module~phtogr</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M100.274,-101.731C90.2791,-103.761 78.8623,-106.079 68.1785,-108.248"/> +<polygon fill="#000000" stroke="#000000" points="67.3338,-104.848 58.2303,-110.268 68.7268,-111.708 67.3338,-104.848"/> +</g> +<!-- proc~vdtouv --> +<g id="module~~phtogr~~UsedByGraph_node5" class="node"><title>proc~vdtouv</title> +<g id="a_module~~phtogr~~UsedByGraph_node5"><a xlink:href=".././proc/vdtouv.html" xlink:title="VDTOUV"> +<polygon fill="#d9534f" stroke="#d9534f" points="157.5,-66 101.5,-66 101.5,-42 157.5,-42 157.5,-66"/> +<text text-anchor="middle" x="129.5" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">VDTOUV</text> +</a> +</g> +</g> +<!-- proc~vdtouv->module~phtogr --> +<g id="module~~phtogr~~UsedByGraph_edge3" class="edge"><title>proc~vdtouv->module~phtogr</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M108.385,-66.1374C103.654,-69.0215 98.6389,-72.1028 94,-75 81.9011,-82.5563 68.6082,-91.0418 57.2871,-98.3244"/> +<polygon fill="#000000" stroke="#000000" points="55.1993,-95.5061 48.691,-103.866 58.9922,-101.389 55.1993,-95.5061"/> +</g> +<!-- proc~phgracut --> +<g id="module~~phtogr~~UsedByGraph_node6" class="node"><title>proc~phgracut</title> +<g id="a_module~~phtogr~~UsedByGraph_node6"><a xlink:href=".././proc/phgracut.html" xlink:title="PHGRACUT"> +<polygon fill="#d9534f" stroke="#d9534f" points="165,-24 94,-24 94,-0 165,-0 165,-24"/> +<text text-anchor="middle" x="129.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGRACUT</text> +</a> +</g> +</g> +<!-- proc~phgracut->module~phtogr --> +<g id="module~~phtogr~~UsedByGraph_edge6" class="edge"><title>proc~phgracut->module~phtogr</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M105.756,-24.1955C101.651,-26.8462 97.5519,-29.819 94,-33 73.3384,-51.5039 54.5916,-77.3987 42.8045,-95.3227"/> +<polygon fill="#000000" stroke="#000000" points="39.7624,-93.5826 37.3018,-103.888 45.6517,-97.3663 39.7624,-93.5826"/> +</g> +<!-- program~preconvert --> +<g id="module~~phtogr~~UsedByGraph_node7" class="node"><title>program~preconvert</title> +<g id="a_module~~phtogr~~UsedByGraph_node7"><a xlink:href=".././program/preconvert.html" xlink:title="PRECONVERT"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="286,-128 201,-128 201,-104 286,-104 286,-128"/> +<text text-anchor="middle" x="243.5" y="-113.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> +</a> +</g> +</g> +<!-- program~preconvert->module~phtogr --> +<g id="module~~phtogr~~UsedByGraph_edge5" class="edge"><title>program~preconvert->module~phtogr</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M200.671,-116.638C189.115,-116.788 176.572,-116.925 165,-117 133.445,-117.204 125.555,-117.247 94,-117 85.626,-116.935 76.6362,-116.821 68.1188,-116.693"/> +<polygon fill="#000000" stroke="#000000" points="68.0914,-113.193 58.0369,-116.533 67.9799,-120.192 68.0914,-113.193"/> +</g> +<!-- program~preconvert->module~grtoph --> +<g id="module~~phtogr~~UsedByGraph_edge7" class="edge"><title>program~preconvert->module~grtoph</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M200.795,-108.553C190.253,-106.67 178.987,-104.658 168.632,-102.809"/> +<polygon fill="#000000" stroke="#000000" points="169.1,-99.3376 158.64,-101.025 167.869,-106.229 169.1,-99.3376"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="490pt" height="32pt" + viewBox="0.00 0.00 489.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 485.5,-28 485.5,4 -4,4"/> +<!-- Module --> +<g id="node1" class="node"><title>Module</title> +<polygon fill="#337ab7" stroke="#337ab7" points="54,-24 0,-24 0,-0 54,-0 54,-24"/> +<text text-anchor="middle" x="27" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Module</text> +</g> +<!-- Submodule --> +<g id="node2" class="node"><title>Submodule</title> +<polygon fill="#5bc0de" stroke="#5bc0de" points="139.5,-24 72.5,-24 72.5,-0 139.5,-0 139.5,-24"/> +<text text-anchor="middle" x="106" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Submodule</text> +</g> +<!-- Subroutine --> +<g id="node3" class="node"><title>Subroutine</title> +<polygon fill="#d9534f" stroke="#d9534f" points="222,-24 158,-24 158,-0 222,-0 222,-24"/> +<text text-anchor="middle" x="190" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> +</g> +<!-- Function --> +<g id="node4" class="node"><title>Function</title> +<polygon fill="#d94e8f" stroke="#d94e8f" points="294,-24 240,-24 240,-0 294,-0 294,-24"/> +<text text-anchor="middle" x="267" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> +</g> +<!-- Program --> +<g id="node5" class="node"><title>Program</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="366,-24 312,-24 312,-0 366,-0 366,-24"/> +<text text-anchor="middle" x="339" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> +</g> +<!-- This Page's Entity --> +<g id="node6" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="481.5,-24 384.5,-24 384.5,-0 481.5,-0 481.5,-24"/> +<text text-anchor="middle" x="433" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a submodule to the (sub)module which it is + descended from. Dashed arrows point from a module or program unit to + modules which it uses. + </p> + </div></div></div></div> + </li> + + </ul> + </div> + + + <br> + + <section class="visible-xs visible-sm hidden-md"> + +<h3>Contents</h3> + + + + +<div class="panel panel-primary"> + <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#vars-1">Variables</a></h3></div> + <div id="vars-1" class="panel-collapse collapse"> + <div class="list-group"> + + <a class="list-group-item" href="../module/phtogr.html#variable-maxauf">MAXAUF</a> + + </div> + </div> +</div> + + + + + + + + + + + + + +<div class="panel panel-primary"> + <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#subs-1">Subroutines</a></h3></div> + <div class="list-group"> + <div id="subs-1" class="panel-collapse collapse"> + + <a class="list-group-item" href="../module/phtogr.html#proc-phgr213">PHGR213</a> + + <a class="list-group-item" href="../module/phtogr.html#proc-phsym">PHSYM</a> + + <a class="list-group-item" href="../module/phtogr.html#proc-phgcut">PHGCUT</a> + + <a class="list-group-item" href="../module/phtogr.html#proc-phsymcut">PHSYMCUT</a> + + <a class="list-group-item" href="../module/phtogr.html#proc-phgpns">PHGPNS</a> + + <a class="list-group-item" href="../module/phtogr.html#proc-legtr">LEGTR</a> + + <a class="list-group-item" href="../module/phtogr.html#proc-rfourtr">RFOURTR</a> + + <a class="list-group-item" href="../module/phtogr.html#proc-gauleg">GAULEG</a> + + <a class="list-group-item" href="../module/phtogr.html#proc-plgnfa">PLGNFA</a> + + <a class="list-group-item" href="../module/phtogr.html#proc-dplgnd">DPLGND</a> + + <a class="list-group-item" href="../module/phtogr.html#proc-spfilter">SPFILTER</a> + + </div> + </div> +</div> + + + + + + + + + + + </section> + <br class="visible-xs visible-sm hidden-md"> + + + + + <section> + <h2>Variables</h2> + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th><th>Visibility</th> + +<th>Attributes</th><th></th><th>Name</th><th></th><th>Initial</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" id="variable-maxauf"></span>integer,</td> + + <td>public,</td> + <td>parameter</td><td>::</td> + <td><strong>MAXAUF</strong></td><td> =</td><td>36000</td><td></td> + +</tr> + +</tbody> +</table> + + </section> + <br> + + + + + + + + + + + + + + <section> + <h2>Subroutines</h2> + + + <div class="panel panel-default"> + <div class="panel-heading codesum"><span class="anchor" id="proc-phgr213"></span><h3> +public subroutine <a href='../proc/phgr213.html'>PHGR213</a>(CXMN, FELD, WSAVE, IFAX, Z, MLAT, MNAUF, MAXL, MAXB, MLEVEL) + + + +</h3></div> + <div class="panel-body"> + + + + + + + + + +<p>DIE ROUTINE F]HRT EINE TRANSFORMATION EINER + FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN + RAUM AUF DAS REDUZIERTE GAUSS'SCHE GITTER DURCH</p> + + <h4>Arguments</h4> + + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>CXMN</strong>(0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>FELD</strong>(MAXL,MLEVEL)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>WSAVE</strong>(8*MAXB+15,MAXB/2)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>IFAX</strong>(10,MAXB)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>Z</strong>(0:((MNAUF+3)*(MNAUF+4))/2,MAXB/2)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MLAT</strong>(MAXB/2)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MNAUF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAXL</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAXB</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MLEVEL</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + + </div> + </div> + + + + <div class="panel panel-default"> + <div class="panel-heading codesum"><span class="anchor" id="proc-phsym"></span><h3> +public subroutine <a href='../proc/phsym.html'>PHSYM</a>(K, IND, CXMN, FELD, Z, WSAVE, IFAX, MLAT, MNAUF, MAXL, MAXB, MLEVEL) + + + +</h3></div> + <div class="panel-body"> + + + + <h4>Arguments</h4> + + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>K</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>IND</strong>(MAXB)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>CXMN</strong>(0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>FELD</strong>(MAXL,MLEVEL)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>Z</strong>(0:((MNAUF+3)*(MNAUF+4))/2,MAXB/2)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>WSAVE</strong>(8*MAXB+15,MAXB/2)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>IFAX</strong>(10,MAXB)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MLAT</strong>(MAXB/2)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MNAUF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAXL</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAXB</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MLEVEL</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + + </div> + </div> + + + + <div class="panel panel-default"> + <div class="panel-heading codesum"><span class="anchor" id="proc-phgcut"></span><h3> +public subroutine <a href='../proc/phgcut.html'>PHGCUT</a>(CXMN, FELD, WSAVE, IFAX, Z, MNAUF, MMAX, MAUF, MANF, MAXL, MAXB, MLEVEL) + + + +</h3></div> + <div class="panel-body"> + + + + + + + + + +<p>DIE ROUTINE FUEHRT EINE TRANSFORMATION EINER + FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN + RAUM AUF KUGELKOORDINATEN DURCH. Es kann ein Teilausschnitt + Der Erde angegeben werden. Diese Routine ist langsamer als phgrph</p> + + <h4>Arguments</h4> + + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>CXMN</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>FELD</strong>(MAXL,MAXB,MLEVEL)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>WSAVE</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>IFAX</strong>(10)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>Z</strong>(0:((MMAX+3)*(MMAX+4))/2,MAXB)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MNAUF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MMAX</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAUF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MANF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAXL</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAXB</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MLEVEL</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + + </div> + </div> + + + + <div class="panel panel-default"> + <div class="panel-heading codesum"><span class="anchor" id="proc-phsymcut"></span><h3> +public subroutine <a href='../proc/phsymcut.html'>PHSYMCUT</a>(J, CXMN, FELD, Z, WSAVE, IFAX, MAUF, MNAUF, MAXL, MAXB, MLEVEL, MANF) + + + +</h3></div> + <div class="panel-body"> + + + + <h4>Arguments</h4> + + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>J</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>CXMN</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>FELD</strong>(MAXL,MAXB,MLEVEL)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>Z</strong>(0:((MNAUF+3)*(MNAUF+4))/2,MAXB)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>WSAVE</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>IFAX</strong>(10)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAUF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MNAUF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAXL</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAXB</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MLEVEL</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MANF</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + + </div> + </div> + + + + <div class="panel panel-default"> + <div class="panel-heading codesum"><span class="anchor" id="proc-phgpns"></span><h3> +public subroutine <a href='../proc/phgpns.html'>PHGPNS</a>(CXMN, FELD, Z, WSAVE, IFAX, J, MNAUF, MAUF, MANF, MAXL, MAXB, MLEVEL) + + + +</h3></div> + <div class="panel-body"> + + + + <h4>Arguments</h4> + + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" ></span>real,</td> + <td>intent(in)</td> + <td></td> + + <td></td><td>::</td> + <td><strong>CXMN</strong>(0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>FELD</strong>(MAXL,MAXB,MLEVEL)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real,</td> + <td>intent(in)</td> + <td></td> + + <td></td><td>::</td> + <td><strong>Z</strong>(0:((MNAUF+3)*(MNAUF+4))/2,MAXB)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real,</td> + <td>intent(in)</td> + <td></td> + + <td></td><td>::</td> + <td><strong>WSAVE</strong>(4*MAUF+15)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>IFAX</strong>(10)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer,</td> + <td>intent(in)</td> + <td></td> + + <td></td><td>::</td> + <td><strong>J</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer,</td> + <td>intent(in)</td> + <td></td> + + <td></td><td>::</td> + <td><strong>MNAUF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer,</td> + <td>intent(in)</td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAUF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer,</td> + <td>intent(in)</td> + <td></td> + + <td></td><td>::</td> + <td><strong>MANF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer,</td> + <td>intent(in)</td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAXL</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer,</td> + <td>intent(in)</td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAXB</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer,</td> + <td>intent(in)</td> + <td></td> + + <td></td><td>::</td> + <td><strong>MLEVEL</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + + </div> + </div> + + + + <div class="panel panel-default"> + <div class="panel-heading codesum"><span class="anchor" id="proc-legtr"></span><h3> +public subroutine <a href='../proc/legtr.html'>LEGTR</a>(CXMN, CXM, Z, MNAUF, MAUF) + + + +</h3></div> + <div class="panel-body"> + + + + + + + + + +<p>DIESE ROUTINE BERECHNET DIE FOURIERKOEFFIZIENTEN CXM</p> + + <h4>Arguments</h4> + + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>CXMN</strong>(0:(MNAUF+1)*(MNAUF+2)-1)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>CXM</strong>(0:MAXAUF-1)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>Z</strong>(0:((MNAUF+3)*(MNAUF+4))/2)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MNAUF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAUF</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + + </div> + </div> + + + + <div class="panel panel-default"> + <div class="panel-heading codesum"><span class="anchor" id="proc-rfourtr"></span><h3> +public subroutine <a href='../proc/rfourtr.html'>RFOURTR</a>(CXM, TRIGS, IFAX, MNAUF, MAXL, ISIGN) + + + +</h3></div> + <div class="panel-body"> + + + + + + + + + +<a href="../proc/rfourtr.html" class="pull-right"><emph>Read more…</emph></a> + + <h4>Arguments</h4> + + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>CXM</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>TRIGS</strong>(2*MAXL)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>IFAX</strong>(10)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MNAUF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAXL</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>ISIGN</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + + </div> + </div> + + + + <div class="panel panel-default"> + <div class="panel-heading codesum"><span class="anchor" id="proc-gauleg"></span><h3> +public subroutine <a href='../proc/gauleg.html'>GAULEG</a>(X1, X2, X, W, N) + + + +</h3></div> + <div class="panel-body"> + + + + + + + + + +<p>BERECHNET DIE GAUSS+SCHEN BREITEN</p> + + <h4>Arguments</h4> + + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>X1</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>X2</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>X</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>W</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>N</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + + </div> + </div> + + + + <div class="panel panel-default"> + <div class="panel-heading codesum"><span class="anchor" id="proc-plgnfa"></span><h3> +public subroutine <a href='../proc/plgnfa.html'>PLGNFA</a>(LL, X, Z) + + + +</h3></div> + <div class="panel-body"> + + + + + + + + + +<p>PLGNDN BERECHNET ALLE NORMIERTEN ASSOZIIERTEN + LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X) + UND SCHREIBT SIE IN DAS FELD Z</p> + + <h4>Arguments</h4> + + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>LL</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>X</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>Z</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + + </div> + </div> + + + + <div class="panel panel-default"> + <div class="panel-heading codesum"><span class="anchor" id="proc-dplgnd"></span><h3> +public subroutine <a href='../proc/dplgnd.html'>DPLGND</a>(MNAUF, Z, DZ) + + + +</h3></div> + <div class="panel-body"> + + + + + + + + + +<p>DPLGND BERECHNET DIE ABLEITUNG DER NORMIERTEN ASSOZIIERTEN + LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X) + UND SCHREIBT SIE IN DAS FELD DZ</p> + + <h4>Arguments</h4> + + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MNAUF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>Z</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>DZ</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + + </div> + </div> + + + + <div class="panel panel-default"> + <div class="panel-heading codesum"><span class="anchor" id="proc-spfilter"></span><h3> +public subroutine <a href='../proc/spfilter.html'>SPFILTER</a>(FELDMN, MM, MMAX) + + + +</h3></div> + <div class="panel-body"> + + + + + + + + + +<p>Spectral Filter of Sardeshmukh and Hoskins (1984, MWR)</p> + + <h4>Arguments</h4> + + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>FELDMN</strong>(0:(MM+1)*(MM+2)-1)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MM</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MMAX</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + + </div> + </div> + + + </section> + <br> + + + + </div> + </div> + + + <hr> + </div> <!-- /container --> + <footer> + <div class="container"> + <div class="row"> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> + <div class="col-xs-6 col-md-4 col-md-push-4"> + <p class="text-right"> + Documentation generated by + <a href="https://github.com/cmacmackin/ford">FORD</a> + + </p> + </div> + <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<sup>1</sup></p></div> + </div> + <br> + </div> <!-- /container --> + </footer> + + <!-- Bootstrap core JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> +<!-- + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> +--> + <script src="../js/bootstrap.min.js"></script> + <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> + <script src="../js/ie10-viewport-bug-workaround.js"></script> + + <!-- MathJax JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> + <script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, + jax: ['input/TeX','input/MathML','output/HTML-CSS'], + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] + }); + </script> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="../tipuesearch/tipuesearch_content.js"></script> + <script src="../tipuesearch/tipuesearch_set.js"></script> + <script src="../tipuesearch/tipuesearch.js"></script> + + + </body> +</html> \ No newline at end of file diff --git a/Documentation/FORD/V6/Doc/module/rwgrib2.html b/Documentation/FORD/V6/Doc/module/rwgrib2.html new file mode 100644 index 0000000000000000000000000000000000000000..b2abe98729e973434765bb5cae3b0899305871aa --- /dev/null +++ b/Documentation/FORD/V6/Doc/module/rwgrib2.html @@ -0,0 +1,927 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > + <link rel="icon" href="../favicon.png"> + + <title>RWGRIB2 – Flex_extract: Calculation of etadot</title> + + <link href="../css/bootstrap.min.css" rel="stylesheet"> + <link href="../css/pygments.css" rel="stylesheet"> + <link href="../css/font-awesome.min.css" rel="stylesheet"> + <link href="../css/local.css" rel="stylesheet"> + + <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> + + + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> + <![endif]--> + + <script src="../js/jquery-2.1.3.min.js"></script> + <script src="../js/svg-pan-zoom.min.js"></script> + + </head> + + <body> + + <!-- Fixed navbar --> + <nav class="navbar navbar-inverse navbar-fixed-top"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + </div> + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> + <a href="#" class="dropdown-toggle" + data-toggle="dropdown" role="button" + aria-haspopup="true" + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + + + <li><a href="../lists/files.html">Source Files</a></li> + + + + <li><a href="../lists/modules.html">Modules</a></li> + + + + <li><a href="../lists/procedures.html">Procedures</a></li> + + + + <li><a href="../program/preconvert.html">Program</a></li> + + </ul> + </li> + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> + + </ul> + + <form action="../search.html" class="navbar-form navbar-right" role="search"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> + </div> +<!-- + <button type="submit" class="btn btn-default">Submit</button> +--> + </form> + + </div><!--/.nav-collapse --> + </div> + </nav> + + <div class="container"> + + + <div class="row"> + <h1>RWGRIB2 + <small>Module</small> + + </h1> + +<div class="row"> + <div class="col-lg-12"> +<div class="well well-sm"> + <ul class="list-inline" style="margin-bottom:0px;display:inline"> + + + + + + + <li><i class="fa fa-list-ol"></i> + <a data-toggle="tooltip" + data-placement="bottom" data-html="true" + title="17.1% of total for modules and submodules.">164 statements</a> + </li> + + + + <li><i class="fa fa-code"></i><a href="../src/rwGRIB2.f90"> Source File</a></li> + + + </ul> + <ol class="breadcrumb in-well text-right"> + + + <li><a href='../sourcefile/rwgrib2.f90.html'>rwGRIB2.f90</a></li> + + + <li class="active">RWGRIB2</li> + </ol> +</div> +</div> +</div> +<script> + $(function () { + $('[data-toggle="tooltip"]').tooltip() + }) +</script> + + </div> + + <div class="row"> + <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg"> + +<div id="sidebar"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + +<div class="panel panel-primary"> + <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#subs-0">Subroutines</a></h3></div> + <div class="list-group"> + <div id="subs-0" class="panel-collapse collapse"> + + <a class="list-group-item" href="../module/rwgrib2.html#proc-readlatlon">READLATLON</a> + + <a class="list-group-item" href="../module/rwgrib2.html#proc-writelatlon">WRITELATLON</a> + + <a class="list-group-item" href="../module/rwgrib2.html#proc-readspectral">READSPECTRAL</a> + + </div> + </div> +</div> + + + + + + + + + + +</div> + + </div> + + <div class="col-md-9" id='text'> + + <br> + + + + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Used by</h3> + </div> + <ul class="list-group"> + + + <li class="list-group-item"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: module~~rwgrib2~~UsedByGraph Pages: 1 --> +<svg id="modulerwgrib2UsedByGraph" width="190pt" height="32pt" + viewBox="0.00 0.00 190.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="module~~rwgrib2~~UsedByGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>module~~rwgrib2~~UsedByGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 186,-28 186,4 -4,4"/> +<!-- module~rwgrib2 --> +<g id="module~~rwgrib2~~UsedByGraph_node1" class="node"><title>module~rwgrib2</title> +<polygon fill="none" stroke="black" points="61,-24 -3.55271e-15,-24 -3.55271e-15,-0 61,-0 61,-24"/> +<text text-anchor="middle" x="30.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">RWGRIB2</text> +</g> +<!-- program~preconvert --> +<g id="module~~rwgrib2~~UsedByGraph_node2" class="node"><title>program~preconvert</title> +<g id="a_module~~rwgrib2~~UsedByGraph_node2"><a xlink:href=".././program/preconvert.html" xlink:title="PRECONVERT"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="182,-24 97,-24 97,-0 182,-0 182,-24"/> +<text text-anchor="middle" x="139.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> +</a> +</g> +</g> +<!-- program~preconvert->module~rwgrib2 --> +<g id="module~~rwgrib2~~UsedByGraph_edge1" class="edge"><title>program~preconvert->module~rwgrib2</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M96.8246,-12C88.4903,-12 79.753,-12 71.4777,-12"/> +<polygon fill="#000000" stroke="#000000" points="71.3077,-8.5001 61.3077,-12 71.3077,-15.5001 71.3077,-8.5001"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="490pt" height="32pt" + viewBox="0.00 0.00 489.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 485.5,-28 485.5,4 -4,4"/> +<!-- Module --> +<g id="node1" class="node"><title>Module</title> +<polygon fill="#337ab7" stroke="#337ab7" points="54,-24 0,-24 0,-0 54,-0 54,-24"/> +<text text-anchor="middle" x="27" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Module</text> +</g> +<!-- Submodule --> +<g id="node2" class="node"><title>Submodule</title> +<polygon fill="#5bc0de" stroke="#5bc0de" points="139.5,-24 72.5,-24 72.5,-0 139.5,-0 139.5,-24"/> +<text text-anchor="middle" x="106" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Submodule</text> +</g> +<!-- Subroutine --> +<g id="node3" class="node"><title>Subroutine</title> +<polygon fill="#d9534f" stroke="#d9534f" points="222,-24 158,-24 158,-0 222,-0 222,-24"/> +<text text-anchor="middle" x="190" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> +</g> +<!-- Function --> +<g id="node4" class="node"><title>Function</title> +<polygon fill="#d94e8f" stroke="#d94e8f" points="294,-24 240,-24 240,-0 294,-0 294,-24"/> +<text text-anchor="middle" x="267" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> +</g> +<!-- Program --> +<g id="node5" class="node"><title>Program</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="366,-24 312,-24 312,-0 366,-0 366,-24"/> +<text text-anchor="middle" x="339" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> +</g> +<!-- This Page's Entity --> +<g id="node6" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="481.5,-24 384.5,-24 384.5,-0 481.5,-0 481.5,-24"/> +<text text-anchor="middle" x="433" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a submodule to the (sub)module which it is + descended from. Dashed arrows point from a module or program unit to + modules which it uses. + </p> + </div></div></div></div> + </li> + + </ul> + </div> + + + <br> + + <section class="visible-xs visible-sm hidden-md"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + +<div class="panel panel-primary"> + <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#subs-1">Subroutines</a></h3></div> + <div class="list-group"> + <div id="subs-1" class="panel-collapse collapse"> + + <a class="list-group-item" href="../module/rwgrib2.html#proc-readlatlon">READLATLON</a> + + <a class="list-group-item" href="../module/rwgrib2.html#proc-writelatlon">WRITELATLON</a> + + <a class="list-group-item" href="../module/rwgrib2.html#proc-readspectral">READSPECTRAL</a> + + </div> + </div> +</div> + + + + + + + + + + + </section> + <br class="visible-xs visible-sm hidden-md"> + + + + + + + + + + + + + + + + + <section> + <h2>Subroutines</h2> + + + <div class="panel panel-default"> + <div class="panel-heading codesum"><span class="anchor" id="proc-readlatlon"></span><h3> +public subroutine <a href='../proc/readlatlon.html'>READLATLON</a>(filename, feld, maxl, maxb, mlevel, mpar) + + + +</h3></div> + <div class="panel-body"> + + + + + + + + + +<p>Read a field from GRIB file on lat-lon grid</p> + + <h4>Arguments</h4> + + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" ></span>character(len=*)</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>filename</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real,</td> + <td></td> + <td></td> + + <td>dimension(maxl,maxb,mlevel)</td><td>::</td> + <td><strong>feld</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>maxl</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>maxb</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>mlevel</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>mpar</strong>(:)</td><td></td> + +</tr> + +</tbody> +</table> + + + + + + </div> + </div> + + + + <div class="panel panel-default"> + <div class="panel-heading codesum"><span class="anchor" id="proc-writelatlon"></span><h3> +public subroutine <a href='../proc/writelatlon.html'>WRITELATLON</a>(IUNIT, igrib, ogrib, FELD, MAXL, MAXB, MLEVEL, MLEVELIST, MSTRIDE, MPAR) + + + +</h3></div> + <div class="panel-body"> + + + + + + + + + +<p>write a field on lat-lon grid to GRIB file</p> + + <h4>Arguments</h4> + + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>IUNIT</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>igrib</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>ogrib</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>FELD</strong>(MAXL,MAXB,MLEVEL)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAXL</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAXB</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MLEVEL</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>character(len=*)</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MLEVELIST</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MSTRIDE</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MPAR</strong>(MSTRIDE)</td><td></td> + +</tr> + +</tbody> +</table> + + + + + + </div> + </div> + + + + <div class="panel panel-default"> + <div class="panel-heading codesum"><span class="anchor" id="proc-readspectral"></span><h3> +public subroutine <a href='../proc/readspectral.html'>READSPECTRAL</a>(filename, CXMN, mnauf, mlevel, maxlev, mpar, A, B) + + + +</h3></div> + <div class="panel-body"> + + + + + + + + + +<p>read a GRIB file in spherical harmonics</p> + + <h4>Arguments</h4> + + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" ></span>character(len=*)</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>filename</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>CXMN</strong>(0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>mnauf</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>mlevel</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>maxlev</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>mpar</strong>(:)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>A</strong>(MAXLEV+1)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" ></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>B</strong>(MAXLEV+1)</td><td></td> + +</tr> + +</tbody> +</table> + + + + + + </div> + </div> + + + </section> + <br> + + + + </div> + </div> + + + <hr> + </div> <!-- /container --> + <footer> + <div class="container"> + <div class="row"> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> + <div class="col-xs-6 col-md-4 col-md-push-4"> + <p class="text-right"> + Documentation generated by + <a href="https://github.com/cmacmackin/ford">FORD</a> + + </p> + </div> + <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<sup>1</sup></p></div> + </div> + <br> + </div> <!-- /container --> + </footer> + + <!-- Bootstrap core JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> +<!-- + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> +--> + <script src="../js/bootstrap.min.js"></script> + <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> + <script src="../js/ie10-viewport-bug-workaround.js"></script> + + <!-- MathJax JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> + <script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, + jax: ['input/TeX','input/MathML','output/HTML-CSS'], + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] + }); + </script> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="../tipuesearch/tipuesearch_content.js"></script> + <script src="../tipuesearch/tipuesearch_set.js"></script> + <script src="../tipuesearch/tipuesearch.js"></script> + + + </body> +</html> \ No newline at end of file diff --git a/Documentation/FORD/V6/Doc/proc/contgl.html b/Documentation/FORD/V6/Doc/proc/contgl.html new file mode 100644 index 0000000000000000000000000000000000000000..e346536efbd8726f95a35b29e66c651a7e5c0bca --- /dev/null +++ b/Documentation/FORD/V6/Doc/proc/contgl.html @@ -0,0 +1,547 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > + <link rel="icon" href="../favicon.png"> + + <title>CONTGL – Flex_extract: Calculation of etadot</title> + + <link href="../css/bootstrap.min.css" rel="stylesheet"> + <link href="../css/pygments.css" rel="stylesheet"> + <link href="../css/font-awesome.min.css" rel="stylesheet"> + <link href="../css/local.css" rel="stylesheet"> + + <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> + + + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> + <![endif]--> + + <script src="../js/jquery-2.1.3.min.js"></script> + <script src="../js/svg-pan-zoom.min.js"></script> + + </head> + + <body> + + <!-- Fixed navbar --> + <nav class="navbar navbar-inverse navbar-fixed-top"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + </div> + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> + <a href="#" class="dropdown-toggle" + data-toggle="dropdown" role="button" + aria-haspopup="true" + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + + + <li><a href="../lists/files.html">Source Files</a></li> + + + + <li><a href="../lists/modules.html">Modules</a></li> + + + + <li><a href="../lists/procedures.html">Procedures</a></li> + + + + <li><a href="../program/preconvert.html">Program</a></li> + + </ul> + </li> + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> + + </ul> + + <form action="../search.html" class="navbar-form navbar-right" role="search"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> + </div> +<!-- + <button type="submit" class="btn btn-default">Submit</button> +--> + </form> + + </div><!--/.nav-collapse --> + </div> + </nav> + + <div class="container"> + + + <div class="row"> + <h1>CONTGL + <small>Subroutine</small> + + </h1> + +<div class="row"> + <div class="col-lg-12"> +<div class="well well-sm"> + <ul class="list-inline" style="margin-bottom:0px;display:inline"> + + + + + + + <li><i class="fa fa-list-ol"></i> + <a data-toggle="tooltip" + data-placement="bottom" data-html="true" + title=" 3.2% of total for procedures.">33 statements</a> + </li> + + + + <li><i class="fa fa-code"></i><a href="../src/ftrafo.f90"> Source File</a></li> + + + </ul> + <ol class="breadcrumb in-well text-right"> + + + <li><a href='../sourcefile/ftrafo.f90.html'>ftrafo.f90</a></li> + + <li><a href='../module/ftrafo.html'>FTRAFO</a></li> + + + <li class="active">CONTGL</li> + </ol> +</div> +</div> +</div> +<script> + $(function () { + $('[data-toggle="tooltip"]').tooltip() + }) +</script> + + </div> + + <div class="row"> + <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg"> + +<div id="sidebar"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + +</div> + + </div> + + <div class="col-md-9" id='text'> + <h2> +public subroutine CONTGL(PS, DPSDL, DPSDM, DIV, U, V, BREITE, ETA, MLAT, A, B, NI, NJ, NK) + + + +</h2> + + + + + + <p>Berechnung der Divergenz aus dem Windfeld (U,V) + im Phasenraum. Zurueckgegeben werden die Felder der + Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter.</p> + + + <h3>Arguments</h3> + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" id="variable-ps"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>PS</strong>(NI)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-dpsdl"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>DPSDL</strong>(NI)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-dpsdm"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>DPSDM</strong>(NI)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-div"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>DIV</strong>(NI,NK)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-u"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>U</strong>(NI,NK)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-v"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>V</strong>(NI,NK)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-breite"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>BREITE</strong>(NJ)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-eta"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>ETA</strong>(NI,NK)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mlat%7E9"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MLAT</strong>(NJ)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-a%7E2"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>A</strong>(NK+1)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-b%7E2"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>B</strong>(NK+1)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-ni%7E7"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>NI</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-nj%7E7"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>NJ</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-nk%7E7"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>NK</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + + + <br> + + <section class="visible-xs visible-sm hidden-md"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + + </section> + <br class="visible-xs visible-sm hidden-md"> + + + + + + + + + + + + + + + + + + + + + </div> + </div> + + + <hr> + </div> <!-- /container --> + <footer> + <div class="container"> + <div class="row"> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> + <div class="col-xs-6 col-md-4 col-md-push-4"> + <p class="text-right"> + Documentation generated by + <a href="https://github.com/cmacmackin/ford">FORD</a> + + </p> + </div> + <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<sup>1</sup></p></div> + </div> + <br> + </div> <!-- /container --> + </footer> + + <!-- Bootstrap core JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> +<!-- + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> +--> + <script src="../js/bootstrap.min.js"></script> + <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> + <script src="../js/ie10-viewport-bug-workaround.js"></script> + + <!-- MathJax JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> + <script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, + jax: ['input/TeX','input/MathML','output/HTML-CSS'], + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] + }); + </script> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="../tipuesearch/tipuesearch_content.js"></script> + <script src="../tipuesearch/tipuesearch_set.js"></script> + <script src="../tipuesearch/tipuesearch.js"></script> + + + </body> +</html> \ No newline at end of file diff --git a/Documentation/FORD/V6/Doc/proc/dplgnd.html b/Documentation/FORD/V6/Doc/proc/dplgnd.html new file mode 100644 index 0000000000000000000000000000000000000000..216506d778236886669f01947351b88d19f2e486 --- /dev/null +++ b/Documentation/FORD/V6/Doc/proc/dplgnd.html @@ -0,0 +1,382 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > + <link rel="icon" href="../favicon.png"> + + <title>DPLGND – Flex_extract: Calculation of etadot</title> + + <link href="../css/bootstrap.min.css" rel="stylesheet"> + <link href="../css/pygments.css" rel="stylesheet"> + <link href="../css/font-awesome.min.css" rel="stylesheet"> + <link href="../css/local.css" rel="stylesheet"> + + <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> + + + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> + <![endif]--> + + <script src="../js/jquery-2.1.3.min.js"></script> + <script src="../js/svg-pan-zoom.min.js"></script> + + </head> + + <body> + + <!-- Fixed navbar --> + <nav class="navbar navbar-inverse navbar-fixed-top"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + </div> + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> + <a href="#" class="dropdown-toggle" + data-toggle="dropdown" role="button" + aria-haspopup="true" + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + + + <li><a href="../lists/files.html">Source Files</a></li> + + + + <li><a href="../lists/modules.html">Modules</a></li> + + + + <li><a href="../lists/procedures.html">Procedures</a></li> + + + + <li><a href="../program/preconvert.html">Program</a></li> + + </ul> + </li> + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> + + </ul> + + <form action="../search.html" class="navbar-form navbar-right" role="search"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> + </div> +<!-- + <button type="submit" class="btn btn-default">Submit</button> +--> + </form> + + </div><!--/.nav-collapse --> + </div> + </nav> + + <div class="container"> + + + <div class="row"> + <h1>DPLGND + <small>Subroutine</small> + + </h1> + +<div class="row"> + <div class="col-lg-12"> +<div class="well well-sm"> + <ul class="list-inline" style="margin-bottom:0px;display:inline"> + + + + + + + <li><i class="fa fa-list-ol"></i> + <a data-toggle="tooltip" + data-placement="bottom" data-html="true" + title=" 2.6% of total for procedures.">27 statements</a> + </li> + + + + <li><i class="fa fa-code"></i><a href="../src/phgrreal.f90"> Source File</a></li> + + + </ul> + <ol class="breadcrumb in-well text-right"> + + + <li><a href='../sourcefile/phgrreal.f90.html'>phgrreal.f90</a></li> + + <li><a href='../module/phtogr.html'>PHTOGR</a></li> + + + <li class="active">DPLGND</li> + </ol> +</div> +</div> +</div> +<script> + $(function () { + $('[data-toggle="tooltip"]').tooltip() + }) +</script> + + </div> + + <div class="row"> + <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg"> + +<div id="sidebar"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + +</div> + + </div> + + <div class="col-md-9" id='text'> + <h2> +public subroutine DPLGND(MNAUF, Z, DZ) + + + +</h2> + + + + + + <p>DPLGND BERECHNET DIE ABLEITUNG DER NORMIERTEN ASSOZIIERTEN + LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X) + UND SCHREIBT SIE IN DAS FELD DZ</p> + + + <h3>Arguments</h3> + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" id="variable-mnauf%7E12"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MNAUF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-z%7E11"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>Z</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-dz"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>DZ</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + + + <br> + + <section class="visible-xs visible-sm hidden-md"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + + </section> + <br class="visible-xs visible-sm hidden-md"> + + + + + + + + + + + + + + + + + + + + + </div> + </div> + + + <hr> + </div> <!-- /container --> + <footer> + <div class="container"> + <div class="row"> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> + <div class="col-xs-6 col-md-4 col-md-push-4"> + <p class="text-right"> + Documentation generated by + <a href="https://github.com/cmacmackin/ford">FORD</a> + + </p> + </div> + <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<sup>1</sup></p></div> + </div> + <br> + </div> <!-- /container --> + </footer> + + <!-- Bootstrap core JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> +<!-- + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> +--> + <script src="../js/bootstrap.min.js"></script> + <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> + <script src="../js/ie10-viewport-bug-workaround.js"></script> + + <!-- MathJax JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> + <script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, + jax: ['input/TeX','input/MathML','output/HTML-CSS'], + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] + }); + </script> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="../tipuesearch/tipuesearch_content.js"></script> + <script src="../tipuesearch/tipuesearch_set.js"></script> + <script src="../tipuesearch/tipuesearch.js"></script> + + + </body> +</html> \ No newline at end of file diff --git a/Documentation/FORD/V6/Doc/proc/gauleg.html b/Documentation/FORD/V6/Doc/proc/gauleg.html new file mode 100644 index 0000000000000000000000000000000000000000..301c9addb5a9a09f7e49215538adca31258c96e5 --- /dev/null +++ b/Documentation/FORD/V6/Doc/proc/gauleg.html @@ -0,0 +1,593 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > + <link rel="icon" href="../favicon.png"> + + <title>GAULEG – Flex_extract: Calculation of etadot</title> + + <link href="../css/bootstrap.min.css" rel="stylesheet"> + <link href="../css/pygments.css" rel="stylesheet"> + <link href="../css/font-awesome.min.css" rel="stylesheet"> + <link href="../css/local.css" rel="stylesheet"> + + <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> + + + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> + <![endif]--> + + <script src="../js/jquery-2.1.3.min.js"></script> + <script src="../js/svg-pan-zoom.min.js"></script> + + </head> + + <body> + + <!-- Fixed navbar --> + <nav class="navbar navbar-inverse navbar-fixed-top"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + </div> + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> + <a href="#" class="dropdown-toggle" + data-toggle="dropdown" role="button" + aria-haspopup="true" + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + + + <li><a href="../lists/files.html">Source Files</a></li> + + + + <li><a href="../lists/modules.html">Modules</a></li> + + + + <li><a href="../lists/procedures.html">Procedures</a></li> + + + + <li><a href="../program/preconvert.html">Program</a></li> + + </ul> + </li> + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> + + </ul> + + <form action="../search.html" class="navbar-form navbar-right" role="search"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> + </div> +<!-- + <button type="submit" class="btn btn-default">Submit</button> +--> + </form> + + </div><!--/.nav-collapse --> + </div> + </nav> + + <div class="container"> + + + <div class="row"> + <h1>GAULEG + <small>Subroutine</small> + + </h1> + +<div class="row"> + <div class="col-lg-12"> +<div class="well well-sm"> + <ul class="list-inline" style="margin-bottom:0px;display:inline"> + + + + + + + <li><i class="fa fa-list-ol"></i> + <a data-toggle="tooltip" + data-placement="bottom" data-html="true" + title=" 2.7% of total for procedures.">28 statements</a> + </li> + + + + <li><i class="fa fa-code"></i><a href="../src/phgrreal.f90"> Source File</a></li> + + + </ul> + <ol class="breadcrumb in-well text-right"> + + + <li><a href='../sourcefile/phgrreal.f90.html'>phgrreal.f90</a></li> + + <li><a href='../module/phtogr.html'>PHTOGR</a></li> + + + <li class="active">GAULEG</li> + </ol> +</div> +</div> +</div> +<script> + $(function () { + $('[data-toggle="tooltip"]').tooltip() + }) +</script> + + </div> + + <div class="row"> + <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg"> + +<div id="sidebar"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + +</div> + + </div> + + <div class="col-md-9" id='text'> + <h2> +public subroutine GAULEG(X1, X2, X, W, N) + + + +</h2> + + + + + + <p>BERECHNET DIE GAUSS+SCHEN BREITEN</p> + + + <h3>Arguments</h3> + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" id="variable-x1"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>X1</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-x2"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>X2</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-x"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>X</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-w%7E4"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>W</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-n"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>N</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + <br> + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Calls</h3> + </div> + <div class="panel-body"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: proc~~gauleg~~CallsGraph Pages: 1 --> +<svg id="procgaulegCallsGraph" width="154pt" height="32pt" + viewBox="0.00 0.00 154.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="proc~~gauleg~~CallsGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>proc~~gauleg~~CallsGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 150,-28 150,4 -4,4"/> +<!-- proc~gauleg --> +<g id="proc~~gauleg~~CallsGraph_node1" class="node"><title>proc~gauleg</title> +<polygon fill="none" stroke="black" points="56,-24 0,-24 0,-0 56,-0 56,-24"/> +<text text-anchor="middle" x="28" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">GAULEG</text> +</g> +<!-- dcos --> +<g id="proc~~gauleg~~CallsGraph_node2" class="node"><title>dcos</title> +<polygon fill="#777777" stroke="#777777" points="146,-24 92,-24 92,-0 146,-0 146,-24"/> +<text text-anchor="middle" x="119" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">dcos</text> +</g> +<!-- proc~gauleg->dcos --> +<g id="proc~~gauleg~~CallsGraph_edge1" class="edge"><title>proc~gauleg->dcos</title> +<path fill="none" stroke="#000000" d="M56.1865,-12C64.2547,-12 73.2224,-12 81.7684,-12"/> +<polygon fill="#000000" stroke="#000000" points="81.8947,-15.5001 91.8947,-12 81.8946,-8.5001 81.8947,-15.5001"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="560pt" height="32pt" + viewBox="0.00 0.00 559.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 555.5,-28 555.5,4 -4,4"/> +<!-- Subroutine --> +<g id="node1" class="node"><title>Subroutine</title> +<polygon fill="#d9534f" stroke="#d9534f" points="64,-24 0,-24 0,-0 64,-0 64,-24"/> +<text text-anchor="middle" x="32" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> +</g> +<!-- Function --> +<g id="node2" class="node"><title>Function</title> +<polygon fill="#d94e8f" stroke="#d94e8f" points="136,-24 82,-24 82,-0 136,-0 136,-24"/> +<text text-anchor="middle" x="109" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> +</g> +<!-- Interface --> +<g id="node3" class="node"><title>Interface</title> +<polygon fill="#a7506f" stroke="#a7506f" points="209.5,-24 154.5,-24 154.5,-0 209.5,-0 209.5,-24"/> +<text text-anchor="middle" x="182" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Interface</text> +</g> +<!-- Unknown Procedure Type --> +<g id="node4" class="node"><title>Unknown Procedure Type</title> +<polygon fill="#777777" stroke="#777777" points="364,-24 228,-24 228,-0 364,-0 364,-24"/> +<text text-anchor="middle" x="296" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Unknown Procedure Type</text> +</g> +<!-- Program --> +<g id="node5" class="node"><title>Program</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="436,-24 382,-24 382,-0 436,-0 436,-24"/> +<text text-anchor="middle" x="409" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> +</g> +<!-- This Page's Entity --> +<g id="node6" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="551.5,-24 454.5,-24 454.5,-0 551.5,-0 551.5,-24"/> +<text text-anchor="middle" x="503" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a procedure to one which it calls. Dashed + arrows point from an interface to procedures which implement that interface. + This could include the module procedures in a generic interface or the + implementation in a submodule of an interface in a parent module. + </p> + </div></div></div></div> + </div> + </div> + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Called by</h3> + </div> + <div class="panel-body"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: proc~~gauleg~~CalledByGraph Pages: 1 --> +<svg id="procgaulegCalledByGraph" width="185pt" height="32pt" + viewBox="0.00 0.00 185.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="proc~~gauleg~~CalledByGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>proc~~gauleg~~CalledByGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 181,-28 181,4 -4,4"/> +<!-- proc~gauleg --> +<g id="proc~~gauleg~~CalledByGraph_node1" class="node"><title>proc~gauleg</title> +<polygon fill="none" stroke="black" points="177,-24 121,-24 121,-0 177,-0 177,-24"/> +<text text-anchor="middle" x="149" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">GAULEG</text> +</g> +<!-- program~preconvert --> +<g id="proc~~gauleg~~CalledByGraph_node2" class="node"><title>program~preconvert</title> +<g id="a_proc~~gauleg~~CalledByGraph_node2"><a xlink:href=".././program/preconvert.html" xlink:title="PRECONVERT"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="85,-24 0,-24 0,-0 85,-0 85,-24"/> +<text text-anchor="middle" x="42.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> +</a> +</g> +</g> +<!-- program~preconvert->proc~gauleg --> +<g id="proc~~gauleg~~CalledByGraph_edge1" class="edge"><title>program~preconvert->proc~gauleg</title> +<path fill="none" stroke="#000000" d="M85.1014,-12C93.5857,-12 102.461,-12 110.781,-12"/> +<polygon fill="#000000" stroke="#000000" points="110.951,-15.5001 120.951,-12 110.951,-8.5001 110.951,-15.5001"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="560pt" height="32pt" + viewBox="0.00 0.00 559.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 555.5,-28 555.5,4 -4,4"/> +<!-- Subroutine --> +<g id="node1" class="node"><title>Subroutine</title> +<polygon fill="#d9534f" stroke="#d9534f" points="64,-24 0,-24 0,-0 64,-0 64,-24"/> +<text text-anchor="middle" x="32" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> +</g> +<!-- Function --> +<g id="node2" class="node"><title>Function</title> +<polygon fill="#d94e8f" stroke="#d94e8f" points="136,-24 82,-24 82,-0 136,-0 136,-24"/> +<text text-anchor="middle" x="109" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> +</g> +<!-- Interface --> +<g id="node3" class="node"><title>Interface</title> +<polygon fill="#a7506f" stroke="#a7506f" points="209.5,-24 154.5,-24 154.5,-0 209.5,-0 209.5,-24"/> +<text text-anchor="middle" x="182" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Interface</text> +</g> +<!-- Unknown Procedure Type --> +<g id="node4" class="node"><title>Unknown Procedure Type</title> +<polygon fill="#777777" stroke="#777777" points="364,-24 228,-24 228,-0 364,-0 364,-24"/> +<text text-anchor="middle" x="296" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Unknown Procedure Type</text> +</g> +<!-- Program --> +<g id="node5" class="node"><title>Program</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="436,-24 382,-24 382,-0 436,-0 436,-24"/> +<text text-anchor="middle" x="409" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> +</g> +<!-- This Page's Entity --> +<g id="node6" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="551.5,-24 454.5,-24 454.5,-0 551.5,-0 551.5,-24"/> +<text text-anchor="middle" x="503" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a procedure to one which it calls. Dashed + arrows point from an interface to procedures which implement that interface. + This could include the module procedures in a generic interface or the + implementation in a submodule of an interface in a parent module. + </p> + </div></div></div></div> + </div> + </div> + + <br> + + <section class="visible-xs visible-sm hidden-md"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + + </section> + <br class="visible-xs visible-sm hidden-md"> + + + + + + + + + + + + + + + + + + + + + </div> + </div> + + + <hr> + </div> <!-- /container --> + <footer> + <div class="container"> + <div class="row"> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> + <div class="col-xs-6 col-md-4 col-md-push-4"> + <p class="text-right"> + Documentation generated by + <a href="https://github.com/cmacmackin/ford">FORD</a> + + </p> + </div> + <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<sup>1</sup></p></div> + </div> + <br> + </div> <!-- /container --> + </footer> + + <!-- Bootstrap core JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> +<!-- + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> +--> + <script src="../js/bootstrap.min.js"></script> + <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> + <script src="../js/ie10-viewport-bug-workaround.js"></script> + + <!-- MathJax JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> + <script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, + jax: ['input/TeX','input/MathML','output/HTML-CSS'], + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] + }); + </script> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="../tipuesearch/tipuesearch_content.js"></script> + <script src="../tipuesearch/tipuesearch_set.js"></script> + <script src="../tipuesearch/tipuesearch.js"></script> + + + </body> +</html> \ No newline at end of file diff --git a/Documentation/FORD/V6/Doc/proc/grph213.html b/Documentation/FORD/V6/Doc/proc/grph213.html new file mode 100644 index 0000000000000000000000000000000000000000..4bd2b49cc7cdc9cb1ee060be011dae740a3d4384 --- /dev/null +++ b/Documentation/FORD/V6/Doc/proc/grph213.html @@ -0,0 +1,698 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > + <link rel="icon" href="../favicon.png"> + + <title>GRPH213 – Flex_extract: Calculation of etadot</title> + + <link href="../css/bootstrap.min.css" rel="stylesheet"> + <link href="../css/pygments.css" rel="stylesheet"> + <link href="../css/font-awesome.min.css" rel="stylesheet"> + <link href="../css/local.css" rel="stylesheet"> + + <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> + + + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> + <![endif]--> + + <script src="../js/jquery-2.1.3.min.js"></script> + <script src="../js/svg-pan-zoom.min.js"></script> + + </head> + + <body> + + <!-- Fixed navbar --> + <nav class="navbar navbar-inverse navbar-fixed-top"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + </div> + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> + <a href="#" class="dropdown-toggle" + data-toggle="dropdown" role="button" + aria-haspopup="true" + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + + + <li><a href="../lists/files.html">Source Files</a></li> + + + + <li><a href="../lists/modules.html">Modules</a></li> + + + + <li><a href="../lists/procedures.html">Procedures</a></li> + + + + <li><a href="../program/preconvert.html">Program</a></li> + + </ul> + </li> + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> + + </ul> + + <form action="../search.html" class="navbar-form navbar-right" role="search"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> + </div> +<!-- + <button type="submit" class="btn btn-default">Submit</button> +--> + </form> + + </div><!--/.nav-collapse --> + </div> + </nav> + + <div class="container"> + + + <div class="row"> + <h1>GRPH213 + <small>Subroutine</small> + + </h1> + +<div class="row"> + <div class="col-lg-12"> +<div class="well well-sm"> + <ul class="list-inline" style="margin-bottom:0px;display:inline"> + + + + + + + <li><i class="fa fa-list-ol"></i> + <a data-toggle="tooltip" + data-placement="bottom" data-html="true" + title=" 1.8% of total for procedures.">18 statements</a> + </li> + + + + <li><i class="fa fa-code"></i><a href="../src/grphreal.f90"> Source File</a></li> + + + </ul> + <ol class="breadcrumb in-well text-right"> + + + <li><a href='../sourcefile/grphreal.f90.html'>grphreal.f90</a></li> + + <li><a href='../module/grtoph.html'>GRTOPH</a></li> + + + <li class="active">GRPH213</li> + </ol> +</div> +</div> +</div> +<script> + $(function () { + $('[data-toggle="tooltip"]').tooltip() + }) +</script> + + </div> + + <div class="row"> + <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg"> + +<div id="sidebar"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + +</div> + + </div> + + <div class="col-md-9" id='text'> + <h2> +public subroutine GRPH213(CXMN, FELD, WSAVE, IFAX, Z, W, MLAT, MNAUF, MAXL, MAXB, MLEVEL) + + + +</h2> + + + + + + <p>DIE ROUTINE F]HRT EINE TRANSFORMATION EINER + FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN + RAUM AUF KUGELKOORDINATEN DURCH</p> + + + <h3>Arguments</h3> + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" id="variable-cxmn%7E2"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>CXMN</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-feld%7E2"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>FELD</strong>(MAXL,MLEVEL)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-wsave"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>WSAVE</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-ifax"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>IFAX</strong>(10,MAXB)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-z"></span>real(kind=8)</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>Z</strong>(MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-w"></span>real(kind=8)</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>W</strong>(MAXB)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mlat"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MLAT</strong>(MAXB)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mnauf"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MNAUF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-maxl%7E2"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAXL</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-maxb%7E2"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAXB</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mlevel%7E2"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MLEVEL</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + <br> + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Calls</h3> + </div> + <div class="panel-body"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: proc~~grph213~~CallsGraph Pages: 1 --> +<svg id="procgrph213CallsGraph" width="169pt" height="74pt" + viewBox="0.00 0.00 169.00 74.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="proc~~grph213~~CallsGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 70)"> +<title>proc~~grph213~~CallsGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-70 165,-70 165,4 -4,4"/> +<!-- proc~grph213 --> +<g id="proc~~grph213~~CallsGraph_node1" class="node"><title>proc~grph213</title> +<polygon fill="none" stroke="black" points="61,-45 -3.55271e-15,-45 -3.55271e-15,-21 61,-21 61,-45"/> +<text text-anchor="middle" x="30.5" y="-30.6" font-family="Helvetica,sans-Serif" font-size="10.50">GRPH213</text> +</g> +<!-- ind --> +<g id="proc~~grph213~~CallsGraph_node2" class="node"><title>ind</title> +<polygon fill="#777777" stroke="#777777" points="156,-66 102,-66 102,-42 156,-42 156,-66"/> +<text text-anchor="middle" x="129" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">ind</text> +</g> +<!-- proc~grph213->ind --> +<g id="proc~~grph213~~CallsGraph_edge1" class="edge"><title>proc~grph213->ind</title> +<path fill="none" stroke="#000000" d="M61.2406,-39.472C70.9596,-41.5871 81.8596,-43.9591 91.989,-46.1634"/> +<polygon fill="#000000" stroke="#000000" points="91.2737,-49.5896 101.789,-48.2961 92.7622,-42.7497 91.2737,-49.5896"/> +</g> +<!-- proc~grphsub --> +<g id="proc~~grph213~~CallsGraph_node3" class="node"><title>proc~grphsub</title> +<g id="a_proc~~grph213~~CallsGraph_node3"><a xlink:href=".././proc/grphsub.html" xlink:title="GRPHSUB"> +<polygon fill="#d9534f" stroke="#d9534f" points="161,-24 97,-24 97,-0 161,-0 161,-24"/> +<text text-anchor="middle" x="129" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GRPHSUB</text> +</a> +</g> +</g> +<!-- proc~grph213->proc~grphsub --> +<g id="proc~~grph213~~CallsGraph_edge2" class="edge"><title>proc~grph213->proc~grphsub</title> +<path fill="none" stroke="#000000" d="M61.2406,-26.528C69.3605,-24.7609 78.3048,-22.8145 86.9353,-20.9364"/> +<polygon fill="#000000" stroke="#000000" points="87.8275,-24.3242 96.8545,-18.7778 86.3389,-17.4843 87.8275,-24.3242"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="560pt" height="32pt" + viewBox="0.00 0.00 559.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 555.5,-28 555.5,4 -4,4"/> +<!-- Subroutine --> +<g id="node1" class="node"><title>Subroutine</title> +<polygon fill="#d9534f" stroke="#d9534f" points="64,-24 0,-24 0,-0 64,-0 64,-24"/> +<text text-anchor="middle" x="32" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> +</g> +<!-- Function --> +<g id="node2" class="node"><title>Function</title> +<polygon fill="#d94e8f" stroke="#d94e8f" points="136,-24 82,-24 82,-0 136,-0 136,-24"/> +<text text-anchor="middle" x="109" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> +</g> +<!-- Interface --> +<g id="node3" class="node"><title>Interface</title> +<polygon fill="#a7506f" stroke="#a7506f" points="209.5,-24 154.5,-24 154.5,-0 209.5,-0 209.5,-24"/> +<text text-anchor="middle" x="182" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Interface</text> +</g> +<!-- Unknown Procedure Type --> +<g id="node4" class="node"><title>Unknown Procedure Type</title> +<polygon fill="#777777" stroke="#777777" points="364,-24 228,-24 228,-0 364,-0 364,-24"/> +<text text-anchor="middle" x="296" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Unknown Procedure Type</text> +</g> +<!-- Program --> +<g id="node5" class="node"><title>Program</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="436,-24 382,-24 382,-0 436,-0 436,-24"/> +<text text-anchor="middle" x="409" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> +</g> +<!-- This Page's Entity --> +<g id="node6" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="551.5,-24 454.5,-24 454.5,-0 551.5,-0 551.5,-24"/> +<text text-anchor="middle" x="503" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a procedure to one which it calls. Dashed + arrows point from an interface to procedures which implement that interface. + This could include the module procedures in a generic interface or the + implementation in a submodule of an interface in a parent module. + </p> + </div></div></div></div> + </div> + </div> + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Called by</h3> + </div> + <div class="panel-body"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: proc~~grph213~~CalledByGraph Pages: 1 --> +<svg id="procgrph213CalledByGraph" width="190pt" height="32pt" + viewBox="0.00 0.00 190.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="proc~~grph213~~CalledByGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>proc~~grph213~~CalledByGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 186,-28 186,4 -4,4"/> +<!-- proc~grph213 --> +<g id="proc~~grph213~~CalledByGraph_node1" class="node"><title>proc~grph213</title> +<polygon fill="none" stroke="black" points="182,-24 121,-24 121,-0 182,-0 182,-24"/> +<text text-anchor="middle" x="151.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">GRPH213</text> +</g> +<!-- program~preconvert --> +<g id="proc~~grph213~~CalledByGraph_node2" class="node"><title>program~preconvert</title> +<g id="a_proc~~grph213~~CalledByGraph_node2"><a xlink:href=".././program/preconvert.html" xlink:title="PRECONVERT"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="85,-24 0,-24 0,-0 85,-0 85,-24"/> +<text text-anchor="middle" x="42.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> +</a> +</g> +</g> +<!-- program~preconvert->proc~grph213 --> +<g id="proc~~grph213~~CalledByGraph_edge1" class="edge"><title>program~preconvert->proc~grph213</title> +<path fill="none" stroke="#000000" d="M85.1754,-12C93.5097,-12 102.247,-12 110.522,-12"/> +<polygon fill="#000000" stroke="#000000" points="110.692,-15.5001 120.692,-12 110.692,-8.5001 110.692,-15.5001"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="560pt" height="32pt" + viewBox="0.00 0.00 559.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 555.5,-28 555.5,4 -4,4"/> +<!-- Subroutine --> +<g id="node1" class="node"><title>Subroutine</title> +<polygon fill="#d9534f" stroke="#d9534f" points="64,-24 0,-24 0,-0 64,-0 64,-24"/> +<text text-anchor="middle" x="32" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> +</g> +<!-- Function --> +<g id="node2" class="node"><title>Function</title> +<polygon fill="#d94e8f" stroke="#d94e8f" points="136,-24 82,-24 82,-0 136,-0 136,-24"/> +<text text-anchor="middle" x="109" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> +</g> +<!-- Interface --> +<g id="node3" class="node"><title>Interface</title> +<polygon fill="#a7506f" stroke="#a7506f" points="209.5,-24 154.5,-24 154.5,-0 209.5,-0 209.5,-24"/> +<text text-anchor="middle" x="182" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Interface</text> +</g> +<!-- Unknown Procedure Type --> +<g id="node4" class="node"><title>Unknown Procedure Type</title> +<polygon fill="#777777" stroke="#777777" points="364,-24 228,-24 228,-0 364,-0 364,-24"/> +<text text-anchor="middle" x="296" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Unknown Procedure Type</text> +</g> +<!-- Program --> +<g id="node5" class="node"><title>Program</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="436,-24 382,-24 382,-0 436,-0 436,-24"/> +<text text-anchor="middle" x="409" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> +</g> +<!-- This Page's Entity --> +<g id="node6" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="551.5,-24 454.5,-24 454.5,-0 551.5,-0 551.5,-24"/> +<text text-anchor="middle" x="503" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a procedure to one which it calls. Dashed + arrows point from an interface to procedures which implement that interface. + This could include the module procedures in a generic interface or the + implementation in a submodule of an interface in a parent module. + </p> + </div></div></div></div> + </div> + </div> + + <br> + + <section class="visible-xs visible-sm hidden-md"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + + </section> + <br class="visible-xs visible-sm hidden-md"> + + + + + + + + + + + + + + + + + + + + + </div> + </div> + + + <hr> + </div> <!-- /container --> + <footer> + <div class="container"> + <div class="row"> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> + <div class="col-xs-6 col-md-4 col-md-push-4"> + <p class="text-right"> + Documentation generated by + <a href="https://github.com/cmacmackin/ford">FORD</a> + + </p> + </div> + <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<sup>1</sup></p></div> + </div> + <br> + </div> <!-- /container --> + </footer> + + <!-- Bootstrap core JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> +<!-- + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> +--> + <script src="../js/bootstrap.min.js"></script> + <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> + <script src="../js/ie10-viewport-bug-workaround.js"></script> + + <!-- MathJax JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> + <script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, + jax: ['input/TeX','input/MathML','output/HTML-CSS'], + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] + }); + </script> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="../tipuesearch/tipuesearch_content.js"></script> + <script src="../tipuesearch/tipuesearch_set.js"></script> + <script src="../tipuesearch/tipuesearch.js"></script> + + + </body> +</html> \ No newline at end of file diff --git a/Documentation/FORD/V6/Doc/proc/grphsub.html b/Documentation/FORD/V6/Doc/proc/grphsub.html new file mode 100644 index 0000000000000000000000000000000000000000..1eb63a18f8840a4caabdbdf660aa650d1226516a --- /dev/null +++ b/Documentation/FORD/V6/Doc/proc/grphsub.html @@ -0,0 +1,639 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > + <link rel="icon" href="../favicon.png"> + + <title>GRPHSUB – Flex_extract: Calculation of etadot</title> + + <link href="../css/bootstrap.min.css" rel="stylesheet"> + <link href="../css/pygments.css" rel="stylesheet"> + <link href="../css/font-awesome.min.css" rel="stylesheet"> + <link href="../css/local.css" rel="stylesheet"> + + <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> + + + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> + <![endif]--> + + <script src="../js/jquery-2.1.3.min.js"></script> + <script src="../js/svg-pan-zoom.min.js"></script> + + </head> + + <body> + + <!-- Fixed navbar --> + <nav class="navbar navbar-inverse navbar-fixed-top"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + </div> + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> + <a href="#" class="dropdown-toggle" + data-toggle="dropdown" role="button" + aria-haspopup="true" + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + + + <li><a href="../lists/files.html">Source Files</a></li> + + + + <li><a href="../lists/modules.html">Modules</a></li> + + + + <li><a href="../lists/procedures.html">Procedures</a></li> + + + + <li><a href="../program/preconvert.html">Program</a></li> + + </ul> + </li> + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> + + </ul> + + <form action="../search.html" class="navbar-form navbar-right" role="search"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> + </div> +<!-- + <button type="submit" class="btn btn-default">Submit</button> +--> + </form> + + </div><!--/.nav-collapse --> + </div> + </nav> + + <div class="container"> + + + <div class="row"> + <h1>GRPHSUB + <small>Subroutine</small> + + </h1> + +<div class="row"> + <div class="col-lg-12"> +<div class="well well-sm"> + <ul class="list-inline" style="margin-bottom:0px;display:inline"> + + + + + + + <li><i class="fa fa-list-ol"></i> + <a data-toggle="tooltip" + data-placement="bottom" data-html="true" + title=" 2.7% of total for procedures.">28 statements</a> + </li> + + + + <li><i class="fa fa-code"></i><a href="../src/grphreal.f90"> Source File</a></li> + + + </ul> + <ol class="breadcrumb in-well text-right"> + + + <li><a href='../sourcefile/grphreal.f90.html'>grphreal.f90</a></li> + + <li><a href='../module/grtoph.html'>GRTOPH</a></li> + + + <li class="active">GRPHSUB</li> + </ol> +</div> +</div> +</div> +<script> + $(function () { + $('[data-toggle="tooltip"]').tooltip() + }) +</script> + + </div> + + <div class="row"> + <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg"> + +<div id="sidebar"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + +</div> + + </div> + + <div class="col-md-9" id='text'> + <h2> +public subroutine GRPHSUB(L, IND, CXMN, FELD, WSAVE, IFAX, Z, W, MLAT, MNAUF, MAXL, MAXB, MLEVEL) + + + +</h2> + + + + + + <p>DIE ROUTINE F]HRT EINE TRANSFORMATION EINER + FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN + RAUM AUF KUGELKOORDINATEN DURCH</p> + + + <h3>Arguments</h3> + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" id="variable-l"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>L</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-ind"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>IND</strong>(MAXB)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-cxmn%7E3"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>CXMN</strong>(0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-feld%7E3"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>FELD</strong>(MAXL,MLEVEL)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-wsave%7E2"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>WSAVE</strong>(8*MAXB+15,MAXB/2)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-ifax%7E2"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>IFAX</strong>(10,MAXB)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-z%7E2"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>Z</strong>(MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-w%7E2"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>W</strong>(MAXB)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mlat%7E2"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MLAT</strong>(MAXB)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mnauf%7E2"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MNAUF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-maxl%7E3"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAXL</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-maxb%7E3"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAXB</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mlevel%7E3"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MLEVEL</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + <br> + + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Called by</h3> + </div> + <div class="panel-body"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: proc~~grphsub~~CalledByGraph Pages: 1 --> +<svg id="procgrphsubCalledByGraph" width="290pt" height="32pt" + viewBox="0.00 0.00 290.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="proc~~grphsub~~CalledByGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>proc~~grphsub~~CalledByGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 286,-28 286,4 -4,4"/> +<!-- proc~grphsub --> +<g id="proc~~grphsub~~CalledByGraph_node1" class="node"><title>proc~grphsub</title> +<polygon fill="none" stroke="black" points="282,-24 218,-24 218,-0 282,-0 282,-24"/> +<text text-anchor="middle" x="250" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">GRPHSUB</text> +</g> +<!-- proc~grph213 --> +<g id="proc~~grphsub~~CalledByGraph_node2" class="node"><title>proc~grph213</title> +<g id="a_proc~~grphsub~~CalledByGraph_node2"><a xlink:href=".././proc/grph213.html" xlink:title="GRPH213"> +<polygon fill="#d9534f" stroke="#d9534f" points="182,-24 121,-24 121,-0 182,-0 182,-24"/> +<text text-anchor="middle" x="151.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GRPH213</text> +</a> +</g> +</g> +<!-- proc~grph213->proc~grphsub --> +<g id="proc~~grphsub~~CalledByGraph_edge1" class="edge"><title>proc~grph213->proc~grphsub</title> +<path fill="none" stroke="#000000" d="M182.241,-12C190.272,-12 199.11,-12 207.654,-12"/> +<polygon fill="#000000" stroke="#000000" points="207.855,-15.5001 217.855,-12 207.854,-8.5001 207.855,-15.5001"/> +</g> +<!-- program~preconvert --> +<g id="proc~~grphsub~~CalledByGraph_node3" class="node"><title>program~preconvert</title> +<g id="a_proc~~grphsub~~CalledByGraph_node3"><a xlink:href=".././program/preconvert.html" xlink:title="PRECONVERT"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="85,-24 0,-24 0,-0 85,-0 85,-24"/> +<text text-anchor="middle" x="42.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> +</a> +</g> +</g> +<!-- program~preconvert->proc~grph213 --> +<g id="proc~~grphsub~~CalledByGraph_edge2" class="edge"><title>program~preconvert->proc~grph213</title> +<path fill="none" stroke="#000000" d="M85.1754,-12C93.5097,-12 102.247,-12 110.522,-12"/> +<polygon fill="#000000" stroke="#000000" points="110.692,-15.5001 120.692,-12 110.692,-8.5001 110.692,-15.5001"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="560pt" height="32pt" + viewBox="0.00 0.00 559.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 555.5,-28 555.5,4 -4,4"/> +<!-- Subroutine --> +<g id="node1" class="node"><title>Subroutine</title> +<polygon fill="#d9534f" stroke="#d9534f" points="64,-24 0,-24 0,-0 64,-0 64,-24"/> +<text text-anchor="middle" x="32" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> +</g> +<!-- Function --> +<g id="node2" class="node"><title>Function</title> +<polygon fill="#d94e8f" stroke="#d94e8f" points="136,-24 82,-24 82,-0 136,-0 136,-24"/> +<text text-anchor="middle" x="109" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> +</g> +<!-- Interface --> +<g id="node3" class="node"><title>Interface</title> +<polygon fill="#a7506f" stroke="#a7506f" points="209.5,-24 154.5,-24 154.5,-0 209.5,-0 209.5,-24"/> +<text text-anchor="middle" x="182" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Interface</text> +</g> +<!-- Unknown Procedure Type --> +<g id="node4" class="node"><title>Unknown Procedure Type</title> +<polygon fill="#777777" stroke="#777777" points="364,-24 228,-24 228,-0 364,-0 364,-24"/> +<text text-anchor="middle" x="296" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Unknown Procedure Type</text> +</g> +<!-- Program --> +<g id="node5" class="node"><title>Program</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="436,-24 382,-24 382,-0 436,-0 436,-24"/> +<text text-anchor="middle" x="409" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> +</g> +<!-- This Page's Entity --> +<g id="node6" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="551.5,-24 454.5,-24 454.5,-0 551.5,-0 551.5,-24"/> +<text text-anchor="middle" x="503" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a procedure to one which it calls. Dashed + arrows point from an interface to procedures which implement that interface. + This could include the module procedures in a generic interface or the + implementation in a submodule of an interface in a parent module. + </p> + </div></div></div></div> + </div> + </div> + + <br> + + <section class="visible-xs visible-sm hidden-md"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + + </section> + <br class="visible-xs visible-sm hidden-md"> + + + + + + + + + + + + + + + + + + + + + </div> + </div> + + + <hr> + </div> <!-- /container --> + <footer> + <div class="container"> + <div class="row"> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> + <div class="col-xs-6 col-md-4 col-md-push-4"> + <p class="text-right"> + Documentation generated by + <a href="https://github.com/cmacmackin/ford">FORD</a> + + </p> + </div> + <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<sup>1</sup></p></div> + </div> + <br> + </div> <!-- /container --> + </footer> + + <!-- Bootstrap core JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> +<!-- + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> +--> + <script src="../js/bootstrap.min.js"></script> + <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> + <script src="../js/ie10-viewport-bug-workaround.js"></script> + + <!-- MathJax JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> + <script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, + jax: ['input/TeX','input/MathML','output/HTML-CSS'], + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] + }); + </script> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="../tipuesearch/tipuesearch_content.js"></script> + <script src="../tipuesearch/tipuesearch_set.js"></script> + <script src="../tipuesearch/tipuesearch.js"></script> + + + </body> +</html> \ No newline at end of file diff --git a/Documentation/FORD/V5/Doc_original/proc/ia.html b/Documentation/FORD/V6/Doc/proc/ia.html similarity index 75% rename from Documentation/FORD/V5/Doc_original/proc/ia.html rename to Documentation/FORD/V6/Doc/proc/ia.html index e4b890a9aa8953394e470a77fac0b2fe50e1e0cb..67e4ec6fbb187d38006e98657455fd9906eecba3 100644 --- a/Documentation/FORD/V5/Doc_original/proc/ia.html +++ b/Documentation/FORD/V6/Doc/proc/ia.html @@ -4,10 +4,10 @@ <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> - - <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> - <meta name="author" content="Leopold Haimberger" > + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > <link rel="icon" href="../favicon.png"> <title>IA – Flex_extract: Calculation of etadot</title> @@ -17,6 +17,9 @@ <link href="../css/font-awesome.min.css" rel="stylesheet"> <link href="../css/local.css" rel="stylesheet"> + <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> <!--[if lt IE 9]> @@ -27,13 +30,6 @@ <script src="../js/jquery-2.1.3.min.js"></script> <script src="../js/svg-pan-zoom.min.js"></script> - - <script src="../tipuesearch/tipuesearch_content.js"></script> - <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> - <script src="../tipuesearch/tipuesearch_set.js"></script> - <script src="../tipuesearch/tipuesearch.js"></script> - - </head> <body> @@ -48,37 +44,41 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> - + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" - aria-expanded="false">Contents <span class="caret"></span></a> - <ul class="dropdown-menu"> + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + <li><a href="../lists/files.html">Source Files</a></li> - - + + + <li><a href="../lists/modules.html">Modules</a></li> - + <li><a href="../lists/procedures.html">Procedures</a></li> - - - + + + <li><a href="../program/preconvert.html">Program</a></li> - + </ul> </li> + <li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> + <li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> @@ -125,17 +125,21 @@ <li><i class="fa fa-list-ol"></i> <a data-toggle="tooltip" - data-placement="bottom" data-html="true" - title="60.7% of total for procedures.">34 statements</a> + data-placement="bottom" data-html="true" + title=" 3.4% of total for procedures.">35 statements</a> </li> - <li><i class="fa fa-code"></i><a href="../src/preconvert.f90"> Source File</a></li> + + <li><i class="fa fa-code"></i><a href="../src/preconvert_new.f90"> Source File</a></li> + </ul> <ol class="breadcrumb in-well text-right"> - <li><a href='../sourcefile/preconvert.f90.html'>preconvert.f90</a></li> + + <li><a href='../sourcefile/preconvert_new.f90.html'>preconvert_new.f90</a></li> + <li class="active">IA</li> </ol> @@ -155,6 +159,8 @@ <div id="sidebar"> +<h3>Contents</h3> + @@ -176,24 +182,10 @@ - <hr> - - -<div class="panel panel-default"> - <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#allprocs-0">All Procedures</a></h3></div> - <div id="allprocs-0" class="panel-collapse collapse"> - <div class="list-group"> - - <a class="list-group-item" href="../proc/ia.html">IA</a> - - <a class="list-group-item" href="../proc/statis.html">STATIS</a> - - </div> - </div> -</div> +<em>None</em> -</div> +</div> </div> @@ -202,13 +194,15 @@ function IA(FIELD1, NI, NJ, NK, G) - + </h2> + <p>Calculate something that is roughly log10( maxval(field1)/g ) [PS] </p> + <h3>Arguments</h3> @@ -228,8 +222,8 @@ function IA(FIELD1, NI, NJ, NK, G) <tr> - <td><span class="anchor" id="variable-field1"></span>real</td> - <td></td> + <td><span class="anchor" id="variable-field1"></span>real,</td> + <td>intent(in)</td> <td></td> <td></td><td>::</td> @@ -243,8 +237,8 @@ function IA(FIELD1, NI, NJ, NK, G) <tr> - <td><span class="anchor" id="variable-ni"></span>integer</td> - <td></td> + <td><span class="anchor" id="variable-ni"></span>integer,</td> + <td>intent(in)</td> <td></td> <td></td><td>::</td> @@ -258,8 +252,8 @@ function IA(FIELD1, NI, NJ, NK, G) <tr> - <td><span class="anchor" id="variable-nj"></span>integer</td> - <td></td> + <td><span class="anchor" id="variable-nj"></span>integer,</td> + <td>intent(in)</td> <td></td> <td></td><td>::</td> @@ -273,8 +267,8 @@ function IA(FIELD1, NI, NJ, NK, G) <tr> - <td><span class="anchor" id="variable-nk"></span>integer</td> - <td></td> + <td><span class="anchor" id="variable-nk"></span>integer,</td> + <td>intent(in)</td> <td></td> <td></td><td>::</td> @@ -307,16 +301,20 @@ function IA(FIELD1, NI, NJ, NK, G) - <h3>Return Value <small><span class="anchor" id="variable-ia"></span>integer + <h3>Return Value <small><span class="anchor" id="variable-ia"></span>integer </small></h3> + <br> <section class="visible-xs visible-sm hidden-md"> +<h3>Contents</h3> + + @@ -336,6 +334,8 @@ function IA(FIELD1, NI, NJ, NK, G) + +<em>None</em> </section> @@ -363,32 +363,14 @@ function IA(FIELD1, NI, NJ, NK, G) </div> </div> - <section class="visible-xs visible-sm hidden-md"> - <hr> - - -<div class="panel panel-default"> - <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#allprocs-1">All Procedures</a></h3></div> - <div id="allprocs-1" class="panel-collapse collapse"> - <div class="list-group"> - - <a class="list-group-item" href="../proc/ia.html">IA</a> - - <a class="list-group-item" href="../proc/statis.html">STATIS</a> - - </div> - </div> -</div> - - - </section> <hr> </div> <!-- /container --> <footer> <div class="container"> <div class="row"> - <div class="col-xs-6 col-md-4"><p>© 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> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by @@ -396,7 +378,7 @@ function IA(FIELD1, NI, NJ, NK, G) </p> </div> - <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> + <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<sup>1</sup></p></div> </div> <br> </div> <!-- /container --> @@ -419,12 +401,17 @@ function IA(FIELD1, NI, NJ, NK, G) MathJax.Hub.Config({ TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, jax: ['input/TeX','input/MathML','output/HTML-CSS'], - extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'], - 'HTML-CSS': { - styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: '#000000 ! important'} } - } + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] }); </script> - <!-- <script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> --> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="../tipuesearch/tipuesearch_content.js"></script> + <script src="../tipuesearch/tipuesearch_set.js"></script> + <script src="../tipuesearch/tipuesearch.js"></script> + + </body> </html> \ No newline at end of file diff --git a/Documentation/FORD/V6/Doc/proc/legtr.html b/Documentation/FORD/V6/Doc/proc/legtr.html new file mode 100644 index 0000000000000000000000000000000000000000..4d60610fb5fd7cebead9741632d051dd2340c5e3 --- /dev/null +++ b/Documentation/FORD/V6/Doc/proc/legtr.html @@ -0,0 +1,410 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > + <link rel="icon" href="../favicon.png"> + + <title>LEGTR – Flex_extract: Calculation of etadot</title> + + <link href="../css/bootstrap.min.css" rel="stylesheet"> + <link href="../css/pygments.css" rel="stylesheet"> + <link href="../css/font-awesome.min.css" rel="stylesheet"> + <link href="../css/local.css" rel="stylesheet"> + + <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> + + + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> + <![endif]--> + + <script src="../js/jquery-2.1.3.min.js"></script> + <script src="../js/svg-pan-zoom.min.js"></script> + + </head> + + <body> + + <!-- Fixed navbar --> + <nav class="navbar navbar-inverse navbar-fixed-top"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + </div> + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> + <a href="#" class="dropdown-toggle" + data-toggle="dropdown" role="button" + aria-haspopup="true" + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + + + <li><a href="../lists/files.html">Source Files</a></li> + + + + <li><a href="../lists/modules.html">Modules</a></li> + + + + <li><a href="../lists/procedures.html">Procedures</a></li> + + + + <li><a href="../program/preconvert.html">Program</a></li> + + </ul> + </li> + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> + + </ul> + + <form action="../search.html" class="navbar-form navbar-right" role="search"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> + </div> +<!-- + <button type="submit" class="btn btn-default">Submit</button> +--> + </form> + + </div><!--/.nav-collapse --> + </div> + </nav> + + <div class="container"> + + + <div class="row"> + <h1>LEGTR + <small>Subroutine</small> + + </h1> + +<div class="row"> + <div class="col-lg-12"> +<div class="well well-sm"> + <ul class="list-inline" style="margin-bottom:0px;display:inline"> + + + + + + + <li><i class="fa fa-list-ol"></i> + <a data-toggle="tooltip" + data-placement="bottom" data-html="true" + title=" 2.4% of total for procedures.">24 statements</a> + </li> + + + + <li><i class="fa fa-code"></i><a href="../src/phgrreal.f90"> Source File</a></li> + + + </ul> + <ol class="breadcrumb in-well text-right"> + + + <li><a href='../sourcefile/phgrreal.f90.html'>phgrreal.f90</a></li> + + <li><a href='../module/phtogr.html'>PHTOGR</a></li> + + + <li class="active">LEGTR</li> + </ol> +</div> +</div> +</div> +<script> + $(function () { + $('[data-toggle="tooltip"]').tooltip() + }) +</script> + + </div> + + <div class="row"> + <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg"> + +<div id="sidebar"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + +</div> + + </div> + + <div class="col-md-9" id='text'> + <h2> +public subroutine LEGTR(CXMN, CXM, Z, MNAUF, MAUF) + + + +</h2> + + + + + + <p>DIESE ROUTINE BERECHNET DIE FOURIERKOEFFIZIENTEN CXM</p> + + + <h3>Arguments</h3> + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" id="variable-cxmn%7E10"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>CXMN</strong>(0:(MNAUF+1)*(MNAUF+2)-1)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-cxm%7E3"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>CXM</strong>(0:MAXAUF-1)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-z%7E9"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>Z</strong>(0:((MNAUF+3)*(MNAUF+4))/2)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mnauf%7E10"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MNAUF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mauf%7E4"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAUF</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + + + <br> + + <section class="visible-xs visible-sm hidden-md"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + + </section> + <br class="visible-xs visible-sm hidden-md"> + + + + + + + + + + + + + + + + + + + + + </div> + </div> + + + <hr> + </div> <!-- /container --> + <footer> + <div class="container"> + <div class="row"> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> + <div class="col-xs-6 col-md-4 col-md-push-4"> + <p class="text-right"> + Documentation generated by + <a href="https://github.com/cmacmackin/ford">FORD</a> + + </p> + </div> + <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<sup>1</sup></p></div> + </div> + <br> + </div> <!-- /container --> + </footer> + + <!-- Bootstrap core JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> +<!-- + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> +--> + <script src="../js/bootstrap.min.js"></script> + <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> + <script src="../js/ie10-viewport-bug-workaround.js"></script> + + <!-- MathJax JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> + <script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, + jax: ['input/TeX','input/MathML','output/HTML-CSS'], + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] + }); + </script> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="../tipuesearch/tipuesearch_content.js"></script> + <script src="../tipuesearch/tipuesearch_set.js"></script> + <script src="../tipuesearch/tipuesearch.js"></script> + + + </body> +</html> \ No newline at end of file diff --git a/Documentation/FORD/V6/Doc/proc/lgtr213.html b/Documentation/FORD/V6/Doc/proc/lgtr213.html new file mode 100644 index 0000000000000000000000000000000000000000..0936a39889c0d84f1d6a455b03a3a8dffac2c945 --- /dev/null +++ b/Documentation/FORD/V6/Doc/proc/lgtr213.html @@ -0,0 +1,441 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > + <link rel="icon" href="../favicon.png"> + + <title>LGTR213 – Flex_extract: Calculation of etadot</title> + + <link href="../css/bootstrap.min.css" rel="stylesheet"> + <link href="../css/pygments.css" rel="stylesheet"> + <link href="../css/font-awesome.min.css" rel="stylesheet"> + <link href="../css/local.css" rel="stylesheet"> + + <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> + + + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> + <![endif]--> + + <script src="../js/jquery-2.1.3.min.js"></script> + <script src="../js/svg-pan-zoom.min.js"></script> + + </head> + + <body> + + <!-- Fixed navbar --> + <nav class="navbar navbar-inverse navbar-fixed-top"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + </div> + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> + <a href="#" class="dropdown-toggle" + data-toggle="dropdown" role="button" + aria-haspopup="true" + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + + + <li><a href="../lists/files.html">Source Files</a></li> + + + + <li><a href="../lists/modules.html">Modules</a></li> + + + + <li><a href="../lists/procedures.html">Procedures</a></li> + + + + <li><a href="../program/preconvert.html">Program</a></li> + + </ul> + </li> + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> + + </ul> + + <form action="../search.html" class="navbar-form navbar-right" role="search"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> + </div> +<!-- + <button type="submit" class="btn btn-default">Submit</button> +--> + </form> + + </div><!--/.nav-collapse --> + </div> + </nav> + + <div class="container"> + + + <div class="row"> + <h1>LGTR213 + <small>Subroutine</small> + + </h1> + +<div class="row"> + <div class="col-lg-12"> +<div class="well well-sm"> + <ul class="list-inline" style="margin-bottom:0px;display:inline"> + + + + + + + <li><i class="fa fa-list-ol"></i> + <a data-toggle="tooltip" + data-placement="bottom" data-html="true" + title=" 4.1% of total for procedures.">42 statements</a> + </li> + + + + <li><i class="fa fa-code"></i><a href="../src/grphreal.f90"> Source File</a></li> + + + </ul> + <ol class="breadcrumb in-well text-right"> + + + <li><a href='../sourcefile/grphreal.f90.html'>grphreal.f90</a></li> + + <li><a href='../module/grtoph.html'>GRTOPH</a></li> + + + <li class="active">LGTR213</li> + </ol> +</div> +</div> +</div> +<script> + $(function () { + $('[data-toggle="tooltip"]').tooltip() + }) +</script> + + </div> + + <div class="row"> + <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg"> + +<div id="sidebar"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + +</div> + + </div> + + <div class="col-md-9" id='text'> + <h2> +public subroutine LGTR213(CXMN, CXM, Z, W, MLAT, MNAUF, MAXB) + + + +</h2> + + + + + + <div class="codehilite"><pre><span></span> DIESE ROUTINE BERECHNET DIE KFFKs CXMN +</pre></div> + + + <h3>Arguments</h3> + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" id="variable-cxmn%7E4"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>CXMN</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-cxm"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>CXM</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-z%7E3"></span>real(kind=8)</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>Z</strong>(MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-w%7E3"></span>real(kind=8)</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>W</strong>(MAXB)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mlat%7E3"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MLAT</strong>(MAXB)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mnauf%7E3"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MNAUF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-maxb%7E4"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAXB</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + + + <br> + + <section class="visible-xs visible-sm hidden-md"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + + </section> + <br class="visible-xs visible-sm hidden-md"> + + + + + + + + + + + + + + + + + + + + + </div> + </div> + + + <hr> + </div> <!-- /container --> + <footer> + <div class="container"> + <div class="row"> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> + <div class="col-xs-6 col-md-4 col-md-push-4"> + <p class="text-right"> + Documentation generated by + <a href="https://github.com/cmacmackin/ford">FORD</a> + + </p> + </div> + <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<sup>1</sup></p></div> + </div> + <br> + </div> <!-- /container --> + </footer> + + <!-- Bootstrap core JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> +<!-- + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> +--> + <script src="../js/bootstrap.min.js"></script> + <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> + <script src="../js/ie10-viewport-bug-workaround.js"></script> + + <!-- MathJax JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> + <script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, + jax: ['input/TeX','input/MathML','output/HTML-CSS'], + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] + }); + </script> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="../tipuesearch/tipuesearch_content.js"></script> + <script src="../tipuesearch/tipuesearch_set.js"></script> + <script src="../tipuesearch/tipuesearch.js"></script> + + + </body> +</html> \ No newline at end of file diff --git a/Documentation/FORD/V6/Doc/proc/omega.html b/Documentation/FORD/V6/Doc/proc/omega.html new file mode 100644 index 0000000000000000000000000000000000000000..682d1cf078c97147ec90b83aac13d038292e2e74 --- /dev/null +++ b/Documentation/FORD/V6/Doc/proc/omega.html @@ -0,0 +1,545 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > + <link rel="icon" href="../favicon.png"> + + <title>OMEGA – Flex_extract: Calculation of etadot</title> + + <link href="../css/bootstrap.min.css" rel="stylesheet"> + <link href="../css/pygments.css" rel="stylesheet"> + <link href="../css/font-awesome.min.css" rel="stylesheet"> + <link href="../css/local.css" rel="stylesheet"> + + <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> + + + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> + <![endif]--> + + <script src="../js/jquery-2.1.3.min.js"></script> + <script src="../js/svg-pan-zoom.min.js"></script> + + </head> + + <body> + + <!-- Fixed navbar --> + <nav class="navbar navbar-inverse navbar-fixed-top"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + </div> + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> + <a href="#" class="dropdown-toggle" + data-toggle="dropdown" role="button" + aria-haspopup="true" + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + + + <li><a href="../lists/files.html">Source Files</a></li> + + + + <li><a href="../lists/modules.html">Modules</a></li> + + + + <li><a href="../lists/procedures.html">Procedures</a></li> + + + + <li><a href="../program/preconvert.html">Program</a></li> + + </ul> + </li> + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> + + </ul> + + <form action="../search.html" class="navbar-form navbar-right" role="search"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> + </div> +<!-- + <button type="submit" class="btn btn-default">Submit</button> +--> + </form> + + </div><!--/.nav-collapse --> + </div> + </nav> + + <div class="container"> + + + <div class="row"> + <h1>OMEGA + <small>Subroutine</small> + + </h1> + +<div class="row"> + <div class="col-lg-12"> +<div class="well well-sm"> + <ul class="list-inline" style="margin-bottom:0px;display:inline"> + + + + + + + <li><i class="fa fa-list-ol"></i> + <a data-toggle="tooltip" + data-placement="bottom" data-html="true" + title=" 3.9% of total for procedures.">40 statements</a> + </li> + + + + <li><i class="fa fa-code"></i><a href="../src/ftrafo.f90"> Source File</a></li> + + + </ul> + <ol class="breadcrumb in-well text-right"> + + + <li><a href='../sourcefile/ftrafo.f90.html'>ftrafo.f90</a></li> + + <li><a href='../module/ftrafo.html'>FTRAFO</a></li> + + + <li class="active">OMEGA</li> + </ol> +</div> +</div> +</div> +<script> + $(function () { + $('[data-toggle="tooltip"]').tooltip() + }) +</script> + + </div> + + <div class="row"> + <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg"> + +<div id="sidebar"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + +</div> + + </div> + + <div class="col-md-9" id='text'> + <h2> +public subroutine OMEGA(PS, DPSDL, DPSDM, DIV, U, V, BREITE, E, MLAT, A, B, NGI, NGJ, MKK) + + + +</h2> + + + + + + <p>calculates $\omega$ in the hybrid ($\eta$-) coordinate system</p> + + + <h3>Arguments</h3> + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" id="variable-ps%7E2"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>PS</strong>(NGI)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-dpsdl%7E2"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>DPSDL</strong>(NGI)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-dpsdm%7E2"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>DPSDM</strong>(NGI)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-div%7E2"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>DIV</strong>(NGI,MKK)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-u%7E2"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>U</strong>(NGI,MKK)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-v%7E2"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>V</strong>(NGI,MKK)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-breite%7E2"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>BREITE</strong>(NGJ)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-e"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>E</strong>(NGI,MKK)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mlat%7E10"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MLAT</strong>(NGJ)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-a%7E3"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>A</strong>(MKK+1)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-b%7E3"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>B</strong>(MKK+1)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-ngi"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>NGI</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-ngj"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>NGJ</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mkk"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MKK</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + + + <br> + + <section class="visible-xs visible-sm hidden-md"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + + </section> + <br class="visible-xs visible-sm hidden-md"> + + + + + + + + + + + + + + + + + + + + + </div> + </div> + + + <hr> + </div> <!-- /container --> + <footer> + <div class="container"> + <div class="row"> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> + <div class="col-xs-6 col-md-4 col-md-push-4"> + <p class="text-right"> + Documentation generated by + <a href="https://github.com/cmacmackin/ford">FORD</a> + + </p> + </div> + <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<sup>1</sup></p></div> + </div> + <br> + </div> <!-- /container --> + </footer> + + <!-- Bootstrap core JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> +<!-- + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> +--> + <script src="../js/bootstrap.min.js"></script> + <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> + <script src="../js/ie10-viewport-bug-workaround.js"></script> + + <!-- MathJax JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> + <script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, + jax: ['input/TeX','input/MathML','output/HTML-CSS'], + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] + }); + </script> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="../tipuesearch/tipuesearch_content.js"></script> + <script src="../tipuesearch/tipuesearch_set.js"></script> + <script src="../tipuesearch/tipuesearch.js"></script> + + + </body> +</html> \ No newline at end of file diff --git a/Documentation/FORD/V6/Doc/proc/phgcut.html b/Documentation/FORD/V6/Doc/proc/phgcut.html new file mode 100644 index 0000000000000000000000000000000000000000..15738d502e13587808fd32c3fbb9fe4df613f747 --- /dev/null +++ b/Documentation/FORD/V6/Doc/proc/phgcut.html @@ -0,0 +1,745 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > + <link rel="icon" href="../favicon.png"> + + <title>PHGCUT – Flex_extract: Calculation of etadot</title> + + <link href="../css/bootstrap.min.css" rel="stylesheet"> + <link href="../css/pygments.css" rel="stylesheet"> + <link href="../css/font-awesome.min.css" rel="stylesheet"> + <link href="../css/local.css" rel="stylesheet"> + + <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> + + + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> + <![endif]--> + + <script src="../js/jquery-2.1.3.min.js"></script> + <script src="../js/svg-pan-zoom.min.js"></script> + + </head> + + <body> + + <!-- Fixed navbar --> + <nav class="navbar navbar-inverse navbar-fixed-top"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + </div> + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> + <a href="#" class="dropdown-toggle" + data-toggle="dropdown" role="button" + aria-haspopup="true" + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + + + <li><a href="../lists/files.html">Source Files</a></li> + + + + <li><a href="../lists/modules.html">Modules</a></li> + + + + <li><a href="../lists/procedures.html">Procedures</a></li> + + + + <li><a href="../program/preconvert.html">Program</a></li> + + </ul> + </li> + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> + + </ul> + + <form action="../search.html" class="navbar-form navbar-right" role="search"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> + </div> +<!-- + <button type="submit" class="btn btn-default">Submit</button> +--> + </form> + + </div><!--/.nav-collapse --> + </div> + </nav> + + <div class="container"> + + + <div class="row"> + <h1>PHGCUT + <small>Subroutine</small> + + </h1> + +<div class="row"> + <div class="col-lg-12"> +<div class="well well-sm"> + <ul class="list-inline" style="margin-bottom:0px;display:inline"> + + + + + + + <li><i class="fa fa-list-ol"></i> + <a data-toggle="tooltip" + data-placement="bottom" data-html="true" + title=" 3.2% of total for procedures.">33 statements</a> + </li> + + + + <li><i class="fa fa-code"></i><a href="../src/phgrreal.f90"> Source File</a></li> + + + </ul> + <ol class="breadcrumb in-well text-right"> + + + <li><a href='../sourcefile/phgrreal.f90.html'>phgrreal.f90</a></li> + + <li><a href='../module/phtogr.html'>PHTOGR</a></li> + + + <li class="active">PHGCUT</li> + </ol> +</div> +</div> +</div> +<script> + $(function () { + $('[data-toggle="tooltip"]').tooltip() + }) +</script> + + </div> + + <div class="row"> + <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg"> + +<div id="sidebar"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + +</div> + + </div> + + <div class="col-md-9" id='text'> + <h2> +public subroutine PHGCUT(CXMN, FELD, WSAVE, IFAX, Z, MNAUF, MMAX, MAUF, MANF, MAXL, MAXB, MLEVEL) + + + +</h2> + + + + + + <p>DIE ROUTINE FUEHRT EINE TRANSFORMATION EINER + FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN + RAUM AUF KUGELKOORDINATEN DURCH. Es kann ein Teilausschnitt + Der Erde angegeben werden. Diese Routine ist langsamer als phgrph</p> + + + <h3>Arguments</h3> + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" id="variable-cxmn%7E7"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>CXMN</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-feld%7E6"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>FELD</strong>(MAXL,MAXB,MLEVEL)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-wsave%7E5"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>WSAVE</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-ifax%7E6"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>IFAX</strong>(10)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-z%7E6"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>Z</strong>(0:((MMAX+3)*(MMAX+4))/2,MAXB)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mnauf%7E7"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MNAUF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mmax"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MMAX</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mauf"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAUF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-manf"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MANF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-maxl%7E7"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAXL</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-maxb%7E7"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAXB</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mlevel%7E6"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MLEVEL</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + <br> + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Calls</h3> + </div> + <div class="panel-body"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: proc~~phgcut~~CallsGraph Pages: 1 --> +<svg id="procphgcutCallsGraph" width="362pt" height="74pt" + viewBox="0.00 0.00 362.00 74.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="proc~~phgcut~~CallsGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 70)"> +<title>proc~~phgcut~~CallsGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-70 358,-70 358,4 -4,4"/> +<!-- proc~phgcut --> +<g id="proc~~phgcut~~CallsGraph_node1" class="node"><title>proc~phgcut</title> +<polygon fill="none" stroke="black" points="57,-45 0,-45 0,-21 57,-21 57,-45"/> +<text text-anchor="middle" x="28.5" y="-30.6" font-family="Helvetica,sans-Serif" font-size="10.50">PHGCUT</text> +</g> +<!-- proc~phsymcut --> +<g id="proc~~phgcut~~CallsGraph_node2" class="node"><title>proc~phsymcut</title> +<g id="a_proc~~phgcut~~CallsGraph_node2"><a xlink:href=".././proc/phsymcut.html" xlink:title="PHSYMCUT"> +<polygon fill="#d9534f" stroke="#d9534f" points="164,-66 93,-66 93,-42 164,-42 164,-66"/> +<text text-anchor="middle" x="128.5" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHSYMCUT</text> +</a> +</g> +</g> +<!-- proc~phgcut->proc~phsymcut --> +<g id="proc~~phgcut~~CallsGraph_edge1" class="edge"><title>proc~phgcut->proc~phsymcut</title> +<path fill="none" stroke="#000000" d="M57.0593,-38.9056C65.1213,-40.6331 74.148,-42.5674 82.979,-44.4598"/> +<polygon fill="#000000" stroke="#000000" points="82.2931,-47.8922 92.8045,-46.5652 83.7598,-41.0476 82.2931,-47.8922"/> +</g> +<!-- proc~phgpns --> +<g id="proc~~phgcut~~CallsGraph_node3" class="node"><title>proc~phgpns</title> +<g id="a_proc~~phgcut~~CallsGraph_node3"><a xlink:href=".././proc/phgpns.html" xlink:title="PHGPNS"> +<polygon fill="#d9534f" stroke="#d9534f" points="156.5,-24 100.5,-24 100.5,-0 156.5,-0 156.5,-24"/> +<text text-anchor="middle" x="128.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGPNS</text> +</a> +</g> +</g> +<!-- proc~phgcut->proc~phgpns --> +<g id="proc~~phgcut~~CallsGraph_edge2" class="edge"><title>proc~phgcut->proc~phgpns</title> +<path fill="none" stroke="#000000" d="M57.0593,-27.0944C67.4619,-24.8653 79.4706,-22.292 90.5926,-19.9087"/> +<polygon fill="#000000" stroke="#000000" points="91.4414,-23.3064 100.486,-17.7887 89.9746,-16.4618 91.4414,-23.3064"/> +</g> +<!-- proc~rfourtr --> +<g id="proc~~phgcut~~CallsGraph_node4" class="node"><title>proc~rfourtr</title> +<g id="a_proc~~phgcut~~CallsGraph_node4"><a xlink:href=".././proc/rfourtr.html" xlink:title="RFOURTR"> +<polygon fill="#d9534f" stroke="#d9534f" points="264,-45 200,-45 200,-21 264,-21 264,-45"/> +<text text-anchor="middle" x="232" y="-30.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">RFOURTR</text> +</a> +</g> +</g> +<!-- proc~phsymcut->proc~rfourtr --> +<g id="proc~~phgcut~~CallsGraph_edge3" class="edge"><title>proc~phsymcut->proc~rfourtr</title> +<path fill="none" stroke="#000000" d="M164.147,-46.8317C172.485,-45.1066 181.47,-43.2477 190.064,-41.4695"/> +<polygon fill="#000000" stroke="#000000" points="190.829,-44.8856 199.912,-39.432 189.41,-38.0307 190.829,-44.8856"/> +</g> +<!-- proc~phgpns->proc~rfourtr --> +<g id="proc~~phgcut~~CallsGraph_edge4" class="edge"><title>proc~phgpns->proc~rfourtr</title> +<path fill="none" stroke="#000000" d="M156.7,-17.6276C166.861,-19.7298 178.64,-22.1668 189.783,-24.4723"/> +<polygon fill="#000000" stroke="#000000" points="189.271,-27.9404 199.773,-26.5391 190.689,-21.0856 189.271,-27.9404"/> +</g> +<!-- fft99 --> +<g id="proc~~phgcut~~CallsGraph_node5" class="node"><title>fft99</title> +<polygon fill="#777777" stroke="#777777" points="354,-45 300,-45 300,-21 354,-21 354,-45"/> +<text text-anchor="middle" x="327" y="-30.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">fft99</text> +</g> +<!-- proc~rfourtr->fft99 --> +<g id="proc~~phgcut~~CallsGraph_edge5" class="edge"><title>proc~rfourtr->fft99</title> +<path fill="none" stroke="#000000" d="M264.226,-33C272.48,-33 281.455,-33 289.941,-33"/> +<polygon fill="#000000" stroke="#000000" points="289.969,-36.5001 299.969,-33 289.969,-29.5001 289.969,-36.5001"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="560pt" height="32pt" + viewBox="0.00 0.00 559.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 555.5,-28 555.5,4 -4,4"/> +<!-- Subroutine --> +<g id="node1" class="node"><title>Subroutine</title> +<polygon fill="#d9534f" stroke="#d9534f" points="64,-24 0,-24 0,-0 64,-0 64,-24"/> +<text text-anchor="middle" x="32" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> +</g> +<!-- Function --> +<g id="node2" class="node"><title>Function</title> +<polygon fill="#d94e8f" stroke="#d94e8f" points="136,-24 82,-24 82,-0 136,-0 136,-24"/> +<text text-anchor="middle" x="109" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> +</g> +<!-- Interface --> +<g id="node3" class="node"><title>Interface</title> +<polygon fill="#a7506f" stroke="#a7506f" points="209.5,-24 154.5,-24 154.5,-0 209.5,-0 209.5,-24"/> +<text text-anchor="middle" x="182" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Interface</text> +</g> +<!-- Unknown Procedure Type --> +<g id="node4" class="node"><title>Unknown Procedure Type</title> +<polygon fill="#777777" stroke="#777777" points="364,-24 228,-24 228,-0 364,-0 364,-24"/> +<text text-anchor="middle" x="296" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Unknown Procedure Type</text> +</g> +<!-- Program --> +<g id="node5" class="node"><title>Program</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="436,-24 382,-24 382,-0 436,-0 436,-24"/> +<text text-anchor="middle" x="409" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> +</g> +<!-- This Page's Entity --> +<g id="node6" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="551.5,-24 454.5,-24 454.5,-0 551.5,-0 551.5,-24"/> +<text text-anchor="middle" x="503" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a procedure to one which it calls. Dashed + arrows point from an interface to procedures which implement that interface. + This could include the module procedures in a generic interface or the + implementation in a submodule of an interface in a parent module. + </p> + </div></div></div></div> + </div> + </div> + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Called by</h3> + </div> + <div class="panel-body"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: proc~~phgcut~~CalledByGraph Pages: 1 --> +<svg id="procphgcutCalledByGraph" width="186pt" height="32pt" + viewBox="0.00 0.00 186.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="proc~~phgcut~~CalledByGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>proc~~phgcut~~CalledByGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 182,-28 182,4 -4,4"/> +<!-- proc~phgcut --> +<g id="proc~~phgcut~~CalledByGraph_node1" class="node"><title>proc~phgcut</title> +<polygon fill="none" stroke="black" points="178,-24 121,-24 121,-0 178,-0 178,-24"/> +<text text-anchor="middle" x="149.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">PHGCUT</text> +</g> +<!-- program~preconvert --> +<g id="proc~~phgcut~~CalledByGraph_node2" class="node"><title>program~preconvert</title> +<g id="a_proc~~phgcut~~CalledByGraph_node2"><a xlink:href=".././program/preconvert.html" xlink:title="PRECONVERT"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="85,-24 0,-24 0,-0 85,-0 85,-24"/> +<text text-anchor="middle" x="42.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> +</a> +</g> +</g> +<!-- program~preconvert->proc~phgcut --> +<g id="proc~~phgcut~~CalledByGraph_edge1" class="edge"><title>program~preconvert->proc~phgcut</title> +<path fill="none" stroke="#000000" d="M85.3005,-12C93.6645,-12 102.407,-12 110.629,-12"/> +<polygon fill="#000000" stroke="#000000" points="110.698,-15.5001 120.698,-12 110.698,-8.5001 110.698,-15.5001"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="560pt" height="32pt" + viewBox="0.00 0.00 559.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 555.5,-28 555.5,4 -4,4"/> +<!-- Subroutine --> +<g id="node1" class="node"><title>Subroutine</title> +<polygon fill="#d9534f" stroke="#d9534f" points="64,-24 0,-24 0,-0 64,-0 64,-24"/> +<text text-anchor="middle" x="32" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> +</g> +<!-- Function --> +<g id="node2" class="node"><title>Function</title> +<polygon fill="#d94e8f" stroke="#d94e8f" points="136,-24 82,-24 82,-0 136,-0 136,-24"/> +<text text-anchor="middle" x="109" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> +</g> +<!-- Interface --> +<g id="node3" class="node"><title>Interface</title> +<polygon fill="#a7506f" stroke="#a7506f" points="209.5,-24 154.5,-24 154.5,-0 209.5,-0 209.5,-24"/> +<text text-anchor="middle" x="182" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Interface</text> +</g> +<!-- Unknown Procedure Type --> +<g id="node4" class="node"><title>Unknown Procedure Type</title> +<polygon fill="#777777" stroke="#777777" points="364,-24 228,-24 228,-0 364,-0 364,-24"/> +<text text-anchor="middle" x="296" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Unknown Procedure Type</text> +</g> +<!-- Program --> +<g id="node5" class="node"><title>Program</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="436,-24 382,-24 382,-0 436,-0 436,-24"/> +<text text-anchor="middle" x="409" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> +</g> +<!-- This Page's Entity --> +<g id="node6" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="551.5,-24 454.5,-24 454.5,-0 551.5,-0 551.5,-24"/> +<text text-anchor="middle" x="503" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a procedure to one which it calls. Dashed + arrows point from an interface to procedures which implement that interface. + This could include the module procedures in a generic interface or the + implementation in a submodule of an interface in a parent module. + </p> + </div></div></div></div> + </div> + </div> + + <br> + + <section class="visible-xs visible-sm hidden-md"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + + </section> + <br class="visible-xs visible-sm hidden-md"> + + + + + + + + + + + + + + + + + + + + + </div> + </div> + + + <hr> + </div> <!-- /container --> + <footer> + <div class="container"> + <div class="row"> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> + <div class="col-xs-6 col-md-4 col-md-push-4"> + <p class="text-right"> + Documentation generated by + <a href="https://github.com/cmacmackin/ford">FORD</a> + + </p> + </div> + <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<sup>1</sup></p></div> + </div> + <br> + </div> <!-- /container --> + </footer> + + <!-- Bootstrap core JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> +<!-- + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> +--> + <script src="../js/bootstrap.min.js"></script> + <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> + <script src="../js/ie10-viewport-bug-workaround.js"></script> + + <!-- MathJax JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> + <script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, + jax: ['input/TeX','input/MathML','output/HTML-CSS'], + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] + }); + </script> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="../tipuesearch/tipuesearch_content.js"></script> + <script src="../tipuesearch/tipuesearch_set.js"></script> + <script src="../tipuesearch/tipuesearch.js"></script> + + + </body> +</html> \ No newline at end of file diff --git a/Documentation/FORD/V6/Doc/proc/phgpns.html b/Documentation/FORD/V6/Doc/proc/phgpns.html new file mode 100644 index 0000000000000000000000000000000000000000..a3c1854851c11d206887e84a45e261b7d3dbe95e --- /dev/null +++ b/Documentation/FORD/V6/Doc/proc/phgpns.html @@ -0,0 +1,722 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > + <link rel="icon" href="../favicon.png"> + + <title>PHGPNS – Flex_extract: Calculation of etadot</title> + + <link href="../css/bootstrap.min.css" rel="stylesheet"> + <link href="../css/pygments.css" rel="stylesheet"> + <link href="../css/font-awesome.min.css" rel="stylesheet"> + <link href="../css/local.css" rel="stylesheet"> + + <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> + + + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> + <![endif]--> + + <script src="../js/jquery-2.1.3.min.js"></script> + <script src="../js/svg-pan-zoom.min.js"></script> + + </head> + + <body> + + <!-- Fixed navbar --> + <nav class="navbar navbar-inverse navbar-fixed-top"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + </div> + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> + <a href="#" class="dropdown-toggle" + data-toggle="dropdown" role="button" + aria-haspopup="true" + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + + + <li><a href="../lists/files.html">Source Files</a></li> + + + + <li><a href="../lists/modules.html">Modules</a></li> + + + + <li><a href="../lists/procedures.html">Procedures</a></li> + + + + <li><a href="../program/preconvert.html">Program</a></li> + + </ul> + </li> + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> + + </ul> + + <form action="../search.html" class="navbar-form navbar-right" role="search"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> + </div> +<!-- + <button type="submit" class="btn btn-default">Submit</button> +--> + </form> + + </div><!--/.nav-collapse --> + </div> + </nav> + + <div class="container"> + + + <div class="row"> + <h1>PHGPNS + <small>Subroutine</small> + + </h1> + +<div class="row"> + <div class="col-lg-12"> +<div class="well well-sm"> + <ul class="list-inline" style="margin-bottom:0px;display:inline"> + + + + + + + <li><i class="fa fa-list-ol"></i> + <a data-toggle="tooltip" + data-placement="bottom" data-html="true" + title=" 2.2% of total for procedures.">22 statements</a> + </li> + + + + <li><i class="fa fa-code"></i><a href="../src/phgrreal.f90"> Source File</a></li> + + + </ul> + <ol class="breadcrumb in-well text-right"> + + + <li><a href='../sourcefile/phgrreal.f90.html'>phgrreal.f90</a></li> + + <li><a href='../module/phtogr.html'>PHTOGR</a></li> + + + <li class="active">PHGPNS</li> + </ol> +</div> +</div> +</div> +<script> + $(function () { + $('[data-toggle="tooltip"]').tooltip() + }) +</script> + + </div> + + <div class="row"> + <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg"> + +<div id="sidebar"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + +</div> + + </div> + + <div class="col-md-9" id='text'> + <h2> +public subroutine PHGPNS(CXMN, FELD, Z, WSAVE, IFAX, J, MNAUF, MAUF, MANF, MAXL, MAXB, MLEVEL) + + + +</h2> + + + + + + + <h3>Arguments</h3> + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" id="variable-cxmn%7E9"></span>real,</td> + <td>intent(in)</td> + <td></td> + + <td></td><td>::</td> + <td><strong>CXMN</strong>(0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-feld%7E8"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>FELD</strong>(MAXL,MAXB,MLEVEL)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-z%7E8"></span>real,</td> + <td>intent(in)</td> + <td></td> + + <td></td><td>::</td> + <td><strong>Z</strong>(0:((MNAUF+3)*(MNAUF+4))/2,MAXB)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-wsave%7E7"></span>real,</td> + <td>intent(in)</td> + <td></td> + + <td></td><td>::</td> + <td><strong>WSAVE</strong>(4*MAUF+15)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-ifax%7E8"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>IFAX</strong>(10)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-j%7E2"></span>integer,</td> + <td>intent(in)</td> + <td></td> + + <td></td><td>::</td> + <td><strong>J</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mnauf%7E9"></span>integer,</td> + <td>intent(in)</td> + <td></td> + + <td></td><td>::</td> + <td><strong>MNAUF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mauf%7E3"></span>integer,</td> + <td>intent(in)</td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAUF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-manf%7E3"></span>integer,</td> + <td>intent(in)</td> + <td></td> + + <td></td><td>::</td> + <td><strong>MANF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-maxl%7E9"></span>integer,</td> + <td>intent(in)</td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAXL</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-maxb%7E9"></span>integer,</td> + <td>intent(in)</td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAXB</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mlevel%7E8"></span>integer,</td> + <td>intent(in)</td> + <td></td> + + <td></td><td>::</td> + <td><strong>MLEVEL</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + <br> + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Calls</h3> + </div> + <div class="panel-body"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: proc~~phgpns~~CallsGraph Pages: 1 --> +<svg id="procphgpnsCallsGraph" width="254pt" height="32pt" + viewBox="0.00 0.00 254.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="proc~~phgpns~~CallsGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>proc~~phgpns~~CallsGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 250,-28 250,4 -4,4"/> +<!-- proc~phgpns --> +<g id="proc~~phgpns~~CallsGraph_node1" class="node"><title>proc~phgpns</title> +<polygon fill="none" stroke="black" points="56,-24 0,-24 0,-0 56,-0 56,-24"/> +<text text-anchor="middle" x="28" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">PHGPNS</text> +</g> +<!-- proc~rfourtr --> +<g id="proc~~phgpns~~CallsGraph_node2" class="node"><title>proc~rfourtr</title> +<g id="a_proc~~phgpns~~CallsGraph_node2"><a xlink:href=".././proc/rfourtr.html" xlink:title="RFOURTR"> +<polygon fill="#d9534f" stroke="#d9534f" points="156,-24 92,-24 92,-0 156,-0 156,-24"/> +<text text-anchor="middle" x="124" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">RFOURTR</text> +</a> +</g> +</g> +<!-- proc~phgpns->proc~rfourtr --> +<g id="proc~~phgpns~~CallsGraph_edge1" class="edge"><title>proc~phgpns->proc~rfourtr</title> +<path fill="none" stroke="#000000" d="M56.1887,-12C64.217,-12 73.1892,-12 81.8881,-12"/> +<polygon fill="#000000" stroke="#000000" points="81.9013,-15.5001 91.9013,-12 81.9012,-8.5001 81.9013,-15.5001"/> +</g> +<!-- fft99 --> +<g id="proc~~phgpns~~CallsGraph_node3" class="node"><title>fft99</title> +<polygon fill="#777777" stroke="#777777" points="246,-24 192,-24 192,-0 246,-0 246,-24"/> +<text text-anchor="middle" x="219" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">fft99</text> +</g> +<!-- proc~rfourtr->fft99 --> +<g id="proc~~phgpns~~CallsGraph_edge2" class="edge"><title>proc~rfourtr->fft99</title> +<path fill="none" stroke="#000000" d="M156.226,-12C164.48,-12 173.455,-12 181.941,-12"/> +<polygon fill="#000000" stroke="#000000" points="181.969,-15.5001 191.969,-12 181.969,-8.5001 181.969,-15.5001"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="560pt" height="32pt" + viewBox="0.00 0.00 559.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 555.5,-28 555.5,4 -4,4"/> +<!-- Subroutine --> +<g id="node1" class="node"><title>Subroutine</title> +<polygon fill="#d9534f" stroke="#d9534f" points="64,-24 0,-24 0,-0 64,-0 64,-24"/> +<text text-anchor="middle" x="32" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> +</g> +<!-- Function --> +<g id="node2" class="node"><title>Function</title> +<polygon fill="#d94e8f" stroke="#d94e8f" points="136,-24 82,-24 82,-0 136,-0 136,-24"/> +<text text-anchor="middle" x="109" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> +</g> +<!-- Interface --> +<g id="node3" class="node"><title>Interface</title> +<polygon fill="#a7506f" stroke="#a7506f" points="209.5,-24 154.5,-24 154.5,-0 209.5,-0 209.5,-24"/> +<text text-anchor="middle" x="182" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Interface</text> +</g> +<!-- Unknown Procedure Type --> +<g id="node4" class="node"><title>Unknown Procedure Type</title> +<polygon fill="#777777" stroke="#777777" points="364,-24 228,-24 228,-0 364,-0 364,-24"/> +<text text-anchor="middle" x="296" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Unknown Procedure Type</text> +</g> +<!-- Program --> +<g id="node5" class="node"><title>Program</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="436,-24 382,-24 382,-0 436,-0 436,-24"/> +<text text-anchor="middle" x="409" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> +</g> +<!-- This Page's Entity --> +<g id="node6" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="551.5,-24 454.5,-24 454.5,-0 551.5,-0 551.5,-24"/> +<text text-anchor="middle" x="503" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a procedure to one which it calls. Dashed + arrows point from an interface to procedures which implement that interface. + This could include the module procedures in a generic interface or the + implementation in a submodule of an interface in a parent module. + </p> + </div></div></div></div> + </div> + </div> + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Called by</h3> + </div> + <div class="panel-body"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: proc~~phgpns~~CalledByGraph Pages: 1 --> +<svg id="procphgpnsCalledByGraph" width="278pt" height="32pt" + viewBox="0.00 0.00 278.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="proc~~phgpns~~CalledByGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>proc~~phgpns~~CalledByGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 274,-28 274,4 -4,4"/> +<!-- proc~phgpns --> +<g id="proc~~phgpns~~CalledByGraph_node1" class="node"><title>proc~phgpns</title> +<polygon fill="none" stroke="black" points="270,-24 214,-24 214,-0 270,-0 270,-24"/> +<text text-anchor="middle" x="242" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">PHGPNS</text> +</g> +<!-- proc~phgcut --> +<g id="proc~~phgpns~~CalledByGraph_node2" class="node"><title>proc~phgcut</title> +<g id="a_proc~~phgpns~~CalledByGraph_node2"><a xlink:href=".././proc/phgcut.html" xlink:title="PHGCUT"> +<polygon fill="#d9534f" stroke="#d9534f" points="178,-24 121,-24 121,-0 178,-0 178,-24"/> +<text text-anchor="middle" x="149.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGCUT</text> +</a> +</g> +</g> +<!-- proc~phgcut->proc~phgpns --> +<g id="proc~~phgpns~~CalledByGraph_edge1" class="edge"><title>proc~phgcut->proc~phgpns</title> +<path fill="none" stroke="#000000" d="M178.145,-12C186.201,-12 195.139,-12 203.688,-12"/> +<polygon fill="#000000" stroke="#000000" points="203.836,-15.5001 213.836,-12 203.835,-8.5001 203.836,-15.5001"/> +</g> +<!-- program~preconvert --> +<g id="proc~~phgpns~~CalledByGraph_node3" class="node"><title>program~preconvert</title> +<g id="a_proc~~phgpns~~CalledByGraph_node3"><a xlink:href=".././program/preconvert.html" xlink:title="PRECONVERT"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="85,-24 0,-24 0,-0 85,-0 85,-24"/> +<text text-anchor="middle" x="42.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> +</a> +</g> +</g> +<!-- program~preconvert->proc~phgcut --> +<g id="proc~~phgpns~~CalledByGraph_edge2" class="edge"><title>program~preconvert->proc~phgcut</title> +<path fill="none" stroke="#000000" d="M85.3005,-12C93.6645,-12 102.407,-12 110.629,-12"/> +<polygon fill="#000000" stroke="#000000" points="110.698,-15.5001 120.698,-12 110.698,-8.5001 110.698,-15.5001"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="560pt" height="32pt" + viewBox="0.00 0.00 559.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 555.5,-28 555.5,4 -4,4"/> +<!-- Subroutine --> +<g id="node1" class="node"><title>Subroutine</title> +<polygon fill="#d9534f" stroke="#d9534f" points="64,-24 0,-24 0,-0 64,-0 64,-24"/> +<text text-anchor="middle" x="32" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> +</g> +<!-- Function --> +<g id="node2" class="node"><title>Function</title> +<polygon fill="#d94e8f" stroke="#d94e8f" points="136,-24 82,-24 82,-0 136,-0 136,-24"/> +<text text-anchor="middle" x="109" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> +</g> +<!-- Interface --> +<g id="node3" class="node"><title>Interface</title> +<polygon fill="#a7506f" stroke="#a7506f" points="209.5,-24 154.5,-24 154.5,-0 209.5,-0 209.5,-24"/> +<text text-anchor="middle" x="182" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Interface</text> +</g> +<!-- Unknown Procedure Type --> +<g id="node4" class="node"><title>Unknown Procedure Type</title> +<polygon fill="#777777" stroke="#777777" points="364,-24 228,-24 228,-0 364,-0 364,-24"/> +<text text-anchor="middle" x="296" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Unknown Procedure Type</text> +</g> +<!-- Program --> +<g id="node5" class="node"><title>Program</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="436,-24 382,-24 382,-0 436,-0 436,-24"/> +<text text-anchor="middle" x="409" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> +</g> +<!-- This Page's Entity --> +<g id="node6" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="551.5,-24 454.5,-24 454.5,-0 551.5,-0 551.5,-24"/> +<text text-anchor="middle" x="503" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a procedure to one which it calls. Dashed + arrows point from an interface to procedures which implement that interface. + This could include the module procedures in a generic interface or the + implementation in a submodule of an interface in a parent module. + </p> + </div></div></div></div> + </div> + </div> + + <br> + + <section class="visible-xs visible-sm hidden-md"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + + </section> + <br class="visible-xs visible-sm hidden-md"> + + + + + + + + + + + + + + + + + + + + + </div> + </div> + + + <hr> + </div> <!-- /container --> + <footer> + <div class="container"> + <div class="row"> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> + <div class="col-xs-6 col-md-4 col-md-push-4"> + <p class="text-right"> + Documentation generated by + <a href="https://github.com/cmacmackin/ford">FORD</a> + + </p> + </div> + <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<sup>1</sup></p></div> + </div> + <br> + </div> <!-- /container --> + </footer> + + <!-- Bootstrap core JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> +<!-- + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> +--> + <script src="../js/bootstrap.min.js"></script> + <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> + <script src="../js/ie10-viewport-bug-workaround.js"></script> + + <!-- MathJax JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> + <script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, + jax: ['input/TeX','input/MathML','output/HTML-CSS'], + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] + }); + </script> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="../tipuesearch/tipuesearch_content.js"></script> + <script src="../tipuesearch/tipuesearch_set.js"></script> + <script src="../tipuesearch/tipuesearch.js"></script> + + + </body> +</html> \ No newline at end of file diff --git a/Documentation/FORD/V6/Doc/proc/phgr213.html b/Documentation/FORD/V6/Doc/proc/phgr213.html new file mode 100644 index 0000000000000000000000000000000000000000..73504257d0d0ec2583608b741df86492a53f25c5 --- /dev/null +++ b/Documentation/FORD/V6/Doc/proc/phgr213.html @@ -0,0 +1,673 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > + <link rel="icon" href="../favicon.png"> + + <title>PHGR213 – Flex_extract: Calculation of etadot</title> + + <link href="../css/bootstrap.min.css" rel="stylesheet"> + <link href="../css/pygments.css" rel="stylesheet"> + <link href="../css/font-awesome.min.css" rel="stylesheet"> + <link href="../css/local.css" rel="stylesheet"> + + <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> + + + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> + <![endif]--> + + <script src="../js/jquery-2.1.3.min.js"></script> + <script src="../js/svg-pan-zoom.min.js"></script> + + </head> + + <body> + + <!-- Fixed navbar --> + <nav class="navbar navbar-inverse navbar-fixed-top"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + </div> + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> + <a href="#" class="dropdown-toggle" + data-toggle="dropdown" role="button" + aria-haspopup="true" + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + + + <li><a href="../lists/files.html">Source Files</a></li> + + + + <li><a href="../lists/modules.html">Modules</a></li> + + + + <li><a href="../lists/procedures.html">Procedures</a></li> + + + + <li><a href="../program/preconvert.html">Program</a></li> + + </ul> + </li> + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> + + </ul> + + <form action="../search.html" class="navbar-form navbar-right" role="search"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> + </div> +<!-- + <button type="submit" class="btn btn-default">Submit</button> +--> + </form> + + </div><!--/.nav-collapse --> + </div> + </nav> + + <div class="container"> + + + <div class="row"> + <h1>PHGR213 + <small>Subroutine</small> + + </h1> + +<div class="row"> + <div class="col-lg-12"> +<div class="well well-sm"> + <ul class="list-inline" style="margin-bottom:0px;display:inline"> + + + + + + + <li><i class="fa fa-list-ol"></i> + <a data-toggle="tooltip" + data-placement="bottom" data-html="true" + title=" 1.9% of total for procedures.">19 statements</a> + </li> + + + + <li><i class="fa fa-code"></i><a href="../src/phgrreal.f90"> Source File</a></li> + + + </ul> + <ol class="breadcrumb in-well text-right"> + + + <li><a href='../sourcefile/phgrreal.f90.html'>phgrreal.f90</a></li> + + <li><a href='../module/phtogr.html'>PHTOGR</a></li> + + + <li class="active">PHGR213</li> + </ol> +</div> +</div> +</div> +<script> + $(function () { + $('[data-toggle="tooltip"]').tooltip() + }) +</script> + + </div> + + <div class="row"> + <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg"> + +<div id="sidebar"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + +</div> + + </div> + + <div class="col-md-9" id='text'> + <h2> +public subroutine PHGR213(CXMN, FELD, WSAVE, IFAX, Z, MLAT, MNAUF, MAXL, MAXB, MLEVEL) + + + +</h2> + + + + + + <p>DIE ROUTINE F]HRT EINE TRANSFORMATION EINER + FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN + RAUM AUF DAS REDUZIERTE GAUSS'SCHE GITTER DURCH</p> + + + <h3>Arguments</h3> + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" id="variable-cxmn%7E5"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>CXMN</strong>(0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-feld%7E4"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>FELD</strong>(MAXL,MLEVEL)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-wsave%7E3"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>WSAVE</strong>(8*MAXB+15,MAXB/2)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-ifax%7E4"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>IFAX</strong>(10,MAXB)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-z%7E4"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>Z</strong>(0:((MNAUF+3)*(MNAUF+4))/2,MAXB/2)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mlat%7E4"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MLAT</strong>(MAXB/2)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mnauf%7E5"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MNAUF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-maxl%7E5"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAXL</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-maxb%7E5"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAXB</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mlevel%7E4"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MLEVEL</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + <br> + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Calls</h3> + </div> + <div class="panel-body"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: proc~~phgr213~~CallsGraph Pages: 1 --> +<svg id="procphgr213CallsGraph" width="159pt" height="32pt" + viewBox="0.00 0.00 159.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="proc~~phgr213~~CallsGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>proc~~phgr213~~CallsGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 155,-28 155,4 -4,4"/> +<!-- proc~phgr213 --> +<g id="proc~~phgr213~~CallsGraph_node1" class="node"><title>proc~phgr213</title> +<polygon fill="none" stroke="black" points="61,-24 -3.55271e-15,-24 -3.55271e-15,-0 61,-0 61,-24"/> +<text text-anchor="middle" x="30.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">PHGR213</text> +</g> +<!-- proc~phsym --> +<g id="proc~~phgr213~~CallsGraph_node2" class="node"><title>proc~phsym</title> +<g id="a_proc~~phgr213~~CallsGraph_node2"><a xlink:href=".././proc/phsym.html" xlink:title="PHSYM"> +<polygon fill="#d9534f" stroke="#d9534f" points="151,-24 97,-24 97,-0 151,-0 151,-24"/> +<text text-anchor="middle" x="124" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHSYM</text> +</a> +</g> +</g> +<!-- proc~phgr213->proc~phsym --> +<g id="proc~~phgr213~~CallsGraph_edge1" class="edge"><title>proc~phgr213->proc~phsym</title> +<path fill="none" stroke="#000000" d="M61.2074,-12C69.3691,-12 78.3107,-12 86.7941,-12"/> +<polygon fill="#000000" stroke="#000000" points="86.8315,-15.5001 96.8315,-12 86.8314,-8.5001 86.8315,-15.5001"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="560pt" height="32pt" + viewBox="0.00 0.00 559.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 555.5,-28 555.5,4 -4,4"/> +<!-- Subroutine --> +<g id="node1" class="node"><title>Subroutine</title> +<polygon fill="#d9534f" stroke="#d9534f" points="64,-24 0,-24 0,-0 64,-0 64,-24"/> +<text text-anchor="middle" x="32" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> +</g> +<!-- Function --> +<g id="node2" class="node"><title>Function</title> +<polygon fill="#d94e8f" stroke="#d94e8f" points="136,-24 82,-24 82,-0 136,-0 136,-24"/> +<text text-anchor="middle" x="109" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> +</g> +<!-- Interface --> +<g id="node3" class="node"><title>Interface</title> +<polygon fill="#a7506f" stroke="#a7506f" points="209.5,-24 154.5,-24 154.5,-0 209.5,-0 209.5,-24"/> +<text text-anchor="middle" x="182" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Interface</text> +</g> +<!-- Unknown Procedure Type --> +<g id="node4" class="node"><title>Unknown Procedure Type</title> +<polygon fill="#777777" stroke="#777777" points="364,-24 228,-24 228,-0 364,-0 364,-24"/> +<text text-anchor="middle" x="296" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Unknown Procedure Type</text> +</g> +<!-- Program --> +<g id="node5" class="node"><title>Program</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="436,-24 382,-24 382,-0 436,-0 436,-24"/> +<text text-anchor="middle" x="409" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> +</g> +<!-- This Page's Entity --> +<g id="node6" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="551.5,-24 454.5,-24 454.5,-0 551.5,-0 551.5,-24"/> +<text text-anchor="middle" x="503" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a procedure to one which it calls. Dashed + arrows point from an interface to procedures which implement that interface. + This could include the module procedures in a generic interface or the + implementation in a submodule of an interface in a parent module. + </p> + </div></div></div></div> + </div> + </div> + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Called by</h3> + </div> + <div class="panel-body"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: proc~~phgr213~~CalledByGraph Pages: 1 --> +<svg id="procphgr213CalledByGraph" width="190pt" height="32pt" + viewBox="0.00 0.00 190.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="proc~~phgr213~~CalledByGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>proc~~phgr213~~CalledByGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 186,-28 186,4 -4,4"/> +<!-- proc~phgr213 --> +<g id="proc~~phgr213~~CalledByGraph_node1" class="node"><title>proc~phgr213</title> +<polygon fill="none" stroke="black" points="182,-24 121,-24 121,-0 182,-0 182,-24"/> +<text text-anchor="middle" x="151.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">PHGR213</text> +</g> +<!-- program~preconvert --> +<g id="proc~~phgr213~~CalledByGraph_node2" class="node"><title>program~preconvert</title> +<g id="a_proc~~phgr213~~CalledByGraph_node2"><a xlink:href=".././program/preconvert.html" xlink:title="PRECONVERT"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="85,-24 0,-24 0,-0 85,-0 85,-24"/> +<text text-anchor="middle" x="42.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> +</a> +</g> +</g> +<!-- program~preconvert->proc~phgr213 --> +<g id="proc~~phgr213~~CalledByGraph_edge1" class="edge"><title>program~preconvert->proc~phgr213</title> +<path fill="none" stroke="#000000" d="M85.1754,-12C93.5097,-12 102.247,-12 110.522,-12"/> +<polygon fill="#000000" stroke="#000000" points="110.692,-15.5001 120.692,-12 110.692,-8.5001 110.692,-15.5001"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="560pt" height="32pt" + viewBox="0.00 0.00 559.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 555.5,-28 555.5,4 -4,4"/> +<!-- Subroutine --> +<g id="node1" class="node"><title>Subroutine</title> +<polygon fill="#d9534f" stroke="#d9534f" points="64,-24 0,-24 0,-0 64,-0 64,-24"/> +<text text-anchor="middle" x="32" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> +</g> +<!-- Function --> +<g id="node2" class="node"><title>Function</title> +<polygon fill="#d94e8f" stroke="#d94e8f" points="136,-24 82,-24 82,-0 136,-0 136,-24"/> +<text text-anchor="middle" x="109" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> +</g> +<!-- Interface --> +<g id="node3" class="node"><title>Interface</title> +<polygon fill="#a7506f" stroke="#a7506f" points="209.5,-24 154.5,-24 154.5,-0 209.5,-0 209.5,-24"/> +<text text-anchor="middle" x="182" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Interface</text> +</g> +<!-- Unknown Procedure Type --> +<g id="node4" class="node"><title>Unknown Procedure Type</title> +<polygon fill="#777777" stroke="#777777" points="364,-24 228,-24 228,-0 364,-0 364,-24"/> +<text text-anchor="middle" x="296" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Unknown Procedure Type</text> +</g> +<!-- Program --> +<g id="node5" class="node"><title>Program</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="436,-24 382,-24 382,-0 436,-0 436,-24"/> +<text text-anchor="middle" x="409" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> +</g> +<!-- This Page's Entity --> +<g id="node6" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="551.5,-24 454.5,-24 454.5,-0 551.5,-0 551.5,-24"/> +<text text-anchor="middle" x="503" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a procedure to one which it calls. Dashed + arrows point from an interface to procedures which implement that interface. + This could include the module procedures in a generic interface or the + implementation in a submodule of an interface in a parent module. + </p> + </div></div></div></div> + </div> + </div> + + <br> + + <section class="visible-xs visible-sm hidden-md"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + + </section> + <br class="visible-xs visible-sm hidden-md"> + + + + + + + + + + + + + + + + + + + + + </div> + </div> + + + <hr> + </div> <!-- /container --> + <footer> + <div class="container"> + <div class="row"> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> + <div class="col-xs-6 col-md-4 col-md-push-4"> + <p class="text-right"> + Documentation generated by + <a href="https://github.com/cmacmackin/ford">FORD</a> + + </p> + </div> + <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<sup>1</sup></p></div> + </div> + <br> + </div> <!-- /container --> + </footer> + + <!-- Bootstrap core JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> +<!-- + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> +--> + <script src="../js/bootstrap.min.js"></script> + <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> + <script src="../js/ie10-viewport-bug-workaround.js"></script> + + <!-- MathJax JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> + <script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, + jax: ['input/TeX','input/MathML','output/HTML-CSS'], + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] + }); + </script> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="../tipuesearch/tipuesearch_content.js"></script> + <script src="../tipuesearch/tipuesearch_set.js"></script> + <script src="../tipuesearch/tipuesearch.js"></script> + + + </body> +</html> \ No newline at end of file diff --git a/Documentation/FORD/V6/Doc/proc/phgracut.html b/Documentation/FORD/V6/Doc/proc/phgracut.html new file mode 100644 index 0000000000000000000000000000000000000000..bd77924c6bab8b79c99603eaab4cb22e7642ea09 --- /dev/null +++ b/Documentation/FORD/V6/Doc/proc/phgracut.html @@ -0,0 +1,741 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > + <link rel="icon" href="../favicon.png"> + + <title>PHGRACUT – Flex_extract: Calculation of etadot</title> + + <link href="../css/bootstrap.min.css" rel="stylesheet"> + <link href="../css/pygments.css" rel="stylesheet"> + <link href="../css/font-awesome.min.css" rel="stylesheet"> + <link href="../css/local.css" rel="stylesheet"> + + <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> + + + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> + <![endif]--> + + <script src="../js/jquery-2.1.3.min.js"></script> + <script src="../js/svg-pan-zoom.min.js"></script> + + </head> + + <body> + + <!-- Fixed navbar --> + <nav class="navbar navbar-inverse navbar-fixed-top"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + </div> + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> + <a href="#" class="dropdown-toggle" + data-toggle="dropdown" role="button" + aria-haspopup="true" + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + + + <li><a href="../lists/files.html">Source Files</a></li> + + + + <li><a href="../lists/modules.html">Modules</a></li> + + + + <li><a href="../lists/procedures.html">Procedures</a></li> + + + + <li><a href="../program/preconvert.html">Program</a></li> + + </ul> + </li> + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> + + </ul> + + <form action="../search.html" class="navbar-form navbar-right" role="search"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> + </div> +<!-- + <button type="submit" class="btn btn-default">Submit</button> +--> + </form> + + </div><!--/.nav-collapse --> + </div> + </nav> + + <div class="container"> + + + <div class="row"> + <h1>PHGRACUT + <small>Subroutine</small> + + </h1> + +<div class="row"> + <div class="col-lg-12"> +<div class="well well-sm"> + <ul class="list-inline" style="margin-bottom:0px;display:inline"> + + + + + + + <li><i class="fa fa-list-ol"></i> + <a data-toggle="tooltip" + data-placement="bottom" data-html="true" + title=" 8.8% of total for procedures.">90 statements</a> + </li> + + + + <li><i class="fa fa-code"></i><a href="../src/ftrafo.f90"> Source File</a></li> + + + </ul> + <ol class="breadcrumb in-well text-right"> + + + <li><a href='../sourcefile/ftrafo.f90.html'>ftrafo.f90</a></li> + + <li><a href='../module/ftrafo.html'>FTRAFO</a></li> + + + <li class="active">PHGRACUT</li> + </ol> +</div> +</div> +</div> +<script> + $(function () { + $('[data-toggle="tooltip"]').tooltip() + }) +</script> + + </div> + + <div class="row"> + <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg"> + +<div id="sidebar"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + +</div> + + </div> + + <div class="col-md-9" id='text'> + <h2> +public subroutine PHGRACUT(XMN, XLAM, XPHI, GWSAVE, IFAX, P, H, MAUF, MNAUF, NI, NJ, MANF, NK) + + + +</h2> + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Uses</h3> + </div> + <ul class="list-group"> + + <li class="list-group-item"> + <ul class="list-inline"> + + <li><a href='../module/phtogr.html'>PHTOGR</a></li> + + </ul> + </li> + + + + <li class="list-group-item"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: proc~~phgracut~~UsesGraph Pages: 1 --> +<svg id="procphgracutUsesGraph" width="173pt" height="32pt" + viewBox="0.00 0.00 173.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="proc~~phgracut~~UsesGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>proc~~phgracut~~UsesGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 169,-28 169,4 -4,4"/> +<!-- proc~phgracut --> +<g id="proc~~phgracut~~UsesGraph_node1" class="node"><title>proc~phgracut</title> +<polygon fill="none" stroke="black" points="165,-24 94,-24 94,-0 165,-0 165,-24"/> +<text text-anchor="middle" x="129.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">PHGRACUT</text> +</g> +<!-- module~phtogr --> +<g id="proc~~phgracut~~UsesGraph_node2" class="node"><title>module~phtogr</title> +<g id="a_proc~~phgracut~~UsesGraph_node2"><a xlink:href=".././module/phtogr.html" xlink:title="PHTOGR"> +<polygon fill="#337ab7" stroke="#337ab7" points="58,-24 0,-24 0,-0 58,-0 58,-24"/> +<text text-anchor="middle" x="29" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHTOGR</text> +</a> +</g> +</g> +<!-- proc~phgracut->module~phtogr --> +<g id="proc~~phgracut~~UsesGraph_edge1" class="edge"><title>proc~phgracut->module~phtogr</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M93.7726,-12C85.5942,-12 76.829,-12 68.4957,-12"/> +<polygon fill="#000000" stroke="#000000" points="68.2478,-8.5001 58.2478,-12 68.2478,-15.5001 68.2478,-8.5001"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="490pt" height="32pt" + viewBox="0.00 0.00 489.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 485.5,-28 485.5,4 -4,4"/> +<!-- Module --> +<g id="node1" class="node"><title>Module</title> +<polygon fill="#337ab7" stroke="#337ab7" points="54,-24 0,-24 0,-0 54,-0 54,-24"/> +<text text-anchor="middle" x="27" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Module</text> +</g> +<!-- Submodule --> +<g id="node2" class="node"><title>Submodule</title> +<polygon fill="#5bc0de" stroke="#5bc0de" points="139.5,-24 72.5,-24 72.5,-0 139.5,-0 139.5,-24"/> +<text text-anchor="middle" x="106" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Submodule</text> +</g> +<!-- Subroutine --> +<g id="node3" class="node"><title>Subroutine</title> +<polygon fill="#d9534f" stroke="#d9534f" points="222,-24 158,-24 158,-0 222,-0 222,-24"/> +<text text-anchor="middle" x="190" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> +</g> +<!-- Function --> +<g id="node4" class="node"><title>Function</title> +<polygon fill="#d94e8f" stroke="#d94e8f" points="294,-24 240,-24 240,-0 294,-0 294,-24"/> +<text text-anchor="middle" x="267" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> +</g> +<!-- Program --> +<g id="node5" class="node"><title>Program</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="366,-24 312,-24 312,-0 366,-0 366,-24"/> +<text text-anchor="middle" x="339" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> +</g> +<!-- This Page's Entity --> +<g id="node6" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="481.5,-24 384.5,-24 384.5,-0 481.5,-0 481.5,-24"/> +<text text-anchor="middle" x="433" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a submodule to the (sub)module which it is + descended from. Dashed arrows point from a module or program unit to + modules which it uses. + </p> + </div></div></div></div> + </li> + + </ul> + </div> + + + + + <p>Berechnung des Gradienten eines Skalars aus dem Feld des + Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der + Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter.</p> + + + <h3>Arguments</h3> + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" id="variable-xmn%7E4"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>XMN</strong>(0:(MNAUF+1)*(MNAUF+2)-1,NK)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-xlam%7E4"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>XLAM</strong>(NI,NJ,NK)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-xphi%7E4"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>XPHI</strong>(NI,NJ,NK)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-gwsave%7E4"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>GWSAVE</strong>(4*MAUF+15)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-ifax%7E13"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>IFAX</strong>(10)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-p%7E4"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>P</strong>(0:(MNAUF+3)*(MNAUF+4)/2,NJ)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-h%7E2"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>H</strong>(0:(MNAUF+2)*(MNAUF+3)/2)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mauf%7E5"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAUF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mnauf%7E16"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MNAUF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-ni%7E6"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>NI</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-nj%7E6"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>NJ</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-manf%7E4"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MANF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-nk%7E6"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>NK</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + <br> + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Calls</h3> + </div> + <div class="panel-body"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: proc~~phgracut~~CallsGraph Pages: 1 --> +<svg id="procphgracutCallsGraph" width="269pt" height="32pt" + viewBox="0.00 0.00 269.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="proc~~phgracut~~CallsGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>proc~~phgracut~~CallsGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 265,-28 265,4 -4,4"/> +<!-- proc~phgracut --> +<g id="proc~~phgracut~~CallsGraph_node1" class="node"><title>proc~phgracut</title> +<polygon fill="none" stroke="black" points="71,-24 0,-24 0,-0 71,-0 71,-24"/> +<text text-anchor="middle" x="35.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">PHGRACUT</text> +</g> +<!-- proc~rfourtr --> +<g id="proc~~phgracut~~CallsGraph_node2" class="node"><title>proc~rfourtr</title> +<g id="a_proc~~phgracut~~CallsGraph_node2"><a xlink:href=".././proc/rfourtr.html" xlink:title="RFOURTR"> +<polygon fill="#d9534f" stroke="#d9534f" points="171,-24 107,-24 107,-0 171,-0 171,-24"/> +<text text-anchor="middle" x="139" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">RFOURTR</text> +</a> +</g> +</g> +<!-- proc~phgracut->proc~rfourtr --> +<g id="proc~~phgracut~~CallsGraph_edge1" class="edge"><title>proc~phgracut->proc~rfourtr</title> +<path fill="none" stroke="#000000" d="M71.1467,-12C79.394,-12 88.2744,-12 96.7838,-12"/> +<polygon fill="#000000" stroke="#000000" points="96.912,-15.5001 106.912,-12 96.9119,-8.5001 96.912,-15.5001"/> +</g> +<!-- fft99 --> +<g id="proc~~phgracut~~CallsGraph_node3" class="node"><title>fft99</title> +<polygon fill="#777777" stroke="#777777" points="261,-24 207,-24 207,-0 261,-0 261,-24"/> +<text text-anchor="middle" x="234" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">fft99</text> +</g> +<!-- proc~rfourtr->fft99 --> +<g id="proc~~phgracut~~CallsGraph_edge2" class="edge"><title>proc~rfourtr->fft99</title> +<path fill="none" stroke="#000000" d="M171.226,-12C179.48,-12 188.455,-12 196.941,-12"/> +<polygon fill="#000000" stroke="#000000" points="196.969,-15.5001 206.969,-12 196.969,-8.5001 196.969,-15.5001"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="560pt" height="32pt" + viewBox="0.00 0.00 559.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 555.5,-28 555.5,4 -4,4"/> +<!-- Subroutine --> +<g id="node1" class="node"><title>Subroutine</title> +<polygon fill="#d9534f" stroke="#d9534f" points="64,-24 0,-24 0,-0 64,-0 64,-24"/> +<text text-anchor="middle" x="32" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> +</g> +<!-- Function --> +<g id="node2" class="node"><title>Function</title> +<polygon fill="#d94e8f" stroke="#d94e8f" points="136,-24 82,-24 82,-0 136,-0 136,-24"/> +<text text-anchor="middle" x="109" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> +</g> +<!-- Interface --> +<g id="node3" class="node"><title>Interface</title> +<polygon fill="#a7506f" stroke="#a7506f" points="209.5,-24 154.5,-24 154.5,-0 209.5,-0 209.5,-24"/> +<text text-anchor="middle" x="182" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Interface</text> +</g> +<!-- Unknown Procedure Type --> +<g id="node4" class="node"><title>Unknown Procedure Type</title> +<polygon fill="#777777" stroke="#777777" points="364,-24 228,-24 228,-0 364,-0 364,-24"/> +<text text-anchor="middle" x="296" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Unknown Procedure Type</text> +</g> +<!-- Program --> +<g id="node5" class="node"><title>Program</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="436,-24 382,-24 382,-0 436,-0 436,-24"/> +<text text-anchor="middle" x="409" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> +</g> +<!-- This Page's Entity --> +<g id="node6" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="551.5,-24 454.5,-24 454.5,-0 551.5,-0 551.5,-24"/> +<text text-anchor="middle" x="503" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a procedure to one which it calls. Dashed + arrows point from an interface to procedures which implement that interface. + This could include the module procedures in a generic interface or the + implementation in a submodule of an interface in a parent module. + </p> + </div></div></div></div> + </div> + </div> + + + <br> + + <section class="visible-xs visible-sm hidden-md"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + + </section> + <br class="visible-xs visible-sm hidden-md"> + + + + + + + + + + + + + + + + + + + + + </div> + </div> + + + <hr> + </div> <!-- /container --> + <footer> + <div class="container"> + <div class="row"> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> + <div class="col-xs-6 col-md-4 col-md-push-4"> + <p class="text-right"> + Documentation generated by + <a href="https://github.com/cmacmackin/ford">FORD</a> + + </p> + </div> + <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<sup>1</sup></p></div> + </div> + <br> + </div> <!-- /container --> + </footer> + + <!-- Bootstrap core JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> +<!-- + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> +--> + <script src="../js/bootstrap.min.js"></script> + <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> + <script src="../js/ie10-viewport-bug-workaround.js"></script> + + <!-- MathJax JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> + <script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, + jax: ['input/TeX','input/MathML','output/HTML-CSS'], + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] + }); + </script> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="../tipuesearch/tipuesearch_content.js"></script> + <script src="../tipuesearch/tipuesearch_set.js"></script> + <script src="../tipuesearch/tipuesearch.js"></script> + + + </body> +</html> \ No newline at end of file diff --git a/Documentation/FORD/V6/Doc/proc/phgrad.html b/Documentation/FORD/V6/Doc/proc/phgrad.html new file mode 100644 index 0000000000000000000000000000000000000000..ad3d55bffbd74346f4625af4eac69acdf5324e1e --- /dev/null +++ b/Documentation/FORD/V6/Doc/proc/phgrad.html @@ -0,0 +1,805 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > + <link rel="icon" href="../favicon.png"> + + <title>PHGRAD – Flex_extract: Calculation of etadot</title> + + <link href="../css/bootstrap.min.css" rel="stylesheet"> + <link href="../css/pygments.css" rel="stylesheet"> + <link href="../css/font-awesome.min.css" rel="stylesheet"> + <link href="../css/local.css" rel="stylesheet"> + + <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> + + + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> + <![endif]--> + + <script src="../js/jquery-2.1.3.min.js"></script> + <script src="../js/svg-pan-zoom.min.js"></script> + + </head> + + <body> + + <!-- Fixed navbar --> + <nav class="navbar navbar-inverse navbar-fixed-top"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + </div> + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> + <a href="#" class="dropdown-toggle" + data-toggle="dropdown" role="button" + aria-haspopup="true" + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + + + <li><a href="../lists/files.html">Source Files</a></li> + + + + <li><a href="../lists/modules.html">Modules</a></li> + + + + <li><a href="../lists/procedures.html">Procedures</a></li> + + + + <li><a href="../program/preconvert.html">Program</a></li> + + </ul> + </li> + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> + + </ul> + + <form action="../search.html" class="navbar-form navbar-right" role="search"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> + </div> +<!-- + <button type="submit" class="btn btn-default">Submit</button> +--> + </form> + + </div><!--/.nav-collapse --> + </div> + </nav> + + <div class="container"> + + + <div class="row"> + <h1>PHGRAD + <small>Subroutine</small> + + </h1> + +<div class="row"> + <div class="col-lg-12"> +<div class="well well-sm"> + <ul class="list-inline" style="margin-bottom:0px;display:inline"> + + + + + + + <li><i class="fa fa-list-ol"></i> + <a data-toggle="tooltip" + data-placement="bottom" data-html="true" + title=" 8.4% of total for procedures.">86 statements</a> + </li> + + + + <li><i class="fa fa-code"></i><a href="../src/ftrafo.f90"> Source File</a></li> + + + </ul> + <ol class="breadcrumb in-well text-right"> + + + <li><a href='../sourcefile/ftrafo.f90.html'>ftrafo.f90</a></li> + + <li><a href='../module/ftrafo.html'>FTRAFO</a></li> + + + <li class="active">PHGRAD</li> + </ol> +</div> +</div> +</div> +<script> + $(function () { + $('[data-toggle="tooltip"]').tooltip() + }) +</script> + + </div> + + <div class="row"> + <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg"> + +<div id="sidebar"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + +</div> + + </div> + + <div class="col-md-9" id='text'> + <h2> +public subroutine PHGRAD(XMN, XLAM, XPHI, GWSAVE, IFAX, P, H, MLAT, MNAUF, NI, NJ, NK) + + + +</h2> + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Uses</h3> + </div> + <ul class="list-group"> + + <li class="list-group-item"> + <ul class="list-inline"> + + <li><a href='../module/phtogr.html'>PHTOGR</a></li> + + </ul> + </li> + + + + <li class="list-group-item"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: proc~~phgrad~~UsesGraph Pages: 1 --> +<svg id="procphgradUsesGraph" width="159pt" height="32pt" + viewBox="0.00 0.00 159.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="proc~~phgrad~~UsesGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>proc~~phgrad~~UsesGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 155,-28 155,4 -4,4"/> +<!-- proc~phgrad --> +<g id="proc~~phgrad~~UsesGraph_node1" class="node"><title>proc~phgrad</title> +<polygon fill="none" stroke="black" points="151,-24 94,-24 94,-0 151,-0 151,-24"/> +<text text-anchor="middle" x="122.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">PHGRAD</text> +</g> +<!-- module~phtogr --> +<g id="proc~~phgrad~~UsesGraph_node2" class="node"><title>module~phtogr</title> +<g id="a_proc~~phgrad~~UsesGraph_node2"><a xlink:href=".././module/phtogr.html" xlink:title="PHTOGR"> +<polygon fill="#337ab7" stroke="#337ab7" points="58,-24 0,-24 0,-0 58,-0 58,-24"/> +<text text-anchor="middle" x="29" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHTOGR</text> +</a> +</g> +</g> +<!-- proc~phgrad->module~phtogr --> +<g id="proc~~phgrad~~UsesGraph_edge1" class="edge"><title>proc~phgrad->module~phtogr</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M93.5498,-12C85.554,-12 76.6987,-12 68.2008,-12"/> +<polygon fill="#000000" stroke="#000000" points="68.0944,-8.5001 58.0943,-12 68.0943,-15.5001 68.0944,-8.5001"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="490pt" height="32pt" + viewBox="0.00 0.00 489.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 485.5,-28 485.5,4 -4,4"/> +<!-- Module --> +<g id="node1" class="node"><title>Module</title> +<polygon fill="#337ab7" stroke="#337ab7" points="54,-24 0,-24 0,-0 54,-0 54,-24"/> +<text text-anchor="middle" x="27" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Module</text> +</g> +<!-- Submodule --> +<g id="node2" class="node"><title>Submodule</title> +<polygon fill="#5bc0de" stroke="#5bc0de" points="139.5,-24 72.5,-24 72.5,-0 139.5,-0 139.5,-24"/> +<text text-anchor="middle" x="106" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Submodule</text> +</g> +<!-- Subroutine --> +<g id="node3" class="node"><title>Subroutine</title> +<polygon fill="#d9534f" stroke="#d9534f" points="222,-24 158,-24 158,-0 222,-0 222,-24"/> +<text text-anchor="middle" x="190" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> +</g> +<!-- Function --> +<g id="node4" class="node"><title>Function</title> +<polygon fill="#d94e8f" stroke="#d94e8f" points="294,-24 240,-24 240,-0 294,-0 294,-24"/> +<text text-anchor="middle" x="267" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> +</g> +<!-- Program --> +<g id="node5" class="node"><title>Program</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="366,-24 312,-24 312,-0 366,-0 366,-24"/> +<text text-anchor="middle" x="339" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> +</g> +<!-- This Page's Entity --> +<g id="node6" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="481.5,-24 384.5,-24 384.5,-0 481.5,-0 481.5,-24"/> +<text text-anchor="middle" x="433" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a submodule to the (sub)module which it is + descended from. Dashed arrows point from a module or program unit to + modules which it uses. + </p> + </div></div></div></div> + </li> + + </ul> + </div> + + + + + <p>Berechnung des Gradienten eines Skalars aus dem Feld des + Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der + Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter.</p> + + + <h3>Arguments</h3> + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" id="variable-xmn%7E3"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>XMN</strong>(0:(MNAUF+1)*(MNAUF+2)-1,NK)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-xlam%7E3"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>XLAM</strong>(NI,NK)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-xphi%7E3"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>XPHI</strong>(NI,NK)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-gwsave%7E3"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>GWSAVE</strong>(8*NJ+15,NJ/2)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-ifax%7E12"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>IFAX</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-p%7E3"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>P</strong>(0:(MNAUF+3)*(MNAUF+4)/2,NJ/2)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-h"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>H</strong>(0:(MNAUF+2)*(MNAUF+3)/2)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mlat%7E8"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MLAT</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mnauf%7E15"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MNAUF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-ni%7E5"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>NI</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-nj%7E5"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>NJ</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-nk%7E5"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>NK</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + <br> + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Calls</h3> + </div> + <div class="panel-body"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: proc~~phgrad~~CallsGraph Pages: 1 --> +<svg id="procphgradCallsGraph" width="167pt" height="32pt" + viewBox="0.00 0.00 167.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="proc~~phgrad~~CallsGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>proc~~phgrad~~CallsGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 163,-28 163,4 -4,4"/> +<!-- proc~phgrad --> +<g id="proc~~phgrad~~CallsGraph_node1" class="node"><title>proc~phgrad</title> +<polygon fill="none" stroke="black" points="57,-24 0,-24 0,-0 57,-0 57,-24"/> +<text text-anchor="middle" x="28.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">PHGRAD</text> +</g> +<!-- integermlat --> +<g id="proc~~phgrad~~CallsGraph_node2" class="node"><title>integermlat</title> +<polygon fill="#777777" stroke="#777777" points="159,-24 93,-24 93,-0 159,-0 159,-24"/> +<text text-anchor="middle" x="126" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">integermlat</text> +</g> +<!-- proc~phgrad->integermlat --> +<g id="proc~~phgrad~~CallsGraph_edge1" class="edge"><title>proc~phgrad->integermlat</title> +<path fill="none" stroke="#000000" d="M57.1226,-12C65.1206,-12 74.0407,-12 82.7169,-12"/> +<polygon fill="#000000" stroke="#000000" points="82.7201,-15.5001 92.7201,-12 82.72,-8.5001 82.7201,-15.5001"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="560pt" height="32pt" + viewBox="0.00 0.00 559.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 555.5,-28 555.5,4 -4,4"/> +<!-- Subroutine --> +<g id="node1" class="node"><title>Subroutine</title> +<polygon fill="#d9534f" stroke="#d9534f" points="64,-24 0,-24 0,-0 64,-0 64,-24"/> +<text text-anchor="middle" x="32" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> +</g> +<!-- Function --> +<g id="node2" class="node"><title>Function</title> +<polygon fill="#d94e8f" stroke="#d94e8f" points="136,-24 82,-24 82,-0 136,-0 136,-24"/> +<text text-anchor="middle" x="109" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> +</g> +<!-- Interface --> +<g id="node3" class="node"><title>Interface</title> +<polygon fill="#a7506f" stroke="#a7506f" points="209.5,-24 154.5,-24 154.5,-0 209.5,-0 209.5,-24"/> +<text text-anchor="middle" x="182" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Interface</text> +</g> +<!-- Unknown Procedure Type --> +<g id="node4" class="node"><title>Unknown Procedure Type</title> +<polygon fill="#777777" stroke="#777777" points="364,-24 228,-24 228,-0 364,-0 364,-24"/> +<text text-anchor="middle" x="296" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Unknown Procedure Type</text> +</g> +<!-- Program --> +<g id="node5" class="node"><title>Program</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="436,-24 382,-24 382,-0 436,-0 436,-24"/> +<text text-anchor="middle" x="409" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> +</g> +<!-- This Page's Entity --> +<g id="node6" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="551.5,-24 454.5,-24 454.5,-0 551.5,-0 551.5,-24"/> +<text text-anchor="middle" x="503" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a procedure to one which it calls. Dashed + arrows point from an interface to procedures which implement that interface. + This could include the module procedures in a generic interface or the + implementation in a submodule of an interface in a parent module. + </p> + </div></div></div></div> + </div> + </div> + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Called by</h3> + </div> + <div class="panel-body"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: proc~~phgrad~~CalledByGraph Pages: 1 --> +<svg id="procphgradCalledByGraph" width="186pt" height="32pt" + viewBox="0.00 0.00 186.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="proc~~phgrad~~CalledByGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>proc~~phgrad~~CalledByGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 182,-28 182,4 -4,4"/> +<!-- proc~phgrad --> +<g id="proc~~phgrad~~CalledByGraph_node1" class="node"><title>proc~phgrad</title> +<polygon fill="none" stroke="black" points="178,-24 121,-24 121,-0 178,-0 178,-24"/> +<text text-anchor="middle" x="149.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">PHGRAD</text> +</g> +<!-- program~preconvert --> +<g id="proc~~phgrad~~CalledByGraph_node2" class="node"><title>program~preconvert</title> +<g id="a_proc~~phgrad~~CalledByGraph_node2"><a xlink:href=".././program/preconvert.html" xlink:title="PRECONVERT"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="85,-24 0,-24 0,-0 85,-0 85,-24"/> +<text text-anchor="middle" x="42.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> +</a> +</g> +</g> +<!-- program~preconvert->proc~phgrad --> +<g id="proc~~phgrad~~CalledByGraph_edge1" class="edge"><title>program~preconvert->proc~phgrad</title> +<path fill="none" stroke="#000000" d="M85.3005,-12C93.6645,-12 102.407,-12 110.629,-12"/> +<polygon fill="#000000" stroke="#000000" points="110.698,-15.5001 120.698,-12 110.698,-8.5001 110.698,-15.5001"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="560pt" height="32pt" + viewBox="0.00 0.00 559.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 555.5,-28 555.5,4 -4,4"/> +<!-- Subroutine --> +<g id="node1" class="node"><title>Subroutine</title> +<polygon fill="#d9534f" stroke="#d9534f" points="64,-24 0,-24 0,-0 64,-0 64,-24"/> +<text text-anchor="middle" x="32" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> +</g> +<!-- Function --> +<g id="node2" class="node"><title>Function</title> +<polygon fill="#d94e8f" stroke="#d94e8f" points="136,-24 82,-24 82,-0 136,-0 136,-24"/> +<text text-anchor="middle" x="109" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> +</g> +<!-- Interface --> +<g id="node3" class="node"><title>Interface</title> +<polygon fill="#a7506f" stroke="#a7506f" points="209.5,-24 154.5,-24 154.5,-0 209.5,-0 209.5,-24"/> +<text text-anchor="middle" x="182" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Interface</text> +</g> +<!-- Unknown Procedure Type --> +<g id="node4" class="node"><title>Unknown Procedure Type</title> +<polygon fill="#777777" stroke="#777777" points="364,-24 228,-24 228,-0 364,-0 364,-24"/> +<text text-anchor="middle" x="296" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Unknown Procedure Type</text> +</g> +<!-- Program --> +<g id="node5" class="node"><title>Program</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="436,-24 382,-24 382,-0 436,-0 436,-24"/> +<text text-anchor="middle" x="409" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> +</g> +<!-- This Page's Entity --> +<g id="node6" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="551.5,-24 454.5,-24 454.5,-0 551.5,-0 551.5,-24"/> +<text text-anchor="middle" x="503" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a procedure to one which it calls. Dashed + arrows point from an interface to procedures which implement that interface. + This could include the module procedures in a generic interface or the + implementation in a submodule of an interface in a parent module. + </p> + </div></div></div></div> + </div> + </div> + + <br> + + <section class="visible-xs visible-sm hidden-md"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + + </section> + <br class="visible-xs visible-sm hidden-md"> + + + + + + + + + + + + + + + + + + + + + </div> + </div> + + + <hr> + </div> <!-- /container --> + <footer> + <div class="container"> + <div class="row"> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> + <div class="col-xs-6 col-md-4 col-md-push-4"> + <p class="text-right"> + Documentation generated by + <a href="https://github.com/cmacmackin/ford">FORD</a> + + </p> + </div> + <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<sup>1</sup></p></div> + </div> + <br> + </div> <!-- /container --> + </footer> + + <!-- Bootstrap core JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> +<!-- + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> +--> + <script src="../js/bootstrap.min.js"></script> + <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> + <script src="../js/ie10-viewport-bug-workaround.js"></script> + + <!-- MathJax JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> + <script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, + jax: ['input/TeX','input/MathML','output/HTML-CSS'], + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] + }); + </script> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="../tipuesearch/tipuesearch_content.js"></script> + <script src="../tipuesearch/tipuesearch_set.js"></script> + <script src="../tipuesearch/tipuesearch.js"></script> + + + </body> +</html> \ No newline at end of file diff --git a/Documentation/FORD/V6/Doc/proc/phsym.html b/Documentation/FORD/V6/Doc/proc/phsym.html new file mode 100644 index 0000000000000000000000000000000000000000..3a42c3643789b7fbc85eceb22d66163bc959ed81 --- /dev/null +++ b/Documentation/FORD/V6/Doc/proc/phsym.html @@ -0,0 +1,620 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > + <link rel="icon" href="../favicon.png"> + + <title>PHSYM – Flex_extract: Calculation of etadot</title> + + <link href="../css/bootstrap.min.css" rel="stylesheet"> + <link href="../css/pygments.css" rel="stylesheet"> + <link href="../css/font-awesome.min.css" rel="stylesheet"> + <link href="../css/local.css" rel="stylesheet"> + + <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> + + + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> + <![endif]--> + + <script src="../js/jquery-2.1.3.min.js"></script> + <script src="../js/svg-pan-zoom.min.js"></script> + + </head> + + <body> + + <!-- Fixed navbar --> + <nav class="navbar navbar-inverse navbar-fixed-top"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + </div> + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> + <a href="#" class="dropdown-toggle" + data-toggle="dropdown" role="button" + aria-haspopup="true" + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + + + <li><a href="../lists/files.html">Source Files</a></li> + + + + <li><a href="../lists/modules.html">Modules</a></li> + + + + <li><a href="../lists/procedures.html">Procedures</a></li> + + + + <li><a href="../program/preconvert.html">Program</a></li> + + </ul> + </li> + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> + + </ul> + + <form action="../search.html" class="navbar-form navbar-right" role="search"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> + </div> +<!-- + <button type="submit" class="btn btn-default">Submit</button> +--> + </form> + + </div><!--/.nav-collapse --> + </div> + </nav> + + <div class="container"> + + + <div class="row"> + <h1>PHSYM + <small>Subroutine</small> + + </h1> + +<div class="row"> + <div class="col-lg-12"> +<div class="well well-sm"> + <ul class="list-inline" style="margin-bottom:0px;display:inline"> + + + + + + + <li><i class="fa fa-list-ol"></i> + <a data-toggle="tooltip" + data-placement="bottom" data-html="true" + title=" 5.0% of total for procedures.">51 statements</a> + </li> + + + + <li><i class="fa fa-code"></i><a href="../src/phgrreal.f90"> Source File</a></li> + + + </ul> + <ol class="breadcrumb in-well text-right"> + + + <li><a href='../sourcefile/phgrreal.f90.html'>phgrreal.f90</a></li> + + <li><a href='../module/phtogr.html'>PHTOGR</a></li> + + + <li class="active">PHSYM</li> + </ol> +</div> +</div> +</div> +<script> + $(function () { + $('[data-toggle="tooltip"]').tooltip() + }) +</script> + + </div> + + <div class="row"> + <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg"> + +<div id="sidebar"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + +</div> + + </div> + + <div class="col-md-9" id='text'> + <h2> +public subroutine PHSYM(K, IND, CXMN, FELD, Z, WSAVE, IFAX, MLAT, MNAUF, MAXL, MAXB, MLEVEL) + + + +</h2> + + + + + + + <h3>Arguments</h3> + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" id="variable-k"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>K</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-ind%7E2"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>IND</strong>(MAXB)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-cxmn%7E6"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>CXMN</strong>(0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-feld%7E5"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>FELD</strong>(MAXL,MLEVEL)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-z%7E5"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>Z</strong>(0:((MNAUF+3)*(MNAUF+4))/2,MAXB/2)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-wsave%7E4"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>WSAVE</strong>(8*MAXB+15,MAXB/2)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-ifax%7E5"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>IFAX</strong>(10,MAXB)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mlat%7E5"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MLAT</strong>(MAXB/2)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mnauf%7E6"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MNAUF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-maxl%7E6"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAXL</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-maxb%7E6"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAXB</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mlevel%7E5"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MLEVEL</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + <br> + + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Called by</h3> + </div> + <div class="panel-body"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: proc~~phsym~~CalledByGraph Pages: 1 --> +<svg id="procphsymCalledByGraph" width="280pt" height="32pt" + viewBox="0.00 0.00 280.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="proc~~phsym~~CalledByGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>proc~~phsym~~CalledByGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 276,-28 276,4 -4,4"/> +<!-- proc~phsym --> +<g id="proc~~phsym~~CalledByGraph_node1" class="node"><title>proc~phsym</title> +<polygon fill="none" stroke="black" points="272,-24 218,-24 218,-0 272,-0 272,-24"/> +<text text-anchor="middle" x="245" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">PHSYM</text> +</g> +<!-- proc~phgr213 --> +<g id="proc~~phsym~~CalledByGraph_node2" class="node"><title>proc~phgr213</title> +<g id="a_proc~~phsym~~CalledByGraph_node2"><a xlink:href=".././proc/phgr213.html" xlink:title="PHGR213"> +<polygon fill="#d9534f" stroke="#d9534f" points="182,-24 121,-24 121,-0 182,-0 182,-24"/> +<text text-anchor="middle" x="151.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGR213</text> +</a> +</g> +</g> +<!-- proc~phgr213->proc~phsym --> +<g id="proc~~phsym~~CalledByGraph_edge1" class="edge"><title>proc~phgr213->proc~phsym</title> +<path fill="none" stroke="#000000" d="M182.207,-12C190.369,-12 199.311,-12 207.794,-12"/> +<polygon fill="#000000" stroke="#000000" points="207.831,-15.5001 217.831,-12 207.831,-8.5001 207.831,-15.5001"/> +</g> +<!-- program~preconvert --> +<g id="proc~~phsym~~CalledByGraph_node3" class="node"><title>program~preconvert</title> +<g id="a_proc~~phsym~~CalledByGraph_node3"><a xlink:href=".././program/preconvert.html" xlink:title="PRECONVERT"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="85,-24 0,-24 0,-0 85,-0 85,-24"/> +<text text-anchor="middle" x="42.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> +</a> +</g> +</g> +<!-- program~preconvert->proc~phgr213 --> +<g id="proc~~phsym~~CalledByGraph_edge2" class="edge"><title>program~preconvert->proc~phgr213</title> +<path fill="none" stroke="#000000" d="M85.1754,-12C93.5097,-12 102.247,-12 110.522,-12"/> +<polygon fill="#000000" stroke="#000000" points="110.692,-15.5001 120.692,-12 110.692,-8.5001 110.692,-15.5001"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="560pt" height="32pt" + viewBox="0.00 0.00 559.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 555.5,-28 555.5,4 -4,4"/> +<!-- Subroutine --> +<g id="node1" class="node"><title>Subroutine</title> +<polygon fill="#d9534f" stroke="#d9534f" points="64,-24 0,-24 0,-0 64,-0 64,-24"/> +<text text-anchor="middle" x="32" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> +</g> +<!-- Function --> +<g id="node2" class="node"><title>Function</title> +<polygon fill="#d94e8f" stroke="#d94e8f" points="136,-24 82,-24 82,-0 136,-0 136,-24"/> +<text text-anchor="middle" x="109" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> +</g> +<!-- Interface --> +<g id="node3" class="node"><title>Interface</title> +<polygon fill="#a7506f" stroke="#a7506f" points="209.5,-24 154.5,-24 154.5,-0 209.5,-0 209.5,-24"/> +<text text-anchor="middle" x="182" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Interface</text> +</g> +<!-- Unknown Procedure Type --> +<g id="node4" class="node"><title>Unknown Procedure Type</title> +<polygon fill="#777777" stroke="#777777" points="364,-24 228,-24 228,-0 364,-0 364,-24"/> +<text text-anchor="middle" x="296" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Unknown Procedure Type</text> +</g> +<!-- Program --> +<g id="node5" class="node"><title>Program</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="436,-24 382,-24 382,-0 436,-0 436,-24"/> +<text text-anchor="middle" x="409" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> +</g> +<!-- This Page's Entity --> +<g id="node6" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="551.5,-24 454.5,-24 454.5,-0 551.5,-0 551.5,-24"/> +<text text-anchor="middle" x="503" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a procedure to one which it calls. Dashed + arrows point from an interface to procedures which implement that interface. + This could include the module procedures in a generic interface or the + implementation in a submodule of an interface in a parent module. + </p> + </div></div></div></div> + </div> + </div> + + <br> + + <section class="visible-xs visible-sm hidden-md"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + + </section> + <br class="visible-xs visible-sm hidden-md"> + + + + + + + + + + + + + + + + + + + + + </div> + </div> + + + <hr> + </div> <!-- /container --> + <footer> + <div class="container"> + <div class="row"> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> + <div class="col-xs-6 col-md-4 col-md-push-4"> + <p class="text-right"> + Documentation generated by + <a href="https://github.com/cmacmackin/ford">FORD</a> + + </p> + </div> + <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<sup>1</sup></p></div> + </div> + <br> + </div> <!-- /container --> + </footer> + + <!-- Bootstrap core JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> +<!-- + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> +--> + <script src="../js/bootstrap.min.js"></script> + <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> + <script src="../js/ie10-viewport-bug-workaround.js"></script> + + <!-- MathJax JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> + <script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, + jax: ['input/TeX','input/MathML','output/HTML-CSS'], + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] + }); + </script> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="../tipuesearch/tipuesearch_content.js"></script> + <script src="../tipuesearch/tipuesearch_set.js"></script> + <script src="../tipuesearch/tipuesearch.js"></script> + + + </body> +</html> \ No newline at end of file diff --git a/Documentation/FORD/V6/Doc/proc/phsymcut.html b/Documentation/FORD/V6/Doc/proc/phsymcut.html new file mode 100644 index 0000000000000000000000000000000000000000..51efe30653c673adb81cf8664fb86e8070599070 --- /dev/null +++ b/Documentation/FORD/V6/Doc/proc/phsymcut.html @@ -0,0 +1,722 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > + <link rel="icon" href="../favicon.png"> + + <title>PHSYMCUT – Flex_extract: Calculation of etadot</title> + + <link href="../css/bootstrap.min.css" rel="stylesheet"> + <link href="../css/pygments.css" rel="stylesheet"> + <link href="../css/font-awesome.min.css" rel="stylesheet"> + <link href="../css/local.css" rel="stylesheet"> + + <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> + + + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> + <![endif]--> + + <script src="../js/jquery-2.1.3.min.js"></script> + <script src="../js/svg-pan-zoom.min.js"></script> + + </head> + + <body> + + <!-- Fixed navbar --> + <nav class="navbar navbar-inverse navbar-fixed-top"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + </div> + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> + <a href="#" class="dropdown-toggle" + data-toggle="dropdown" role="button" + aria-haspopup="true" + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + + + <li><a href="../lists/files.html">Source Files</a></li> + + + + <li><a href="../lists/modules.html">Modules</a></li> + + + + <li><a href="../lists/procedures.html">Procedures</a></li> + + + + <li><a href="../program/preconvert.html">Program</a></li> + + </ul> + </li> + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> + + </ul> + + <form action="../search.html" class="navbar-form navbar-right" role="search"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> + </div> +<!-- + <button type="submit" class="btn btn-default">Submit</button> +--> + </form> + + </div><!--/.nav-collapse --> + </div> + </nav> + + <div class="container"> + + + <div class="row"> + <h1>PHSYMCUT + <small>Subroutine</small> + + </h1> + +<div class="row"> + <div class="col-lg-12"> +<div class="well well-sm"> + <ul class="list-inline" style="margin-bottom:0px;display:inline"> + + + + + + + <li><i class="fa fa-list-ol"></i> + <a data-toggle="tooltip" + data-placement="bottom" data-html="true" + title=" 5.7% of total for procedures.">58 statements</a> + </li> + + + + <li><i class="fa fa-code"></i><a href="../src/phgrreal.f90"> Source File</a></li> + + + </ul> + <ol class="breadcrumb in-well text-right"> + + + <li><a href='../sourcefile/phgrreal.f90.html'>phgrreal.f90</a></li> + + <li><a href='../module/phtogr.html'>PHTOGR</a></li> + + + <li class="active">PHSYMCUT</li> + </ol> +</div> +</div> +</div> +<script> + $(function () { + $('[data-toggle="tooltip"]').tooltip() + }) +</script> + + </div> + + <div class="row"> + <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg"> + +<div id="sidebar"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + +</div> + + </div> + + <div class="col-md-9" id='text'> + <h2> +public subroutine PHSYMCUT(J, CXMN, FELD, Z, WSAVE, IFAX, MAUF, MNAUF, MAXL, MAXB, MLEVEL, MANF) + + + +</h2> + + + + + + + <h3>Arguments</h3> + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" id="variable-j"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>J</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-cxmn%7E8"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>CXMN</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-feld%7E7"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>FELD</strong>(MAXL,MAXB,MLEVEL)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-z%7E7"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>Z</strong>(0:((MNAUF+3)*(MNAUF+4))/2,MAXB)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-wsave%7E6"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>WSAVE</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-ifax%7E7"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>IFAX</strong>(10)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mauf%7E2"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAUF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mnauf%7E8"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MNAUF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-maxl%7E8"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAXL</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-maxb%7E8"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAXB</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mlevel%7E7"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MLEVEL</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-manf%7E2"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MANF</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + <br> + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Calls</h3> + </div> + <div class="panel-body"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: proc~~phsymcut~~CallsGraph Pages: 1 --> +<svg id="procphsymcutCallsGraph" width="269pt" height="32pt" + viewBox="0.00 0.00 269.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="proc~~phsymcut~~CallsGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>proc~~phsymcut~~CallsGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 265,-28 265,4 -4,4"/> +<!-- proc~phsymcut --> +<g id="proc~~phsymcut~~CallsGraph_node1" class="node"><title>proc~phsymcut</title> +<polygon fill="none" stroke="black" points="71,-24 0,-24 0,-0 71,-0 71,-24"/> +<text text-anchor="middle" x="35.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">PHSYMCUT</text> +</g> +<!-- proc~rfourtr --> +<g id="proc~~phsymcut~~CallsGraph_node2" class="node"><title>proc~rfourtr</title> +<g id="a_proc~~phsymcut~~CallsGraph_node2"><a xlink:href=".././proc/rfourtr.html" xlink:title="RFOURTR"> +<polygon fill="#d9534f" stroke="#d9534f" points="171,-24 107,-24 107,-0 171,-0 171,-24"/> +<text text-anchor="middle" x="139" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">RFOURTR</text> +</a> +</g> +</g> +<!-- proc~phsymcut->proc~rfourtr --> +<g id="proc~~phsymcut~~CallsGraph_edge1" class="edge"><title>proc~phsymcut->proc~rfourtr</title> +<path fill="none" stroke="#000000" d="M71.1467,-12C79.394,-12 88.2744,-12 96.7838,-12"/> +<polygon fill="#000000" stroke="#000000" points="96.912,-15.5001 106.912,-12 96.9119,-8.5001 96.912,-15.5001"/> +</g> +<!-- fft99 --> +<g id="proc~~phsymcut~~CallsGraph_node3" class="node"><title>fft99</title> +<polygon fill="#777777" stroke="#777777" points="261,-24 207,-24 207,-0 261,-0 261,-24"/> +<text text-anchor="middle" x="234" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">fft99</text> +</g> +<!-- proc~rfourtr->fft99 --> +<g id="proc~~phsymcut~~CallsGraph_edge2" class="edge"><title>proc~rfourtr->fft99</title> +<path fill="none" stroke="#000000" d="M171.226,-12C179.48,-12 188.455,-12 196.941,-12"/> +<polygon fill="#000000" stroke="#000000" points="196.969,-15.5001 206.969,-12 196.969,-8.5001 196.969,-15.5001"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="560pt" height="32pt" + viewBox="0.00 0.00 559.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 555.5,-28 555.5,4 -4,4"/> +<!-- Subroutine --> +<g id="node1" class="node"><title>Subroutine</title> +<polygon fill="#d9534f" stroke="#d9534f" points="64,-24 0,-24 0,-0 64,-0 64,-24"/> +<text text-anchor="middle" x="32" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> +</g> +<!-- Function --> +<g id="node2" class="node"><title>Function</title> +<polygon fill="#d94e8f" stroke="#d94e8f" points="136,-24 82,-24 82,-0 136,-0 136,-24"/> +<text text-anchor="middle" x="109" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> +</g> +<!-- Interface --> +<g id="node3" class="node"><title>Interface</title> +<polygon fill="#a7506f" stroke="#a7506f" points="209.5,-24 154.5,-24 154.5,-0 209.5,-0 209.5,-24"/> +<text text-anchor="middle" x="182" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Interface</text> +</g> +<!-- Unknown Procedure Type --> +<g id="node4" class="node"><title>Unknown Procedure Type</title> +<polygon fill="#777777" stroke="#777777" points="364,-24 228,-24 228,-0 364,-0 364,-24"/> +<text text-anchor="middle" x="296" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Unknown Procedure Type</text> +</g> +<!-- Program --> +<g id="node5" class="node"><title>Program</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="436,-24 382,-24 382,-0 436,-0 436,-24"/> +<text text-anchor="middle" x="409" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> +</g> +<!-- This Page's Entity --> +<g id="node6" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="551.5,-24 454.5,-24 454.5,-0 551.5,-0 551.5,-24"/> +<text text-anchor="middle" x="503" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a procedure to one which it calls. Dashed + arrows point from an interface to procedures which implement that interface. + This could include the module procedures in a generic interface or the + implementation in a submodule of an interface in a parent module. + </p> + </div></div></div></div> + </div> + </div> + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Called by</h3> + </div> + <div class="panel-body"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: proc~~phsymcut~~CalledByGraph Pages: 1 --> +<svg id="procphsymcutCalledByGraph" width="293pt" height="32pt" + viewBox="0.00 0.00 293.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="proc~~phsymcut~~CalledByGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>proc~~phsymcut~~CalledByGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 289,-28 289,4 -4,4"/> +<!-- proc~phsymcut --> +<g id="proc~~phsymcut~~CalledByGraph_node1" class="node"><title>proc~phsymcut</title> +<polygon fill="none" stroke="black" points="285,-24 214,-24 214,-0 285,-0 285,-24"/> +<text text-anchor="middle" x="249.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">PHSYMCUT</text> +</g> +<!-- proc~phgcut --> +<g id="proc~~phsymcut~~CalledByGraph_node2" class="node"><title>proc~phgcut</title> +<g id="a_proc~~phsymcut~~CalledByGraph_node2"><a xlink:href=".././proc/phgcut.html" xlink:title="PHGCUT"> +<polygon fill="#d9534f" stroke="#d9534f" points="178,-24 121,-24 121,-0 178,-0 178,-24"/> +<text text-anchor="middle" x="149.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGCUT</text> +</a> +</g> +</g> +<!-- proc~phgcut->proc~phsymcut --> +<g id="proc~~phsymcut~~CalledByGraph_edge1" class="edge"><title>proc~phgcut->proc~phsymcut</title> +<path fill="none" stroke="#000000" d="M178.059,-12C186.035,-12 194.954,-12 203.694,-12"/> +<polygon fill="#000000" stroke="#000000" points="203.805,-15.5001 213.804,-12 203.804,-8.5001 203.805,-15.5001"/> +</g> +<!-- program~preconvert --> +<g id="proc~~phsymcut~~CalledByGraph_node3" class="node"><title>program~preconvert</title> +<g id="a_proc~~phsymcut~~CalledByGraph_node3"><a xlink:href=".././program/preconvert.html" xlink:title="PRECONVERT"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="85,-24 0,-24 0,-0 85,-0 85,-24"/> +<text text-anchor="middle" x="42.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> +</a> +</g> +</g> +<!-- program~preconvert->proc~phgcut --> +<g id="proc~~phsymcut~~CalledByGraph_edge2" class="edge"><title>program~preconvert->proc~phgcut</title> +<path fill="none" stroke="#000000" d="M85.3005,-12C93.6645,-12 102.407,-12 110.629,-12"/> +<polygon fill="#000000" stroke="#000000" points="110.698,-15.5001 120.698,-12 110.698,-8.5001 110.698,-15.5001"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="560pt" height="32pt" + viewBox="0.00 0.00 559.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 555.5,-28 555.5,4 -4,4"/> +<!-- Subroutine --> +<g id="node1" class="node"><title>Subroutine</title> +<polygon fill="#d9534f" stroke="#d9534f" points="64,-24 0,-24 0,-0 64,-0 64,-24"/> +<text text-anchor="middle" x="32" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> +</g> +<!-- Function --> +<g id="node2" class="node"><title>Function</title> +<polygon fill="#d94e8f" stroke="#d94e8f" points="136,-24 82,-24 82,-0 136,-0 136,-24"/> +<text text-anchor="middle" x="109" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> +</g> +<!-- Interface --> +<g id="node3" class="node"><title>Interface</title> +<polygon fill="#a7506f" stroke="#a7506f" points="209.5,-24 154.5,-24 154.5,-0 209.5,-0 209.5,-24"/> +<text text-anchor="middle" x="182" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Interface</text> +</g> +<!-- Unknown Procedure Type --> +<g id="node4" class="node"><title>Unknown Procedure Type</title> +<polygon fill="#777777" stroke="#777777" points="364,-24 228,-24 228,-0 364,-0 364,-24"/> +<text text-anchor="middle" x="296" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Unknown Procedure Type</text> +</g> +<!-- Program --> +<g id="node5" class="node"><title>Program</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="436,-24 382,-24 382,-0 436,-0 436,-24"/> +<text text-anchor="middle" x="409" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> +</g> +<!-- This Page's Entity --> +<g id="node6" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="551.5,-24 454.5,-24 454.5,-0 551.5,-0 551.5,-24"/> +<text text-anchor="middle" x="503" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a procedure to one which it calls. Dashed + arrows point from an interface to procedures which implement that interface. + This could include the module procedures in a generic interface or the + implementation in a submodule of an interface in a parent module. + </p> + </div></div></div></div> + </div> + </div> + + <br> + + <section class="visible-xs visible-sm hidden-md"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + + </section> + <br class="visible-xs visible-sm hidden-md"> + + + + + + + + + + + + + + + + + + + + + </div> + </div> + + + <hr> + </div> <!-- /container --> + <footer> + <div class="container"> + <div class="row"> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> + <div class="col-xs-6 col-md-4 col-md-push-4"> + <p class="text-right"> + Documentation generated by + <a href="https://github.com/cmacmackin/ford">FORD</a> + + </p> + </div> + <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<sup>1</sup></p></div> + </div> + <br> + </div> <!-- /container --> + </footer> + + <!-- Bootstrap core JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> +<!-- + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> +--> + <script src="../js/bootstrap.min.js"></script> + <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> + <script src="../js/ie10-viewport-bug-workaround.js"></script> + + <!-- MathJax JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> + <script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, + jax: ['input/TeX','input/MathML','output/HTML-CSS'], + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] + }); + </script> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="../tipuesearch/tipuesearch_content.js"></script> + <script src="../tipuesearch/tipuesearch_set.js"></script> + <script src="../tipuesearch/tipuesearch.js"></script> + + + </body> +</html> \ No newline at end of file diff --git a/Documentation/FORD/V6/Doc/proc/plgnfa.html b/Documentation/FORD/V6/Doc/proc/plgnfa.html new file mode 100644 index 0000000000000000000000000000000000000000..e8825a13627802dd80069bcb429decad2bfea147 --- /dev/null +++ b/Documentation/FORD/V6/Doc/proc/plgnfa.html @@ -0,0 +1,382 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > + <link rel="icon" href="../favicon.png"> + + <title>PLGNFA – Flex_extract: Calculation of etadot</title> + + <link href="../css/bootstrap.min.css" rel="stylesheet"> + <link href="../css/pygments.css" rel="stylesheet"> + <link href="../css/font-awesome.min.css" rel="stylesheet"> + <link href="../css/local.css" rel="stylesheet"> + + <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> + + + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> + <![endif]--> + + <script src="../js/jquery-2.1.3.min.js"></script> + <script src="../js/svg-pan-zoom.min.js"></script> + + </head> + + <body> + + <!-- Fixed navbar --> + <nav class="navbar navbar-inverse navbar-fixed-top"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + </div> + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> + <a href="#" class="dropdown-toggle" + data-toggle="dropdown" role="button" + aria-haspopup="true" + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + + + <li><a href="../lists/files.html">Source Files</a></li> + + + + <li><a href="../lists/modules.html">Modules</a></li> + + + + <li><a href="../lists/procedures.html">Procedures</a></li> + + + + <li><a href="../program/preconvert.html">Program</a></li> + + </ul> + </li> + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> + + </ul> + + <form action="../search.html" class="navbar-form navbar-right" role="search"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> + </div> +<!-- + <button type="submit" class="btn btn-default">Submit</button> +--> + </form> + + </div><!--/.nav-collapse --> + </div> + </nav> + + <div class="container"> + + + <div class="row"> + <h1>PLGNFA + <small>Subroutine</small> + + </h1> + +<div class="row"> + <div class="col-lg-12"> +<div class="well well-sm"> + <ul class="list-inline" style="margin-bottom:0px;display:inline"> + + + + + + + <li><i class="fa fa-list-ol"></i> + <a data-toggle="tooltip" + data-placement="bottom" data-html="true" + title=" 2.9% of total for procedures.">30 statements</a> + </li> + + + + <li><i class="fa fa-code"></i><a href="../src/phgrreal.f90"> Source File</a></li> + + + </ul> + <ol class="breadcrumb in-well text-right"> + + + <li><a href='../sourcefile/phgrreal.f90.html'>phgrreal.f90</a></li> + + <li><a href='../module/phtogr.html'>PHTOGR</a></li> + + + <li class="active">PLGNFA</li> + </ol> +</div> +</div> +</div> +<script> + $(function () { + $('[data-toggle="tooltip"]').tooltip() + }) +</script> + + </div> + + <div class="row"> + <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg"> + +<div id="sidebar"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + +</div> + + </div> + + <div class="col-md-9" id='text'> + <h2> +public subroutine PLGNFA(LL, X, Z) + + + +</h2> + + + + + + <p>PLGNDN BERECHNET ALLE NORMIERTEN ASSOZIIERTEN + LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X) + UND SCHREIBT SIE IN DAS FELD Z</p> + + + <h3>Arguments</h3> + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" id="variable-ll"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>LL</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-x%7E2"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>X</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-z%7E10"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>Z</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + + + <br> + + <section class="visible-xs visible-sm hidden-md"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + + </section> + <br class="visible-xs visible-sm hidden-md"> + + + + + + + + + + + + + + + + + + + + + </div> + </div> + + + <hr> + </div> <!-- /container --> + <footer> + <div class="container"> + <div class="row"> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> + <div class="col-xs-6 col-md-4 col-md-push-4"> + <p class="text-right"> + Documentation generated by + <a href="https://github.com/cmacmackin/ford">FORD</a> + + </p> + </div> + <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<sup>1</sup></p></div> + </div> + <br> + </div> <!-- /container --> + </footer> + + <!-- Bootstrap core JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> +<!-- + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> +--> + <script src="../js/bootstrap.min.js"></script> + <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> + <script src="../js/ie10-viewport-bug-workaround.js"></script> + + <!-- MathJax JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> + <script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, + jax: ['input/TeX','input/MathML','output/HTML-CSS'], + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] + }); + </script> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="../tipuesearch/tipuesearch_content.js"></script> + <script src="../tipuesearch/tipuesearch_set.js"></script> + <script src="../tipuesearch/tipuesearch.js"></script> + + + </body> +</html> \ No newline at end of file diff --git a/Documentation/FORD/V6/Doc/proc/posnam.html b/Documentation/FORD/V6/Doc/proc/posnam.html new file mode 100644 index 0000000000000000000000000000000000000000..97fc3f407020b86a87fd0ece289e3890a4623ebb --- /dev/null +++ b/Documentation/FORD/V6/Doc/proc/posnam.html @@ -0,0 +1,457 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > + <link rel="icon" href="../favicon.png"> + + <title>POSNAM – Flex_extract: Calculation of etadot</title> + + <link href="../css/bootstrap.min.css" rel="stylesheet"> + <link href="../css/pygments.css" rel="stylesheet"> + <link href="../css/font-awesome.min.css" rel="stylesheet"> + <link href="../css/local.css" rel="stylesheet"> + + <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> + + + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> + <![endif]--> + + <script src="../js/jquery-2.1.3.min.js"></script> + <script src="../js/svg-pan-zoom.min.js"></script> + + </head> + + <body> + + <!-- Fixed navbar --> + <nav class="navbar navbar-inverse navbar-fixed-top"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + </div> + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> + <a href="#" class="dropdown-toggle" + data-toggle="dropdown" role="button" + aria-haspopup="true" + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + + + <li><a href="../lists/files.html">Source Files</a></li> + + + + <li><a href="../lists/modules.html">Modules</a></li> + + + + <li><a href="../lists/procedures.html">Procedures</a></li> + + + + <li><a href="../program/preconvert.html">Program</a></li> + + </ul> + </li> + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> + + </ul> + + <form action="../search.html" class="navbar-form navbar-right" role="search"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> + </div> +<!-- + <button type="submit" class="btn btn-default">Submit</button> +--> + </form> + + </div><!--/.nav-collapse --> + </div> + </nav> + + <div class="container"> + + + <div class="row"> + <h1>POSNAM + <small>Subroutine</small> + + </h1> + +<div class="row"> + <div class="col-lg-12"> +<div class="well well-sm"> + <ul class="list-inline" style="margin-bottom:0px;display:inline"> + + + + + + + <li><i class="fa fa-list-ol"></i> + <a data-toggle="tooltip" + data-placement="bottom" data-html="true" + title=" 1.7% of total for procedures.">17 statements</a> + </li> + + + + <li><i class="fa fa-code"></i><a href="../src/posnam.f90"> Source File</a></li> + + + </ul> + <ol class="breadcrumb in-well text-right"> + + + <li><a href='../sourcefile/posnam.f90.html'>posnam.f90</a></li> + + + <li class="active">POSNAM</li> + </ol> +</div> +</div> +</div> +<script> + $(function () { + $('[data-toggle="tooltip"]').tooltip() + }) +</script> + + </div> + + <div class="row"> + <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg"> + +<div id="sidebar"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + +</div> + + </div> + + <div class="col-md-9" id='text'> + <h2> +subroutine POSNAM(KULNAM, CDNAML) + + + +</h2> + + + + + + <p>position in namelist file.</p> + + + <h3>Arguments</h3> + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" id="variable-kulnam"></span>integer,</td> + <td>intent(in)</td> + <td></td> + + <td></td><td>::</td> + <td><strong>KULNAM</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-cdnaml"></span>character(len=*),</td> + <td>intent(in)</td> + <td></td> + + <td></td><td>::</td> + <td><strong>CDNAML</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + <br> + + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Called by</h3> + </div> + <div class="panel-body"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: proc~~posnam~~CalledByGraph Pages: 1 --> +<svg id="procposnamCalledByGraph" width="187pt" height="32pt" + viewBox="0.00 0.00 187.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="proc~~posnam~~CalledByGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>proc~~posnam~~CalledByGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 183,-28 183,4 -4,4"/> +<!-- proc~posnam --> +<g id="proc~~posnam~~CalledByGraph_node1" class="node"><title>proc~posnam</title> +<polygon fill="none" stroke="black" points="179,-24 121,-24 121,-0 179,-0 179,-24"/> +<text text-anchor="middle" x="150" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">POSNAM</text> +</g> +<!-- program~preconvert --> +<g id="proc~~posnam~~CalledByGraph_node2" class="node"><title>program~preconvert</title> +<g id="a_proc~~posnam~~CalledByGraph_node2"><a xlink:href=".././program/preconvert.html" xlink:title="PRECONVERT"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="85,-24 0,-24 0,-0 85,-0 85,-24"/> +<text text-anchor="middle" x="42.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> +</a> +</g> +</g> +<!-- program~preconvert->proc~posnam --> +<g id="proc~~posnam~~CalledByGraph_edge1" class="edge"><title>program~preconvert->proc~posnam</title> +<path fill="none" stroke="#000000" d="M85.1964,-12C93.6198,-12 102.437,-12 110.736,-12"/> +<polygon fill="#000000" stroke="#000000" points="110.901,-15.5001 120.901,-12 110.901,-8.5001 110.901,-15.5001"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="560pt" height="32pt" + viewBox="0.00 0.00 559.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 555.5,-28 555.5,4 -4,4"/> +<!-- Subroutine --> +<g id="node1" class="node"><title>Subroutine</title> +<polygon fill="#d9534f" stroke="#d9534f" points="64,-24 0,-24 0,-0 64,-0 64,-24"/> +<text text-anchor="middle" x="32" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> +</g> +<!-- Function --> +<g id="node2" class="node"><title>Function</title> +<polygon fill="#d94e8f" stroke="#d94e8f" points="136,-24 82,-24 82,-0 136,-0 136,-24"/> +<text text-anchor="middle" x="109" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> +</g> +<!-- Interface --> +<g id="node3" class="node"><title>Interface</title> +<polygon fill="#a7506f" stroke="#a7506f" points="209.5,-24 154.5,-24 154.5,-0 209.5,-0 209.5,-24"/> +<text text-anchor="middle" x="182" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Interface</text> +</g> +<!-- Unknown Procedure Type --> +<g id="node4" class="node"><title>Unknown Procedure Type</title> +<polygon fill="#777777" stroke="#777777" points="364,-24 228,-24 228,-0 364,-0 364,-24"/> +<text text-anchor="middle" x="296" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Unknown Procedure Type</text> +</g> +<!-- Program --> +<g id="node5" class="node"><title>Program</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="436,-24 382,-24 382,-0 436,-0 436,-24"/> +<text text-anchor="middle" x="409" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> +</g> +<!-- This Page's Entity --> +<g id="node6" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="551.5,-24 454.5,-24 454.5,-0 551.5,-0 551.5,-24"/> +<text text-anchor="middle" x="503" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a procedure to one which it calls. Dashed + arrows point from an interface to procedures which implement that interface. + This could include the module procedures in a generic interface or the + implementation in a submodule of an interface in a parent module. + </p> + </div></div></div></div> + </div> + </div> + + <br> + + <section class="visible-xs visible-sm hidden-md"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + + </section> + <br class="visible-xs visible-sm hidden-md"> + + + + + + + + + + + + + + + + + + + + + </div> + </div> + + + <hr> + </div> <!-- /container --> + <footer> + <div class="container"> + <div class="row"> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> + <div class="col-xs-6 col-md-4 col-md-push-4"> + <p class="text-right"> + Documentation generated by + <a href="https://github.com/cmacmackin/ford">FORD</a> + + </p> + </div> + <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<sup>1</sup></p></div> + </div> + <br> + </div> <!-- /container --> + </footer> + + <!-- Bootstrap core JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> +<!-- + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> +--> + <script src="../js/bootstrap.min.js"></script> + <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> + <script src="../js/ie10-viewport-bug-workaround.js"></script> + + <!-- MathJax JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> + <script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, + jax: ['input/TeX','input/MathML','output/HTML-CSS'], + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] + }); + </script> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="../tipuesearch/tipuesearch_content.js"></script> + <script src="../tipuesearch/tipuesearch_set.js"></script> + <script src="../tipuesearch/tipuesearch.js"></script> + + + </body> +</html> \ No newline at end of file diff --git a/Documentation/FORD/V6/Doc/proc/readlatlon.html b/Documentation/FORD/V6/Doc/proc/readlatlon.html new file mode 100644 index 0000000000000000000000000000000000000000..fa6b4dc223942585e6874666ffbf0177893f8a69 --- /dev/null +++ b/Documentation/FORD/V6/Doc/proc/readlatlon.html @@ -0,0 +1,720 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > + <link rel="icon" href="../favicon.png"> + + <title>READLATLON – Flex_extract: Calculation of etadot</title> + + <link href="../css/bootstrap.min.css" rel="stylesheet"> + <link href="../css/pygments.css" rel="stylesheet"> + <link href="../css/font-awesome.min.css" rel="stylesheet"> + <link href="../css/local.css" rel="stylesheet"> + + <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> + + + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> + <![endif]--> + + <script src="../js/jquery-2.1.3.min.js"></script> + <script src="../js/svg-pan-zoom.min.js"></script> + + </head> + + <body> + + <!-- Fixed navbar --> + <nav class="navbar navbar-inverse navbar-fixed-top"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + </div> + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> + <a href="#" class="dropdown-toggle" + data-toggle="dropdown" role="button" + aria-haspopup="true" + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + + + <li><a href="../lists/files.html">Source Files</a></li> + + + + <li><a href="../lists/modules.html">Modules</a></li> + + + + <li><a href="../lists/procedures.html">Procedures</a></li> + + + + <li><a href="../program/preconvert.html">Program</a></li> + + </ul> + </li> + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> + + </ul> + + <form action="../search.html" class="navbar-form navbar-right" role="search"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> + </div> +<!-- + <button type="submit" class="btn btn-default">Submit</button> +--> + </form> + + </div><!--/.nav-collapse --> + </div> + </nav> + + <div class="container"> + + + <div class="row"> + <h1>READLATLON + <small>Subroutine</small> + + </h1> + +<div class="row"> + <div class="col-lg-12"> +<div class="well well-sm"> + <ul class="list-inline" style="margin-bottom:0px;display:inline"> + + + + + + + <li><i class="fa fa-list-ol"></i> + <a data-toggle="tooltip" + data-placement="bottom" data-html="true" + title=" 5.5% of total for procedures.">56 statements</a> + </li> + + + + <li><i class="fa fa-code"></i><a href="../src/rwGRIB2.f90"> Source File</a></li> + + + </ul> + <ol class="breadcrumb in-well text-right"> + + + <li><a href='../sourcefile/rwgrib2.f90.html'>rwGRIB2.f90</a></li> + + <li><a href='../module/rwgrib2.html'>RWGRIB2</a></li> + + + <li class="active">READLATLON</li> + </ol> +</div> +</div> +</div> +<script> + $(function () { + $('[data-toggle="tooltip"]').tooltip() + }) +</script> + + </div> + + <div class="row"> + <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg"> + +<div id="sidebar"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + +</div> + + </div> + + <div class="col-md-9" id='text'> + <h2> +public subroutine READLATLON(filename, feld, maxl, maxb, mlevel, mpar) + + + +</h2> + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Uses</h3> + </div> + <ul class="list-group"> + + <li class="list-group-item"> + <ul class="list-inline"> + + <li>GRIB_API</li> + + </ul> + </li> + + + + <li class="list-group-item"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: proc~~readlatlon~~UsesGraph Pages: 1 --> +<svg id="procreadlatlonUsesGraph" width="187pt" height="32pt" + viewBox="0.00 0.00 187.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="proc~~readlatlon~~UsesGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>proc~~readlatlon~~UsesGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 183,-28 183,4 -4,4"/> +<!-- proc~readlatlon --> +<g id="proc~~readlatlon~~UsesGraph_node1" class="node"><title>proc~readlatlon</title> +<polygon fill="none" stroke="black" points="179,-24 97,-24 97,-0 179,-0 179,-24"/> +<text text-anchor="middle" x="138" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">READLATLON</text> +</g> +<!-- GRIB_API --> +<g id="proc~~readlatlon~~UsesGraph_node2" class="node"><title>GRIB_API</title> +<polygon fill="#337ab7" stroke="#337ab7" points="61,-24 -3.55271e-15,-24 -3.55271e-15,-0 61,-0 61,-24"/> +<text text-anchor="middle" x="30.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GRIB_API</text> +</g> +<!-- proc~readlatlon->GRIB_API --> +<g id="proc~~readlatlon~~UsesGraph_edge1" class="edge"><title>proc~readlatlon->GRIB_API</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M96.814,-12C88.4615,-12 79.6628,-12 71.3234,-12"/> +<polygon fill="#000000" stroke="#000000" points="71.074,-8.5001 61.074,-12 71.074,-15.5001 71.074,-8.5001"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="490pt" height="32pt" + viewBox="0.00 0.00 489.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 485.5,-28 485.5,4 -4,4"/> +<!-- Module --> +<g id="node1" class="node"><title>Module</title> +<polygon fill="#337ab7" stroke="#337ab7" points="54,-24 0,-24 0,-0 54,-0 54,-24"/> +<text text-anchor="middle" x="27" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Module</text> +</g> +<!-- Submodule --> +<g id="node2" class="node"><title>Submodule</title> +<polygon fill="#5bc0de" stroke="#5bc0de" points="139.5,-24 72.5,-24 72.5,-0 139.5,-0 139.5,-24"/> +<text text-anchor="middle" x="106" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Submodule</text> +</g> +<!-- Subroutine --> +<g id="node3" class="node"><title>Subroutine</title> +<polygon fill="#d9534f" stroke="#d9534f" points="222,-24 158,-24 158,-0 222,-0 222,-24"/> +<text text-anchor="middle" x="190" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> +</g> +<!-- Function --> +<g id="node4" class="node"><title>Function</title> +<polygon fill="#d94e8f" stroke="#d94e8f" points="294,-24 240,-24 240,-0 294,-0 294,-24"/> +<text text-anchor="middle" x="267" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> +</g> +<!-- Program --> +<g id="node5" class="node"><title>Program</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="366,-24 312,-24 312,-0 366,-0 366,-24"/> +<text text-anchor="middle" x="339" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> +</g> +<!-- This Page's Entity --> +<g id="node6" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="481.5,-24 384.5,-24 384.5,-0 481.5,-0 481.5,-24"/> +<text text-anchor="middle" x="433" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a submodule to the (sub)module which it is + descended from. Dashed arrows point from a module or program unit to + modules which it uses. + </p> + </div></div></div></div> + </li> + + </ul> + </div> + + + + + <p>Read a field from GRIB file on lat-lon grid</p> + + + <h3>Arguments</h3> + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" id="variable-filename"></span>character(len=*)</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>filename</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-feld"></span>real,</td> + <td></td> + <td></td> + + <td>dimension(maxl,maxb,mlevel)</td><td>::</td> + <td><strong>feld</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-maxl"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>maxl</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-maxb"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>maxb</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mlevel"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>mlevel</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mpar"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>mpar</strong>(:)</td><td></td> + +</tr> + +</tbody> +</table> + + + + + <br> + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Calls</h3> + </div> + <div class="panel-body"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: proc~~readlatlon~~CallsGraph Pages: 1 --> +<svg id="procreadlatlonCallsGraph" width="223pt" height="74pt" + viewBox="0.00 0.00 223.00 74.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="proc~~readlatlon~~CallsGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 70)"> +<title>proc~~readlatlon~~CallsGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-70 219,-70 219,4 -4,4"/> +<!-- proc~readlatlon --> +<g id="proc~~readlatlon~~CallsGraph_node1" class="node"><title>proc~readlatlon</title> +<polygon fill="none" stroke="black" points="82,-45 0,-45 0,-21 82,-21 82,-45"/> +<text text-anchor="middle" x="41" y="-30.6" font-family="Helvetica,sans-Serif" font-size="10.50">READLATLON</text> +</g> +<!-- grib_count_in_file --> +<g id="proc~~readlatlon~~CallsGraph_node2" class="node"><title>grib_count_in_file</title> +<polygon fill="#777777" stroke="#777777" points="215,-66 118,-66 118,-42 215,-42 215,-66"/> +<text text-anchor="middle" x="166.5" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grib_count_in_file</text> +</g> +<!-- proc~readlatlon->grib_count_in_file --> +<g id="proc~~readlatlon~~CallsGraph_edge1" class="edge"><title>proc~readlatlon->grib_count_in_file</title> +<path fill="none" stroke="#000000" d="M82.0969,-39.8181C90.2978,-41.2126 99.0822,-42.7063 107.76,-44.1819"/> +<polygon fill="#000000" stroke="#000000" points="107.413,-47.673 117.858,-45.8989 108.586,-40.772 107.413,-47.673"/> +</g> +<!-- grib_close_file --> +<g id="proc~~readlatlon~~CallsGraph_node3" class="node"><title>grib_close_file</title> +<polygon fill="#777777" stroke="#777777" points="207,-24 126,-24 126,-0 207,-0 207,-24"/> +<text text-anchor="middle" x="166.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grib_close_file</text> +</g> +<!-- proc~readlatlon->grib_close_file --> +<g id="proc~~readlatlon~~CallsGraph_edge2" class="edge"><title>proc~readlatlon->grib_close_file</title> +<path fill="none" stroke="#000000" d="M82.0969,-26.1819C92.774,-24.3664 104.44,-22.3827 115.573,-20.4896"/> +<polygon fill="#000000" stroke="#000000" points="116.333,-23.9108 125.604,-18.7839 115.159,-17.0098 116.333,-23.9108"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="560pt" height="32pt" + viewBox="0.00 0.00 559.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 555.5,-28 555.5,4 -4,4"/> +<!-- Subroutine --> +<g id="node1" class="node"><title>Subroutine</title> +<polygon fill="#d9534f" stroke="#d9534f" points="64,-24 0,-24 0,-0 64,-0 64,-24"/> +<text text-anchor="middle" x="32" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> +</g> +<!-- Function --> +<g id="node2" class="node"><title>Function</title> +<polygon fill="#d94e8f" stroke="#d94e8f" points="136,-24 82,-24 82,-0 136,-0 136,-24"/> +<text text-anchor="middle" x="109" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> +</g> +<!-- Interface --> +<g id="node3" class="node"><title>Interface</title> +<polygon fill="#a7506f" stroke="#a7506f" points="209.5,-24 154.5,-24 154.5,-0 209.5,-0 209.5,-24"/> +<text text-anchor="middle" x="182" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Interface</text> +</g> +<!-- Unknown Procedure Type --> +<g id="node4" class="node"><title>Unknown Procedure Type</title> +<polygon fill="#777777" stroke="#777777" points="364,-24 228,-24 228,-0 364,-0 364,-24"/> +<text text-anchor="middle" x="296" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Unknown Procedure Type</text> +</g> +<!-- Program --> +<g id="node5" class="node"><title>Program</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="436,-24 382,-24 382,-0 436,-0 436,-24"/> +<text text-anchor="middle" x="409" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> +</g> +<!-- This Page's Entity --> +<g id="node6" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="551.5,-24 454.5,-24 454.5,-0 551.5,-0 551.5,-24"/> +<text text-anchor="middle" x="503" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a procedure to one which it calls. Dashed + arrows point from an interface to procedures which implement that interface. + This could include the module procedures in a generic interface or the + implementation in a submodule of an interface in a parent module. + </p> + </div></div></div></div> + </div> + </div> + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Called by</h3> + </div> + <div class="panel-body"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: proc~~readlatlon~~CalledByGraph Pages: 1 --> +<svg id="procreadlatlonCalledByGraph" width="211pt" height="32pt" + viewBox="0.00 0.00 211.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="proc~~readlatlon~~CalledByGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>proc~~readlatlon~~CalledByGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 207,-28 207,4 -4,4"/> +<!-- proc~readlatlon --> +<g id="proc~~readlatlon~~CalledByGraph_node1" class="node"><title>proc~readlatlon</title> +<polygon fill="none" stroke="black" points="203,-24 121,-24 121,-0 203,-0 203,-24"/> +<text text-anchor="middle" x="162" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">READLATLON</text> +</g> +<!-- program~preconvert --> +<g id="proc~~readlatlon~~CalledByGraph_node2" class="node"><title>program~preconvert</title> +<g id="a_proc~~readlatlon~~CalledByGraph_node2"><a xlink:href=".././program/preconvert.html" xlink:title="PRECONVERT"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="85,-24 0,-24 0,-0 85,-0 85,-24"/> +<text text-anchor="middle" x="42.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> +</a> +</g> +</g> +<!-- program~preconvert->proc~readlatlon --> +<g id="proc~~readlatlon~~CalledByGraph_edge1" class="edge"><title>program~preconvert->proc~readlatlon</title> +<path fill="none" stroke="#000000" d="M85.2569,-12C93.5105,-12 102.254,-12 110.754,-12"/> +<polygon fill="#000000" stroke="#000000" points="110.953,-15.5001 120.953,-12 110.953,-8.5001 110.953,-15.5001"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="560pt" height="32pt" + viewBox="0.00 0.00 559.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 555.5,-28 555.5,4 -4,4"/> +<!-- Subroutine --> +<g id="node1" class="node"><title>Subroutine</title> +<polygon fill="#d9534f" stroke="#d9534f" points="64,-24 0,-24 0,-0 64,-0 64,-24"/> +<text text-anchor="middle" x="32" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> +</g> +<!-- Function --> +<g id="node2" class="node"><title>Function</title> +<polygon fill="#d94e8f" stroke="#d94e8f" points="136,-24 82,-24 82,-0 136,-0 136,-24"/> +<text text-anchor="middle" x="109" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> +</g> +<!-- Interface --> +<g id="node3" class="node"><title>Interface</title> +<polygon fill="#a7506f" stroke="#a7506f" points="209.5,-24 154.5,-24 154.5,-0 209.5,-0 209.5,-24"/> +<text text-anchor="middle" x="182" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Interface</text> +</g> +<!-- Unknown Procedure Type --> +<g id="node4" class="node"><title>Unknown Procedure Type</title> +<polygon fill="#777777" stroke="#777777" points="364,-24 228,-24 228,-0 364,-0 364,-24"/> +<text text-anchor="middle" x="296" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Unknown Procedure Type</text> +</g> +<!-- Program --> +<g id="node5" class="node"><title>Program</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="436,-24 382,-24 382,-0 436,-0 436,-24"/> +<text text-anchor="middle" x="409" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> +</g> +<!-- This Page's Entity --> +<g id="node6" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="551.5,-24 454.5,-24 454.5,-0 551.5,-0 551.5,-24"/> +<text text-anchor="middle" x="503" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a procedure to one which it calls. Dashed + arrows point from an interface to procedures which implement that interface. + This could include the module procedures in a generic interface or the + implementation in a submodule of an interface in a parent module. + </p> + </div></div></div></div> + </div> + </div> + + <br> + + <section class="visible-xs visible-sm hidden-md"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + + </section> + <br class="visible-xs visible-sm hidden-md"> + + + + + + + + + + + + + + + + + + + + + </div> + </div> + + + <hr> + </div> <!-- /container --> + <footer> + <div class="container"> + <div class="row"> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> + <div class="col-xs-6 col-md-4 col-md-push-4"> + <p class="text-right"> + Documentation generated by + <a href="https://github.com/cmacmackin/ford">FORD</a> + + </p> + </div> + <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<sup>1</sup></p></div> + </div> + <br> + </div> <!-- /container --> + </footer> + + <!-- Bootstrap core JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> +<!-- + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> +--> + <script src="../js/bootstrap.min.js"></script> + <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> + <script src="../js/ie10-viewport-bug-workaround.js"></script> + + <!-- MathJax JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> + <script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, + jax: ['input/TeX','input/MathML','output/HTML-CSS'], + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] + }); + </script> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="../tipuesearch/tipuesearch_content.js"></script> + <script src="../tipuesearch/tipuesearch_set.js"></script> + <script src="../tipuesearch/tipuesearch.js"></script> + + + </body> +</html> \ No newline at end of file diff --git a/Documentation/FORD/V6/Doc/proc/readspectral.html b/Documentation/FORD/V6/Doc/proc/readspectral.html new file mode 100644 index 0000000000000000000000000000000000000000..9f4d24077345025ab6fa200aeb207e2a6a17c081 --- /dev/null +++ b/Documentation/FORD/V6/Doc/proc/readspectral.html @@ -0,0 +1,750 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > + <link rel="icon" href="../favicon.png"> + + <title>READSPECTRAL – Flex_extract: Calculation of etadot</title> + + <link href="../css/bootstrap.min.css" rel="stylesheet"> + <link href="../css/pygments.css" rel="stylesheet"> + <link href="../css/font-awesome.min.css" rel="stylesheet"> + <link href="../css/local.css" rel="stylesheet"> + + <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> + + + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> + <![endif]--> + + <script src="../js/jquery-2.1.3.min.js"></script> + <script src="../js/svg-pan-zoom.min.js"></script> + + </head> + + <body> + + <!-- Fixed navbar --> + <nav class="navbar navbar-inverse navbar-fixed-top"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + </div> + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> + <a href="#" class="dropdown-toggle" + data-toggle="dropdown" role="button" + aria-haspopup="true" + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + + + <li><a href="../lists/files.html">Source Files</a></li> + + + + <li><a href="../lists/modules.html">Modules</a></li> + + + + <li><a href="../lists/procedures.html">Procedures</a></li> + + + + <li><a href="../program/preconvert.html">Program</a></li> + + </ul> + </li> + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> + + </ul> + + <form action="../search.html" class="navbar-form navbar-right" role="search"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> + </div> +<!-- + <button type="submit" class="btn btn-default">Submit</button> +--> + </form> + + </div><!--/.nav-collapse --> + </div> + </nav> + + <div class="container"> + + + <div class="row"> + <h1>READSPECTRAL + <small>Subroutine</small> + + </h1> + +<div class="row"> + <div class="col-lg-12"> +<div class="well well-sm"> + <ul class="list-inline" style="margin-bottom:0px;display:inline"> + + + + + + + <li><i class="fa fa-list-ol"></i> + <a data-toggle="tooltip" + data-placement="bottom" data-html="true" + title=" 5.5% of total for procedures.">56 statements</a> + </li> + + + + <li><i class="fa fa-code"></i><a href="../src/rwGRIB2.f90"> Source File</a></li> + + + </ul> + <ol class="breadcrumb in-well text-right"> + + + <li><a href='../sourcefile/rwgrib2.f90.html'>rwGRIB2.f90</a></li> + + <li><a href='../module/rwgrib2.html'>RWGRIB2</a></li> + + + <li class="active">READSPECTRAL</li> + </ol> +</div> +</div> +</div> +<script> + $(function () { + $('[data-toggle="tooltip"]').tooltip() + }) +</script> + + </div> + + <div class="row"> + <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg"> + +<div id="sidebar"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + +</div> + + </div> + + <div class="col-md-9" id='text'> + <h2> +public subroutine READSPECTRAL(filename, CXMN, mnauf, mlevel, maxlev, mpar, A, B) + + + +</h2> + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Uses</h3> + </div> + <ul class="list-group"> + + <li class="list-group-item"> + <ul class="list-inline"> + + <li>GRIB_API</li> + + </ul> + </li> + + + + <li class="list-group-item"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: proc~~readspectral~~UsesGraph Pages: 1 --> +<svg id="procreadspectralUsesGraph" width="201pt" height="32pt" + viewBox="0.00 0.00 201.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="proc~~readspectral~~UsesGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>proc~~readspectral~~UsesGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 197,-28 197,4 -4,4"/> +<!-- proc~readspectral --> +<g id="proc~~readspectral~~UsesGraph_node1" class="node"><title>proc~readspectral</title> +<polygon fill="none" stroke="black" points="193,-24 97,-24 97,-0 193,-0 193,-24"/> +<text text-anchor="middle" x="145" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">READSPECTRAL</text> +</g> +<!-- GRIB_API --> +<g id="proc~~readspectral~~UsesGraph_node2" class="node"><title>GRIB_API</title> +<polygon fill="#337ab7" stroke="#337ab7" points="61,-24 -3.55271e-15,-24 -3.55271e-15,-0 61,-0 61,-24"/> +<text text-anchor="middle" x="30.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GRIB_API</text> +</g> +<!-- proc~readspectral->GRIB_API --> +<g id="proc~~readspectral~~UsesGraph_edge1" class="edge"><title>proc~readspectral->GRIB_API</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M96.9417,-12C88.3899,-12 79.5468,-12 71.232,-12"/> +<polygon fill="#000000" stroke="#000000" points="71.0443,-8.5001 61.0443,-12 71.0442,-15.5001 71.0443,-8.5001"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="490pt" height="32pt" + viewBox="0.00 0.00 489.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 485.5,-28 485.5,4 -4,4"/> +<!-- Module --> +<g id="node1" class="node"><title>Module</title> +<polygon fill="#337ab7" stroke="#337ab7" points="54,-24 0,-24 0,-0 54,-0 54,-24"/> +<text text-anchor="middle" x="27" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Module</text> +</g> +<!-- Submodule --> +<g id="node2" class="node"><title>Submodule</title> +<polygon fill="#5bc0de" stroke="#5bc0de" points="139.5,-24 72.5,-24 72.5,-0 139.5,-0 139.5,-24"/> +<text text-anchor="middle" x="106" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Submodule</text> +</g> +<!-- Subroutine --> +<g id="node3" class="node"><title>Subroutine</title> +<polygon fill="#d9534f" stroke="#d9534f" points="222,-24 158,-24 158,-0 222,-0 222,-24"/> +<text text-anchor="middle" x="190" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> +</g> +<!-- Function --> +<g id="node4" class="node"><title>Function</title> +<polygon fill="#d94e8f" stroke="#d94e8f" points="294,-24 240,-24 240,-0 294,-0 294,-24"/> +<text text-anchor="middle" x="267" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> +</g> +<!-- Program --> +<g id="node5" class="node"><title>Program</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="366,-24 312,-24 312,-0 366,-0 366,-24"/> +<text text-anchor="middle" x="339" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> +</g> +<!-- This Page's Entity --> +<g id="node6" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="481.5,-24 384.5,-24 384.5,-0 481.5,-0 481.5,-24"/> +<text text-anchor="middle" x="433" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a submodule to the (sub)module which it is + descended from. Dashed arrows point from a module or program unit to + modules which it uses. + </p> + </div></div></div></div> + </li> + + </ul> + </div> + + + + + <p>read a GRIB file in spherical harmonics</p> + + + <h3>Arguments</h3> + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" id="variable-filename%7E2"></span>character(len=*)</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>filename</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-cxmn"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>CXMN</strong>(0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mnauf"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>mnauf</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mlevel%7E2"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>mlevel</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-maxlev"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>maxlev</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mpar%7E2"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>mpar</strong>(:)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-a"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>A</strong>(MAXLEV+1)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-b"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>B</strong>(MAXLEV+1)</td><td></td> + +</tr> + +</tbody> +</table> + + + + + <br> + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Calls</h3> + </div> + <div class="panel-body"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: proc~~readspectral~~CallsGraph Pages: 1 --> +<svg id="procreadspectralCallsGraph" width="237pt" height="74pt" + viewBox="0.00 0.00 237.00 74.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="proc~~readspectral~~CallsGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 70)"> +<title>proc~~readspectral~~CallsGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-70 233,-70 233,4 -4,4"/> +<!-- proc~readspectral --> +<g id="proc~~readspectral~~CallsGraph_node1" class="node"><title>proc~readspectral</title> +<polygon fill="none" stroke="black" points="96,-45 0,-45 0,-21 96,-21 96,-45"/> +<text text-anchor="middle" x="48" y="-30.6" font-family="Helvetica,sans-Serif" font-size="10.50">READSPECTRAL</text> +</g> +<!-- grib_count_in_file --> +<g id="proc~~readspectral~~CallsGraph_node2" class="node"><title>grib_count_in_file</title> +<polygon fill="#777777" stroke="#777777" points="229,-66 132,-66 132,-42 229,-42 229,-66"/> +<text text-anchor="middle" x="180.5" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grib_count_in_file</text> +</g> +<!-- proc~readspectral->grib_count_in_file --> +<g id="proc~~readspectral~~CallsGraph_edge1" class="edge"><title>proc~readspectral->grib_count_in_file</title> +<path fill="none" stroke="#000000" d="M96.1135,-40.5815C104.404,-41.9157 113.12,-43.3181 121.663,-44.693"/> +<polygon fill="#000000" stroke="#000000" points="121.149,-48.1552 131.578,-46.2885 122.261,-41.2441 121.149,-48.1552"/> +</g> +<!-- grib_close_file --> +<g id="proc~~readspectral~~CallsGraph_node3" class="node"><title>grib_close_file</title> +<polygon fill="#777777" stroke="#777777" points="221,-24 140,-24 140,-0 221,-0 221,-24"/> +<text text-anchor="middle" x="180.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grib_close_file</text> +</g> +<!-- proc~readspectral->grib_close_file --> +<g id="proc~~readspectral~~CallsGraph_edge2" class="edge"><title>proc~readspectral->grib_close_file</title> +<path fill="none" stroke="#000000" d="M96.1135,-25.4185C107.069,-23.6555 118.766,-21.7733 129.828,-19.9931"/> +<polygon fill="#000000" stroke="#000000" points="130.453,-23.4378 139.77,-18.3934 129.341,-16.5267 130.453,-23.4378"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="560pt" height="32pt" + viewBox="0.00 0.00 559.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 555.5,-28 555.5,4 -4,4"/> +<!-- Subroutine --> +<g id="node1" class="node"><title>Subroutine</title> +<polygon fill="#d9534f" stroke="#d9534f" points="64,-24 0,-24 0,-0 64,-0 64,-24"/> +<text text-anchor="middle" x="32" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> +</g> +<!-- Function --> +<g id="node2" class="node"><title>Function</title> +<polygon fill="#d94e8f" stroke="#d94e8f" points="136,-24 82,-24 82,-0 136,-0 136,-24"/> +<text text-anchor="middle" x="109" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> +</g> +<!-- Interface --> +<g id="node3" class="node"><title>Interface</title> +<polygon fill="#a7506f" stroke="#a7506f" points="209.5,-24 154.5,-24 154.5,-0 209.5,-0 209.5,-24"/> +<text text-anchor="middle" x="182" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Interface</text> +</g> +<!-- Unknown Procedure Type --> +<g id="node4" class="node"><title>Unknown Procedure Type</title> +<polygon fill="#777777" stroke="#777777" points="364,-24 228,-24 228,-0 364,-0 364,-24"/> +<text text-anchor="middle" x="296" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Unknown Procedure Type</text> +</g> +<!-- Program --> +<g id="node5" class="node"><title>Program</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="436,-24 382,-24 382,-0 436,-0 436,-24"/> +<text text-anchor="middle" x="409" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> +</g> +<!-- This Page's Entity --> +<g id="node6" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="551.5,-24 454.5,-24 454.5,-0 551.5,-0 551.5,-24"/> +<text text-anchor="middle" x="503" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a procedure to one which it calls. Dashed + arrows point from an interface to procedures which implement that interface. + This could include the module procedures in a generic interface or the + implementation in a submodule of an interface in a parent module. + </p> + </div></div></div></div> + </div> + </div> + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Called by</h3> + </div> + <div class="panel-body"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: proc~~readspectral~~CalledByGraph Pages: 1 --> +<svg id="procreadspectralCalledByGraph" width="225pt" height="32pt" + viewBox="0.00 0.00 225.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="proc~~readspectral~~CalledByGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>proc~~readspectral~~CalledByGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 221,-28 221,4 -4,4"/> +<!-- proc~readspectral --> +<g id="proc~~readspectral~~CalledByGraph_node1" class="node"><title>proc~readspectral</title> +<polygon fill="none" stroke="black" points="217,-24 121,-24 121,-0 217,-0 217,-24"/> +<text text-anchor="middle" x="169" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">READSPECTRAL</text> +</g> +<!-- program~preconvert --> +<g id="proc~~readspectral~~CalledByGraph_node2" class="node"><title>program~preconvert</title> +<g id="a_proc~~readspectral~~CalledByGraph_node2"><a xlink:href=".././program/preconvert.html" xlink:title="PRECONVERT"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="85,-24 0,-24 0,-0 85,-0 85,-24"/> +<text text-anchor="middle" x="42.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> +</a> +</g> +</g> +<!-- program~preconvert->proc~readspectral --> +<g id="proc~~readspectral~~CalledByGraph_edge1" class="edge"><title>program~preconvert->proc~readspectral</title> +<path fill="none" stroke="#000000" d="M85.303,-12C93.5284,-12 102.29,-12 110.917,-12"/> +<polygon fill="#000000" stroke="#000000" points="110.944,-15.5001 120.944,-12 110.944,-8.5001 110.944,-15.5001"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="560pt" height="32pt" + viewBox="0.00 0.00 559.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 555.5,-28 555.5,4 -4,4"/> +<!-- Subroutine --> +<g id="node1" class="node"><title>Subroutine</title> +<polygon fill="#d9534f" stroke="#d9534f" points="64,-24 0,-24 0,-0 64,-0 64,-24"/> +<text text-anchor="middle" x="32" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> +</g> +<!-- Function --> +<g id="node2" class="node"><title>Function</title> +<polygon fill="#d94e8f" stroke="#d94e8f" points="136,-24 82,-24 82,-0 136,-0 136,-24"/> +<text text-anchor="middle" x="109" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> +</g> +<!-- Interface --> +<g id="node3" class="node"><title>Interface</title> +<polygon fill="#a7506f" stroke="#a7506f" points="209.5,-24 154.5,-24 154.5,-0 209.5,-0 209.5,-24"/> +<text text-anchor="middle" x="182" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Interface</text> +</g> +<!-- Unknown Procedure Type --> +<g id="node4" class="node"><title>Unknown Procedure Type</title> +<polygon fill="#777777" stroke="#777777" points="364,-24 228,-24 228,-0 364,-0 364,-24"/> +<text text-anchor="middle" x="296" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Unknown Procedure Type</text> +</g> +<!-- Program --> +<g id="node5" class="node"><title>Program</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="436,-24 382,-24 382,-0 436,-0 436,-24"/> +<text text-anchor="middle" x="409" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> +</g> +<!-- This Page's Entity --> +<g id="node6" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="551.5,-24 454.5,-24 454.5,-0 551.5,-0 551.5,-24"/> +<text text-anchor="middle" x="503" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a procedure to one which it calls. Dashed + arrows point from an interface to procedures which implement that interface. + This could include the module procedures in a generic interface or the + implementation in a submodule of an interface in a parent module. + </p> + </div></div></div></div> + </div> + </div> + + <br> + + <section class="visible-xs visible-sm hidden-md"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + + </section> + <br class="visible-xs visible-sm hidden-md"> + + + + + + + + + + + + + + + + + + + + + </div> + </div> + + + <hr> + </div> <!-- /container --> + <footer> + <div class="container"> + <div class="row"> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> + <div class="col-xs-6 col-md-4 col-md-push-4"> + <p class="text-right"> + Documentation generated by + <a href="https://github.com/cmacmackin/ford">FORD</a> + + </p> + </div> + <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<sup>1</sup></p></div> + </div> + <br> + </div> <!-- /container --> + </footer> + + <!-- Bootstrap core JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> +<!-- + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> +--> + <script src="../js/bootstrap.min.js"></script> + <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> + <script src="../js/ie10-viewport-bug-workaround.js"></script> + + <!-- MathJax JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> + <script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, + jax: ['input/TeX','input/MathML','output/HTML-CSS'], + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] + }); + </script> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="../tipuesearch/tipuesearch_content.js"></script> + <script src="../tipuesearch/tipuesearch_set.js"></script> + <script src="../tipuesearch/tipuesearch.js"></script> + + + </body> +</html> \ No newline at end of file diff --git a/Documentation/FORD/V6/Doc/proc/rfouftr.html b/Documentation/FORD/V6/Doc/proc/rfouftr.html new file mode 100644 index 0000000000000000000000000000000000000000..ddec0d01ad109512c7ac05fbc0f69f19817887b1 --- /dev/null +++ b/Documentation/FORD/V6/Doc/proc/rfouftr.html @@ -0,0 +1,524 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > + <link rel="icon" href="../favicon.png"> + + <title>RFOUFTR – Flex_extract: Calculation of etadot</title> + + <link href="../css/bootstrap.min.css" rel="stylesheet"> + <link href="../css/pygments.css" rel="stylesheet"> + <link href="../css/font-awesome.min.css" rel="stylesheet"> + <link href="../css/local.css" rel="stylesheet"> + + <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> + + + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> + <![endif]--> + + <script src="../js/jquery-2.1.3.min.js"></script> + <script src="../js/svg-pan-zoom.min.js"></script> + + </head> + + <body> + + <!-- Fixed navbar --> + <nav class="navbar navbar-inverse navbar-fixed-top"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + </div> + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> + <a href="#" class="dropdown-toggle" + data-toggle="dropdown" role="button" + aria-haspopup="true" + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + + + <li><a href="../lists/files.html">Source Files</a></li> + + + + <li><a href="../lists/modules.html">Modules</a></li> + + + + <li><a href="../lists/procedures.html">Procedures</a></li> + + + + <li><a href="../program/preconvert.html">Program</a></li> + + </ul> + </li> + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> + + </ul> + + <form action="../search.html" class="navbar-form navbar-right" role="search"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> + </div> +<!-- + <button type="submit" class="btn btn-default">Submit</button> +--> + </form> + + </div><!--/.nav-collapse --> + </div> + </nav> + + <div class="container"> + + + <div class="row"> + <h1>RFOUFTR + <small>Subroutine</small> + + </h1> + +<div class="row"> + <div class="col-lg-12"> +<div class="well well-sm"> + <ul class="list-inline" style="margin-bottom:0px;display:inline"> + + + + + + + <li><i class="fa fa-list-ol"></i> + <a data-toggle="tooltip" + data-placement="bottom" data-html="true" + title=" 1.2% of total for procedures.">12 statements</a> + </li> + + + + <li><i class="fa fa-code"></i><a href="../src/grphreal.f90"> Source File</a></li> + + + </ul> + <ol class="breadcrumb in-well text-right"> + + + <li><a href='../sourcefile/grphreal.f90.html'>grphreal.f90</a></li> + + <li><a href='../module/grtoph.html'>GRTOPH</a></li> + + + <li class="active">RFOUFTR</li> + </ol> +</div> +</div> +</div> +<script> + $(function () { + $('[data-toggle="tooltip"]').tooltip() + }) +</script> + + </div> + + <div class="row"> + <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg"> + +<div id="sidebar"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + +</div> + + </div> + + <div class="col-md-9" id='text'> + <h2> +public subroutine RFOUFTR(CXM, TRIGS, IFAX, MNAUF, MAXL, ISIGN) + + + +</h2> + + + + + + + <h3>Arguments</h3> + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" id="variable-cxm%7E2"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>CXM</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-trigs"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>TRIGS</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-ifax%7E3"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>IFAX</strong>(10)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mnauf%7E4"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MNAUF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-maxl%7E4"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAXL</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-isign"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>ISIGN</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + <br> + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Calls</h3> + </div> + <div class="panel-body"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: proc~~rfouftr~~CallsGraph Pages: 1 --> +<svg id="procrfouftrCallsGraph" width="162pt" height="74pt" + viewBox="0.00 0.00 162.00 74.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="proc~~rfouftr~~CallsGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 70)"> +<title>proc~~rfouftr~~CallsGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-70 158,-70 158,4 -4,4"/> +<!-- proc~rfouftr --> +<g id="proc~~rfouftr~~CallsGraph_node1" class="node"><title>proc~rfouftr</title> +<polygon fill="none" stroke="black" points="64,-45 0,-45 0,-21 64,-21 64,-45"/> +<text text-anchor="middle" x="32" y="-30.6" font-family="Helvetica,sans-Serif" font-size="10.50">RFOUFTR</text> +</g> +<!-- wsave --> +<g id="proc~~rfouftr~~CallsGraph_node2" class="node"><title>wsave</title> +<polygon fill="#777777" stroke="#777777" points="154,-66 100,-66 100,-42 154,-42 154,-66"/> +<text text-anchor="middle" x="127" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">wsave</text> +</g> +<!-- proc~rfouftr->wsave --> +<g id="proc~~rfouftr~~CallsGraph_edge1" class="edge"><title>proc~rfouftr->wsave</title> +<path fill="none" stroke="#000000" d="M64.2264,-40.0511C72.4797,-41.9148 81.4552,-43.9415 89.9414,-45.8577"/> +<polygon fill="#000000" stroke="#000000" points="89.4434,-49.3333 99.9687,-48.122 90.9852,-42.5052 89.4434,-49.3333"/> +</g> +<!-- fft99 --> +<g id="proc~~rfouftr~~CallsGraph_node3" class="node"><title>fft99</title> +<polygon fill="#777777" stroke="#777777" points="154,-24 100,-24 100,-0 154,-0 154,-24"/> +<text text-anchor="middle" x="127" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">fft99</text> +</g> +<!-- proc~rfouftr->fft99 --> +<g id="proc~~rfouftr~~CallsGraph_edge2" class="edge"><title>proc~rfouftr->fft99</title> +<path fill="none" stroke="#000000" d="M64.2264,-25.9489C72.4797,-24.0852 81.4552,-22.0585 89.9414,-20.1423"/> +<polygon fill="#000000" stroke="#000000" points="90.9852,-23.4948 99.9687,-17.878 89.4434,-16.6667 90.9852,-23.4948"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="560pt" height="32pt" + viewBox="0.00 0.00 559.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 555.5,-28 555.5,4 -4,4"/> +<!-- Subroutine --> +<g id="node1" class="node"><title>Subroutine</title> +<polygon fill="#d9534f" stroke="#d9534f" points="64,-24 0,-24 0,-0 64,-0 64,-24"/> +<text text-anchor="middle" x="32" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> +</g> +<!-- Function --> +<g id="node2" class="node"><title>Function</title> +<polygon fill="#d94e8f" stroke="#d94e8f" points="136,-24 82,-24 82,-0 136,-0 136,-24"/> +<text text-anchor="middle" x="109" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> +</g> +<!-- Interface --> +<g id="node3" class="node"><title>Interface</title> +<polygon fill="#a7506f" stroke="#a7506f" points="209.5,-24 154.5,-24 154.5,-0 209.5,-0 209.5,-24"/> +<text text-anchor="middle" x="182" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Interface</text> +</g> +<!-- Unknown Procedure Type --> +<g id="node4" class="node"><title>Unknown Procedure Type</title> +<polygon fill="#777777" stroke="#777777" points="364,-24 228,-24 228,-0 364,-0 364,-24"/> +<text text-anchor="middle" x="296" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Unknown Procedure Type</text> +</g> +<!-- Program --> +<g id="node5" class="node"><title>Program</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="436,-24 382,-24 382,-0 436,-0 436,-24"/> +<text text-anchor="middle" x="409" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> +</g> +<!-- This Page's Entity --> +<g id="node6" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="551.5,-24 454.5,-24 454.5,-0 551.5,-0 551.5,-24"/> +<text text-anchor="middle" x="503" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a procedure to one which it calls. Dashed + arrows point from an interface to procedures which implement that interface. + This could include the module procedures in a generic interface or the + implementation in a submodule of an interface in a parent module. + </p> + </div></div></div></div> + </div> + </div> + + + <br> + + <section class="visible-xs visible-sm hidden-md"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + + </section> + <br class="visible-xs visible-sm hidden-md"> + + + + + + + + + + + + + + + + + + + + + </div> + </div> + + + <hr> + </div> <!-- /container --> + <footer> + <div class="container"> + <div class="row"> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> + <div class="col-xs-6 col-md-4 col-md-push-4"> + <p class="text-right"> + Documentation generated by + <a href="https://github.com/cmacmackin/ford">FORD</a> + + </p> + </div> + <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<sup>1</sup></p></div> + </div> + <br> + </div> <!-- /container --> + </footer> + + <!-- Bootstrap core JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> +<!-- + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> +--> + <script src="../js/bootstrap.min.js"></script> + <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> + <script src="../js/ie10-viewport-bug-workaround.js"></script> + + <!-- MathJax JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> + <script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, + jax: ['input/TeX','input/MathML','output/HTML-CSS'], + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] + }); + </script> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="../tipuesearch/tipuesearch_content.js"></script> + <script src="../tipuesearch/tipuesearch_set.js"></script> + <script src="../tipuesearch/tipuesearch.js"></script> + + + </body> +</html> \ No newline at end of file diff --git a/Documentation/FORD/V6/Doc/proc/rfourtr.html b/Documentation/FORD/V6/Doc/proc/rfourtr.html new file mode 100644 index 0000000000000000000000000000000000000000..477baaf7f1889f071dea6501301ceb7b7925a467 --- /dev/null +++ b/Documentation/FORD/V6/Doc/proc/rfourtr.html @@ -0,0 +1,666 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > + <link rel="icon" href="../favicon.png"> + + <title>RFOURTR – Flex_extract: Calculation of etadot</title> + + <link href="../css/bootstrap.min.css" rel="stylesheet"> + <link href="../css/pygments.css" rel="stylesheet"> + <link href="../css/font-awesome.min.css" rel="stylesheet"> + <link href="../css/local.css" rel="stylesheet"> + + <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> + + + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> + <![endif]--> + + <script src="../js/jquery-2.1.3.min.js"></script> + <script src="../js/svg-pan-zoom.min.js"></script> + + </head> + + <body> + + <!-- Fixed navbar --> + <nav class="navbar navbar-inverse navbar-fixed-top"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + </div> + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> + <a href="#" class="dropdown-toggle" + data-toggle="dropdown" role="button" + aria-haspopup="true" + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + + + <li><a href="../lists/files.html">Source Files</a></li> + + + + <li><a href="../lists/modules.html">Modules</a></li> + + + + <li><a href="../lists/procedures.html">Procedures</a></li> + + + + <li><a href="../program/preconvert.html">Program</a></li> + + </ul> + </li> + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> + + </ul> + + <form action="../search.html" class="navbar-form navbar-right" role="search"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> + </div> +<!-- + <button type="submit" class="btn btn-default">Submit</button> +--> + </form> + + </div><!--/.nav-collapse --> + </div> + </nav> + + <div class="container"> + + + <div class="row"> + <h1>RFOURTR + <small>Subroutine</small> + + </h1> + +<div class="row"> + <div class="col-lg-12"> +<div class="well well-sm"> + <ul class="list-inline" style="margin-bottom:0px;display:inline"> + + + + + + + <li><i class="fa fa-list-ol"></i> + <a data-toggle="tooltip" + data-placement="bottom" data-html="true" + title=" 1.5% of total for procedures.">15 statements</a> + </li> + + + + <li><i class="fa fa-code"></i><a href="../src/phgrreal.f90"> Source File</a></li> + + + </ul> + <ol class="breadcrumb in-well text-right"> + + + <li><a href='../sourcefile/phgrreal.f90.html'>phgrreal.f90</a></li> + + <li><a href='../module/phtogr.html'>PHTOGR</a></li> + + + <li class="active">RFOURTR</li> + </ol> +</div> +</div> +</div> +<script> + $(function () { + $('[data-toggle="tooltip"]').tooltip() + }) +</script> + + </div> + + <div class="row"> + <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg"> + +<div id="sidebar"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + +</div> + + </div> + + <div class="col-md-9" id='text'> + <h2> +public subroutine RFOURTR(CXM, TRIGS, IFAX, MNAUF, MAXL, ISIGN) + + + +</h2> + + + + + + <div class="codehilite"><pre><span></span> BERECHNET DIE FOURIERSUMME MIT EINEM FFT-ALGORITHMUS +</pre></div> + + + <h3>Arguments</h3> + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" id="variable-cxm%7E4"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>CXM</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-trigs%7E2"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>TRIGS</strong>(2*MAXL)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-ifax%7E9"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>IFAX</strong>(10)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mnauf%7E11"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MNAUF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-maxl%7E10"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAXL</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-isign%7E2"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>ISIGN</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + <br> + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Calls</h3> + </div> + <div class="panel-body"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: proc~~rfourtr~~CallsGraph Pages: 1 --> +<svg id="procrfourtrCallsGraph" width="162pt" height="32pt" + viewBox="0.00 0.00 162.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="proc~~rfourtr~~CallsGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>proc~~rfourtr~~CallsGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 158,-28 158,4 -4,4"/> +<!-- proc~rfourtr --> +<g id="proc~~rfourtr~~CallsGraph_node1" class="node"><title>proc~rfourtr</title> +<polygon fill="none" stroke="black" points="64,-24 0,-24 0,-0 64,-0 64,-24"/> +<text text-anchor="middle" x="32" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">RFOURTR</text> +</g> +<!-- fft99 --> +<g id="proc~~rfourtr~~CallsGraph_node2" class="node"><title>fft99</title> +<polygon fill="#777777" stroke="#777777" points="154,-24 100,-24 100,-0 154,-0 154,-24"/> +<text text-anchor="middle" x="127" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">fft99</text> +</g> +<!-- proc~rfourtr->fft99 --> +<g id="proc~~rfourtr~~CallsGraph_edge1" class="edge"><title>proc~rfourtr->fft99</title> +<path fill="none" stroke="#000000" d="M64.2264,-12C72.4797,-12 81.4552,-12 89.9414,-12"/> +<polygon fill="#000000" stroke="#000000" points="89.9688,-15.5001 99.9687,-12 89.9687,-8.5001 89.9688,-15.5001"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="560pt" height="32pt" + viewBox="0.00 0.00 559.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 555.5,-28 555.5,4 -4,4"/> +<!-- Subroutine --> +<g id="node1" class="node"><title>Subroutine</title> +<polygon fill="#d9534f" stroke="#d9534f" points="64,-24 0,-24 0,-0 64,-0 64,-24"/> +<text text-anchor="middle" x="32" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> +</g> +<!-- Function --> +<g id="node2" class="node"><title>Function</title> +<polygon fill="#d94e8f" stroke="#d94e8f" points="136,-24 82,-24 82,-0 136,-0 136,-24"/> +<text text-anchor="middle" x="109" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> +</g> +<!-- Interface --> +<g id="node3" class="node"><title>Interface</title> +<polygon fill="#a7506f" stroke="#a7506f" points="209.5,-24 154.5,-24 154.5,-0 209.5,-0 209.5,-24"/> +<text text-anchor="middle" x="182" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Interface</text> +</g> +<!-- Unknown Procedure Type --> +<g id="node4" class="node"><title>Unknown Procedure Type</title> +<polygon fill="#777777" stroke="#777777" points="364,-24 228,-24 228,-0 364,-0 364,-24"/> +<text text-anchor="middle" x="296" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Unknown Procedure Type</text> +</g> +<!-- Program --> +<g id="node5" class="node"><title>Program</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="436,-24 382,-24 382,-0 436,-0 436,-24"/> +<text text-anchor="middle" x="409" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> +</g> +<!-- This Page's Entity --> +<g id="node6" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="551.5,-24 454.5,-24 454.5,-0 551.5,-0 551.5,-24"/> +<text text-anchor="middle" x="503" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a procedure to one which it calls. Dashed + arrows point from an interface to procedures which implement that interface. + This could include the module procedures in a generic interface or the + implementation in a submodule of an interface in a parent module. + </p> + </div></div></div></div> + </div> + </div> + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Called by</h3> + </div> + <div class="panel-body"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: proc~~rfourtr~~CalledByGraph Pages: 1 --> +<svg id="procrfourtrCalledByGraph" width="393pt" height="116pt" + viewBox="0.00 0.00 393.00 116.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="proc~~rfourtr~~CalledByGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 112)"> +<title>proc~~rfourtr~~CalledByGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-112 389,-112 389,4 -4,4"/> +<!-- proc~rfourtr --> +<g id="proc~~rfourtr~~CalledByGraph_node1" class="node"><title>proc~rfourtr</title> +<polygon fill="none" stroke="black" points="385,-66 321,-66 321,-42 385,-42 385,-66"/> +<text text-anchor="middle" x="353" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50">RFOURTR</text> +</g> +<!-- proc~phsymcut --> +<g id="proc~~rfourtr~~CalledByGraph_node2" class="node"><title>proc~phsymcut</title> +<g id="a_proc~~rfourtr~~CalledByGraph_node2"><a xlink:href=".././proc/phsymcut.html" xlink:title="PHSYMCUT"> +<polygon fill="#d9534f" stroke="#d9534f" points="285,-108 214,-108 214,-84 285,-84 285,-108"/> +<text text-anchor="middle" x="249.5" y="-93.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHSYMCUT</text> +</a> +</g> +</g> +<!-- proc~phsymcut->proc~rfourtr --> +<g id="proc~~rfourtr~~CalledByGraph_edge1" class="edge"><title>proc~phsymcut->proc~rfourtr</title> +<path fill="none" stroke="#000000" d="M279.586,-83.9645C290.097,-79.6149 302.135,-74.6337 313.339,-69.9978"/> +<polygon fill="#000000" stroke="#000000" points="315.008,-73.0949 322.91,-66.0373 312.331,-66.6268 315.008,-73.0949"/> +</g> +<!-- proc~phgpns --> +<g id="proc~~rfourtr~~CalledByGraph_node3" class="node"><title>proc~phgpns</title> +<g id="a_proc~~rfourtr~~CalledByGraph_node3"><a xlink:href=".././proc/phgpns.html" xlink:title="PHGPNS"> +<polygon fill="#d9534f" stroke="#d9534f" points="277.5,-66 221.5,-66 221.5,-42 277.5,-42 277.5,-66"/> +<text text-anchor="middle" x="249.5" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGPNS</text> +</a> +</g> +</g> +<!-- proc~phgpns->proc~rfourtr --> +<g id="proc~~rfourtr~~CalledByGraph_edge2" class="edge"><title>proc~phgpns->proc~rfourtr</title> +<path fill="none" stroke="#000000" d="M277.7,-54C287.757,-54 299.4,-54 310.441,-54"/> +<polygon fill="#000000" stroke="#000000" points="310.773,-57.5001 320.773,-54 310.773,-50.5001 310.773,-57.5001"/> +</g> +<!-- proc~phgracut --> +<g id="proc~~rfourtr~~CalledByGraph_node4" class="node"><title>proc~phgracut</title> +<g id="a_proc~~rfourtr~~CalledByGraph_node4"><a xlink:href=".././proc/phgracut.html" xlink:title="PHGRACUT"> +<polygon fill="#d9534f" stroke="#d9534f" points="285,-24 214,-24 214,-0 285,-0 285,-24"/> +<text text-anchor="middle" x="249.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGRACUT</text> +</a> +</g> +</g> +<!-- proc~phgracut->proc~rfourtr --> +<g id="proc~~rfourtr~~CalledByGraph_edge3" class="edge"><title>proc~phgracut->proc~rfourtr</title> +<path fill="none" stroke="#000000" d="M279.586,-24.0355C290.097,-28.3851 302.135,-33.3663 313.339,-38.0022"/> +<polygon fill="#000000" stroke="#000000" points="312.331,-41.3732 322.91,-41.9627 315.008,-34.9051 312.331,-41.3732"/> +</g> +<!-- proc~phgcut --> +<g id="proc~~rfourtr~~CalledByGraph_node5" class="node"><title>proc~phgcut</title> +<g id="a_proc~~rfourtr~~CalledByGraph_node5"><a xlink:href=".././proc/phgcut.html" xlink:title="PHGCUT"> +<polygon fill="#d9534f" stroke="#d9534f" points="178,-87 121,-87 121,-63 178,-63 178,-87"/> +<text text-anchor="middle" x="149.5" y="-72.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGCUT</text> +</a> +</g> +</g> +<!-- proc~phgcut->proc~phsymcut --> +<g id="proc~~rfourtr~~CalledByGraph_edge4" class="edge"><title>proc~phgcut->proc~phsymcut</title> +<path fill="none" stroke="#000000" d="M178.059,-80.9056C186.121,-82.6331 195.148,-84.5674 203.979,-86.4598"/> +<polygon fill="#000000" stroke="#000000" points="203.293,-89.8922 213.804,-88.5652 204.76,-83.0476 203.293,-89.8922"/> +</g> +<!-- proc~phgcut->proc~phgpns --> +<g id="proc~~rfourtr~~CalledByGraph_edge5" class="edge"><title>proc~phgcut->proc~phgpns</title> +<path fill="none" stroke="#000000" d="M178.059,-69.0944C188.462,-66.8653 200.471,-64.292 211.593,-61.9087"/> +<polygon fill="#000000" stroke="#000000" points="212.441,-65.3064 221.486,-59.7887 210.975,-58.4618 212.441,-65.3064"/> +</g> +<!-- program~preconvert --> +<g id="proc~~rfourtr~~CalledByGraph_node6" class="node"><title>program~preconvert</title> +<g id="a_proc~~rfourtr~~CalledByGraph_node6"><a xlink:href=".././program/preconvert.html" xlink:title="PRECONVERT"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="85,-87 0,-87 0,-63 85,-63 85,-87"/> +<text text-anchor="middle" x="42.5" y="-72.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> +</a> +</g> +</g> +<!-- program~preconvert->proc~phgcut --> +<g id="proc~~rfourtr~~CalledByGraph_edge6" class="edge"><title>program~preconvert->proc~phgcut</title> +<path fill="none" stroke="#000000" d="M85.3005,-75C93.6645,-75 102.407,-75 110.629,-75"/> +<polygon fill="#000000" stroke="#000000" points="110.698,-78.5001 120.698,-75 110.698,-71.5001 110.698,-78.5001"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="560pt" height="32pt" + viewBox="0.00 0.00 559.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 555.5,-28 555.5,4 -4,4"/> +<!-- Subroutine --> +<g id="node1" class="node"><title>Subroutine</title> +<polygon fill="#d9534f" stroke="#d9534f" points="64,-24 0,-24 0,-0 64,-0 64,-24"/> +<text text-anchor="middle" x="32" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> +</g> +<!-- Function --> +<g id="node2" class="node"><title>Function</title> +<polygon fill="#d94e8f" stroke="#d94e8f" points="136,-24 82,-24 82,-0 136,-0 136,-24"/> +<text text-anchor="middle" x="109" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> +</g> +<!-- Interface --> +<g id="node3" class="node"><title>Interface</title> +<polygon fill="#a7506f" stroke="#a7506f" points="209.5,-24 154.5,-24 154.5,-0 209.5,-0 209.5,-24"/> +<text text-anchor="middle" x="182" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Interface</text> +</g> +<!-- Unknown Procedure Type --> +<g id="node4" class="node"><title>Unknown Procedure Type</title> +<polygon fill="#777777" stroke="#777777" points="364,-24 228,-24 228,-0 364,-0 364,-24"/> +<text text-anchor="middle" x="296" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Unknown Procedure Type</text> +</g> +<!-- Program --> +<g id="node5" class="node"><title>Program</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="436,-24 382,-24 382,-0 436,-0 436,-24"/> +<text text-anchor="middle" x="409" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> +</g> +<!-- This Page's Entity --> +<g id="node6" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="551.5,-24 454.5,-24 454.5,-0 551.5,-0 551.5,-24"/> +<text text-anchor="middle" x="503" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a procedure to one which it calls. Dashed + arrows point from an interface to procedures which implement that interface. + This could include the module procedures in a generic interface or the + implementation in a submodule of an interface in a parent module. + </p> + </div></div></div></div> + </div> + </div> + + <br> + + <section class="visible-xs visible-sm hidden-md"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + + </section> + <br class="visible-xs visible-sm hidden-md"> + + + + + + + + + + + + + + + + + + + + + </div> + </div> + + + <hr> + </div> <!-- /container --> + <footer> + <div class="container"> + <div class="row"> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> + <div class="col-xs-6 col-md-4 col-md-push-4"> + <p class="text-right"> + Documentation generated by + <a href="https://github.com/cmacmackin/ford">FORD</a> + + </p> + </div> + <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<sup>1</sup></p></div> + </div> + <br> + </div> <!-- /container --> + </footer> + + <!-- Bootstrap core JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> +<!-- + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> +--> + <script src="../js/bootstrap.min.js"></script> + <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> + <script src="../js/ie10-viewport-bug-workaround.js"></script> + + <!-- MathJax JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> + <script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, + jax: ['input/TeX','input/MathML','output/HTML-CSS'], + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] + }); + </script> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="../tipuesearch/tipuesearch_content.js"></script> + <script src="../tipuesearch/tipuesearch_set.js"></script> + <script src="../tipuesearch/tipuesearch.js"></script> + + + </body> +</html> \ No newline at end of file diff --git a/Documentation/FORD/V6/Doc/proc/spfilter.html b/Documentation/FORD/V6/Doc/proc/spfilter.html new file mode 100644 index 0000000000000000000000000000000000000000..f760244f1e94f56dc0bde915461bc18326476a95 --- /dev/null +++ b/Documentation/FORD/V6/Doc/proc/spfilter.html @@ -0,0 +1,481 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > + <link rel="icon" href="../favicon.png"> + + <title>SPFILTER – Flex_extract: Calculation of etadot</title> + + <link href="../css/bootstrap.min.css" rel="stylesheet"> + <link href="../css/pygments.css" rel="stylesheet"> + <link href="../css/font-awesome.min.css" rel="stylesheet"> + <link href="../css/local.css" rel="stylesheet"> + + <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> + + + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> + <![endif]--> + + <script src="../js/jquery-2.1.3.min.js"></script> + <script src="../js/svg-pan-zoom.min.js"></script> + + </head> + + <body> + + <!-- Fixed navbar --> + <nav class="navbar navbar-inverse navbar-fixed-top"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + </div> + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> + <a href="#" class="dropdown-toggle" + data-toggle="dropdown" role="button" + aria-haspopup="true" + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + + + <li><a href="../lists/files.html">Source Files</a></li> + + + + <li><a href="../lists/modules.html">Modules</a></li> + + + + <li><a href="../lists/procedures.html">Procedures</a></li> + + + + <li><a href="../program/preconvert.html">Program</a></li> + + </ul> + </li> + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> + + </ul> + + <form action="../search.html" class="navbar-form navbar-right" role="search"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> + </div> +<!-- + <button type="submit" class="btn btn-default">Submit</button> +--> + </form> + + </div><!--/.nav-collapse --> + </div> + </nav> + + <div class="container"> + + + <div class="row"> + <h1>SPFILTER + <small>Subroutine</small> + + </h1> + +<div class="row"> + <div class="col-lg-12"> +<div class="well well-sm"> + <ul class="list-inline" style="margin-bottom:0px;display:inline"> + + + + + + + <li><i class="fa fa-list-ol"></i> + <a data-toggle="tooltip" + data-placement="bottom" data-html="true" + title=" 2.3% of total for procedures.">23 statements</a> + </li> + + + + <li><i class="fa fa-code"></i><a href="../src/phgrreal.f90"> Source File</a></li> + + + </ul> + <ol class="breadcrumb in-well text-right"> + + + <li><a href='../sourcefile/phgrreal.f90.html'>phgrreal.f90</a></li> + + <li><a href='../module/phtogr.html'>PHTOGR</a></li> + + + <li class="active">SPFILTER</li> + </ol> +</div> +</div> +</div> +<script> + $(function () { + $('[data-toggle="tooltip"]').tooltip() + }) +</script> + + </div> + + <div class="row"> + <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg"> + +<div id="sidebar"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + +</div> + + </div> + + <div class="col-md-9" id='text'> + <h2> +public subroutine SPFILTER(FELDMN, MM, MMAX) + + + +</h2> + + + + + + <p>Spectral Filter of Sardeshmukh and Hoskins (1984, MWR)</p> + + + <h3>Arguments</h3> + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" id="variable-feldmn"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>FELDMN</strong>(0:(MM+1)*(MM+2)-1)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mm"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MM</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mmax%7E2"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MMAX</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + <br> + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Calls</h3> + </div> + <div class="panel-body"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: proc~~spfilter~~CallsGraph Pages: 1 --> +<svg id="procspfilterCallsGraph" width="161pt" height="74pt" + viewBox="0.00 0.00 161.00 74.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="proc~~spfilter~~CallsGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 70)"> +<title>proc~~spfilter~~CallsGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-70 157,-70 157,4 -4,4"/> +<!-- proc~spfilter --> +<g id="proc~~spfilter~~CallsGraph_node1" class="node"><title>proc~spfilter</title> +<polygon fill="none" stroke="black" points="63,-45 0,-45 0,-21 63,-21 63,-45"/> +<text text-anchor="middle" x="31.5" y="-30.6" font-family="Helvetica,sans-Serif" font-size="10.50">SPFILTER</text> +</g> +<!-- float --> +<g id="proc~~spfilter~~CallsGraph_node2" class="node"><title>float</title> +<polygon fill="#777777" stroke="#777777" points="153,-66 99,-66 99,-42 153,-42 153,-66"/> +<text text-anchor="middle" x="126" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">float</text> +</g> +<!-- proc~spfilter->float --> +<g id="proc~~spfilter~~CallsGraph_edge1" class="edge"><title>proc~spfilter->float</title> +<path fill="none" stroke="#000000" d="M63.0443,-39.9344C71.3654,-41.8235 80.4561,-43.8873 89.0475,-45.8378"/> +<polygon fill="#000000" stroke="#000000" points="88.3007,-49.2573 98.8275,-48.0581 89.8505,-42.431 88.3007,-49.2573"/> +</g> +<!-- alog --> +<g id="proc~~spfilter~~CallsGraph_node3" class="node"><title>alog</title> +<polygon fill="#777777" stroke="#777777" points="153,-24 99,-24 99,-0 153,-0 153,-24"/> +<text text-anchor="middle" x="126" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">alog</text> +</g> +<!-- proc~spfilter->alog --> +<g id="proc~~spfilter~~CallsGraph_edge2" class="edge"><title>proc~spfilter->alog</title> +<path fill="none" stroke="#000000" d="M63.0443,-26.0656C71.3654,-24.1765 80.4561,-22.1127 89.0475,-20.1622"/> +<polygon fill="#000000" stroke="#000000" points="89.8505,-23.569 98.8275,-17.9419 88.3007,-16.7427 89.8505,-23.569"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="560pt" height="32pt" + viewBox="0.00 0.00 559.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 555.5,-28 555.5,4 -4,4"/> +<!-- Subroutine --> +<g id="node1" class="node"><title>Subroutine</title> +<polygon fill="#d9534f" stroke="#d9534f" points="64,-24 0,-24 0,-0 64,-0 64,-24"/> +<text text-anchor="middle" x="32" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> +</g> +<!-- Function --> +<g id="node2" class="node"><title>Function</title> +<polygon fill="#d94e8f" stroke="#d94e8f" points="136,-24 82,-24 82,-0 136,-0 136,-24"/> +<text text-anchor="middle" x="109" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> +</g> +<!-- Interface --> +<g id="node3" class="node"><title>Interface</title> +<polygon fill="#a7506f" stroke="#a7506f" points="209.5,-24 154.5,-24 154.5,-0 209.5,-0 209.5,-24"/> +<text text-anchor="middle" x="182" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Interface</text> +</g> +<!-- Unknown Procedure Type --> +<g id="node4" class="node"><title>Unknown Procedure Type</title> +<polygon fill="#777777" stroke="#777777" points="364,-24 228,-24 228,-0 364,-0 364,-24"/> +<text text-anchor="middle" x="296" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Unknown Procedure Type</text> +</g> +<!-- Program --> +<g id="node5" class="node"><title>Program</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="436,-24 382,-24 382,-0 436,-0 436,-24"/> +<text text-anchor="middle" x="409" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> +</g> +<!-- This Page's Entity --> +<g id="node6" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="551.5,-24 454.5,-24 454.5,-0 551.5,-0 551.5,-24"/> +<text text-anchor="middle" x="503" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a procedure to one which it calls. Dashed + arrows point from an interface to procedures which implement that interface. + This could include the module procedures in a generic interface or the + implementation in a submodule of an interface in a parent module. + </p> + </div></div></div></div> + </div> + </div> + + + <br> + + <section class="visible-xs visible-sm hidden-md"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + + </section> + <br class="visible-xs visible-sm hidden-md"> + + + + + + + + + + + + + + + + + + + + + </div> + </div> + + + <hr> + </div> <!-- /container --> + <footer> + <div class="container"> + <div class="row"> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> + <div class="col-xs-6 col-md-4 col-md-push-4"> + <p class="text-right"> + Documentation generated by + <a href="https://github.com/cmacmackin/ford">FORD</a> + + </p> + </div> + <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<sup>1</sup></p></div> + </div> + <br> + </div> <!-- /container --> + </footer> + + <!-- Bootstrap core JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> +<!-- + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> +--> + <script src="../js/bootstrap.min.js"></script> + <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> + <script src="../js/ie10-viewport-bug-workaround.js"></script> + + <!-- MathJax JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> + <script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, + jax: ['input/TeX','input/MathML','output/HTML-CSS'], + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] + }); + </script> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="../tipuesearch/tipuesearch_content.js"></script> + <script src="../tipuesearch/tipuesearch_set.js"></script> + <script src="../tipuesearch/tipuesearch.js"></script> + + + </body> +</html> \ No newline at end of file diff --git a/Documentation/FORD/V5/Doc_original/proc/statis.html b/Documentation/FORD/V6/Doc/proc/statis.html similarity index 80% rename from Documentation/FORD/V5/Doc_original/proc/statis.html rename to Documentation/FORD/V6/Doc/proc/statis.html index 75ea9ede10d044527e3aefbfc7e9382b4f166fc5..cf9bd60307b336686e5d8714451f3e83e2f1898e 100644 --- a/Documentation/FORD/V5/Doc_original/proc/statis.html +++ b/Documentation/FORD/V6/Doc/proc/statis.html @@ -4,10 +4,10 @@ <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> - - <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> - <meta name="author" content="Leopold Haimberger" > + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > <link rel="icon" href="../favicon.png"> <title>STATIS – Flex_extract: Calculation of etadot</title> @@ -17,6 +17,9 @@ <link href="../css/font-awesome.min.css" rel="stylesheet"> <link href="../css/local.css" rel="stylesheet"> + <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> <!--[if lt IE 9]> @@ -27,13 +30,6 @@ <script src="../js/jquery-2.1.3.min.js"></script> <script src="../js/svg-pan-zoom.min.js"></script> - - <script src="../tipuesearch/tipuesearch_content.js"></script> - <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> - <script src="../tipuesearch/tipuesearch_set.js"></script> - <script src="../tipuesearch/tipuesearch.js"></script> - - </head> <body> @@ -48,37 +44,41 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> - + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" - aria-expanded="false">Contents <span class="caret"></span></a> - <ul class="dropdown-menu"> + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + <li><a href="../lists/files.html">Source Files</a></li> - - + + + <li><a href="../lists/modules.html">Modules</a></li> - + <li><a href="../lists/procedures.html">Procedures</a></li> - - - + + + <li><a href="../program/preconvert.html">Program</a></li> - + </ul> </li> + <li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> + <li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> @@ -125,17 +125,21 @@ <li><i class="fa fa-list-ol"></i> <a data-toggle="tooltip" - data-placement="bottom" data-html="true" - title="39.3% of total for procedures.">22 statements</a> + data-placement="bottom" data-html="true" + title=" 2.2% of total for procedures.">22 statements</a> </li> - <li><i class="fa fa-code"></i><a href="../src/preconvert.f90"> Source File</a></li> + + <li><i class="fa fa-code"></i><a href="../src/preconvert_new.f90"> Source File</a></li> + </ul> <ol class="breadcrumb in-well text-right"> - <li><a href='../sourcefile/preconvert.f90.html'>preconvert.f90</a></li> + + <li><a href='../sourcefile/preconvert_new.f90.html'>preconvert_new.f90</a></li> + <li class="active">STATIS</li> </ol> @@ -155,6 +159,8 @@ <div id="sidebar"> +<h3>Contents</h3> + @@ -176,24 +182,10 @@ - <hr> - - -<div class="panel panel-default"> - <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#allprocs-0">All Procedures</a></h3></div> - <div id="allprocs-0" class="panel-collapse collapse"> - <div class="list-group"> - - <a class="list-group-item" href="../proc/ia.html">IA</a> - - <a class="list-group-item" href="../proc/statis.html">STATIS</a> - - </div> - </div> -</div> +<em>None</em> -</div> +</div> </div> @@ -202,13 +194,15 @@ subroutine STATIS(NI, NJ, NK, PHI, RMS, MW, SIG) - + </h2> + <p>calculate mean, rms, stdev</p> + <h3>Arguments</h3> @@ -333,10 +327,16 @@ subroutine STATIS(NI, NJ, NK, PHI, RMS, MW, SIG) + <br> + + - <h3>Called By</h3> - - <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Called by</h3> + </div> + <div class="panel-body"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <!-- Generated by graphviz version 2.38.0 (20140413.2041) @@ -354,7 +354,7 @@ subroutine STATIS(NI, NJ, NK, PHI, RMS, MW, SIG) </g> <!-- program~preconvert --> <g id="proc~~statis~~CalledByGraph_node2" class="node"><title>program~preconvert</title> -<g id="a_proc~~statis~~CalledByGraph_node2"><a xlink:href="../program/preconvert.html" xlink:title="PRECONVERT"> +<g id="a_proc~~statis~~CalledByGraph_node2"><a xlink:href=".././program/preconvert.html" xlink:title="PRECONVERT"> <polygon fill="#f0ad4e" stroke="#f0ad4e" points="85,-24 0,-24 0,-0 85,-0 85,-24"/> <text text-anchor="middle" x="42.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> </a> @@ -367,17 +367,7 @@ subroutine STATIS(NI, NJ, NK, PHI, RMS, MW, SIG) </g> </g> </svg> -</div> - <div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div> - <div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"> - <div class="modal-dialog modal-lg" role="document"> - <div class="modal-content"> - <div class="modal-header"> - <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> - <h4 class="modal-title" id="-graph-help-label">Graph Key</h4> - </div> - <div class="modal-body"> - +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> <p>Nodes of different colours represent the following: </p> <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" @@ -429,17 +419,17 @@ subroutine STATIS(NI, NJ, NK, PHI, RMS, MW, SIG) This could include the module procedures in a generic interface or the implementation in a submodule of an interface in a parent module. </p> - - </div> - </div> - </div> - </div> - + </div></div></div></div> + </div> + </div> <br> <section class="visible-xs visible-sm hidden-md"> +<h3>Contents</h3> + + @@ -459,6 +449,8 @@ subroutine STATIS(NI, NJ, NK, PHI, RMS, MW, SIG) + +<em>None</em> </section> @@ -486,32 +478,14 @@ subroutine STATIS(NI, NJ, NK, PHI, RMS, MW, SIG) </div> </div> - <section class="visible-xs visible-sm hidden-md"> - <hr> - - -<div class="panel panel-default"> - <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#allprocs-1">All Procedures</a></h3></div> - <div id="allprocs-1" class="panel-collapse collapse"> - <div class="list-group"> - - <a class="list-group-item" href="../proc/ia.html">IA</a> - - <a class="list-group-item" href="../proc/statis.html">STATIS</a> - - </div> - </div> -</div> - - - </section> <hr> </div> <!-- /container --> <footer> <div class="container"> <div class="row"> - <div class="col-xs-6 col-md-4"><p>© 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> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by @@ -519,7 +493,7 @@ subroutine STATIS(NI, NJ, NK, PHI, RMS, MW, SIG) </p> </div> - <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> + <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<sup>1</sup></p></div> </div> <br> </div> <!-- /container --> @@ -542,12 +516,17 @@ subroutine STATIS(NI, NJ, NK, PHI, RMS, MW, SIG) MathJax.Hub.Config({ TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, jax: ['input/TeX','input/MathML','output/HTML-CSS'], - extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'], - 'HTML-CSS': { - styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: '#000000 ! important'} } - } + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] }); </script> - <!-- <script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> --> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="../tipuesearch/tipuesearch_content.js"></script> + <script src="../tipuesearch/tipuesearch_set.js"></script> + <script src="../tipuesearch/tipuesearch.js"></script> + + </body> </html> \ No newline at end of file diff --git a/Documentation/FORD/V5/Doc_original/module/phtogr.html b/Documentation/FORD/V6/Doc/proc/vdtouv.html similarity index 57% rename from Documentation/FORD/V5/Doc_original/module/phtogr.html rename to Documentation/FORD/V6/Doc/proc/vdtouv.html index ee1e9991837e96392ae2d2a615d14a3c1d37064a..d79248c18903169d9802347e95f51988a5955525 100644 --- a/Documentation/FORD/V5/Doc_original/module/phtogr.html +++ b/Documentation/FORD/V6/Doc/proc/vdtouv.html @@ -4,19 +4,22 @@ <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> - - <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> - <meta name="author" content="Leopold Haimberger" > + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > <link rel="icon" href="../favicon.png"> - <title>PHTOGR – Flex_extract: Calculation of etadot</title> + <title>VDTOUV – Flex_extract: Calculation of etadot</title> <link href="../css/bootstrap.min.css" rel="stylesheet"> <link href="../css/pygments.css" rel="stylesheet"> <link href="../css/font-awesome.min.css" rel="stylesheet"> <link href="../css/local.css" rel="stylesheet"> + <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> <!--[if lt IE 9]> @@ -27,13 +30,6 @@ <script src="../js/jquery-2.1.3.min.js"></script> <script src="../js/svg-pan-zoom.min.js"></script> - - <script src="../tipuesearch/tipuesearch_content.js"></script> - <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> - <script src="../tipuesearch/tipuesearch_set.js"></script> - <script src="../tipuesearch/tipuesearch.js"></script> - - </head> <body> @@ -48,37 +44,41 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> - + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" - aria-expanded="false">Contents <span class="caret"></span></a> - <ul class="dropdown-menu"> + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + <li><a href="../lists/files.html">Source Files</a></li> - - + + + <li><a href="../lists/modules.html">Modules</a></li> - + <li><a href="../lists/procedures.html">Procedures</a></li> - - - + + + <li><a href="../program/preconvert.html">Program</a></li> - + </ul> </li> + <li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> + <li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> @@ -108,8 +108,8 @@ <div class="row"> - <h1>PHTOGR - <small>Module</small> + <h1>VDTOUV + <small>Subroutine</small> </h1> @@ -125,19 +125,25 @@ <li><i class="fa fa-list-ol"></i> <a data-toggle="tooltip" - data-placement="bottom" data-html="true" - title="54.4% of total for modules and submodules.">397 statements</a> + data-placement="bottom" data-html="true" + title=" 2.1% of total for procedures.">21 statements</a> </li> - <li><i class="fa fa-code"></i><a href="../src/phgrreal.f"> Source File</a></li> + + <li><i class="fa fa-code"></i><a href="../src/ftrafo.f90"> Source File</a></li> + </ul> <ol class="breadcrumb in-well text-right"> - <li><a href='../sourcefile/phgrreal.f.html'>phgrreal.f</a></li> + + <li><a href='../sourcefile/ftrafo.f90.html'>ftrafo.f90</a></li> + + <li><a href='../module/ftrafo.html'>FTRAFO</a></li> + - <li class="active">PHTOGR</li> + <li class="active">VDTOUV</li> </ol> </div> </div> @@ -155,6 +161,8 @@ <div id="sidebar"> +<h3>Contents</h3> + @@ -176,100 +184,71 @@ - <hr> - - -<div class="panel panel-default"> - <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#allmods-0">All Modules</a></h3></div> - <div id="allmods-0" class="panel-collapse collapse"> - <div class="list-group"> - - <a class="list-group-item" href="../module/grtoph.html">GRTOPH</a> - - <a class="list-group-item" href="../module/phtogr.html">PHTOGR</a> - - <a class="list-group-item" href="../module/rwgrib2.html">RWGRIB2</a> - - </div> - </div> -</div> +<em>None</em> -</div> +</div> </div> <div class="col-md-9" id='text'> - - - - + <h2> +public subroutine VDTOUV(XMN, XLAM, XPHI, GWSAVE, IFAX, P, MLAT, MNAUF, NI, NJ, NK) + +</h2> + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Uses</h3> + </div> + <ul class="list-group"> + + <li class="list-group-item"> + <ul class="list-inline"> - <h3>Used By</h3> + <li><a href='../module/phtogr.html'>PHTOGR</a></li> - <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> + </ul> + </li> + + + + <li class="list-group-item"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <!-- Generated by graphviz version 2.38.0 (20140413.2041) --> -<!-- Title: module~~phtogr~~UsedByGraph Pages: 1 --> -<svg id="modulephtogrUsedByGraph" width="281pt" height="52pt" - viewBox="0.00 0.00 281.00 52.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> -<g id="module~~phtogr~~UsedByGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 48)"> -<title>module~~phtogr~~UsedByGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-48 277,-48 277,4 -4,4"/> -<!-- module~phtogr --> -<g id="module~~phtogr~~UsedByGraph_node1" class="node"><title>module~phtogr</title> -<polygon fill="none" stroke="black" points="58,-24 3.55271e-15,-24 3.55271e-15,-0 58,-0 58,-24"/> -<text text-anchor="middle" x="29" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">PHTOGR</text> -</g> -<!-- module~grtoph --> -<g id="module~~phtogr~~UsedByGraph_node2" class="node"><title>module~grtoph</title> -<g id="a_module~~phtogr~~UsedByGraph_node2"><a xlink:href="../module/grtoph.html" xlink:title="GRTOPH"> -<polygon fill="#337ab7" stroke="#337ab7" points="152,-44 94,-44 94,-20 152,-20 152,-44"/> -<text text-anchor="middle" x="123" y="-29.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GRTOPH</text> -</a> +<!-- Title: proc~~vdtouv~~UsesGraph Pages: 1 --> +<svg id="procvdtouvUsesGraph" width="158pt" height="32pt" + viewBox="0.00 0.00 158.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="proc~~vdtouv~~UsesGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>proc~~vdtouv~~UsesGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 154,-28 154,4 -4,4"/> +<!-- proc~vdtouv --> +<g id="proc~~vdtouv~~UsesGraph_node1" class="node"><title>proc~vdtouv</title> +<polygon fill="none" stroke="black" points="150,-24 94,-24 94,-0 150,-0 150,-24"/> +<text text-anchor="middle" x="122" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">VDTOUV</text> </g> -</g> -<!-- module~phtogr->module~grtoph --> -<g id="module~~phtogr~~UsedByGraph_edge2" class="edge"><title>module~phtogr->module~grtoph</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M58.1029,-18.1093C66.2308,-19.8763 75.2419,-21.8352 83.872,-23.7113"/> -<polygon fill="#000000" stroke="#000000" points="83.2368,-27.1549 93.7521,-25.8592 84.7239,-20.3147 83.2368,-27.1549"/> -</g> -<!-- program~preconvert --> -<g id="module~~phtogr~~UsedByGraph_node3" class="node"><title>program~preconvert</title> -<g id="a_module~~phtogr~~UsedByGraph_node3"><a xlink:href="../program/preconvert.html" xlink:title="PRECONVERT"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="273,-24 188,-24 188,-0 273,-0 273,-24"/> -<text text-anchor="middle" x="230.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> +<!-- module~phtogr --> +<g id="proc~~vdtouv~~UsesGraph_node2" class="node"><title>module~phtogr</title> +<g id="a_proc~~vdtouv~~UsesGraph_node2"><a xlink:href=".././module/phtogr.html" xlink:title="PHTOGR"> +<polygon fill="#337ab7" stroke="#337ab7" points="58,-24 0,-24 0,-0 58,-0 58,-24"/> +<text text-anchor="middle" x="29" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHTOGR</text> </a> </g> </g> -<!-- module~phtogr->program~preconvert --> -<g id="module~~phtogr~~UsedByGraph_edge3" class="edge"><title>module~phtogr->program~preconvert</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M58.0369,-11.4671C69.224,-11.2793 82.2211,-11.092 94,-11 119.777,-10.7986 126.223,-10.8337 152,-11 160.227,-11.0531 168.945,-11.1378 177.45,-11.2361"/> -<polygon fill="#000000" stroke="#000000" points="177.629,-14.7385 187.671,-11.3615 177.715,-7.73902 177.629,-14.7385"/> -</g> -<!-- module~grtoph->program~preconvert --> -<g id="module~~phtogr~~UsedByGraph_edge1" class="edge"><title>module~grtoph->program~preconvert</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M152.272,-26.6404C160.166,-25.1439 168.999,-23.4694 177.794,-21.8022"/> -<polygon fill="#000000" stroke="#000000" points="178.481,-25.2342 187.654,-19.9328 177.178,-18.3567 178.481,-25.2342"/> +<!-- proc~vdtouv->module~phtogr --> +<g id="proc~~vdtouv~~UsesGraph_edge1" class="edge"><title>proc~vdtouv->module~phtogr</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M93.697,-12C85.732,-12 76.8763,-12 68.3625,-12"/> +<polygon fill="#000000" stroke="#000000" points="68.23,-8.5001 58.23,-12 68.23,-15.5001 68.23,-8.5001"/> </g> </g> </svg> -</div> - <div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div> - <div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"> - <div class="modal-dialog modal-lg" role="document"> - <div class="modal-content"> - <div class="modal-header"> - <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> - <h4 class="modal-title" id="-graph-help-label">Graph Key</h4> - </div> - <div class="modal-body"> - +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> <p>Nodes of different colours represent the following: </p> <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" @@ -316,21 +295,219 @@ </svg> - <p>Solid arrows point from a parent (sub)module to the submodule which is - descended from it. Dashed arrows point from a module being used to the - module or program unit using it. + <p>Solid arrows point from a submodule to the (sub)module which it is + descended from. Dashed arrows point from a module or program unit to + modules which it uses. </p> + </div></div></div></div> + </li> + + </ul> + </div> - </div> - </div> - </div> - </div> - - <br> + + + + <p>Berechnung der scale winds aus Vorticity und Divergenz + uebergibt man in XMN die Divergenz, so wird der divergente Anteil des + Windes (XPHI=Ud,XPHI=Vd) zurueckgegeben, uebergibt man die Vorticity, so + erhaelt man den rotationellen Wind (XLAM=Vrot,XPHI=-Urot). + Summiert man beide, erhaelt man den gesamten Scale wind</p> + + + <h3>Arguments</h3> + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" id="variable-xmn"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>XMN</strong>(0:(MNAUF+1)*(MNAUF+2)-1,NK)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-xlam"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>XLAM</strong>(NI,NK)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-xphi"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>XPHI</strong>(NI,NK)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-gwsave"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>GWSAVE</strong>(8*NJ+15,NJ/2)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-ifax%7E10"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>IFAX</strong>(10,NJ)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-p"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>P</strong>(0:(MNAUF+3)*(MNAUF+4)/2,NJ/2)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mlat%7E6"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MLAT</strong>(NJ)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mnauf%7E13"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MNAUF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-ni%7E3"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>NI</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-nj%7E3"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>NJ</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-nk%7E3"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>NK</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + + + <br> <section class="visible-xs visible-sm hidden-md"> +<h3>Contents</h3> + + + @@ -350,6 +527,7 @@ +<em>None</em> </section> @@ -369,40 +547,22 @@ + - </div> - </div> - - <section class="visible-xs visible-sm hidden-md"> - <hr> - -<div class="panel panel-default"> - <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#allmods-1">All Modules</a></h3></div> - <div id="allmods-1" class="panel-collapse collapse"> - <div class="list-group"> - - <a class="list-group-item" href="../module/grtoph.html">GRTOPH</a> - - <a class="list-group-item" href="../module/phtogr.html">PHTOGR</a> - - <a class="list-group-item" href="../module/rwgrib2.html">RWGRIB2</a> - </div> </div> -</div> - </section> - <hr> </div> <!-- /container --> <footer> <div class="container"> <div class="row"> - <div class="col-xs-6 col-md-4"><p>© 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> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by @@ -410,7 +570,7 @@ </p> </div> - <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> + <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<sup>1</sup></p></div> </div> <br> </div> <!-- /container --> @@ -433,12 +593,17 @@ MathJax.Hub.Config({ TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, jax: ['input/TeX','input/MathML','output/HTML-CSS'], - extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'], - 'HTML-CSS': { - styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: '#000000 ! important'} } - } + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] }); </script> - <!-- <script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> --> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="../tipuesearch/tipuesearch_content.js"></script> + <script src="../tipuesearch/tipuesearch_set.js"></script> + <script src="../tipuesearch/tipuesearch.js"></script> + + </body> </html> \ No newline at end of file diff --git a/Documentation/FORD/V5/Doc_original/module/rwgrib2.html b/Documentation/FORD/V6/Doc/proc/vduvsub.html similarity index 56% rename from Documentation/FORD/V5/Doc_original/module/rwgrib2.html rename to Documentation/FORD/V6/Doc/proc/vduvsub.html index 26d817c53c3e29f85842280173d24ee7df9a8270..f22128bc2bd7ffbf06f83b86450dd3bbdebe8f71 100644 --- a/Documentation/FORD/V5/Doc_original/module/rwgrib2.html +++ b/Documentation/FORD/V6/Doc/proc/vduvsub.html @@ -4,19 +4,22 @@ <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> - - <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> - <meta name="author" content="Leopold Haimberger" > + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > <link rel="icon" href="../favicon.png"> - <title>RWGRIB2 – Flex_extract: Calculation of etadot</title> + <title>VDUVSUB – Flex_extract: Calculation of etadot</title> <link href="../css/bootstrap.min.css" rel="stylesheet"> <link href="../css/pygments.css" rel="stylesheet"> <link href="../css/font-awesome.min.css" rel="stylesheet"> <link href="../css/local.css" rel="stylesheet"> + <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> <!--[if lt IE 9]> @@ -27,13 +30,6 @@ <script src="../js/jquery-2.1.3.min.js"></script> <script src="../js/svg-pan-zoom.min.js"></script> - - <script src="../tipuesearch/tipuesearch_content.js"></script> - <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> - <script src="../tipuesearch/tipuesearch_set.js"></script> - <script src="../tipuesearch/tipuesearch.js"></script> - - </head> <body> @@ -48,37 +44,41 @@ <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> - + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" - aria-expanded="false">Contents <span class="caret"></span></a> - <ul class="dropdown-menu"> + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + <li><a href="../lists/files.html">Source Files</a></li> - - + + + <li><a href="../lists/modules.html">Modules</a></li> - + <li><a href="../lists/procedures.html">Procedures</a></li> - - - + + + <li><a href="../program/preconvert.html">Program</a></li> - + </ul> </li> + <li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> + <li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> @@ -108,8 +108,8 @@ <div class="row"> - <h1>RWGRIB2 - <small>Module</small> + <h1>VDUVSUB + <small>Subroutine</small> </h1> @@ -125,19 +125,25 @@ <li><i class="fa fa-list-ol"></i> <a data-toggle="tooltip" - data-placement="bottom" data-html="true" - title="27.0% of total for modules and submodules.">197 statements</a> + data-placement="bottom" data-html="true" + title=" 8.4% of total for procedures.">86 statements</a> </li> - <li><i class="fa fa-code"></i><a href="../src/rwGRIB2.f90"> Source File</a></li> + + <li><i class="fa fa-code"></i><a href="../src/ftrafo.f90"> Source File</a></li> + </ul> <ol class="breadcrumb in-well text-right"> - <li><a href='../sourcefile/rwgrib2.f90.html'>rwGRIB2.f90</a></li> + + <li><a href='../sourcefile/ftrafo.f90.html'>ftrafo.f90</a></li> + + <li><a href='../module/ftrafo.html'>FTRAFO</a></li> + - <li class="active">RWGRIB2</li> + <li class="active">VDUVSUB</li> </ol> </div> </div> @@ -155,6 +161,8 @@ <div id="sidebar"> +<h3>Contents</h3> + @@ -176,82 +184,71 @@ - <hr> - - -<div class="panel panel-default"> - <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#allmods-0">All Modules</a></h3></div> - <div id="allmods-0" class="panel-collapse collapse"> - <div class="list-group"> - - <a class="list-group-item" href="../module/grtoph.html">GRTOPH</a> - - <a class="list-group-item" href="../module/phtogr.html">PHTOGR</a> - - <a class="list-group-item" href="../module/rwgrib2.html">RWGRIB2</a> - - </div> - </div> -</div> +<em>None</em> -</div> +</div> </div> <div class="col-md-9" id='text'> - - - - + <h2> +public subroutine VDUVSUB(J, XMN, XLAM, XPHI, GWSAVE, IFAX, P, GGIND, MLAT, MNAUF, NI, NJ, NK) + +</h2> + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Uses</h3> + </div> + <ul class="list-group"> + + <li class="list-group-item"> + <ul class="list-inline"> - <h3>Used By</h3> + <li><a href='../module/phtogr.html'>PHTOGR</a></li> - <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> + </ul> + </li> + + + + <li class="list-group-item"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <!-- Generated by graphviz version 2.38.0 (20140413.2041) --> -<!-- Title: module~~rwgrib2~~UsedByGraph Pages: 1 --> -<svg id="modulerwgrib2UsedByGraph" width="190pt" height="32pt" - viewBox="0.00 0.00 190.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> -<g id="module~~rwgrib2~~UsedByGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> -<title>module~~rwgrib2~~UsedByGraph</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-28 186,-28 186,4 -4,4"/> -<!-- module~rwgrib2 --> -<g id="module~~rwgrib2~~UsedByGraph_node1" class="node"><title>module~rwgrib2</title> -<polygon fill="none" stroke="black" points="61,-24 -3.55271e-15,-24 -3.55271e-15,-0 61,-0 61,-24"/> -<text text-anchor="middle" x="30.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">RWGRIB2</text> +<!-- Title: proc~~vduvsub~~UsesGraph Pages: 1 --> +<svg id="procvduvsubUsesGraph" width="164pt" height="32pt" + viewBox="0.00 0.00 164.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="proc~~vduvsub~~UsesGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>proc~~vduvsub~~UsesGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 160,-28 160,4 -4,4"/> +<!-- proc~vduvsub --> +<g id="proc~~vduvsub~~UsesGraph_node1" class="node"><title>proc~vduvsub</title> +<polygon fill="none" stroke="black" points="156,-24 94,-24 94,-0 156,-0 156,-24"/> +<text text-anchor="middle" x="125" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">VDUVSUB</text> </g> -<!-- program~preconvert --> -<g id="module~~rwgrib2~~UsedByGraph_node2" class="node"><title>program~preconvert</title> -<g id="a_module~~rwgrib2~~UsedByGraph_node2"><a xlink:href="../program/preconvert.html" xlink:title="PRECONVERT"> -<polygon fill="#f0ad4e" stroke="#f0ad4e" points="182,-24 97,-24 97,-0 182,-0 182,-24"/> -<text text-anchor="middle" x="139.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PRECONVERT</text> +<!-- module~phtogr --> +<g id="proc~~vduvsub~~UsesGraph_node2" class="node"><title>module~phtogr</title> +<g id="a_proc~~vduvsub~~UsesGraph_node2"><a xlink:href=".././module/phtogr.html" xlink:title="PHTOGR"> +<polygon fill="#337ab7" stroke="#337ab7" points="58,-24 0,-24 0,-0 58,-0 58,-24"/> +<text text-anchor="middle" x="29" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHTOGR</text> </a> </g> </g> -<!-- module~rwgrib2->program~preconvert --> -<g id="module~~rwgrib2~~UsedByGraph_edge1" class="edge"><title>module~rwgrib2->program~preconvert</title> -<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M61.0215,-12C68.9354,-12 77.732,-12 86.476,-12"/> -<polygon fill="#000000" stroke="#000000" points="86.6605,-15.5001 96.6605,-12 86.6605,-8.5001 86.6605,-15.5001"/> +<!-- proc~vduvsub->module~phtogr --> +<g id="proc~~vduvsub~~UsesGraph_edge1" class="edge"><title>proc~vduvsub->module~phtogr</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M93.9994,-12C85.8249,-12 76.8574,-12 68.2901,-12"/> +<polygon fill="#000000" stroke="#000000" points="68.1186,-8.5001 58.1185,-12 68.1185,-15.5001 68.1186,-8.5001"/> </g> </g> </svg> -</div> - <div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div> - <div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"> - <div class="modal-dialog modal-lg" role="document"> - <div class="modal-content"> - <div class="modal-header"> - <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> - <h4 class="modal-title" id="-graph-help-label">Graph Key</h4> - </div> - <div class="modal-body"> - +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> <p>Nodes of different colours represent the following: </p> <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" @@ -298,21 +295,242 @@ </svg> - <p>Solid arrows point from a parent (sub)module to the submodule which is - descended from it. Dashed arrows point from a module being used to the - module or program unit using it. + <p>Solid arrows point from a submodule to the (sub)module which it is + descended from. Dashed arrows point from a module or program unit to + modules which it uses. </p> + </div></div></div></div> + </li> + + </ul> + </div> - </div> - </div> - </div> - </div> - - <br> + + + + + <h3>Arguments</h3> + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" id="variable-j%7E3"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>J</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-xmn%7E2"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>XMN</strong>(0:(MNAUF+1)*(MNAUF+2)-1,NK)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-xlam%7E2"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>XLAM</strong>(NI,NK)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-xphi%7E2"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>XPHI</strong>(NI,NK)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-gwsave%7E2"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>GWSAVE</strong>(8*NJ+15,NJ/2)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-ifax%7E11"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>IFAX</strong>(10,NJ)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-p%7E2"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>P</strong>(0:(MNAUF+3)*(MNAUF+4)/2,NJ/2)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-ggind"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>GGIND</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mlat%7E7"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MLAT</strong>(NJ)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mnauf%7E14"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MNAUF</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-ni%7E4"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>NI</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-nj%7E4"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>NJ</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-nk%7E4"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>NK</strong></td><td></td> + +</tr> + +</tbody> +</table> + + + + + + + <br> <section class="visible-xs visible-sm hidden-md"> +<h3>Contents</h3> + + @@ -332,6 +550,8 @@ + +<em>None</em> </section> @@ -351,40 +571,22 @@ + - </div> - </div> - - <section class="visible-xs visible-sm hidden-md"> - <hr> - -<div class="panel panel-default"> - <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#allmods-1">All Modules</a></h3></div> - <div id="allmods-1" class="panel-collapse collapse"> - <div class="list-group"> - - <a class="list-group-item" href="../module/grtoph.html">GRTOPH</a> - - <a class="list-group-item" href="../module/phtogr.html">PHTOGR</a> - - <a class="list-group-item" href="../module/rwgrib2.html">RWGRIB2</a> - </div> </div> -</div> - </section> - <hr> </div> <!-- /container --> <footer> <div class="container"> <div class="row"> - <div class="col-xs-6 col-md-4"><p>© 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> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by @@ -392,7 +594,7 @@ </p> </div> - <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> + <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<sup>1</sup></p></div> </div> <br> </div> <!-- /container --> @@ -415,12 +617,17 @@ MathJax.Hub.Config({ TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, jax: ['input/TeX','input/MathML','output/HTML-CSS'], - extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'], - 'HTML-CSS': { - styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: '#000000 ! important'} } - } + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] }); </script> - <!-- <script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> --> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="../tipuesearch/tipuesearch_content.js"></script> + <script src="../tipuesearch/tipuesearch_set.js"></script> + <script src="../tipuesearch/tipuesearch.js"></script> + + </body> </html> \ No newline at end of file diff --git a/Documentation/FORD/V6/Doc/proc/writelatlon.html b/Documentation/FORD/V6/Doc/proc/writelatlon.html new file mode 100644 index 0000000000000000000000000000000000000000..1841f448184862f23958f4e74b05a486adf98194 --- /dev/null +++ b/Documentation/FORD/V6/Doc/proc/writelatlon.html @@ -0,0 +1,688 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > + <link rel="icon" href="../favicon.png"> + + <title>WRITELATLON – Flex_extract: Calculation of etadot</title> + + <link href="../css/bootstrap.min.css" rel="stylesheet"> + <link href="../css/pygments.css" rel="stylesheet"> + <link href="../css/font-awesome.min.css" rel="stylesheet"> + <link href="../css/local.css" rel="stylesheet"> + + <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> + + + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> + <![endif]--> + + <script src="../js/jquery-2.1.3.min.js"></script> + <script src="../js/svg-pan-zoom.min.js"></script> + + </head> + + <body> + + <!-- Fixed navbar --> + <nav class="navbar navbar-inverse navbar-fixed-top"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + </div> + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> + <a href="#" class="dropdown-toggle" + data-toggle="dropdown" role="button" + aria-haspopup="true" + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + + + <li><a href="../lists/files.html">Source Files</a></li> + + + + <li><a href="../lists/modules.html">Modules</a></li> + + + + <li><a href="../lists/procedures.html">Procedures</a></li> + + + + <li><a href="../program/preconvert.html">Program</a></li> + + </ul> + </li> + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> + + </ul> + + <form action="../search.html" class="navbar-form navbar-right" role="search"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> + </div> +<!-- + <button type="submit" class="btn btn-default">Submit</button> +--> + </form> + + </div><!--/.nav-collapse --> + </div> + </nav> + + <div class="container"> + + + <div class="row"> + <h1>WRITELATLON + <small>Subroutine</small> + + </h1> + +<div class="row"> + <div class="col-lg-12"> +<div class="well well-sm"> + <ul class="list-inline" style="margin-bottom:0px;display:inline"> + + + + + + + <li><i class="fa fa-list-ol"></i> + <a data-toggle="tooltip" + data-placement="bottom" data-html="true" + title=" 4.8% of total for procedures.">49 statements</a> + </li> + + + + <li><i class="fa fa-code"></i><a href="../src/rwGRIB2.f90"> Source File</a></li> + + + </ul> + <ol class="breadcrumb in-well text-right"> + + + <li><a href='../sourcefile/rwgrib2.f90.html'>rwGRIB2.f90</a></li> + + <li><a href='../module/rwgrib2.html'>RWGRIB2</a></li> + + + <li class="active">WRITELATLON</li> + </ol> +</div> +</div> +</div> +<script> + $(function () { + $('[data-toggle="tooltip"]').tooltip() + }) +</script> + + </div> + + <div class="row"> + <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg"> + +<div id="sidebar"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + +</div> + + </div> + + <div class="col-md-9" id='text'> + <h2> +public subroutine WRITELATLON(IUNIT, igrib, ogrib, FELD, MAXL, MAXB, MLEVEL, MLEVELIST, MSTRIDE, MPAR) + + + +</h2> + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Uses</h3> + </div> + <ul class="list-group"> + + <li class="list-group-item"> + <ul class="list-inline"> + + <li>GRIB_API</li> + + </ul> + </li> + + + + <li class="list-group-item"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: proc~~writelatlon~~UsesGraph Pages: 1 --> +<svg id="procwritelatlonUsesGraph" width="193pt" height="32pt" + viewBox="0.00 0.00 193.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="proc~~writelatlon~~UsesGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>proc~~writelatlon~~UsesGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 189,-28 189,4 -4,4"/> +<!-- proc~writelatlon --> +<g id="proc~~writelatlon~~UsesGraph_node1" class="node"><title>proc~writelatlon</title> +<polygon fill="none" stroke="black" points="185,-24 97,-24 97,-0 185,-0 185,-24"/> +<text text-anchor="middle" x="141" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">WRITELATLON</text> +</g> +<!-- GRIB_API --> +<g id="proc~~writelatlon~~UsesGraph_node2" class="node"><title>GRIB_API</title> +<polygon fill="#337ab7" stroke="#337ab7" points="61,-24 -3.55271e-15,-24 -3.55271e-15,-0 61,-0 61,-24"/> +<text text-anchor="middle" x="30.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GRIB_API</text> +</g> +<!-- proc~writelatlon->GRIB_API --> +<g id="proc~~writelatlon~~UsesGraph_edge1" class="edge"><title>proc~writelatlon->GRIB_API</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M96.8062,-12C88.4127,-12 79.6505,-12 71.37,-12"/> +<polygon fill="#000000" stroke="#000000" points="71.2031,-8.5001 61.203,-12 71.203,-15.5001 71.2031,-8.5001"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="490pt" height="32pt" + viewBox="0.00 0.00 489.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 485.5,-28 485.5,4 -4,4"/> +<!-- Module --> +<g id="node1" class="node"><title>Module</title> +<polygon fill="#337ab7" stroke="#337ab7" points="54,-24 0,-24 0,-0 54,-0 54,-24"/> +<text text-anchor="middle" x="27" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Module</text> +</g> +<!-- Submodule --> +<g id="node2" class="node"><title>Submodule</title> +<polygon fill="#5bc0de" stroke="#5bc0de" points="139.5,-24 72.5,-24 72.5,-0 139.5,-0 139.5,-24"/> +<text text-anchor="middle" x="106" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Submodule</text> +</g> +<!-- Subroutine --> +<g id="node3" class="node"><title>Subroutine</title> +<polygon fill="#d9534f" stroke="#d9534f" points="222,-24 158,-24 158,-0 222,-0 222,-24"/> +<text text-anchor="middle" x="190" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> +</g> +<!-- Function --> +<g id="node4" class="node"><title>Function</title> +<polygon fill="#d94e8f" stroke="#d94e8f" points="294,-24 240,-24 240,-0 294,-0 294,-24"/> +<text text-anchor="middle" x="267" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> +</g> +<!-- Program --> +<g id="node5" class="node"><title>Program</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="366,-24 312,-24 312,-0 366,-0 366,-24"/> +<text text-anchor="middle" x="339" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> +</g> +<!-- This Page's Entity --> +<g id="node6" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="481.5,-24 384.5,-24 384.5,-0 481.5,-0 481.5,-24"/> +<text text-anchor="middle" x="433" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a submodule to the (sub)module which it is + descended from. Dashed arrows point from a module or program unit to + modules which it uses. + </p> + </div></div></div></div> + </li> + + </ul> + </div> + + + + + <p>write a field on lat-lon grid to GRIB file</p> + + + <h3>Arguments</h3> + + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> +<th>Intent</th><th>Optional</th> +<th>Attributes</th><th></th><th>Name</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" id="variable-iunit"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>IUNIT</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-igrib"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>igrib</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-ogrib"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>ogrib</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-feld"></span>real</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>FELD</strong>(MAXL,MAXB,MLEVEL)</td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-maxl"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAXL</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-maxb"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MAXB</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mlevel"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MLEVEL</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mlevelist"></span>character(len=*)</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MLEVELIST</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mstride"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MSTRIDE</strong></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mpar"></span>integer</td> + <td></td> + <td></td> + + <td></td><td>::</td> + <td><strong>MPAR</strong>(MSTRIDE)</td><td></td> + +</tr> + +</tbody> +</table> + + + + + <br> + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Calls</h3> + </div> + <div class="panel-body"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: proc~~writelatlon~~CallsGraph Pages: 1 --> +<svg id="procwritelatlonCallsGraph" width="191pt" height="74pt" + viewBox="0.00 0.00 191.00 74.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="proc~~writelatlon~~CallsGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 70)"> +<title>proc~~writelatlon~~CallsGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-70 187,-70 187,4 -4,4"/> +<!-- proc~writelatlon --> +<g id="proc~~writelatlon~~CallsGraph_node1" class="node"><title>proc~writelatlon</title> +<polygon fill="none" stroke="black" points="88,-45 7.10543e-15,-45 7.10543e-15,-21 88,-21 88,-45"/> +<text text-anchor="middle" x="44" y="-30.6" font-family="Helvetica,sans-Serif" font-size="10.50">WRITELATLON</text> +</g> +<!-- grib_write --> +<g id="proc~~writelatlon~~CallsGraph_node2" class="node"><title>grib_write</title> +<polygon fill="#777777" stroke="#777777" points="183,-66 124,-66 124,-42 183,-42 183,-66"/> +<text text-anchor="middle" x="153.5" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grib_write</text> +</g> +<!-- proc~writelatlon->grib_write --> +<g id="proc~~writelatlon~~CallsGraph_edge1" class="edge"><title>proc~writelatlon->grib_write</title> +<path fill="none" stroke="#000000" d="M88.105,-41.4205C96.6597,-43.0917 105.589,-44.836 113.979,-46.475"/> +<polygon fill="#000000" stroke="#000000" points="113.398,-49.9276 123.884,-48.4099 114.74,-43.0575 113.398,-49.9276"/> +</g> +<!-- grib_set --> +<g id="proc~~writelatlon~~CallsGraph_node3" class="node"><title>grib_set</title> +<polygon fill="#777777" stroke="#777777" points="180.5,-24 126.5,-24 126.5,-0 180.5,-0 180.5,-24"/> +<text text-anchor="middle" x="153.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grib_set</text> +</g> +<!-- proc~writelatlon->grib_set --> +<g id="proc~~writelatlon~~CallsGraph_edge2" class="edge"><title>proc~writelatlon->grib_set</title> +<path fill="none" stroke="#000000" d="M88.105,-24.5795C97.5267,-22.739 107.403,-20.8096 116.513,-19.0301"/> +<polygon fill="#000000" stroke="#000000" points="117.263,-22.4497 126.407,-17.0973 115.921,-15.5796 117.263,-22.4497"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="560pt" height="32pt" + viewBox="0.00 0.00 559.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 555.5,-28 555.5,4 -4,4"/> +<!-- Subroutine --> +<g id="node1" class="node"><title>Subroutine</title> +<polygon fill="#d9534f" stroke="#d9534f" points="64,-24 0,-24 0,-0 64,-0 64,-24"/> +<text text-anchor="middle" x="32" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> +</g> +<!-- Function --> +<g id="node2" class="node"><title>Function</title> +<polygon fill="#d94e8f" stroke="#d94e8f" points="136,-24 82,-24 82,-0 136,-0 136,-24"/> +<text text-anchor="middle" x="109" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> +</g> +<!-- Interface --> +<g id="node3" class="node"><title>Interface</title> +<polygon fill="#a7506f" stroke="#a7506f" points="209.5,-24 154.5,-24 154.5,-0 209.5,-0 209.5,-24"/> +<text text-anchor="middle" x="182" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Interface</text> +</g> +<!-- Unknown Procedure Type --> +<g id="node4" class="node"><title>Unknown Procedure Type</title> +<polygon fill="#777777" stroke="#777777" points="364,-24 228,-24 228,-0 364,-0 364,-24"/> +<text text-anchor="middle" x="296" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Unknown Procedure Type</text> +</g> +<!-- Program --> +<g id="node5" class="node"><title>Program</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="436,-24 382,-24 382,-0 436,-0 436,-24"/> +<text text-anchor="middle" x="409" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> +</g> +<!-- This Page's Entity --> +<g id="node6" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="551.5,-24 454.5,-24 454.5,-0 551.5,-0 551.5,-24"/> +<text text-anchor="middle" x="503" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a procedure to one which it calls. Dashed + arrows point from an interface to procedures which implement that interface. + This could include the module procedures in a generic interface or the + implementation in a submodule of an interface in a parent module. + </p> + </div></div></div></div> + </div> + </div> + + + <br> + + <section class="visible-xs visible-sm hidden-md"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + + + + + + + + +<em>None</em> + + + </section> + <br class="visible-xs visible-sm hidden-md"> + + + + + + + + + + + + + + + + + + + + + </div> + </div> + + + <hr> + </div> <!-- /container --> + <footer> + <div class="container"> + <div class="row"> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> + <div class="col-xs-6 col-md-4 col-md-push-4"> + <p class="text-right"> + Documentation generated by + <a href="https://github.com/cmacmackin/ford">FORD</a> + + </p> + </div> + <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<sup>1</sup></p></div> + </div> + <br> + </div> <!-- /container --> + </footer> + + <!-- Bootstrap core JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> +<!-- + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> +--> + <script src="../js/bootstrap.min.js"></script> + <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> + <script src="../js/ie10-viewport-bug-workaround.js"></script> + + <!-- MathJax JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> + <script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, + jax: ['input/TeX','input/MathML','output/HTML-CSS'], + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] + }); + </script> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="../tipuesearch/tipuesearch_content.js"></script> + <script src="../tipuesearch/tipuesearch_set.js"></script> + <script src="../tipuesearch/tipuesearch.js"></script> + + + </body> +</html> \ No newline at end of file diff --git a/Documentation/FORD/V6/Doc/program/preconvert.html b/Documentation/FORD/V6/Doc/program/preconvert.html new file mode 100644 index 0000000000000000000000000000000000000000..fcd8eededc0ce918ba87bb1243f528d0224e8c80 --- /dev/null +++ b/Documentation/FORD/V6/Doc/program/preconvert.html @@ -0,0 +1,2935 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > + <link rel="icon" href="../favicon.png"> + + <title>PRECONVERT – Flex_extract: Calculation of etadot</title> + + <link href="../css/bootstrap.min.css" rel="stylesheet"> + <link href="../css/pygments.css" rel="stylesheet"> + <link href="../css/font-awesome.min.css" rel="stylesheet"> + <link href="../css/local.css" rel="stylesheet"> + + <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> + + + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> + <![endif]--> + + <script src="../js/jquery-2.1.3.min.js"></script> + <script src="../js/svg-pan-zoom.min.js"></script> + + </head> + + <body> + + <!-- Fixed navbar --> + <nav class="navbar navbar-inverse navbar-fixed-top"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + </div> + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> + <a href="#" class="dropdown-toggle" + data-toggle="dropdown" role="button" + aria-haspopup="true" + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + + + <li><a href="../lists/files.html">Source Files</a></li> + + + + <li><a href="../lists/modules.html">Modules</a></li> + + + + <li><a href="../lists/procedures.html">Procedures</a></li> + + + + <li><a href="../program/preconvert.html">Program</a></li> + + </ul> + </li> + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> + + </ul> + + <form action="../search.html" class="navbar-form navbar-right" role="search"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> + </div> +<!-- + <button type="submit" class="btn btn-default">Submit</button> +--> + </form> + + </div><!--/.nav-collapse --> + </div> + </nav> + + <div class="container"> + + + <div class="row"> + <h1>PRECONVERT + <small>Program</small> + + </h1> + +<div class="row"> + <div class="col-lg-12"> +<div class="well well-sm"> + <ul class="list-inline" style="margin-bottom:0px;display:inline"> + + + + + + + <li><i class="fa fa-list-ol"></i> + <a data-toggle="tooltip" + data-placement="bottom" data-html="true" + title="100.0% of total for programs.">370 statements</a> + </li> + + + + <li><i class="fa fa-code"></i><a href="../src/preconvert_new.f90"> Source File</a></li> + + + </ul> + <ol class="breadcrumb in-well text-right"> + + + <li><a href='../sourcefile/preconvert_new.f90.html'>preconvert_new.f90</a></li> + + + <li class="active">PRECONVERT</li> + </ol> +</div> +</div> +</div> +<script> + $(function () { + $('[data-toggle="tooltip"]').tooltip() + }) +</script> + + </div> + + <div class="row"> + <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg"> + +<div id="sidebar"> + +<h3>Contents</h3> + + + + +<div class="panel panel-primary"> + <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#vars-0">Variables</a></h3></div> + <div id="vars-0" class="panel-collapse collapse"> + <div class="list-group"> + + <a class="list-group-item" href="../program/preconvert.html#variable-lnps">LNPS</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-z%7E12">Z</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-t">T</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-uv">UV</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-uv2">UV2</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-qa">QA</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-om">OM</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-omr">OMR</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-div%7E3">DIV</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-eta%7E2">ETA</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-etar">ETAR</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-dpsdl%7E3">DPSDL</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-dpsdm%7E3">DPSDM</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-ps%7E3">PS</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-dpsdt">DPSDT</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-surf">SURF</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-flux">FLUX</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-orolsm">OROLSM</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-wsave%7E8">WSAVE</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-h%7E3">H</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-sinl">SINL</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-cosl">COSL</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-wsave2">WSAVE2</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-breite%7E3">BREITE</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-gbreite">GBREITE</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-ak">AK</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-bk">BK</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-pv">pv</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-x1%7E2">X1</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-x2%7E2">X2</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-rms%7E2">RMS</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-mw%7E2">MW</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-sig%7E2">SIG</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-lam">LAM</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-cua">CUA</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-cva">CVA</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-p%7E5">P</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-pp">PP</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-p2">P2</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-xmn%7E5">XMN</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-hilfuv">HILFUV</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-lnpmn">LNPMN</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-lnpmn2">LNPMN2</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-lnpmn3">LNPMN3</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-weight">WEIGHT</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-ugvg">UGVG</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-dg">DG</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-etag">ETAG</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-gwsave%7E5">GWSAVE</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-psg">PSG</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-hilf">HILF</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-mlat%7E11">MLAT</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-mpsurf">MPSURF</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-mpflux">MPFLUX</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-mporo">MPORO</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-mpar%7E2">MPAR</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-gifax">GIFAX</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-pi">PI</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-cosb">COSB</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-dak">DAK</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-dbk">DBK</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-p00">P00</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-urlar8">URLAR8</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-jmin1">JMIN1</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-lllar8">LLLAR8</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-maxbmin1">MAXBMIN1</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-pir8">PIR8</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-dcosb">DCOSB</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-i">I</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-j%7E4">J</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-k%7E2">K</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-l%7E2">L</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-ierr">IERR</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-m">M</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-ltest">LTEST</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-mk">MK</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-ngi%7E2">NGI</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-ngj%7E2">NGJ</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-mflux">MFLUX</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-msurf">MSURF</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-moro">MORO</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-lunit">LUNIT</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-lunit2">LUNIT2</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-maxl%7E11">MAXL</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-maxb%7E10">MAXB</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-mlevel%7E9">MLEVEL</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-levout">LEVOUT</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-levmin">LEVMIN</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-levmax">LEVMAX</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-momega">MOMEGA</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-momegadiff">MOMEGADIFF</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-mgauss">MGAUSS</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-msmooth">MSMOOTH</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-mnauf%7E17">MNAUF</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-meta">META</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-metadiff">METADIFF</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-mdpdeta">MDPDETA</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-metapar">METAPAR</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-rlo0">RLO0</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-rlo1">RLO1</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-rla0">RLA0</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-rla1">RLA1</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-mlevelist%7E2">MLEVELIST</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-mauf%7E6">MAUF</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-manf%7E5">MANF</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-ifax%7E14">IFAX</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-igrib">IGRIB</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-iret">iret</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-ogrib%7E2">ogrib</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-filename">FILENAME</a> + + </div> + </div> +</div> + + + + + + + + + + + + + + + + + + + + + +</div> + + </div> + + <div class="col-md-9" id='text'> + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Uses</h3> + </div> + <ul class="list-group"> + + <li class="list-group-item"> + <ul class="list-inline"> + + <li><a href='../module/phtogr.html'>PHTOGR</a></li> + + <li><a href='../module/grtoph.html'>GRTOPH</a></li> + + <li><a href='../module/ftrafo.html'>FTRAFO</a></li> + + <li><a href='../module/rwgrib2.html'>RWGRIB2</a></li> + + <li>GRIB_API</li> + + </ul> + </li> + + + + <li class="list-group-item"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: program~~preconvert~~UsesGraph Pages: 1 --> +<svg id="programpreconvertUsesGraph" width="284pt" height="174pt" + viewBox="0.00 0.00 284.00 173.51" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="program~~preconvert~~UsesGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 169.513)"> +<title>program~~preconvert~~UsesGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-169.513 280,-169.513 280,4 -4,4"/> +<!-- program~preconvert --> +<g id="program~~preconvert~~UsesGraph_node1" class="node"><title>program~preconvert</title> +<polygon fill="none" stroke="black" points="276,-108 191,-108 191,-84 276,-84 276,-108"/> +<text text-anchor="middle" x="233.5" y="-93.6" font-family="Helvetica,sans-Serif" font-size="10.50">PRECONVERT</text> +</g> +<!-- module~phtogr --> +<g id="program~~preconvert~~UsesGraph_node2" class="node"><title>module~phtogr</title> +<g id="a_program~~preconvert~~UsesGraph_node2"><a xlink:href=".././module/phtogr.html" xlink:title="PHTOGR"> +<polygon fill="#337ab7" stroke="#337ab7" points="58,-128 0,-128 0,-104 58,-104 58,-128"/> +<text text-anchor="middle" x="29" y="-113.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHTOGR</text> +</a> +</g> +</g> +<!-- program~preconvert->module~phtogr --> +<g id="program~~preconvert~~UsesGraph_edge5" class="edge"><title>program~preconvert->module~phtogr</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M222.49,-108.142C209.017,-123.427 183.431,-148.902 155,-159 129.452,-168.074 119.934,-166.903 94,-159 78.1322,-154.164 62.6299,-143.934 50.8575,-134.666"/> +<polygon fill="#000000" stroke="#000000" points="52.9338,-131.841 42.9927,-128.177 48.4792,-137.241 52.9338,-131.841"/> +</g> +<!-- module~rwgrib2 --> +<g id="program~~preconvert~~UsesGraph_node3" class="node"><title>module~rwgrib2</title> +<g id="a_program~~preconvert~~UsesGraph_node3"><a xlink:href=".././module/rwgrib2.html" xlink:title="RWGRIB2"> +<polygon fill="#337ab7" stroke="#337ab7" points="155,-150 94,-150 94,-126 155,-126 155,-150"/> +<text text-anchor="middle" x="124.5" y="-135.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">RWGRIB2</text> +</a> +</g> +</g> +<!-- program~preconvert->module~rwgrib2 --> +<g id="program~~preconvert~~UsesGraph_edge2" class="edge"><title>program~preconvert->module~rwgrib2</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M201.838,-108.036C190.241,-112.588 176.881,-117.832 164.612,-122.648"/> +<polygon fill="#000000" stroke="#000000" points="163.09,-119.485 155.06,-126.397 165.648,-126.001 163.09,-119.485"/> +</g> +<!-- module~ftrafo --> +<g id="program~~preconvert~~UsesGraph_node4" class="node"><title>module~ftrafo</title> +<g id="a_program~~preconvert~~UsesGraph_node4"><a xlink:href=".././module/ftrafo.html" xlink:title="FTRAFO"> +<polygon fill="#337ab7" stroke="#337ab7" points="152,-108 97,-108 97,-84 152,-84 152,-108"/> +<text text-anchor="middle" x="124.5" y="-93.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">FTRAFO</text> +</a> +</g> +</g> +<!-- program~preconvert->module~ftrafo --> +<g id="program~~preconvert~~UsesGraph_edge4" class="edge"><title>program~preconvert->module~ftrafo</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M190.825,-96C181.36,-96 171.375,-96 162.138,-96"/> +<polygon fill="#000000" stroke="#000000" points="162.093,-92.5001 152.093,-96 162.093,-99.5001 162.093,-92.5001"/> +</g> +<!-- module~grtoph --> +<g id="program~~preconvert~~UsesGraph_node5" class="node"><title>module~grtoph</title> +<g id="a_program~~preconvert~~UsesGraph_node5"><a xlink:href=".././module/grtoph.html" xlink:title="GRTOPH"> +<polygon fill="#337ab7" stroke="#337ab7" points="153.5,-66 95.5,-66 95.5,-42 153.5,-42 153.5,-66"/> +<text text-anchor="middle" x="124.5" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GRTOPH</text> +</a> +</g> +</g> +<!-- program~preconvert->module~grtoph --> +<g id="program~~preconvert~~UsesGraph_edge3" class="edge"><title>program~preconvert->module~grtoph</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M201.838,-83.9645C189.732,-79.2127 175.706,-73.707 163.004,-68.7213"/> +<polygon fill="#000000" stroke="#000000" points="164.191,-65.427 153.603,-65.0311 161.633,-71.943 164.191,-65.427"/> +</g> +<!-- GRIB_API --> +<g id="program~~preconvert~~UsesGraph_node6" class="node"><title>GRIB_API</title> +<polygon fill="#337ab7" stroke="#337ab7" points="155,-24 94,-24 94,-0 155,-0 155,-24"/> +<text text-anchor="middle" x="124.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GRIB_API</text> +</g> +<!-- program~preconvert->GRIB_API --> +<g id="program~~preconvert~~UsesGraph_edge1" class="edge"><title>program~preconvert->GRIB_API</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M218.152,-83.8754C202.76,-70.9784 177.49,-50.1183 155,-33 153.781,-32.0719 152.526,-31.1301 151.254,-30.1858"/> +<polygon fill="#000000" stroke="#000000" points="152.94,-27.0838 142.794,-24.0319 148.822,-32.7447 152.94,-27.0838"/> +</g> +<!-- module~grtoph->module~phtogr --> +<g id="program~~preconvert~~UsesGraph_edge6" class="edge"><title>module~grtoph->module~phtogr</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M105.027,-66.2492C91.2359,-75.3944 72.1852,-88.0269 56.732,-98.274"/> +<polygon fill="#000000" stroke="#000000" points="54.516,-95.5438 48.1161,-103.987 58.3845,-101.378 54.516,-95.5438"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="490pt" height="32pt" + viewBox="0.00 0.00 489.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 485.5,-28 485.5,4 -4,4"/> +<!-- Module --> +<g id="node1" class="node"><title>Module</title> +<polygon fill="#337ab7" stroke="#337ab7" points="54,-24 0,-24 0,-0 54,-0 54,-24"/> +<text text-anchor="middle" x="27" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Module</text> +</g> +<!-- Submodule --> +<g id="node2" class="node"><title>Submodule</title> +<polygon fill="#5bc0de" stroke="#5bc0de" points="139.5,-24 72.5,-24 72.5,-0 139.5,-0 139.5,-24"/> +<text text-anchor="middle" x="106" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Submodule</text> +</g> +<!-- Subroutine --> +<g id="node3" class="node"><title>Subroutine</title> +<polygon fill="#d9534f" stroke="#d9534f" points="222,-24 158,-24 158,-0 222,-0 222,-24"/> +<text text-anchor="middle" x="190" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> +</g> +<!-- Function --> +<g id="node4" class="node"><title>Function</title> +<polygon fill="#d94e8f" stroke="#d94e8f" points="294,-24 240,-24 240,-0 294,-0 294,-24"/> +<text text-anchor="middle" x="267" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> +</g> +<!-- Program --> +<g id="node5" class="node"><title>Program</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="366,-24 312,-24 312,-0 366,-0 366,-24"/> +<text text-anchor="middle" x="339" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> +</g> +<!-- This Page's Entity --> +<g id="node6" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="481.5,-24 384.5,-24 384.5,-0 481.5,-0 481.5,-24"/> +<text text-anchor="middle" x="433" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a submodule to the (sub)module which it is + descended from. Dashed arrows point from a module or program unit to + modules which it uses. + </p> + </div></div></div></div> + </li> + + </ul> + </div> + + + <p>Prepare input data for FLEXPART, esp. vertical velocity as + etadot or etadot * dp/deta</p> +<hr> +<p>author: L. Haimberger + date: 03/2010 + version: V4.0 </p> +<h2>Program PRECONVERT</h2> +<p><strong>Prepares input data for POP model meteorological preprocessor</strong></p> +<hr> +<p>Calculation of etapoint on a regular <script type="math/tex">\lambda-\phi</script> grid and writing + <code>U,V,ETAPOINT,T,PS,Q,SD,MSL,TCC,10U, 10V, 2T,2D,LSP,CP,SSHF,SSR, + EWSS,NSSS</code> + to an output file (input and output in GRIB 1 or 2 format). <br> + etapoint is defined as the total time derivative of + ECMWF vertical coordinate eta multiplied by the derivative + of pressure with respect to eta: + <script type="math/tex; mode=display">\frac{\mathrm{d}\eta}{\mathrm{d}t}\frac{\partial p}{\partial \eta}</script> +</p> +<h3>Version history and authors:</h3> +<ul> +<li> +<p>04/1994: Leopold Haimberger, Gerhard Wotawa</p> +</li> +<li> +<p>2003-05-11: Alexander Beck </p> +</li> +<li> +<p>12/2006: L. Haimberger V2.0, + handle arbitrary regular grids and T799 resolution data </p> +</li> +<li> +<p>03/2010: L. Haimberger V4.0, + handle GRIB edition 2 fields and T1279 resolution data </p> +</li> +<li>04-06/2019: Petra Seibert, + beautify code and add FORD documentation</li> +</ul> +<hr> +<p># </p> +<h2>Input required:</h2> +<div class="codehilite"><pre><span></span> UNIT FILE PARAMETER(S) DATA REPRESENTATION + + 11 fort.11 T,U,V regular lambda phi grid + 12 fort.12 D regular lambda phi grid + 13 fort.13 LNSP spherical harmonics + 14 fort.14 SD,MSL,TCC,10U, + 10V,2T,2D regular lambda phi grid + 16 fort.16 LSP,CP,SSHF, + SSR,EWSS,NSSS regular lambda phi grid + 17 fort.17 Q regular lambda phi grid +</pre></div> + + +<hr> +<h3>Output produced:</h3> +<div class="codehilite"><pre><span></span>UNIT FILE PARAMETER(S) DATA REPRESENTATION + +15 fort.15 `U,V,ETA,T,PS, + `Q,SD,MSL,TCC,` + `10U,10V,2T,2D,` regular lambda phi grid + `LSP,CP,SSHF,` + `SSR,EWSS,NSSS` +</pre></div> + + +<hr> +<p>ALLOCATE VARIABLES </p> +<p>Initialisieren Legendretransformation auf das LaT/LON Gitter </p> +<p>Initialisation of fields for FFT and Legendre transformation + to Gaussian grid and back to phase space + Transformieren des Windes auf das Gaussgitter<br> + Transformieren der horizontalen Divergenz auf das Gaussgitter<br> + Berechnung des Gradienten des Logarithmus des Bodendrucks auf dem Gaussgitter<br> + Berechnung der Vertikalgeschwindigkeit auf dem Gaussgitter<br> + Berechnung von Omega auf dem Gaussgitter </p> +<p>READING OF SURFACE PRESSURE </p> +<p>READING OF U,V </p> +<p>READING OF LNSP on grid </p> +<p>READING OF DIVERGENCE </p> +<p>Initialisieren Legendretransformation auf das LaT/LON Gitter + Without Gaussian grid calculation Legendre Polynomials are calculated + only for one latitude to save space</p> +<p>CREATE FILE VERTICAL.EC NEEDED BY POP MODEL </p> +<p>READING OF T </p> +<p>READING OF SPECIFIC HUMIDITY </p> +<p>WRITE MODEL LEVEL DATA TO fort.15 </p> +<div class="codehilite"><pre><span></span> Calculation of etadot in CONTGL needed scaled winds (ucosphi,vcosphi) + Now we are transforming back to the usual winds. +</pre></div> + + <br> + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Calls</h3> + </div> + <div class="panel-body"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: program~~preconvert~~CallsGraph Pages: 1 --> +<svg id="programpreconvertCallsGraph" width="548pt" height="494pt" + viewBox="0.00 0.00 548.00 494.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="program~~preconvert~~CallsGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 490)"> +<title>program~~preconvert~~CallsGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-490 544,-490 544,4 -4,4"/> +<!-- program~preconvert --> +<g id="program~~preconvert~~CallsGraph_node1" class="node"><title>program~preconvert</title> +<polygon fill="none" stroke="black" points="85,-255 0,-255 0,-231 85,-231 85,-255"/> +<text text-anchor="middle" x="42.5" y="-240.6" font-family="Helvetica,sans-Serif" font-size="10.50">PRECONVERT</text> +</g> +<!-- proc~readspectral --> +<g id="program~~preconvert~~CallsGraph_node2" class="node"><title>proc~readspectral</title> +<g id="a_program~~preconvert~~CallsGraph_node2"><a xlink:href=".././proc/readspectral.html" xlink:title="READSPECTRAL"> +<polygon fill="#d9534f" stroke="#d9534f" points="217,-445 121,-445 121,-421 217,-421 217,-445"/> +<text text-anchor="middle" x="169" y="-430.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">READSPECTRAL</text> +</a> +</g> +</g> +<!-- program~preconvert->proc~readspectral --> +<g id="program~~preconvert~~CallsGraph_edge1" class="edge"><title>program~preconvert->proc~readspectral</title> +<path fill="none" stroke="#000000" d="M46.0024,-255.351C52.779,-285.86 74.2118,-365.667 121,-412 122.072,-413.061 123.206,-414.074 124.391,-415.039"/> +<polygon fill="#000000" stroke="#000000" points="122.559,-418.026 132.797,-420.752 126.493,-412.236 122.559,-418.026"/> +</g> +<!-- proc~phgcut --> +<g id="program~~preconvert~~CallsGraph_node3" class="node"><title>proc~phgcut</title> +<g id="a_program~~preconvert~~CallsGraph_node3"><a xlink:href=".././proc/phgcut.html" xlink:title="PHGCUT"> +<polygon fill="#d9534f" stroke="#d9534f" points="197.5,-360 140.5,-360 140.5,-336 197.5,-336 197.5,-360"/> +<text text-anchor="middle" x="169" y="-345.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGCUT</text> +</a> +</g> +</g> +<!-- program~preconvert->proc~phgcut --> +<g id="program~~preconvert~~CallsGraph_edge2" class="edge"><title>program~preconvert->proc~phgcut</title> +<path fill="none" stroke="#000000" d="M52.0473,-255.01C65.1671,-272.732 91.8311,-306.048 121,-327 124.085,-329.216 127.441,-331.275 130.893,-333.168"/> +<polygon fill="#000000" stroke="#000000" points="129.625,-336.447 140.135,-337.785 132.753,-330.185 129.625,-336.447"/> +</g> +<!-- proc~grph213 --> +<g id="program~~preconvert~~CallsGraph_node4" class="node"><title>proc~grph213</title> +<g id="a_program~~preconvert~~CallsGraph_node4"><a xlink:href=".././proc/grph213.html" xlink:title="GRPH213"> +<polygon fill="#d9534f" stroke="#d9534f" points="199.5,-318 138.5,-318 138.5,-294 199.5,-294 199.5,-318"/> +<text text-anchor="middle" x="169" y="-303.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GRPH213</text> +</a> +</g> +</g> +<!-- program~preconvert->proc~grph213 --> +<g id="program~~preconvert~~CallsGraph_edge3" class="edge"><title>program~preconvert->proc~grph213</title> +<path fill="none" stroke="#000000" d="M64.6524,-255.031C80.1045,-263.68 101.65,-275.451 121,-285 124.141,-286.55 127.421,-288.117 130.725,-289.661"/> +<polygon fill="#000000" stroke="#000000" points="129.452,-292.927 140.001,-293.912 132.369,-286.564 129.452,-292.927"/> +</g> +<!-- grib_close_file --> +<g id="program~~preconvert~~CallsGraph_node5" class="node"><title>grib_close_file</title> +<polygon fill="#777777" stroke="#777777" points="342,-486 261,-486 261,-462 342,-462 342,-486"/> +<text text-anchor="middle" x="301.5" y="-471.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grib_close_file</text> +</g> +<!-- program~preconvert->grib_close_file --> +<g id="program~~preconvert~~CallsGraph_edge12" class="edge"><title>program~preconvert->grib_close_file</title> +<path fill="none" stroke="#000000" d="M43.8111,-255.033C45.4697,-291.752 55.8902,-402.957 121,-454 157.358,-482.503 211.321,-484.822 250.583,-481.655"/> +<polygon fill="#000000" stroke="#000000" points="251.109,-485.121 260.733,-480.69 250.446,-478.153 251.109,-485.121"/> +</g> +<!-- proc~statis --> +<g id="program~~preconvert~~CallsGraph_node6" class="node"><title>proc~statis</title> +<g id="a_program~~preconvert~~CallsGraph_node6"><a xlink:href=".././proc/statis.html" xlink:title="STATIS"> +<polygon fill="#d9534f" stroke="#d9534f" points="196,-276 142,-276 142,-252 196,-252 196,-276"/> +<text text-anchor="middle" x="169" y="-261.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">STATIS</text> +</a> +</g> +</g> +<!-- program~preconvert->proc~statis --> +<g id="program~~preconvert~~CallsGraph_edge4" class="edge"><title>program~preconvert->proc~statis</title> +<path fill="none" stroke="#000000" d="M85.303,-250.051C100.31,-252.582 117.1,-255.415 131.611,-257.862"/> +<polygon fill="#000000" stroke="#000000" points="131.273,-261.354 141.716,-259.566 132.437,-254.452 131.273,-261.354"/> +</g> +<!-- proc~phgr213 --> +<g id="program~~preconvert~~CallsGraph_node7" class="node"><title>proc~phgr213</title> +<g id="a_program~~preconvert~~CallsGraph_node7"><a xlink:href=".././proc/phgr213.html" xlink:title="PHGR213"> +<polygon fill="#d9534f" stroke="#d9534f" points="199.5,-234 138.5,-234 138.5,-210 199.5,-210 199.5,-234"/> +<text text-anchor="middle" x="169" y="-219.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGR213</text> +</a> +</g> +</g> +<!-- program~preconvert->proc~phgr213 --> +<g id="program~~preconvert~~CallsGraph_edge5" class="edge"><title>program~preconvert->proc~phgr213</title> +<path fill="none" stroke="#000000" d="M85.303,-235.949C99.151,-233.613 114.518,-231.021 128.21,-228.712"/> +<polygon fill="#000000" stroke="#000000" points="129.023,-232.124 138.302,-227.009 127.859,-225.221 129.023,-232.124"/> +</g> +<!-- proc~gauleg --> +<g id="program~~preconvert~~CallsGraph_node8" class="node"><title>proc~gauleg</title> +<g id="a_program~~preconvert~~CallsGraph_node8"><a xlink:href=".././proc/gauleg.html" xlink:title="GAULEG"> +<polygon fill="#d9534f" stroke="#d9534f" points="197,-192 141,-192 141,-168 197,-168 197,-192"/> +<text text-anchor="middle" x="169" y="-177.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GAULEG</text> +</a> +</g> +</g> +<!-- program~preconvert->proc~gauleg --> +<g id="program~~preconvert~~CallsGraph_edge6" class="edge"><title>program~preconvert->proc~gauleg</title> +<path fill="none" stroke="#000000" d="M64.6524,-230.969C80.1045,-222.32 101.65,-210.549 121,-201 124.506,-199.27 128.187,-197.518 131.88,-195.801"/> +<polygon fill="#000000" stroke="#000000" points="133.348,-198.979 140.992,-191.643 130.442,-192.61 133.348,-198.979"/> +</g> +<!-- grib_open_file --> +<g id="program~~preconvert~~CallsGraph_node9" class="node"><title>grib_open_file</title> +<polygon fill="#777777" stroke="#777777" points="209,-150 129,-150 129,-126 209,-126 209,-150"/> +<text text-anchor="middle" x="169" y="-135.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grib_open_file</text> +</g> +<!-- program~preconvert->grib_open_file --> +<g id="program~~preconvert~~CallsGraph_edge7" class="edge"><title>program~preconvert->grib_open_file</title> +<path fill="none" stroke="#000000" d="M52.0473,-230.99C65.1671,-213.268 91.8311,-179.952 121,-159 122.887,-157.644 124.876,-156.347 126.926,-155.111"/> +<polygon fill="#000000" stroke="#000000" points="129.063,-157.934 136.183,-150.088 125.724,-151.781 129.063,-157.934"/> +</g> +<!-- set99 --> +<g id="program~~preconvert~~CallsGraph_node10" class="node"><title>set99</title> +<polygon fill="#777777" stroke="#777777" points="196,-108 142,-108 142,-84 196,-84 196,-108"/> +<text text-anchor="middle" x="169" y="-93.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">set99</text> +</g> +<!-- program~preconvert->set99 --> +<g id="program~~preconvert~~CallsGraph_edge8" class="edge"><title>program~preconvert->set99</title> +<path fill="none" stroke="#000000" d="M48.0385,-230.949C57.8286,-206.413 83.1497,-150.183 121,-117 124.497,-113.935 128.513,-111.248 132.695,-108.912"/> +<polygon fill="#000000" stroke="#000000" points="134.543,-111.904 141.972,-104.35 131.454,-105.622 134.543,-111.904"/> +</g> +<!-- proc~posnam --> +<g id="program~~preconvert~~CallsGraph_node11" class="node"><title>proc~posnam</title> +<g id="a_program~~preconvert~~CallsGraph_node11"><a xlink:href=".././proc/posnam.html" xlink:title="POSNAM"> +<polygon fill="#d9534f" stroke="#d9534f" points="198,-66 140,-66 140,-42 198,-42 198,-66"/> +<text text-anchor="middle" x="169" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">POSNAM</text> +</a> +</g> +</g> +<!-- program~preconvert->proc~posnam --> +<g id="program~~preconvert~~CallsGraph_edge10" class="edge"><title>program~preconvert->proc~posnam</title> +<path fill="none" stroke="#000000" d="M46.0243,-230.722C52.8508,-200.391 74.3885,-121.054 121,-75 123.851,-72.1832 127.145,-69.7088 130.64,-67.5434"/> +<polygon fill="#000000" stroke="#000000" points="132.416,-70.5631 139.602,-62.7779 129.13,-64.3825 132.416,-70.5631"/> +</g> +<!-- proc~readlatlon --> +<g id="program~~preconvert~~CallsGraph_node12" class="node"><title>proc~readlatlon</title> +<g id="a_program~~preconvert~~CallsGraph_node12"><a xlink:href=".././proc/readlatlon.html" xlink:title="READLATLON"> +<polygon fill="#d9534f" stroke="#d9534f" points="210,-403 128,-403 128,-379 210,-379 210,-403"/> +<text text-anchor="middle" x="169" y="-388.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">READLATLON</text> +</a> +</g> +</g> +<!-- program~preconvert->proc~readlatlon --> +<g id="program~~preconvert~~CallsGraph_edge11" class="edge"><title>program~preconvert->proc~readlatlon</title> +<path fill="none" stroke="#000000" d="M48.2393,-255.373C58.2264,-280.003 83.6347,-335.657 121,-369 122.882,-370.68 124.915,-372.255 127.043,-373.729"/> +<polygon fill="#000000" stroke="#000000" points="125.237,-376.727 135.604,-378.916 128.865,-370.74 125.237,-376.727"/> +</g> +<!-- proc~phgrad --> +<g id="program~~preconvert~~CallsGraph_node13" class="node"><title>proc~phgrad</title> +<g id="a_program~~preconvert~~CallsGraph_node13"><a xlink:href=".././proc/phgrad.html" xlink:title="PHGRAD"> +<polygon fill="#d9534f" stroke="#d9534f" points="197.5,-24 140.5,-24 140.5,-0 197.5,-0 197.5,-24"/> +<text text-anchor="middle" x="169" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGRAD</text> +</a> +</g> +</g> +<!-- program~preconvert->proc~phgrad --> +<g id="program~~preconvert~~CallsGraph_edge9" class="edge"><title>program~preconvert->proc~phgrad</title> +<path fill="none" stroke="#000000" d="M44.7073,-230.868C48.8134,-195.73 65.248,-92.5977 121,-33 123.954,-29.8428 127.469,-27.1289 131.229,-24.8035"/> +<polygon fill="#000000" stroke="#000000" points="133.059,-27.796 140.295,-20.057 129.812,-21.5945 133.059,-27.796"/> +</g> +<!-- proc~readspectral->grib_close_file --> +<g id="program~~preconvert~~CallsGraph_edge14" class="edge"><title>proc~readspectral->grib_close_file</title> +<path fill="none" stroke="#000000" d="M208.448,-445.08C222.132,-449.379 237.719,-454.276 252.127,-458.802"/> +<polygon fill="#000000" stroke="#000000" points="251.286,-462.207 261.875,-461.865 253.384,-455.529 251.286,-462.207"/> +</g> +<!-- grib_count_in_file --> +<g id="program~~preconvert~~CallsGraph_node19" class="node"><title>grib_count_in_file</title> +<polygon fill="#777777" stroke="#777777" points="350,-444 253,-444 253,-420 350,-420 350,-444"/> +<text text-anchor="middle" x="301.5" y="-429.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grib_count_in_file</text> +</g> +<!-- proc~readspectral->grib_count_in_file --> +<g id="program~~preconvert~~CallsGraph_edge13" class="edge"><title>proc~readspectral->grib_count_in_file</title> +<path fill="none" stroke="#000000" d="M217.113,-432.639C225.314,-432.576 233.93,-432.51 242.385,-432.445"/> +<polygon fill="#000000" stroke="#000000" points="242.605,-435.944 252.578,-432.367 242.552,-428.944 242.605,-435.944"/> +</g> +<!-- proc~phsymcut --> +<g id="program~~preconvert~~CallsGraph_node14" class="node"><title>proc~phsymcut</title> +<g id="a_program~~preconvert~~CallsGraph_node14"><a xlink:href=".././proc/phsymcut.html" xlink:title="PHSYMCUT"> +<polygon fill="#d9534f" stroke="#d9534f" points="337,-402 266,-402 266,-378 337,-378 337,-402"/> +<text text-anchor="middle" x="301.5" y="-387.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHSYMCUT</text> +</a> +</g> +</g> +<!-- proc~phgcut->proc~phsymcut --> +<g id="program~~preconvert~~CallsGraph_edge15" class="edge"><title>proc~phgcut->proc~phsymcut</title> +<path fill="none" stroke="#000000" d="M197.676,-356.907C214.701,-362.387 236.904,-369.532 256.318,-375.781"/> +<polygon fill="#000000" stroke="#000000" points="255.29,-379.126 265.882,-378.858 257.435,-372.463 255.29,-379.126"/> +</g> +<!-- proc~phgpns --> +<g id="program~~preconvert~~CallsGraph_node18" class="node"><title>proc~phgpns</title> +<g id="a_program~~preconvert~~CallsGraph_node18"><a xlink:href=".././proc/phgpns.html" xlink:title="PHGPNS"> +<polygon fill="#d9534f" stroke="#d9534f" points="329.5,-360 273.5,-360 273.5,-336 329.5,-336 329.5,-360"/> +<text text-anchor="middle" x="301.5" y="-345.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHGPNS</text> +</a> +</g> +</g> +<!-- proc~phgcut->proc~phgpns --> +<g id="program~~preconvert~~CallsGraph_edge16" class="edge"><title>proc~phgcut->proc~phgpns</title> +<path fill="none" stroke="#000000" d="M197.676,-348C216.749,-348 242.32,-348 263.19,-348"/> +<polygon fill="#000000" stroke="#000000" points="263.312,-351.5 273.312,-348 263.312,-344.5 263.312,-351.5"/> +</g> +<!-- proc~grphsub --> +<g id="program~~preconvert~~CallsGraph_node16" class="node"><title>proc~grphsub</title> +<g id="a_program~~preconvert~~CallsGraph_node16"><a xlink:href=".././proc/grphsub.html" xlink:title="GRPHSUB"> +<polygon fill="#d9534f" stroke="#d9534f" points="333.5,-276 269.5,-276 269.5,-252 333.5,-252 333.5,-276"/> +<text text-anchor="middle" x="301.5" y="-261.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">GRPHSUB</text> +</a> +</g> +</g> +<!-- proc~grph213->proc~grphsub --> +<g id="program~~preconvert~~CallsGraph_edge18" class="edge"><title>proc~grph213->proc~grphsub</title> +<path fill="none" stroke="#000000" d="M199.612,-296.47C217.368,-290.755 240.203,-283.406 259.656,-277.145"/> +<polygon fill="#000000" stroke="#000000" points="260.738,-280.474 269.185,-274.078 258.593,-273.81 260.738,-280.474"/> +</g> +<!-- ind --> +<g id="program~~preconvert~~CallsGraph_node21" class="node"><title>ind</title> +<polygon fill="#777777" stroke="#777777" points="328.5,-318 274.5,-318 274.5,-294 328.5,-294 328.5,-318"/> +<text text-anchor="middle" x="301.5" y="-303.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">ind</text> +</g> +<!-- proc~grph213->ind --> +<g id="program~~preconvert~~CallsGraph_edge17" class="edge"><title>proc~grph213->ind</title> +<path fill="none" stroke="#000000" d="M199.612,-306C218.696,-306 243.646,-306 263.959,-306"/> +<polygon fill="#000000" stroke="#000000" points="264.104,-309.5 274.104,-306 264.104,-302.5 264.104,-309.5"/> +</g> +<!-- proc~phsym --> +<g id="program~~preconvert~~CallsGraph_node15" class="node"><title>proc~phsym</title> +<g id="a_program~~preconvert~~CallsGraph_node15"><a xlink:href=".././proc/phsym.html" xlink:title="PHSYM"> +<polygon fill="#d9534f" stroke="#d9534f" points="328.5,-234 274.5,-234 274.5,-210 328.5,-210 328.5,-234"/> +<text text-anchor="middle" x="301.5" y="-219.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">PHSYM</text> +</a> +</g> +</g> +<!-- proc~phgr213->proc~phsym --> +<g id="program~~preconvert~~CallsGraph_edge19" class="edge"><title>proc~phgr213->proc~phsym</title> +<path fill="none" stroke="#000000" d="M199.612,-222C218.696,-222 243.646,-222 263.959,-222"/> +<polygon fill="#000000" stroke="#000000" points="264.104,-225.5 274.104,-222 264.104,-218.5 264.104,-225.5"/> +</g> +<!-- dcos --> +<g id="program~~preconvert~~CallsGraph_node20" class="node"><title>dcos</title> +<polygon fill="#777777" stroke="#777777" points="328.5,-192 274.5,-192 274.5,-168 328.5,-168 328.5,-192"/> +<text text-anchor="middle" x="301.5" y="-177.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">dcos</text> +</g> +<!-- proc~gauleg->dcos --> +<g id="program~~preconvert~~CallsGraph_edge20" class="edge"><title>proc~gauleg->dcos</title> +<path fill="none" stroke="#000000" d="M197.04,-180C216.455,-180 242.84,-180 264.104,-180"/> +<polygon fill="#000000" stroke="#000000" points="264.385,-183.5 274.385,-180 264.385,-176.5 264.385,-183.5"/> +</g> +<!-- proc~readlatlon->grib_close_file --> +<g id="program~~preconvert~~CallsGraph_edge22" class="edge"><title>proc~readlatlon->grib_close_file</title> +<path fill="none" stroke="#000000" d="M202.381,-403.237C207.483,-405.785 212.54,-408.712 217,-412 236.52,-426.389 233.452,-438.65 253,-453 254.831,-454.344 256.761,-455.627 258.753,-456.847"/> +<polygon fill="#000000" stroke="#000000" points="257.322,-460.054 267.772,-461.798 260.69,-453.918 257.322,-460.054"/> +</g> +<!-- proc~readlatlon->grib_count_in_file --> +<g id="program~~preconvert~~CallsGraph_edge21" class="edge"><title>proc~readlatlon->grib_count_in_file</title> +<path fill="none" stroke="#000000" d="M208.448,-403.08C222.132,-407.379 237.719,-412.276 252.127,-416.802"/> +<polygon fill="#000000" stroke="#000000" points="251.286,-420.207 261.875,-419.865 253.384,-413.529 251.286,-420.207"/> +</g> +<!-- integermlat --> +<g id="program~~preconvert~~CallsGraph_node17" class="node"><title>integermlat</title> +<polygon fill="#777777" stroke="#777777" points="334.5,-24 268.5,-24 268.5,-0 334.5,-0 334.5,-24"/> +<text text-anchor="middle" x="301.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">integermlat</text> +</g> +<!-- proc~phgrad->integermlat --> +<g id="program~~preconvert~~CallsGraph_edge23" class="edge"><title>proc~phgrad->integermlat</title> +<path fill="none" stroke="#000000" d="M197.676,-12C215.26,-12 238.368,-12 258.223,-12"/> +<polygon fill="#000000" stroke="#000000" points="258.263,-15.5001 268.263,-12 258.262,-8.5001 258.263,-15.5001"/> +</g> +<!-- proc~rfourtr --> +<g id="program~~preconvert~~CallsGraph_node22" class="node"><title>proc~rfourtr</title> +<g id="a_program~~preconvert~~CallsGraph_node22"><a xlink:href=".././proc/rfourtr.html" xlink:title="RFOURTR"> +<polygon fill="#d9534f" stroke="#d9534f" points="450,-381 386,-381 386,-357 450,-357 450,-381"/> +<text text-anchor="middle" x="418" y="-366.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">RFOURTR</text> +</a> +</g> +</g> +<!-- proc~phsymcut->proc~rfourtr --> +<g id="program~~preconvert~~CallsGraph_edge24" class="edge"><title>proc~phsymcut->proc~rfourtr</title> +<path fill="none" stroke="#000000" d="M337.165,-383.642C349.422,-381.394 363.324,-378.845 376.053,-376.51"/> +<polygon fill="#000000" stroke="#000000" points="376.751,-379.94 385.956,-374.694 375.488,-373.055 376.751,-379.94"/> +</g> +<!-- proc~phgpns->proc~rfourtr --> +<g id="program~~preconvert~~CallsGraph_edge25" class="edge"><title>proc~phgpns->proc~rfourtr</title> +<path fill="none" stroke="#000000" d="M329.635,-352.977C343.283,-355.48 360.123,-358.568 375.364,-361.364"/> +<polygon fill="#000000" stroke="#000000" points="375.134,-364.88 385.601,-363.241 376.397,-357.995 375.134,-364.88"/> +</g> +<!-- fft99 --> +<g id="program~~preconvert~~CallsGraph_node23" class="node"><title>fft99</title> +<polygon fill="#777777" stroke="#777777" points="540,-381 486,-381 486,-357 540,-357 540,-381"/> +<text text-anchor="middle" x="513" y="-366.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">fft99</text> +</g> +<!-- proc~rfourtr->fft99 --> +<g id="program~~preconvert~~CallsGraph_edge26" class="edge"><title>proc~rfourtr->fft99</title> +<path fill="none" stroke="#000000" d="M450.226,-369C458.48,-369 467.455,-369 475.941,-369"/> +<polygon fill="#000000" stroke="#000000" points="475.969,-372.5 485.969,-369 475.969,-365.5 475.969,-372.5"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="560pt" height="32pt" + viewBox="0.00 0.00 559.50 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 555.5,-28 555.5,4 -4,4"/> +<!-- Subroutine --> +<g id="node1" class="node"><title>Subroutine</title> +<polygon fill="#d9534f" stroke="#d9534f" points="64,-24 0,-24 0,-0 64,-0 64,-24"/> +<text text-anchor="middle" x="32" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Subroutine</text> +</g> +<!-- Function --> +<g id="node2" class="node"><title>Function</title> +<polygon fill="#d94e8f" stroke="#d94e8f" points="136,-24 82,-24 82,-0 136,-0 136,-24"/> +<text text-anchor="middle" x="109" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Function</text> +</g> +<!-- Interface --> +<g id="node3" class="node"><title>Interface</title> +<polygon fill="#a7506f" stroke="#a7506f" points="209.5,-24 154.5,-24 154.5,-0 209.5,-0 209.5,-24"/> +<text text-anchor="middle" x="182" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Interface</text> +</g> +<!-- Unknown Procedure Type --> +<g id="node4" class="node"><title>Unknown Procedure Type</title> +<polygon fill="#777777" stroke="#777777" points="364,-24 228,-24 228,-0 364,-0 364,-24"/> +<text text-anchor="middle" x="296" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Unknown Procedure Type</text> +</g> +<!-- Program --> +<g id="node5" class="node"><title>Program</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="436,-24 382,-24 382,-0 436,-0 436,-24"/> +<text text-anchor="middle" x="409" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Program</text> +</g> +<!-- This Page's Entity --> +<g id="node6" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="551.5,-24 454.5,-24 454.5,-0 551.5,-0 551.5,-24"/> +<text text-anchor="middle" x="503" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a procedure to one which it calls. Dashed + arrows point from an interface to procedures which implement that interface. + This could include the module procedures in a generic interface or the + implementation in a submodule of an interface in a parent module. + </p> + </div></div></div></div> + </div> + </div> + + <br> + + <section class="visible-xs visible-sm hidden-md"> + +<h3>Contents</h3> + + + + +<div class="panel panel-primary"> + <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#vars-1">Variables</a></h3></div> + <div id="vars-1" class="panel-collapse collapse"> + <div class="list-group"> + + <a class="list-group-item" href="../program/preconvert.html#variable-lnps">LNPS</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-z%7E12">Z</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-t">T</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-uv">UV</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-uv2">UV2</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-qa">QA</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-om">OM</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-omr">OMR</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-div%7E3">DIV</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-eta%7E2">ETA</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-etar">ETAR</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-dpsdl%7E3">DPSDL</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-dpsdm%7E3">DPSDM</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-ps%7E3">PS</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-dpsdt">DPSDT</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-surf">SURF</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-flux">FLUX</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-orolsm">OROLSM</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-wsave%7E8">WSAVE</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-h%7E3">H</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-sinl">SINL</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-cosl">COSL</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-wsave2">WSAVE2</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-breite%7E3">BREITE</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-gbreite">GBREITE</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-ak">AK</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-bk">BK</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-pv">pv</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-x1%7E2">X1</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-x2%7E2">X2</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-rms%7E2">RMS</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-mw%7E2">MW</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-sig%7E2">SIG</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-lam">LAM</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-cua">CUA</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-cva">CVA</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-p%7E5">P</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-pp">PP</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-p2">P2</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-xmn%7E5">XMN</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-hilfuv">HILFUV</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-lnpmn">LNPMN</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-lnpmn2">LNPMN2</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-lnpmn3">LNPMN3</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-weight">WEIGHT</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-ugvg">UGVG</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-dg">DG</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-etag">ETAG</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-gwsave%7E5">GWSAVE</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-psg">PSG</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-hilf">HILF</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-mlat%7E11">MLAT</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-mpsurf">MPSURF</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-mpflux">MPFLUX</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-mporo">MPORO</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-mpar%7E2">MPAR</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-gifax">GIFAX</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-pi">PI</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-cosb">COSB</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-dak">DAK</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-dbk">DBK</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-p00">P00</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-urlar8">URLAR8</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-jmin1">JMIN1</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-lllar8">LLLAR8</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-maxbmin1">MAXBMIN1</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-pir8">PIR8</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-dcosb">DCOSB</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-i">I</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-j%7E4">J</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-k%7E2">K</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-l%7E2">L</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-ierr">IERR</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-m">M</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-ltest">LTEST</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-mk">MK</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-ngi%7E2">NGI</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-ngj%7E2">NGJ</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-mflux">MFLUX</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-msurf">MSURF</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-moro">MORO</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-lunit">LUNIT</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-lunit2">LUNIT2</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-maxl%7E11">MAXL</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-maxb%7E10">MAXB</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-mlevel%7E9">MLEVEL</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-levout">LEVOUT</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-levmin">LEVMIN</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-levmax">LEVMAX</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-momega">MOMEGA</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-momegadiff">MOMEGADIFF</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-mgauss">MGAUSS</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-msmooth">MSMOOTH</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-mnauf%7E17">MNAUF</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-meta">META</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-metadiff">METADIFF</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-mdpdeta">MDPDETA</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-metapar">METAPAR</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-rlo0">RLO0</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-rlo1">RLO1</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-rla0">RLA0</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-rla1">RLA1</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-mlevelist%7E2">MLEVELIST</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-mauf%7E6">MAUF</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-manf%7E5">MANF</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-ifax%7E14">IFAX</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-igrib">IGRIB</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-iret">iret</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-ogrib%7E2">ogrib</a> + + <a class="list-group-item" href="../program/preconvert.html#variable-filename">FILENAME</a> + + </div> + </div> +</div> + + + + + + + + + + + + + + + + + + + + + + </section> + <br class="visible-xs visible-sm hidden-md"> + + + + + <section> + <h2>Variables</h2> + +<table class="table table-striped varlist"> +<thead><tr><th>Type</th> + +<th>Attributes</th><th></th><th>Name</th><th></th><th>Initial</th><th></th></thead> + + + +<tbody> + + + + + +<tr> + + <td><span class="anchor" id="variable-lnps"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:,:)</td><td>::</td> + <td><strong>LNPS</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-z%7E12"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:,:)</td><td>::</td> + <td><strong>Z</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-t"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:,:,:)</td><td>::</td> + <td><strong>T</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-uv"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:,:,:)</td><td>::</td> + <td><strong>UV</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-uv2"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:,:,:)</td><td>::</td> + <td><strong>UV2</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-qa"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:,:,:)</td><td>::</td> + <td><strong>QA</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-om"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:,:,:)</td><td>::</td> + <td><strong>OM</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-omr"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:,:,:)</td><td>::</td> + <td><strong>OMR</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-div%7E3"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:,:,:)</td><td>::</td> + <td><strong>DIV</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-eta%7E2"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:,:,:)</td><td>::</td> + <td><strong>ETA</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-etar"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:,:,:)</td><td>::</td> + <td><strong>ETAR</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-dpsdl%7E3"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:,:)</td><td>::</td> + <td><strong>DPSDL</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-dpsdm%7E3"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:,:)</td><td>::</td> + <td><strong>DPSDM</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-ps%7E3"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:,:,:)</td><td>::</td> + <td><strong>PS</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-dpsdt"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:,:,:)</td><td>::</td> + <td><strong>DPSDT</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-surf"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:,:,:)</td><td>::</td> + <td><strong>SURF</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-flux"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:,:,:)</td><td>::</td> + <td><strong>FLUX</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-orolsm"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:,:,:)</td><td>::</td> + <td><strong>OROLSM</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-wsave%7E8"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:)</td><td>::</td> + <td><strong>WSAVE</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-h%7E3"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:)</td><td>::</td> + <td><strong>H</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-sinl"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:)</td><td>::</td> + <td><strong>SINL</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-cosl"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:)</td><td>::</td> + <td><strong>COSL</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-wsave2"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:)</td><td>::</td> + <td><strong>WSAVE2</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-breite%7E3"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:)</td><td>::</td> + <td><strong>BREITE</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-gbreite"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:)</td><td>::</td> + <td><strong>GBREITE</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-ak"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:)</td><td>::</td> + <td><strong>AK</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-bk"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:)</td><td>::</td> + <td><strong>BK</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-pv"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:)</td><td>::</td> + <td><strong>pv</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-x1%7E2"></span>real</td> + + + <td></td><td>::</td> + <td><strong>X1</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-x2%7E2"></span>real</td> + + + <td></td><td>::</td> + <td><strong>X2</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-rms%7E2"></span>real</td> + + + <td></td><td>::</td> + <td><strong>RMS</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mw%7E2"></span>real</td> + + + <td></td><td>::</td> + <td><strong>MW</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-sig%7E2"></span>real</td> + + + <td></td><td>::</td> + <td><strong>SIG</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-lam"></span>real</td> + + + <td></td><td>::</td> + <td><strong>LAM</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-cua"></span>real,</td> + + + <td>ALLOCATABLE</td><td>::</td> + <td><strong>CUA</strong>(:,:,:)</td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-cva"></span>real,</td> + + + <td>ALLOCATABLE</td><td>::</td> + <td><strong>CVA</strong>(:,:,:)</td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-p%7E5"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:,:)</td><td>::</td> + <td><strong>P</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-pp"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:,:)</td><td>::</td> + <td><strong>PP</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-p2"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:,:)</td><td>::</td> + <td><strong>P2</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-xmn%7E5"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:,:)</td><td>::</td> + <td><strong>XMN</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-hilfuv"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:,:)</td><td>::</td> + <td><strong>HILFUV</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-lnpmn"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:)</td><td>::</td> + <td><strong>LNPMN</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-lnpmn2"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:)</td><td>::</td> + <td><strong>LNPMN2</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-lnpmn3"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:)</td><td>::</td> + <td><strong>LNPMN3</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-weight"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:)</td><td>::</td> + <td><strong>WEIGHT</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-ugvg"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:,:)</td><td>::</td> + <td><strong>UGVG</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-dg"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:,:)</td><td>::</td> + <td><strong>DG</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-etag"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:,:)</td><td>::</td> + <td><strong>ETAG</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-gwsave%7E5"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:,:)</td><td>::</td> + <td><strong>GWSAVE</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-psg"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:)</td><td>::</td> + <td><strong>PSG</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-hilf"></span>real,</td> + + + <td>ALLOCATABLE, DIMENSION (:)</td><td>::</td> + <td><strong>HILF</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mlat%7E11"></span>integer,</td> + + + <td>ALLOCATABLE, DIMENSION (:)</td><td>::</td> + <td><strong>MLAT</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mpsurf"></span>integer,</td> + + + <td>ALLOCATABLE, DIMENSION (:)</td><td>::</td> + <td><strong>MPSURF</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mpflux"></span>integer,</td> + + + <td>ALLOCATABLE, DIMENSION (:)</td><td>::</td> + <td><strong>MPFLUX</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mporo"></span>integer,</td> + + + <td>ALLOCATABLE, DIMENSION (:)</td><td>::</td> + <td><strong>MPORO</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mpar%7E2"></span>integer,</td> + + + <td>ALLOCATABLE, DIMENSION (:)</td><td>::</td> + <td><strong>MPAR</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-gifax"></span>integer,</td> + + + <td>ALLOCATABLE</td><td>::</td> + <td><strong>GIFAX</strong>(:,:)</td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-pi"></span>real</td> + + + <td></td><td>::</td> + <td><strong>PI</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-cosb"></span>real</td> + + + <td></td><td>::</td> + <td><strong>COSB</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-dak"></span>real</td> + + + <td></td><td>::</td> + <td><strong>DAK</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-dbk"></span>real</td> + + + <td></td><td>::</td> + <td><strong>DBK</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-p00"></span>real</td> + + + <td></td><td>::</td> + <td><strong>P00</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-urlar8"></span>real</td> + + + <td></td><td>::</td> + <td><strong>URLAR8</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-jmin1"></span>real</td> + + + <td></td><td>::</td> + <td><strong>JMIN1</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-lllar8"></span>real</td> + + + <td></td><td>::</td> + <td><strong>LLLAR8</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-maxbmin1"></span>real</td> + + + <td></td><td>::</td> + <td><strong>MAXBMIN1</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-pir8"></span>real</td> + + + <td></td><td>::</td> + <td><strong>PIR8</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-dcosb"></span>real</td> + + + <td></td><td>::</td> + <td><strong>DCOSB</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-i"></span>integer</td> + + + <td></td><td>::</td> + <td><strong>I</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-j%7E4"></span>integer</td> + + + <td></td><td>::</td> + <td><strong>J</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-k%7E2"></span>integer</td> + + + <td></td><td>::</td> + <td><strong>K</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-l%7E2"></span>integer</td> + + + <td></td><td>::</td> + <td><strong>L</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-ierr"></span>integer</td> + + + <td></td><td>::</td> + <td><strong>IERR</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-m"></span>integer</td> + + + <td></td><td>::</td> + <td><strong>M</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-ltest"></span>integer</td> + + + <td></td><td>::</td> + <td><strong>LTEST</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mk"></span>integer</td> + + + <td></td><td>::</td> + <td><strong>MK</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-ngi%7E2"></span>integer</td> + + + <td></td><td>::</td> + <td><strong>NGI</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-ngj%7E2"></span>integer</td> + + + <td></td><td>::</td> + <td><strong>NGJ</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mflux"></span>integer</td> + + + <td></td><td>::</td> + <td><strong>MFLUX</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-msurf"></span>integer</td> + + + <td></td><td>::</td> + <td><strong>MSURF</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-moro"></span>integer</td> + + + <td></td><td>::</td> + <td><strong>MORO</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-lunit"></span>integer</td> + + + <td></td><td>::</td> + <td><strong>LUNIT</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-lunit2"></span>integer</td> + + + <td></td><td>::</td> + <td><strong>LUNIT2</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-maxl%7E11"></span>integer</td> + + + <td></td><td>::</td> + <td><strong>MAXL</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-maxb%7E10"></span>integer</td> + + + <td></td><td>::</td> + <td><strong>MAXB</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mlevel%7E9"></span>integer</td> + + + <td></td><td>::</td> + <td><strong>MLEVEL</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-levout"></span>integer</td> + + + <td></td><td>::</td> + <td><strong>LEVOUT</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-levmin"></span>integer</td> + + + <td></td><td>::</td> + <td><strong>LEVMIN</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-levmax"></span>integer</td> + + + <td></td><td>::</td> + <td><strong>LEVMAX</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-momega"></span>integer</td> + + + <td></td><td>::</td> + <td><strong>MOMEGA</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-momegadiff"></span>integer</td> + + + <td></td><td>::</td> + <td><strong>MOMEGADIFF</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mgauss"></span>integer</td> + + + <td></td><td>::</td> + <td><strong>MGAUSS</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-msmooth"></span>integer</td> + + + <td></td><td>::</td> + <td><strong>MSMOOTH</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mnauf%7E17"></span>integer</td> + + + <td></td><td>::</td> + <td><strong>MNAUF</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-meta"></span>integer</td> + + + <td></td><td>::</td> + <td><strong>META</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-metadiff"></span>integer</td> + + + <td></td><td>::</td> + <td><strong>METADIFF</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mdpdeta"></span>integer</td> + + + <td></td><td>::</td> + <td><strong>MDPDETA</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-metapar"></span>integer</td> + + + <td></td><td>::</td> + <td><strong>METAPAR</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-rlo0"></span>real</td> + + + <td></td><td>::</td> + <td><strong>RLO0</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-rlo1"></span>real</td> + + + <td></td><td>::</td> + <td><strong>RLO1</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-rla0"></span>real</td> + + + <td></td><td>::</td> + <td><strong>RLA0</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-rla1"></span>real</td> + + + <td></td><td>::</td> + <td><strong>RLA1</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mlevelist%7E2"></span>character(len=300)</td> + + + <td></td><td>::</td> + <td><strong>MLEVELIST</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-mauf%7E6"></span>integer</td> + + + <td></td><td>::</td> + <td><strong>MAUF</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-manf%7E5"></span>integer</td> + + + <td></td><td>::</td> + <td><strong>MANF</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-ifax%7E14"></span>integer</td> + + + <td></td><td>::</td> + <td><strong>IFAX</strong>(10)</td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-igrib"></span>integer</td> + + + <td></td><td>::</td> + <td><strong>IGRIB</strong>(1)</td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-iret"></span>integer</td> + + + <td></td><td>::</td> + <td><strong>iret</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-ogrib%7E2"></span>integer</td> + + + <td></td><td>::</td> + <td><strong>ogrib</strong></td><td></td><td></td><td></td> + +</tr> + + + + + +<tr> + + <td><span class="anchor" id="variable-filename"></span>character(len=80)</td> + + + <td></td><td>::</td> + <td><strong>FILENAME</strong></td><td></td><td></td><td></td> + +</tr> + +</tbody> +</table> + + </section> + <br> + + + + + + + + + + + + + + + + + + </div> + </div> + + + <hr> + </div> <!-- /container --> + <footer> + <div class="container"> + <div class="row"> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> + <div class="col-xs-6 col-md-4 col-md-push-4"> + <p class="text-right"> + Documentation generated by + <a href="https://github.com/cmacmackin/ford">FORD</a> + + </p> + </div> + <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<sup>1</sup></p></div> + </div> + <br> + </div> <!-- /container --> + </footer> + + <!-- Bootstrap core JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> +<!-- + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> +--> + <script src="../js/bootstrap.min.js"></script> + <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> + <script src="../js/ie10-viewport-bug-workaround.js"></script> + + <!-- MathJax JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> + <script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, + jax: ['input/TeX','input/MathML','output/HTML-CSS'], + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] + }); + </script> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="../tipuesearch/tipuesearch_content.js"></script> + <script src="../tipuesearch/tipuesearch_set.js"></script> + <script src="../tipuesearch/tipuesearch.js"></script> + + + </body> +</html> \ No newline at end of file diff --git a/Documentation/FORD/V5/Doc_original/search.html b/Documentation/FORD/V6/Doc/search.html similarity index 87% rename from Documentation/FORD/V5/Doc_original/search.html rename to Documentation/FORD/V6/Doc/search.html index fd01441b1acffebbbe83a2a2667aa2031c670f09..3cfcdaa81fa045b1a991c5d957de3c9edc191350 100644 --- a/Documentation/FORD/V5/Doc_original/search.html +++ b/Documentation/FORD/V6/Doc/search.html @@ -4,10 +4,10 @@ <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> - - <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> - <meta name="author" content="Leopold Haimberger" > + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > <link rel="icon" href="./favicon.png"> <title> @@ -19,6 +19,9 @@ Search Results – Flex_extract: Calculation of etadot <link href="./css/font-awesome.min.css" rel="stylesheet"> <link href="./css/local.css" rel="stylesheet"> + <link href="./tipuesearch/tipuesearch.css" rel="stylesheet"> + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> <!--[if lt IE 9]> @@ -29,13 +32,6 @@ Search Results – Flex_extract: Calculation of etadot <script src="./js/jquery-2.1.3.min.js"></script> <script src="./js/svg-pan-zoom.min.js"></script> - - <script src="./tipuesearch/tipuesearch_content.js"></script> - <link href="./tipuesearch/tipuesearch.css" rel="stylesheet"> - <script src="./tipuesearch/tipuesearch_set.js"></script> - <script src="./tipuesearch/tipuesearch.js"></script> - - </head> <body> @@ -50,37 +46,41 @@ Search Results – Flex_extract: Calculation of etadot <span class="icon-bar"></span> <span class="icon-bar"></span> </button> - <a class="navbar-brand" href="./index.html">Flex_extract: Calculation of etadot <small>7.1</small></a> + <a class="navbar-brand" href="./index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> </div> <div id="navbar" class="navbar-collapse collapse"> <ul class="nav navbar-nav"> - + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" - aria-expanded="false">Contents <span class="caret"></span></a> - <ul class="dropdown-menu"> + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + <li><a href="./lists/files.html">Source Files</a></li> - - + + + <li><a href="./lists/modules.html">Modules</a></li> - + <li><a href="./lists/procedures.html">Procedures</a></li> - - - + + + <li><a href="./program/preconvert.html">Program</a></li> - + </ul> </li> + <li class="visible-xs hidden-sm visible-lg"><a href="./lists/files.html">Source Files</a></li> + <li class="visible-xs hidden-sm visible-lg"><a href="./lists/modules.html">Modules</a></li> @@ -137,7 +137,8 @@ $(document).ready(function() { <footer> <div class="container"> <div class="row"> - <div class="col-xs-6 col-md-4"><p>© 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> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> <div class="col-xs-6 col-md-4 col-md-push-4"> <p class="text-right"> Documentation generated by @@ -145,7 +146,7 @@ $(document).ready(function() { </p> </div> - <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> + <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<sup>1</sup></p></div> </div> <br> </div> <!-- /container --> @@ -168,12 +169,17 @@ $(document).ready(function() { MathJax.Hub.Config({ TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, jax: ['input/TeX','input/MathML','output/HTML-CSS'], - extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'], - 'HTML-CSS': { - styles: { '.MathJax_Display, .MathJax .mo, .MathJax .mi, .MathJax .mn': {color: '#000000 ! important'} } - } + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] }); </script> - <!-- <script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> --> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="./tipuesearch/tipuesearch_content.js"></script> + <script src="./tipuesearch/tipuesearch_set.js"></script> + <script src="./tipuesearch/tipuesearch.js"></script> + + </body> </html> \ No newline at end of file diff --git a/Documentation/FORD/V6/Doc/sourcefile/ftrafo.f90.html b/Documentation/FORD/V6/Doc/sourcefile/ftrafo.f90.html new file mode 100644 index 0000000000000000000000000000000000000000..5c64a5d3a69910e1b8e0a008756883eb17076f83 --- /dev/null +++ b/Documentation/FORD/V6/Doc/sourcefile/ftrafo.f90.html @@ -0,0 +1,967 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > + <link rel="icon" href="../favicon.png"> + + <title>ftrafo.f90 – Flex_extract: Calculation of etadot</title> + + <link href="../css/bootstrap.min.css" rel="stylesheet"> + <link href="../css/pygments.css" rel="stylesheet"> + <link href="../css/font-awesome.min.css" rel="stylesheet"> + <link href="../css/local.css" rel="stylesheet"> + + <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> + + + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> + <![endif]--> + + <script src="../js/jquery-2.1.3.min.js"></script> + <script src="../js/svg-pan-zoom.min.js"></script> + + </head> + + <body> + + <!-- Fixed navbar --> + <nav class="navbar navbar-inverse navbar-fixed-top"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + </div> + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> + <a href="#" class="dropdown-toggle" + data-toggle="dropdown" role="button" + aria-haspopup="true" + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + + + <li><a href="../lists/files.html">Source Files</a></li> + + + + <li><a href="../lists/modules.html">Modules</a></li> + + + + <li><a href="../lists/procedures.html">Procedures</a></li> + + + + <li><a href="../program/preconvert.html">Program</a></li> + + </ul> + </li> + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> + + </ul> + + <form action="../search.html" class="navbar-form navbar-right" role="search"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> + </div> +<!-- + <button type="submit" class="btn btn-default">Submit</button> +--> + </form> + + </div><!--/.nav-collapse --> + </div> + </nav> + + <div class="container"> + + + <div class="row"> + <h1>ftrafo.f90 + <small>Source File</small> + + </h1> + +<div class="row"> + <div class="col-lg-12"> +<div class="well well-sm"> + <ul class="list-inline" style="margin-bottom:0px;display:inline"> + + + + + + + <li><i class="fa fa-list-ol"></i> + <a data-toggle="tooltip" + data-placement="bottom" data-html="true" + title="25.6% of total for source files.">359 statements</a> + </li> + + + + <li><i class="fa fa-code"></i><a href="../src/ftrafo.f90"> Source File</a></li> + + + </ul> + <ol class="breadcrumb in-well text-right"> + + + + <li class="active">ftrafo.f90</li> + </ol> +</div> +</div> +</div> +<script> + $(function () { + $('[data-toggle="tooltip"]').tooltip() + }) +</script> + + </div> + <div class="row"> + <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg"> + +<div id="sidebar"> + +<h3>Contents</h3> + + + + + + + + +<div class="panel panel-primary"> + <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#mods-0">Modules</a></h3></div> + <div id="mods-0" class="panel-collapse collapse"> + <div class="list-group"> + + <a class="list-group-item" href="../module/ftrafo.html">FTRAFO</a> + + </div> + </div> +</div> + + + + + + + + + + + + + + + + +<div class="panel panel-primary"> + <div class="panel-heading text-left"><h3 class="panel-title">Source Code</h3></div> + <div class="list-group"> + <a class="list-group-item" href="../sourcefile/ftrafo.f90.html#src">ftrafo.f90</a> + </div> +</div> + + + +</div> + + </div> + <div class="col-md-9" id='text'> + + <br> + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">This file depends on</h3> + </div> + <div class="panel-body"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: sourcefile~~ftrafo.f90~~EfferentGraph Pages: 1 --> +<svg id="sourcefileftrafof90EfferentGraph" width="169pt" height="32pt" + viewBox="0.00 0.00 169.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="sourcefile~~ftrafo.f90~~EfferentGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>sourcefile~~ftrafo.f90~~EfferentGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 165,-28 165,4 -4,4"/> +<!-- sourcefile~ftrafo.f90 --> +<g id="sourcefile~~ftrafo.f90~~EfferentGraph_node1" class="node"><title>sourcefile~ftrafo.f90</title> +<polygon fill="none" stroke="black" points="161,-24 106,-24 106,-0 161,-0 161,-24"/> +<text text-anchor="middle" x="133.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">ftrafo.f90</text> +</g> +<!-- sourcefile~phgrreal.f90 --> +<g id="sourcefile~~ftrafo.f90~~EfferentGraph_node2" class="node"><title>sourcefile~phgrreal.f90</title> +<g id="a_sourcefile~~ftrafo.f90~~EfferentGraph_node2"><a xlink:href=".././sourcefile/phgrreal.f90.html" xlink:title="phgrreal.f90"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="70,-24 0,-24 0,-0 70,-0 70,-24"/> +<text text-anchor="middle" x="35" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">phgrreal.f90</text> +</a> +</g> +</g> +<!-- sourcefile~ftrafo.f90->sourcefile~phgrreal.f90 --> +<g id="sourcefile~~ftrafo.f90~~EfferentGraph_edge1" class="edge"><title>sourcefile~ftrafo.f90->sourcefile~phgrreal.f90</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M105.876,-12C97.9362,-12 89.0119,-12 80.2636,-12"/> +<polygon fill="#000000" stroke="#000000" points="80.1443,-8.5001 70.1443,-12 80.1443,-15.5001 80.1443,-8.5001"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="190pt" height="32pt" + viewBox="0.00 0.00 190.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 186,-28 186,4 -4,4"/> +<!-- Source File --> +<g id="node1" class="node"><title>Source File</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="67,-24 0,-24 0,-0 67,-0 67,-24"/> +<text text-anchor="middle" x="33.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Source File</text> +</g> +<!-- This Page's Entity --> +<g id="node2" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="182,-24 85,-24 85,-0 182,-0 182,-24"/> +<text text-anchor="middle" x="133.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a file to a file which it depends on. A file + is dependent upon another if the latter must be compiled before the former + can be. + </p> + </div></div></div></div> + </div> + </div> + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Files dependent on this one</h3> + </div> + <div class="panel-body"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: sourcefile~~ftrafo.f90~~AfferentGraph Pages: 1 --> +<svg id="sourcefileftrafof90AfferentGraph" width="206pt" height="32pt" + viewBox="0.00 0.00 206.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="sourcefile~~ftrafo.f90~~AfferentGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>sourcefile~~ftrafo.f90~~AfferentGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 202,-28 202,4 -4,4"/> +<!-- sourcefile~ftrafo.f90 --> +<g id="sourcefile~~ftrafo.f90~~AfferentGraph_node1" class="node"><title>sourcefile~ftrafo.f90</title> +<polygon fill="none" stroke="black" points="55,-24 0,-24 0,-0 55,-0 55,-24"/> +<text text-anchor="middle" x="27.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">ftrafo.f90</text> +</g> +<!-- sourcefile~preconvert_new.f90 --> +<g id="sourcefile~~ftrafo.f90~~AfferentGraph_node2" class="node"><title>sourcefile~preconvert_new.f90</title> +<g id="a_sourcefile~~ftrafo.f90~~AfferentGraph_node2"><a xlink:href=".././sourcefile/preconvert_new.f90.html" xlink:title="preconvert_new.f90"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="198,-24 91,-24 91,-0 198,-0 198,-24"/> +<text text-anchor="middle" x="144.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">preconvert_new.f90</text> +</a> +</g> +</g> +<!-- sourcefile~preconvert_new.f90->sourcefile~ftrafo.f90 --> +<g id="sourcefile~~ftrafo.f90~~AfferentGraph_edge1" class="edge"><title>sourcefile~preconvert_new.f90->sourcefile~ftrafo.f90</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M90.7121,-12C82.1726,-12 73.4935,-12 65.435,-12"/> +<polygon fill="#000000" stroke="#000000" points="65.2629,-8.5001 55.2629,-12 65.2629,-15.5001 65.2629,-8.5001"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="190pt" height="32pt" + viewBox="0.00 0.00 190.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 186,-28 186,4 -4,4"/> +<!-- Source File --> +<g id="node1" class="node"><title>Source File</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="67,-24 0,-24 0,-0 67,-0 67,-24"/> +<text text-anchor="middle" x="33.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Source File</text> +</g> +<!-- This Page's Entity --> +<g id="node2" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="182,-24 85,-24 85,-0 182,-0 182,-24"/> +<text text-anchor="middle" x="133.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a file to a file which it depends on. A file + is dependent upon another if the latter must be compiled before the former + can be. + </p> + </div></div></div></div> + </div> + </div> + + <br> + + <section class="visible-xs visible-sm hidden-md"> + +<h3>Contents</h3> + + + + + + + + +<div class="panel panel-primary"> + <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#mods-1">Modules</a></h3></div> + <div id="mods-1" class="panel-collapse collapse"> + <div class="list-group"> + + <a class="list-group-item" href="../module/ftrafo.html">FTRAFO</a> + + </div> + </div> +</div> + + + + + + + + + + + + + + + + +<div class="panel panel-primary"> + <div class="panel-heading text-left"><h3 class="panel-title">Source Code</h3></div> + <div class="list-group"> + <a class="list-group-item" href="../sourcefile/ftrafo.f90.html#src">ftrafo.f90</a> + </div> +</div> + + + + </section> + <br class="visible-xs visible-sm hidden-md"> + + <section> + <h2><span class="anchor" id="src"></span>Source Code</h2> + <div class="hl"><pre><span></span><a name="ln-1"></a><span class="k">MODULE </span><span class="n">FTRAFO</span> +<a name="ln-2"></a> +<a name="ln-3"></a><span class="c">!! Implementation of the spectral transformation using reduced the Gaussian grid</span> +<a name="ln-4"></a> +<a name="ln-5"></a><span class="k">CONTAINS</span> +<a name="ln-6"></a> +<a name="ln-7"></a><span class="c">! Implementierung der spektralen Transformationsmethode unter Verwendung</span> +<a name="ln-8"></a><span class="c">! des reduzierten Gauss'schen Gitters</span> +<a name="ln-9"></a> +<a name="ln-10"></a> +<a name="ln-11"></a> <span class="k">SUBROUTINE </span><span class="n">VDTOUV</span><span class="p">(</span><span class="n">XMN</span><span class="p">,</span><span class="n">XLAM</span><span class="p">,</span><span class="n">XPHI</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">,</span><span class="n">IFAX</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">NI</span><span class="p">,</span><span class="n">NJ</span><span class="p">,</span><span class="n">NK</span><span class="p">)</span> +<a name="ln-12"></a> +<a name="ln-13"></a><span class="c">!! Berechnung der scale winds aus Vorticity und Divergenz</span> +<a name="ln-14"></a><span class="c">!! uebergibt man in XMN die Divergenz, so wird der divergente Anteil des</span> +<a name="ln-15"></a><span class="c">!! Windes (XPHI=Ud,XPHI=Vd) zurueckgegeben, uebergibt man die Vorticity, so</span> +<a name="ln-16"></a><span class="c">!! erhaelt man den rotationellen Wind (XLAM=Vrot,XPHI=-Urot).</span> +<a name="ln-17"></a><span class="c">!! Summiert man beide, erhaelt man den gesamten Scale wind</span> +<a name="ln-18"></a><span class="c">! GWSAVE ist ein Hilfsfeld fuer die FFT</span> +<a name="ln-19"></a><span class="c">! P enthaelt die assoziierten Legendrepolynome, H deren Ableitung</span> +<a name="ln-20"></a><span class="c">! MLAT enthaelt die Anzahl der Gitterpunkte pro Breitenkreis</span> +<a name="ln-21"></a><span class="c">! MNAUF gibt die spektrale Aufloesung an,</span> +<a name="ln-22"></a><span class="c">! NI = Anzahl der Gauss'schen Gitterpunkte pro Flaeche</span> +<a name="ln-23"></a><span class="c">! NJ = Anzahl der Gauss'schen Breiten,</span> +<a name="ln-24"></a><span class="c">! NK = Anzahl der Niveaus</span> +<a name="ln-25"></a> +<a name="ln-26"></a> <span class="k">USE </span><span class="n">PHTOGR</span> +<a name="ln-27"></a> +<a name="ln-28"></a> <span class="k">IMPLICIT NONE</span> +<a name="ln-29"></a><span class="k"> </span><span class="kt">INTEGER </span><span class="n">J</span><span class="p">,</span><span class="n">N</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">MNAUF</span><span class="p">,</span><span class="n">GGIND</span><span class="p">(</span><span class="n">NJ</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span> +<a name="ln-30"></a> <span class="kt">INTEGER </span><span class="n">MLAT</span><span class="p">(</span><span class="n">NJ</span><span class="p">),</span><span class="n">IFAX</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="n">NJ</span><span class="p">)</span> +<a name="ln-31"></a> <span class="kt">REAL </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="n">NK</span><span class="p">)</span> +<a name="ln-32"></a> <span class="kt">REAL </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">NJ</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span> +<a name="ln-33"></a> <span class="kt">REAL </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> +<a name="ln-34"></a> <span class="kt">REAL </span><span class="n">XLAM</span><span class="p">(</span><span class="n">NI</span><span class="p">,</span><span class="n">NK</span><span class="p">),</span><span class="n">XPHI</span><span class="p">(</span><span class="n">NI</span><span class="p">,</span><span class="n">NK</span><span class="p">)</span> +<a name="ln-35"></a> <span class="kt">REAL </span><span class="n">GWSAVE</span><span class="p">(</span><span class="mi">8</span><span class="o">*</span><span class="n">NJ</span><span class="o">+</span><span class="mi">15</span><span class="p">,</span><span class="n">NJ</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span> +<a name="ln-36"></a> <span class="kt">REAL </span><span class="n">SCR</span><span class="p">,</span><span class="n">SCI</span><span class="p">,</span><span class="n">ACR</span><span class="p">,</span><span class="n">ACI</span><span class="p">,</span><span class="n">MUSCR</span><span class="p">,</span><span class="n">MUSCI</span><span class="p">,</span><span class="n">MUACR</span><span class="p">,</span><span class="n">MUACI</span> +<a name="ln-37"></a> <span class="kt">REAL </span><span class="n">RT</span><span class="p">,</span><span class="n">IT</span> +<a name="ln-38"></a> +<a name="ln-39"></a> <span class="n">GGIND</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="mi">0</span> +<a name="ln-40"></a> <span class="k">DO </span><span class="mi">4</span> <span class="n">J</span> <span class="o">=</span> <span class="mi">2</span><span class="p">,</span><span class="n">NJ</span><span class="o">/</span><span class="mi">2</span> +<a name="ln-41"></a> <span class="n">GGIND</span><span class="p">(</span><span class="n">J</span><span class="p">)</span><span class="o">=</span><span class="n">GGIND</span><span class="p">(</span><span class="n">J</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">+</span><span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-42"></a><span class="mi">4</span> <span class="k">CONTINUE</span> +<a name="ln-43"></a> +<a name="ln-44"></a><span class="c">!$OMP PARALLEL DO SCHEDULE(DYNAMIC)</span> +<a name="ln-45"></a> <span class="k">DO </span><span class="mi">5</span> <span class="n">J</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span><span class="n">NJ</span><span class="o">/</span><span class="mi">2</span> +<a name="ln-46"></a> <span class="k">CALL </span><span class="n">VDUVSUB</span><span class="p">(</span><span class="n">J</span><span class="p">,</span><span class="n">XMN</span><span class="p">,</span><span class="n">XLAM</span><span class="p">,</span><span class="n">XPHI</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span><span class="n">P</span><span class="p">,</span><span class="n">GGIND</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">MNAUF</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> +<a name="ln-47"></a><span class="mi">5</span> <span class="k">CONTINUE</span> +<a name="ln-48"></a><span class="c">!$OMP END PARALLEL DO</span> +<a name="ln-49"></a> +<a name="ln-50"></a> <span class="k">RETURN</span> +<a name="ln-51"></a> +<a name="ln-52"></a><span class="k"> END SUBROUTINE </span><span class="n">VDTOUV</span> +<a name="ln-53"></a> +<a name="ln-54"></a> <span class="k">SUBROUTINE </span><span class="n">VDUVSUB</span><span class="p">(</span><span class="n">J</span><span class="p">,</span><span class="n">XMN</span><span class="p">,</span><span class="n">XLAM</span><span class="p">,</span><span class="n">XPHI</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span><span class="n">P</span><span class="p">,</span><span class="n">GGIND</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">NI</span><span class="p">,</span><span class="n">NJ</span><span class="p">,</span><span class="n">NK</span><span class="p">)</span> +<a name="ln-55"></a> +<a name="ln-56"></a> <span class="k">USE </span><span class="n">PHTOGR</span> +<a name="ln-57"></a> +<a name="ln-58"></a> <span class="k">IMPLICIT NONE</span> +<a name="ln-59"></a> +<a name="ln-60"></a><span class="k"> </span><span class="kt">INTEGER </span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">,</span><span class="n">M</span><span class="p">,</span><span class="n">N</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">MNAUF</span><span class="p">,</span><span class="n">GGIND</span><span class="p">,</span><span class="n">LL</span><span class="p">,</span><span class="n">LLP</span><span class="p">,</span><span class="n">LLH</span><span class="p">,</span><span class="n">LLS</span><span class="p">,</span><span class="n">LLPS</span><span class="p">,</span><span class="n">LLHS</span> +<a name="ln-61"></a> <span class="kt">INTEGER </span><span class="n">MLAT</span><span class="p">(</span><span class="n">NJ</span><span class="p">),</span><span class="n">IFAX</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="n">NJ</span><span class="p">)</span> +<a name="ln-62"></a> <span class="kt">REAL </span><span class="n">UFOUC</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MAXAUF</span><span class="p">),</span><span class="n">MUFOUC</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MAXAUF</span><span class="p">)</span> +<a name="ln-63"></a> <span class="kt">REAL </span><span class="n">VFOUC</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MAXAUF</span><span class="p">),</span><span class="n">MVFOUC</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MAXAUF</span><span class="p">)</span> +<a name="ln-64"></a> <span class="kt">REAL </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="n">NK</span><span class="p">)</span> +<a name="ln-65"></a> <span class="kt">REAL </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">NJ</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span> +<a name="ln-66"></a> <span class="kt">REAL </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> +<a name="ln-67"></a> <span class="kt">REAL </span><span class="n">XLAM</span><span class="p">(</span><span class="n">NI</span><span class="p">,</span><span class="n">NK</span><span class="p">),</span><span class="n">XPHI</span><span class="p">(</span><span class="n">NI</span><span class="p">,</span><span class="n">NK</span><span class="p">)</span> +<a name="ln-68"></a> <span class="kt">REAL </span><span class="n">GWSAVE</span><span class="p">(</span><span class="mi">8</span><span class="o">*</span><span class="n">NJ</span><span class="o">+</span><span class="mi">15</span><span class="p">,</span><span class="n">NJ</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span> +<a name="ln-69"></a> <span class="kt">REAL </span><span class="n">ERAD</span><span class="p">,</span><span class="n">SCR</span><span class="p">,</span><span class="n">SCI</span><span class="p">,</span><span class="n">ACR</span><span class="p">,</span><span class="n">ACI</span><span class="p">,</span><span class="n">MUSCR</span><span class="p">,</span><span class="n">MUSCI</span><span class="p">,</span><span class="n">MUACR</span><span class="p">,</span><span class="n">MUACI</span> +<a name="ln-70"></a> <span class="kt">REAL </span><span class="n">FAC</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MNAUF</span><span class="p">),</span><span class="n">RT</span><span class="p">,</span><span class="n">IT</span> +<a name="ln-71"></a> +<a name="ln-72"></a> <span class="n">ERAD</span> <span class="o">=</span> <span class="mi">636747</span><span class="mf">0.D0</span> +<a name="ln-73"></a> +<a name="ln-74"></a> <span class="n">FAC</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span><span class="o">=</span><span class="mf">0.D0</span> +<a name="ln-75"></a> <span class="k">DO </span><span class="mi">12</span> <span class="n">N</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MNAUF</span> +<a name="ln-76"></a> <span class="n">FAC</span><span class="p">(</span><span class="n">N</span><span class="p">)</span><span class="o">=-</span><span class="n">ERAD</span><span class="o">/</span><span class="nb">DBLE</span><span class="p">(</span><span class="n">N</span><span class="p">)</span><span class="o">/</span><span class="nb">DBLE</span><span class="p">(</span><span class="n">N</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-77"></a><span class="mi">12</span> <span class="k">CONTINUE</span> +<a name="ln-78"></a> +<a name="ln-79"></a><span class="k"> CALL </span><span class="n">DPLGND</span><span class="p">(</span><span class="n">MNAUF</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">J</span><span class="p">),</span><span class="n">H</span><span class="p">)</span> +<a name="ln-80"></a> <span class="k">DO </span><span class="mi">3</span> <span class="n">K</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span><span class="n">NK</span> +<a name="ln-81"></a> <span class="n">LL</span><span class="o">=</span><span class="mi">0</span> +<a name="ln-82"></a> <span class="n">LLP</span><span class="o">=</span><span class="mi">0</span> +<a name="ln-83"></a> <span class="n">LLH</span><span class="o">=</span><span class="mi">0</span> +<a name="ln-84"></a> <span class="k">DO </span><span class="mi">2</span> <span class="n">M</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span><span class="n">MNAUF</span> +<a name="ln-85"></a> <span class="n">SCR</span><span class="o">=</span><span class="mf">0.D0</span> +<a name="ln-86"></a> <span class="n">SCI</span><span class="o">=</span><span class="mf">0.D0</span> +<a name="ln-87"></a> <span class="n">ACR</span><span class="o">=</span><span class="mf">0.D0</span> +<a name="ln-88"></a> <span class="n">ACI</span><span class="o">=</span><span class="mf">0.D0</span> +<a name="ln-89"></a> <span class="n">MUSCR</span><span class="o">=</span><span class="mf">0.D0</span> +<a name="ln-90"></a> <span class="n">MUSCI</span><span class="o">=</span><span class="mf">0.D0</span> +<a name="ln-91"></a> <span class="n">MUACR</span><span class="o">=</span><span class="mf">0.D0</span> +<a name="ln-92"></a> <span class="n">MUACI</span><span class="o">=</span><span class="mf">0.D0</span> +<a name="ln-93"></a> <span class="n">LLS</span><span class="o">=</span><span class="n">LL</span> +<a name="ln-94"></a> <span class="n">LLPS</span><span class="o">=</span><span class="n">LLP</span> +<a name="ln-95"></a> <span class="n">LLHS</span><span class="o">=</span><span class="n">LLH</span> +<a name="ln-96"></a> <span class="k">IF</span> <span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">M</span><span class="o">+</span><span class="mi">1</span> <span class="p">.</span><span class="n">LT</span><span class="p">.</span> <span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="p">))</span> <span class="k">THEN</span> +<a name="ln-97"></a><span class="k"> DO </span><span class="mi">1</span> <span class="n">N</span> <span class="o">=</span> <span class="n">M</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="mi">2</span> +<a name="ln-98"></a> <span class="n">RT</span><span class="o">=</span><span class="n">XMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">LL</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="n">FAC</span><span class="p">(</span><span class="n">N</span><span class="p">)</span> +<a name="ln-99"></a> <span class="n">IT</span><span class="o">=</span><span class="n">XMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">LL</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="n">FAC</span><span class="p">(</span><span class="n">N</span><span class="p">)</span> +<a name="ln-100"></a> <span class="n">SCR</span> <span class="o">=</span><span class="n">SCR</span><span class="o">+</span> <span class="n">RT</span><span class="o">*</span><span class="n">P</span><span class="p">(</span><span class="n">LLP</span><span class="p">,</span><span class="n">J</span><span class="p">)</span> +<a name="ln-101"></a> <span class="n">SCI</span> <span class="o">=</span><span class="n">SCI</span><span class="o">+</span> <span class="n">IT</span><span class="o">*</span><span class="n">P</span><span class="p">(</span><span class="n">LLP</span><span class="p">,</span><span class="n">J</span><span class="p">)</span> +<a name="ln-102"></a> <span class="n">MUACR</span> <span class="o">=</span><span class="n">MUACR</span><span class="o">+</span> <span class="n">RT</span><span class="o">*</span><span class="n">H</span><span class="p">(</span><span class="n">LLH</span><span class="p">)</span> +<a name="ln-103"></a> <span class="n">MUACI</span> <span class="o">=</span><span class="n">MUACI</span><span class="o">+</span> <span class="n">IT</span><span class="o">*</span><span class="n">H</span><span class="p">(</span><span class="n">LLH</span><span class="p">)</span> +<a name="ln-104"></a> <span class="n">LL</span><span class="o">=</span><span class="n">LL</span><span class="o">+</span><span class="mi">2</span> +<a name="ln-105"></a> <span class="n">LLP</span><span class="o">=</span><span class="n">LLP</span><span class="o">+</span><span class="mi">2</span> +<a name="ln-106"></a> <span class="n">LLH</span><span class="o">=</span><span class="n">LLH</span><span class="o">+</span><span class="mi">2</span> +<a name="ln-107"></a><span class="mi">1</span> <span class="k">CONTINUE</span> +<a name="ln-108"></a><span class="k"> </span><span class="n">LL</span><span class="o">=</span><span class="n">LLS</span><span class="o">+</span><span class="mi">1</span> +<a name="ln-109"></a> <span class="n">LLP</span><span class="o">=</span><span class="n">LLPS</span><span class="o">+</span><span class="mi">1</span> +<a name="ln-110"></a> <span class="n">LLH</span><span class="o">=</span><span class="n">LLHS</span><span class="o">+</span><span class="mi">1</span> +<a name="ln-111"></a> <span class="k">DO </span><span class="mi">11</span> <span class="n">N</span> <span class="o">=</span> <span class="n">M</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="mi">2</span> +<a name="ln-112"></a> <span class="n">RT</span><span class="o">=</span><span class="n">XMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">LL</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="n">FAC</span><span class="p">(</span><span class="n">N</span><span class="p">)</span> +<a name="ln-113"></a> <span class="n">IT</span><span class="o">=</span><span class="n">XMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">LL</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="n">FAC</span><span class="p">(</span><span class="n">N</span><span class="p">)</span> +<a name="ln-114"></a> <span class="n">ACR</span> <span class="o">=</span><span class="n">ACR</span><span class="o">+</span> <span class="n">RT</span><span class="o">*</span><span class="n">P</span><span class="p">(</span><span class="n">LLP</span><span class="p">,</span><span class="n">J</span><span class="p">)</span> +<a name="ln-115"></a> <span class="n">ACI</span> <span class="o">=</span><span class="n">ACI</span><span class="o">+</span> <span class="n">IT</span><span class="o">*</span><span class="n">P</span><span class="p">(</span><span class="n">LLP</span><span class="p">,</span><span class="n">J</span><span class="p">)</span> +<a name="ln-116"></a> <span class="n">MUSCR</span> <span class="o">=</span><span class="n">MUSCR</span><span class="o">+</span> <span class="n">RT</span><span class="o">*</span><span class="n">H</span><span class="p">(</span><span class="n">LLH</span><span class="p">)</span> +<a name="ln-117"></a> <span class="n">MUSCI</span> <span class="o">=</span><span class="n">MUSCI</span><span class="o">+</span> <span class="n">IT</span><span class="o">*</span><span class="n">H</span><span class="p">(</span><span class="n">LLH</span><span class="p">)</span> +<a name="ln-118"></a> <span class="n">LL</span><span class="o">=</span><span class="n">LL</span><span class="o">+</span><span class="mi">2</span> +<a name="ln-119"></a> <span class="n">LLP</span><span class="o">=</span><span class="n">LLP</span><span class="o">+</span><span class="mi">2</span> +<a name="ln-120"></a> <span class="n">LLH</span><span class="o">=</span><span class="n">LLH</span><span class="o">+</span><span class="mi">2</span> +<a name="ln-121"></a><span class="mi">11</span> <span class="k">CONTINUE</span> +<a name="ln-122"></a><span class="k"> END IF</span> +<a name="ln-123"></a><span class="k"> </span><span class="n">LL</span><span class="o">=</span><span class="n">LLS</span><span class="o">+</span><span class="p">(</span><span class="n">MNAUF</span><span class="o">-</span><span class="n">M</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-124"></a> <span class="n">LLP</span><span class="o">=</span><span class="n">LLPS</span><span class="o">+</span><span class="p">(</span><span class="n">MNAUF</span><span class="o">-</span><span class="n">M</span><span class="o">+</span><span class="mi">3</span><span class="p">)</span> +<a name="ln-125"></a> <span class="n">LLH</span><span class="o">=</span><span class="n">LLHS</span><span class="o">+</span><span class="p">(</span><span class="n">MNAUF</span><span class="o">-</span><span class="n">M</span><span class="o">+</span><span class="mi">2</span><span class="p">)</span> +<a name="ln-126"></a> +<a name="ln-127"></a> <span class="n">UFOUC</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">M</span><span class="p">)</span><span class="o">=-</span><span class="n">M</span><span class="o">*</span><span class="p">(</span><span class="n">SCI</span><span class="o">-</span><span class="n">ACI</span><span class="p">)</span> +<a name="ln-128"></a> <span class="n">UFOUC</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">M</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">M</span><span class="o">*</span><span class="p">(</span><span class="n">SCR</span><span class="o">-</span><span class="n">ACR</span><span class="p">)</span> +<a name="ln-129"></a> <span class="n">VFOUC</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">M</span><span class="p">)</span><span class="o">=-</span><span class="n">M</span><span class="o">*</span><span class="p">(</span><span class="n">SCI</span><span class="o">+</span><span class="n">ACI</span><span class="p">)</span> +<a name="ln-130"></a> <span class="n">VFOUC</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">M</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">M</span><span class="o">*</span><span class="p">(</span><span class="n">SCR</span><span class="o">+</span><span class="n">ACR</span><span class="p">)</span> +<a name="ln-131"></a> +<a name="ln-132"></a> <span class="n">MUFOUC</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">M</span><span class="p">)</span><span class="o">=-</span><span class="p">(</span><span class="n">MUSCR</span><span class="o">-</span><span class="n">MUACR</span><span class="p">)</span> +<a name="ln-133"></a> <span class="n">MUFOUC</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">M</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">MUSCI</span><span class="o">-</span><span class="n">MUACI</span><span class="p">)</span> +<a name="ln-134"></a> <span class="n">MVFOUC</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">M</span><span class="p">)</span><span class="o">=-</span><span class="p">(</span><span class="n">MUSCR</span><span class="o">+</span><span class="n">MUACR</span><span class="p">)</span> +<a name="ln-135"></a> <span class="n">MVFOUC</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">M</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">MUSCI</span><span class="o">+</span><span class="n">MUACI</span><span class="p">)</span> +<a name="ln-136"></a><span class="mi">2</span> <span class="k">CONTINUE</span> +<a name="ln-137"></a> +<a name="ln-138"></a><span class="k"> CALL </span><span class="n">RFOURTR</span><span class="p">(</span><span class="n">VFOUC</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">(:,</span><span class="n">J</span><span class="p">),</span><span class="n">IFAX</span><span class="p">(:,</span><span class="n">J</span><span class="p">),</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="p">),</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-139"></a> <span class="n">XLAM</span><span class="p">(</span><span class="n">GGIND</span><span class="o">+</span><span class="mi">1</span><span class="p">:</span><span class="n">GGIND</span><span class="o">+</span><span class="n">MLAT</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">VFOUC</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-140"></a> <span class="k">CALL </span><span class="n">RFOURTR</span><span class="p">(</span><span class="n">UFOUC</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">(:,</span><span class="n">J</span><span class="p">),</span><span class="n">IFAX</span><span class="p">(:,</span><span class="n">J</span><span class="p">),</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="p">),</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-141"></a> <span class="n">XLAM</span><span class="p">(</span><span class="n">NI</span><span class="o">-</span><span class="n">GGIND</span><span class="o">-</span><span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">:</span><span class="n">NI</span><span class="o">-</span><span class="n">GGIND</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">UFOUC</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-142"></a> +<a name="ln-143"></a> <span class="k">CALL </span><span class="n">RFOURTR</span><span class="p">(</span><span class="n">MVFOUC</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">(:,</span><span class="n">J</span><span class="p">),</span><span class="n">IFAX</span><span class="p">(:,</span><span class="n">J</span><span class="p">),</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="p">),</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-144"></a> <span class="n">XPHI</span><span class="p">(</span><span class="n">GGIND</span><span class="o">+</span><span class="mi">1</span><span class="p">:</span><span class="n">GGIND</span><span class="o">+</span><span class="n">MLAT</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">MVFOUC</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-145"></a> <span class="k">CALL </span><span class="n">RFOURTR</span><span class="p">(</span><span class="n">MUFOUC</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">(:,</span><span class="n">J</span><span class="p">),</span><span class="n">IFAX</span><span class="p">(:,</span><span class="n">J</span><span class="p">),</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="p">),</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-146"></a> <span class="n">XPHI</span><span class="p">(</span><span class="n">NI</span><span class="o">-</span><span class="n">GGIND</span><span class="o">-</span><span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">:</span><span class="n">NI</span><span class="o">-</span><span class="n">GGIND</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">MUFOUC</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-147"></a> +<a name="ln-148"></a><span class="mi">3</span> <span class="k">CONTINUE</span> +<a name="ln-149"></a> +<a name="ln-150"></a><span class="k"> RETURN</span> +<a name="ln-151"></a> +<a name="ln-152"></a><span class="k"> END SUBROUTINE </span><span class="n">VDUVSUB</span> +<a name="ln-153"></a> +<a name="ln-154"></a> +<a name="ln-155"></a> <span class="k">SUBROUTINE </span><span class="n">PHGRAD</span><span class="p">(</span><span class="n">XMN</span><span class="p">,</span><span class="n">XLAM</span><span class="p">,</span><span class="n">XPHI</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">,</span><span class="n">IFAX</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">NI</span><span class="p">,</span><span class="n">NJ</span><span class="p">,</span><span class="n">NK</span><span class="p">)</span> +<a name="ln-156"></a> +<a name="ln-157"></a><span class="c">!! Berechnung des Gradienten eines Skalars aus dem Feld des</span> +<a name="ln-158"></a><span class="c">!! Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der</span> +<a name="ln-159"></a><span class="c">!! Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter.</span> +<a name="ln-160"></a><span class="c">! GWSAVE ist ein Hilfsfeld fuer die FFT</span> +<a name="ln-161"></a><span class="c">! P enthaelt die assoziierten Legendrepolynome, H deren Ableitung</span> +<a name="ln-162"></a><span class="c">! MLAT enthaelt die Anzahl der Gitterpunkte pro Breitenkreis</span> +<a name="ln-163"></a><span class="c">! MNAUF gibt die spektrale Aufloesung an,</span> +<a name="ln-164"></a><span class="c">! NI = Anzahl der Gauss'schen Gitterpunkte,</span> +<a name="ln-165"></a><span class="c">! NJ = Anzahl der Gauss'schen Breiten,</span> +<a name="ln-166"></a><span class="c">! NK = Anzahl der Niveaus</span> +<a name="ln-167"></a> +<a name="ln-168"></a> <span class="k">USE </span><span class="n">PHTOGR</span> +<a name="ln-169"></a> +<a name="ln-170"></a> <span class="k">IMPLICIT NONE</span> +<a name="ln-171"></a> +<a name="ln-172"></a><span class="k"> </span><span class="kt">INTEGER </span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">,</span><span class="n">M</span><span class="p">,</span><span class="n">N</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">MNAUF</span><span class="p">,</span><span class="n">GGIND</span><span class="p">,</span><span class="n">LL</span><span class="p">,</span><span class="n">LLP</span><span class="p">,</span><span class="n">LLH</span><span class="p">,</span><span class="n">LLS</span><span class="p">,</span><span class="n">LLPS</span><span class="p">,</span><span class="n">LLHS</span> +<a name="ln-173"></a> <span class="n">INTEGERMLAT</span><span class="p">(</span><span class="n">NJ</span><span class="p">),</span><span class="n">IFAX</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="n">NJ</span><span class="p">)</span> +<a name="ln-174"></a> <span class="kt">REAL </span><span class="n">UFOUC</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MAXAUF</span><span class="p">),</span><span class="n">MUFOUC</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MAXAUF</span><span class="p">)</span> +<a name="ln-175"></a> <span class="kt">REAL </span><span class="n">VFOUC</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MAXAUF</span><span class="p">),</span><span class="n">MVFOUC</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MAXAUF</span><span class="p">)</span> +<a name="ln-176"></a> <span class="kt">REAL </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="n">NK</span><span class="p">)</span> +<a name="ln-177"></a> <span class="kt">REAL </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">NJ</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span> +<a name="ln-178"></a> <span class="kt">REAL </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> +<a name="ln-179"></a> <span class="kt">REAL </span><span class="n">XLAM</span><span class="p">(</span><span class="n">NI</span><span class="p">,</span><span class="n">NK</span><span class="p">),</span><span class="n">XPHI</span><span class="p">(</span><span class="n">NI</span><span class="p">,</span><span class="n">NK</span><span class="p">)</span> +<a name="ln-180"></a> <span class="kt">REAL </span><span class="n">GWSAVE</span><span class="p">(</span><span class="mi">8</span><span class="o">*</span><span class="n">NJ</span><span class="o">+</span><span class="mi">15</span><span class="p">,</span><span class="n">NJ</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span> +<a name="ln-181"></a> <span class="kt">REAL </span><span class="n">ERAD</span> +<a name="ln-182"></a> <span class="kt">REAL </span><span class="n">SCR</span><span class="p">,</span><span class="n">SCI</span><span class="p">,</span><span class="n">ACR</span><span class="p">,</span><span class="n">ACI</span><span class="p">,</span><span class="n">MUSCR</span><span class="p">,</span><span class="n">MUSCI</span><span class="p">,</span><span class="n">MUACR</span><span class="p">,</span><span class="n">MUACI</span><span class="p">,</span><span class="n">RT</span><span class="p">,</span><span class="n">IT</span> +<a name="ln-183"></a> +<a name="ln-184"></a> <span class="n">ERAD</span> <span class="o">=</span> <span class="mi">636747</span><span class="mf">0.0</span> +<a name="ln-185"></a> +<a name="ln-186"></a> <span class="n">GGIND</span><span class="o">=</span><span class="mi">0</span> +<a name="ln-187"></a> <span class="k">DO </span><span class="mi">4</span> <span class="n">J</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span><span class="n">NJ</span><span class="o">/</span><span class="mi">2</span> +<a name="ln-188"></a> <span class="k">CALL </span><span class="n">DPLGND</span><span class="p">(</span><span class="n">MNAUF</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">J</span><span class="p">),</span><span class="n">H</span><span class="p">)</span> +<a name="ln-189"></a> <span class="k">DO </span><span class="mi">3</span> <span class="n">K</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span><span class="n">NK</span> +<a name="ln-190"></a> <span class="n">LL</span><span class="o">=</span><span class="mi">0</span> +<a name="ln-191"></a> <span class="n">LLP</span><span class="o">=</span><span class="mi">0</span> +<a name="ln-192"></a> <span class="n">LLH</span><span class="o">=</span><span class="mi">0</span> +<a name="ln-193"></a> <span class="k">DO </span><span class="mi">2</span> <span class="n">M</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span><span class="n">MNAUF</span> +<a name="ln-194"></a> <span class="n">SCR</span><span class="o">=</span><span class="mf">0.D0</span> +<a name="ln-195"></a> <span class="n">SCI</span><span class="o">=</span><span class="mf">0.D0</span> +<a name="ln-196"></a> <span class="n">ACR</span><span class="o">=</span><span class="mf">0.D0</span> +<a name="ln-197"></a> <span class="n">ACI</span><span class="o">=</span><span class="mf">0.D0</span> +<a name="ln-198"></a> <span class="n">MUSCR</span><span class="o">=</span><span class="mf">0.D0</span> +<a name="ln-199"></a> <span class="n">MUSCI</span><span class="o">=</span><span class="mf">0.D0</span> +<a name="ln-200"></a> <span class="n">MUACR</span><span class="o">=</span><span class="mf">0.D0</span> +<a name="ln-201"></a> <span class="n">MUACI</span><span class="o">=</span><span class="mf">0.D0</span> +<a name="ln-202"></a> <span class="n">LLS</span><span class="o">=</span><span class="n">LL</span> +<a name="ln-203"></a> <span class="n">LLPS</span><span class="o">=</span><span class="n">LLP</span> +<a name="ln-204"></a> <span class="n">LLHS</span><span class="o">=</span><span class="n">LLH</span> +<a name="ln-205"></a> <span class="k">IF</span> <span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">M</span><span class="o">+</span><span class="mi">1</span> <span class="p">.</span><span class="n">LT</span><span class="p">.</span> <span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="p">))</span> <span class="k">THEN</span> +<a name="ln-206"></a><span class="k"> DO </span><span class="mi">1</span> <span class="n">N</span> <span class="o">=</span> <span class="n">M</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="mi">2</span> +<a name="ln-207"></a> <span class="n">RT</span><span class="o">=</span><span class="n">XMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">LL</span><span class="p">,</span><span class="n">K</span><span class="p">)</span> +<a name="ln-208"></a> <span class="n">IT</span><span class="o">=</span><span class="n">XMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">LL</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="n">K</span><span class="p">)</span> +<a name="ln-209"></a> <span class="n">SCR</span> <span class="o">=</span><span class="n">SCR</span><span class="o">+</span> <span class="n">RT</span><span class="o">*</span><span class="n">P</span><span class="p">(</span><span class="n">LLP</span><span class="p">,</span><span class="n">J</span><span class="p">)</span> +<a name="ln-210"></a> <span class="n">SCI</span> <span class="o">=</span><span class="n">SCI</span><span class="o">+</span> <span class="n">IT</span><span class="o">*</span><span class="n">P</span><span class="p">(</span><span class="n">LLP</span><span class="p">,</span><span class="n">J</span><span class="p">)</span> +<a name="ln-211"></a> <span class="n">MUACR</span> <span class="o">=</span><span class="n">MUACR</span><span class="o">+</span><span class="n">RT</span><span class="o">*</span><span class="n">H</span><span class="p">(</span><span class="n">LLH</span><span class="p">)</span> +<a name="ln-212"></a> <span class="n">MUACI</span> <span class="o">=</span><span class="n">MUACI</span><span class="o">+</span> <span class="n">IT</span><span class="o">*</span><span class="n">H</span><span class="p">(</span><span class="n">LLH</span><span class="p">)</span> +<a name="ln-213"></a> <span class="n">LL</span><span class="o">=</span><span class="n">LL</span><span class="o">+</span><span class="mi">2</span> +<a name="ln-214"></a> <span class="n">LLP</span><span class="o">=</span><span class="n">LLP</span><span class="o">+</span><span class="mi">2</span> +<a name="ln-215"></a> <span class="n">LLH</span><span class="o">=</span><span class="n">LLH</span><span class="o">+</span><span class="mi">2</span> +<a name="ln-216"></a><span class="mi">1</span> <span class="k">CONTINUE</span> +<a name="ln-217"></a><span class="k"> </span><span class="n">LL</span><span class="o">=</span><span class="n">LLS</span><span class="o">+</span><span class="mi">1</span> +<a name="ln-218"></a> <span class="n">LLP</span><span class="o">=</span><span class="n">LLPS</span><span class="o">+</span><span class="mi">1</span> +<a name="ln-219"></a> <span class="n">LLH</span><span class="o">=</span><span class="n">LLHS</span><span class="o">+</span><span class="mi">1</span> +<a name="ln-220"></a> <span class="k">DO </span><span class="mi">11</span> <span class="n">N</span> <span class="o">=</span> <span class="n">M</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="mi">2</span> +<a name="ln-221"></a> <span class="n">RT</span><span class="o">=</span><span class="n">XMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">LL</span><span class="p">,</span><span class="n">K</span><span class="p">)</span> +<a name="ln-222"></a> <span class="n">IT</span><span class="o">=</span><span class="n">XMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">LL</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="n">K</span><span class="p">)</span> +<a name="ln-223"></a> <span class="n">ACR</span> <span class="o">=</span><span class="n">ACR</span><span class="o">+</span> <span class="n">RT</span><span class="o">*</span><span class="n">P</span><span class="p">(</span><span class="n">LLP</span><span class="p">,</span><span class="n">J</span><span class="p">)</span> +<a name="ln-224"></a> <span class="n">ACI</span> <span class="o">=</span><span class="n">ACI</span><span class="o">+</span> <span class="n">IT</span><span class="o">*</span><span class="n">P</span><span class="p">(</span><span class="n">LLP</span><span class="p">,</span><span class="n">J</span><span class="p">)</span> +<a name="ln-225"></a> <span class="n">MUSCR</span> <span class="o">=</span><span class="n">MUSCR</span><span class="o">+</span> <span class="n">RT</span><span class="o">*</span><span class="n">H</span><span class="p">(</span><span class="n">LLH</span><span class="p">)</span> +<a name="ln-226"></a> <span class="n">MUSCI</span> <span class="o">=</span><span class="n">MUSCI</span><span class="o">+</span> <span class="n">IT</span><span class="o">*</span><span class="n">H</span><span class="p">(</span><span class="n">LLH</span><span class="p">)</span> +<a name="ln-227"></a> <span class="n">LL</span><span class="o">=</span><span class="n">LL</span><span class="o">+</span><span class="mi">2</span> +<a name="ln-228"></a> <span class="n">LLP</span><span class="o">=</span><span class="n">LLP</span><span class="o">+</span><span class="mi">2</span> +<a name="ln-229"></a> <span class="n">LLH</span><span class="o">=</span><span class="n">LLH</span><span class="o">+</span><span class="mi">2</span> +<a name="ln-230"></a><span class="mi">11</span> <span class="k">CONTINUE</span> +<a name="ln-231"></a><span class="k"> END IF</span> +<a name="ln-232"></a><span class="k"> </span><span class="n">LL</span><span class="o">=</span><span class="n">LLS</span><span class="o">+</span><span class="p">(</span><span class="n">MNAUF</span><span class="o">-</span><span class="n">M</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-233"></a> <span class="n">LLP</span><span class="o">=</span><span class="n">LLPS</span><span class="o">+</span><span class="p">(</span><span class="n">MNAUF</span><span class="o">-</span><span class="n">M</span><span class="o">+</span><span class="mi">3</span><span class="p">)</span> +<a name="ln-234"></a> <span class="n">LLH</span><span class="o">=</span><span class="n">LLHS</span><span class="o">+</span><span class="p">(</span><span class="n">MNAUF</span><span class="o">-</span><span class="n">M</span><span class="o">+</span><span class="mi">2</span><span class="p">)</span> +<a name="ln-235"></a> +<a name="ln-236"></a> <span class="n">UFOUC</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">M</span><span class="p">)</span><span class="o">=-</span><span class="n">M</span><span class="o">*</span><span class="p">(</span><span class="n">SCI</span><span class="o">-</span><span class="n">ACI</span><span class="p">)</span><span class="o">/</span><span class="n">ERAD</span> +<a name="ln-237"></a> <span class="n">UFOUC</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">M</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">M</span><span class="o">*</span><span class="p">(</span><span class="n">SCR</span><span class="o">-</span><span class="n">ACR</span><span class="p">)</span><span class="o">/</span><span class="n">ERAD</span> +<a name="ln-238"></a> <span class="n">VFOUC</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">M</span><span class="p">)</span><span class="o">=-</span><span class="n">M</span><span class="o">*</span><span class="p">(</span><span class="n">SCI</span><span class="o">+</span><span class="n">ACI</span><span class="p">)</span><span class="o">/</span><span class="n">ERAD</span> +<a name="ln-239"></a> <span class="n">VFOUC</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">M</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">M</span><span class="o">*</span><span class="p">(</span><span class="n">SCR</span><span class="o">+</span><span class="n">ACR</span><span class="p">)</span><span class="o">/</span><span class="n">ERAD</span> +<a name="ln-240"></a> +<a name="ln-241"></a> <span class="n">MUFOUC</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">M</span><span class="p">)</span><span class="o">=-</span><span class="p">(</span><span class="n">MUSCR</span><span class="o">-</span><span class="n">MUACR</span><span class="p">)</span><span class="o">/</span><span class="n">ERAD</span> +<a name="ln-242"></a> <span class="n">MUFOUC</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">M</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">MUSCI</span><span class="o">-</span><span class="n">MUACI</span><span class="p">)</span><span class="o">/</span><span class="n">ERAD</span> +<a name="ln-243"></a> <span class="n">MVFOUC</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">M</span><span class="p">)</span><span class="o">=-</span><span class="p">(</span><span class="n">MUSCR</span><span class="o">+</span><span class="n">MUACR</span><span class="p">)</span><span class="o">/</span><span class="n">ERAD</span> +<a name="ln-244"></a> <span class="n">MVFOUC</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">M</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">MUSCI</span><span class="o">+</span><span class="n">MUACI</span><span class="p">)</span><span class="o">/</span><span class="n">ERAD</span> +<a name="ln-245"></a><span class="mi">2</span> <span class="k">CONTINUE</span> +<a name="ln-246"></a> +<a name="ln-247"></a><span class="k"> CALL </span><span class="n">RFOURTR</span><span class="p">(</span><span class="n">VFOUC</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">(:,</span><span class="n">J</span><span class="p">),</span><span class="n">IFAX</span><span class="p">(:,</span><span class="n">J</span><span class="p">),</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="p">),</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-248"></a> <span class="n">XLAM</span><span class="p">(</span><span class="n">GGIND</span><span class="o">+</span><span class="mi">1</span><span class="p">:</span><span class="n">GGIND</span><span class="o">+</span><span class="n">MLAT</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">VFOUC</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-249"></a> <span class="k">CALL </span><span class="n">RFOURTR</span><span class="p">(</span><span class="n">UFOUC</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">(:,</span><span class="n">J</span><span class="p">),</span><span class="n">IFAX</span><span class="p">(:,</span><span class="n">J</span><span class="p">),</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="p">),</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-250"></a> <span class="n">XLAM</span><span class="p">(</span><span class="n">NI</span><span class="o">-</span><span class="n">GGIND</span><span class="o">-</span><span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">:</span><span class="n">NI</span><span class="o">-</span><span class="n">GGIND</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">UFOUC</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-251"></a> +<a name="ln-252"></a> <span class="k">CALL </span><span class="n">RFOURTR</span><span class="p">(</span><span class="n">MVFOUC</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">(:,</span><span class="n">J</span><span class="p">),</span><span class="n">IFAX</span><span class="p">(:,</span><span class="n">J</span><span class="p">),</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="p">),</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-253"></a> <span class="n">XPHI</span><span class="p">(</span><span class="n">GGIND</span><span class="o">+</span><span class="mi">1</span><span class="p">:</span><span class="n">GGIND</span><span class="o">+</span><span class="n">MLAT</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">MVFOUC</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-254"></a> <span class="k">CALL </span><span class="n">RFOURTR</span><span class="p">(</span><span class="n">MUFOUC</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">(:,</span><span class="n">J</span><span class="p">),</span><span class="n">IFAX</span><span class="p">(:,</span><span class="n">J</span><span class="p">),</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="p">),</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-255"></a> <span class="n">XPHI</span><span class="p">(</span><span class="n">NI</span><span class="o">-</span><span class="n">GGIND</span><span class="o">-</span><span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">:</span><span class="n">NI</span><span class="o">-</span><span class="n">GGIND</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">MUFOUC</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-256"></a> +<a name="ln-257"></a><span class="mi">3</span> <span class="k">CONTINUE</span> +<a name="ln-258"></a><span class="k"> </span><span class="n">GGIND</span><span class="o">=</span><span class="n">GGIND</span><span class="o">+</span><span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="p">)</span> +<a name="ln-259"></a><span class="mi">4</span> <span class="k">CONTINUE</span> +<a name="ln-260"></a> +<a name="ln-261"></a> +<a name="ln-262"></a><span class="k"> RETURN</span> +<a name="ln-263"></a> +<a name="ln-264"></a><span class="k"> END SUBROUTINE </span><span class="n">PHGRAD</span> +<a name="ln-265"></a> +<a name="ln-266"></a> +<a name="ln-267"></a> <span class="k">SUBROUTINE </span><span class="n">PHGRACUT</span><span class="p">(</span><span class="n">XMN</span><span class="p">,</span><span class="n">XLAM</span><span class="p">,</span><span class="n">XPHI</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">,</span><span class="n">IFAX</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">MAUF</span><span class="p">,</span><span class="n">MNAUF</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">MANF</span><span class="p">,</span><span class="n">NK</span><span class="p">)</span> +<a name="ln-268"></a> +<a name="ln-269"></a><span class="c">!! Berechnung des Gradienten eines Skalars aus dem Feld des</span> +<a name="ln-270"></a><span class="c">!! Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der</span> +<a name="ln-271"></a><span class="c">!! Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter.</span> +<a name="ln-272"></a><span class="c">! GWSAVE ist ein Hilfsfeld fuer die FFT</span> +<a name="ln-273"></a><span class="c">! P enthaelt die assoziierten Legendrepolynome, H deren Ableitung</span> +<a name="ln-274"></a><span class="c">! MLAT enthaelt die Anzahl der Gitterpunkte pro Breitenkreis</span> +<a name="ln-275"></a><span class="c">! MNAUF gibt die spektrale Aufloesung an,</span> +<a name="ln-276"></a><span class="c">! NI = Anzahl der Gauss'schen Gitterpunkte,</span> +<a name="ln-277"></a><span class="c">! NJ = Anzahl der Gauss'schen Breiten,</span> +<a name="ln-278"></a><span class="c">! NK = Anzahl der Niveaus</span> +<a name="ln-279"></a> +<a name="ln-280"></a> <span class="k">USE </span><span class="n">PHTOGR</span> +<a name="ln-281"></a> +<a name="ln-282"></a> <span class="k">IMPLICIT NONE</span> +<a name="ln-283"></a> +<a name="ln-284"></a><span class="k"> </span><span class="kt">INTEGER </span><span class="n">J</span><span class="p">,</span><span class="n">K</span><span class="p">,</span><span class="n">M</span><span class="p">,</span><span class="n">N</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">MNAUF</span><span class="p">,</span><span class="n">GGIND</span><span class="p">,</span><span class="n">LL</span><span class="p">,</span><span class="n">LLP</span><span class="p">,</span><span class="n">LLH</span><span class="p">,</span><span class="n">LLS</span><span class="p">,</span><span class="n">LLPS</span><span class="p">,</span><span class="n">LLHS</span> +<a name="ln-285"></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">I</span><span class="p">,</span><span class="n">IFAX</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span> +<a name="ln-286"></a> <span class="kt">REAL </span><span class="n">UFOUC</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MAXAUF</span><span class="p">),</span><span class="n">MUFOUC</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MAXAUF</span><span class="p">)</span> +<a name="ln-287"></a> <span class="kt">REAL </span><span class="n">VFOUC</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MAXAUF</span><span class="p">),</span><span class="n">MVFOUC</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MAXAUF</span><span class="p">)</span> +<a name="ln-288"></a> <span class="kt">REAL </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="n">NK</span><span class="p">)</span> +<a name="ln-289"></a> <span class="kt">REAL </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">NJ</span><span class="p">)</span> +<a name="ln-290"></a> <span class="kt">REAL </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> +<a name="ln-291"></a> <span class="kt">REAL </span><span class="n">XLAM</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">XPHI</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> +<a name="ln-292"></a> <span class="kt">REAL </span><span class="n">HLAM</span><span class="p">(</span><span class="n">MAXAUF</span><span class="p">,</span><span class="mi">2</span><span class="p">),</span><span class="n">HPHI</span><span class="p">(</span><span class="n">MAXAUF</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span> +<a name="ln-293"></a> <span class="kt">REAL </span><span class="n">GWSAVE</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> +<a name="ln-294"></a> <span class="kt">REAL </span><span class="n">ERAD</span> +<a name="ln-295"></a> <span class="kt">REAL </span><span class="n">SCR</span><span class="p">,</span><span class="n">SCI</span><span class="p">,</span><span class="n">ACR</span><span class="p">,</span><span class="n">ACI</span><span class="p">,</span><span class="n">MUSCR</span><span class="p">,</span><span class="n">MUSCI</span><span class="p">,</span><span class="n">MUACR</span><span class="p">,</span><span class="n">MUACI</span><span class="p">,</span><span class="n">RT</span><span class="p">,</span><span class="n">IT</span> +<a name="ln-296"></a> +<a name="ln-297"></a> <span class="n">ERAD</span> <span class="o">=</span> <span class="mi">636747</span><span class="mf">0.0</span> +<a name="ln-298"></a> +<a name="ln-299"></a> <span class="n">GGIND</span><span class="o">=</span><span class="mi">0</span> +<a name="ln-300"></a> <span class="k">DO </span><span class="mi">4</span> <span class="n">J</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span><span class="n">NJ</span> +<a name="ln-301"></a> <span class="k">CALL </span><span class="n">DPLGND</span><span class="p">(</span><span class="n">MNAUF</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">J</span><span class="p">),</span><span class="n">H</span><span class="p">)</span> +<a name="ln-302"></a> <span class="k">DO </span><span class="mi">3</span> <span class="n">K</span> <span class="o">=</span> <span class="mi">1</span><span class="p">,</span><span class="n">NK</span> +<a name="ln-303"></a> <span class="n">LL</span><span class="o">=</span><span class="mi">0</span> +<a name="ln-304"></a> <span class="n">LLP</span><span class="o">=</span><span class="mi">0</span> +<a name="ln-305"></a> <span class="n">LLH</span><span class="o">=</span><span class="mi">0</span> +<a name="ln-306"></a> <span class="k">DO </span><span class="mi">2</span> <span class="n">M</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span><span class="n">MNAUF</span> +<a name="ln-307"></a> <span class="n">SCR</span><span class="o">=</span><span class="mf">0.D0</span> +<a name="ln-308"></a> <span class="n">SCI</span><span class="o">=</span><span class="mf">0.D0</span> +<a name="ln-309"></a> <span class="n">ACR</span><span class="o">=</span><span class="mf">0.D0</span> +<a name="ln-310"></a> <span class="n">ACI</span><span class="o">=</span><span class="mf">0.D0</span> +<a name="ln-311"></a> <span class="n">MUSCR</span><span class="o">=</span><span class="mf">0.D0</span> +<a name="ln-312"></a> <span class="n">MUSCI</span><span class="o">=</span><span class="mf">0.D0</span> +<a name="ln-313"></a> <span class="n">MUACR</span><span class="o">=</span><span class="mf">0.D0</span> +<a name="ln-314"></a> <span class="n">MUACI</span><span class="o">=</span><span class="mf">0.D0</span> +<a name="ln-315"></a> <span class="n">LLS</span><span class="o">=</span><span class="n">LL</span> +<a name="ln-316"></a> <span class="n">LLPS</span><span class="o">=</span><span class="n">LLP</span> +<a name="ln-317"></a> <span class="n">LLHS</span><span class="o">=</span><span class="n">LLH</span> +<a name="ln-318"></a> <span class="k">IF</span> <span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">M</span><span class="o">+</span><span class="mi">1</span> <span class="p">.</span><span class="n">LT</span><span class="p">.</span> <span class="n">MAUF</span><span class="p">)</span> <span class="k">THEN</span> +<a name="ln-319"></a><span class="k"> DO </span><span class="mi">1</span> <span class="n">N</span> <span class="o">=</span> <span class="n">M</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="mi">2</span> +<a name="ln-320"></a> <span class="n">RT</span><span class="o">=</span><span class="n">XMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">LL</span><span class="p">,</span><span class="n">K</span><span class="p">)</span> +<a name="ln-321"></a> <span class="n">IT</span><span class="o">=</span><span class="n">XMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">LL</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="n">K</span><span class="p">)</span> +<a name="ln-322"></a> <span class="n">SCR</span> <span class="o">=</span><span class="n">SCR</span><span class="o">+</span> <span class="n">RT</span><span class="o">*</span><span class="n">P</span><span class="p">(</span><span class="n">LLP</span><span class="p">,</span><span class="n">J</span><span class="p">)</span> +<a name="ln-323"></a> <span class="n">SCI</span> <span class="o">=</span><span class="n">SCI</span><span class="o">+</span> <span class="n">IT</span><span class="o">*</span><span class="n">P</span><span class="p">(</span><span class="n">LLP</span><span class="p">,</span><span class="n">J</span><span class="p">)</span> +<a name="ln-324"></a> <span class="n">MUACR</span> <span class="o">=</span><span class="n">MUACR</span><span class="o">+</span><span class="n">RT</span><span class="o">*</span><span class="n">H</span><span class="p">(</span><span class="n">LLH</span><span class="p">)</span> +<a name="ln-325"></a> <span class="n">MUACI</span> <span class="o">=</span><span class="n">MUACI</span><span class="o">+</span> <span class="n">IT</span><span class="o">*</span><span class="n">H</span><span class="p">(</span><span class="n">LLH</span><span class="p">)</span> +<a name="ln-326"></a> <span class="n">LL</span><span class="o">=</span><span class="n">LL</span><span class="o">+</span><span class="mi">2</span> +<a name="ln-327"></a> <span class="n">LLP</span><span class="o">=</span><span class="n">LLP</span><span class="o">+</span><span class="mi">2</span> +<a name="ln-328"></a> <span class="n">LLH</span><span class="o">=</span><span class="n">LLH</span><span class="o">+</span><span class="mi">2</span> +<a name="ln-329"></a><span class="mi">1</span> <span class="k">CONTINUE</span> +<a name="ln-330"></a><span class="k"> </span><span class="n">LL</span><span class="o">=</span><span class="n">LLS</span><span class="o">+</span><span class="mi">1</span> +<a name="ln-331"></a> <span class="n">LLP</span><span class="o">=</span><span class="n">LLPS</span><span class="o">+</span><span class="mi">1</span> +<a name="ln-332"></a> <span class="n">LLH</span><span class="o">=</span><span class="n">LLHS</span><span class="o">+</span><span class="mi">1</span> +<a name="ln-333"></a> <span class="k">DO </span><span class="mi">11</span> <span class="n">N</span> <span class="o">=</span> <span class="n">M</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="mi">2</span> +<a name="ln-334"></a> <span class="n">RT</span><span class="o">=</span><span class="n">XMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">LL</span><span class="p">,</span><span class="n">K</span><span class="p">)</span> +<a name="ln-335"></a> <span class="n">IT</span><span class="o">=</span><span class="n">XMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">LL</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="n">K</span><span class="p">)</span> +<a name="ln-336"></a> <span class="n">ACR</span> <span class="o">=</span><span class="n">ACR</span><span class="o">+</span> <span class="n">RT</span><span class="o">*</span><span class="n">P</span><span class="p">(</span><span class="n">LLP</span><span class="p">,</span><span class="n">J</span><span class="p">)</span> +<a name="ln-337"></a> <span class="n">ACI</span> <span class="o">=</span><span class="n">ACI</span><span class="o">+</span> <span class="n">IT</span><span class="o">*</span><span class="n">P</span><span class="p">(</span><span class="n">LLP</span><span class="p">,</span><span class="n">J</span><span class="p">)</span> +<a name="ln-338"></a> <span class="n">MUSCR</span> <span class="o">=</span><span class="n">MUSCR</span><span class="o">+</span> <span class="n">RT</span><span class="o">*</span><span class="n">H</span><span class="p">(</span><span class="n">LLH</span><span class="p">)</span> +<a name="ln-339"></a> <span class="n">MUSCI</span> <span class="o">=</span><span class="n">MUSCI</span><span class="o">+</span> <span class="n">IT</span><span class="o">*</span><span class="n">H</span><span class="p">(</span><span class="n">LLH</span><span class="p">)</span> +<a name="ln-340"></a> <span class="n">LL</span><span class="o">=</span><span class="n">LL</span><span class="o">+</span><span class="mi">2</span> +<a name="ln-341"></a> <span class="n">LLP</span><span class="o">=</span><span class="n">LLP</span><span class="o">+</span><span class="mi">2</span> +<a name="ln-342"></a> <span class="n">LLH</span><span class="o">=</span><span class="n">LLH</span><span class="o">+</span><span class="mi">2</span> +<a name="ln-343"></a><span class="mi">11</span> <span class="k">CONTINUE</span> +<a name="ln-344"></a><span class="k"> END IF</span> +<a name="ln-345"></a><span class="k"> </span><span class="n">LL</span><span class="o">=</span><span class="n">LLS</span><span class="o">+</span><span class="p">(</span><span class="n">MNAUF</span><span class="o">-</span><span class="n">M</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-346"></a> <span class="n">LLP</span><span class="o">=</span><span class="n">LLPS</span><span class="o">+</span><span class="p">(</span><span class="n">MNAUF</span><span class="o">-</span><span class="n">M</span><span class="o">+</span><span class="mi">3</span><span class="p">)</span> +<a name="ln-347"></a> <span class="n">LLH</span><span class="o">=</span><span class="n">LLHS</span><span class="o">+</span><span class="p">(</span><span class="n">MNAUF</span><span class="o">-</span><span class="n">M</span><span class="o">+</span><span class="mi">2</span><span class="p">)</span> +<a name="ln-348"></a> +<a name="ln-349"></a> <span class="n">UFOUC</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">M</span><span class="p">)</span><span class="o">=-</span><span class="n">M</span><span class="o">*</span><span class="p">(</span><span class="n">SCI</span><span class="o">-</span><span class="n">ACI</span><span class="p">)</span><span class="o">/</span><span class="n">ERAD</span> +<a name="ln-350"></a> <span class="n">UFOUC</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">M</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">M</span><span class="o">*</span><span class="p">(</span><span class="n">SCR</span><span class="o">-</span><span class="n">ACR</span><span class="p">)</span><span class="o">/</span><span class="n">ERAD</span> +<a name="ln-351"></a> <span class="n">VFOUC</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">M</span><span class="p">)</span><span class="o">=-</span><span class="n">M</span><span class="o">*</span><span class="p">(</span><span class="n">SCI</span><span class="o">+</span><span class="n">ACI</span><span class="p">)</span><span class="o">/</span><span class="n">ERAD</span> +<a name="ln-352"></a> <span class="n">VFOUC</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">M</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">M</span><span class="o">*</span><span class="p">(</span><span class="n">SCR</span><span class="o">+</span><span class="n">ACR</span><span class="p">)</span><span class="o">/</span><span class="n">ERAD</span> +<a name="ln-353"></a> +<a name="ln-354"></a> <span class="n">MUFOUC</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">M</span><span class="p">)</span><span class="o">=-</span><span class="p">(</span><span class="n">MUSCR</span><span class="o">-</span><span class="n">MUACR</span><span class="p">)</span><span class="o">/</span><span class="n">ERAD</span> +<a name="ln-355"></a> <span class="n">MUFOUC</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">M</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">MUSCI</span><span class="o">-</span><span class="n">MUACI</span><span class="p">)</span><span class="o">/</span><span class="n">ERAD</span> +<a name="ln-356"></a> <span class="n">MVFOUC</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">M</span><span class="p">)</span><span class="o">=-</span><span class="p">(</span><span class="n">MUSCR</span><span class="o">+</span><span class="n">MUACR</span><span class="p">)</span><span class="o">/</span><span class="n">ERAD</span> +<a name="ln-357"></a> <span class="n">MVFOUC</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">M</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">MUSCI</span><span class="o">+</span><span class="n">MUACI</span><span class="p">)</span><span class="o">/</span><span class="n">ERAD</span> +<a name="ln-358"></a><span class="mi">2</span> <span class="k">CONTINUE</span> +<a name="ln-359"></a> +<a name="ln-360"></a><span class="k"> CALL </span><span class="n">RFOURTR</span><span class="p">(</span><span class="n">VFOUC</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">,</span><span class="n">IFAX</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="mi">1</span><span class="p">)</span> +<a name="ln-361"></a> +<a name="ln-362"></a> <span class="k">CALL </span><span class="n">RFOURTR</span><span class="p">(</span><span class="n">MVFOUC</span><span class="p">,</span><span class="n">GWSAVE</span><span class="p">,</span><span class="n">IFAX</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="mi">1</span><span class="p">)</span> +<a name="ln-363"></a> +<a name="ln-364"></a> <span class="k">DO </span><span class="mi">6</span> <span class="n">I</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span><span class="n">NI</span><span class="o">-</span><span class="mi">1</span> +<a name="ln-365"></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">MAUF</span><span class="p">)</span> <span class="k">THEN</span> +<a name="ln-366"></a><span class="k"> </span><span class="n">XLAM</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">VFOUC</span><span class="p">(</span><span class="n">MANF</span><span class="o">+</span><span class="n">I</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-367"></a> <span class="n">XPHI</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">MVFOUC</span><span class="p">(</span><span class="n">MANF</span><span class="o">+</span><span class="n">I</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-368"></a> <span class="k">ELSE</span> +<a name="ln-369"></a><span class="k"> </span><span class="n">XLAM</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">VFOUC</span><span class="p">(</span><span class="n">MANF</span><span class="o">-</span><span class="n">MAUF</span><span class="o">+</span><span class="n">I</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-370"></a> <span class="n">XPHI</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">MVFOUC</span><span class="p">(</span><span class="n">MANF</span><span class="o">-</span><span class="n">MAUF</span><span class="o">+</span><span class="n">I</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-371"></a> <span class="k">END IF</span> +<a name="ln-372"></a><span class="mi">6</span> <span class="k">CONTINUE</span> +<a name="ln-373"></a><span class="mi">3</span> <span class="k">CONTINUE</span> +<a name="ln-374"></a><span class="k"> </span><span class="n">GGIND</span><span class="o">=</span><span class="n">GGIND</span><span class="o">+</span><span class="n">MAUF</span> +<a name="ln-375"></a><span class="mi">4</span> <span class="k">CONTINUE</span> +<a name="ln-376"></a> +<a name="ln-377"></a><span class="k"> RETURN</span> +<a name="ln-378"></a> +<a name="ln-379"></a><span class="k"> END SUBROUTINE </span><span class="n">PHGRACUT</span> +<a name="ln-380"></a> +<a name="ln-381"></a> <span class="k">SUBROUTINE </span><span class="n">CONTGL</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">U</span><span class="p">,</span><span class="n">V</span><span class="p">,</span><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">A</span><span class="p">,</span><span class="n">B</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> +<a name="ln-382"></a> +<a name="ln-383"></a><span class="c">!! Berechnung der Divergenz aus dem Windfeld (U,V)</span> +<a name="ln-384"></a><span class="c">!! im Phasenraum. Zurueckgegeben werden die Felder der</span> +<a name="ln-385"></a><span class="c">!! Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter.</span> +<a name="ln-386"></a><span class="c">! GWSAVE ist ein Hilfsfeld fuer die FFT</span> +<a name="ln-387"></a><span class="c">! P enthaelt die assoziierten Legendrepolynome, H deren Ableitung</span> +<a name="ln-388"></a><span class="c">! MLAT enthaelt die Anzahl der Gitterpunkte pro Breitenkreis</span> +<a name="ln-389"></a><span class="c">! MNAUF gibt die spektrale Aufloesung an,</span> +<a name="ln-390"></a><span class="c">! NI = Anzahl der Gauss'schen Gitterpunkte,</span> +<a name="ln-391"></a><span class="c">! NJ = Anzahl der Gauss'schen Breiten,</span> +<a name="ln-392"></a><span class="c">! NK = Anzahl der Niveaus</span> +<a name="ln-393"></a><span class="c">! Beachte, dass das Windfeld eine um 1 erhoehte Aufloesung in mu-Richtung hat.</span> +<a name="ln-394"></a> +<a name="ln-395"></a> <span class="k">IMPLICIT NONE</span> +<a name="ln-396"></a> +<a name="ln-397"></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><span class="p">,</span><span class="n">MLAT</span><span class="p">(</span><span class="n">NJ</span><span class="p">),</span><span class="n">L</span> +<a name="ln-398"></a> +<a name="ln-399"></a> <span class="kt">REAL </span><span class="n">A</span><span class="p">(</span><span class="n">NK</span><span class="o">+</span><span class="mi">1</span><span class="p">),</span><span class="n">B</span><span class="p">(</span><span class="n">NK</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-400"></a> <span class="kt">REAL </span><span class="n">PS</span><span class="p">(</span><span class="n">NI</span><span class="p">),</span><span class="n">DPSDL</span><span class="p">(</span><span class="n">NI</span><span class="p">),</span><span class="n">DPSDM</span><span class="p">(</span><span class="n">NI</span><span class="p">)</span> +<a name="ln-401"></a> <span class="kt">REAL </span><span class="n">DIV</span><span class="p">(</span><span class="n">NI</span><span class="p">,</span><span class="n">NK</span><span class="p">),</span><span class="n">U</span><span class="p">(</span><span class="n">NI</span><span class="p">,</span><span class="n">NK</span><span class="p">),</span><span class="n">V</span><span class="p">(</span><span class="n">NI</span><span class="p">,</span><span class="n">NK</span><span class="p">),</span><span class="n">ETA</span><span class="p">(</span><span class="n">NI</span><span class="p">,</span><span class="n">NK</span><span class="p">)</span> +<a name="ln-402"></a> <span class="kt">REAL </span><span class="n">BREITE</span><span class="p">(</span><span class="n">NJ</span><span class="p">)</span> +<a name="ln-403"></a> +<a name="ln-404"></a> <span class="kt">REAL </span><span class="n">DIVT1</span><span class="p">,</span><span class="n">DIVT2</span><span class="p">,</span><span class="n">POB</span><span class="p">,</span><span class="n">PUN</span><span class="p">,</span><span class="n">DPSDT</span><span class="p">,</span><span class="n">COSB</span> +<a name="ln-405"></a> +<a name="ln-406"></a> <span class="n">L</span><span class="o">=</span><span class="mi">0</span> +<a name="ln-407"></a> <span class="k">DO </span><span class="mi">4</span> <span class="n">J</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">NJ</span> +<a name="ln-408"></a> <span class="n">COSB</span><span class="o">=</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> +<a name="ln-409"></a> <span class="k">DO </span><span class="mi">3</span> <span class="n">I</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="p">)</span> +<a name="ln-410"></a> <span class="n">L</span><span class="o">=</span><span class="n">L</span><span class="o">+</span><span class="mi">1</span> +<a name="ln-411"></a> <span class="n">DIVT1</span><span class="o">=</span><span class="mf">0.0</span> +<a name="ln-412"></a> <span class="n">DIVT2</span><span class="o">=</span><span class="mf">0.0</span> +<a name="ln-413"></a> <span class="k">DO </span><span class="mi">1</span> <span class="n">K</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">NK</span> +<a name="ln-414"></a> <span class="n">POB</span><span class="o">=</span><span class="n">A</span><span class="p">(</span><span class="n">K</span><span class="p">)</span><span class="o">+</span><span class="n">B</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">L</span><span class="p">)</span> +<a name="ln-415"></a> <span class="n">PUN</span><span class="o">=</span><span class="n">A</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">B</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">PS</span><span class="p">(</span><span class="n">L</span><span class="p">)</span> +<a name="ln-416"></a> +<a name="ln-417"></a> <span class="n">DIVT1</span><span class="o">=</span><span class="n">DIVT1</span><span class="o">+</span><span class="n">DIV</span><span class="p">(</span><span class="n">L</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="p">(</span><span class="n">PUN</span><span class="o">-</span><span class="n">POB</span><span class="p">)</span> +<a name="ln-418"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">COSB</span> <span class="p">.</span><span class="n">GT</span><span class="p">.</span> <span class="mf">0.</span><span class="p">)</span> <span class="k">THEN</span> +<a name="ln-419"></a><span class="k"> </span><span class="n">DIVT2</span><span class="o">=</span><span class="n">DIVT2</span><span class="o">+</span><span class="p">(</span><span class="n">B</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">B</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">L</span><span class="p">)</span><span class="o">*</span> <span class="p">&</span> +<a name="ln-420"></a> <span class="p">(</span><span class="n">U</span><span class="p">(</span><span class="n">L</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="n">DPSDL</span><span class="p">(</span><span class="n">L</span><span class="p">)</span><span class="o">+</span><span class="n">V</span><span class="p">(</span><span class="n">L</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="n">DPSDM</span><span class="p">(</span><span class="n">L</span><span class="p">))</span><span class="o">/</span><span class="n">COSB</span> +<a name="ln-421"></a> <span class="k">END IF</span> +<a name="ln-422"></a> +<a name="ln-423"></a><span class="k"> </span><span class="n">ETA</span><span class="p">(</span><span class="n">L</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">=-</span><span class="n">DIVT1</span><span class="o">-</span><span class="n">DIVT2</span> +<a name="ln-424"></a><span class="mi">1</span> <span class="k">CONTINUE</span> +<a name="ln-425"></a> +<a name="ln-426"></a><span class="k"> </span><span class="n">DPSDT</span><span class="o">=</span><span class="p">(</span><span class="o">-</span><span class="n">DIVT1</span><span class="o">-</span><span class="n">DIVT2</span><span class="p">)</span><span class="o">/</span><span class="n">PS</span><span class="p">(</span><span class="n">L</span><span class="p">)</span> +<a name="ln-427"></a> +<a name="ln-428"></a> <span class="k">DO </span><span class="mi">2</span> <span class="n">K</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">NK</span> +<a name="ln-429"></a> <span class="n">ETA</span><span class="p">(</span><span class="n">L</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">ETA</span><span class="p">(</span><span class="n">L</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">-</span><span class="n">DPSDT</span><span class="o">*</span><span class="n">B</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">PS</span><span class="p">(</span><span class="n">L</span><span class="p">)</span> +<a name="ln-430"></a><span class="mi">2</span> <span class="k">CONTINUE</span> +<a name="ln-431"></a><span class="k"> </span><span class="n">PS</span><span class="p">(</span><span class="n">L</span><span class="p">)</span><span class="o">=</span><span class="n">DPSDT</span><span class="o">*</span><span class="n">PS</span><span class="p">(</span><span class="n">L</span><span class="p">)</span> +<a name="ln-432"></a><span class="mi">3</span> <span class="k">CONTINUE</span> +<a name="ln-433"></a><span class="mi">4</span> <span class="k">CONTINUE</span> +<a name="ln-434"></a> +<a name="ln-435"></a><span class="k"> RETURN</span> +<a name="ln-436"></a> +<a name="ln-437"></a><span class="k"> END SUBROUTINE </span><span class="n">CONTGL</span> +<a name="ln-438"></a> +<a name="ln-439"></a> <span class="k">SUBROUTINE </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">U</span><span class="p">,</span><span class="n">V</span><span class="p">,</span><span class="n">BREITE</span><span class="p">,</span><span class="n">E</span><span class="p">,</span><span class="n">MLAT</span><span class="p">,</span><span class="n">A</span><span class="p">,</span><span class="n">B</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">MKK</span><span class="p">)</span> +<a name="ln-440"></a> +<a name="ln-441"></a><span class="c">!! calculates $\omega$ in the hybrid ($\eta$-) coordinate system</span> +<a name="ln-442"></a> +<a name="ln-443"></a><span class="c">! OMEGA berechnet omega im Hybridkoordinatensystem</span> +<a name="ln-444"></a><span class="c">! PS ist der Bodendruck,</span> +<a name="ln-445"></a><span class="c">! DPSDL,DPSDM sind die Komponenten des Gradienten des Logarithmus des</span> +<a name="ln-446"></a><span class="c">! Bodendrucks</span> +<a name="ln-447"></a><span class="c">! DIV,U,V sind die horizontale Divergenz und das horizontale Windfeld</span> +<a name="ln-448"></a><span class="c">! BREITE ist das Feld der Gauss'schen Breiten</span> +<a name="ln-449"></a><span class="c">! E ist omega,</span> +<a name="ln-450"></a> +<a name="ln-451"></a> <span class="k">IMPLICIT NONE</span> +<a name="ln-452"></a> +<a name="ln-453"></a><span class="k"> </span><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">NGI</span><span class="p">,</span><span class="n">NGJ</span><span class="p">,</span><span class="n">MKK</span><span class="p">,</span><span class="n">MLAT</span><span class="p">(</span><span class="n">NGJ</span><span class="p">)</span> +<a name="ln-454"></a> +<a name="ln-455"></a> <span class="kt">REAL </span><span class="n">PS</span><span class="p">(</span><span class="n">NGI</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="n">DPSDM</span><span class="p">(</span><span class="n">NGI</span><span class="p">),</span><span class="n">A</span><span class="p">(</span><span class="n">MKK</span><span class="o">+</span><span class="mi">1</span><span class="p">),</span><span class="n">B</span><span class="p">(</span><span class="n">MKK</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-456"></a> <span class="kt">REAL </span><span class="n">DIV</span><span class="p">(</span><span class="n">NGI</span><span class="p">,</span><span class="n">MKK</span><span class="p">),</span><span class="n">U</span><span class="p">(</span><span class="n">NGI</span><span class="p">,</span><span class="n">MKK</span><span class="p">),</span><span class="n">V</span><span class="p">(</span><span class="n">NGI</span><span class="p">,</span><span class="n">MKK</span><span class="p">),</span><span class="n">E</span><span class="p">(</span><span class="n">NGI</span><span class="p">,</span><span class="n">MKK</span><span class="p">)</span> +<a name="ln-457"></a> <span class="kt">REAL </span><span class="n">BREITE</span><span class="p">(</span><span class="n">NGJ</span><span class="p">)</span> +<a name="ln-458"></a> +<a name="ln-459"></a> <span class="kt">REAL </span><span class="n">DIVT1</span><span class="p">,</span><span class="n">DIVT2</span><span class="p">,</span><span class="n">POB</span><span class="p">,</span><span class="n">PUN</span><span class="p">,</span><span class="n">DP</span><span class="p">,</span><span class="n">X</span><span class="p">,</span><span class="n">Y</span><span class="p">,</span><span class="n">COSB</span> +<a name="ln-460"></a> <span class="kt">REAL </span><span class="n">DIVT3</span><span class="p">(</span><span class="n">MKK</span><span class="o">+</span><span class="mi">2</span><span class="p">)</span> +<a name="ln-461"></a> +<a name="ln-462"></a> <span class="n">L</span><span class="o">=</span><span class="mi">0</span> +<a name="ln-463"></a> <span class="k">DO </span><span class="mi">4</span> <span class="n">J</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">NGJ</span> +<a name="ln-464"></a> <span class="n">COSB</span><span class="o">=</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> +<a name="ln-465"></a> <span class="k">DO </span><span class="mi">3</span> <span class="n">I</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="p">)</span> +<a name="ln-466"></a> <span class="n">L</span><span class="o">=</span><span class="n">L</span><span class="o">+</span><span class="mi">1</span> +<a name="ln-467"></a> <span class="n">DIVT1</span><span class="o">=</span><span class="mf">0.0</span> +<a name="ln-468"></a> <span class="n">DIVT2</span><span class="o">=</span><span class="mf">0.0</span> +<a name="ln-469"></a> <span class="n">DIVT3</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="mf">0.0</span> +<a name="ln-470"></a> <span class="k">DO </span><span class="mi">1</span> <span class="n">K</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MKK</span> +<a name="ln-471"></a> <span class="n">POB</span><span class="o">=</span><span class="n">A</span><span class="p">(</span><span class="n">K</span><span class="p">)</span><span class="o">+</span><span class="n">B</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">L</span><span class="p">)</span> +<a name="ln-472"></a> <span class="n">PUN</span><span class="o">=</span><span class="n">A</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">B</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">PS</span><span class="p">(</span><span class="n">L</span><span class="p">)</span> +<a name="ln-473"></a> <span class="n">DP</span><span class="o">=</span><span class="n">PUN</span><span class="o">-</span><span class="n">POB</span> +<a name="ln-474"></a> +<a name="ln-475"></a> <span class="n">Y</span><span class="o">=</span><span class="n">PS</span><span class="p">(</span><span class="n">L</span><span class="p">)</span><span class="o">*</span><span class="p">(</span><span class="n">U</span><span class="p">(</span><span class="n">L</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="n">DPSDL</span><span class="p">(</span><span class="n">L</span><span class="p">)</span><span class="o">+</span><span class="n">V</span><span class="p">(</span><span class="n">L</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="n">DPSDM</span><span class="p">(</span><span class="n">L</span><span class="p">))</span><span class="o">/</span><span class="n">COSB</span> +<a name="ln-476"></a> <span class="k">IF</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="mi">3</span><span class="p">)</span> <span class="k">THEN</span> +<a name="ln-477"></a><span class="k"> </span><span class="n">X</span><span class="o">=</span><span class="mf">0.0</span> +<a name="ln-478"></a> <span class="k">ELSE</span> +<a name="ln-479"></a><span class="k"> </span><span class="n">X</span><span class="o">=</span><span class="p">(</span><span class="n">B</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">B</span><span class="p">(</span><span class="n">K</span><span class="p">))</span><span class="o">*</span><span class="n">Y</span> +<a name="ln-480"></a> <span class="k">END IF</span> +<a name="ln-481"></a> +<a name="ln-482"></a><span class="k"> </span><span class="n">DIVT1</span><span class="o">=</span><span class="n">DIVT1</span><span class="o">+</span><span class="n">DIV</span><span class="p">(</span><span class="n">L</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="n">DP</span> +<a name="ln-483"></a> <span class="n">DIVT2</span><span class="o">=</span><span class="n">DIVT2</span><span class="o">+</span><span class="n">X</span> +<a name="ln-484"></a> +<a name="ln-485"></a> <span class="n">DIVT3</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">DIVT1</span><span class="o">-</span><span class="n">DIVT2</span> +<a name="ln-486"></a> +<a name="ln-487"></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="k">THEN</span> +<a name="ln-488"></a><span class="k"> </span><span class="n">E</span><span class="p">(</span><span class="n">L</span><span class="p">,</span><span class="n">K</span><span class="p">)</span> <span class="o">=</span> <span class="mf">0.5</span><span class="o">*</span><span class="p">(</span><span class="n">POB</span><span class="o">+</span><span class="n">PUN</span><span class="p">)</span><span class="o">/</span> <span class="p">&</span> +<a name="ln-489"></a> <span class="n">DP</span><span class="o">*</span><span class="n">Y</span><span class="o">*</span><span class="p">((</span><span class="n">B</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">B</span><span class="p">(</span><span class="n">K</span><span class="p">))</span><span class="o">+</span><span class="p">(</span><span class="n">A</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">B</span><span class="p">(</span><span class="n">K</span><span class="p">)</span><span class="o">-</span><span class="n">A</span><span class="p">(</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="n">B</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">DP</span><span class="o">*</span><span class="nb">LOG</span><span class="p">(</span><span class="n">PUN</span><span class="o">/</span><span class="n">POB</span><span class="p">))</span> +<a name="ln-490"></a> <span class="k">ELSE</span> +<a name="ln-491"></a><span class="k"> </span><span class="n">E</span><span class="p">(</span><span class="n">L</span><span class="p">,</span><span class="n">K</span><span class="p">)</span> <span class="o">=</span> <span class="mf">0.0</span> +<a name="ln-492"></a> <span class="k">END IF</span> +<a name="ln-493"></a> +<a name="ln-494"></a><span class="k"> </span><span class="n">E</span><span class="p">(</span><span class="n">L</span><span class="p">,</span><span class="n">K</span><span class="p">)</span> <span class="o">=</span> <span class="n">E</span><span class="p">(</span><span class="n">L</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">+</span><span class="mf">0.5</span><span class="o">*</span><span class="p">(</span><span class="n">DIVT3</span><span class="p">(</span><span class="n">K</span><span class="p">)</span><span class="o">+</span><span class="n">DIVT3</span><span class="p">(</span><span class="n">K</span><span class="o">+</span><span class="mi">1</span><span class="p">))</span> +<a name="ln-495"></a> +<a name="ln-496"></a><span class="mi">1</span> <span class="k">CONTINUE</span> +<a name="ln-497"></a><span class="mi">3</span> <span class="k">CONTINUE</span> +<a name="ln-498"></a><span class="mi">4</span> <span class="k">CONTINUE</span> +<a name="ln-499"></a> +<a name="ln-500"></a><span class="k"> RETURN</span> +<a name="ln-501"></a> +<a name="ln-502"></a><span class="k"> END SUBROUTINE </span><span class="n">OMEGA</span> +<a name="ln-503"></a> +<a name="ln-504"></a><span class="k">END MODULE </span><span class="n">FTRAFO</span> +</pre></div> + + </section> + </div> + </div> + + + <hr> + </div> <!-- /container --> + <footer> + <div class="container"> + <div class="row"> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> + <div class="col-xs-6 col-md-4 col-md-push-4"> + <p class="text-right"> + Documentation generated by + <a href="https://github.com/cmacmackin/ford">FORD</a> + + </p> + </div> + <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<sup>1</sup></p></div> + </div> + <br> + </div> <!-- /container --> + </footer> + + <!-- Bootstrap core JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> +<!-- + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> +--> + <script src="../js/bootstrap.min.js"></script> + <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> + <script src="../js/ie10-viewport-bug-workaround.js"></script> + + <!-- MathJax JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> + <script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, + jax: ['input/TeX','input/MathML','output/HTML-CSS'], + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] + }); + </script> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="../tipuesearch/tipuesearch_content.js"></script> + <script src="../tipuesearch/tipuesearch_set.js"></script> + <script src="../tipuesearch/tipuesearch.js"></script> + + + </body> +</html> \ No newline at end of file diff --git a/Documentation/FORD/V6/Doc/sourcefile/grphreal.f90.html b/Documentation/FORD/V6/Doc/sourcefile/grphreal.f90.html new file mode 100644 index 0000000000000000000000000000000000000000..ab271f3682e1d8a9c5a1095d28467883f68c28fd --- /dev/null +++ b/Documentation/FORD/V6/Doc/sourcefile/grphreal.f90.html @@ -0,0 +1,648 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > + <link rel="icon" href="../favicon.png"> + + <title>grphreal.f90 – Flex_extract: Calculation of etadot</title> + + <link href="../css/bootstrap.min.css" rel="stylesheet"> + <link href="../css/pygments.css" rel="stylesheet"> + <link href="../css/font-awesome.min.css" rel="stylesheet"> + <link href="../css/local.css" rel="stylesheet"> + + <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> + + + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> + <![endif]--> + + <script src="../js/jquery-2.1.3.min.js"></script> + <script src="../js/svg-pan-zoom.min.js"></script> + + </head> + + <body> + + <!-- Fixed navbar --> + <nav class="navbar navbar-inverse navbar-fixed-top"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + </div> + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> + <a href="#" class="dropdown-toggle" + data-toggle="dropdown" role="button" + aria-haspopup="true" + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + + + <li><a href="../lists/files.html">Source Files</a></li> + + + + <li><a href="../lists/modules.html">Modules</a></li> + + + + <li><a href="../lists/procedures.html">Procedures</a></li> + + + + <li><a href="../program/preconvert.html">Program</a></li> + + </ul> + </li> + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> + + </ul> + + <form action="../search.html" class="navbar-form navbar-right" role="search"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> + </div> +<!-- + <button type="submit" class="btn btn-default">Submit</button> +--> + </form> + + </div><!--/.nav-collapse --> + </div> + </nav> + + <div class="container"> + + + <div class="row"> + <h1>grphreal.f90 + <small>Source File</small> + + </h1> + +<div class="row"> + <div class="col-lg-12"> +<div class="well well-sm"> + <ul class="list-inline" style="margin-bottom:0px;display:inline"> + + + + + + + <li><i class="fa fa-list-ol"></i> + <a data-toggle="tooltip" + data-placement="bottom" data-html="true" + title=" 7.4% of total for source files.">104 statements</a> + </li> + + + + <li><i class="fa fa-code"></i><a href="../src/grphreal.f90"> Source File</a></li> + + + </ul> + <ol class="breadcrumb in-well text-right"> + + + + <li class="active">grphreal.f90</li> + </ol> +</div> +</div> +</div> +<script> + $(function () { + $('[data-toggle="tooltip"]').tooltip() + }) +</script> + + </div> + <div class="row"> + <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg"> + +<div id="sidebar"> + +<h3>Contents</h3> + + + + + + + + +<div class="panel panel-primary"> + <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#mods-0">Modules</a></h3></div> + <div id="mods-0" class="panel-collapse collapse"> + <div class="list-group"> + + <a class="list-group-item" href="../module/grtoph.html">GRTOPH</a> + + </div> + </div> +</div> + + + + + + + + + + + + + + + + +<div class="panel panel-primary"> + <div class="panel-heading text-left"><h3 class="panel-title">Source Code</h3></div> + <div class="list-group"> + <a class="list-group-item" href="../sourcefile/grphreal.f90.html#src">grphreal.f90</a> + </div> +</div> + + + +</div> + + </div> + <div class="col-md-9" id='text'> + + <br> + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">This file depends on</h3> + </div> + <div class="panel-body"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: sourcefile~~grphreal.f90~~EfferentGraph Pages: 1 --> +<svg id="sourcefilegrphrealf90EfferentGraph" width="184pt" height="32pt" + viewBox="0.00 0.00 184.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="sourcefile~~grphreal.f90~~EfferentGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>sourcefile~~grphreal.f90~~EfferentGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 180,-28 180,4 -4,4"/> +<!-- sourcefile~grphreal.f90 --> +<g id="sourcefile~~grphreal.f90~~EfferentGraph_node1" class="node"><title>sourcefile~grphreal.f90</title> +<polygon fill="none" stroke="black" points="176,-24 106,-24 106,-0 176,-0 176,-24"/> +<text text-anchor="middle" x="141" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">grphreal.f90</text> +</g> +<!-- sourcefile~phgrreal.f90 --> +<g id="sourcefile~~grphreal.f90~~EfferentGraph_node2" class="node"><title>sourcefile~phgrreal.f90</title> +<g id="a_sourcefile~~grphreal.f90~~EfferentGraph_node2"><a xlink:href=".././sourcefile/phgrreal.f90.html" xlink:title="phgrreal.f90"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="70,-24 0,-24 0,-0 70,-0 70,-24"/> +<text text-anchor="middle" x="35" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">phgrreal.f90</text> +</a> +</g> +</g> +<!-- sourcefile~grphreal.f90->sourcefile~phgrreal.f90 --> +<g id="sourcefile~~grphreal.f90~~EfferentGraph_edge1" class="edge"><title>sourcefile~grphreal.f90->sourcefile~phgrreal.f90</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M105.947,-12C97.776,-12 88.9318,-12 80.3697,-12"/> +<polygon fill="#000000" stroke="#000000" points="80.13,-8.5001 70.13,-12 80.13,-15.5001 80.13,-8.5001"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="190pt" height="32pt" + viewBox="0.00 0.00 190.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 186,-28 186,4 -4,4"/> +<!-- Source File --> +<g id="node1" class="node"><title>Source File</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="67,-24 0,-24 0,-0 67,-0 67,-24"/> +<text text-anchor="middle" x="33.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Source File</text> +</g> +<!-- This Page's Entity --> +<g id="node2" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="182,-24 85,-24 85,-0 182,-0 182,-24"/> +<text text-anchor="middle" x="133.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a file to a file which it depends on. A file + is dependent upon another if the latter must be compiled before the former + can be. + </p> + </div></div></div></div> + </div> + </div> + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Files dependent on this one</h3> + </div> + <div class="panel-body"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: sourcefile~~grphreal.f90~~AfferentGraph Pages: 1 --> +<svg id="sourcefilegrphrealf90AfferentGraph" width="221pt" height="32pt" + viewBox="0.00 0.00 221.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="sourcefile~~grphreal.f90~~AfferentGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>sourcefile~~grphreal.f90~~AfferentGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 217,-28 217,4 -4,4"/> +<!-- sourcefile~grphreal.f90 --> +<g id="sourcefile~~grphreal.f90~~AfferentGraph_node1" class="node"><title>sourcefile~grphreal.f90</title> +<polygon fill="none" stroke="black" points="70,-24 0,-24 0,-0 70,-0 70,-24"/> +<text text-anchor="middle" x="35" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">grphreal.f90</text> +</g> +<!-- sourcefile~preconvert_new.f90 --> +<g id="sourcefile~~grphreal.f90~~AfferentGraph_node2" class="node"><title>sourcefile~preconvert_new.f90</title> +<g id="a_sourcefile~~grphreal.f90~~AfferentGraph_node2"><a xlink:href=".././sourcefile/preconvert_new.f90.html" xlink:title="preconvert_new.f90"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="213,-24 106,-24 106,-0 213,-0 213,-24"/> +<text text-anchor="middle" x="159.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">preconvert_new.f90</text> +</a> +</g> +</g> +<!-- sourcefile~preconvert_new.f90->sourcefile~grphreal.f90 --> +<g id="sourcefile~~grphreal.f90~~AfferentGraph_edge1" class="edge"><title>sourcefile~preconvert_new.f90->sourcefile~grphreal.f90</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M105.838,-12C97.3573,-12 88.6524,-12 80.3912,-12"/> +<polygon fill="#000000" stroke="#000000" points="80.2147,-8.5001 70.2147,-12 80.2146,-15.5001 80.2147,-8.5001"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="190pt" height="32pt" + viewBox="0.00 0.00 190.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 186,-28 186,4 -4,4"/> +<!-- Source File --> +<g id="node1" class="node"><title>Source File</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="67,-24 0,-24 0,-0 67,-0 67,-24"/> +<text text-anchor="middle" x="33.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Source File</text> +</g> +<!-- This Page's Entity --> +<g id="node2" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="182,-24 85,-24 85,-0 182,-0 182,-24"/> +<text text-anchor="middle" x="133.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a file to a file which it depends on. A file + is dependent upon another if the latter must be compiled before the former + can be. + </p> + </div></div></div></div> + </div> + </div> + + <br> + + <section class="visible-xs visible-sm hidden-md"> + +<h3>Contents</h3> + + + + + + + + +<div class="panel panel-primary"> + <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#mods-1">Modules</a></h3></div> + <div id="mods-1" class="panel-collapse collapse"> + <div class="list-group"> + + <a class="list-group-item" href="../module/grtoph.html">GRTOPH</a> + + </div> + </div> +</div> + + + + + + + + + + + + + + + + +<div class="panel panel-primary"> + <div class="panel-heading text-left"><h3 class="panel-title">Source Code</h3></div> + <div class="list-group"> + <a class="list-group-item" href="../sourcefile/grphreal.f90.html#src">grphreal.f90</a> + </div> +</div> + + + + </section> + <br class="visible-xs visible-sm hidden-md"> + + <section> + <h2><span class="anchor" id="src"></span>Source Code</h2> + <div class="hl"><pre><span></span><a name="ln-1"></a><span class="k">MODULE </span><span class="n">GRTOPH</span> +<a name="ln-2"></a> +<a name="ln-3"></a> <span class="k">USE </span><span class="n">PHTOGR</span> +<a name="ln-4"></a> +<a name="ln-5"></a><span class="k">CONTAINS</span> +<a name="ln-6"></a> +<a name="ln-7"></a><span class="k"> SUBROUTINE </span><span class="n">GRPH213</span><span class="p">(</span><span class="n">CXMN</span><span class="p">,</span><span class="n">FELD</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">W</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">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">)</span> +<a name="ln-8"></a> +<a name="ln-9"></a><span class="c">!! DIE ROUTINE F]HRT EINE TRANSFORMATION EINER</span> +<a name="ln-10"></a><span class="c">!! FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN</span> +<a name="ln-11"></a><span class="c">!! RAUM AUF KUGELKOORDINATEN DURCH</span> +<a name="ln-12"></a> +<a name="ln-13"></a><span class="c">! CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE</span> +<a name="ln-14"></a><span class="c">! CX00,CX01,CX11,CX02,....CXMNAUFMNAUF</span> +<a name="ln-15"></a><span class="c">! CXM = FOURIERKOEFFIZIENTEN - nur ein Hilfsfeld</span> +<a name="ln-16"></a><span class="c">! FELD = FELD DER METEOROLOGISCHEN VARIABLEN</span> +<a name="ln-17"></a><span class="c">! WSAVE = Working Array fuer Fouriertransformation</span> +<a name="ln-18"></a><span class="c">! Z = LEGENDREFUNKTIONSWERTE</span> +<a name="ln-19"></a><span class="c">!</span> +<a name="ln-20"></a><span class="c">! MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN</span> +<a name="ln-21"></a><span class="c">! MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN</span> +<a name="ln-22"></a><span class="c">! MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN</span> +<a name="ln-23"></a><span class="c">! MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN</span> +<a name="ln-24"></a> +<a name="ln-25"></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> +<a name="ln-26"></a> +<a name="ln-27"></a><span class="c">! Anzahl der Gitterpunkte pro Breitenkreis des reduzierten</span> +<a name="ln-28"></a><span class="c">! Gauss'schen Gitters</span> +<a name="ln-29"></a> <span class="kt">INTEGER </span><span class="n">MLAT</span><span class="p">(</span><span class="n">MAXB</span><span class="p">),</span><span class="n">ISIZE</span><span class="p">,</span><span class="n">IFAX</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="n">MAXB</span><span class="p">)</span> +<a name="ln-30"></a> +<a name="ln-31"></a><span class="c">! FELD DER LEGENDREPOLYNOME FUER EINE BREITE</span> +<a name="ln-32"></a> <span class="kt">REAL</span><span class="o">*</span><span class="mi">8</span> <span class="n">Z</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="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> +<a name="ln-33"></a> +<a name="ln-34"></a><span class="c">! LOGICAL*1 USED(((216*217)/2+1)*160)</span> +<a name="ln-35"></a> +<a name="ln-36"></a> <span class="k">DIMENSION </span><span class="n">CXMN</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="n">MLEVEL</span><span class="p">)</span> +<a name="ln-37"></a> <span class="kt">REAL </span><span class="n">FELD</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">)</span> +<a name="ln-38"></a> <span class="k">DIMENSION </span><span class="n">WSAVE</span><span class="p">(</span><span class="mi">8</span><span class="o">*</span><span class="n">MAXB</span><span class="o">+</span><span class="mi">15</span><span class="p">,</span><span class="n">MAXB</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span> +<a name="ln-39"></a> <span class="kt">REAL</span><span class="o">*</span><span class="mi">8</span> <span class="n">W</span><span class="p">(</span><span class="n">MAXB</span><span class="p">)</span> +<a name="ln-40"></a> <span class="k">DIMENSION </span><span class="n">IND</span><span class="p">(</span><span class="n">MAXB</span><span class="p">)</span> +<a name="ln-41"></a> +<a name="ln-42"></a> <span class="n">IND</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="mi">0</span> +<a name="ln-43"></a> <span class="k">DO </span><span class="mi">6</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">2</span> +<a name="ln-44"></a> <span class="n">IND</span><span class="p">(</span><span class="n">j</span><span class="p">)</span><span class="o">=</span><span class="n">IND</span><span class="p">(</span><span class="n">J</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">+</span><span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-45"></a><span class="mi">6</span> <span class="k">CONTINUE</span> +<a name="ln-46"></a><span class="c">!$OMP PARALLEL DO SCHEDULE(DYNAMIC)</span> +<a name="ln-47"></a> <span class="k">DO </span><span class="mi">16</span> <span class="n">L</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span> +<a name="ln-48"></a> <span class="k">CALL </span><span class="n">GRPHSUB</span><span class="p">(</span><span class="n">L</span><span class="p">,</span><span class="n">IND</span><span class="p">,</span><span class="n">CXMN</span><span class="p">,</span><span class="n">FELD</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">W</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">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">)</span> +<a name="ln-49"></a><span class="mi">16</span> <span class="k">CONTINUE</span> +<a name="ln-50"></a><span class="c">!$omp end parallel do</span> +<a name="ln-51"></a> +<a name="ln-52"></a> <span class="k">RETURN</span> +<a name="ln-53"></a> +<a name="ln-54"></a><span class="k"> END SUBROUTINE </span><span class="n">GRPH213</span> +<a name="ln-55"></a> +<a name="ln-56"></a> <span class="k">SUBROUTINE </span><span class="n">GRPHSUB</span><span class="p">(</span><span class="n">L</span><span class="p">,</span><span class="n">IND</span><span class="p">,</span><span class="n">CXMN</span><span class="p">,</span><span class="n">FELD</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">W</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">MAXL</span><span class="p">,</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">)</span> +<a name="ln-57"></a> +<a name="ln-58"></a><span class="c">!! DIE ROUTINE F]HRT EINE TRANSFORMATION EINER</span> +<a name="ln-59"></a><span class="c">!! FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN</span> +<a name="ln-60"></a><span class="c">!! RAUM AUF KUGELKOORDINATEN DURCH</span> +<a name="ln-61"></a><span class="c">!</span> +<a name="ln-62"></a><span class="c">! CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE</span> +<a name="ln-63"></a><span class="c">! CX00,CX01,CX11,CX02,....CXMNAUFMNAUF</span> +<a name="ln-64"></a><span class="c">! CXM = FOURIERKOEFFIZIENTEN - nur ein Hilfsfeld</span> +<a name="ln-65"></a><span class="c">! FELD = FELD DER METEOROLOGISCHEN VARIABLEN</span> +<a name="ln-66"></a><span class="c">! WSAVE = Working Array fuer Fouriertransformation</span> +<a name="ln-67"></a><span class="c">! Z = LEGENDREFUNKTIONSWERTE</span> +<a name="ln-68"></a><span class="c">!</span> +<a name="ln-69"></a><span class="c">! MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN</span> +<a name="ln-70"></a><span class="c">! MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN</span> +<a name="ln-71"></a><span class="c">! MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN</span> +<a name="ln-72"></a><span class="c">! MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN</span> +<a name="ln-73"></a> +<a name="ln-74"></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> +<a name="ln-75"></a> +<a name="ln-76"></a><span class="c">! FELD DER FOURIERKOEFFIZIENTEN</span> +<a name="ln-77"></a> <span class="kt">REAL </span><span class="n">CXMS</span><span class="p">(</span><span class="mi">4</span><span class="o">*</span><span class="p">(</span><span class="n">MNAUF</span><span class="o">+</span><span class="mi">1</span><span class="p">))</span> +<a name="ln-78"></a> <span class="kt">REAL </span><span class="n">CXMA</span><span class="p">(</span><span class="mi">4</span><span class="o">*</span><span class="p">(</span><span class="n">MNAUF</span><span class="o">+</span><span class="mi">1</span><span class="p">))</span> +<a name="ln-79"></a> <span class="kt">REAL</span><span class="p">,</span><span class="k">ALLOCATABLE</span> <span class="kd">::</span> <span class="n">CXM</span><span class="p">(:,:)</span> +<a name="ln-80"></a> +<a name="ln-81"></a><span class="c">! Anzahl der Gitterpunkte pro Breitenkreis des reduzierten</span> +<a name="ln-82"></a><span class="c">! Gauss'schen Gitters</span> +<a name="ln-83"></a> <span class="kt">INTEGER </span><span class="n">MLAT</span><span class="p">(</span><span class="n">MAXB</span><span class="p">),</span><span class="n">ISIZE</span> +<a name="ln-84"></a> +<a name="ln-85"></a><span class="c">! FELD DER LEGENDREPOLYNOME FUER EINE BREITE</span> +<a name="ln-86"></a> <span class="kt">REAL </span><span class="n">Z</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="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> +<a name="ln-87"></a> +<a name="ln-88"></a><span class="c">! LOGICAL*1 USED(((216*217)/2+1)*160)</span> +<a name="ln-89"></a> +<a name="ln-90"></a> <span class="kt">REAL </span><span class="n">CXMN</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="n">MLEVEL</span><span class="p">)</span> +<a name="ln-91"></a> <span class="kt">REAL </span><span class="n">FELD</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">)</span> +<a name="ln-92"></a> <span class="kt">REAL </span><span class="n">WSAVE</span><span class="p">(</span><span class="mi">8</span><span class="o">*</span><span class="n">MAXB</span><span class="o">+</span><span class="mi">15</span><span class="p">,</span><span class="n">MAXB</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span> +<a name="ln-93"></a> <span class="kt">INTEGER </span><span class="n">IFAX</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="n">MAXB</span><span class="p">)</span> +<a name="ln-94"></a> <span class="kt">REAL </span><span class="n">W</span><span class="p">(</span><span class="n">MAXB</span><span class="p">)</span> +<a name="ln-95"></a> <span class="kt">INTEGER </span><span class="n">IND</span><span class="p">(</span><span class="n">MAXB</span><span class="p">)</span> +<a name="ln-96"></a> +<a name="ln-97"></a> <span class="k">ALLOCATE</span><span class="p">(</span><span class="n">CXM</span><span class="p">(</span> <span class="mi">4</span><span class="o">*</span><span class="n">MAXB</span><span class="p">,</span><span class="n">MAXB</span><span class="p">))</span> +<a name="ln-98"></a> <span class="k">DO </span><span class="mi">5</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="o">/</span><span class="mi">2</span> +<a name="ln-99"></a> <span class="n">CXMS</span><span class="p">(</span><span class="mi">1</span><span class="p">:</span><span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="p">))</span><span class="o">=</span><span class="n">FELD</span><span class="p">(</span><span class="n">IND</span><span class="p">(</span><span class="n">J</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">:</span><span class="n">IND</span><span class="p">(</span><span class="n">J</span><span class="p">)</span><span class="o">+</span><span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="p">),</span><span class="n">L</span><span class="p">)</span> +<a name="ln-100"></a> <span class="k">CALL </span><span class="n">RFOUFTR</span><span class="p">(</span><span class="n">CXMS</span><span class="p">,</span><span class="n">WSAVE</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">IFAX</span><span class="p">(:,</span><span class="n">J</span><span class="p">),</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="p">),</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-101"></a> <span class="n">CXMA</span><span class="p">(</span><span class="mi">1</span><span class="p">:</span><span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="p">))</span><span class="o">=</span><span class="n">FELD</span><span class="p">(</span><span class="n">MAXL</span><span class="o">-</span><span class="n">IND</span><span class="p">(</span><span class="n">J</span><span class="p">)</span><span class="o">-</span><span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">:</span><span class="n">MAXL</span><span class="o">-</span><span class="n">IND</span><span class="p">(</span><span class="n">J</span><span class="p">),</span><span class="n">L</span><span class="p">)</span> +<a name="ln-102"></a> <span class="k">CALL </span><span class="n">RFOUFTR</span><span class="p">(</span><span class="n">CXMA</span><span class="p">,</span><span class="n">WSAVE</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">IFAX</span><span class="p">(:,</span><span class="n">J</span><span class="p">),</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MLAT</span><span class="p">(</span><span class="n">J</span><span class="p">),</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-103"></a> <span class="k">DO </span><span class="mi">4</span> <span class="n">I</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="p">(</span><span class="n">MNAUF</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-104"></a> <span class="n">CXM</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="o">=</span><span class="n">CXMS</span><span class="p">(</span><span class="n">I</span><span class="p">)</span><span class="o">+</span><span class="n">CXMA</span><span class="p">(</span><span class="n">I</span><span class="p">)</span> +<a name="ln-105"></a> <span class="n">CXM</span><span class="p">(</span><span class="n">I</span><span class="p">,</span><span class="n">MAXB</span><span class="o">+</span><span class="mi">1</span><span class="o">-</span><span class="n">J</span><span class="p">)</span><span class="o">=</span><span class="n">CXMS</span><span class="p">(</span><span class="n">I</span><span class="p">)</span><span class="o">-</span><span class="n">CXMA</span><span class="p">(</span><span class="n">I</span><span class="p">)</span> +<a name="ln-106"></a><span class="mi">4</span> <span class="k">CONTINUE</span> +<a name="ln-107"></a><span class="mi">5</span> <span class="k">CONTINUE</span> +<a name="ln-108"></a><span class="k"> CALL </span><span class="n">LGTR213</span><span class="p">(</span><span class="n">CXMN</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="n">L</span><span class="p">),</span><span class="n">CXM</span><span class="p">,</span><span class="n">Z</span><span class="p">,</span><span class="n">W</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">MAXB</span><span class="p">)</span> +<a name="ln-109"></a> +<a name="ln-110"></a> <span class="k">DEALLOCATE</span><span class="p">(</span><span class="n">CXM</span><span class="p">)</span> +<a name="ln-111"></a> +<a name="ln-112"></a> <span class="k">RETURN</span> +<a name="ln-113"></a><span class="k"> </span> +<a name="ln-114"></a><span class="k"> END SUBROUTINE </span><span class="n">GRPHSUB</span> +<a name="ln-115"></a><span class="c">!</span> +<a name="ln-116"></a> <span class="k">SUBROUTINE </span><span class="n">LGTR213</span><span class="p">(</span><span class="n">CXMN</span><span class="p">,</span><span class="n">CXM</span><span class="p">,</span><span class="n">Z</span><span class="p">,</span><span class="n">W</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">MAXB</span><span class="p">)</span> +<a name="ln-117"></a> +<a name="ln-118"></a><span class="c">!! DIESE ROUTINE BERECHNET DIE KFFKs CXMN</span> +<a name="ln-119"></a> +<a name="ln-120"></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> +<a name="ln-121"></a> <span class="kt">INTEGER </span><span class="n">MLAT</span><span class="p">(</span><span class="n">MAXB</span><span class="p">)</span> +<a name="ln-122"></a> <span class="k">DIMENSION </span><span class="n">CXM</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="mi">4</span><span class="o">*</span><span class="n">MAXB</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="n">MAXB</span><span class="p">)</span> +<a name="ln-123"></a> <span class="k">DIMENSION </span><span class="n">CXMN</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="mi">2</span><span class="o">*</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="n">MNAUF</span><span class="p">)</span><span class="o">/</span><span class="mi">2</span><span class="o">+</span><span class="n">MNAUF</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-124"></a> <span class="kt">REAL</span><span class="o">*</span><span class="mi">8</span> <span class="n">Z</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="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> +<a name="ln-125"></a> <span class="kt">REAL</span><span class="o">*</span><span class="mi">8</span> <span class="n">W</span><span class="p">(</span><span class="n">MAXB</span><span class="p">),</span><span class="n">CR</span><span class="p">,</span><span class="n">CI</span><span class="p">,</span><span class="n">HILF</span> +<a name="ln-126"></a> <span class="kt">LOGICAL </span><span class="n">EVEN</span> +<a name="ln-127"></a> +<a name="ln-128"></a> +<a name="ln-129"></a> <span class="n">LL</span><span class="o">=</span><span class="mi">0</span> +<a name="ln-130"></a> <span class="n">LLP</span><span class="o">=</span><span class="mi">0</span> +<a name="ln-131"></a> <span class="k">DO </span><span class="mi">1</span> <span class="n">I</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span><span class="n">MNAUF</span> +<a name="ln-132"></a> <span class="n">KM</span><span class="o">=</span><span class="mi">0</span> +<a name="ln-133"></a><span class="mi">9</span> <span class="n">KM</span><span class="o">=</span><span class="n">KM</span><span class="o">+</span><span class="mi">1</span> +<a name="ln-134"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">MLAT</span><span class="p">(</span><span class="n">KM</span><span class="p">)</span> <span class="p">.</span><span class="n">LE</span><span class="p">.</span> <span class="mi">2</span><span class="o">*</span><span class="n">I</span><span class="p">)</span> <span class="k">THEN</span> +<a name="ln-135"></a><span class="k"> GOTO </span><span class="mi">9</span> +<a name="ln-136"></a> <span class="k">END IF</span> +<a name="ln-137"></a><span class="k"> DO </span><span class="mi">2</span> <span class="n">J</span><span class="o">=</span><span class="n">I</span><span class="p">,</span><span class="n">MNAUF</span> +<a name="ln-138"></a> <span class="n">CR</span><span class="o">=</span><span class="mi">0</span> +<a name="ln-139"></a> <span class="n">CI</span><span class="o">=</span><span class="mi">0</span> +<a name="ln-140"></a> <span class="n">EVEN</span><span class="o">=</span><span class="nb">MOD</span><span class="p">(</span><span class="n">I</span><span class="o">+</span><span class="n">J</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="mi">0</span> +<a name="ln-141"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">EVEN</span><span class="p">)</span> <span class="k">THEN</span> +<a name="ln-142"></a><span class="k"> DO </span><span class="mi">3</span> <span class="n">K</span><span class="o">=</span><span class="n">KM</span><span class="p">,</span><span class="n">MAXB</span><span class="o">/</span><span class="mi">2</span> +<a name="ln-143"></a> <span class="n">HILF</span><span class="o">=</span><span class="n">W</span><span class="p">(</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="n">Z</span><span class="p">(</span><span class="n">K</span><span class="p">,</span><span class="n">LLP</span><span class="p">)</span> +<a name="ln-144"></a> <span class="n">CR</span><span class="o">=</span><span class="n">CR</span><span class="o">+</span><span class="n">CXM</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">I</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="n">HILF</span> +<a name="ln-145"></a> <span class="n">CI</span><span class="o">=</span><span class="n">CI</span><span class="o">+</span><span class="n">CXM</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">I</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="n">HILF</span> +<a name="ln-146"></a><span class="mi">3</span> <span class="k">CONTINUE</span> +<a name="ln-147"></a><span class="k"> ELSE</span> +<a name="ln-148"></a><span class="k"> DO </span><span class="mi">4</span> <span class="n">K</span><span class="o">=</span><span class="n">KM</span><span class="p">,</span><span class="n">MAXB</span><span class="o">/</span><span class="mi">2</span> +<a name="ln-149"></a> <span class="n">HILF</span><span class="o">=</span><span class="n">W</span><span class="p">(</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="n">Z</span><span class="p">(</span><span class="n">K</span><span class="p">,</span><span class="n">LLP</span><span class="p">)</span> +<a name="ln-150"></a> <span class="n">CR</span><span class="o">=</span><span class="n">CR</span><span class="o">+</span><span class="n">CXM</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">I</span><span class="p">,</span><span class="n">MAXB</span><span class="o">+</span><span class="mi">1</span><span class="o">-</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="n">HILF</span> +<a name="ln-151"></a> <span class="n">CI</span><span class="o">=</span><span class="n">CI</span><span class="o">+</span><span class="n">CXM</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">I</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="n">MAXB</span><span class="o">+</span><span class="mi">1</span><span class="o">-</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="n">HILF</span> +<a name="ln-152"></a><span class="mi">4</span> <span class="k">CONTINUE</span> +<a name="ln-153"></a><span class="k"> END IF</span> +<a name="ln-154"></a><span class="mi">5</span> <span class="n">CXMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">LL</span><span class="p">)</span><span class="o">=</span><span class="n">CR</span> +<a name="ln-155"></a> <span class="n">CXMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">LL</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">CI</span> +<a name="ln-156"></a> <span class="n">LL</span><span class="o">=</span><span class="n">LL</span><span class="o">+</span><span class="mi">1</span> +<a name="ln-157"></a> <span class="n">LLP</span><span class="o">=</span><span class="n">LLP</span><span class="o">+</span><span class="mi">1</span> +<a name="ln-158"></a><span class="mi">2</span> <span class="k">CONTINUE</span> +<a name="ln-159"></a><span class="k"> </span><span class="n">LLP</span><span class="o">=</span><span class="n">LLP</span><span class="o">+</span><span class="mi">2</span> +<a name="ln-160"></a><span class="mi">1</span> <span class="k">CONTINUE</span> +<a name="ln-161"></a><span class="k"> RETURN</span> +<a name="ln-162"></a><span class="k"> </span> +<a name="ln-163"></a><span class="k"> END SUBROUTINE </span><span class="n">LGTR213</span> +<a name="ln-164"></a> +<a name="ln-165"></a> <span class="k">SUBROUTINE </span><span class="n">RFOUFTR</span><span class="p">(</span><span class="n">CXM</span><span class="p">,</span><span class="n">TRIGS</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="nb">ISIGN</span><span class="p">)</span> +<a name="ln-166"></a><span class="c">!</span> +<a name="ln-167"></a><span class="c">! BERECHNET DIE FOURIERSUMME MIT EINEM FFT-ALGORITHMUS</span> +<a name="ln-168"></a> +<a name="ln-169"></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> +<a name="ln-170"></a> <span class="k">DIMENSION </span><span class="n">CXM</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="mi">2</span><span class="o">*</span><span class="n">MAXL</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-171"></a> <span class="k">DIMENSION </span><span class="n">FELD</span><span class="p">(</span><span class="n">MAXL</span><span class="p">),</span><span class="n">TRIGS</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">MAXL</span><span class="p">)</span> +<a name="ln-172"></a> <span class="k">DIMENSION </span><span class="n">WSAVE</span><span class="p">(</span><span class="n">MAXAUF</span><span class="p">)</span> +<a name="ln-173"></a> <span class="kt">INTEGER </span><span class="n">IFAX</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span> +<a name="ln-174"></a> +<a name="ln-175"></a><span class="c">! NORMIERUNG...</span> +<a name="ln-176"></a> <span class="n">WSAVE</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">CXM</span><span class="p">(</span><span class="n">MAXL</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-177"></a> +<a name="ln-178"></a> <span class="n">CXM</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="o">=</span><span class="n">CXM</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MAXL</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">/</span><span class="mi">2</span> +<a name="ln-179"></a> <span class="n">CXM</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span><span class="o">=</span><span class="n">WSAVE</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">/</span><span class="mi">2</span> +<a name="ln-180"></a><span class="c">! CALL CFFTF(MAXL,CXM,WSAVE)</span> +<a name="ln-181"></a> <span class="k">CALL </span><span class="n">FFT99</span><span class="p">(</span><span class="n">CXM</span><span class="p">,</span><span class="n">WSAVE</span><span class="p">,</span><span class="n">TRIGS</span><span class="p">,</span><span class="n">IFAX</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">MAXL</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-182"></a> <span class="k">RETURN</span> +<a name="ln-183"></a><span class="k"> END SUBROUTINE </span><span class="n">RFOUFTR</span> +<a name="ln-184"></a> +<a name="ln-185"></a><span class="k">END MODULE </span><span class="n">GRTOPH</span> +</pre></div> + + </section> + </div> + </div> + + + <hr> + </div> <!-- /container --> + <footer> + <div class="container"> + <div class="row"> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> + <div class="col-xs-6 col-md-4 col-md-push-4"> + <p class="text-right"> + Documentation generated by + <a href="https://github.com/cmacmackin/ford">FORD</a> + + </p> + </div> + <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<sup>1</sup></p></div> + </div> + <br> + </div> <!-- /container --> + </footer> + + <!-- Bootstrap core JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> +<!-- + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> +--> + <script src="../js/bootstrap.min.js"></script> + <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> + <script src="../js/ie10-viewport-bug-workaround.js"></script> + + <!-- MathJax JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> + <script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, + jax: ['input/TeX','input/MathML','output/HTML-CSS'], + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] + }); + </script> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="../tipuesearch/tipuesearch_content.js"></script> + <script src="../tipuesearch/tipuesearch_set.js"></script> + <script src="../tipuesearch/tipuesearch.js"></script> + + + </body> +</html> \ No newline at end of file diff --git a/Documentation/FORD/V6/Doc/sourcefile/phgrreal.f90.html b/Documentation/FORD/V6/Doc/sourcefile/phgrreal.f90.html new file mode 100644 index 0000000000000000000000000000000000000000..1dd36d263e02f34a13648dcf6809d0b85e92efbc --- /dev/null +++ b/Documentation/FORD/V6/Doc/sourcefile/phgrreal.f90.html @@ -0,0 +1,944 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > + <link rel="icon" href="../favicon.png"> + + <title>phgrreal.f90 – Flex_extract: Calculation of etadot</title> + + <link href="../css/bootstrap.min.css" rel="stylesheet"> + <link href="../css/pygments.css" rel="stylesheet"> + <link href="../css/font-awesome.min.css" rel="stylesheet"> + <link href="../css/local.css" rel="stylesheet"> + + <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> + + + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> + <![endif]--> + + <script src="../js/jquery-2.1.3.min.js"></script> + <script src="../js/svg-pan-zoom.min.js"></script> + + </head> + + <body> + + <!-- Fixed navbar --> + <nav class="navbar navbar-inverse navbar-fixed-top"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + </div> + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> + <a href="#" class="dropdown-toggle" + data-toggle="dropdown" role="button" + aria-haspopup="true" + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + + + <li><a href="../lists/files.html">Source Files</a></li> + + + + <li><a href="../lists/modules.html">Modules</a></li> + + + + <li><a href="../lists/procedures.html">Procedures</a></li> + + + + <li><a href="../program/preconvert.html">Program</a></li> + + </ul> + </li> + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> + + </ul> + + <form action="../search.html" class="navbar-form navbar-right" role="search"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> + </div> +<!-- + <button type="submit" class="btn btn-default">Submit</button> +--> + </form> + + </div><!--/.nav-collapse --> + </div> + </nav> + + <div class="container"> + + + <div class="row"> + <h1>phgrreal.f90 + <small>Source File</small> + + </h1> + +<div class="row"> + <div class="col-lg-12"> +<div class="well well-sm"> + <ul class="list-inline" style="margin-bottom:0px;display:inline"> + + + + + + + <li><i class="fa fa-list-ol"></i> + <a data-toggle="tooltip" + data-placement="bottom" data-html="true" + title="23.8% of total for source files.">334 statements</a> + </li> + + + + <li><i class="fa fa-code"></i><a href="../src/phgrreal.f90"> Source File</a></li> + + + </ul> + <ol class="breadcrumb in-well text-right"> + + + + <li class="active">phgrreal.f90</li> + </ol> +</div> +</div> +</div> +<script> + $(function () { + $('[data-toggle="tooltip"]').tooltip() + }) +</script> + + </div> + <div class="row"> + <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg"> + +<div id="sidebar"> + +<h3>Contents</h3> + + + + + + + + +<div class="panel panel-primary"> + <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#mods-0">Modules</a></h3></div> + <div id="mods-0" class="panel-collapse collapse"> + <div class="list-group"> + + <a class="list-group-item" href="../module/phtogr.html">PHTOGR</a> + + </div> + </div> +</div> + + + + + + + + + + + + + + + + +<div class="panel panel-primary"> + <div class="panel-heading text-left"><h3 class="panel-title">Source Code</h3></div> + <div class="list-group"> + <a class="list-group-item" href="../sourcefile/phgrreal.f90.html#src">phgrreal.f90</a> + </div> +</div> + + + +</div> + + </div> + <div class="col-md-9" id='text'> + + <br> + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Files dependent on this one</h3> + </div> + <div class="panel-body"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: sourcefile~~phgrreal.f90~~AfferentGraph Pages: 1 --> +<svg id="sourcefilephgrrealf90AfferentGraph" width="327pt" height="86pt" + viewBox="0.00 0.00 327.00 86.16" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="sourcefile~~phgrreal.f90~~AfferentGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 82.1629)"> +<title>sourcefile~~phgrreal.f90~~AfferentGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-82.1629 323,-82.1629 323,4 -4,4"/> +<!-- sourcefile~phgrreal.f90 --> +<g id="sourcefile~~phgrreal.f90~~AfferentGraph_node1" class="node"><title>sourcefile~phgrreal.f90</title> +<polygon fill="none" stroke="black" points="70,-66 0,-66 0,-42 70,-42 70,-66"/> +<text text-anchor="middle" x="35" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50">phgrreal.f90</text> +</g> +<!-- sourcefile~ftrafo.f90 --> +<g id="sourcefile~~phgrreal.f90~~AfferentGraph_node2" class="node"><title>sourcefile~ftrafo.f90</title> +<g id="a_sourcefile~~phgrreal.f90~~AfferentGraph_node2"><a xlink:href=".././sourcefile/ftrafo.f90.html" xlink:title="ftrafo.f90"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="168.5,-66 113.5,-66 113.5,-42 168.5,-42 168.5,-66"/> +<text text-anchor="middle" x="141" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">ftrafo.f90</text> +</a> +</g> +</g> +<!-- sourcefile~ftrafo.f90->sourcefile~phgrreal.f90 --> +<g id="sourcefile~~phgrreal.f90~~AfferentGraph_edge1" class="edge"><title>sourcefile~ftrafo.f90->sourcefile~phgrreal.f90</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M113.487,-54C103.443,-54 91.7125,-54 80.4631,-54"/> +<polygon fill="#000000" stroke="#000000" points="80.3294,-50.5001 70.3293,-54 80.3293,-57.5001 80.3294,-50.5001"/> +</g> +<!-- sourcefile~preconvert_new.f90 --> +<g id="sourcefile~~phgrreal.f90~~AfferentGraph_node3" class="node"><title>sourcefile~preconvert_new.f90</title> +<g id="a_sourcefile~~phgrreal.f90~~AfferentGraph_node3"><a xlink:href=".././sourcefile/preconvert_new.f90.html" xlink:title="preconvert_new.f90"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="319,-66 212,-66 212,-42 319,-42 319,-66"/> +<text text-anchor="middle" x="265.5" y="-51.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">preconvert_new.f90</text> +</a> +</g> +</g> +<!-- sourcefile~preconvert_new.f90->sourcefile~phgrreal.f90 --> +<g id="sourcefile~~phgrreal.f90~~AfferentGraph_edge2" class="edge"><title>sourcefile~preconvert_new.f90->sourcefile~phgrreal.f90</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M222.543,-66.0684C207.942,-69.7023 191.371,-73.2014 176,-75 145.1,-78.6159 136.781,-79.5177 106,-75 97.0616,-73.6881 87.6802,-71.4814 78.7937,-68.9792"/> +<polygon fill="#000000" stroke="#000000" points="79.6042,-65.5686 69.0208,-66.0604 77.601,-72.2758 79.6042,-65.5686"/> +</g> +<!-- sourcefile~preconvert_new.f90->sourcefile~ftrafo.f90 --> +<g id="sourcefile~~phgrreal.f90~~AfferentGraph_edge4" class="edge"><title>sourcefile~preconvert_new.f90->sourcefile~ftrafo.f90</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M211.838,-54C200.768,-54 189.317,-54 178.969,-54"/> +<polygon fill="#000000" stroke="#000000" points="178.647,-50.5001 168.647,-54 178.647,-57.5001 178.647,-50.5001"/> +</g> +<!-- sourcefile~grphreal.f90 --> +<g id="sourcefile~~phgrreal.f90~~AfferentGraph_node4" class="node"><title>sourcefile~grphreal.f90</title> +<g id="a_sourcefile~~phgrreal.f90~~AfferentGraph_node4"><a xlink:href=".././sourcefile/grphreal.f90.html" xlink:title="grphreal.f90"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="176,-24 106,-24 106,-0 176,-0 176,-24"/> +<text text-anchor="middle" x="141" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grphreal.f90</text> +</a> +</g> +</g> +<!-- sourcefile~preconvert_new.f90->sourcefile~grphreal.f90 --> +<g id="sourcefile~~phgrreal.f90~~AfferentGraph_edge5" class="edge"><title>sourcefile~preconvert_new.f90->sourcefile~grphreal.f90</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M229.396,-41.9645C215.84,-37.3165 200.179,-31.9471 185.892,-27.0487"/> +<polygon fill="#000000" stroke="#000000" points="186.858,-23.6798 176.263,-23.7473 184.587,-30.3015 186.858,-23.6798"/> +</g> +<!-- sourcefile~grphreal.f90->sourcefile~phgrreal.f90 --> +<g id="sourcefile~~phgrreal.f90~~AfferentGraph_edge3" class="edge"><title>sourcefile~grphreal.f90->sourcefile~phgrreal.f90</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M110.198,-24.0355C99.3186,-28.429 86.8436,-33.467 75.266,-38.1426"/> +<polygon fill="#000000" stroke="#000000" points="73.7684,-34.9727 65.8066,-41.9627 76.3896,-41.4634 73.7684,-34.9727"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="190pt" height="32pt" + viewBox="0.00 0.00 190.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 186,-28 186,4 -4,4"/> +<!-- Source File --> +<g id="node1" class="node"><title>Source File</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="67,-24 0,-24 0,-0 67,-0 67,-24"/> +<text text-anchor="middle" x="33.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Source File</text> +</g> +<!-- This Page's Entity --> +<g id="node2" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="182,-24 85,-24 85,-0 182,-0 182,-24"/> +<text text-anchor="middle" x="133.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a file to a file which it depends on. A file + is dependent upon another if the latter must be compiled before the former + can be. + </p> + </div></div></div></div> + </div> + </div> + + <br> + + <section class="visible-xs visible-sm hidden-md"> + +<h3>Contents</h3> + + + + + + + + +<div class="panel panel-primary"> + <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#mods-1">Modules</a></h3></div> + <div id="mods-1" class="panel-collapse collapse"> + <div class="list-group"> + + <a class="list-group-item" href="../module/phtogr.html">PHTOGR</a> + + </div> + </div> +</div> + + + + + + + + + + + + + + + + +<div class="panel panel-primary"> + <div class="panel-heading text-left"><h3 class="panel-title">Source Code</h3></div> + <div class="list-group"> + <a class="list-group-item" href="../sourcefile/phgrreal.f90.html#src">phgrreal.f90</a> + </div> +</div> + + + + </section> + <br class="visible-xs visible-sm hidden-md"> + + <section> + <h2><span class="anchor" id="src"></span>Source Code</h2> + <div class="hl"><pre><span></span><a name="ln-1"></a><span class="k">MODULE </span><span class="n">PHTOGR</span> +<a name="ln-2"></a> +<a name="ln-3"></a> <span class="kt">INTEGER</span><span class="p">,</span> <span class="k">PARAMETER</span> <span class="kd">::</span> <span class="n">MAXAUF</span><span class="o">=</span><span class="mi">36000</span> +<a name="ln-4"></a> +<a name="ln-5"></a><span class="k">CONTAINS</span> +<a name="ln-6"></a> +<a name="ln-7"></a><span class="k"> SUBROUTINE </span><span class="n">PHGR213</span><span class="p">(</span><span class="n">CXMN</span><span class="p">,</span><span class="n">FELD</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">MLAT</span><span class="p">,</span><span class="n">MNAUF</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> +<a name="ln-8"></a> +<a name="ln-9"></a><span class="c">!! DIE ROUTINE F]HRT EINE TRANSFORMATION EINER</span> +<a name="ln-10"></a><span class="c">!! FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN</span> +<a name="ln-11"></a><span class="c">!! RAUM AUF DAS REDUZIERTE GAUSS'SCHE GITTER DURCH</span> +<a name="ln-12"></a><span class="c">!</span> +<a name="ln-13"></a><span class="c">! CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE</span> +<a name="ln-14"></a><span class="c">! CX00,CX01,CX11,CX02,....CXMNAUFMNAUF</span> +<a name="ln-15"></a><span class="c">! FELD = FELD DER METEOROLOGISCHEN VARIABLEN</span> +<a name="ln-16"></a><span class="c">! WSAVE = Working Array fuer Fouriertransformation</span> +<a name="ln-17"></a><span class="c">! Z = LEGENDREFUNKTIONSWERTE</span> +<a name="ln-18"></a><span class="c">!</span> +<a name="ln-19"></a><span class="c">! MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN</span> +<a name="ln-20"></a><span class="c">! MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN</span> +<a name="ln-21"></a><span class="c">! MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN</span> +<a name="ln-22"></a><span class="c">! MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN</span> +<a name="ln-23"></a> +<a name="ln-24"></a> <span class="k">IMPLICIT NONE</span> +<a name="ln-25"></a> +<a name="ln-26"></a><span class="c">! Anzahl der Gitterpunkte auf jedem Breitenkreis</span> +<a name="ln-27"></a> <span class="kt">INTEGER </span><span class="n">MLAT</span><span class="p">(</span><span class="n">MAXB</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span> +<a name="ln-28"></a> <span class="kt">INTEGER </span><span class="n">K</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">MNAUF</span> +<a name="ln-29"></a> <span class="kt">INTEGER </span><span class="n">IND</span><span class="p">(</span><span class="n">MAXB</span><span class="p">)</span> +<a name="ln-30"></a> +<a name="ln-31"></a><span class="c">! FELD DER LEGENDREPOLYNOME FUER EINE BREITE</span> +<a name="ln-32"></a> <span class="kt">REAL </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="o">/</span><span class="mi">2</span><span class="p">)</span> +<a name="ln-33"></a> +<a name="ln-34"></a> <span class="kt">REAL </span><span class="n">CXMN</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="n">MLEVEL</span><span class="p">)</span> +<a name="ln-35"></a> <span class="kt">REAL </span><span class="n">FELD</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">)</span> +<a name="ln-36"></a> <span class="kt">REAL </span><span class="n">WSAVE</span><span class="p">(</span><span class="mi">8</span><span class="o">*</span><span class="n">MAXB</span><span class="o">+</span><span class="mi">15</span><span class="p">,</span><span class="n">MAXB</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span> +<a name="ln-37"></a> <span class="kt">INTEGER</span> <span class="kd">::</span> <span class="n">IFAX</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="n">MAXB</span><span class="p">)</span> +<a name="ln-38"></a> +<a name="ln-39"></a> <span class="n">IND</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="mi">0</span> +<a name="ln-40"></a> <span class="k">DO </span><span class="mi">7</span> <span class="n">K</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">2</span> +<a name="ln-41"></a> <span class="n">IND</span><span class="p">(</span><span class="n">K</span><span class="p">)</span><span class="o">=</span><span class="n">IND</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">MLAT</span><span class="p">(</span><span class="n">K</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-42"></a><span class="mi">7</span> <span class="k">CONTINUE</span> +<a name="ln-43"></a> +<a name="ln-44"></a><span class="c">!$OMP PARALLEL DO SCHEDULE(DYNAMIC)</span> +<a name="ln-45"></a> <span class="k">DO </span><span class="mi">17</span> <span class="n">K</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MAXB</span><span class="o">/</span><span class="mi">2</span> +<a name="ln-46"></a> <span class="k">CALL </span><span class="n">PHSYM</span><span class="p">(</span><span class="n">K</span><span class="p">,</span><span class="n">IND</span><span class="p">,</span><span class="n">CXMN</span><span class="p">,</span><span class="n">FELD</span><span class="p">,</span><span class="n">Z</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">MLAT</span><span class="p">,</span><span class="n">MNAUF</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> +<a name="ln-47"></a><span class="mi">17</span> <span class="k">CONTINUE</span> +<a name="ln-48"></a><span class="c">!$OMP END PARALLEL DO</span> +<a name="ln-49"></a> +<a name="ln-50"></a> <span class="k">RETURN</span> +<a name="ln-51"></a> +<a name="ln-52"></a><span class="k"> END SUBROUTINE </span><span class="n">PHGR213</span> +<a name="ln-53"></a> +<a name="ln-54"></a> <span class="k">SUBROUTINE </span><span class="n">PHSYM</span><span class="p">(</span><span class="n">K</span><span class="p">,</span><span class="n">IND</span><span class="p">,</span><span class="n">CXMN</span><span class="p">,</span><span class="n">FELD</span><span class="p">,</span><span class="n">Z</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">MLAT</span><span class="p">,</span><span class="n">MNAUF</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> +<a name="ln-55"></a> +<a name="ln-56"></a> <span class="k">IMPLICIT NONE</span> +<a name="ln-57"></a> +<a name="ln-58"></a><span class="k"> </span><span class="kt">INTEGER </span><span class="n">MLAT</span><span class="p">(</span><span class="n">MAXB</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span> +<a name="ln-59"></a> <span class="kt">INTEGER </span><span class="n">K</span><span class="p">,</span><span class="n">L</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">LLS</span><span class="p">,</span><span class="n">LLPS</span><span class="p">,</span><span class="n">LL</span><span class="p">,</span><span class="n">LLP</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">MNAUF</span> +<a name="ln-60"></a> <span class="kt">INTEGER </span><span class="n">IND</span><span class="p">(</span><span class="n">MAXB</span><span class="p">)</span> +<a name="ln-61"></a> <span class="kt">INTEGER</span> <span class="kd">::</span> <span class="n">IFAX</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="n">MAXB</span><span class="p">)</span> +<a name="ln-62"></a> +<a name="ln-63"></a> +<a name="ln-64"></a><span class="c">! FELD DER FOURIERKOEFFIZIENTEN</span> +<a name="ln-65"></a> <span class="kt">REAL</span> <span class="kd">::</span> <span class="n">CXMS</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MAXAUF</span><span class="o">-</span><span class="mi">1</span><span class="p">),</span><span class="n">CXMA</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MAXAUF</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-66"></a> +<a name="ln-67"></a><span class="c">! FELD DER LEGENDREPOLYNOME FUER EINE BREITE</span> +<a name="ln-68"></a> <span class="kt">REAL </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="o">/</span><span class="mi">2</span><span class="p">)</span> +<a name="ln-69"></a> <span class="kt">REAL </span><span class="n">ACR</span><span class="p">,</span><span class="n">ACI</span><span class="p">,</span><span class="n">SCR</span><span class="p">,</span><span class="n">SCI</span> +<a name="ln-70"></a> +<a name="ln-71"></a> <span class="kt">REAL </span><span class="n">CXMN</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="n">MLEVEL</span><span class="p">)</span> +<a name="ln-72"></a> <span class="kt">REAL </span><span class="n">FELD</span><span class="p">(</span><span class="n">MAXL</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">)</span> +<a name="ln-73"></a> <span class="kt">REAL </span><span class="n">WSAVE</span><span class="p">(</span><span class="mi">8</span><span class="o">*</span><span class="n">MAXB</span><span class="o">+</span><span class="mi">15</span><span class="p">,</span><span class="n">MAXB</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span> +<a name="ln-74"></a> +<a name="ln-75"></a> <span class="k">DO </span><span class="mi">6</span> <span class="n">L</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span> +<a name="ln-76"></a> <span class="n">LL</span><span class="o">=</span><span class="mi">0</span> +<a name="ln-77"></a> <span class="n">LLP</span><span class="o">=</span><span class="mi">0</span> +<a name="ln-78"></a> <span class="k">DO </span><span class="mi">1</span> <span class="n">I</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span><span class="n">MNAUF</span> +<a name="ln-79"></a> <span class="n">SCR</span><span class="o">=</span><span class="mf">0.D0</span> +<a name="ln-80"></a> <span class="n">SCI</span><span class="o">=</span><span class="mf">0.D0</span> +<a name="ln-81"></a> <span class="n">ACR</span><span class="o">=</span><span class="mf">0.D0</span> +<a name="ln-82"></a> <span class="n">ACI</span><span class="o">=</span><span class="mf">0.D0</span> +<a name="ln-83"></a> <span class="n">LLS</span><span class="o">=</span><span class="n">LL</span> +<a name="ln-84"></a> <span class="n">LLPS</span><span class="o">=</span><span class="n">LLP</span> +<a name="ln-85"></a> <span class="k">IF</span> <span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">I</span><span class="o">+</span><span class="mi">1</span> <span class="p">.</span><span class="n">LT</span><span class="p">.</span> <span class="n">MLAT</span><span class="p">(</span><span class="n">K</span><span class="p">))</span> <span class="k">THEN</span> +<a name="ln-86"></a><span class="c">! Innerste Schleife aufgespalten um if-Abfrage zu sparen</span> +<a name="ln-87"></a> <span class="k">DO </span><span class="mi">18</span> <span class="n">J</span><span class="o">=</span><span class="n">I</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="mi">2</span> +<a name="ln-88"></a> <span class="n">SCR</span><span class="o">=</span><span class="n">SCR</span><span class="o">+</span><span class="n">Z</span><span class="p">(</span><span class="n">LLP</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="n">CXMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">LL</span><span class="p">,</span><span class="n">L</span><span class="p">)</span> +<a name="ln-89"></a> <span class="n">SCI</span><span class="o">=</span><span class="n">SCI</span><span class="o">+</span><span class="n">Z</span><span class="p">(</span><span class="n">LLP</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="n">CXMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">LL</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="n">L</span><span class="p">)</span> +<a name="ln-90"></a> <span class="n">LL</span><span class="o">=</span><span class="n">LL</span><span class="o">+</span><span class="mi">2</span> +<a name="ln-91"></a> <span class="n">LLP</span><span class="o">=</span><span class="n">LLP</span><span class="o">+</span><span class="mi">2</span> +<a name="ln-92"></a><span class="mi">18</span> <span class="k">CONTINUE</span> +<a name="ln-93"></a><span class="k"> </span><span class="n">LL</span><span class="o">=</span><span class="n">LLS</span><span class="o">+</span><span class="mi">1</span> +<a name="ln-94"></a> <span class="n">LLP</span><span class="o">=</span><span class="n">LLPS</span><span class="o">+</span><span class="mi">1</span> +<a name="ln-95"></a> <span class="k">DO </span><span class="mi">19</span> <span class="n">J</span><span class="o">=</span><span class="n">I</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="mi">2</span> +<a name="ln-96"></a> <span class="n">ACR</span><span class="o">=</span><span class="n">ACR</span><span class="o">+</span><span class="n">Z</span><span class="p">(</span><span class="n">LLP</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="n">CXMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">LL</span><span class="p">,</span><span class="n">L</span><span class="p">)</span> +<a name="ln-97"></a> <span class="n">ACI</span><span class="o">=</span><span class="n">ACI</span><span class="o">+</span><span class="n">Z</span><span class="p">(</span><span class="n">LLP</span><span class="p">,</span><span class="n">K</span><span class="p">)</span><span class="o">*</span><span class="n">CXMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">LL</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="n">L</span><span class="p">)</span> +<a name="ln-98"></a> <span class="n">LL</span><span class="o">=</span><span class="n">LL</span><span class="o">+</span><span class="mi">2</span> +<a name="ln-99"></a> <span class="n">LLP</span><span class="o">=</span><span class="n">LLP</span><span class="o">+</span><span class="mi">2</span> +<a name="ln-100"></a><span class="mi">19</span> <span class="k">CONTINUE</span> +<a name="ln-101"></a><span class="k"> END IF</span> +<a name="ln-102"></a><span class="k"> </span><span class="n">LL</span><span class="o">=</span><span class="n">LLS</span><span class="o">+</span><span class="p">(</span><span class="n">MNAUF</span><span class="o">-</span><span class="n">I</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-103"></a> <span class="n">LLP</span><span class="o">=</span><span class="n">LLPS</span><span class="o">+</span><span class="p">(</span><span class="n">MNAUF</span><span class="o">-</span><span class="n">I</span><span class="o">+</span><span class="mi">3</span><span class="p">)</span> +<a name="ln-104"></a> <span class="n">CXMS</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">I</span><span class="p">)</span><span class="o">=</span><span class="n">SCR</span><span class="o">+</span><span class="n">ACR</span> +<a name="ln-105"></a> <span class="n">CXMS</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">I</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">SCI</span><span class="o">+</span><span class="n">ACI</span> +<a name="ln-106"></a> <span class="n">CXMA</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">I</span><span class="p">)</span><span class="o">=</span><span class="n">SCR</span><span class="o">-</span><span class="n">ACR</span> +<a name="ln-107"></a> <span class="n">CXMA</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">I</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">SCI</span><span class="o">-</span><span class="n">ACI</span> +<a name="ln-108"></a><span class="mi">1</span> <span class="k">CONTINUE</span> +<a name="ln-109"></a><span class="c">! CALL FOURTR(CXMS,FELD(IND(k)+1,L),WSAVE(:,K),MNAUF,*MLAT(K),1)</span> +<a name="ln-110"></a><span class="c">! CALL FOURTR(CXMA,FELD(MAXL-IND(k)-MLAT(K)+1,L),WSAVE(:,K),MNAUF,MLAT(K),1)</span> +<a name="ln-111"></a> <span class="k">CALL </span><span class="n">RFOURTR</span><span class="p">(</span><span class="n">CXMS</span><span class="p">,</span><span class="n">WSAVE</span><span class="p">(:,</span><span class="n">K</span><span class="p">),</span><span class="n">IFAX</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">MLAT</span><span class="p">(</span><span class="n">K</span><span class="p">),</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-112"></a> <span class="n">FELD</span><span class="p">(</span><span class="n">IND</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">IND</span><span class="p">(</span><span class="n">K</span><span class="p">)</span><span class="o">+</span><span class="n">MLAT</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="o">=</span><span class="n">CXMS</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MLAT</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> +<a name="ln-113"></a> <span class="k">CALL </span><span class="n">RFOURTR</span><span class="p">(</span><span class="n">CXMA</span><span class="p">,</span><span class="n">WSAVE</span><span class="p">(:,</span><span class="n">K</span><span class="p">),</span><span class="n">IFAX</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">MLAT</span><span class="p">(</span><span class="n">K</span><span class="p">),</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-114"></a> <span class="n">FELD</span><span class="p">(</span><span class="n">MAXL</span><span class="o">-</span><span class="n">IND</span><span class="p">(</span><span class="n">k</span><span class="p">)</span><span class="o">-</span><span class="n">MLAT</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">MAXL</span><span class="o">-</span><span class="n">IND</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="o">=</span><span class="n">CXMA</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MLAT</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> +<a name="ln-115"></a><span class="c">! WRITE(*,*) IND+1,FELD(IND+1,L)</span> +<a name="ln-116"></a><span class="mi">6</span> <span class="k">CONTINUE</span> +<a name="ln-117"></a> +<a name="ln-118"></a><span class="k"> END SUBROUTINE </span><span class="n">PHSYM</span> +<a name="ln-119"></a> +<a name="ln-120"></a> <span class="k">SUBROUTINE </span><span class="n">PHGCUT</span><span class="p">(</span><span class="n">CXMN</span><span class="p">,</span><span class="n">FELD</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">&</span> +<a name="ln-121"></a> <span class="n">MNAUF</span><span class="p">,</span><span class="n">MMAX</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> +<a name="ln-122"></a> +<a name="ln-123"></a><span class="c">!! DIE ROUTINE FUEHRT EINE TRANSFORMATION EINER</span> +<a name="ln-124"></a><span class="c">!! FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN</span> +<a name="ln-125"></a><span class="c">!! RAUM AUF KUGELKOORDINATEN DURCH. Es kann ein Teilausschnitt</span> +<a name="ln-126"></a><span class="c">!! Der Erde angegeben werden. Diese Routine ist langsamer als phgrph</span> +<a name="ln-127"></a> +<a name="ln-128"></a><span class="c">! CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE</span> +<a name="ln-129"></a><span class="c">! CX00,CX01,CX11,CX02,....CXMNAUFMNAUF</span> +<a name="ln-130"></a><span class="c">! FELD = FELD DER METEOROLOGISCHEN VARIABLEN</span> +<a name="ln-131"></a><span class="c">! BREITE = SINUS DER GEOGRAFISCHEN BREITEN</span> +<a name="ln-132"></a><span class="c">!</span> +<a name="ln-133"></a><span class="c">! MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN</span> +<a name="ln-134"></a><span class="c">! MAUF ANZAHL DER LAENGEN UND DER FOURIERKOEFFIZIENTEN</span> +<a name="ln-135"></a><span class="c">! MANF ANFANG DES LAENGENBEREICHS FUER DAS GITTER,</span> +<a name="ln-136"></a><span class="c">! AUF DAS INTERPOLIERT WERDEN SOLL</span> +<a name="ln-137"></a><span class="c">! MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN</span> +<a name="ln-138"></a><span class="c">! MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN</span> +<a name="ln-139"></a><span class="c">! MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN</span> +<a name="ln-140"></a> +<a name="ln-141"></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> +<a name="ln-142"></a> +<a name="ln-143"></a><span class="c">! FELD DER FOURIERKOEFFIZIENTEN</span> +<a name="ln-144"></a> +<a name="ln-145"></a><span class="c">! FELD DER LEGENDREPOLYNOME FUER EINE BREITE</span> +<a name="ln-146"></a> <span class="kt">REAL </span><span class="n">Z</span><span class="p">(</span><span class="mi">0</span><span class="p">:((</span><span class="n">MMAX</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">MMAX</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> +<a name="ln-147"></a> +<a name="ln-148"></a> <span class="k">DIMENSION </span><span class="n">CXMN</span><span class="p">(</span><span class="mi">0</span><span class="p">:(</span><span class="n">MMAX</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">MMAX</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="n">MLEVEL</span><span class="p">)</span> +<a name="ln-149"></a> <span class="kt">REAL </span><span class="n">FELD</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> +<a name="ln-150"></a> <span class="k">DIMENSION </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> +<a name="ln-151"></a> <span class="kt">INTEGER</span><span class="kd">::</span> <span class="n">IFAX</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span> +<a name="ln-152"></a> +<a name="ln-153"></a> <span class="kt">LOGICAL </span><span class="n">SYM</span> +<a name="ln-154"></a> +<a name="ln-155"></a><span class="c">! write(*,*)mauf,mnauf,manf,maxl</span> +<a name="ln-156"></a> +<a name="ln-157"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">MAUF</span> <span class="p">.</span><span class="n">LE</span><span class="p">.</span> <span class="n">MNAUF</span><span class="p">)</span> <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">'TOO COARSE LONGITUDE RESOLUTION'</span> +<a name="ln-158"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">MANF</span> <span class="p">.</span><span class="n">LT</span><span class="p">.</span> <span class="mi">1</span> <span class="p">.</span><span class="nb">OR</span><span class="p">.</span> <span class="n">MAXL</span> <span class="p">.</span><span class="n">LT</span><span class="p">.</span> <span class="mi">1</span> <span class="p">.</span><span class="nb">OR</span><span class="p">.</span> <span class="p">&</span> +<a name="ln-159"></a> <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="nb">OR</span><span class="p">.</span> <span class="n">MAXL</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="k">THEN</span> +<a name="ln-160"></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">'WRONG LONGITUDE RANGE'</span><span class="p">,</span><span class="n">MANF</span><span class="p">,</span><span class="n">MAXL</span> +<a name="ln-161"></a> <span class="k">STOP</span> +<a name="ln-162"></a><span class="k"> END IF</span> +<a name="ln-163"></a> +<a name="ln-164"></a><span class="c">! Pruefe, ob Ausgabegitter symmetrisch zum Aequator ist</span> +<a name="ln-165"></a><span class="c">! Wenn ja soll Symmetrie der Legendrepolynome ausgenutzt werden</span> +<a name="ln-166"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">MAXB</span> <span class="p">.</span><span class="n">GT</span><span class="p">.</span> <span class="mi">4</span><span class="p">)</span> <span class="k">THEN</span> +<a name="ln-167"></a><span class="k"> </span><span class="n">SYM</span><span class="o">=</span><span class="p">.</span><span class="n">TRUE</span><span class="p">.</span> +<a name="ln-168"></a> <span class="k">DO </span><span class="mi">11</span> <span class="n">J</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span><span class="mi">5</span> +<a name="ln-169"></a> <span class="k">IF</span> <span class="p">(</span><span class="nb">ABS</span><span class="p">(</span><span class="nb">ABS</span><span class="p">(</span><span class="n">Z</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="n">J</span><span class="p">))</span><span class="o">-</span><span class="nb">ABS</span><span class="p">(</span><span class="n">Z</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span><span class="n">MAXB</span><span class="o">+</span><span class="mi">1</span><span class="o">-</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="mf">1E-11</span><span class="p">)</span> <span class="n">SYM</span><span class="o">=</span><span class="p">.</span><span class="n">FALSE</span><span class="p">.</span> +<a name="ln-170"></a><span class="c">! WRITE(*,*) ABS(Z(100,J)),ABS(Z(100,MAXB+1-J))</span> +<a name="ln-171"></a><span class="mi">11</span> <span class="k">CONTINUE</span> +<a name="ln-172"></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">'Symmetrisch: '</span><span class="p">,</span><span class="n">SYM</span> +<a name="ln-173"></a> <span class="k">ELSE</span> +<a name="ln-174"></a><span class="k"> </span><span class="n">SYM</span><span class="o">=</span><span class="p">.</span><span class="n">FALSE</span><span class="p">.</span> +<a name="ln-175"></a> <span class="k">END IF</span> +<a name="ln-176"></a> +<a name="ln-177"></a> +<a name="ln-178"></a><span class="k"> IF</span> <span class="p">(</span><span class="n">SYM</span><span class="p">)</span> <span class="k">THEN</span> +<a name="ln-179"></a> +<a name="ln-180"></a><span class="c">!$OMP PARALLEL DO</span> +<a name="ln-181"></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="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">/</span><span class="mi">2</span> +<a name="ln-182"></a> <span class="k">CALL </span><span class="n">PHSYMCUT</span><span class="p">(</span><span class="n">J</span><span class="p">,</span><span class="n">CXMN</span><span class="p">,</span><span class="n">FELD</span><span class="p">,</span><span class="n">Z</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><span class="n">MNAUF</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">MANF</span><span class="p">)</span> +<a name="ln-183"></a> <span class="k">END DO</span> +<a name="ln-184"></a><span class="c">!$OMP END PARALLEL DO</span> +<a name="ln-185"></a> +<a name="ln-186"></a> <span class="k">ELSE</span> +<a name="ln-187"></a> +<a name="ln-188"></a><span class="c">!$OMP PARALLEL DO</span> +<a name="ln-189"></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> +<a name="ln-190"></a> <span class="k">CALL </span><span class="n">PHGPNS</span><span class="p">(</span><span class="n">CXMN</span><span class="p">,</span><span class="n">FELD</span><span class="p">,</span><span class="n">Z</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">J</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> +<a name="ln-191"></a> <span class="k">END DO</span> +<a name="ln-192"></a><span class="c">!$OMP END PARALLEL DO</span> +<a name="ln-193"></a> +<a name="ln-194"></a> <span class="k">END IF</span> +<a name="ln-195"></a> +<a name="ln-196"></a><span class="k"> RETURN</span> +<a name="ln-197"></a> +<a name="ln-198"></a><span class="k"> END SUBROUTINE </span><span class="n">PHGCUT</span> +<a name="ln-199"></a> +<a name="ln-200"></a> <span class="k">SUBROUTINE </span><span class="n">PHSYMCUT</span><span class="p">(</span><span class="n">J</span><span class="p">,</span><span class="n">CXMN</span><span class="p">,</span><span class="n">FELD</span><span class="p">,</span><span class="n">Z</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><span class="n">MNAUF</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">MANF</span><span class="p">)</span> +<a name="ln-201"></a> +<a name="ln-202"></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> +<a name="ln-203"></a> +<a name="ln-204"></a><span class="c">! FELD DER FOURIERKOEFFIZIENTEN</span> +<a name="ln-205"></a> +<a name="ln-206"></a> <span class="kt">REAL</span> <span class="kd">::</span> <span class="n">CXM</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MAXAUF</span><span class="o">-</span><span class="mi">1</span><span class="p">),</span><span class="n">CXMA</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MAXAUF</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-207"></a> +<a name="ln-208"></a><span class="c">! FELD DER LEGENDREPOLYNOME FUER EINE BREITE</span> +<a name="ln-209"></a> <span class="kt">REAL </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> +<a name="ln-210"></a> <span class="kt">REAL </span><span class="n">SCR</span><span class="p">,</span><span class="n">SCI</span><span class="p">,</span><span class="n">ACR</span><span class="p">,</span><span class="n">ACI</span> +<a name="ln-211"></a> +<a name="ln-212"></a> <span class="k">DIMENSION </span><span class="n">CXMN</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="n">MLEVEL</span><span class="p">)</span> +<a name="ln-213"></a> <span class="kt">REAL </span><span class="n">FELD</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> +<a name="ln-214"></a> <span class="k">DIMENSION </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> +<a name="ln-215"></a> <span class="kt">INTEGER</span> <span class="kd">::</span> <span class="n">IFAX</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span> +<a name="ln-216"></a> +<a name="ln-217"></a> <span class="k">DO </span><span class="mi">16</span> <span class="n">L</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span> +<a name="ln-218"></a> <span class="n">LL</span><span class="o">=</span><span class="mi">0</span> +<a name="ln-219"></a> <span class="n">LLP</span><span class="o">=</span><span class="mi">0</span> +<a name="ln-220"></a> <span class="k">DO </span><span class="mi">17</span> <span class="n">I</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span><span class="n">MNAUF</span> +<a name="ln-221"></a> <span class="n">SCR</span><span class="o">=</span><span class="mf">0.D0</span> +<a name="ln-222"></a> <span class="n">SCI</span><span class="o">=</span><span class="mf">0.D0</span> +<a name="ln-223"></a> <span class="n">ACR</span><span class="o">=</span><span class="mf">0.D0</span> +<a name="ln-224"></a> <span class="n">ACI</span><span class="o">=</span><span class="mf">0.D0</span> +<a name="ln-225"></a> <span class="n">LLS</span><span class="o">=</span><span class="n">LL</span> +<a name="ln-226"></a> <span class="n">LLPS</span><span class="o">=</span><span class="n">LLP</span> +<a name="ln-227"></a><span class="c">! Innerste Schleife aufgespalten um if-Abfrage zu sparen</span> +<a name="ln-228"></a> <span class="k">DO </span><span class="mi">18</span> <span class="n">K</span><span class="o">=</span><span class="n">I</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="mi">2</span> +<a name="ln-229"></a> <span class="n">SCR</span><span class="o">=</span><span class="n">SCR</span><span class="o">+</span><span class="n">Z</span><span class="p">(</span><span class="n">LLP</span><span class="p">,</span><span class="n">J</span><span class="p">)</span><span class="o">*</span><span class="n">CXMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">LL</span><span class="p">,</span><span class="n">L</span><span class="p">)</span> +<a name="ln-230"></a> <span class="n">SCI</span><span class="o">=</span><span class="n">SCI</span><span class="o">+</span><span class="n">Z</span><span class="p">(</span><span class="n">LLP</span><span class="p">,</span><span class="n">J</span><span class="p">)</span><span class="o">*</span><span class="n">CXMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">LL</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="n">L</span><span class="p">)</span> +<a name="ln-231"></a> <span class="n">LL</span><span class="o">=</span><span class="n">LL</span><span class="o">+</span><span class="mi">2</span> +<a name="ln-232"></a> <span class="n">LLP</span><span class="o">=</span><span class="n">LLP</span><span class="o">+</span><span class="mi">2</span> +<a name="ln-233"></a><span class="mi">18</span> <span class="k">CONTINUE</span> +<a name="ln-234"></a><span class="k"> </span><span class="n">LL</span><span class="o">=</span><span class="n">LLS</span><span class="o">+</span><span class="mi">1</span> +<a name="ln-235"></a> <span class="n">LLP</span><span class="o">=</span><span class="n">LLPS</span><span class="o">+</span><span class="mi">1</span> +<a name="ln-236"></a> <span class="k">DO </span><span class="mi">19</span> <span class="n">K</span><span class="o">=</span><span class="n">I</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="mi">2</span> +<a name="ln-237"></a> <span class="n">ACR</span><span class="o">=</span><span class="n">ACR</span><span class="o">+</span><span class="n">Z</span><span class="p">(</span><span class="n">LLP</span><span class="p">,</span><span class="n">J</span><span class="p">)</span><span class="o">*</span><span class="n">CXMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">LL</span><span class="p">,</span><span class="n">L</span><span class="p">)</span> +<a name="ln-238"></a> <span class="n">ACI</span><span class="o">=</span><span class="n">ACI</span> <span class="o">+</span><span class="n">Z</span><span class="p">(</span><span class="n">LLP</span><span class="p">,</span><span class="n">J</span><span class="p">)</span><span class="o">*</span><span class="n">CXMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">LL</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="n">L</span><span class="p">)</span> +<a name="ln-239"></a> <span class="n">LL</span><span class="o">=</span><span class="n">LL</span><span class="o">+</span><span class="mi">2</span> +<a name="ln-240"></a> <span class="n">LLP</span><span class="o">=</span><span class="n">LLP</span><span class="o">+</span><span class="mi">2</span> +<a name="ln-241"></a><span class="mi">19</span> <span class="k">CONTINUE</span> +<a name="ln-242"></a><span class="k"> </span><span class="n">LL</span><span class="o">=</span><span class="n">LLS</span><span class="o">+</span><span class="n">MNAUF</span><span class="o">-</span><span class="n">I</span><span class="o">+</span><span class="mi">1</span> +<a name="ln-243"></a> <span class="n">LLP</span><span class="o">=</span><span class="n">LLPS</span><span class="o">+</span><span class="n">MNAUF</span><span class="o">-</span><span class="n">I</span><span class="o">+</span><span class="mi">3</span> +<a name="ln-244"></a> <span class="n">CXM</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">I</span><span class="p">)</span><span class="o">=</span><span class="n">SCR</span><span class="o">+</span><span class="n">ACR</span> +<a name="ln-245"></a> <span class="n">CXM</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">I</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">SCI</span><span class="o">+</span><span class="n">ACI</span> +<a name="ln-246"></a> <span class="n">CXMA</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">I</span><span class="p">)</span><span class="o">=</span><span class="n">SCR</span><span class="o">-</span><span class="n">ACR</span> +<a name="ln-247"></a> <span class="n">CXMA</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">I</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">SCI</span><span class="o">-</span><span class="n">ACI</span> +<a name="ln-248"></a><span class="mi">17</span> <span class="k">CONTINUE</span> +<a name="ln-249"></a> +<a name="ln-250"></a><span class="k"> CALL </span><span class="n">RFOURTR</span><span class="p">(</span><span class="n">CXM</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">MNAUF</span><span class="p">,</span><span class="n">MAUF</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-251"></a> <span class="k">DO </span><span class="mi">26</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> +<a name="ln-252"></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">MAUF</span><span class="p">)</span> <span class="k">THEN</span> +<a name="ln-253"></a><span class="k"> </span><span class="n">FELD</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">L</span><span class="p">)</span><span class="o">=</span><span class="n">CXM</span><span class="p">(</span><span class="n">MANF</span><span class="o">+</span><span class="n">I</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-254"></a> <span class="k">ELSE</span> +<a name="ln-255"></a><span class="k"> </span><span class="n">FELD</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">L</span><span class="p">)</span><span class="o">=</span><span class="n">CXM</span><span class="p">(</span><span class="n">MANF</span><span class="o">-</span><span class="n">MAUF</span><span class="o">+</span><span class="n">I</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-256"></a> <span class="k">END IF</span> +<a name="ln-257"></a><span class="mi">26</span> <span class="k">CONTINUE</span> +<a name="ln-258"></a><span class="k"> CALL </span><span class="n">RFOURTR</span><span class="p">(</span><span class="n">CXMA</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">MNAUF</span><span class="p">,</span><span class="n">MAUF</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-259"></a> <span class="k">DO </span><span class="mi">36</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> +<a name="ln-260"></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">MAUF</span><span class="p">)</span> <span class="k">THEN</span> +<a name="ln-261"></a><span class="k"> </span><span class="n">FELD</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">MAXB</span><span class="o">+</span><span class="mi">1</span><span class="o">-</span><span class="n">J</span><span class="p">,</span><span class="n">L</span><span class="p">)</span><span class="o">=</span><span class="n">CXMA</span><span class="p">(</span><span class="n">MANF</span><span class="o">+</span><span class="n">I</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-262"></a> <span class="k">ELSE</span> +<a name="ln-263"></a><span class="k"> </span><span class="n">FELD</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">MAXB</span><span class="o">+</span><span class="mi">1</span><span class="o">-</span><span class="n">J</span><span class="p">,</span><span class="n">L</span><span class="p">)</span><span class="o">=</span><span class="n">CXMA</span><span class="p">(</span><span class="n">MANF</span><span class="o">-</span><span class="n">MAUF</span><span class="o">+</span><span class="n">I</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-264"></a> <span class="k">END IF</span> +<a name="ln-265"></a><span class="mi">36</span> <span class="k">CONTINUE</span> +<a name="ln-266"></a><span class="mi">16</span> <span class="k">CONTINUE</span> +<a name="ln-267"></a> +<a name="ln-268"></a><span class="k"> END SUBROUTINE </span><span class="n">PHSYMCUT</span> +<a name="ln-269"></a> +<a name="ln-270"></a> <span class="k">SUBROUTINE </span><span class="n">PHGPNS</span><span class="p">(</span><span class="n">CXMN</span><span class="p">,</span><span class="n">FELD</span><span class="p">,</span><span class="n">Z</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">J</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> +<a name="ln-271"></a> +<a name="ln-272"></a> <span class="k">IMPLICIT NONE</span> +<a name="ln-273"></a><span class="k"> </span> +<a name="ln-274"></a><span class="k"> </span><span class="kt">INTEGER</span><span class="p">,</span><span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</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">J</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> +<a name="ln-275"></a> +<a name="ln-276"></a> <span class="kt">REAL</span> <span class="kd">::</span> <span class="n">CXM</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MAXAUF</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-277"></a> <span class="kt">REAL</span><span class="p">,</span><span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</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> +<a name="ln-278"></a> <span class="kt">REAL</span><span class="p">,</span><span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">CXMN</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="n">MLEVEL</span><span class="p">)</span> +<a name="ln-279"></a> <span class="kt">REAL</span><span class="p">,</span><span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</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> +<a name="ln-280"></a> <span class="kt">REAL</span> <span class="kd">::</span> <span class="n">FELD</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> +<a name="ln-281"></a> +<a name="ln-282"></a> <span class="kt">INTEGER</span> <span class="kd">::</span> <span class="n">IFAX</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span> +<a name="ln-283"></a> <span class="kt">INTEGER </span><span class="n">I</span><span class="p">,</span><span class="n">L</span> +<a name="ln-284"></a> +<a name="ln-285"></a> <span class="k">DO </span><span class="n">L</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">MLEVEL</span> +<a name="ln-286"></a> <span class="k">CALL </span><span class="n">LEGTR</span><span class="p">(</span><span class="n">CXMN</span><span class="p">(:,</span><span class="n">L</span><span class="p">),</span><span class="n">CXM</span><span class="p">,</span><span class="n">Z</span><span class="p">(:,</span><span class="n">J</span><span class="p">),</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MAUF</span><span class="p">)</span> +<a name="ln-287"></a> <span class="k">CALL </span><span class="n">RFOURTR</span><span class="p">(</span><span class="n">CXM</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">MNAUF</span><span class="p">,</span><span class="n">MAUF</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-288"></a> +<a name="ln-289"></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> +<a name="ln-290"></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">MAUF</span><span class="p">)</span> <span class="k">THEN</span> +<a name="ln-291"></a><span class="k"> </span><span class="n">FELD</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">L</span><span class="p">)</span><span class="o">=</span><span class="n">CXM</span><span class="p">(</span><span class="n">MANF</span><span class="o">+</span><span class="n">I</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-292"></a> <span class="k">ELSE</span> +<a name="ln-293"></a><span class="k"> </span><span class="n">FELD</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">L</span><span class="p">)</span><span class="o">=</span><span class="n">CXM</span><span class="p">(</span><span class="n">MANF</span><span class="o">-</span><span class="n">MAUF</span><span class="o">+</span><span class="n">I</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-294"></a> <span class="k">END IF</span> +<a name="ln-295"></a><span class="k"> END DO</span> +<a name="ln-296"></a><span class="k"> END DO</span> +<a name="ln-297"></a><span class="k"> END SUBROUTINE </span><span class="n">PHGPNS</span> +<a name="ln-298"></a> +<a name="ln-299"></a> <span class="k">SUBROUTINE </span><span class="n">LEGTR</span><span class="p">(</span><span class="n">CXMN</span><span class="p">,</span><span class="n">CXM</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">MAUF</span><span class="p">)</span> +<a name="ln-300"></a> +<a name="ln-301"></a><span class="c">!! DIESE ROUTINE BERECHNET DIE FOURIERKOEFFIZIENTEN CXM</span> +<a name="ln-302"></a> +<a name="ln-303"></a> +<a name="ln-304"></a> <span class="k">IMPLICIT NONE</span> +<a name="ln-305"></a> +<a name="ln-306"></a><span class="k"> </span><span class="kt">INTEGER </span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MAUF</span><span class="p">,</span><span class="n">LL</span><span class="p">,</span><span class="n">LLP</span><span class="p">,</span><span class="n">I</span><span class="p">,</span><span class="n">J</span> +<a name="ln-307"></a> <span class="kt">REAL </span><span class="n">CXM</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MAXAUF</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-308"></a> <span class="kt">REAL </span><span class="n">CXMN</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> +<a name="ln-309"></a> <span class="kt">REAL </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> +<a name="ln-310"></a> <span class="kt">REAL </span><span class="n">CI</span><span class="p">,</span><span class="n">CR</span> +<a name="ln-311"></a> +<a name="ln-312"></a> <span class="n">LL</span><span class="o">=</span><span class="mi">0</span> +<a name="ln-313"></a> <span class="n">LLP</span><span class="o">=</span><span class="mi">0</span> +<a name="ln-314"></a> <span class="k">DO </span><span class="mi">1</span> <span class="n">I</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span><span class="n">MNAUF</span> +<a name="ln-315"></a> <span class="n">CR</span><span class="o">=</span><span class="mf">0.D0</span> +<a name="ln-316"></a> <span class="n">CI</span><span class="o">=</span><span class="mf">0.D0</span> +<a name="ln-317"></a> <span class="k">DO </span><span class="mi">2</span> <span class="n">J</span><span class="o">=</span><span class="n">I</span><span class="p">,</span><span class="n">MNAUF</span> +<a name="ln-318"></a> <span class="n">CR</span><span class="o">=</span><span class="n">CR</span><span class="o">+</span><span class="n">Z</span><span class="p">(</span><span class="n">LLP</span><span class="p">)</span><span class="o">*</span><span class="n">CXMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">LL</span><span class="p">)</span> +<a name="ln-319"></a> <span class="n">CI</span><span class="o">=</span><span class="n">CI</span><span class="o">+</span><span class="n">Z</span><span class="p">(</span><span class="n">LLP</span><span class="p">)</span><span class="o">*</span><span class="n">CXMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">LL</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-320"></a> <span class="n">LL</span><span class="o">=</span><span class="n">LL</span><span class="o">+</span><span class="mi">1</span> +<a name="ln-321"></a> <span class="n">LLP</span><span class="o">=</span><span class="n">LLP</span><span class="o">+</span><span class="mi">1</span> +<a name="ln-322"></a><span class="mi">2</span> <span class="k">CONTINUE</span> +<a name="ln-323"></a><span class="k"> </span><span class="n">LLP</span><span class="o">=</span><span class="n">LLP</span><span class="o">+</span><span class="mi">2</span> +<a name="ln-324"></a> <span class="n">CXM</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">I</span><span class="p">)</span><span class="o">=</span><span class="n">CR</span> +<a name="ln-325"></a> <span class="n">CXM</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">I</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">CI</span> +<a name="ln-326"></a><span class="mi">1</span> <span class="k">CONTINUE</span> +<a name="ln-327"></a><span class="k"> RETURN</span> +<a name="ln-328"></a><span class="k"> </span> +<a name="ln-329"></a><span class="k"> END SUBROUTINE </span><span class="n">LEGTR</span> +<a name="ln-330"></a> +<a name="ln-331"></a> <span class="k">SUBROUTINE </span><span class="n">RFOURTR</span><span class="p">(</span><span class="n">CXM</span><span class="p">,</span><span class="n">TRIGS</span><span class="p">,</span><span class="n">IFAX</span><span class="p">,</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">MAXL</span><span class="p">,</span><span class="nb">ISIGN</span><span class="p">)</span> +<a name="ln-332"></a> +<a name="ln-333"></a><span class="c">!! BERECHNET DIE FOURIERSUMME MIT EINEM FFT-ALGORITHMUS</span> +<a name="ln-334"></a> +<a name="ln-335"></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> +<a name="ln-336"></a> +<a name="ln-337"></a> <span class="k">DIMENSION </span><span class="n">CXM</span><span class="p">(</span><span class="mi">0</span><span class="p">:</span><span class="n">MAXAUF</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-338"></a> <span class="kt">REAL</span> <span class="kd">::</span> <span class="n">WSAVE</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="n">TRIGS</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">MAXL</span><span class="p">)</span> +<a name="ln-339"></a> <span class="kt">INTEGER </span><span class="n">IFAX</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span> +<a name="ln-340"></a> +<a name="ln-341"></a> <span class="k">DO </span><span class="n">I</span><span class="o">=</span><span class="n">MNAUF</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span><span class="n">MAXL</span><span class="o">-</span><span class="mi">1</span> +<a name="ln-342"></a> <span class="n">CXM</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">I</span><span class="p">)</span><span class="o">=</span><span class="mf">0.0</span> +<a name="ln-343"></a> <span class="n">CXM</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">I</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="mf">0.0</span> +<a name="ln-344"></a> <span class="k">END DO</span> +<a name="ln-345"></a> +<a name="ln-346"></a><span class="k"> CALL </span><span class="n">FFT99</span><span class="p">(</span><span class="n">CXM</span><span class="p">,</span><span class="n">WSAVE</span><span class="p">,</span><span class="n">TRIGS</span><span class="p">,</span><span class="n">IFAX</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">MAXL</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-347"></a> +<a name="ln-348"></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> +<a name="ln-349"></a> <span class="n">CXM</span><span class="p">(</span><span class="n">I</span><span class="p">)</span><span class="o">=</span><span class="n">CXM</span><span class="p">(</span><span class="n">I</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-350"></a> <span class="k">END DO</span> +<a name="ln-351"></a> +<a name="ln-352"></a><span class="k"> RETURN</span> +<a name="ln-353"></a> +<a name="ln-354"></a><span class="k"> END SUBROUTINE </span><span class="n">RFOURTR</span> +<a name="ln-355"></a> +<a name="ln-356"></a> <span class="k">SUBROUTINE </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">X</span><span class="p">,</span><span class="n">W</span><span class="p">,</span><span class="n">N</span><span class="p">)</span> +<a name="ln-357"></a> +<a name="ln-358"></a><span class="c">!! BERECHNET DIE GAUSS+SCHEN BREITEN</span> +<a name="ln-359"></a> +<a name="ln-360"></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> +<a name="ln-361"></a> +<a name="ln-362"></a> <span class="k">DIMENSION </span><span class="n">X</span><span class="p">(</span><span class="n">N</span><span class="p">),</span><span class="n">W</span><span class="p">(</span><span class="n">N</span><span class="p">)</span> +<a name="ln-363"></a> <span class="k">PARAMETER</span> <span class="p">(</span><span class="n">EPS</span><span class="o">=</span><span class="mf">3.D-14</span><span class="p">)</span> +<a name="ln-364"></a> +<a name="ln-365"></a> <span class="n">M</span><span class="o">=</span><span class="p">(</span><span class="n">N</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">/</span><span class="mi">2</span> +<a name="ln-366"></a> <span class="n">XM</span><span class="o">=</span><span class="mf">0.5D0</span><span class="o">*</span><span class="p">(</span><span class="n">X2</span><span class="o">+</span><span class="n">X1</span><span class="p">)</span> +<a name="ln-367"></a> <span class="n">XL</span><span class="o">=</span><span class="mf">0.5D0</span><span class="o">*</span><span class="p">(</span><span class="n">X2</span><span class="o">-</span><span class="n">X1</span><span class="p">)</span> +<a name="ln-368"></a> <span class="k">DO </span><span class="mi">12</span> <span class="n">I</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">M</span> +<a name="ln-369"></a> <span class="n">Z</span><span class="o">=</span><span class="nb">DCOS</span><span class="p">(</span><span class="mf">3.141592654D0</span><span class="o">*</span><span class="p">(</span><span class="n">I</span><span class="o">-</span><span class="p">.</span><span class="mi">25</span><span class="n">D0</span><span class="p">)</span><span class="o">/</span><span class="p">(</span><span class="n">N</span><span class="o">+</span><span class="p">.</span><span class="mi">5</span><span class="n">D0</span><span class="p">))</span> +<a name="ln-370"></a><span class="mi">1</span> <span class="k">CONTINUE</span> +<a name="ln-371"></a><span class="k"> </span><span class="n">P1</span><span class="o">=</span><span class="mf">1.D0</span> +<a name="ln-372"></a> <span class="n">P2</span><span class="o">=</span><span class="mf">0.D0</span> +<a name="ln-373"></a> <span class="k">DO </span><span class="mi">11</span> <span class="n">J</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span><span class="n">N</span> +<a name="ln-374"></a> <span class="n">P3</span><span class="o">=</span><span class="n">P2</span> +<a name="ln-375"></a> <span class="n">P2</span><span class="o">=</span><span class="n">P1</span> +<a name="ln-376"></a> <span class="n">P1</span><span class="o">=</span><span class="p">((</span><span class="mf">2.D0</span><span class="o">*</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="n">Z</span><span class="o">*</span><span class="n">P2</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="n">P3</span><span class="p">)</span><span class="o">/</span><span class="n">J</span> +<a name="ln-377"></a><span class="mi">11</span> <span class="k">CONTINUE</span> +<a name="ln-378"></a><span class="k"> </span><span class="n">PP</span><span class="o">=</span><span class="n">N</span><span class="o">*</span><span class="p">(</span><span class="n">Z</span><span class="o">*</span><span class="n">P1</span><span class="o">-</span><span class="n">P2</span><span class="p">)</span><span class="o">/</span><span class="p">(</span><span class="n">Z</span><span class="o">*</span><span class="n">Z</span><span class="o">-</span><span class="mf">1.D0</span><span class="p">)</span> +<a name="ln-379"></a> <span class="n">Z1</span><span class="o">=</span><span class="n">Z</span> +<a name="ln-380"></a> <span class="n">Z</span><span class="o">=</span><span class="n">Z1</span><span class="o">-</span><span class="n">P1</span><span class="o">/</span><span class="n">PP</span> +<a name="ln-381"></a> <span class="k">IF</span> <span class="p">(</span><span class="nb">ABS</span><span class="p">(</span><span class="n">Z</span><span class="o">-</span><span class="n">Z1</span><span class="p">)</span> <span class="p">.</span><span class="n">GT</span><span class="p">.</span> <span class="n">EPS</span><span class="p">)</span><span class="n">GO</span> <span class="n">TO</span> <span class="mi">1</span> +<a name="ln-382"></a> <span class="n">X</span><span class="p">(</span><span class="n">I</span><span class="p">)</span><span class="o">=</span><span class="n">XM</span><span class="o">-</span><span class="n">XL</span><span class="o">*</span><span class="n">Z</span> +<a name="ln-383"></a> <span class="n">X</span><span class="p">(</span><span class="n">N</span><span class="o">+</span><span class="mi">1</span><span class="o">-</span><span class="n">I</span><span class="p">)</span><span class="o">=</span><span class="n">XM</span><span class="o">+</span><span class="n">XL</span><span class="o">*</span><span class="n">Z</span> +<a name="ln-384"></a> <span class="n">W</span><span class="p">(</span><span class="n">I</span><span class="p">)</span><span class="o">=</span><span class="mf">2.D0</span><span class="o">*</span><span class="n">XL</span><span class="o">/</span><span class="p">((</span><span class="mf">1.D0</span><span class="o">-</span><span class="n">Z</span><span class="o">*</span><span class="n">Z</span><span class="p">)</span><span class="o">*</span><span class="n">PP</span><span class="o">*</span><span class="n">PP</span><span class="p">)</span> +<a name="ln-385"></a> <span class="n">W</span><span class="p">(</span><span class="n">N</span><span class="o">+</span><span class="mi">1</span><span class="o">-</span><span class="n">I</span><span class="p">)</span><span class="o">=</span><span class="n">W</span><span class="p">(</span><span class="n">I</span><span class="p">)</span> +<a name="ln-386"></a><span class="mi">12</span> <span class="k">CONTINUE</span> +<a name="ln-387"></a> +<a name="ln-388"></a><span class="k"> RETURN</span> +<a name="ln-389"></a> +<a name="ln-390"></a><span class="k"> END SUBROUTINE </span><span class="n">GAULEG</span> +<a name="ln-391"></a> +<a name="ln-392"></a> +<a name="ln-393"></a> <span class="k">SUBROUTINE </span><span class="n">PLGNFA</span><span class="p">(</span><span class="n">LL</span><span class="p">,</span><span class="n">X</span><span class="p">,</span><span class="n">Z</span><span class="p">)</span> +<a name="ln-394"></a> +<a name="ln-395"></a><span class="c">!! PLGNDN BERECHNET ALLE NORMIERTEN ASSOZIIERTEN</span> +<a name="ln-396"></a><span class="c">!! LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X)</span> +<a name="ln-397"></a><span class="c">!! UND SCHREIBT SIE IN DAS FELD Z</span> +<a name="ln-398"></a><span class="c">! Die Polynome sind wie im ECMWF indiziert, d.h.</span> +<a name="ln-399"></a><span class="c">! P00,P10,P11,P20,P21,P22,...</span> +<a name="ln-400"></a><span class="c">! Ansonsten ist die Routine analog zu PLGNDN</span> +<a name="ln-401"></a><span class="c">! X IST DER COSINUS DES ZENITWINKELS ODER</span> +<a name="ln-402"></a><span class="c">! DER SINUS DER GEOGRAFISCHEN BREITE</span> +<a name="ln-403"></a> +<a name="ln-404"></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> +<a name="ln-405"></a> +<a name="ln-406"></a> <span class="k">DIMENSION </span><span class="n">Z</span><span class="p">(</span><span class="mi">0</span><span class="p">:((</span><span class="n">LL</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">LL</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> +<a name="ln-407"></a> +<a name="ln-408"></a> <span class="n">L</span><span class="o">=</span><span class="n">LL</span><span class="o">+</span><span class="mi">2</span> +<a name="ln-409"></a> <span class="n">I</span><span class="o">=</span><span class="mi">1</span> +<a name="ln-410"></a> <span class="n">Z</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span><span class="o">=</span><span class="mf">1.D0</span> +<a name="ln-411"></a> <span class="n">FACT</span><span class="o">=</span><span class="mf">1.D0</span> +<a name="ln-412"></a> <span class="n">POT</span><span class="o">=</span><span class="mf">1.D0</span> +<a name="ln-413"></a> <span class="n">SOMX2</span><span class="o">=</span><span class="nb">DSQRT</span><span class="p">(</span><span class="mf">1.D0</span><span class="o">-</span><span class="n">X</span><span class="o">*</span><span class="n">X</span><span class="p">)</span> +<a name="ln-414"></a> <span class="k">DO </span><span class="mi">14</span> <span class="n">J</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span><span class="n">L</span> +<a name="ln-415"></a> <span class="n">DJ</span><span class="o">=</span><span class="nb">DBLE</span><span class="p">(</span><span class="n">J</span><span class="p">)</span> +<a name="ln-416"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">J</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="k">THEN</span> +<a name="ln-417"></a><span class="k"> </span><span class="n">FACT</span><span class="o">=</span><span class="n">FACT</span><span class="o">*</span><span class="p">(</span><span class="mf">2.D0</span><span class="o">*</span><span class="n">DJ</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="mf">2.D0</span><span class="o">*</span><span class="n">DJ</span><span class="p">)</span> +<a name="ln-418"></a> <span class="n">POT</span><span class="o">=</span><span class="n">POT</span><span class="o">*</span><span class="n">SOMX2</span> +<a name="ln-419"></a> <span class="n">Z</span><span class="p">(</span><span class="n">I</span><span class="p">)</span><span class="o">=</span><span class="nb">DSQRT</span><span class="p">((</span><span class="mf">2.D0</span><span class="o">*</span><span class="n">DJ</span><span class="o">+</span><span class="mf">1.D0</span><span class="p">)</span><span class="o">*</span><span class="n">FACT</span><span class="p">)</span><span class="o">*</span><span class="n">POT</span> +<a name="ln-420"></a> <span class="n">I</span><span class="o">=</span><span class="n">I</span><span class="o">+</span><span class="mi">1</span> +<a name="ln-421"></a> <span class="k">END IF</span> +<a name="ln-422"></a><span class="k"> IF</span> <span class="p">(</span><span class="n">J</span> <span class="p">.</span><span class="n">LT</span><span class="p">.</span> <span class="n">L</span><span class="p">)</span> <span class="k">THEN</span> +<a name="ln-423"></a><span class="k"> </span><span class="n">Z</span><span class="p">(</span><span class="n">I</span><span class="p">)</span><span class="o">=</span><span class="n">X</span><span class="o">*</span><span class="nb">DSQRT</span><span class="p">((</span><span class="mf">4.D0</span><span class="o">*</span><span class="n">DJ</span><span class="o">*</span><span class="n">DJ</span><span class="o">+</span><span class="mf">8.D0</span><span class="o">*</span><span class="n">DJ</span><span class="o">+</span><span class="mf">3.D0</span><span class="p">)</span><span class="o">/</span><span class="p">(</span><span class="mf">2.D0</span><span class="o">*</span><span class="n">DJ</span><span class="o">+</span><span class="mf">1.D0</span><span class="p">))</span><span class="o">*</span><span class="n">Z</span><span class="p">(</span><span class="n">I</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-424"></a> <span class="n">I</span><span class="o">=</span><span class="n">I</span><span class="o">+</span><span class="mi">1</span> +<a name="ln-425"></a> <span class="k">END IF</span> +<a name="ln-426"></a><span class="k"> </span><span class="n">DK</span><span class="o">=</span><span class="n">DJ</span><span class="o">+</span><span class="mf">2.D0</span> +<a name="ln-427"></a> <span class="k">DO </span><span class="mi">14</span> <span class="n">K</span><span class="o">=</span><span class="n">J</span><span class="o">+</span><span class="mi">2</span><span class="p">,</span><span class="n">L</span> +<a name="ln-428"></a> <span class="n">DDK</span><span class="o">=</span><span class="p">(</span><span class="n">DK</span><span class="o">*</span><span class="n">DK</span><span class="o">-</span><span class="n">DJ</span><span class="o">*</span><span class="n">DJ</span><span class="p">)</span> +<a name="ln-429"></a> <span class="n">Z</span><span class="p">(</span><span class="n">I</span><span class="p">)</span><span class="o">=</span><span class="n">X</span><span class="o">*</span><span class="nb">DSQRT</span><span class="p">((</span><span class="mf">4.D0</span><span class="o">*</span><span class="n">DK</span><span class="o">*</span><span class="n">DK</span><span class="o">-</span><span class="mf">1.D0</span><span class="p">)</span><span class="o">/</span><span class="n">DDK</span><span class="p">)</span><span class="o">*</span><span class="n">Z</span><span class="p">(</span><span class="n">I</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span><span class="o">-</span> <span class="p">&</span> +<a name="ln-430"></a> <span class="nb">DSQRT</span><span class="p">(((</span><span class="mf">2.D0</span><span class="o">*</span><span class="n">DK</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">DK</span><span class="o">-</span><span class="n">DJ</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">DK</span><span class="o">+</span><span class="n">DJ</span><span class="o">-</span><span class="mf">1.D0</span><span class="p">))</span><span class="o">/</span> <span class="p">&</span> +<a name="ln-431"></a> <span class="p">((</span><span class="mf">2.D0</span><span class="o">*</span><span class="n">DK</span><span class="o">-</span><span class="mf">3.D0</span><span class="p">)</span><span class="o">*</span><span class="n">DDK</span><span class="p">))</span><span class="o">*</span><span class="n">Z</span><span class="p">(</span><span class="n">I</span><span class="o">-</span><span class="mi">2</span><span class="p">)</span> +<a name="ln-432"></a> <span class="n">DK</span><span class="o">=</span><span class="n">DK</span><span class="o">+</span><span class="mf">1.D0</span> +<a name="ln-433"></a> <span class="n">I</span><span class="o">=</span><span class="n">I</span><span class="o">+</span><span class="mi">1</span> +<a name="ln-434"></a><span class="mi">14</span> <span class="k">CONTINUE</span> +<a name="ln-435"></a> +<a name="ln-436"></a><span class="k"> RETURN</span> +<a name="ln-437"></a> +<a name="ln-438"></a><span class="k"> END SUBROUTINE </span><span class="n">PLGNFA</span> +<a name="ln-439"></a> +<a name="ln-440"></a> <span class="k">SUBROUTINE </span><span class="n">DPLGND</span><span class="p">(</span><span class="n">MNAUF</span><span class="p">,</span><span class="n">Z</span><span class="p">,</span><span class="n">DZ</span><span class="p">)</span> +<a name="ln-441"></a> +<a name="ln-442"></a><span class="c">!! DPLGND BERECHNET DIE ABLEITUNG DER NORMIERTEN ASSOZIIERTEN</span> +<a name="ln-443"></a><span class="c">!! LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X)</span> +<a name="ln-444"></a><span class="c">!! UND SCHREIBT SIE IN DAS FELD DZ</span> +<a name="ln-445"></a><span class="c">! DIE REIHENFOLGE IST</span> +<a name="ln-446"></a><span class="c">! P00(X),P01(X),P11(X),P02(X),P12(X),P22(X),..PLL(X)</span> +<a name="ln-447"></a> +<a name="ln-448"></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> +<a name="ln-449"></a> +<a name="ln-450"></a> <span class="k">DIMENSION </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> +<a name="ln-451"></a> <span class="k">DIMENSION </span><span class="n">DZ</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> +<a name="ln-452"></a> +<a name="ln-453"></a> <span class="k">IF</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="p">.</span><span class="n">NE</span><span class="p">.</span> <span class="mf">1.D0</span><span class="p">)</span> <span class="k">THEN</span> +<a name="ln-454"></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">'DPLGND: Z(0) must be 1.0'</span> +<a name="ln-455"></a> <span class="k">STOP</span> +<a name="ln-456"></a><span class="k"> END IF</span> +<a name="ln-457"></a> +<a name="ln-458"></a><span class="k"> </span><span class="n">LLP</span><span class="o">=</span><span class="mi">0</span> +<a name="ln-459"></a> <span class="n">LLH</span><span class="o">=</span><span class="mi">0</span> +<a name="ln-460"></a> <span class="k">DO </span><span class="mi">1</span> <span class="n">I</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">1</span> +<a name="ln-461"></a> <span class="k">DO </span><span class="mi">2</span> <span class="n">J</span><span class="o">=</span><span class="n">I</span><span class="p">,</span><span class="n">MNAUF</span><span class="o">+</span><span class="mi">1</span> +<a name="ln-462"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">I</span> <span class="p">.</span><span class="n">EQ</span><span class="p">.</span> <span class="n">J</span><span class="p">)</span> <span class="k">THEN</span> +<a name="ln-463"></a><span class="k"> </span><span class="n">WURZELA</span><span class="o">=</span><span class="nb">DSQRT</span><span class="p">(</span><span class="nb">DBLE</span><span class="p">((</span><span class="n">J</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">J</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">-</span><span class="n">I</span><span class="o">*</span><span class="n">I</span><span class="p">)</span><span class="o">/</span><span class="nb">DBLE</span><span class="p">(</span><span class="mi">4</span><span class="o">*</span><span class="p">(</span><span class="n">J</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">J</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span> +<a name="ln-464"></a> <span class="n">DZ</span><span class="p">(</span><span class="n">LLH</span><span class="p">)</span><span class="o">=</span><span class="nb">DBLE</span><span class="p">(</span><span class="n">J</span><span class="p">)</span><span class="o">*</span><span class="n">WURZELA</span><span class="o">*</span><span class="n">Z</span><span class="p">(</span><span class="n">LLP</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-465"></a> <span class="k">ELSE</span> +<a name="ln-466"></a><span class="k"> </span><span class="n">WURZELB</span><span class="o">=</span><span class="nb">DSQRT</span><span class="p">(</span><span class="nb">DBLE</span><span class="p">((</span><span class="n">J</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">J</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">-</span><span class="n">I</span><span class="o">*</span><span class="n">I</span><span class="p">)</span><span class="o">/</span><span class="nb">DBLE</span><span class="p">(</span><span class="mi">4</span><span class="o">*</span><span class="p">(</span><span class="n">J</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">J</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">))</span> +<a name="ln-467"></a> <span class="n">DZ</span><span class="p">(</span><span class="n">LLH</span><span class="p">)</span><span class="o">=</span><span class="nb">DBLE</span><span class="p">(</span><span class="n">J</span><span class="p">)</span><span class="o">*</span><span class="n">WURZELB</span><span class="o">*</span><span class="n">Z</span><span class="p">(</span><span class="n">LLP</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">-</span><span class="nb">DBLE</span><span class="p">(</span><span class="n">J</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">*</span><span class="n">WURZELA</span><span class="o">*</span><span class="n">Z</span><span class="p">(</span><span class="n">LLP</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-468"></a> <span class="n">WURZELA</span><span class="o">=</span><span class="n">WURZELB</span> +<a name="ln-469"></a> <span class="k">END IF</span> +<a name="ln-470"></a><span class="k"> </span><span class="n">LLH</span><span class="o">=</span><span class="n">LLH</span><span class="o">+</span><span class="mi">1</span> +<a name="ln-471"></a> <span class="n">LLP</span><span class="o">=</span><span class="n">LLP</span><span class="o">+</span><span class="mi">1</span> +<a name="ln-472"></a><span class="mi">2</span> <span class="k">CONTINUE</span> +<a name="ln-473"></a><span class="k"> </span><span class="n">LLP</span><span class="o">=</span><span class="n">LLP</span><span class="o">+</span><span class="mi">1</span> +<a name="ln-474"></a><span class="mi">1</span> <span class="k">CONTINUE</span> +<a name="ln-475"></a> +<a name="ln-476"></a><span class="k"> RETURN</span> +<a name="ln-477"></a> +<a name="ln-478"></a><span class="k"> END SUBROUTINE </span><span class="n">DPLGND</span> +<a name="ln-479"></a> +<a name="ln-480"></a> +<a name="ln-481"></a> <span class="k">SUBROUTINE </span><span class="n">SPFILTER</span><span class="p">(</span><span class="n">FELDMN</span><span class="p">,</span><span class="n">MM</span><span class="p">,</span><span class="n">MMAX</span><span class="p">)</span> +<a name="ln-482"></a> +<a name="ln-483"></a><span class="c">!! Spectral Filter of Sardeshmukh and Hoskins (1984, MWR)</span> +<a name="ln-484"></a><span class="c">! MM=Spectral truncation of field</span> +<a name="ln-485"></a><span class="c">! MMAX= Spectral truncation of filter</span> +<a name="ln-486"></a> +<a name="ln-487"></a> <span class="k">IMPLICIT NONE</span> +<a name="ln-488"></a> +<a name="ln-489"></a><span class="k"> </span><span class="kt">INTEGER </span><span class="n">MM</span><span class="p">,</span><span class="n">MMAX</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">L</span> +<a name="ln-490"></a> <span class="kt">REAL </span><span class="n">FELDMN</span><span class="p">(</span><span class="mi">0</span><span class="p">:(</span><span class="n">MM</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">MM</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> +<a name="ln-491"></a> <span class="kt">REAL </span><span class="n">KMAX</span><span class="p">,</span><span class="n">SMAX</span><span class="p">,</span><span class="n">FAK</span> +<a name="ln-492"></a> +<a name="ln-493"></a> <span class="n">SMAX</span><span class="o">=</span><span class="mf">0.1</span> +<a name="ln-494"></a> <span class="n">KMAX</span><span class="o">=-</span><span class="nb">ALOG</span><span class="p">(</span><span class="n">SMAX</span><span class="p">)</span> +<a name="ln-495"></a> <span class="n">KMAX</span><span class="o">=</span><span class="n">KMAX</span><span class="o">/</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="n">MMAX</span><span class="p">)</span><span class="o">*</span><span class="nb">float</span><span class="p">(</span><span class="n">MMAX</span><span class="o">+</span><span class="mi">1</span><span class="p">))</span><span class="o">**</span><span class="mi">2</span> +<a name="ln-496"></a><span class="c">! WRITE(*,*)'alogsmax',alog(smax),'KMAX:',KMAX</span> +<a name="ln-497"></a> <span class="n">L</span><span class="o">=</span><span class="mi">0</span> +<a name="ln-498"></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">MM</span> +<a name="ln-499"></a> <span class="k">DO </span><span class="n">J</span><span class="o">=</span><span class="n">I</span><span class="p">,</span><span class="n">MM</span> +<a name="ln-500"></a><span class="c">! WRITE(*,*) I,J,FELD(K),FELD(K)*EXP(-KMAX*(J*(J+1))**2)</span> +<a name="ln-501"></a> <span class="k">IF</span><span class="p">(</span><span class="n">J</span> <span class="p">.</span><span class="n">LE</span><span class="p">.</span> <span class="n">MMAX</span><span class="p">)</span> <span class="k">THEN</span> +<a name="ln-502"></a><span class="c">! FAK=EXP(-KMAX*(J*(J+1))**2)</span> +<a name="ln-503"></a> <span class="n">FAK</span><span class="o">=</span><span class="mf">1.0</span> +<a name="ln-504"></a> <span class="n">FELDMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">L</span><span class="p">)</span><span class="o">=</span><span class="n">FELDMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">L</span><span class="p">)</span><span class="o">*</span><span class="n">FAK</span> +<a name="ln-505"></a> <span class="n">FELDMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">L</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">FELDMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">L</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">*</span><span class="n">FAK</span> +<a name="ln-506"></a> <span class="k">ELSE</span> +<a name="ln-507"></a><span class="k"> </span><span class="n">FELDMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">L</span><span class="p">)</span><span class="o">=</span><span class="mf">0.</span> +<a name="ln-508"></a> <span class="n">FELDMN</span><span class="p">(</span><span class="mi">2</span><span class="o">*</span><span class="n">L</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="mf">0.</span> +<a name="ln-509"></a> <span class="k">END IF</span> +<a name="ln-510"></a><span class="k"> </span><span class="n">L</span><span class="o">=</span><span class="n">L</span><span class="o">+</span><span class="mi">1</span> +<a name="ln-511"></a> <span class="k">END DO</span> +<a name="ln-512"></a><span class="k"> END DO</span> +<a name="ln-513"></a><span class="k"> </span> +<a name="ln-514"></a><span class="k"> END SUBROUTINE </span><span class="n">SPFILTER</span> +<a name="ln-515"></a> +<a name="ln-516"></a><span class="k">END MODULE </span><span class="n">PHTOGR</span> +</pre></div> + + </section> + </div> + </div> + + + <hr> + </div> <!-- /container --> + <footer> + <div class="container"> + <div class="row"> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> + <div class="col-xs-6 col-md-4 col-md-push-4"> + <p class="text-right"> + Documentation generated by + <a href="https://github.com/cmacmackin/ford">FORD</a> + + </p> + </div> + <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<sup>1</sup></p></div> + </div> + <br> + </div> <!-- /container --> + </footer> + + <!-- Bootstrap core JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> +<!-- + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> +--> + <script src="../js/bootstrap.min.js"></script> + <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> + <script src="../js/ie10-viewport-bug-workaround.js"></script> + + <!-- MathJax JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> + <script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, + jax: ['input/TeX','input/MathML','output/HTML-CSS'], + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] + }); + </script> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="../tipuesearch/tipuesearch_content.js"></script> + <script src="../tipuesearch/tipuesearch_set.js"></script> + <script src="../tipuesearch/tipuesearch.js"></script> + + + </body> +</html> \ No newline at end of file diff --git a/Documentation/FORD/V6/Doc/sourcefile/posnam.f90.html b/Documentation/FORD/V6/Doc/sourcefile/posnam.f90.html new file mode 100644 index 0000000000000000000000000000000000000000..e505dc98bf71d564c56fe6377ba3f587063b6687 --- /dev/null +++ b/Documentation/FORD/V6/Doc/sourcefile/posnam.f90.html @@ -0,0 +1,346 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > + <link rel="icon" href="../favicon.png"> + + <title>posnam.f90 – Flex_extract: Calculation of etadot</title> + + <link href="../css/bootstrap.min.css" rel="stylesheet"> + <link href="../css/pygments.css" rel="stylesheet"> + <link href="../css/font-awesome.min.css" rel="stylesheet"> + <link href="../css/local.css" rel="stylesheet"> + + <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> + + + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> + <![endif]--> + + <script src="../js/jquery-2.1.3.min.js"></script> + <script src="../js/svg-pan-zoom.min.js"></script> + + </head> + + <body> + + <!-- Fixed navbar --> + <nav class="navbar navbar-inverse navbar-fixed-top"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + </div> + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> + <a href="#" class="dropdown-toggle" + data-toggle="dropdown" role="button" + aria-haspopup="true" + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + + + <li><a href="../lists/files.html">Source Files</a></li> + + + + <li><a href="../lists/modules.html">Modules</a></li> + + + + <li><a href="../lists/procedures.html">Procedures</a></li> + + + + <li><a href="../program/preconvert.html">Program</a></li> + + </ul> + </li> + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> + + </ul> + + <form action="../search.html" class="navbar-form navbar-right" role="search"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> + </div> +<!-- + <button type="submit" class="btn btn-default">Submit</button> +--> + </form> + + </div><!--/.nav-collapse --> + </div> + </nav> + + <div class="container"> + + + <div class="row"> + <h1>posnam.f90 + <small>Source File</small> + + </h1> + +<div class="row"> + <div class="col-lg-12"> +<div class="well well-sm"> + <ul class="list-inline" style="margin-bottom:0px;display:inline"> + + + + + + + <li><i class="fa fa-list-ol"></i> + <a data-toggle="tooltip" + data-placement="bottom" data-html="true" + title=" 1.2% of total for source files.">17 statements</a> + </li> + + + + <li><i class="fa fa-code"></i><a href="../src/posnam.f90"> Source File</a></li> + + + </ul> + <ol class="breadcrumb in-well text-right"> + + + + <li class="active">posnam.f90</li> + </ol> +</div> +</div> +</div> +<script> + $(function () { + $('[data-toggle="tooltip"]').tooltip() + }) +</script> + + </div> + <div class="row"> + <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg"> + +<div id="sidebar"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + +<div class="panel panel-primary"> + <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#subs-0">Subroutines</a></h3></div> + <div class="list-group"> + <div id="subs-0" class="panel-collapse collapse"> + + <a class="list-group-item" href="../proc/posnam.html">POSNAM</a> + + </div> + </div> +</div> + + + + + + + + + +<div class="panel panel-primary"> + <div class="panel-heading text-left"><h3 class="panel-title">Source Code</h3></div> + <div class="list-group"> + <a class="list-group-item" href="../sourcefile/posnam.f90.html#src">posnam.f90</a> + </div> +</div> + + + +</div> + + </div> + <div class="col-md-9" id='text'> + + <br> + + + + + <section class="visible-xs visible-sm hidden-md"> + +<h3>Contents</h3> + + + + + + + + + + + + + + + +<div class="panel panel-primary"> + <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#subs-1">Subroutines</a></h3></div> + <div class="list-group"> + <div id="subs-1" class="panel-collapse collapse"> + + <a class="list-group-item" href="../proc/posnam.html">POSNAM</a> + + </div> + </div> +</div> + + + + + + + + + +<div class="panel panel-primary"> + <div class="panel-heading text-left"><h3 class="panel-title">Source Code</h3></div> + <div class="list-group"> + <a class="list-group-item" href="../sourcefile/posnam.f90.html#src">posnam.f90</a> + </div> +</div> + + + + </section> + <br class="visible-xs visible-sm hidden-md"> + + <section> + <h2><span class="anchor" id="src"></span>Source Code</h2> + <div class="hl"><pre><span></span><a name="ln-1"></a> <span class="k">SUBROUTINE </span><span class="n">POSNAM</span><span class="p">(</span><span class="n">KULNAM</span><span class="p">,</span><span class="n">CDNAML</span><span class="p">)</span> +<a name="ln-2"></a> +<a name="ln-3"></a> <span class="c">!! position in namelist file.</span> +<a name="ln-4"></a> <span class="c">! author: Mats Hamrud, ECMWF</span> +<a name="ln-5"></a> +<a name="ln-6"></a> <span class="kt">INTEGER</span><span class="p">,</span> <span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">KULNAM</span> +<a name="ln-7"></a> <span class="kt">CHARACTER</span><span class="o">*</span><span class="p">(</span><span class="o">*</span><span class="p">),</span> <span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">CDNAML</span> +<a name="ln-8"></a> <span class="kt">CHARACTER</span><span class="o">*</span><span class="mi">120</span> <span class="n">CLINE</span> +<a name="ln-9"></a> <span class="kt">CHARACTER</span><span class="o">*</span><span class="mi">1</span> <span class="n">CLTEST</span> +<a name="ln-10"></a> +<a name="ln-11"></a> <span class="k">REWIND</span><span class="p">(</span><span class="n">KULNAM</span><span class="p">)</span> +<a name="ln-12"></a> <span class="n">ILEN</span> <span class="o">=</span> <span class="nb">LEN</span><span class="p">(</span><span class="n">CDNAML</span><span class="p">)</span> +<a name="ln-13"></a><span class="mi">102</span> <span class="k">CONTINUE</span> +<a name="ln-14"></a><span class="k"> </span><span class="n">CLINE</span> <span class="o">=</span> <span class="s1">' '</span> +<a name="ln-15"></a> <span class="k">READ</span><span class="p">(</span><span class="n">KULNAM</span><span class="p">,</span><span class="s1">'(A)'</span><span class="p">)</span> <span class="n">CLINE</span> +<a name="ln-16"></a> <span class="n">IND1</span> <span class="o">=</span> <span class="nb">INDEX</span><span class="p">(</span><span class="n">CLINE</span><span class="p">,</span><span class="s1">'&'</span><span class="o">//</span><span class="n">CDNAML</span><span class="p">)</span> +<a name="ln-17"></a> <span class="k">IF</span> <span class="p">(</span><span class="n">IND1</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="n">GO</span> <span class="n">TO</span> <span class="mi">102</span> +<a name="ln-18"></a> <span class="n">CLTEST</span> <span class="o">=</span> <span class="n">CLINE</span><span class="p">(</span><span class="n">IND1</span><span class="o">+</span><span class="n">ILEN</span><span class="o">+</span><span class="mi">1</span><span class="p">:</span><span class="n">IND1</span><span class="o">+</span><span class="n">ILEN</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span> +<a name="ln-19"></a> <span class="k">IF</span> <span class="p">(</span><span class="nb">LGE</span><span class="p">(</span><span class="n">CLTEST</span><span class="p">,</span><span class="s1">'0'</span><span class="p">)</span> <span class="p">.</span><span class="nb">AND</span><span class="p">.</span> <span class="nb">LLE</span><span class="p">(</span><span class="n">CLTEST</span><span class="p">,</span><span class="s1">'9'</span><span class="p">)</span> <span class="p">.</span><span class="nb">OR</span><span class="p">.</span> <span class="p">&</span> +<a name="ln-20"></a> <span class="nb">LGE</span><span class="p">(</span><span class="n">CLTEST</span><span class="p">,</span><span class="s1">'A'</span><span class="p">)</span> <span class="p">.</span><span class="nb">AND</span><span class="p">.</span> <span class="nb">LLE</span><span class="p">(</span><span class="n">CLTEST</span><span class="p">,</span><span class="s1">'Z'</span><span class="p">))</span> <span class="k">GOTO </span><span class="mi">102</span> +<a name="ln-21"></a> <span class="k">BACKSPACE</span><span class="p">(</span><span class="n">KULNAM</span><span class="p">)</span> +<a name="ln-22"></a> +<a name="ln-23"></a> <span class="k">RETURN</span> +<a name="ln-24"></a><span class="k"> </span> +<a name="ln-25"></a><span class="k"> END SUBROUTINE </span><span class="n">POSNAM</span> +</pre></div> + + </section> + </div> + </div> + + + <hr> + </div> <!-- /container --> + <footer> + <div class="container"> + <div class="row"> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> + <div class="col-xs-6 col-md-4 col-md-push-4"> + <p class="text-right"> + Documentation generated by + <a href="https://github.com/cmacmackin/ford">FORD</a> + + </p> + </div> + <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<sup>1</sup></p></div> + </div> + <br> + </div> <!-- /container --> + </footer> + + <!-- Bootstrap core JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> +<!-- + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> +--> + <script src="../js/bootstrap.min.js"></script> + <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> + <script src="../js/ie10-viewport-bug-workaround.js"></script> + + <!-- MathJax JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> + <script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, + jax: ['input/TeX','input/MathML','output/HTML-CSS'], + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] + }); + </script> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="../tipuesearch/tipuesearch_content.js"></script> + <script src="../tipuesearch/tipuesearch_set.js"></script> + <script src="../tipuesearch/tipuesearch.js"></script> + + + </body> +</html> \ No newline at end of file diff --git a/Documentation/FORD/V6/Doc/sourcefile/preconvert_new.f90.html b/Documentation/FORD/V6/Doc/sourcefile/preconvert_new.f90.html new file mode 100644 index 0000000000000000000000000000000000000000..1e512758454a3fe789bcba70fdd7fe8f2ec2fe63 --- /dev/null +++ b/Documentation/FORD/V6/Doc/sourcefile/preconvert_new.f90.html @@ -0,0 +1,1287 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > + <link rel="icon" href="../favicon.png"> + + <title>preconvert_new.f90 – Flex_extract: Calculation of etadot</title> + + <link href="../css/bootstrap.min.css" rel="stylesheet"> + <link href="../css/pygments.css" rel="stylesheet"> + <link href="../css/font-awesome.min.css" rel="stylesheet"> + <link href="../css/local.css" rel="stylesheet"> + + <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> + + + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> + <![endif]--> + + <script src="../js/jquery-2.1.3.min.js"></script> + <script src="../js/svg-pan-zoom.min.js"></script> + + </head> + + <body> + + <!-- Fixed navbar --> + <nav class="navbar navbar-inverse navbar-fixed-top"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + </div> + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> + <a href="#" class="dropdown-toggle" + data-toggle="dropdown" role="button" + aria-haspopup="true" + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + + + <li><a href="../lists/files.html">Source Files</a></li> + + + + <li><a href="../lists/modules.html">Modules</a></li> + + + + <li><a href="../lists/procedures.html">Procedures</a></li> + + + + <li><a href="../program/preconvert.html">Program</a></li> + + </ul> + </li> + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> + + </ul> + + <form action="../search.html" class="navbar-form navbar-right" role="search"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> + </div> +<!-- + <button type="submit" class="btn btn-default">Submit</button> +--> + </form> + + </div><!--/.nav-collapse --> + </div> + </nav> + + <div class="container"> + + + <div class="row"> + <h1>preconvert_new.f90 + <small>Source File</small> + + </h1> + +<div class="row"> + <div class="col-lg-12"> +<div class="well well-sm"> + <ul class="list-inline" style="margin-bottom:0px;display:inline"> + + + + + + + <li><i class="fa fa-list-ol"></i> + <a data-toggle="tooltip" + data-placement="bottom" data-html="true" + title="30.4% of total for source files.">427 statements</a> + </li> + + + + <li><i class="fa fa-code"></i><a href="../src/preconvert_new.f90"> Source File</a></li> + + + </ul> + <ol class="breadcrumb in-well text-right"> + + + + <li class="active">preconvert_new.f90</li> + </ol> +</div> +</div> +</div> +<script> + $(function () { + $('[data-toggle="tooltip"]').tooltip() + }) +</script> + + </div> + <div class="row"> + <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg"> + +<div id="sidebar"> + +<h3>Contents</h3> + + + + + + + +<div class="panel panel-primary"> + <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#progs-0">Programs</a></h3></div> + <div id="progs-0" class="panel-collapse collapse"> + <div class="list-group"> + + <a class="list-group-item" href="../program/preconvert.html">PRECONVERT</a> + + </div> + </div> +</div> + + + + + + + + + +<div class="panel panel-primary"> + <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#funcs-0">Functions</a></h3></div> + <div id="funcs-0" class="panel-collapse collapse"> + <div class="list-group"> + + <a class="list-group-item" href="../proc/ia.html">IA</a> + + </div> + </div> +</div> + + + +<div class="panel panel-primary"> + <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#subs-0">Subroutines</a></h3></div> + <div class="list-group"> + <div id="subs-0" class="panel-collapse collapse"> + + <a class="list-group-item" href="../proc/statis.html">STATIS</a> + + </div> + </div> +</div> + + + + + + + + + +<div class="panel panel-primary"> + <div class="panel-heading text-left"><h3 class="panel-title">Source Code</h3></div> + <div class="list-group"> + <a class="list-group-item" href="../sourcefile/preconvert_new.f90.html#src">preconvert_new.f90</a> + </div> +</div> + + + +</div> + + </div> + <div class="col-md-9" id='text'> + + <br> + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">This file depends on</h3> + </div> + <div class="panel-body"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: sourcefile~~preconvert_new.f90~~EfferentGraph Pages: 1 --> +<svg id="sourcefilepreconvert_newf90EfferentGraph" width="330pt" height="154pt" + viewBox="0.00 0.00 330.00 154.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="sourcefile~~preconvert_new.f90~~EfferentGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 150)"> +<title>sourcefile~~preconvert_new.f90~~EfferentGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-150 326,-150 326,4 -4,4"/> +<!-- sourcefile~preconvert_new.f90 --> +<g id="sourcefile~~preconvert_new.f90~~EfferentGraph_node1" class="node"><title>sourcefile~preconvert_new.f90</title> +<polygon fill="none" stroke="black" points="322,-84 215,-84 215,-60 322,-60 322,-84"/> +<text text-anchor="middle" x="268.5" y="-69.6" font-family="Helvetica,sans-Serif" font-size="10.50">preconvert_new.f90</text> +</g> +<!-- sourcefile~rwgrib2.f90 --> +<g id="sourcefile~~preconvert_new.f90~~EfferentGraph_node2" class="node"><title>sourcefile~rwgrib2.f90</title> +<g id="a_sourcefile~~preconvert_new.f90~~EfferentGraph_node2"><a xlink:href=".././sourcefile/rwgrib2.f90.html" xlink:title="rwGRIB2.f90"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="179,-146 106,-146 106,-122 179,-122 179,-146"/> +<text text-anchor="middle" x="142.5" y="-131.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">rwGRIB2.f90</text> +</a> +</g> +</g> +<!-- sourcefile~preconvert_new.f90->sourcefile~rwgrib2.f90 --> +<g id="sourcefile~~preconvert_new.f90~~EfferentGraph_edge1" class="edge"><title>sourcefile~preconvert_new.f90->sourcefile~rwgrib2.f90</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M243.297,-84.1014C224.35,-93.575 197.787,-106.856 176.829,-117.335"/> +<polygon fill="#000000" stroke="#000000" points="175.021,-114.326 167.642,-121.929 178.151,-120.587 175.021,-114.326"/> +</g> +<!-- sourcefile~ftrafo.f90 --> +<g id="sourcefile~~preconvert_new.f90~~EfferentGraph_node3" class="node"><title>sourcefile~ftrafo.f90</title> +<g id="a_sourcefile~~preconvert_new.f90~~EfferentGraph_node3"><a xlink:href=".././sourcefile/ftrafo.f90.html" xlink:title="ftrafo.f90"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="170,-104 115,-104 115,-80 170,-80 170,-104"/> +<text text-anchor="middle" x="142.5" y="-89.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">ftrafo.f90</text> +</a> +</g> +</g> +<!-- sourcefile~preconvert_new.f90->sourcefile~ftrafo.f90 --> +<g id="sourcefile~~preconvert_new.f90~~EfferentGraph_edge2" class="edge"><title>sourcefile~preconvert_new.f90->sourcefile~ftrafo.f90</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M214.913,-80.4818C203.208,-82.3697 191.044,-84.3316 180.144,-86.0896"/> +<polygon fill="#000000" stroke="#000000" points="179.452,-82.656 170.137,-87.7037 180.567,-89.5667 179.452,-82.656"/> +</g> +<!-- sourcefile~phgrreal.f90 --> +<g id="sourcefile~~preconvert_new.f90~~EfferentGraph_node4" class="node"><title>sourcefile~phgrreal.f90</title> +<g id="a_sourcefile~~preconvert_new.f90~~EfferentGraph_node4"><a xlink:href=".././sourcefile/phgrreal.f90.html" xlink:title="phgrreal.f90"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="70,-64 0,-64 0,-40 70,-40 70,-64"/> +<text text-anchor="middle" x="35" y="-49.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">phgrreal.f90</text> +</a> +</g> +</g> +<!-- sourcefile~preconvert_new.f90->sourcefile~phgrreal.f90 --> +<g id="sourcefile~~preconvert_new.f90~~EfferentGraph_edge4" class="edge"><title>sourcefile~preconvert_new.f90->sourcefile~phgrreal.f90</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M214.969,-67.4617C174.364,-63.9537 118.785,-59.1521 80.3878,-55.8348"/> +<polygon fill="#000000" stroke="#000000" points="80.3042,-52.3146 70.0401,-54.9408 79.7017,-59.2886 80.3042,-52.3146"/> +</g> +<!-- sourcefile~grphreal.f90 --> +<g id="sourcefile~~preconvert_new.f90~~EfferentGraph_node5" class="node"><title>sourcefile~grphreal.f90</title> +<g id="a_sourcefile~~preconvert_new.f90~~EfferentGraph_node5"><a xlink:href=".././sourcefile/grphreal.f90.html" xlink:title="grphreal.f90"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="177.5,-24 107.5,-24 107.5,-0 177.5,-0 177.5,-24"/> +<text text-anchor="middle" x="142.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">grphreal.f90</text> +</a> +</g> +</g> +<!-- sourcefile~preconvert_new.f90->sourcefile~grphreal.f90 --> +<g id="sourcefile~~preconvert_new.f90~~EfferentGraph_edge3" class="edge"><title>sourcefile~preconvert_new.f90->sourcefile~grphreal.f90</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M242.407,-59.8581C223.751,-50.8309 198.085,-38.4119 177.574,-28.4872"/> +<polygon fill="#000000" stroke="#000000" points="179.082,-25.3289 168.556,-24.1238 176.033,-31.6301 179.082,-25.3289"/> +</g> +<!-- sourcefile~ftrafo.f90->sourcefile~phgrreal.f90 --> +<g id="sourcefile~~preconvert_new.f90~~EfferentGraph_edge5" class="edge"><title>sourcefile~ftrafo.f90->sourcefile~phgrreal.f90</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M114.878,-81.9063C103.495,-77.5907 89.9416,-72.4518 77.3078,-67.6617"/> +<polygon fill="#000000" stroke="#000000" points="78.4684,-64.3587 67.8771,-64.0861 75.9867,-70.904 78.4684,-64.3587"/> +</g> +<!-- sourcefile~grphreal.f90->sourcefile~phgrreal.f90 --> +<g id="sourcefile~~preconvert_new.f90~~EfferentGraph_edge6" class="edge"><title>sourcefile~grphreal.f90->sourcefile~phgrreal.f90</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M109.847,-24.0013C99.7162,-27.8422 88.343,-32.1543 77.6139,-36.2222"/> +<polygon fill="#000000" stroke="#000000" points="76.1054,-33.051 67.9958,-39.8689 78.5871,-39.5963 76.1054,-33.051"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="190pt" height="32pt" + viewBox="0.00 0.00 190.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 186,-28 186,4 -4,4"/> +<!-- Source File --> +<g id="node1" class="node"><title>Source File</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="67,-24 0,-24 0,-0 67,-0 67,-24"/> +<text text-anchor="middle" x="33.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Source File</text> +</g> +<!-- This Page's Entity --> +<g id="node2" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="182,-24 85,-24 85,-0 182,-0 182,-24"/> +<text text-anchor="middle" x="133.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a file to a file which it depends on. A file + is dependent upon another if the latter must be compiled before the former + can be. + </p> + </div></div></div></div> + </div> + </div> + + + <br> + + <section class="visible-xs visible-sm hidden-md"> + +<h3>Contents</h3> + + + + + + + +<div class="panel panel-primary"> + <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#progs-1">Programs</a></h3></div> + <div id="progs-1" class="panel-collapse collapse"> + <div class="list-group"> + + <a class="list-group-item" href="../program/preconvert.html">PRECONVERT</a> + + </div> + </div> +</div> + + + + + + + + + +<div class="panel panel-primary"> + <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#funcs-1">Functions</a></h3></div> + <div id="funcs-1" class="panel-collapse collapse"> + <div class="list-group"> + + <a class="list-group-item" href="../proc/ia.html">IA</a> + + </div> + </div> +</div> + + + +<div class="panel panel-primary"> + <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#subs-1">Subroutines</a></h3></div> + <div class="list-group"> + <div id="subs-1" class="panel-collapse collapse"> + + <a class="list-group-item" href="../proc/statis.html">STATIS</a> + + </div> + </div> +</div> + + + + + + + + + +<div class="panel panel-primary"> + <div class="panel-heading text-left"><h3 class="panel-title">Source Code</h3></div> + <div class="list-group"> + <a class="list-group-item" href="../sourcefile/preconvert_new.f90.html#src">preconvert_new.f90</a> + </div> +</div> + + + + </section> + <br class="visible-xs visible-sm hidden-md"> + + <section> + <h2><span class="anchor" id="src"></span>Source Code</h2> + <div class="hl"><pre><span></span><a name="ln-1"></a><span class="k">PROGRAM </span><span class="n">PRECONVERT</span> +<a name="ln-2"></a> +<a name="ln-3"></a><span class="c">!! Prepare input data for FLEXPART, esp. vertical velocity as </span> +<a name="ln-4"></a><span class="c">!! etadot or etadot * dp/deta</span> +<a name="ln-5"></a> +<a name="ln-6"></a><span class="c">!*----------------------------------------------------------------</span> +<a name="ln-7"></a><span class="c">! author: L. Haimberger</span> +<a name="ln-8"></a><span class="c">! date: 03/2010</span> +<a name="ln-9"></a><span class="c">! version: V4.0 </span> +<a name="ln-10"></a><span class="c">! </span> +<a name="ln-11"></a><span class="c">!## Program PRECONVERT </span> +<a name="ln-12"></a><span class="c">! </span> +<a name="ln-13"></a><span class="c">! **Prepares input data for POP model meteorological preprocessor**</span> +<a name="ln-14"></a><span class="c">! </span> +<a name="ln-15"></a><span class="c">!-----------------------------------------------------------------</span> +<a name="ln-16"></a><span class="c">! </span> +<a name="ln-17"></a><span class="c">! Calculation of etapoint on a regular \(\lambda-\phi\) grid and writing </span> +<a name="ln-18"></a><span class="c">! `U,V,ETAPOINT,T,PS,Q,SD,MSL,TCC,10U, 10V, 2T,2D,LSP,CP,SSHF,SSR, </span> +<a name="ln-19"></a><span class="c">! EWSS,NSSS`</span> +<a name="ln-20"></a><span class="c">! to an output file (input and output in GRIB 1 or 2 format). </span> +<a name="ln-21"></a><span class="c">! etapoint is defined as the total time derivative of </span> +<a name="ln-22"></a><span class="c">! ECMWF vertical coordinate eta multiplied by the derivative</span> +<a name="ln-23"></a><span class="c">! of pressure with respect to eta:</span> +<a name="ln-24"></a><span class="c">! \[\frac{\mathrm{d}\eta}{\mathrm{d}t}\frac{\partial p}{\partial \eta}\]</span> +<a name="ln-25"></a><span class="c">! </span> +<a name="ln-26"></a><span class="c">!### Version history and authors:</span> +<a name="ln-27"></a><span class="c">! - 04/1994: Leopold Haimberger, Gerhard Wotawa</span> +<a name="ln-28"></a><span class="c">!</span> +<a name="ln-29"></a><span class="c">! - 2003-05-11: Alexander Beck </span> +<a name="ln-30"></a><span class="c">!</span> +<a name="ln-31"></a><span class="c">! - 12/2006: L. Haimberger V2.0,</span> +<a name="ln-32"></a><span class="c">! handle arbitrary regular grids and T799 resolution data </span> +<a name="ln-33"></a><span class="c">!</span> +<a name="ln-34"></a><span class="c">! - 03/2010: L. Haimberger V4.0,</span> +<a name="ln-35"></a><span class="c">! handle GRIB edition 2 fields and T1279 resolution data </span> +<a name="ln-36"></a><span class="c">! - 04-06/2019: Petra Seibert, </span> +<a name="ln-37"></a><span class="c">! beautify code and add FORD documentation</span> +<a name="ln-38"></a><span class="c">! </span> +<a name="ln-39"></a><span class="c">!-----------------------------------------------------------------</span> +<a name="ln-40"></a><span class="c">! # </span> +<a name="ln-41"></a><span class="c">!## Input required:</span> +<a name="ln-42"></a><span class="c">! </span> +<a name="ln-43"></a><span class="c">! UNIT FILE PARAMETER(S) DATA REPRESENTATION </span> +<a name="ln-44"></a><span class="c">! </span> +<a name="ln-45"></a><span class="c">! 11 fort.11 T,U,V regular lambda phi grid</span> +<a name="ln-46"></a><span class="c">! 12 fort.12 D regular lambda phi grid </span> +<a name="ln-47"></a><span class="c">! 13 fort.13 LNSP spherical harmonics</span> +<a name="ln-48"></a><span class="c">! 14 fort.14 SD,MSL,TCC,10U, </span> +<a name="ln-49"></a><span class="c">! 10V,2T,2D regular lambda phi grid </span> +<a name="ln-50"></a><span class="c">! 16 fort.16 LSP,CP,SSHF, </span> +<a name="ln-51"></a><span class="c">! SSR,EWSS,NSSS regular lambda phi grid</span> +<a name="ln-52"></a><span class="c">! 17 fort.17 Q regular lambda phi grid</span> +<a name="ln-53"></a><span class="c">! </span> +<a name="ln-54"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-55"></a><span class="c">! </span> +<a name="ln-56"></a><span class="c">!### Output produced:</span> +<a name="ln-57"></a><span class="c">! </span> +<a name="ln-58"></a><span class="c">! UNIT FILE PARAMETER(S) DATA REPRESENTATION </span> +<a name="ln-59"></a><span class="c">! </span> +<a name="ln-60"></a><span class="c">! 15 fort.15 `U,V,ETA,T,PS, </span> +<a name="ln-61"></a><span class="c">! `Q,SD,MSL,TCC,` </span> +<a name="ln-62"></a><span class="c">! `10U,10V,2T,2D,` regular lambda phi grid </span> +<a name="ln-63"></a><span class="c">! `LSP,CP,SSHF,` </span> +<a name="ln-64"></a><span class="c">! `SSR,EWSS,NSSS` </span> +<a name="ln-65"></a><span class="c">! </span> +<a name="ln-66"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-67"></a> +<a name="ln-68"></a> <span class="k">USE </span><span class="n">PHTOGR</span> +<a name="ln-69"></a> <span class="k">USE </span><span class="n">GRTOPH</span> +<a name="ln-70"></a> <span class="k">USE </span><span class="n">FTRAFO</span> +<a name="ln-71"></a> <span class="k">USE </span><span class="n">RWGRIB2</span> +<a name="ln-72"></a> <span class="k">USE </span><span class="n">GRIB_API</span> +<a name="ln-73"></a> +<a name="ln-74"></a> <span class="k">IMPLICIT NONE</span> +<a name="ln-75"></a> +<a name="ln-76"></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> +<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">Z</span> +<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">T</span><span class="p">,</span> <span class="n">UV</span> <span class="p">,</span> <span class="n">UV2</span> +<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">QA</span><span class="p">,</span><span class="n">OM</span><span class="p">,</span><span class="n">OMR</span> +<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">DIV</span><span class="p">,</span> <span class="n">ETA</span><span class="p">,</span><span class="n">ETAR</span> +<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">DPSDL</span><span class="p">,</span> <span class="n">DPSDM</span> +<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">PS</span><span class="p">,</span><span class="n">DPSDT</span> +<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">SURF</span><span class="p">,</span><span class="n">FLUX</span><span class="p">,</span><span class="n">OROLSM</span> +<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">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> +<a name="ln-85"></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> +<a name="ln-86"></a> +<a name="ln-87"></a><span class="c">! Arrays for Gaussian grid calculations</span> +<a name="ln-88"></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> +<a name="ln-89"></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> +<a name="ln-90"></a> +<a name="ln-91"></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="p">,</span><span class="n">P2</span> +<a name="ln-92"></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> +<a name="ln-93"></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> +<a name="ln-94"></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> +<a name="ln-95"></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> +<a name="ln-96"></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> +<a name="ln-97"></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> +<a name="ln-98"></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> +<a name="ln-99"></a> +<a name="ln-100"></a><span class="c">! end arrays for Gaussian grid calculations</span> +<a name="ln-101"></a> +<a name="ln-102"></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> +<a name="ln-103"></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> +<a name="ln-104"></a> +<a name="ln-105"></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> +<a name="ln-106"></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> +<a name="ln-107"></a> +<a name="ln-108"></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> +<a name="ln-109"></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> +<a name="ln-110"></a> <span class="kt">INTEGER </span><span class="n">LUNIT</span><span class="p">,</span><span class="n">LUNIT2</span> +<a name="ln-111"></a> +<a name="ln-112"></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> +<a name="ln-113"></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> +<a name="ln-114"></a> <span class="kt">INTEGER </span><span class="n">MDPDETA</span><span class="p">,</span><span class="n">METAPAR</span> +<a name="ln-115"></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> +<a name="ln-116"></a> <span class="kt">CHARACTER</span><span class="o">*</span><span class="mi">300</span> <span class="n">MLEVELIST</span> +<a name="ln-117"></a> +<a name="ln-118"></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> +<a name="ln-119"></a> +<a name="ln-120"></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> +<a name="ln-121"></a> +<a name="ln-122"></a> <span class="kt">CHARACTER</span><span class="o">*</span><span class="mi">80</span> <span class="n">FILENAME</span> +<a name="ln-123"></a> +<a name="ln-124"></a> <span class="k">NAMELIST</span> <span class="o">/</span><span class="n">NAMGEN</span><span class="o">/</span> <span class="p">&</span> +<a name="ln-125"></a> <span class="n">MAXL</span><span class="p">,</span> <span class="n">MAXB</span><span class="p">,</span> <span class="p">&</span> +<a name="ln-126"></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">&</span> +<a name="ln-127"></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">&</span> +<a name="ln-128"></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">,&</span> +<a name="ln-129"></a> <span class="n">MDPDETA</span> +<a name="ln-130"></a> +<a name="ln-131"></a> <span class="n">LTEST</span><span class="o">=</span><span class="mi">1</span> +<a name="ln-132"></a> +<a name="ln-133"></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">'NAMGEN'</span><span class="p">)</span> +<a name="ln-134"></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> +<a name="ln-135"></a> +<a name="ln-136"></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> +<a name="ln-137"></a><span class="c">! PRINT*, MAUF</span> +<a name="ln-138"></a> +<a name="ln-139"></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> +<a name="ln-140"></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> +<a name="ln-141"></a> +<a name="ln-142"></a> +<a name="ln-143"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-144"></a><span class="c">!! ALLOCATE VARIABLES </span> +<a name="ln-145"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-146"></a> +<a name="ln-147"></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> +<a name="ln-148"></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> +<a name="ln-149"></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> +<a name="ln-150"></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> +<a name="ln-151"></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> +<a name="ln-152"></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> +<a name="ln-153"></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> +<a name="ln-154"></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> +<a name="ln-155"></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> +<a name="ln-156"></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> +<a name="ln-157"></a> +<a name="ln-158"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-159"></a><span class="c">! GAUSS STUFF </span> +<a name="ln-160"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-161"></a> +<a name="ln-162"></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> +<a name="ln-163"></a><span class="k"> </span><span class="n">LUNIT</span><span class="o">=</span><span class="mi">0</span> +<a name="ln-164"></a> <span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.18'</span> +<a name="ln-165"></a> +<a name="ln-166"></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">'R'</span><span class="p">)</span> +<a name="ln-167"></a> +<a name="ln-168"></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> +<a name="ln-169"></a> +<a name="ln-170"></a><span class="c">! we can close the file</span> +<a name="ln-171"></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> +<a name="ln-172"></a><span class="c">! call grib_get(igrib(1),'gridType', j)</span> +<a name="ln-173"></a> +<a name="ln-174"></a> <span class="n">NGJ</span><span class="o">=</span><span class="n">MNAUF</span><span class="o">+</span><span class="mi">1</span> +<a name="ln-175"></a> +<a name="ln-176"></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> +<a name="ln-177"></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> +<a name="ln-178"></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> +<a name="ln-179"></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> +<a name="ln-180"></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> +<a name="ln-181"></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> +<a name="ln-182"></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> +<a name="ln-183"></a> +<a name="ln-184"></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">'numberOfPointsAlongAMeridian'</span><span class="p">,</span> <span class="n">NGJ</span><span class="p">)</span> +<a name="ln-185"></a> +<a name="ln-186"></a> <span class="n">get</span> <span class="n">as</span> <span class="n">a</span> <span class="kt">integer</span> +<a name="ln-187"></a><span class="kt"> </span><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">'pl'</span><span class="p">,</span> <span class="n">MLAT</span><span class="p">)</span> +<a name="ln-188"></a> +<a name="ln-189"></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> +<a name="ln-190"></a> +<a name="ln-191"></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">'numberOfVerticalCoordinateValues'</span><span class="p">,</span><span class="n">MK</span><span class="p">)</span> +<a name="ln-192"></a> +<a name="ln-193"></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> +<a name="ln-194"></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">'FATAL: Number of model levels'</span><span class="p">,</span><span class="n">mk</span><span class="p">,</span> <span class="p">&</span> +<a name="ln-195"></a> <span class="s1">' does not agree with'</span><span class="p">,</span> <span class="n">MLEVEL</span><span class="p">,</span><span class="s1">' in namelist'</span> +<a name="ln-196"></a> <span class="k">STOP</span> +<a name="ln-197"></a><span class="k"> END IF</span> +<a name="ln-198"></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">'pv'</span><span class="p">,</span><span class="n">pv</span><span class="p">)</span> +<a name="ln-199"></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> +<a name="ln-200"></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> +<a name="ln-201"></a> +<a name="ln-202"></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> +<a name="ln-203"></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> +<a name="ln-204"></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> +<a name="ln-205"></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> +<a name="ln-206"></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> +<a name="ln-207"></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> +<a name="ln-208"></a><span class="c">! ALLOCATE (UV2(MAXL, MAXB, 2*MLEVEL))</span> +<a name="ln-209"></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> +<a name="ln-210"></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> +<a name="ln-211"></a> +<a name="ln-212"></a><span class="c">!! Initialisieren Legendretransformation auf das LaT/LON Gitter </span> +<a name="ln-213"></a> +<a name="ln-214"></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> +<a name="ln-215"></a> +<a name="ln-216"></a><span class="c">!$OMP PARALLEL DO</span> +<a name="ln-217"></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> +<a name="ln-218"></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> +<a name="ln-219"></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> +<a name="ln-220"></a><span class="mi">20</span> <span class="k">CONTINUE</span> +<a name="ln-221"></a><span class="c">!$OMP END PARALLEL DO</span> +<a name="ln-222"></a> +<a name="ln-223"></a><span class="c">! Avoid possible Pole problem</span> +<a name="ln-224"></a><span class="c">! IF (RLA0 .EQ. -90.0) BREITE(MAXB)=sin(-89.99*PI/180.d0)</span> +<a name="ln-225"></a><span class="c">! IF (RLA1 .EQ. 90.0) BREITE(1)=sin(89.99*PI/180.d0)</span> +<a name="ln-226"></a> +<a name="ln-227"></a><span class="c">!* Initialisation of fields for FFT and Legendre transformation</span> +<a name="ln-228"></a><span class="c">! to Gaussian grid and back to phase space</span> +<a name="ln-229"></a> <span class="n">X1</span><span class="o">=-</span><span class="mf">1.D0</span> +<a name="ln-230"></a> <span class="n">X2</span><span class="o">=</span><span class="mf">1.D0</span> +<a name="ln-231"></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> +<a name="ln-232"></a> +<a name="ln-233"></a><span class="c">!$OMP PARALLEL DO PRIVATE(M)</span> +<a name="ln-234"></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> +<a name="ln-235"></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> +<a name="ln-236"></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> +<a name="ln-237"></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> +<a name="ln-238"></a> <span class="k">END DO</span> +<a name="ln-239"></a><span class="k"> END DO</span> +<a name="ln-240"></a><span class="c">!$OMP END PARALLEL DO</span> +<a name="ln-241"></a> +<a name="ln-242"></a><span class="c">! MPAR(1)=152</span> +<a name="ln-243"></a> <span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.12'</span> +<a name="ln-244"></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> +<a name="ln-245"></a><span class="c">! goto 111</span> +<a name="ln-246"></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> +<a name="ln-247"></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">&</span> +<a name="ln-248"></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> +<a name="ln-249"></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> +<a name="ln-250"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A12,3F12.4)'</span><span class="p">)</span> <span class="s1">'STATISTICS: '</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> +<a name="ln-251"></a> +<a name="ln-252"></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> +<a name="ln-253"></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> +<a name="ln-254"></a> <span class="k">END DO</span> +<a name="ln-255"></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> +<a name="ln-256"></a> <span class="n">PSG</span><span class="o">=</span><span class="n">HILF</span> +<a name="ln-257"></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">&</span> +<a name="ln-258"></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> +<a name="ln-259"></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> +<a name="ln-260"></a> +<a name="ln-261"></a> +<a name="ln-262"></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> +<a name="ln-263"></a> +<a name="ln-264"></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> +<a name="ln-265"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A12,3F11.4)'</span><span class="p">)</span> <span class="s1">'STATISTICS: '</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> +<a name="ln-266"></a> +<a name="ln-267"></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> +<a name="ln-268"></a> <span class="n">HILF</span><span class="o">=</span><span class="n">PSG</span> +<a name="ln-269"></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> +<a name="ln-270"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A12,3F11.4)'</span><span class="p">)</span> <span class="s1">'STATISTICS: '</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> +<a name="ln-271"></a> +<a name="ln-272"></a><span class="mi">111</span> <span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.10'</span> +<a name="ln-273"></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="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> +<a name="ln-274"></a> +<a name="ln-275"></a><span class="c">!! Transformieren des Windes auf das Gaussgitter </span> +<a name="ln-276"></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> +<a name="ln-277"></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> +<a name="ln-278"></a><span class="c">! North Pole</span> +<a name="ln-279"></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> +<a name="ln-280"></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> +<a name="ln-281"></a><span class="c">! South Pole</span> +<a name="ln-282"></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> +<a name="ln-283"></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> +<a name="ln-284"></a> <span class="k">END DO</span> +<a name="ln-285"></a> +<a name="ln-286"></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> +<a name="ln-287"></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> +<a name="ln-288"></a> <span class="k">END DO</span> +<a name="ln-289"></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="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> +<a name="ln-290"></a> +<a name="ln-291"></a> +<a name="ln-292"></a><span class="mi">112</span> <span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.13'</span> +<a name="ln-293"></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> +<a name="ln-294"></a><span class="c">!! Transformieren der horizontalen Divergenz auf das Gaussgitter </span> +<a name="ln-295"></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> +<a name="ln-296"></a> +<a name="ln-297"></a><span class="c">!! Berechnung des Gradienten des Logarithmus des Bodendrucks auf dem Gaussgitter </span> +<a name="ln-298"></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> +<a name="ln-299"></a> +<a name="ln-300"></a><span class="c">!! Berechnung der Vertikalgeschwindigkeit auf dem Gaussgitter </span> +<a name="ln-301"></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">&</span> +<a name="ln-302"></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> +<a name="ln-303"></a> +<a name="ln-304"></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="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> +<a name="ln-305"></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> +<a name="ln-306"></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> +<a name="ln-307"></a> <span class="k">END DO</span> +<a name="ln-308"></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> +<a name="ln-309"></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> +<a name="ln-310"></a> +<a name="ln-311"></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> +<a name="ln-312"></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> +<a name="ln-313"></a><span class="c">! GOTO 114</span> +<a name="ln-314"></a> +<a name="ln-315"></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> +<a name="ln-316"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A12,3F11.4)'</span><span class="p">)</span> <span class="s1">'STATISTICS 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> +<a name="ln-317"></a> +<a name="ln-318"></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> +<a name="ln-319"></a><span class="c">!! Berechnung von Omega auf dem Gaussgitter </span> +<a name="ln-320"></a> +<a name="ln-321"></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">&</span> +<a name="ln-322"></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> +<a name="ln-323"></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="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> +<a name="ln-324"></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> +<a name="ln-325"></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> +<a name="ln-326"></a> <span class="k">END DO</span> +<a name="ln-327"></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> +<a name="ln-328"></a> +<a name="ln-329"></a> <span class="k">END IF</span> <span class="c">! MOMEGA</span> +<a name="ln-330"></a> +<a name="ln-331"></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> +<a name="ln-332"></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> +<a name="ln-333"></a> +<a name="ln-334"></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> +<a name="ln-335"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A12,3F11.4)'</span><span class="p">)</span> <span class="s1">'STATISTICS: '</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> +<a name="ln-336"></a> +<a name="ln-337"></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> +<a name="ln-338"></a> +<a name="ln-339"></a><span class="c">! ALLOCATE (UV(MAXL, MAXB, 2*MLEVEL))</span> +<a name="ln-340"></a><span class="c">! CALL GRPH213(XMN,UGVG,GWSAVE,GIFAX,PP,WEIGHT,MLAT,</span> +<a name="ln-341"></a><span class="c">! *MNAUF,NGI,NGJ,2*MLEVEL)</span> +<a name="ln-342"></a><span class="c">! DO K=1,2*MLEVEL</span> +<a name="ln-343"></a><span class="c">! IF (MSMOOTH .ne. 0) CALL SPFILTER(XMN(:,K),MNAUF,MSMOOTH)</span> +<a name="ln-344"></a><span class="c">! END DO</span> +<a name="ln-345"></a><span class="c">! CALL PHGCUT(XMN,UV,WSAVE,IFAX,Z,</span> +<a name="ln-346"></a><span class="c">! *MNAUF,MNAUF,MAUF,MANF,MAXL,MAXB,2*MLEVEL)</span> +<a name="ln-347"></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> +<a name="ln-348"></a><span class="c">! CALL ETAGAUSS(Z,WSAVE</span> +<a name="ln-349"></a><span class="c">! *,BREITE,UV,ETA,OM,PS,</span> +<a name="ln-350"></a><span class="c">! *MAUF,MAXB,MAXL,MANF,MNAUF,MLEVEL,MSMOOTH)</span> +<a name="ln-351"></a> +<a name="ln-352"></a> <span class="k">ELSE</span> +<a name="ln-353"></a> +<a name="ln-354"></a><span class="c">!-----------------------------------------------------------------</span> +<a name="ln-355"></a><span class="c">! READING OF PREPARED METEOROLOGICAL FIELDS </span> +<a name="ln-356"></a><span class="c">! </span> +<a name="ln-357"></a><span class="c">! THE FOLLOWING FIELDS ARE EXPECTED: </span> +<a name="ln-358"></a><span class="c">! </span> +<a name="ln-359"></a><span class="c">! UNIT 11: T,U,V (REGULAR GRID) </span> +<a name="ln-360"></a><span class="c">! UNIT 17: Q (REGULAR GRID) </span> +<a name="ln-361"></a><span class="c">! UNIT 13: D (REGULAR GRID) </span> +<a name="ln-362"></a><span class="c">! UNIT 12: LNSP (SPHERICAL HARMONICS) </span> +<a name="ln-363"></a><span class="c">! UNIT 14: SURFACE DATA (REGULAR GRID) </span> +<a name="ln-364"></a><span class="c">! UNIT 16: FLUX DATA (REGULAR GRID) </span> +<a name="ln-365"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-366"></a> +<a name="ln-367"></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> +<a name="ln-368"></a> <span class="n">MLAT</span><span class="o">=</span><span class="n">MAXL</span> +<a name="ln-369"></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> +<a name="ln-370"></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> +<a name="ln-371"></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> +<a name="ln-372"></a> +<a name="ln-373"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-374"></a><span class="c">!! READING OF SURFACE PRESSURE </span> +<a name="ln-375"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-376"></a> +<a name="ln-377"></a> <span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.12'</span> +<a name="ln-378"></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> +<a name="ln-379"></a> +<a name="ln-380"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-381"></a><span class="c">!! READING OF U,V </span> +<a name="ln-382"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-383"></a> +<a name="ln-384"></a><span class="c">! OPENING OF UNBLOCKED GRIB FILE</span> +<a name="ln-385"></a> +<a name="ln-386"></a> <span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.10'</span> +<a name="ln-387"></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> +<a name="ln-388"></a> +<a name="ln-389"></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> +<a name="ln-390"></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> +<a name="ln-391"></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> +<a name="ln-392"></a> <span class="k">END DO</span> +<a name="ln-393"></a> +<a name="ln-394"></a><span class="c">! Avoid possible Pole problem</span> +<a name="ln-395"></a><span class="c">! IF (RLA0 .EQ. -90.0) BREITE(MAXB)=sin(-89.99*PI/180.d0)</span> +<a name="ln-396"></a><span class="c">! IF (RLA1 .EQ. 90.0) BREITE(1)=sin(89.99*PI/180.d0)</span> +<a name="ln-397"></a> +<a name="ln-398"></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> +<a name="ln-399"></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> +<a name="ln-400"></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> +<a name="ln-401"></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">&</span> +<a name="ln-402"></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> +<a name="ln-403"></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> +<a name="ln-404"></a> <span class="k">ELSE</span> +<a name="ln-405"></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> +<a name="ln-406"></a> <span class="k">END IF</span> +<a name="ln-407"></a><span class="k"> END DO</span> +<a name="ln-408"></a><span class="k"> END DO</span> +<a name="ln-409"></a> +<a name="ln-410"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-411"></a><span class="c">!! READING OF LNSP on grid </span> +<a name="ln-412"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-413"></a> +<a name="ln-414"></a><span class="c">! For debugging only</span> +<a name="ln-415"></a><span class="c">! FILENAME='LNSPG_G.20060330.600'</span> +<a name="ln-416"></a><span class="c">! INQUIRE(FILE=FILENAME,EXIST=EX)</span> +<a name="ln-417"></a><span class="c">! CALL READLATLON(FILENAME,QA,</span> +<a name="ln-418"></a><span class="c">! *MAXL,MAXB,1,1,(/152/))</span> +<a name="ln-419"></a> +<a name="ln-420"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-421"></a><span class="c">!! READING OF DIVERGENCE </span> +<a name="ln-422"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-423"></a> +<a name="ln-424"></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> +<a name="ln-425"></a><span class="k"> </span><span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.13'</span> +<a name="ln-426"></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> +<a name="ln-427"></a> <span class="k">END IF</span> +<a name="ln-428"></a> +<a name="ln-429"></a> +<a name="ln-430"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-431"></a><span class="c">!</span> +<a name="ln-432"></a><span class="c">! Calculation of etapoint --> total time derivative of </span> +<a name="ln-433"></a><span class="c">! ECMWF vertical coordinate eta multiplied by the derivative</span> +<a name="ln-434"></a><span class="c">! of pressure with respect to eta:</span> +<a name="ln-435"></a><span class="c">! \[\frac{\mathrm{d}\eta}{\mathrm{d}t}\frac{\partial p}{\partial \eta}\]</span> +<a name="ln-436"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-437"></a> +<a name="ln-438"></a><span class="c">!* Initialisieren Legendretransformation auf das LaT/LON Gitter</span> +<a name="ln-439"></a><span class="c">!! Without Gaussian grid calculation Legendre Polynomials are calculated</span> +<a name="ln-440"></a><span class="c">!! only for one latitude to save space</span> +<a name="ln-441"></a> +<a name="ln-442"></a> +<a name="ln-443"></a> +<a name="ln-444"></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> +<a name="ln-445"></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> +<a name="ln-446"></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> +<a name="ln-447"></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> +<a name="ln-448"></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">&</span> +<a name="ln-449"></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> +<a name="ln-450"></a> <span class="k">END IF</span> +<a name="ln-451"></a><span class="k"> END DO</span> +<a name="ln-452"></a> +<a name="ln-453"></a><span class="k"> </span><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> +<a name="ln-454"></a> +<a name="ln-455"></a><span class="c">! For debugging only</span> +<a name="ln-456"></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> +<a name="ln-457"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A12,3F11.4)'</span><span class="p">)</span> <span class="s1">'STATISTICS: '</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> +<a name="ln-458"></a> +<a name="ln-459"></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> +<a name="ln-460"></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">&</span> +<a name="ln-461"></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> +<a name="ln-462"></a> <span class="k">END IF</span> +<a name="ln-463"></a> +<a name="ln-464"></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> +<a name="ln-465"></a><span class="k"> </span><span class="n">DPSDT</span><span class="o">=</span><span class="n">PS</span> +<a name="ln-466"></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">&</span> +<a name="ln-467"></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> +<a name="ln-468"></a> <span class="k">END IF</span> +<a name="ln-469"></a> +<a name="ln-470"></a><span class="k"> END IF</span> <span class="c">! sMGAUSS</span> +<a name="ln-471"></a> +<a name="ln-472"></a><span class="c">!! CREATE FILE VERTICAL.EC NEEDED BY POP MODEL </span> +<a name="ln-473"></a> +<a name="ln-474"></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">'VERTICAL.EC'</span><span class="p">)</span> +<a name="ln-475"></a> <span class="k">WRITE</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">'(A)'</span><span class="p">)</span> +<a name="ln-476"></a> <span class="k">WRITE</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">'(A)'</span><span class="p">)</span> <span class="s1">'VERTICAL DISCRETIZATION OF POP MODEL'</span> +<a name="ln-477"></a> <span class="k">WRITE</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">'(A)'</span><span class="p">)</span> +<a name="ln-478"></a> <span class="k">write</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">'(i3,a)'</span><span class="p">)</span> <span class="n">MLEVEL</span><span class="p">,</span><span class="s1">' number of layers'</span> +<a name="ln-479"></a> <span class="k">WRITE</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">'(A)'</span><span class="p">)</span> +<a name="ln-480"></a> <span class="k">WRITE</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">'(A)'</span><span class="p">)</span> <span class="s1">'* A(NLEV+1)'</span> +<a name="ln-481"></a> <span class="k">WRITE</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">'(A)'</span><span class="p">)</span> +<a name="ln-482"></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> +<a name="ln-483"></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">'(F18.12)'</span><span class="p">)</span> <span class="n">AK</span><span class="p">(</span><span class="n">I</span><span class="p">)</span> +<a name="ln-484"></a> <span class="k">WRITE</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">'(A)'</span><span class="p">)</span> +<a name="ln-485"></a> <span class="k">WRITE</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">'(A)'</span><span class="p">)</span> <span class="s1">'* B(NLEV+1)'</span> +<a name="ln-486"></a> <span class="k">WRITE</span><span class="p">(</span><span class="mi">21</span><span class="p">,</span><span class="s1">'(A)'</span><span class="p">)</span> +<a name="ln-487"></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> +<a name="ln-488"></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">'(F18.12)'</span><span class="p">)</span> <span class="n">BK</span><span class="p">(</span><span class="n">I</span><span class="p">)</span> +<a name="ln-489"></a> <span class="k">CLOSE</span><span class="p">(</span><span class="mi">21</span><span class="p">)</span> +<a name="ln-490"></a> +<a name="ln-491"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-492"></a><span class="c">! READING OF OMEGA </span> +<a name="ln-493"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-494"></a> +<a name="ln-495"></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> +<a name="ln-496"></a> +<a name="ln-497"></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> +<a name="ln-498"></a> +<a name="ln-499"></a> <span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.19'</span> +<a name="ln-500"></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> +<a name="ln-501"></a> +<a name="ln-502"></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> +<a name="ln-503"></a> +<a name="ln-504"></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> +<a name="ln-505"></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> +<a name="ln-506"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A12,I3,3F11.4)'</span><span class="p">)</span> <span class="s1">' 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> +<a name="ln-507"></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> +<a name="ln-508"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A12,I3,3F11.4)'</span><span class="p">)</span> <span class="s1">' OMEGA: '</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> +<a name="ln-509"></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> +<a name="ln-510"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A12,I3,3F11.4)'</span><span class="p">)</span> <span class="s1">'OMEGA DIFF: '</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> +<a name="ln-511"></a> <span class="k">END DO</span> +<a name="ln-512"></a> +<a name="ln-513"></a><span class="k"> END IF</span> +<a name="ln-514"></a><span class="k"> END IF</span> +<a name="ln-515"></a> +<a name="ln-516"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-517"></a><span class="c">! READING OF ETA </span> +<a name="ln-518"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-519"></a> +<a name="ln-520"></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> +<a name="ln-521"></a> +<a name="ln-522"></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> +<a name="ln-523"></a> +<a name="ln-524"></a> <span class="n">P00</span><span class="o">=</span><span class="mi">10132</span><span class="mf">5.</span> +<a name="ln-525"></a> <span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.21'</span> +<a name="ln-526"></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> +<a name="ln-527"></a> +<a name="ln-528"></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> +<a name="ln-529"></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> +<a name="ln-530"></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> +<a name="ln-531"></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> +<a name="ln-532"></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> +<a name="ln-533"></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> +<a name="ln-534"></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">&</span> +<a name="ln-535"></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> +<a name="ln-536"></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> +<a name="ln-537"></a> <span class="k">END DO</span> +<a name="ln-538"></a><span class="k"> END DO</span> +<a name="ln-539"></a><span class="k"> END DO</span> +<a name="ln-540"></a><span class="k"> END IF</span> +<a name="ln-541"></a> +<a name="ln-542"></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> +<a name="ln-543"></a> +<a name="ln-544"></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> +<a name="ln-545"></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> +<a name="ln-546"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A12,I3,3F11.4)'</span><span class="p">)</span> <span class="s1">' 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> +<a name="ln-547"></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> +<a name="ln-548"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A12,I3,3F11.4)'</span><span class="p">)</span> <span class="s1">' 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> +<a name="ln-549"></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> +<a name="ln-550"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(A12,I3,3F11.4)'</span><span class="p">)</span> <span class="s1">'ETA DIFF: '</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> +<a name="ln-551"></a> <span class="k">END DO</span> +<a name="ln-552"></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> +<a name="ln-553"></a> <span class="k">WRITE</span><span class="p">(</span><span class="o">*</span><span class="p">,</span><span class="s1">'(I3,2F11.4)'</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> +<a name="ln-554"></a> <span class="k">END DO</span> +<a name="ln-555"></a><span class="k"> ELSE</span> +<a name="ln-556"></a><span class="k"> </span><span class="n">ETA</span><span class="o">=</span><span class="n">ETAR</span> +<a name="ln-557"></a> <span class="k">END IF</span> +<a name="ln-558"></a><span class="k"> END IF</span> +<a name="ln-559"></a> +<a name="ln-560"></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> +<a name="ln-561"></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> +<a name="ln-562"></a> +<a name="ln-563"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-564"></a><span class="c">!! READING OF T </span> +<a name="ln-565"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-566"></a> +<a name="ln-567"></a><span class="c">! OPENING OF UNBLOCKED GRIB FILE</span> +<a name="ln-568"></a> +<a name="ln-569"></a> <span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.11'</span> +<a name="ln-570"></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> +<a name="ln-571"></a> +<a name="ln-572"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-573"></a><span class="c">!! READING OF SPECIFIC HUMIDITY </span> +<a name="ln-574"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-575"></a> +<a name="ln-576"></a> <span class="n">FILENAME</span><span class="o">=</span><span class="s1">'fort.17'</span> +<a name="ln-577"></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> +<a name="ln-578"></a> +<a name="ln-579"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-580"></a><span class="c">! TEST READING OF UV from MARS (debug only) </span> +<a name="ln-581"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-582"></a><span class="c">! FILENAME='fort.22'</span> +<a name="ln-583"></a><span class="c">! CALL READLATLON(FILENAME,UV2,MAXL,MAXB,2*MLEVEL,2,(/131,132/))</span> +<a name="ln-584"></a> +<a name="ln-585"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-586"></a><span class="c">!! WRITE MODEL LEVEL DATA TO fort.15 </span> +<a name="ln-587"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-588"></a> +<a name="ln-589"></a><span class="c">!! Calculation of etadot in CONTGL needed scaled winds (ucosphi,vcosphi)</span> +<a name="ln-590"></a><span class="c">!! Now we are transforming back to the usual winds.</span> +<a name="ln-591"></a> +<a name="ln-592"></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> +<a name="ln-593"></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> +<a name="ln-594"></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> +<a name="ln-595"></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> +<a name="ln-596"></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> +<a name="ln-597"></a> <span class="k">END DO</span> +<a name="ln-598"></a> +<a name="ln-599"></a><span class="c">! special treatment for poles, if necessary.</span> +<a name="ln-600"></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> +<a name="ln-601"></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> +<a name="ln-602"></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> +<a name="ln-603"></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">&</span> +<a name="ln-604"></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> +<a name="ln-605"></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> +<a name="ln-606"></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> +<a name="ln-607"></a> <span class="k">ELSE</span> +<a name="ln-608"></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> +<a name="ln-609"></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> +<a name="ln-610"></a> <span class="k">END IF</span> +<a name="ln-611"></a><span class="k"> ELSE</span> +<a name="ln-612"></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> +<a name="ln-613"></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> +<a name="ln-614"></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> +<a name="ln-615"></a><span class="c">! Suedpol</span> +<a name="ln-616"></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> +<a name="ln-617"></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> +<a name="ln-618"></a> <span class="k">ELSE</span> +<a name="ln-619"></a><span class="c">! Nordpol</span> +<a name="ln-620"></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> +<a name="ln-621"></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> +<a name="ln-622"></a> <span class="k">END IF</span> +<a name="ln-623"></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> +<a name="ln-624"></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> +<a name="ln-625"></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> +<a name="ln-626"></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> +<a name="ln-627"></a> <span class="k">ELSE</span> +<a name="ln-628"></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> +<a name="ln-629"></a> <span class="k">END IF</span> +<a name="ln-630"></a><span class="k"> END DO</span> +<a name="ln-631"></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> +<a name="ln-632"></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> +<a name="ln-633"></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> +<a name="ln-634"></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> +<a name="ln-635"></a> <span class="k">ELSE</span> +<a name="ln-636"></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> +<a name="ln-637"></a> <span class="k">END IF</span> +<a name="ln-638"></a><span class="k"> END DO</span> +<a name="ln-639"></a><span class="k"> end if</span> +<a name="ln-640"></a><span class="k"> END DO</span> +<a name="ln-641"></a><span class="k"> END DO</span> +<a name="ln-642"></a> +<a name="ln-643"></a><span class="c">! open output file</span> +<a name="ln-644"></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">'fort.15'</span><span class="p">,</span><span class="s1">'w'</span><span class="p">)</span> +<a name="ln-645"></a> +<a name="ln-646"></a><span class="c">! we use temperature on lat/lon on model levels as template for model level data</span> +<a name="ln-647"></a> <span class="n">LUNIT2</span><span class="o">=</span><span class="mi">0</span> +<a name="ln-648"></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">'fort.11'</span><span class="p">,</span><span class="s1">'R'</span><span class="p">)</span> +<a name="ln-649"></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> +<a name="ln-650"></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> +<a name="ln-651"></a> +<a name="ln-652"></a> +<a name="ln-653"></a> <span class="k">CALL </span><span class="n">WRITELATLON</span> <span class="p">&</span> +<a name="ln-654"></a> <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> +<a name="ln-655"></a> +<a name="ln-656"></a> <span class="k">CALL </span><span class="n">WRITELATLON</span> <span class="p">&</span> +<a name="ln-657"></a> <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> +<a name="ln-658"></a> +<a name="ln-659"></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> +<a name="ln-660"></a><span class="k"> CALL </span><span class="n">WRITELATLON</span> <span class="p">&</span> +<a name="ln-661"></a> <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> +<a name="ln-662"></a> <span class="k">ELSE</span> +<a name="ln-663"></a><span class="k"> CALL </span><span class="n">WRITELATLON</span> <span class="p">&</span> +<a name="ln-664"></a> <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> +<a name="ln-665"></a> <span class="k">END IF</span> +<a name="ln-666"></a> +<a name="ln-667"></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> +<a name="ln-668"></a> +<a name="ln-669"></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">'1'</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> +<a name="ln-670"></a> +<a name="ln-671"></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">"levelType"</span><span class="p">,</span><span class="s2">"ml"</span><span class="p">)</span> +<a name="ln-672"></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">"typeOfLevel"</span><span class="p">,</span><span class="s2">"hybrid"</span><span class="p">)</span> +<a name="ln-673"></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> +<a name="ln-674"></a> +<a name="ln-675"></a> +<a name="ln-676"></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> +<a name="ln-677"></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">'fort.25'</span><span class="p">,</span><span class="s1">'w'</span><span class="p">)</span> +<a name="ln-678"></a> <span class="k">CALL </span><span class="n">WRITELATLON</span> <span class="p">&</span> +<a name="ln-679"></a> <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> +<a name="ln-680"></a> +<a name="ln-681"></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> +<a name="ln-682"></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">'1'</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> +<a name="ln-683"></a> <span class="n">OM</span><span class="o">=</span><span class="n">OM</span><span class="o">-</span><span class="n">OMR</span> +<a name="ln-684"></a> <span class="k">CALL </span><span class="n">WRITELATLON</span> <span class="p">&</span> +<a name="ln-685"></a> <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> +<a name="ln-686"></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> +<a name="ln-687"></a> <span class="k">END IF</span> +<a name="ln-688"></a><span class="k"> END IF</span> +<a name="ln-689"></a> +<a name="ln-690"></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> +<a name="ln-691"></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">'fort.26'</span><span class="p">,</span><span class="s1">'w'</span><span class="p">)</span> +<a name="ln-692"></a> <span class="k">CALL </span><span class="n">WRITELATLON</span> <span class="p">&</span> +<a name="ln-693"></a> <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> +<a name="ln-694"></a><span class="c">! IF (MOMEGADIFF .EQ. 1) THEN</span> +<a name="ln-695"></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">'1'</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> +<a name="ln-696"></a> <span class="n">OM</span><span class="o">=</span><span class="n">ETA</span><span class="o">-</span><span class="n">ETAR</span> +<a name="ln-697"></a> <span class="k">CALL </span><span class="n">WRITELATLON</span> <span class="p">&</span> +<a name="ln-698"></a> <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> +<a name="ln-699"></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> +<a name="ln-700"></a><span class="c">! END IF</span> +<a name="ln-701"></a> <span class="k">END IF</span> +<a name="ln-702"></a> +<a name="ln-703"></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> +<a name="ln-704"></a> +<a name="ln-705"></a><span class="mi">2000</span> <span class="k">STOP</span> <span class="s1">'SUCCESSFULLY FINISHED CONVERT_PRE: CONGRATULATIONS'</span> +<a name="ln-706"></a><span class="mi">3000</span> <span class="k">STOP</span> <span class="s1">'ROUTINE CONVERT_PRE: ERROR'</span> +<a name="ln-707"></a><span class="mi">9999</span> <span class="k">stop</span> <span class="s1">'ROUTINE CONVERT_PRE: ERROR'</span> +<a name="ln-708"></a> +<a name="ln-709"></a><span class="k">END</span> +<a name="ln-710"></a> +<a name="ln-711"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-712"></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> +<a name="ln-713"></a> +<a name="ln-714"></a> +<a name="ln-715"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-716"></a><span class="c">!! Calculate something that is roughly log10( maxval(field1)/g ) [PS] </span> +<a name="ln-717"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-718"></a> +<a name="ln-719"></a> +<a name="ln-720"></a> <span class="k">IMPLICIT NONE</span> +<a name="ln-721"></a> +<a name="ln-722"></a><span class="k"> </span><span class="kt">INTEGER</span> <span class="kd">::</span> <span class="n">I</span><span class="p">,</span><span class="n">J</span><span class="p">,</span><span class="n">K</span> +<a name="ln-723"></a> <span class="kt">INTEGER</span><span class="p">,</span> <span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">NI</span><span class="p">,</span><span class="n">NJ</span><span class="p">,</span><span class="n">NK</span> +<a name="ln-724"></a> <span class="kt">REAL</span><span class="p">,</span> <span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</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> +<a name="ln-725"></a> <span class="kt">REAL </span><span class="k">INTENT</span><span class="p">(</span><span class="n">IN</span><span class="p">)</span> <span class="kd">::</span> <span class="n">G</span> +<a name="ln-726"></a> <span class="kt">REAL</span> <span class="kd">::</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> +<a name="ln-727"></a> +<a name="ln-728"></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> +<a name="ln-729"></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> +<a name="ln-730"></a> +<a name="ln-731"></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> +<a name="ln-732"></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> +<a name="ln-733"></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> +<a name="ln-734"></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="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> +<a name="ln-735"></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="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> +<a name="ln-736"></a><span class="mi">100</span> <span class="k">CONTINUE</span> +<a name="ln-737"></a> +<a name="ln-738"></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="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="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> +<a name="ln-739"></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> +<a name="ln-740"></a> <span class="k">ELSE</span> +<a name="ln-741"></a><span class="k"> </span><span class="n">XMAX</span><span class="o">=</span><span class="n">RMAX</span> +<a name="ln-742"></a> <span class="k">END IF</span> +<a name="ln-743"></a> +<a name="ln-744"></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> +<a name="ln-745"></a><span class="k"> </span><span class="n">IA</span> <span class="o">=</span> <span class="mi">0</span> +<a name="ln-746"></a> <span class="k">RETURN</span> +<a name="ln-747"></a><span class="k"> END IF</span> +<a name="ln-748"></a> +<a name="ln-749"></a><span class="k"> </span><span class="n">A1</span><span class="o">=</span><span class="n">LOG10</span><span class="p">(</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> +<a name="ln-750"></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> +<a name="ln-751"></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> +<a name="ln-752"></a><span class="k"> </span><span class="n">A</span><span class="o">=</span><span class="n">A2</span> +<a name="ln-753"></a> <span class="k">ELSE</span> +<a name="ln-754"></a><span class="k"> </span><span class="n">A</span><span class="o">=</span><span class="n">A1</span> +<a name="ln-755"></a> <span class="k">END IF</span> +<a name="ln-756"></a> +<a name="ln-757"></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> +<a name="ln-758"></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> +<a name="ln-759"></a> +<a name="ln-760"></a> <span class="k">RETURN</span> +<a name="ln-761"></a> +<a name="ln-762"></a><span class="k">END</span> +<a name="ln-763"></a> +<a name="ln-764"></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> +<a name="ln-765"></a> +<a name="ln-766"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-767"></a><span class="c">!! calculate mean, rms, stdev</span> +<a name="ln-768"></a><span class="c">!------------------------------------------------------------------</span> +<a name="ln-769"></a> +<a name="ln-770"></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> +<a name="ln-771"></a> +<a name="ln-772"></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> +<a name="ln-773"></a> +<a name="ln-774"></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> +<a name="ln-775"></a> +<a name="ln-776"></a> <span class="n">RMS</span><span class="o">=</span><span class="mf">0.</span> +<a name="ln-777"></a> <span class="n">MW</span><span class="o">=</span><span class="mf">0.</span> +<a name="ln-778"></a> +<a name="ln-779"></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> +<a name="ln-780"></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> +<a name="ln-781"></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> +<a name="ln-782"></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> +<a name="ln-783"></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> +<a name="ln-784"></a> <span class="n">MW</span><span class="o">=</span><span class="n">MW</span><span class="o">+</span><span class="n">P</span> +<a name="ln-785"></a><span class="mi">10</span> <span class="k">CONTINUE</span> +<a name="ln-786"></a> +<a name="ln-787"></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> +<a name="ln-788"></a> <span class="n">MW</span><span class="o">=</span><span class="n">MW</span><span class="o">/</span><span class="n">N</span> +<a name="ln-789"></a> +<a name="ln-790"></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> +<a name="ln-791"></a><span class="k"> </span><span class="n">SIG</span><span class="o">=</span><span class="mf">0.0</span> +<a name="ln-792"></a> <span class="k">ELSE</span> +<a name="ln-793"></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> +<a name="ln-794"></a> <span class="k">END IF</span> +<a name="ln-795"></a> +<a name="ln-796"></a><span class="k"> RETURN</span> +<a name="ln-797"></a> +<a name="ln-798"></a><span class="k">END</span> +</pre></div> + + </section> + </div> + </div> + + + <hr> + </div> <!-- /container --> + <footer> + <div class="container"> + <div class="row"> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> + <div class="col-xs-6 col-md-4 col-md-push-4"> + <p class="text-right"> + Documentation generated by + <a href="https://github.com/cmacmackin/ford">FORD</a> + + </p> + </div> + <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<sup>1</sup></p></div> + </div> + <br> + </div> <!-- /container --> + </footer> + + <!-- Bootstrap core JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> +<!-- + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> +--> + <script src="../js/bootstrap.min.js"></script> + <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> + <script src="../js/ie10-viewport-bug-workaround.js"></script> + + <!-- MathJax JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> + <script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, + jax: ['input/TeX','input/MathML','output/HTML-CSS'], + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] + }); + </script> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="../tipuesearch/tipuesearch_content.js"></script> + <script src="../tipuesearch/tipuesearch_set.js"></script> + <script src="../tipuesearch/tipuesearch.js"></script> + + + </body> +</html> \ No newline at end of file diff --git a/Documentation/FORD/V6/Doc/sourcefile/rwgrib2.f90.html b/Documentation/FORD/V6/Doc/sourcefile/rwgrib2.f90.html new file mode 100644 index 0000000000000000000000000000000000000000..77222059c577b93383db9d3c825b0691ec749408 --- /dev/null +++ b/Documentation/FORD/V6/Doc/sourcefile/rwgrib2.f90.html @@ -0,0 +1,657 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + + <meta name="description" content="Calculation of vertical velocity for FLEXPART"> + + <meta name="author" content="Leopold Haimberger<sup>1</sup>" > + <link rel="icon" href="../favicon.png"> + + <title>rwGRIB2.f90 – Flex_extract: Calculation of etadot</title> + + <link href="../css/bootstrap.min.css" rel="stylesheet"> + <link href="../css/pygments.css" rel="stylesheet"> + <link href="../css/font-awesome.min.css" rel="stylesheet"> + <link href="../css/local.css" rel="stylesheet"> + + <link href="../tipuesearch/tipuesearch.css" rel="stylesheet"> + + + + <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> + <!--[if lt IE 9]> + <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> + <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> + <![endif]--> + + <script src="../js/jquery-2.1.3.min.js"></script> + <script src="../js/svg-pan-zoom.min.js"></script> + + </head> + + <body> + + <!-- Fixed navbar --> + <nav class="navbar navbar-inverse navbar-fixed-top"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="../index.html">Flex_extract: Calculation of etadot <small>7.1.work</small></a> + </div> + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + + <li class="dropdown hidden-xs visible-sm visible-md hidden-lg"> + <a href="#" class="dropdown-toggle" + data-toggle="dropdown" role="button" + aria-haspopup="true" + aria-expanded="false">Contents <span class="caret"></span></a> + <ul class="dropdown-menu"> + + + <li><a href="../lists/files.html">Source Files</a></li> + + + + <li><a href="../lists/modules.html">Modules</a></li> + + + + <li><a href="../lists/procedures.html">Procedures</a></li> + + + + <li><a href="../program/preconvert.html">Program</a></li> + + </ul> + </li> + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/files.html">Source Files</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/modules.html">Modules</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../lists/procedures.html">Procedures</a></li> + + + +<li class="visible-xs hidden-sm visible-lg"><a href="../program/preconvert.html">Program</a></li> + + </ul> + + <form action="../search.html" class="navbar-form navbar-right" role="search"> + <div class="form-group"> + <input type="text" class="form-control" placeholder="Search" name="q" id="tipue_search_input" autocomplete="off" required> + </div> +<!-- + <button type="submit" class="btn btn-default">Submit</button> +--> + </form> + + </div><!--/.nav-collapse --> + </div> + </nav> + + <div class="container"> + + + <div class="row"> + <h1>rwGRIB2.f90 + <small>Source File</small> + + </h1> + +<div class="row"> + <div class="col-lg-12"> +<div class="well well-sm"> + <ul class="list-inline" style="margin-bottom:0px;display:inline"> + + + + + + + <li><i class="fa fa-list-ol"></i> + <a data-toggle="tooltip" + data-placement="bottom" data-html="true" + title="11.7% of total for source files.">164 statements</a> + </li> + + + + <li><i class="fa fa-code"></i><a href="../src/rwGRIB2.f90"> Source File</a></li> + + + </ul> + <ol class="breadcrumb in-well text-right"> + + + + <li class="active">rwGRIB2.f90</li> + </ol> +</div> +</div> +</div> +<script> + $(function () { + $('[data-toggle="tooltip"]').tooltip() + }) +</script> + + </div> + <div class="row"> + <div class="col-md-3 hidden-xs hidden-sm visible-md visible-lg"> + +<div id="sidebar"> + +<h3>Contents</h3> + + + + + + + + +<div class="panel panel-primary"> + <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#mods-0">Modules</a></h3></div> + <div id="mods-0" class="panel-collapse collapse"> + <div class="list-group"> + + <a class="list-group-item" href="../module/rwgrib2.html">RWGRIB2</a> + + </div> + </div> +</div> + + + + + + + + + + + + + + + + +<div class="panel panel-primary"> + <div class="panel-heading text-left"><h3 class="panel-title">Source Code</h3></div> + <div class="list-group"> + <a class="list-group-item" href="../sourcefile/rwgrib2.f90.html#src">rwGRIB2.f90</a> + </div> +</div> + + + +</div> + + </div> + <div class="col-md-9" id='text'> + + <br> + + + <div class="panel panel-default"> + <div class="panel-heading"> + <h3 class="panel-title">Files dependent on this one</h3> + </div> + <div class="panel-body"> + <div class="depgraph"><?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: sourcefile~~rwgrib2.f90~~AfferentGraph Pages: 1 --> +<svg id="sourcefilerwgrib2f90AfferentGraph" width="224pt" height="32pt" + viewBox="0.00 0.00 224.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="sourcefile~~rwgrib2.f90~~AfferentGraph" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>sourcefile~~rwgrib2.f90~~AfferentGraph</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 220,-28 220,4 -4,4"/> +<!-- sourcefile~rwgrib2.f90 --> +<g id="sourcefile~~rwgrib2.f90~~AfferentGraph_node1" class="node"><title>sourcefile~rwgrib2.f90</title> +<polygon fill="none" stroke="black" points="73,-24 0,-24 0,-0 73,-0 73,-24"/> +<text text-anchor="middle" x="36.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">rwGRIB2.f90</text> +</g> +<!-- sourcefile~preconvert_new.f90 --> +<g id="sourcefile~~rwgrib2.f90~~AfferentGraph_node2" class="node"><title>sourcefile~preconvert_new.f90</title> +<g id="a_sourcefile~~rwgrib2.f90~~AfferentGraph_node2"><a xlink:href=".././sourcefile/preconvert_new.f90.html" xlink:title="preconvert_new.f90"> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="216,-24 109,-24 109,-0 216,-0 216,-24"/> +<text text-anchor="middle" x="162.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">preconvert_new.f90</text> +</a> +</g> +</g> +<!-- sourcefile~preconvert_new.f90->sourcefile~rwgrib2.f90 --> +<g id="sourcefile~~rwgrib2.f90~~AfferentGraph_edge1" class="edge"><title>sourcefile~preconvert_new.f90->sourcefile~rwgrib2.f90</title> +<path fill="none" stroke="#000000" stroke-dasharray="5,2" d="M108.913,-12C100.466,-12 91.7802,-12 83.5029,-12"/> +<polygon fill="#000000" stroke="#000000" points="83.2854,-8.5001 73.2853,-12 83.2853,-15.5001 83.2854,-8.5001"/> +</g> +</g> +</svg> +</div><div><a type="button" class="graph-help" data-toggle="modal" href="#graph-help-text">Help</a></div><div class="modal fade" id="graph-help-text" tabindex="-1" role="dialog"><div class="modal-dialog modal-lg" role="document"><div class="modal-content"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button><h4 class="modal-title" id="-graph-help-label">Graph Key</h4></div><div class="modal-body"> + <p>Nodes of different colours represent the following: </p> + <?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<!-- Generated by graphviz version 2.38.0 (20140413.2041) + --> +<!-- Title: Graph Key Pages: 1 --> +<svg width="190pt" height="32pt" + viewBox="0.00 0.00 190.00 32.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 28)"> +<title>Graph Key</title> +<polygon fill="white" stroke="none" points="-4,4 -4,-28 186,-28 186,4 -4,4"/> +<!-- Source File --> +<g id="node1" class="node"><title>Source File</title> +<polygon fill="#f0ad4e" stroke="#f0ad4e" points="67,-24 0,-24 0,-0 67,-0 67,-24"/> +<text text-anchor="middle" x="33.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50" fill="white">Source File</text> +</g> +<!-- This Page's Entity --> +<g id="node2" class="node"><title>This Page's Entity</title> +<polygon fill="none" stroke="black" points="182,-24 85,-24 85,-0 182,-0 182,-24"/> +<text text-anchor="middle" x="133.5" y="-9.6" font-family="Helvetica,sans-Serif" font-size="10.50">This Page's Entity</text> +</g> +</g> +</svg> + + + <p>Solid arrows point from a file to a file which it depends on. A file + is dependent upon another if the latter must be compiled before the former + can be. + </p> + </div></div></div></div> + </div> + </div> + + <br> + + <section class="visible-xs visible-sm hidden-md"> + +<h3>Contents</h3> + + + + + + + + +<div class="panel panel-primary"> + <div class="panel-heading text-left"><h3 class="panel-title"><a data-toggle="collapse" href="#mods-1">Modules</a></h3></div> + <div id="mods-1" class="panel-collapse collapse"> + <div class="list-group"> + + <a class="list-group-item" href="../module/rwgrib2.html">RWGRIB2</a> + + </div> + </div> +</div> + + + + + + + + + + + + + + + + +<div class="panel panel-primary"> + <div class="panel-heading text-left"><h3 class="panel-title">Source Code</h3></div> + <div class="list-group"> + <a class="list-group-item" href="../sourcefile/rwgrib2.f90.html#src">rwGRIB2.f90</a> + </div> +</div> + + + + </section> + <br class="visible-xs visible-sm hidden-md"> + + <section> + <h2><span class="anchor" id="src"></span>Source Code</h2> + <div class="hl"><pre><span></span><a name="ln-1"></a> <span class="k">MODULE </span><span class="n">RWGRIB2</span> +<a name="ln-2"></a> +<a name="ln-3"></a> <span class="k">CONTAINS</span> +<a name="ln-4"></a> +<a name="ln-5"></a><span class="k"> SUBROUTINE </span><span class="n">READLATLON</span><span class="p">(</span><span class="n">FILENAME</span><span class="p">,</span><span class="n">FELD</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">MPAR</span><span class="p">)</span> +<a name="ln-6"></a> +<a name="ln-7"></a><span class="c">!! Read a field from GRIB file on lat-lon grid</span> +<a name="ln-8"></a> +<a name="ln-9"></a> <span class="k">USE </span><span class="n">GRIB_API</span> +<a name="ln-10"></a> +<a name="ln-11"></a> <span class="k">IMPLICIT NONE</span> +<a name="ln-12"></a> +<a name="ln-13"></a><span class="k"> </span><span class="kt">integer</span> <span class="kd">::</span> <span class="n">ifile</span> +<a name="ln-14"></a> <span class="kt">integer</span> <span class="kd">::</span> <span class="n">iret</span> +<a name="ln-15"></a> <span class="kt">integer</span> <span class="kd">::</span> <span class="n">n</span><span class="p">,</span><span class="n">mk</span><span class="p">,</span><span class="n">parid</span><span class="p">,</span><span class="n">nm</span> +<a name="ln-16"></a> <span class="kt">integer</span> <span class="kd">::</span> <span class="n">i</span><span class="p">,</span><span class="n">k</span> +<a name="ln-17"></a> <span class="kt">integer</span><span class="p">,</span><span class="k">dimension</span><span class="p">(:),</span><span class="k">allocatable</span> <span class="kd">::</span> <span class="n">igrib</span> +<a name="ln-18"></a> <span class="kt">integer</span> <span class="kd">::</span> <span class="n">numberOfPointsAlongAParallel</span> +<a name="ln-19"></a> <span class="kt">integer</span> <span class="kd">::</span> <span class="n">numberOfPointsAlongAMeridian</span> +<a name="ln-20"></a> <span class="kt">real</span><span class="p">,</span> <span class="k">dimension</span><span class="p">(:),</span> <span class="k">allocatable</span> <span class="kd">::</span> <span class="n">values</span> +<a name="ln-21"></a> <span class="kt">integer</span> <span class="kd">::</span> <span class="n">numberOfValues</span> +<a name="ln-22"></a> <span class="kt">real</span><span class="p">,</span><span class="k">dimension</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="kd">::</span> <span class="n">feld</span> +<a name="ln-23"></a> <span class="kt">integer</span><span class="kd">::</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">mstride</span><span class="p">,</span><span class="n">mpar</span><span class="p">(:),</span><span class="n">irest</span><span class="p">,</span><span class="n">div</span><span class="p">,</span><span class="n">level</span> +<a name="ln-24"></a> <span class="kt">integer</span> <span class="kd">::</span> <span class="n">l</span><span class="p">(</span><span class="n">size</span><span class="p">(</span><span class="n">mpar</span><span class="p">))</span> +<a name="ln-25"></a> <span class="kt">character</span><span class="o">*</span><span class="p">(</span><span class="o">*</span><span class="p">)</span><span class="kd">::</span> <span class="n">filename</span> +<a name="ln-26"></a> +<a name="ln-27"></a> <span class="n">feld</span><span class="o">=</span><span class="mf">0.</span> +<a name="ln-28"></a> +<a name="ln-29"></a> <span class="k">call </span><span class="n">grib_open_file</span><span class="p">(</span><span class="n">ifile</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">'r'</span><span class="p">)</span> +<a name="ln-30"></a> +<a name="ln-31"></a> <span class="c">! count the messages in the file</span> +<a name="ln-32"></a> <span class="k">call </span><span class="n">grib_count_in_file</span><span class="p">(</span><span class="n">ifile</span><span class="p">,</span><span class="n">n</span><span class="p">)</span> +<a name="ln-33"></a> <span class="k">allocate</span><span class="p">(</span><span class="n">igrib</span><span class="p">(</span><span class="n">n</span><span class="p">))</span> +<a name="ln-34"></a> <span class="n">igrib</span><span class="o">=-</span><span class="mi">1</span> +<a name="ln-35"></a> +<a name="ln-36"></a> <span class="c">! Load the messages from the file.</span> +<a name="ln-37"></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">n</span> +<a name="ln-38"></a> <span class="k">call </span><span class="n">grib_new_from_file</span><span class="p">(</span><span class="n">ifile</span><span class="p">,</span><span class="n">igrib</span><span class="p">(</span><span class="n">i</span><span class="p">),</span> <span class="n">iret</span><span class="p">)</span> +<a name="ln-39"></a> <span class="k">END DO</span> +<a name="ln-40"></a> +<a name="ln-41"></a> <span class="c">! we can close the file</span> +<a name="ln-42"></a> <span class="k">call </span><span class="n">grib_close_file</span><span class="p">(</span><span class="n">ifile</span><span class="p">)</span> +<a name="ln-43"></a> +<a name="ln-44"></a> <span class="n">nm</span><span class="o">=</span><span class="n">size</span><span class="p">(</span><span class="n">mpar</span><span class="p">)</span> +<a name="ln-45"></a> <span class="n">div</span><span class="o">=</span><span class="n">mlevel</span><span class="o">/</span><span class="n">nm</span> +<a name="ln-46"></a> <span class="n">l</span><span class="o">=</span><span class="mi">0</span> +<a name="ln-47"></a> +<a name="ln-48"></a> <span class="c">! Loop on all the messages in memory</span> +<a name="ln-49"></a> <span class="n">iloop</span><span class="p">:</span> <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">n</span> +<a name="ln-50"></a><span class="c">! write(*,*) 'processing message number ',i</span> +<a name="ln-51"></a> <span class="c">! get as a integer</span> +<a name="ln-52"></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="n">i</span><span class="p">),</span><span class="s1">'numberOfPointsAlongAParallel'</span><span class="p">,</span> <span class="p">&</span> +<a name="ln-53"></a> <span class="n">numberOfPointsAlongAParallel</span><span class="p">)</span> +<a name="ln-54"></a> +<a name="ln-55"></a> <span class="c">! get as a integer</span> +<a name="ln-56"></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="n">i</span><span class="p">),</span><span class="s1">'numberOfPointsAlongAMeridian'</span><span class="p">,</span> <span class="p">&</span> +<a name="ln-57"></a> <span class="n">numberOfPointsAlongAMeridian</span><span class="p">)</span> +<a name="ln-58"></a> +<a name="ln-59"></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="n">i</span><span class="p">),</span><span class="s1">'numberOfVerticalCoordinateValues'</span><span class="p">,</span><span class="n">mk</span><span class="p">)</span> +<a name="ln-60"></a> +<a name="ln-61"></a> <span class="k">call </span><span class="n">grib_get_size</span><span class="p">(</span><span class="n">igrib</span><span class="p">(</span><span class="n">i</span><span class="p">),</span><span class="s1">'values'</span><span class="p">,</span><span class="n">numberOfValues</span><span class="p">)</span> +<a name="ln-62"></a><span class="c">! write(*,*) 'numberOfValues=',numberOfValues</span> +<a name="ln-63"></a> +<a name="ln-64"></a> <span class="k">allocate</span><span class="p">(</span><span class="n">values</span><span class="p">(</span><span class="n">numberOfValues</span><span class="p">),</span> <span class="nb">stat</span><span class="o">=</span><span class="n">iret</span><span class="p">)</span> +<a name="ln-65"></a> <span class="c">! get data values</span> +<a name="ln-66"></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="n">i</span><span class="p">),</span><span class="s1">'values'</span><span class="p">,</span><span class="n">values</span><span class="p">)</span> +<a name="ln-67"></a> +<a name="ln-68"></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="n">i</span><span class="p">),</span><span class="s1">'paramId'</span><span class="p">,</span><span class="n">parid</span><span class="p">)</span> +<a name="ln-69"></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="n">i</span><span class="p">),</span><span class="s1">'level'</span><span class="p">,</span><span class="n">level</span><span class="p">)</span> +<a name="ln-70"></a> +<a name="ln-71"></a> <span class="n">kloop</span><span class="p">:</span> <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">nm</span> +<a name="ln-72"></a> <span class="k">if</span> <span class="p">(</span><span class="n">parid</span> <span class="p">.</span><span class="n">eq</span><span class="p">.</span> <span class="n">mpar</span><span class="p">(</span><span class="n">k</span><span class="p">))</span> <span class="k">then</span> +<a name="ln-73"></a><span class="c">! l(k)=l(k)+1</span> +<a name="ln-74"></a> <span class="n">feld</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">div</span><span class="o">+</span><span class="n">level</span><span class="p">)</span><span class="o">=</span><span class="nb">reshape</span><span class="p">(</span><span class="n">values</span><span class="p">,(</span><span class="o">/</span><span class="n">maxl</span><span class="p">,</span><span class="n">maxb</span><span class="o">/</span><span class="p">))</span> +<a name="ln-75"></a><span class="c">! print*,(k-1)*div+l(k),parid</span> +<a name="ln-76"></a> <span class="k">exit </span><span class="n">kloop</span> +<a name="ln-77"></a> <span class="k">end if</span> +<a name="ln-78"></a><span class="k"> end do </span><span class="n">kloop</span> +<a name="ln-79"></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="n">nm</span> <span class="p">.</span><span class="nb">and</span><span class="p">.</span> <span class="n">parid</span> <span class="p">.</span><span class="n">ne</span><span class="p">.</span> <span class="n">mpar</span><span class="p">(</span><span class="n">nm</span><span class="p">))</span> <span class="k">then</span> +<a name="ln-80"></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="n">k</span><span class="p">,</span><span class="n">nm</span><span class="p">,</span><span class="n">parid</span><span class="p">,</span><span class="n">mpar</span><span class="p">(</span><span class="n">nm</span><span class="p">)</span> +<a name="ln-81"></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">'ERROR readlatlon: parameter '</span><span class="p">,</span><span class="n">parid</span><span class="p">,</span><span class="s1">'is not'</span><span class="p">,</span><span class="n">mpar</span> +<a name="ln-82"></a> <span class="k">stop</span> +<a name="ln-83"></a><span class="k"> end if</span> +<a name="ln-84"></a> +<a name="ln-85"></a><span class="c">! print*,i</span> +<a name="ln-86"></a> <span class="k">END DO </span><span class="n">iloop</span> +<a name="ln-87"></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">'readlatlon: '</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="s1">' records read'</span> +<a name="ln-88"></a> +<a name="ln-89"></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">n</span> +<a name="ln-90"></a> <span class="k">call </span><span class="n">grib_release</span><span class="p">(</span><span class="n">igrib</span><span class="p">(</span><span class="n">i</span><span class="p">))</span> +<a name="ln-91"></a> <span class="k">END DO</span> +<a name="ln-92"></a><span class="k"> </span> +<a name="ln-93"></a><span class="k"> deallocate</span><span class="p">(</span><span class="n">values</span><span class="p">)</span> +<a name="ln-94"></a> <span class="k">deallocate</span><span class="p">(</span><span class="n">igrib</span><span class="p">)</span> +<a name="ln-95"></a> +<a name="ln-96"></a> <span class="k">END SUBROUTINE </span><span class="n">READLATLON</span> +<a name="ln-97"></a> +<a name="ln-98"></a> <span class="k">SUBROUTINE </span><span class="n">WRITELATLON</span><span class="p">(</span><span class="n">iunit</span><span class="p">,</span><span class="n">igrib</span><span class="p">,</span><span class="n">ogrib</span><span class="p">,</span><span class="n">FELD</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> +<a name="ln-99"></a> <span class="n">MLEVELIST</span><span class="p">,</span><span class="n">MSTRIDE</span><span class="p">,</span><span class="n">MPAR</span><span class="p">)</span> +<a name="ln-100"></a> +<a name="ln-101"></a><span class="c">!! write a field on lat-lon grid to GRIB file</span> +<a name="ln-102"></a> +<a name="ln-103"></a> <span class="k">USE </span><span class="n">GRIB_API</span> +<a name="ln-104"></a> +<a name="ln-105"></a> <span class="k">IMPLICIT NONE</span> +<a name="ln-106"></a> +<a name="ln-107"></a><span class="k"> </span><span class="kt">INTEGER </span><span class="n">IFIELD</span><span class="p">,</span><span class="n">MLEVEL</span><span class="p">,</span><span class="n">MNAUF</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">L</span><span class="p">,</span><span class="n">MSTRIDE</span><span class="p">,</span><span class="n">IERR</span><span class="p">,</span><span class="n">JOUT</span> +<a name="ln-108"></a> <span class="kt">INTEGER </span><span class="n">MPAR</span><span class="p">(</span><span class="n">MSTRIDE</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">LEVMIN</span><span class="p">,</span><span class="n">LEVMAX</span> +<a name="ln-109"></a> <span class="kt">INTEGER </span><span class="n">IUNIT</span><span class="p">,</span><span class="n">igrib</span><span class="p">,</span><span class="n">ogrib</span> +<a name="ln-110"></a> <span class="kt">REAL </span><span class="n">ZSEC4</span><span class="p">(</span><span class="n">MAXL</span><span class="o">*</span><span class="n">MAXB</span><span class="p">)</span> +<a name="ln-111"></a> <span class="kt">REAL </span><span class="n">FELD</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> +<a name="ln-112"></a> <span class="kt">CHARACTER</span><span class="o">*</span><span class="p">(</span><span class="o">*</span><span class="p">)</span> <span class="n">MLEVELIST</span> +<a name="ln-113"></a> <span class="kt">INTEGER </span><span class="n">ILEVEL</span><span class="p">(</span><span class="n">MLEVEL</span><span class="p">),</span><span class="n">MLINDEX</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">LLEN</span> +<a name="ln-114"></a> +<a name="ln-115"></a> <span class="c">! parse MLEVELIST</span> +<a name="ln-116"></a> +<a name="ln-117"></a> <span class="n">LLEN</span><span class="o">=</span><span class="nb">len</span><span class="p">(</span><span class="nb">trim</span><span class="p">(</span><span class="n">MLEVELIST</span><span class="p">))</span> +<a name="ln-118"></a> <span class="k">if</span> <span class="p">(</span><span class="nb">index</span><span class="p">(</span><span class="n">MLEVELIST</span><span class="p">,</span><span class="s1">'to'</span><span class="p">)</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="nb">or</span><span class="p">.</span> <span class="nb">index</span><span class="p">(</span><span class="n">MLEVELIST</span><span class="p">,</span><span class="s1">'TO'</span><span class="p">)</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> +<a name="ln-119"></a><span class="k"> </span><span class="n">i</span><span class="o">=</span><span class="nb">index</span><span class="p">(</span><span class="n">MLEVELIST</span><span class="p">,</span><span class="s1">'/'</span><span class="p">)</span> +<a name="ln-120"></a> <span class="k">read</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="n">i</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">LEVMIN</span> +<a name="ln-121"></a> <span class="n">i</span><span class="o">=</span><span class="nb">index</span><span class="p">(</span><span class="n">MLEVELIST</span><span class="p">,</span><span class="s1">'/'</span><span class="p">,.</span><span class="n">true</span><span class="p">.)</span> +<a name="ln-122"></a> <span class="k">read</span><span class="p">(</span><span class="n">MLEVELIST</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">LLEN</span><span class="p">),</span><span class="o">*</span><span class="p">)</span> <span class="n">LEVMAX</span> +<a name="ln-123"></a> <span class="n">l</span><span class="o">=</span><span class="mi">0</span> +<a name="ln-124"></a> <span class="k">do </span><span class="n">i</span><span class="o">=</span><span class="n">LEVMIN</span><span class="p">,</span><span class="n">LEVMAX</span> +<a name="ln-125"></a> <span class="n">l</span><span class="o">=</span><span class="n">l</span><span class="o">+</span><span class="mi">1</span> +<a name="ln-126"></a> <span class="n">ILEVEL</span><span class="p">(</span><span class="n">l</span><span class="p">)</span><span class="o">=</span><span class="n">i</span> +<a name="ln-127"></a> <span class="k">end do</span> +<a name="ln-128"></a><span class="k"> else</span> +<a name="ln-129"></a><span class="k"> </span><span class="n">l</span><span class="o">=</span><span class="mi">1</span> +<a name="ln-130"></a> <span class="n">MLINDEX</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="mi">0</span> +<a name="ln-131"></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">LLEN</span> +<a name="ln-132"></a> <span class="k">if</span> <span class="p">(</span><span class="n">MLEVELIST</span><span class="p">(</span><span class="n">i</span><span class="p">:</span><span class="n">i</span><span class="p">)</span> <span class="p">.</span><span class="n">eq</span><span class="p">.</span> <span class="s1">'/'</span><span class="p">)</span> <span class="k">THEN</span> +<a name="ln-133"></a><span class="k"> </span><span class="n">l</span><span class="o">=</span><span class="n">l</span><span class="o">+</span><span class="mi">1</span> +<a name="ln-134"></a> <span class="n">MLINDEX</span><span class="p">(</span><span class="n">l</span><span class="p">)</span><span class="o">=</span><span class="n">i</span> +<a name="ln-135"></a> <span class="k">end if</span> +<a name="ln-136"></a><span class="k"> end do</span> +<a name="ln-137"></a><span class="k"> </span><span class="n">MLINDEX</span><span class="p">(</span><span class="n">l</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">=</span><span class="n">LLEN</span><span class="o">+</span><span class="mi">1</span> +<a name="ln-138"></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">l</span> +<a name="ln-139"></a> <span class="k">read</span><span class="p">(</span><span class="n">MLEVELIST</span><span class="p">(</span><span class="n">MLINDEX</span><span class="p">(</span><span class="n">i</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span><span class="p">:</span><span class="n">MLINDEX</span><span class="p">(</span><span class="n">i</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">),</span><span class="o">*</span><span class="p">)</span> <span class="n">ILEVEL</span><span class="p">(</span><span class="n">i</span><span class="p">)</span> +<a name="ln-140"></a> <span class="k">end do</span> +<a name="ln-141"></a><span class="k"> end if </span> +<a name="ln-142"></a> +<a name="ln-143"></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">l</span> +<a name="ln-144"></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="s2">"level"</span><span class="p">,</span><span class="n">ILEVEL</span><span class="p">(</span><span class="n">k</span><span class="p">))</span> +<a name="ln-145"></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">MSTRIDE</span> +<a name="ln-146"></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="s2">"paramId"</span><span class="p">,</span><span class="n">MPAR</span><span class="p">(</span><span class="n">j</span><span class="p">))</span> +<a name="ln-147"></a><span class="c">! if (MPAR(j) .eq. 87) then</span> +<a name="ln-148"></a><span class="c">! call grib_set(igrib,"shortName","etadot")</span> +<a name="ln-149"></a><span class="c">! call grib_set(igrib,"units","Pa,s**-1")</span> +<a name="ln-150"></a><span class="c">! end if</span> +<a name="ln-151"></a><span class="c">! if (MPAR(j) .eq. 77) then</span> +<a name="ln-152"></a><span class="c">! call grib_set(igrib,"shortName","etadot")</span> +<a name="ln-153"></a><span class="c">! call grib_set(igrib,"units","s**-1")</span> +<a name="ln-154"></a><span class="c">! end if</span> +<a name="ln-155"></a> <span class="k">if</span> <span class="p">(</span><span class="n">l</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> +<a name="ln-156"></a><span class="k"> </span><span class="n">zsec4</span><span class="p">(</span><span class="mi">1</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="o">=</span><span class="nb">RESHAPE</span><span class="p">(</span><span class="n">FELD</span><span class="p">(:,:,</span><span class="n">ILEVEL</span><span class="p">(</span><span class="n">k</span><span class="p">)),(</span><span class="o">/</span><span class="n">maxl</span><span class="o">*</span><span class="n">maxb</span><span class="o">/</span><span class="p">))</span> +<a name="ln-157"></a> <span class="k">else</span> +<a name="ln-158"></a><span class="k"> </span><span class="n">zsec4</span><span class="p">(</span><span class="mi">1</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="o">=</span><span class="nb">RESHAPE</span><span class="p">(</span><span class="n">FELD</span><span class="p">(:,:,</span><span class="n">k</span><span class="p">),(</span><span class="o">/</span><span class="n">maxl</span><span class="o">*</span><span class="n">maxb</span><span class="o">/</span><span class="p">))</span> +<a name="ln-159"></a> <span class="k">end if</span> +<a name="ln-160"></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="s2">"values"</span><span class="p">,</span><span class="n">zsec4</span><span class="p">)</span> +<a name="ln-161"></a> +<a name="ln-162"></a> <span class="k">call </span><span class="n">grib_write</span><span class="p">(</span><span class="n">igrib</span><span class="p">,</span><span class="n">iunit</span><span class="p">)</span> +<a name="ln-163"></a> +<a name="ln-164"></a> <span class="k">END DO</span> +<a name="ln-165"></a><span class="k"> END DO</span> +<a name="ln-166"></a> +<a name="ln-167"></a><span class="k"> END SUBROUTINE </span><span class="n">WRITELATLON</span> +<a name="ln-168"></a> +<a name="ln-169"></a> <span class="k">SUBROUTINE </span><span class="n">READSPECTRAL</span><span class="p">(</span><span class="n">FILENAME</span><span class="p">,</span><span class="n">CXMN</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">MAXLEV</span><span class="p">,</span><span class="n">MPAR</span><span class="p">,</span><span class="n">A</span><span class="p">,</span><span class="n">B</span><span class="p">)</span> +<a name="ln-170"></a> +<a name="ln-171"></a><span class="c">!! read a GRIB file in spherical harmonics</span> +<a name="ln-172"></a> +<a name="ln-173"></a> <span class="k">USE </span><span class="n">GRIB_API</span> +<a name="ln-174"></a> +<a name="ln-175"></a> <span class="k">IMPLICIT NONE</span> +<a name="ln-176"></a> +<a name="ln-177"></a><span class="k"> </span><span class="kt">integer</span> <span class="kd">::</span> <span class="n">ifile</span> +<a name="ln-178"></a> <span class="kt">integer</span> <span class="kd">::</span> <span class="n">iret</span> +<a name="ln-179"></a> <span class="kt">integer</span> <span class="kd">::</span> <span class="n">n</span><span class="p">,</span><span class="n">mk</span><span class="p">,</span><span class="n">div</span><span class="p">,</span><span class="n">nm</span><span class="p">,</span><span class="n">k</span> +<a name="ln-180"></a> <span class="kt">integer</span> <span class="kd">::</span> <span class="n">i</span><span class="p">,</span><span class="n">j</span><span class="p">,</span><span class="n">parid</span> +<a name="ln-181"></a> <span class="kt">integer</span><span class="p">,</span><span class="k">dimension</span><span class="p">(:),</span><span class="k">allocatable</span> <span class="kd">::</span> <span class="n">igrib</span> +<a name="ln-182"></a> <span class="kt">real</span><span class="p">,</span> <span class="k">dimension</span><span class="p">(:),</span> <span class="k">allocatable</span> <span class="kd">::</span> <span class="n">values</span> +<a name="ln-183"></a> <span class="kt">integer</span> <span class="kd">::</span> <span class="n">numberOfValues</span><span class="p">,</span><span class="n">maxlev</span> +<a name="ln-184"></a> <span class="kt">REAL</span> <span class="kd">::</span> <span class="n">A</span><span class="p">(</span><span class="n">MAXLEV</span><span class="o">+</span><span class="mi">1</span><span class="p">),</span><span class="n">B</span><span class="p">(</span><span class="n">MAXLEV</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">MAXLEV</span><span class="o">+</span><span class="mi">2</span><span class="p">)</span> +<a name="ln-185"></a> <span class="kt">REAL</span><span class="kd">::</span> <span class="n">CXMN</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="n">MLEVEL</span><span class="p">)</span> +<a name="ln-186"></a> <span class="kt">integer</span><span class="kd">::</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">mstride</span><span class="p">,</span><span class="n">mpar</span><span class="p">(:),</span><span class="n">mnauf</span><span class="p">,</span><span class="n">ioffset</span><span class="p">,</span><span class="n">ipar</span><span class="p">,</span><span class="n">ilev</span><span class="p">,</span><span class="n">l</span><span class="p">(</span><span class="n">size</span><span class="p">(</span><span class="n">mpar</span><span class="p">))</span> +<a name="ln-187"></a> <span class="kt">character</span><span class="o">*</span><span class="p">(</span><span class="o">*</span><span class="p">)</span><span class="kd">::</span> <span class="n">filename</span> +<a name="ln-188"></a> +<a name="ln-189"></a> <span class="k">call </span><span class="n">grib_open_file</span><span class="p">(</span><span class="n">ifile</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">'r'</span><span class="p">)</span> +<a name="ln-190"></a> +<a name="ln-191"></a> <span class="c">! count the messages in the file</span> +<a name="ln-192"></a> <span class="k">call </span><span class="n">grib_count_in_file</span><span class="p">(</span><span class="n">ifile</span><span class="p">,</span><span class="n">n</span><span class="p">)</span> +<a name="ln-193"></a> <span class="k">allocate</span><span class="p">(</span><span class="n">igrib</span><span class="p">(</span><span class="n">n</span><span class="p">))</span> +<a name="ln-194"></a> <span class="n">igrib</span><span class="o">=-</span><span class="mi">1</span> +<a name="ln-195"></a> +<a name="ln-196"></a> <span class="c">! Load the messages from the file.</span> +<a name="ln-197"></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">n</span> +<a name="ln-198"></a> <span class="k">call </span><span class="n">grib_new_from_file</span><span class="p">(</span><span class="n">ifile</span><span class="p">,</span><span class="n">igrib</span><span class="p">(</span><span class="n">i</span><span class="p">),</span> <span class="n">iret</span><span class="p">)</span> +<a name="ln-199"></a> <span class="k">END DO</span> +<a name="ln-200"></a> +<a name="ln-201"></a> <span class="c">! we can close the file</span> +<a name="ln-202"></a> <span class="k">call </span><span class="n">grib_close_file</span><span class="p">(</span><span class="n">ifile</span><span class="p">)</span> +<a name="ln-203"></a> +<a name="ln-204"></a> <span class="n">l</span><span class="o">=</span><span class="mi">0</span> +<a name="ln-205"></a> <span class="c">! Loop on all the messages in memory</span> +<a name="ln-206"></a> <span class="n">iloop</span><span class="p">:</span> <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">n</span> +<a name="ln-207"></a> <span class="c">! write(*,*) 'processing message number ',i</span> +<a name="ln-208"></a> <span class="c">! get as a integer</span> +<a name="ln-209"></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="n">i</span><span class="p">),</span><span class="s1">'pentagonalResolutionParameterJ'</span><span class="p">,</span> <span class="n">j</span><span class="p">)</span> +<a name="ln-210"></a> +<a name="ln-211"></a> <span class="k">call </span><span class="n">grib_get_size</span><span class="p">(</span><span class="n">igrib</span><span class="p">(</span><span class="n">i</span><span class="p">),</span><span class="s1">'values'</span><span class="p">,</span><span class="n">numberOfValues</span><span class="p">)</span> +<a name="ln-212"></a> <span class="c">! write(*,*) 'numberOfValues=',numberOfValues</span> +<a name="ln-213"></a> +<a name="ln-214"></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="n">i</span><span class="p">),</span><span class="s1">'numberOfVerticalCoordinateValues'</span><span class="p">,</span><span class="n">mk</span><span class="p">)</span> +<a name="ln-215"></a> +<a name="ln-216"></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="n">i</span><span class="p">),</span><span class="s1">'level'</span><span class="p">,</span><span class="n">ilev</span><span class="p">)</span> +<a name="ln-217"></a> +<a name="ln-218"></a> +<a name="ln-219"></a> +<a name="ln-220"></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="n">i</span><span class="p">),</span><span class="s1">'pv'</span><span class="p">,</span><span class="n">pv</span><span class="p">)</span> +<a name="ln-221"></a> +<a name="ln-222"></a> <span class="k">allocate</span><span class="p">(</span><span class="n">values</span><span class="p">(</span><span class="n">numberOfValues</span><span class="p">),</span> <span class="nb">stat</span><span class="o">=</span><span class="n">iret</span><span class="p">)</span> +<a name="ln-223"></a> <span class="c">! get data values</span> +<a name="ln-224"></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="n">i</span><span class="p">),</span><span class="s1">'values'</span><span class="p">,</span><span class="n">values</span><span class="p">)</span> +<a name="ln-225"></a> +<a name="ln-226"></a><span class="c">! IOFFSET=mod(i-1,MSTRIDE)*(mk/2-1)</span> +<a name="ln-227"></a><span class="c">! CXMN(:,IOFFSET+ilev)=values(1:(MNAUF+1)*(MNAUF+2))</span> +<a name="ln-228"></a> +<a name="ln-229"></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="n">i</span><span class="p">),</span><span class="s1">'paramId'</span><span class="p">,</span><span class="n">parid</span><span class="p">)</span> +<a name="ln-230"></a> <span class="n">nm</span><span class="o">=</span><span class="n">size</span><span class="p">(</span><span class="n">mpar</span><span class="p">)</span> +<a name="ln-231"></a> <span class="n">div</span><span class="o">=</span><span class="n">mlevel</span><span class="o">/</span><span class="n">nm</span> +<a name="ln-232"></a> <span class="n">kloop</span><span class="p">:</span> <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">nm</span> +<a name="ln-233"></a> <span class="k">if</span> <span class="p">(</span><span class="n">parid</span> <span class="p">.</span><span class="n">eq</span><span class="p">.</span> <span class="n">mpar</span><span class="p">(</span><span class="n">k</span><span class="p">))</span> <span class="k">then</span> +<a name="ln-234"></a><span class="k"> </span><span class="n">l</span><span class="p">(</span><span class="n">k</span><span class="p">)</span><span class="o">=</span><span class="n">l</span><span class="p">(</span><span class="n">k</span><span class="p">)</span><span class="o">+</span><span class="mi">1</span> +<a name="ln-235"></a> <span class="n">cxmn</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">div</span><span class="o">+</span><span class="n">l</span><span class="p">(</span><span class="n">k</span><span class="p">))</span><span class="o">=</span><span class="n">values</span><span class="p">(</span><span class="mi">1</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> +<a name="ln-236"></a><span class="c">! print*,(k-1)*div+l(k),parid</span> +<a name="ln-237"></a> <span class="k">exit </span><span class="n">kloop</span> +<a name="ln-238"></a> <span class="k">end if</span> +<a name="ln-239"></a><span class="k"> </span> +<a name="ln-240"></a><span class="k"> end do </span><span class="n">kloop</span> +<a name="ln-241"></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="n">nm</span> <span class="p">.</span><span class="nb">and</span><span class="p">.</span> <span class="n">parid</span> <span class="p">.</span><span class="n">ne</span><span class="p">.</span> <span class="n">mpar</span><span class="p">(</span><span class="n">nm</span><span class="p">))</span> <span class="k">then</span> +<a name="ln-242"></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="n">k</span><span class="p">,</span><span class="n">nm</span><span class="p">,</span><span class="n">parid</span><span class="p">,</span><span class="n">mpar</span><span class="p">(</span><span class="n">nm</span><span class="p">)</span> +<a name="ln-243"></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">'ERROR readspectral: parameter '</span><span class="p">,</span><span class="n">parid</span><span class="p">,</span><span class="s1">'is not'</span><span class="p">,</span><span class="n">mpar</span> +<a name="ln-244"></a> <span class="k">stop</span> +<a name="ln-245"></a><span class="k"> end if</span> +<a name="ln-246"></a> +<a name="ln-247"></a><span class="c">! print*,i</span> +<a name="ln-248"></a> +<a name="ln-249"></a> <span class="k">END DO </span><span class="n">iloop</span> +<a name="ln-250"></a> +<a name="ln-251"></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">'readspectral: '</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="s1">' records read'</span> +<a name="ln-252"></a> +<a name="ln-253"></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">n</span> +<a name="ln-254"></a> <span class="k">call </span><span class="n">grib_release</span><span class="p">(</span><span class="n">igrib</span><span class="p">(</span><span class="n">i</span><span class="p">))</span> +<a name="ln-255"></a> <span class="k">END DO</span> +<a name="ln-256"></a><span class="k"> </span> +<a name="ln-257"></a><span class="k"> deallocate</span><span class="p">(</span><span class="n">values</span><span class="p">)</span> +<a name="ln-258"></a> <span class="k">deallocate</span><span class="p">(</span><span class="n">igrib</span><span class="p">)</span> +<a name="ln-259"></a> +<a name="ln-260"></a> <span class="n">A</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">MAXLEV</span><span class="p">)</span> +<a name="ln-261"></a> <span class="n">B</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">MAXLEV</span><span class="p">:</span><span class="mi">2</span><span class="o">*</span><span class="n">MAXLEV</span><span class="o">+</span><span class="mi">2</span><span class="p">)</span> +<a name="ln-262"></a> +<a name="ln-263"></a> <span class="k">END SUBROUTINE </span><span class="n">READSPECTRAL</span> +<a name="ln-264"></a> +<a name="ln-265"></a><span class="k">END MODULE </span><span class="n">RWGRIB2</span> +</pre></div> + + </section> + </div> + </div> + + + <hr> + </div> <!-- /container --> + <footer> + <div class="container"> + <div class="row"> + <div class="col-xs-6 col-md-4"><p>© 2019 <a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a> + </p></div> + <div class="col-xs-6 col-md-4 col-md-push-4"> + <p class="text-right"> + Documentation generated by + <a href="https://github.com/cmacmackin/ford">FORD</a> + + </p> + </div> + <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<sup>1</sup></p></div> + </div> + <br> + </div> <!-- /container --> + </footer> + + <!-- Bootstrap core JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> +<!-- + <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> +--> + <script src="../js/bootstrap.min.js"></script> + <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> + <script src="../js/ie10-viewport-bug-workaround.js"></script> + + <!-- MathJax JavaScript + ================================================== --> + <!-- Placed at the end of the document so the pages load faster --> + <script type="text/x-mathjax-config"> + MathJax.Hub.Config({ + TeX: { extensions: ['AMSmath.js','AMSsymbols.js','noErrors.js','noUndefined.js'], equationNumbers: { autoNumber: 'AMS' } }, + jax: ['input/TeX','input/MathML','output/HTML-CSS'], + extensions: ['tex2jax.js','mml2jax.js','MathMenu.js','MathZoom.js'] + }); + </script> + + <script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + <script src="../tipuesearch/tipuesearch_content.js"></script> + <script src="../tipuesearch/tipuesearch_set.js"></script> + <script src="../tipuesearch/tipuesearch.js"></script> + + + </body> +</html> \ No newline at end of file diff --git a/Documentation/FORD/V6/Doc/src/ftrafo.f90 b/Documentation/FORD/V6/Doc/src/ftrafo.f90 new file mode 100644 index 0000000000000000000000000000000000000000..db640df1f4c5904dc699cfa1eb5f12e396b9a63e --- /dev/null +++ b/Documentation/FORD/V6/Doc/src/ftrafo.f90 @@ -0,0 +1,504 @@ +MODULE FTRAFO + +!! Implementation of the spectral transformation using reduced the Gaussian grid + +CONTAINS + +! Implementierung der spektralen Transformationsmethode unter Verwendung +! des reduzierten Gauss'schen Gitters + + + SUBROUTINE VDTOUV(XMN,XLAM,XPHI,GWSAVE,IFAX,P,MLAT,MNAUF,NI,NJ,NK) + +!! Berechnung der scale winds aus Vorticity und Divergenz +!! uebergibt man in XMN die Divergenz, so wird der divergente Anteil des +!! Windes (XPHI=Ud,XPHI=Vd) zurueckgegeben, uebergibt man die Vorticity, so +!! erhaelt man den rotationellen Wind (XLAM=Vrot,XPHI=-Urot). +!! Summiert man beide, erhaelt man den gesamten Scale wind +! GWSAVE ist ein Hilfsfeld fuer die FFT +! P enthaelt die assoziierten Legendrepolynome, H deren Ableitung +! MLAT enthaelt die Anzahl der Gitterpunkte pro Breitenkreis +! MNAUF gibt die spektrale Aufloesung an, +! NI = Anzahl der Gauss'schen Gitterpunkte pro Flaeche +! NJ = Anzahl der Gauss'schen Breiten, +! NK = Anzahl der Niveaus + + USE PHTOGR + + IMPLICIT NONE + INTEGER J,N,NI,NJ,NK,MNAUF,GGIND(NJ/2) + INTEGER MLAT(NJ),IFAX(10,NJ) + REAL XMN(0:(MNAUF+1)*(MNAUF+2)-1,NK) + REAL P(0:(MNAUF+3)*(MNAUF+4)/2,NJ/2) + REAL H(0:(MNAUF+2)*(MNAUF+3)/2) + REAL XLAM(NI,NK),XPHI(NI,NK) + REAL GWSAVE(8*NJ+15,NJ/2) + REAL SCR,SCI,ACR,ACI,MUSCR,MUSCI,MUACR,MUACI + REAL RT,IT + + GGIND(1)=0 + DO 4 J = 2,NJ/2 + GGIND(J)=GGIND(J-1)+MLAT(J-1) +4 CONTINUE + +!$OMP PARALLEL DO SCHEDULE(DYNAMIC) + DO 5 J = 1,NJ/2 + CALL VDUVSUB(J,XMN,XLAM,XPHI,GWSAVE,IFAX,P,GGIND(J),MLAT,MNAUF,NI,NJ,NK) +5 CONTINUE +!$OMP END PARALLEL DO + + RETURN + + END SUBROUTINE VDTOUV + + SUBROUTINE VDUVSUB(J,XMN,XLAM,XPHI,GWSAVE,IFAX,P,GGIND,MLAT,MNAUF,NI,NJ,NK) + + USE PHTOGR + + IMPLICIT NONE + + INTEGER J,K,M,N,NI,NJ,NK,MNAUF,GGIND,LL,LLP,LLH,LLS,LLPS,LLHS + INTEGER MLAT(NJ),IFAX(10,NJ) + REAL UFOUC(0:MAXAUF),MUFOUC(0:MAXAUF) + REAL VFOUC(0:MAXAUF),MVFOUC(0:MAXAUF) + REAL XMN(0:(MNAUF+1)*(MNAUF+2)-1,NK) + REAL P(0:(MNAUF+3)*(MNAUF+4)/2,NJ/2) + REAL H(0:(MNAUF+2)*(MNAUF+3)/2) + REAL XLAM(NI,NK),XPHI(NI,NK) + REAL GWSAVE(8*NJ+15,NJ/2) + REAL ERAD,SCR,SCI,ACR,ACI,MUSCR,MUSCI,MUACR,MUACI + REAL FAC(0:MNAUF),RT,IT + + ERAD = 6367470.D0 + + FAC(0)=0.D0 + DO 12 N=1,MNAUF + FAC(N)=-ERAD/DBLE(N)/DBLE(N+1) +12 CONTINUE + + CALL DPLGND(MNAUF,P(0,J),H) + DO 3 K = 1,NK + LL=0 + LLP=0 + LLH=0 + DO 2 M = 0,MNAUF + SCR=0.D0 + SCI=0.D0 + ACR=0.D0 + ACI=0.D0 + MUSCR=0.D0 + MUSCI=0.D0 + MUACR=0.D0 + MUACI=0.D0 + LLS=LL + LLPS=LLP + LLHS=LLH + IF (2*M+1 .LT. MLAT(J)) THEN + DO 1 N = M,MNAUF,2 + RT=XMN(2*LL,K)*FAC(N) + IT=XMN(2*LL+1,K)*FAC(N) + SCR =SCR+ RT*P(LLP,J) + SCI =SCI+ IT*P(LLP,J) + MUACR =MUACR+ RT*H(LLH) + MUACI =MUACI+ IT*H(LLH) + LL=LL+2 + LLP=LLP+2 + LLH=LLH+2 +1 CONTINUE + LL=LLS+1 + LLP=LLPS+1 + LLH=LLHS+1 + DO 11 N = M+1,MNAUF,2 + RT=XMN(2*LL,K)*FAC(N) + IT=XMN(2*LL+1,K)*FAC(N) + ACR =ACR+ RT*P(LLP,J) + ACI =ACI+ IT*P(LLP,J) + MUSCR =MUSCR+ RT*H(LLH) + MUSCI =MUSCI+ IT*H(LLH) + LL=LL+2 + LLP=LLP+2 + LLH=LLH+2 +11 CONTINUE + END IF + LL=LLS+(MNAUF-M+1) + LLP=LLPS+(MNAUF-M+3) + LLH=LLHS+(MNAUF-M+2) + + UFOUC(2*M)=-M*(SCI-ACI) + UFOUC(2*M+1)=M*(SCR-ACR) + VFOUC(2*M)=-M*(SCI+ACI) + VFOUC(2*M+1)=M*(SCR+ACR) + + MUFOUC(2*M)=-(MUSCR-MUACR) + MUFOUC(2*M+1)=-(MUSCI-MUACI) + MVFOUC(2*M)=-(MUSCR+MUACR) + MVFOUC(2*M+1)=-(MUSCI+MUACI) +2 CONTINUE + + CALL RFOURTR(VFOUC,GWSAVE(:,J),IFAX(:,J),MNAUF,MLAT(J),1) + XLAM(GGIND+1:GGIND+MLAT(J),K)=VFOUC(0:MLAT(J)-1) + CALL RFOURTR(UFOUC,GWSAVE(:,J),IFAX(:,J),MNAUF,MLAT(J),1) + XLAM(NI-GGIND-MLAT(J)+1:NI-GGIND,K)=UFOUC(0:MLAT(J)-1) + + CALL RFOURTR(MVFOUC,GWSAVE(:,J),IFAX(:,J),MNAUF,MLAT(J),1) + XPHI(GGIND+1:GGIND+MLAT(J),K)=MVFOUC(0:MLAT(J)-1) + CALL RFOURTR(MUFOUC,GWSAVE(:,J),IFAX(:,J),MNAUF,MLAT(J),1) + XPHI(NI-GGIND-MLAT(J)+1:NI-GGIND,K)=MUFOUC(0:MLAT(J)-1) + +3 CONTINUE + + RETURN + + END SUBROUTINE VDUVSUB + + + SUBROUTINE PHGRAD(XMN,XLAM,XPHI,GWSAVE,IFAX,P,H,MLAT,MNAUF,NI,NJ,NK) + +!! Berechnung des Gradienten eines Skalars aus dem Feld des +!! Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der +!! Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. +! GWSAVE ist ein Hilfsfeld fuer die FFT +! P enthaelt die assoziierten Legendrepolynome, H deren Ableitung +! MLAT enthaelt die Anzahl der Gitterpunkte pro Breitenkreis +! MNAUF gibt die spektrale Aufloesung an, +! NI = Anzahl der Gauss'schen Gitterpunkte, +! NJ = Anzahl der Gauss'schen Breiten, +! NK = Anzahl der Niveaus + + USE PHTOGR + + IMPLICIT NONE + + INTEGER J,K,M,N,NI,NJ,NK,MNAUF,GGIND,LL,LLP,LLH,LLS,LLPS,LLHS + INTEGERMLAT(NJ),IFAX(10,NJ) + REAL UFOUC(0:MAXAUF),MUFOUC(0:MAXAUF) + REAL VFOUC(0:MAXAUF),MVFOUC(0:MAXAUF) + REAL XMN(0:(MNAUF+1)*(MNAUF+2)-1,NK) + REAL P(0:(MNAUF+3)*(MNAUF+4)/2,NJ/2) + REAL H(0:(MNAUF+2)*(MNAUF+3)/2) + REAL XLAM(NI,NK),XPHI(NI,NK) + REAL GWSAVE(8*NJ+15,NJ/2) + REAL ERAD + REAL SCR,SCI,ACR,ACI,MUSCR,MUSCI,MUACR,MUACI,RT,IT + + ERAD = 6367470.0 + + GGIND=0 + DO 4 J = 1,NJ/2 + CALL DPLGND(MNAUF,P(0,J),H) + DO 3 K = 1,NK + LL=0 + LLP=0 + LLH=0 + DO 2 M = 0,MNAUF + SCR=0.D0 + SCI=0.D0 + ACR=0.D0 + ACI=0.D0 + MUSCR=0.D0 + MUSCI=0.D0 + MUACR=0.D0 + MUACI=0.D0 + LLS=LL + LLPS=LLP + LLHS=LLH + IF (2*M+1 .LT. MLAT(J)) THEN + DO 1 N = M,MNAUF,2 + RT=XMN(2*LL,K) + IT=XMN(2*LL+1,K) + SCR =SCR+ RT*P(LLP,J) + SCI =SCI+ IT*P(LLP,J) + MUACR =MUACR+RT*H(LLH) + MUACI =MUACI+ IT*H(LLH) + LL=LL+2 + LLP=LLP+2 + LLH=LLH+2 +1 CONTINUE + LL=LLS+1 + LLP=LLPS+1 + LLH=LLHS+1 + DO 11 N = M+1,MNAUF,2 + RT=XMN(2*LL,K) + IT=XMN(2*LL+1,K) + ACR =ACR+ RT*P(LLP,J) + ACI =ACI+ IT*P(LLP,J) + MUSCR =MUSCR+ RT*H(LLH) + MUSCI =MUSCI+ IT*H(LLH) + LL=LL+2 + LLP=LLP+2 + LLH=LLH+2 +11 CONTINUE + END IF + LL=LLS+(MNAUF-M+1) + LLP=LLPS+(MNAUF-M+3) + LLH=LLHS+(MNAUF-M+2) + + UFOUC(2*M)=-M*(SCI-ACI)/ERAD + UFOUC(2*M+1)=M*(SCR-ACR)/ERAD + VFOUC(2*M)=-M*(SCI+ACI)/ERAD + VFOUC(2*M+1)=M*(SCR+ACR)/ERAD + + MUFOUC(2*M)=-(MUSCR-MUACR)/ERAD + MUFOUC(2*M+1)=-(MUSCI-MUACI)/ERAD + MVFOUC(2*M)=-(MUSCR+MUACR)/ERAD + MVFOUC(2*M+1)=-(MUSCI+MUACI)/ERAD +2 CONTINUE + + CALL RFOURTR(VFOUC,GWSAVE(:,J),IFAX(:,J),MNAUF,MLAT(J),1) + XLAM(GGIND+1:GGIND+MLAT(J),K)=VFOUC(0:MLAT(J)-1) + CALL RFOURTR(UFOUC,GWSAVE(:,J),IFAX(:,J),MNAUF,MLAT(J),1) + XLAM(NI-GGIND-MLAT(J)+1:NI-GGIND,K)=UFOUC(0:MLAT(J)-1) + + CALL RFOURTR(MVFOUC,GWSAVE(:,J),IFAX(:,J),MNAUF,MLAT(J),1) + XPHI(GGIND+1:GGIND+MLAT(J),K)=MVFOUC(0:MLAT(J)-1) + CALL RFOURTR(MUFOUC,GWSAVE(:,J),IFAX(:,J),MNAUF,MLAT(J),1) + XPHI(NI-GGIND-MLAT(J)+1:NI-GGIND,K)=MUFOUC(0:MLAT(J)-1) + +3 CONTINUE + GGIND=GGIND+MLAT(J) +4 CONTINUE + + + RETURN + + END SUBROUTINE PHGRAD + + + SUBROUTINE PHGRACUT(XMN,XLAM,XPHI,GWSAVE,IFAX,P,H,MAUF,MNAUF,NI,NJ,MANF,NK) + +!! Berechnung des Gradienten eines Skalars aus dem Feld des +!! Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der +!! Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. +! GWSAVE ist ein Hilfsfeld fuer die FFT +! P enthaelt die assoziierten Legendrepolynome, H deren Ableitung +! MLAT enthaelt die Anzahl der Gitterpunkte pro Breitenkreis +! MNAUF gibt die spektrale Aufloesung an, +! NI = Anzahl der Gauss'schen Gitterpunkte, +! NJ = Anzahl der Gauss'schen Breiten, +! NK = Anzahl der Niveaus + + USE PHTOGR + + IMPLICIT NONE + + INTEGER J,K,M,N,NI,NJ,NK,MNAUF,GGIND,LL,LLP,LLH,LLS,LLPS,LLHS + INTEGER MAUF,MANF,I,IFAX(10) + REAL UFOUC(0:MAXAUF),MUFOUC(0:MAXAUF) + REAL VFOUC(0:MAXAUF),MVFOUC(0:MAXAUF) + REAL XMN(0:(MNAUF+1)*(MNAUF+2)-1,NK) + REAL P(0:(MNAUF+3)*(MNAUF+4)/2,NJ) + REAL H(0:(MNAUF+2)*(MNAUF+3)/2) + REAL XLAM(NI,NJ,NK),XPHI(NI,NJ,NK) + REAL HLAM(MAXAUF,2),HPHI(MAXAUF,2) + REAL GWSAVE(4*MAUF+15) + REAL ERAD + REAL SCR,SCI,ACR,ACI,MUSCR,MUSCI,MUACR,MUACI,RT,IT + + ERAD = 6367470.0 + + GGIND=0 + DO 4 J = 1,NJ + CALL DPLGND(MNAUF,P(0,J),H) + DO 3 K = 1,NK + LL=0 + LLP=0 + LLH=0 + DO 2 M = 0,MNAUF + SCR=0.D0 + SCI=0.D0 + ACR=0.D0 + ACI=0.D0 + MUSCR=0.D0 + MUSCI=0.D0 + MUACR=0.D0 + MUACI=0.D0 + LLS=LL + LLPS=LLP + LLHS=LLH + IF (2*M+1 .LT. MAUF) THEN + DO 1 N = M,MNAUF,2 + RT=XMN(2*LL,K) + IT=XMN(2*LL+1,K) + SCR =SCR+ RT*P(LLP,J) + SCI =SCI+ IT*P(LLP,J) + MUACR =MUACR+RT*H(LLH) + MUACI =MUACI+ IT*H(LLH) + LL=LL+2 + LLP=LLP+2 + LLH=LLH+2 +1 CONTINUE + LL=LLS+1 + LLP=LLPS+1 + LLH=LLHS+1 + DO 11 N = M+1,MNAUF,2 + RT=XMN(2*LL,K) + IT=XMN(2*LL+1,K) + ACR =ACR+ RT*P(LLP,J) + ACI =ACI+ IT*P(LLP,J) + MUSCR =MUSCR+ RT*H(LLH) + MUSCI =MUSCI+ IT*H(LLH) + LL=LL+2 + LLP=LLP+2 + LLH=LLH+2 +11 CONTINUE + END IF + LL=LLS+(MNAUF-M+1) + LLP=LLPS+(MNAUF-M+3) + LLH=LLHS+(MNAUF-M+2) + + UFOUC(2*M)=-M*(SCI-ACI)/ERAD + UFOUC(2*M+1)=M*(SCR-ACR)/ERAD + VFOUC(2*M)=-M*(SCI+ACI)/ERAD + VFOUC(2*M+1)=M*(SCR+ACR)/ERAD + + MUFOUC(2*M)=-(MUSCR-MUACR)/ERAD + MUFOUC(2*M+1)=-(MUSCI-MUACI)/ERAD + MVFOUC(2*M)=-(MUSCR+MUACR)/ERAD + MVFOUC(2*M+1)=-(MUSCI+MUACI)/ERAD +2 CONTINUE + + CALL RFOURTR(VFOUC,GWSAVE,IFAX,MNAUF,MAUF,1) + + CALL RFOURTR(MVFOUC,GWSAVE,IFAX,MNAUF,MAUF,1) + + DO 6 I=0,NI-1 + IF (MANF+I .LE. MAUF) THEN + XLAM(I+1,J,K)=VFOUC(MANF+I-1) + XPHI(I+1,J,K)=MVFOUC(MANF+I-1) + ELSE + XLAM(I+1,J,K)=VFOUC(MANF-MAUF+I-1) + XPHI(I+1,J,K)=MVFOUC(MANF-MAUF+I-1) + END IF +6 CONTINUE +3 CONTINUE + GGIND=GGIND+MAUF +4 CONTINUE + + RETURN + + END SUBROUTINE PHGRACUT + + SUBROUTINE CONTGL(PS,DPSDL,DPSDM,DIV,U,V,BREITE,ETA,MLAT,A,B,NI,NJ,NK) + +!! Berechnung der Divergenz aus dem Windfeld (U,V) +!! im Phasenraum. Zurueckgegeben werden die Felder der +!! Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. +! GWSAVE ist ein Hilfsfeld fuer die FFT +! P enthaelt die assoziierten Legendrepolynome, H deren Ableitung +! MLAT enthaelt die Anzahl der Gitterpunkte pro Breitenkreis +! MNAUF gibt die spektrale Aufloesung an, +! NI = Anzahl der Gauss'schen Gitterpunkte, +! NJ = Anzahl der Gauss'schen Breiten, +! NK = Anzahl der Niveaus +! Beachte, dass das Windfeld eine um 1 erhoehte Aufloesung in mu-Richtung hat. + + IMPLICIT NONE + + INTEGER NI,NJ,NK,I,J,K,MLAT(NJ),L + + REAL A(NK+1),B(NK+1) + REAL PS(NI),DPSDL(NI),DPSDM(NI) + REAL DIV(NI,NK),U(NI,NK),V(NI,NK),ETA(NI,NK) + REAL BREITE(NJ) + + REAL DIVT1,DIVT2,POB,PUN,DPSDT,COSB + + L=0 + DO 4 J=1,NJ + COSB=(1.0-BREITE(J)*BREITE(J)) + DO 3 I=1,MLAT(J) + L=L+1 + DIVT1=0.0 + DIVT2=0.0 + DO 1 K=1,NK + POB=A(K)+B(K)*PS(L) + PUN=A(K+1)+B(K+1)*PS(L) + + DIVT1=DIVT1+DIV(L,K)*(PUN-POB) + IF (COSB .GT. 0.) THEN + DIVT2=DIVT2+(B(K+1)-B(K))*PS(L)* & + (U(L,K)*DPSDL(L)+V(L,K)*DPSDM(L))/COSB + END IF + + ETA(L,K)=-DIVT1-DIVT2 +1 CONTINUE + + DPSDT=(-DIVT1-DIVT2)/PS(L) + + DO 2 K=1,NK + ETA(L,K)=ETA(L,K)-DPSDT*B(K+1)*PS(L) +2 CONTINUE + PS(L)=DPSDT*PS(L) +3 CONTINUE +4 CONTINUE + + RETURN + + END SUBROUTINE CONTGL + + SUBROUTINE OMEGA(PS,DPSDL,DPSDM,DIV,U,V,BREITE,E,MLAT,A,B,NGI,NGJ,MKK) + +!! calculates $\omega$ in the hybrid ($\eta$-) coordinate system + +! OMEGA berechnet omega im Hybridkoordinatensystem +! PS ist der Bodendruck, +! DPSDL,DPSDM sind die Komponenten des Gradienten des Logarithmus des +! Bodendrucks +! DIV,U,V sind die horizontale Divergenz und das horizontale Windfeld +! BREITE ist das Feld der Gauss'schen Breiten +! E ist omega, + + IMPLICIT NONE + + INTEGER I,J,K,L,NGI,NGJ,MKK,MLAT(NGJ) + + REAL PS(NGI),DPSDL(NGI),DPSDM(NGI),A(MKK+1),B(MKK+1) + REAL DIV(NGI,MKK),U(NGI,MKK),V(NGI,MKK),E(NGI,MKK) + REAL BREITE(NGJ) + + REAL DIVT1,DIVT2,POB,PUN,DP,X,Y,COSB + REAL DIVT3(MKK+2) + + L=0 + DO 4 J=1,NGJ + COSB=(1.0-BREITE(J)*BREITE(J)) + DO 3 I=1,MLAT(J) + L=L+1 + DIVT1=0.0 + DIVT2=0.0 + DIVT3(1)=0.0 + DO 1 K=1,MKK + POB=A(K)+B(K)*PS(L) + PUN=A(K+1)+B(K+1)*PS(L) + DP=PUN-POB + + Y=PS(L)*(U(L,K)*DPSDL(L)+V(L,K)*DPSDM(L))/COSB + IF (K .LT. 3) THEN + X=0.0 + ELSE + X=(B(K+1)-B(K))*Y + END IF + + DIVT1=DIVT1+DIV(L,K)*DP + DIVT2=DIVT2+X + + DIVT3(K+1)=-DIVT1-DIVT2 + + IF (K .GT. 1) THEN + E(L,K) = 0.5*(POB+PUN)/ & + DP*Y*((B(K+1)-B(K))+(A(K+1)*B(K)-A(K)*B(K+1))/DP*LOG(PUN/POB)) + ELSE + E(L,K) = 0.0 + END IF + + E(L,K) = E(L,K)+0.5*(DIVT3(K)+DIVT3(K+1)) + +1 CONTINUE +3 CONTINUE +4 CONTINUE + + RETURN + + END SUBROUTINE OMEGA + +END MODULE FTRAFO diff --git a/Documentation/FORD/V6/Doc/src/grphreal.f90 b/Documentation/FORD/V6/Doc/src/grphreal.f90 new file mode 100644 index 0000000000000000000000000000000000000000..fa3b3e71004bf0bd33724153ab8e7ee1759255dd --- /dev/null +++ b/Documentation/FORD/V6/Doc/src/grphreal.f90 @@ -0,0 +1,185 @@ +MODULE GRTOPH + + USE PHTOGR + +CONTAINS + + SUBROUTINE GRPH213(CXMN,FELD,WSAVE,IFAX,Z,W,MLAT,MNAUF,MAXL,MAXB,MLEVEL) + +!! DIE ROUTINE F]HRT EINE TRANSFORMATION EINER +!! FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN +!! RAUM AUF KUGELKOORDINATEN DURCH + +! CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE +! CX00,CX01,CX11,CX02,....CXMNAUFMNAUF +! CXM = FOURIERKOEFFIZIENTEN - nur ein Hilfsfeld +! FELD = FELD DER METEOROLOGISCHEN VARIABLEN +! WSAVE = Working Array fuer Fouriertransformation +! Z = LEGENDREFUNKTIONSWERTE +! +! MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN +! MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN +! MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN +! MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN + + IMPLICIT REAL (A-H,O-Z) + +! Anzahl der Gitterpunkte pro Breitenkreis des reduzierten +! Gauss'schen Gitters + INTEGER MLAT(MAXB),ISIZE,IFAX(10,MAXB) + +! FELD DER LEGENDREPOLYNOME FUER EINE BREITE + REAL*8 Z(MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) + +! LOGICAL*1 USED(((216*217)/2+1)*160) + + DIMENSION CXMN(0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) + REAL FELD(MAXL,MLEVEL) + DIMENSION WSAVE(8*MAXB+15,MAXB/2) + REAL*8 W(MAXB) + DIMENSION IND(MAXB) + + IND(1)=0 + DO 6 J=2,MAXB/2 + IND(j)=IND(J-1)+MLAT(J-1) +6 CONTINUE +!$OMP PARALLEL DO SCHEDULE(DYNAMIC) + DO 16 L=1,MLEVEL + CALL GRPHSUB(L,IND,CXMN,FELD,WSAVE,IFAX,Z,W,MLAT,MNAUF,MAXL,MAXB,MLEVEL) +16 CONTINUE +!$omp end parallel do + + RETURN + + END SUBROUTINE GRPH213 + + SUBROUTINE GRPHSUB(L,IND,CXMN,FELD,WSAVE,IFAX,Z,W,MLAT,MNAUF,MAXL,MAXB,MLEVEL) + +!! DIE ROUTINE F]HRT EINE TRANSFORMATION EINER +!! FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN +!! RAUM AUF KUGELKOORDINATEN DURCH +! +! CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE +! CX00,CX01,CX11,CX02,....CXMNAUFMNAUF +! CXM = FOURIERKOEFFIZIENTEN - nur ein Hilfsfeld +! FELD = FELD DER METEOROLOGISCHEN VARIABLEN +! WSAVE = Working Array fuer Fouriertransformation +! Z = LEGENDREFUNKTIONSWERTE +! +! MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN +! MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN +! MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN +! MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN + + IMPLICIT REAL (A-H,O-Z) + +! FELD DER FOURIERKOEFFIZIENTEN + REAL CXMS(4*(MNAUF+1)) + REAL CXMA(4*(MNAUF+1)) + REAL,ALLOCATABLE :: CXM(:,:) + +! Anzahl der Gitterpunkte pro Breitenkreis des reduzierten +! Gauss'schen Gitters + INTEGER MLAT(MAXB),ISIZE + +! FELD DER LEGENDREPOLYNOME FUER EINE BREITE + REAL Z(MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) + +! LOGICAL*1 USED(((216*217)/2+1)*160) + + REAL CXMN(0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) + REAL FELD(MAXL,MLEVEL) + REAL WSAVE(8*MAXB+15,MAXB/2) + INTEGER IFAX(10,MAXB) + REAL W(MAXB) + INTEGER IND(MAXB) + + ALLOCATE(CXM( 4*MAXB,MAXB)) + DO 5 J=1,MAXB/2 + CXMS(1:MLAT(J))=FELD(IND(J)+1:IND(J)+MLAT(J),L) + CALL RFOUFTR(CXMS,WSAVE(1,J),IFAX(:,J),MNAUF,MLAT(J),1) + CXMA(1:MLAT(J))=FELD(MAXL-IND(J)-MLAT(J)+1:MAXL-IND(J),L) + CALL RFOUFTR(CXMA,WSAVE(1,J),IFAX(:,J),MNAUF,MLAT(J),1) + DO 4 I=1,2*(MNAUF+1) + CXM(I,J)=CXMS(I)+CXMA(I) + CXM(I,MAXB+1-J)=CXMS(I)-CXMA(I) +4 CONTINUE +5 CONTINUE + CALL LGTR213(CXMN(0,L),CXM,Z,W,MLAT,MNAUF,MAXB) + + DEALLOCATE(CXM) + + RETURN + + END SUBROUTINE GRPHSUB +! + SUBROUTINE LGTR213(CXMN,CXM,Z,W,MLAT,MNAUF,MAXB) + +!! DIESE ROUTINE BERECHNET DIE KFFKs CXMN + + IMPLICIT REAL (A-H,O-Z) + INTEGER MLAT(MAXB) + DIMENSION CXM(0:4*MAXB-1,MAXB) + DIMENSION CXMN(0:2*(((MNAUF+1)*MNAUF)/2+MNAUF)+1) + REAL*8 Z(MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) + REAL*8 W(MAXB),CR,CI,HILF + LOGICAL EVEN + + + LL=0 + LLP=0 + DO 1 I=0,MNAUF + KM=0 +9 KM=KM+1 + IF (MLAT(KM) .LE. 2*I) THEN + GOTO 9 + END IF + DO 2 J=I,MNAUF + CR=0 + CI=0 + EVEN=MOD(I+J,2) .EQ. 0 + IF (EVEN) THEN + DO 3 K=KM,MAXB/2 + HILF=W(K)*Z(K,LLP) + CR=CR+CXM(2*I,K)*HILF + CI=CI+CXM(2*I+1,K)*HILF +3 CONTINUE + ELSE + DO 4 K=KM,MAXB/2 + HILF=W(K)*Z(K,LLP) + CR=CR+CXM(2*I,MAXB+1-K)*HILF + CI=CI+CXM(2*I+1,MAXB+1-K)*HILF +4 CONTINUE + END IF +5 CXMN(2*LL)=CR + CXMN(2*LL+1)=CI + LL=LL+1 + LLP=LLP+1 +2 CONTINUE + LLP=LLP+2 +1 CONTINUE + RETURN + + END SUBROUTINE LGTR213 + + SUBROUTINE RFOUFTR(CXM,TRIGS,IFAX,MNAUF,MAXL,ISIGN) +! +! BERECHNET DIE FOURIERSUMME MIT EINEM FFT-ALGORITHMUS + + IMPLICIT REAL (A-H,O-Z) + DIMENSION CXM(0:2*MAXL-1) + DIMENSION FELD(MAXL),TRIGS(2*MAXL) + DIMENSION WSAVE(MAXAUF) + INTEGER IFAX(10) + +! NORMIERUNG... + WSAVE(1)=CXM(MAXL-1) + + CXM(1:MAXL)=CXM(0:MAXL-1)/2 + CXM(0)=WSAVE(1)/2 +! CALL CFFTF(MAXL,CXM,WSAVE) + CALL FFT99(CXM,WSAVE,TRIGS,IFAX,1,1,MAXL,1,-1) + RETURN + END SUBROUTINE RFOUFTR + +END MODULE GRTOPH diff --git a/Documentation/FORD/V6/Doc/src/phgrreal.f90 b/Documentation/FORD/V6/Doc/src/phgrreal.f90 new file mode 100644 index 0000000000000000000000000000000000000000..737278d060a2321fa7be54224d75f106a98de674 --- /dev/null +++ b/Documentation/FORD/V6/Doc/src/phgrreal.f90 @@ -0,0 +1,516 @@ +MODULE PHTOGR + + INTEGER, PARAMETER :: MAXAUF=36000 + +CONTAINS + + SUBROUTINE PHGR213(CXMN,FELD,WSAVE,IFAX,Z,MLAT,MNAUF,MAXL,MAXB,MLEVEL) + +!! DIE ROUTINE F]HRT EINE TRANSFORMATION EINER +!! FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN +!! RAUM AUF DAS REDUZIERTE GAUSS'SCHE GITTER DURCH +! +! CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE +! CX00,CX01,CX11,CX02,....CXMNAUFMNAUF +! FELD = FELD DER METEOROLOGISCHEN VARIABLEN +! WSAVE = Working Array fuer Fouriertransformation +! Z = LEGENDREFUNKTIONSWERTE +! +! MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN +! MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN +! MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN +! MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN + + IMPLICIT NONE + +! Anzahl der Gitterpunkte auf jedem Breitenkreis + INTEGER MLAT(MAXB/2) + INTEGER K,MAXL,MAXB,MLEVEL,MNAUF + INTEGER IND(MAXB) + +! FELD DER LEGENDREPOLYNOME FUER EINE BREITE + REAL Z(0:((MNAUF+3)*(MNAUF+4))/2,MAXB/2) + + REAL CXMN(0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) + REAL FELD(MAXL,MLEVEL) + REAL WSAVE(8*MAXB+15,MAXB/2) + INTEGER :: IFAX(10,MAXB) + + IND(1)=0 + DO 7 K=2,MAXB/2 + IND(K)=IND(K-1)+MLAT(K-1) +7 CONTINUE + +!$OMP PARALLEL DO SCHEDULE(DYNAMIC) + DO 17 K=1,MAXB/2 + CALL PHSYM(K,IND,CXMN,FELD,Z,WSAVE,IFAX,MLAT,MNAUF,MAXL,MAXB,MLEVEL) +17 CONTINUE +!$OMP END PARALLEL DO + + RETURN + + END SUBROUTINE PHGR213 + + SUBROUTINE PHSYM(K,IND,CXMN,FELD,Z,WSAVE,IFAX,MLAT,MNAUF,MAXL,MAXB,MLEVEL) + + IMPLICIT NONE + + INTEGER MLAT(MAXB/2) + INTEGER K,L,I,J,LLS,LLPS,LL,LLP,MAXL,MAXB,MLEVEL,MNAUF + INTEGER IND(MAXB) + INTEGER :: IFAX(10,MAXB) + + +! FELD DER FOURIERKOEFFIZIENTEN + REAL :: CXMS(0:MAXAUF-1),CXMA(0:MAXAUF-1) + +! FELD DER LEGENDREPOLYNOME FUER EINE BREITE + REAL Z(0:((MNAUF+3)*(MNAUF+4))/2,MAXB/2) + REAL ACR,ACI,SCR,SCI + + REAL CXMN(0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) + REAL FELD(MAXL,MLEVEL) + REAL WSAVE(8*MAXB+15,MAXB/2) + + DO 6 L=1,MLEVEL + LL=0 + LLP=0 + DO 1 I=0,MNAUF + SCR=0.D0 + SCI=0.D0 + ACR=0.D0 + ACI=0.D0 + LLS=LL + LLPS=LLP + IF (2*I+1 .LT. MLAT(K)) THEN +! Innerste Schleife aufgespalten um if-Abfrage zu sparen + DO 18 J=I,MNAUF,2 + SCR=SCR+Z(LLP,K)*CXMN(2*LL,L) + SCI=SCI+Z(LLP,K)*CXMN(2*LL+1,L) + LL=LL+2 + LLP=LLP+2 +18 CONTINUE + LL=LLS+1 + LLP=LLPS+1 + DO 19 J=I+1,MNAUF,2 + ACR=ACR+Z(LLP,K)*CXMN(2*LL,L) + ACI=ACI+Z(LLP,K)*CXMN(2*LL+1,L) + LL=LL+2 + LLP=LLP+2 +19 CONTINUE + END IF + LL=LLS+(MNAUF-I+1) + LLP=LLPS+(MNAUF-I+3) + CXMS(2*I)=SCR+ACR + CXMS(2*I+1)=SCI+ACI + CXMA(2*I)=SCR-ACR + CXMA(2*I+1)=SCI-ACI +1 CONTINUE +! CALL FOURTR(CXMS,FELD(IND(k)+1,L),WSAVE(:,K),MNAUF,*MLAT(K),1) +! CALL FOURTR(CXMA,FELD(MAXL-IND(k)-MLAT(K)+1,L),WSAVE(:,K),MNAUF,MLAT(K),1) + CALL RFOURTR(CXMS,WSAVE(:,K),IFAX(:,K),MNAUF,MLAT(K),1) + FELD(IND(k)+1:IND(K)+MLAT(K),L)=CXMS(0:MLAT(K)-1) + CALL RFOURTR(CXMA,WSAVE(:,K),IFAX(:,K),MNAUF,MLAT(K),1) + FELD(MAXL-IND(k)-MLAT(K)+1:MAXL-IND(k),L)=CXMA(0:MLAT(K)-1) +! WRITE(*,*) IND+1,FELD(IND+1,L) +6 CONTINUE + + END SUBROUTINE PHSYM + + SUBROUTINE PHGCUT(CXMN,FELD,WSAVE,IFAX,Z, & + MNAUF,MMAX,MAUF,MANF,MAXL,MAXB,MLEVEL) + +!! DIE ROUTINE FUEHRT EINE TRANSFORMATION EINER +!! FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN +!! RAUM AUF KUGELKOORDINATEN DURCH. Es kann ein Teilausschnitt +!! Der Erde angegeben werden. Diese Routine ist langsamer als phgrph + +! CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE +! CX00,CX01,CX11,CX02,....CXMNAUFMNAUF +! FELD = FELD DER METEOROLOGISCHEN VARIABLEN +! BREITE = SINUS DER GEOGRAFISCHEN BREITEN +! +! MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN +! MAUF ANZAHL DER LAENGEN UND DER FOURIERKOEFFIZIENTEN +! MANF ANFANG DES LAENGENBEREICHS FUER DAS GITTER, +! AUF DAS INTERPOLIERT WERDEN SOLL +! MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN +! MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN +! MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN + + IMPLICIT REAL (A-H,O-Z) + +! FELD DER FOURIERKOEFFIZIENTEN + +! FELD DER LEGENDREPOLYNOME FUER EINE BREITE + REAL Z(0:((MMAX+3)*(MMAX+4))/2,MAXB) + + DIMENSION CXMN(0:(MMAX+1)*(MMAX+2)-1,MLEVEL) + REAL FELD(MAXL,MAXB,MLEVEL) + DIMENSION WSAVE(4*MAUF+15) + INTEGER:: IFAX(10) + + LOGICAL SYM + +! write(*,*)mauf,mnauf,manf,maxl + + IF (MAUF .LE. MNAUF) WRITE(*,*) 'TOO COARSE LONGITUDE RESOLUTION' + IF (MANF .LT. 1 .OR. MAXL .LT. 1 .OR. & + MANF .GT. MAUF .OR. MAXL .GT. MAUF)) THEN + WRITE(*,*) 'WRONG LONGITUDE RANGE',MANF,MAXL + STOP + END IF + +! Pruefe, ob Ausgabegitter symmetrisch zum Aequator ist +! Wenn ja soll Symmetrie der Legendrepolynome ausgenutzt werden + IF (MAXB .GT. 4) THEN + SYM=.TRUE. + DO 11 J=5,5 + IF (ABS(ABS(Z(100,J))-ABS(Z(100,MAXB+1-J))) .GT. 1E-11) SYM=.FALSE. +! WRITE(*,*) ABS(Z(100,J)),ABS(Z(100,MAXB+1-J)) +11 CONTINUE + WRITE(*,*) 'Symmetrisch: ',SYM + ELSE + SYM=.FALSE. + END IF + + + IF (SYM) THEN + +!$OMP PARALLEL DO + DO J=1,(MAXB+1)/2 + CALL PHSYMCUT(J,CXMN,FELD,Z,WSAVE,IFAX,MAUF,MNAUF,MAXL,MAXB,MLEVEL,MANF) + END DO +!$OMP END PARALLEL DO + + ELSE + +!$OMP PARALLEL DO + DO J=1,MAXB + CALL PHGPNS(CXMN,FELD,Z,WSAVE,IFAX,J,MNAUF,MAUF,MANF,MAXL,MAXB,MLEVEL) + END DO +!$OMP END PARALLEL DO + + END IF + + RETURN + + END SUBROUTINE PHGCUT + + SUBROUTINE PHSYMCUT(J,CXMN,FELD,Z,WSAVE,IFAX,MAUF,MNAUF,MAXL,MAXB,MLEVEL,MANF) + + IMPLICIT REAL (A-H,O-Z) + +! FELD DER FOURIERKOEFFIZIENTEN + + REAL :: CXM(0:MAXAUF-1),CXMA(0:MAXAUF-1) + +! FELD DER LEGENDREPOLYNOME FUER EINE BREITE + REAL Z(0:((MNAUF+3)*(MNAUF+4))/2,MAXB) + REAL SCR,SCI,ACR,ACI + + DIMENSION CXMN(0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) + REAL FELD(MAXL,MAXB,MLEVEL) + DIMENSION WSAVE(4*MAUF+15) + INTEGER :: IFAX(10) + + DO 16 L=1,MLEVEL + LL=0 + LLP=0 + DO 17 I=0,MNAUF + SCR=0.D0 + SCI=0.D0 + ACR=0.D0 + ACI=0.D0 + LLS=LL + LLPS=LLP +! Innerste Schleife aufgespalten um if-Abfrage zu sparen + DO 18 K=I,MNAUF,2 + SCR=SCR+Z(LLP,J)*CXMN(2*LL,L) + SCI=SCI+Z(LLP,J)*CXMN(2*LL+1,L) + LL=LL+2 + LLP=LLP+2 +18 CONTINUE + LL=LLS+1 + LLP=LLPS+1 + DO 19 K=I+1,MNAUF,2 + ACR=ACR+Z(LLP,J)*CXMN(2*LL,L) + ACI=ACI +Z(LLP,J)*CXMN(2*LL+1,L) + LL=LL+2 + LLP=LLP+2 +19 CONTINUE + LL=LLS+MNAUF-I+1 + LLP=LLPS+MNAUF-I+3 + CXM(2*I)=SCR+ACR + CXM(2*I+1)=SCI+ACI + CXMA(2*I)=SCR-ACR + CXMA(2*I+1)=SCI-ACI +17 CONTINUE + + CALL RFOURTR(CXM,WSAVE,IFAX,MNAUF,MAUF,1) + DO 26 I=0,MAXL-1 + IF (MANF+I .LE. MAUF) THEN + FELD(I+1,J,L)=CXM(MANF+I-1) + ELSE + FELD(I+1,J,L)=CXM(MANF-MAUF+I-1) + END IF +26 CONTINUE + CALL RFOURTR(CXMA,WSAVE,IFAX,MNAUF,MAUF,1) + DO 36 I=0,MAXL-1 + IF (MANF+I .LE. MAUF) THEN + FELD(I+1,MAXB+1-J,L)=CXMA(MANF+I-1) + ELSE + FELD(I+1,MAXB+1-J,L)=CXMA(MANF-MAUF+I-1) + END IF +36 CONTINUE +16 CONTINUE + + END SUBROUTINE PHSYMCUT + + SUBROUTINE PHGPNS(CXMN,FELD,Z,WSAVE,IFAX,J,MNAUF,MAUF,MANF,MAXL,MAXB,MLEVEL) + + IMPLICIT NONE + + INTEGER,INTENT(IN) :: MNAUF,MAUF,MANF,J,MAXL,MAXB,MLEVEL + + REAL :: CXM(0:MAXAUF-1) + REAL,INTENT(IN) :: Z(0:((MNAUF+3)*(MNAUF+4))/2,MAXB) + REAL,INTENT(IN) :: CXMN(0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) + REAL,INTENT(IN) :: WSAVE(4*MAUF+15) + REAL :: FELD(MAXL,MAXB,MLEVEL) + + INTEGER :: IFAX(10) + INTEGER I,L + + DO L=1,MLEVEL + CALL LEGTR(CXMN(:,L),CXM,Z(:,J),MNAUF,MAUF) + CALL RFOURTR(CXM,WSAVE,IFAX,MNAUF,MAUF,1) + + DO I=0,MAXL-1 + IF (MANF+I .LE. MAUF) THEN + FELD(I+1,J,L)=CXM(MANF+I-1) + ELSE + FELD(I+1,J,L)=CXM(MANF-MAUF+I-1) + END IF + END DO + END DO + END SUBROUTINE PHGPNS + + SUBROUTINE LEGTR(CXMN,CXM,Z,MNAUF,MAUF) + +!! DIESE ROUTINE BERECHNET DIE FOURIERKOEFFIZIENTEN CXM + + + IMPLICIT NONE + + INTEGER MNAUF,MAUF,LL,LLP,I,J + REAL CXM(0:MAXAUF-1) + REAL CXMN(0:(MNAUF+1)*(MNAUF+2)-1) + REAL Z(0:((MNAUF+3)*(MNAUF+4))/2) + REAL CI,CR + + LL=0 + LLP=0 + DO 1 I=0,MNAUF + CR=0.D0 + CI=0.D0 + DO 2 J=I,MNAUF + CR=CR+Z(LLP)*CXMN(2*LL) + CI=CI+Z(LLP)*CXMN(2*LL+1) + LL=LL+1 + LLP=LLP+1 +2 CONTINUE + LLP=LLP+2 + CXM(2*I)=CR + CXM(2*I+1)=CI +1 CONTINUE + RETURN + + END SUBROUTINE LEGTR + + SUBROUTINE RFOURTR(CXM,TRIGS,IFAX,MNAUF,MAXL,ISIGN) + +!! BERECHNET DIE FOURIERSUMME MIT EINEM FFT-ALGORITHMUS + + IMPLICIT REAL (A-H,O-Z) + + DIMENSION CXM(0:MAXAUF-1) + REAL :: WSAVE(2*MAXL),TRIGS(2*MAXL) + INTEGER IFAX(10) + + DO I=MNAUF+1,MAXL-1 + CXM(2*I)=0.0 + CXM(2*I+1)=0.0 + END DO + + CALL FFT99(CXM,WSAVE,TRIGS,IFAX,1,1,MAXL,1,1) + + DO I=0,MAXL-1 + CXM(I)=CXM(I+1) + END DO + + RETURN + + END SUBROUTINE RFOURTR + + SUBROUTINE GAULEG(X1,X2,X,W,N) + +!! BERECHNET DIE GAUSS+SCHEN BREITEN + + IMPLICIT REAL (A-H,O-Z) + + DIMENSION X(N),W(N) + PARAMETER (EPS=3.D-14) + + M=(N+1)/2 + XM=0.5D0*(X2+X1) + XL=0.5D0*(X2-X1) + DO 12 I=1,M + Z=DCOS(3.141592654D0*(I-.25D0)/(N+.5D0)) +1 CONTINUE + P1=1.D0 + P2=0.D0 + DO 11 J=1,N + P3=P2 + P2=P1 + P1=((2.D0*J-1.D0)*Z*P2-(J-1.D0)*P3)/J +11 CONTINUE + PP=N*(Z*P1-P2)/(Z*Z-1.D0) + Z1=Z + Z=Z1-P1/PP + IF (ABS(Z-Z1) .GT. EPS)GO TO 1 + X(I)=XM-XL*Z + X(N+1-I)=XM+XL*Z + W(I)=2.D0*XL/((1.D0-Z*Z)*PP*PP) + W(N+1-I)=W(I) +12 CONTINUE + + RETURN + + END SUBROUTINE GAULEG + + + SUBROUTINE PLGNFA(LL,X,Z) + +!! PLGNDN BERECHNET ALLE NORMIERTEN ASSOZIIERTEN +!! LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X) +!! UND SCHREIBT SIE IN DAS FELD Z +! Die Polynome sind wie im ECMWF indiziert, d.h. +! P00,P10,P11,P20,P21,P22,... +! Ansonsten ist die Routine analog zu PLGNDN +! X IST DER COSINUS DES ZENITWINKELS ODER +! DER SINUS DER GEOGRAFISCHEN BREITE + + IMPLICIT REAL (A-H,O-Z) + + DIMENSION Z(0:((LL+3)*(LL+4))/2) + + L=LL+2 + I=1 + Z(0)=1.D0 + FACT=1.D0 + POT=1.D0 + SOMX2=DSQRT(1.D0-X*X) + DO 14 J=0,L + DJ=DBLE(J) + IF (J .GT. 0) THEN + FACT=FACT*(2.D0*DJ-1.D0)/(2.D0*DJ) + POT=POT*SOMX2 + Z(I)=DSQRT((2.D0*DJ+1.D0)*FACT)*POT + I=I+1 + END IF + IF (J .LT. L) THEN + Z(I)=X*DSQRT((4.D0*DJ*DJ+8.D0*DJ+3.D0)/(2.D0*DJ+1.D0))*Z(I-1) + I=I+1 + END IF + DK=DJ+2.D0 + DO 14 K=J+2,L + DDK=(DK*DK-DJ*DJ) + Z(I)=X*DSQRT((4.D0*DK*DK-1.D0)/DDK)*Z(I-1)- & + DSQRT(((2.D0*DK+1.D0)*(DK-DJ-1.D0)*(DK+DJ-1.D0))/ & + ((2.D0*DK-3.D0)*DDK))*Z(I-2) + DK=DK+1.D0 + I=I+1 +14 CONTINUE + + RETURN + + END SUBROUTINE PLGNFA + + SUBROUTINE DPLGND(MNAUF,Z,DZ) + +!! DPLGND BERECHNET DIE ABLEITUNG DER NORMIERTEN ASSOZIIERTEN +!! LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X) +!! UND SCHREIBT SIE IN DAS FELD DZ +! DIE REIHENFOLGE IST +! P00(X),P01(X),P11(X),P02(X),P12(X),P22(X),..PLL(X) + + IMPLICIT REAL (A-H,O-Z) + + DIMENSION Z(0:((MNAUF+3)*(MNAUF+4))/2) + DIMENSION DZ(0:((MNAUF+2)*(MNAUF+3))/2) + + IF (Z(0) .NE. 1.D0) THEN + WRITE(*,*) 'DPLGND: Z(0) must be 1.0' + STOP + END IF + + LLP=0 + LLH=0 + DO 1 I=0,MNAUF+1 + DO 2 J=I,MNAUF+1 + IF (I .EQ. J) THEN + WURZELA=DSQRT(DBLE((J+1)*(J+1)-I*I)/DBLE(4*(J+1)*(J+1)-1)) + DZ(LLH)=DBLE(J)*WURZELA*Z(LLP+1) + ELSE + WURZELB=DSQRT(DBLE((J+1)*(J+1)-I*I)/DBLE(4*(J+1)*(J+1)-1)) + DZ(LLH)=DBLE(J)*WURZELB*Z(LLP+1)-DBLE(J+1)*WURZELA*Z(LLP-1) + WURZELA=WURZELB + END IF + LLH=LLH+1 + LLP=LLP+1 +2 CONTINUE + LLP=LLP+1 +1 CONTINUE + + RETURN + + END SUBROUTINE DPLGND + + + SUBROUTINE SPFILTER(FELDMN,MM,MMAX) + +!! Spectral Filter of Sardeshmukh and Hoskins (1984, MWR) +! MM=Spectral truncation of field +! MMAX= Spectral truncation of filter + + IMPLICIT NONE + + INTEGER MM,MMAX,I,J,K,L + REAL FELDMN(0:(MM+1)*(MM+2)-1) + REAL KMAX,SMAX,FAK + + SMAX=0.1 + KMAX=-ALOG(SMAX) + KMAX=KMAX/(float(MMAX)*float(MMAX+1))**2 +! WRITE(*,*)'alogsmax',alog(smax),'KMAX:',KMAX + L=0 + DO I=0,MM + DO J=I,MM +! WRITE(*,*) I,J,FELD(K),FELD(K)*EXP(-KMAX*(J*(J+1))**2) + IF(J .LE. MMAX) THEN +! FAK=EXP(-KMAX*(J*(J+1))**2) + FAK=1.0 + FELDMN(2*L)=FELDMN(2*L)*FAK + FELDMN(2*L+1)=FELDMN(2*L+1)*FAK + ELSE + FELDMN(2*L)=0. + FELDMN(2*L+1)=0. + END IF + L=L+1 + END DO + END DO + + END SUBROUTINE SPFILTER + +END MODULE PHTOGR diff --git a/Documentation/FORD/V6/Doc/src/posnam.f90 b/Documentation/FORD/V6/Doc/src/posnam.f90 new file mode 100644 index 0000000000000000000000000000000000000000..614bf7f843c6be4c6ae599d8e14a0b5d630174cd --- /dev/null +++ b/Documentation/FORD/V6/Doc/src/posnam.f90 @@ -0,0 +1,25 @@ + SUBROUTINE POSNAM(KULNAM,CDNAML) + + !! position in namelist file. + ! author: Mats Hamrud, ECMWF + + INTEGER, INTENT(IN) :: KULNAM + CHARACTER*(*), INTENT(IN) :: CDNAML + CHARACTER*120 CLINE + CHARACTER*1 CLTEST + + REWIND(KULNAM) + ILEN = LEN(CDNAML) +102 CONTINUE + CLINE = ' ' + READ(KULNAM,'(A)') CLINE + IND1 = INDEX(CLINE,'&'//CDNAML) + IF (IND1 .EQ. 0) GO TO 102 + CLTEST = CLINE(IND1+ILEN+1:IND1+ILEN+1) + IF (LGE(CLTEST,'0') .AND. LLE(CLTEST,'9') .OR. & + LGE(CLTEST,'A') .AND. LLE(CLTEST,'Z')) GOTO 102 + BACKSPACE(KULNAM) + + RETURN + + END SUBROUTINE POSNAM diff --git a/Documentation/FORD/V6/Doc/src/preconvert_new.f90 b/Documentation/FORD/V6/Doc/src/preconvert_new.f90 new file mode 100644 index 0000000000000000000000000000000000000000..3a64e1a7b9dda5c64e035cefaa00178e2327af0c --- /dev/null +++ b/Documentation/FORD/V6/Doc/src/preconvert_new.f90 @@ -0,0 +1,798 @@ +PROGRAM PRECONVERT + +!! Prepare input data for FLEXPART, esp. vertical velocity as +!! etadot or etadot * dp/deta + +!*---------------------------------------------------------------- +! author: L. Haimberger +! date: 03/2010 +! version: V4.0 +! +!## Program PRECONVERT +! +! **Prepares input data for POP model meteorological preprocessor** +! +!----------------------------------------------------------------- +! +! Calculation of etapoint on a regular \(\lambda-\phi\) grid and writing +! `U,V,ETAPOINT,T,PS,Q,SD,MSL,TCC,10U, 10V, 2T,2D,LSP,CP,SSHF,SSR, +! EWSS,NSSS` +! to an output file (input and output in GRIB 1 or 2 format). +! etapoint is defined as the total time derivative of +! ECMWF vertical coordinate eta multiplied by the derivative +! of pressure with respect to eta: +! \[\frac{\mathrm{d}\eta}{\mathrm{d}t}\frac{\partial p}{\partial \eta}\] +! +!### Version history and authors: +! - 04/1994: Leopold Haimberger, Gerhard Wotawa +! +! - 2003-05-11: Alexander Beck +! +! - 12/2006: L. Haimberger V2.0, +! handle arbitrary regular grids and T799 resolution data +! +! - 03/2010: L. Haimberger V4.0, +! handle GRIB edition 2 fields and T1279 resolution data +! - 04-06/2019: Petra Seibert, +! beautify code and add FORD documentation +! +!----------------------------------------------------------------- +! # +!## Input required: +! +! UNIT FILE PARAMETER(S) DATA REPRESENTATION +! +! 11 fort.11 T,U,V regular lambda phi grid +! 12 fort.12 D regular lambda phi grid +! 13 fort.13 LNSP spherical harmonics +! 14 fort.14 SD,MSL,TCC,10U, +! 10V,2T,2D regular lambda phi grid +! 16 fort.16 LSP,CP,SSHF, +! SSR,EWSS,NSSS regular lambda phi grid +! 17 fort.17 Q regular lambda phi grid +! +!------------------------------------------------------------------ +! +!### Output produced: +! +! UNIT FILE PARAMETER(S) DATA REPRESENTATION +! +! 15 fort.15 `U,V,ETA,T,PS, +! `Q,SD,MSL,TCC,` +! `10U,10V,2T,2D,` regular lambda phi grid +! `LSP,CP,SSHF,` +! `SSR,EWSS,NSSS` +! +!------------------------------------------------------------------ + + USE PHTOGR + USE GRTOPH + USE FTRAFO + USE RWGRIB2 + USE GRIB_API + + IMPLICIT NONE + + REAL, ALLOCATABLE, DIMENSION (:,:) :: LNPS + REAL, ALLOCATABLE, DIMENSION (:,:) :: Z + REAL, ALLOCATABLE, DIMENSION (:,:,:) :: T, UV , UV2 + REAL, ALLOCATABLE, DIMENSION (:,:,:) :: QA,OM,OMR + REAL, ALLOCATABLE, DIMENSION (:,:,:) :: DIV, ETA,ETAR + REAL, ALLOCATABLE, DIMENSION (:,:) :: DPSDL, DPSDM + REAL, ALLOCATABLE, DIMENSION (:,:,:) :: PS,DPSDT + REAL, ALLOCATABLE, DIMENSION (:,:,:) :: SURF,FLUX,OROLSM + REAL, ALLOCATABLE, DIMENSION (:) :: WSAVE,H,SINL,COSL,WSAVE2 + REAL, ALLOCATABLE, DIMENSION (:) :: BREITE, GBREITE,AK, BK,pv + +! Arrays for Gaussian grid calculations + REAL :: X1,X2,RMS,MW,SIG,LAM + REAL,ALLOCATABLE :: CUA(:,:,:),CVA(:,:,:) + + REAL, ALLOCATABLE, DIMENSION (:,:) :: P,PP,P2 + REAL, ALLOCATABLE, DIMENSION (:,:) :: XMN,HILFUV + REAL, ALLOCATABLE, DIMENSION (:) :: LNPMN,LNPMN2,LNPMN3 + REAL, ALLOCATABLE, DIMENSION (:) :: WEIGHT + REAL, ALLOCATABLE, DIMENSION (:,:) :: UGVG + REAL, ALLOCATABLE, DIMENSION (:,:) :: DG, ETAG + REAL, ALLOCATABLE, DIMENSION (:,:) :: GWSAVE + REAL, ALLOCATABLE, DIMENSION (:) :: PSG,HILF + +! end arrays for Gaussian grid calculations + + INTEGER, ALLOCATABLE, DIMENSION (:) :: MLAT,MPSURF,MPFLUX,MPORO,MPAR + INTEGER, ALLOCATABLE :: GIFAX(:,:) + + REAL PI,COSB,DAK,DBK,P00 + REAL URLAR8,JMIN1,LLLAR8,MAXBMIN1,PIR8,DCOSB + + INTEGER I,J,K,L,IERR,M,LTEST,MK,NGI,NGJ + INTEGER MFLUX,MSURF,MORO + INTEGER LUNIT,LUNIT2 + + INTEGER MAXL, MAXB, MLEVEL, LEVOUT,LEVMIN,LEVMAX + INTEGER MOMEGA,MOMEGADIFF,MGAUSS,MSMOOTH, MNAUF,META,METADIFF + INTEGER MDPDETA,METAPAR + REAL RLO0, RLO1, RLA0, RLA1 + CHARACTER*300 MLEVELIST + + INTEGER MAUF, MANF,IFAX(10) + + INTEGER IGRIB(1),iret,ogrib + + CHARACTER*80 FILENAME + + NAMELIST /NAMGEN/ & + MAXL, MAXB, & + MLEVEL,MLEVELIST,MNAUF,METAPAR, & + RLO0, RLO1, RLA0, RLA1, & + MOMEGA,MOMEGADIFF,MGAUSS,MSMOOTH,META,METADIFF,& + MDPDETA + + LTEST=1 + + CALL POSNAM (4,'NAMGEN') + READ (4,NAMGEN) + + MAUF=INT(360.*(REAL(MAXL)-1.)/(RLO1-RLO0)+0.0001) +! PRINT*, MAUF + + MANF=INT(REAL(MAUF)/360.*(360.+RLO0)+1.0001) + IF (MANF .gt. MAUF) MANF=MANF-MAUF + + +!------------------------------------------------------------------ +!! ALLOCATE VARIABLES +!------------------------------------------------------------------ + + ALLOCATE (LNPS(0:(MNAUF+1)*(MNAUF+2)-1,1)) + ALLOCATE (H(0:(MNAUF+2)*(MNAUF+3)/2)) + ALLOCATE (OM(MAXL, MAXB, MLEVEL)) + ALLOCATE (ETA(MAXL,MAXB,MLEVEL)) + ALLOCATE (PS(MAXL, MAXB,1),DPSDT(MAXL, MAXB,1)) + ALLOCATE (WSAVE(4*MAUF+15),WSAVE2(4*MAUF+15)) + ALLOCATE (BREITE(MAXB),AK(MLEVEL+1),BK(MLEVEL+1),PV(2*MLEVEL+2)) + ALLOCATE (MPAR(2)) + ALLOCATE (COSL(MAXL),SINL(MAXL)) + ALLOCATE (CUA(2,4,MLEVEL),CVA(2,4,MLEVEL)) + +!------------------------------------------------------------------ +! GAUSS STUFF +!------------------------------------------------------------------ + + IF (MGAUSS .EQ. 1) THEN + LUNIT=0 + FILENAME='fort.18' + + CALL GRIB_OPEN_FILE(LUNIT, TRIM(FILENAME),'R') + + CALL GRIB_NEW_FROM_FILE(LUNIT,IGRIB(1), IRET) + +! we can close the file + CALL GRIB_CLOSE_FILE(LUNIT) +! call grib_get(igrib(1),'gridType', j) + + NGJ=MNAUF+1 + + ALLOCATE (GWSAVE(8*NGJ+15,NGJ/2)) + ALLOCATE(GIFAX(10,NGJ)) + ALLOCATE (GBREITE(NGJ),WEIGHT(NGJ)) + ALLOCATE (MLAT(NGJ)) + ALLOCATE (P(0:((MNAUF+3)*(MNAUF+4))/2,NGJ/2)) + ALLOCATE (PP(NGJ/2,0:((MNAUF+3)*(MNAUF+4))/2)) + ALLOCATE (Z(0:((MNAUF+3)*(MNAUF+4))/2,MAXB)) + + CALL GRIB_GET(IGRIB(1),'numberOfPointsAlongAMeridian', NGJ) + + get as a integer + call grib_get(igrib(1),'pl', MLAT) + + NGI=SUM(MLAT) + + CALL GRIB_GET(IGRIB(1),'numberOfVerticalCoordinateValues',MK) + + IF (MK/2-1 .NE. MLEVEL) THEN + WRITE(*,*) 'FATAL: Number of model levels',mk, & + ' does not agree with', MLEVEL,' in namelist' + STOP + END IF + call grib_get(igrib(1),'pv',pv) + AK=PV(1:1+MLEVEL) + BK=PV(2+MLEVEL:2*MLEVEL+2) + + ALLOCATE (LNPMN(0:(MNAUF+1)*(MNAUF+2)-1)) + ALLOCATE (LNPMN2(0:(MNAUF+1)*(MNAUF+2)-1)) + ALLOCATE (UGVG(NGI, 2*MLEVEL),HILFUV(2*MAXL,2)) + ALLOCATE (DPSDL(NGI,1),DPSDM(NGI,1)) + ALLOCATE (PSG(NGI),HILF(NGI)) + ALLOCATE (UV(MAXL, MAXB, 2*MLEVEL)) +! ALLOCATE (UV2(MAXL, MAXB, 2*MLEVEL)) + ALLOCATE (XMN(0:(MNAUF+1)*(MNAUF+2)-1, 2*MLEVEL)) + ALLOCATE (DG(NGI,MLEVEL),ETAG(NGI,MLEVEL)) + +!! Initialisieren Legendretransformation auf das LaT/LON Gitter + + PI=ACOS(-1.D0) + +!$OMP PARALLEL DO + DO 20 J=1,MAXB + BREITE(J)=SIN((RLA1-(J-1.D0)*(RLA1-RLA0)/(MAXB-1))* PI/180.D0) + CALL PLGNFA(MNAUF,BREITE(J),Z(0,J)) +20 CONTINUE +!$OMP END PARALLEL DO + +! Avoid possible Pole problem +! IF (RLA0 .EQ. -90.0) BREITE(MAXB)=sin(-89.99*PI/180.d0) +! IF (RLA1 .EQ. 90.0) BREITE(1)=sin(89.99*PI/180.d0) + +!* Initialisation of fields for FFT and Legendre transformation +! to Gaussian grid and back to phase space + X1=-1.D0 + X2=1.D0 + CALL GAULEG(X1,X2,GBREITE,WEIGHT,NGJ) + +!$OMP PARALLEL DO PRIVATE(M) + DO J=1,NGJ/2 + CALL PLGNFA(MNAUF,GBREITE(J),P(:,J)) + DO M=0,(MNAUF+3)*(MNAUF+4)/2 + PP(J,M)=P(M,J) + END DO + END DO +!$OMP END PARALLEL DO + +! MPAR(1)=152 + FILENAME='fort.12' + CALL READSPECTRAL(FILENAME,LNPMN,MNAUF,1,MLEVEL,(/152/),AK,BK) +! goto 111 + CALL SET99(WSAVE,IFAX,mauf) + CALL PHGCUT(LNPMN,PS,WSAVE,IFAX,Z, & + MNAUF,MNAUF,MAUF,MANF,MAXL,MAXB,1) + CALL STATIS(MAXL,MAXB,1,EXP(PS),RMS,MW,SIG) + WRITE(*,'(A12,3F12.4)') 'STATISTICS: ',RMS,MW,SIG + + DO J=1,NGJ/2 + CALL SET99(GWSAVE(1,J),GIFAX(1,J),MLAT(J)) + END DO + CALL PHGR213(LNPMN,HILF,GWSAVE,GIFAX,P,MLAT,MNAUF,NGI,NGJ,1) + PSG=HILF + CALL GRPH213(LNPMN2,PSG,GWSAVE,GIFAX,PP,WEIGHT,MLAT, & + MNAUF,NGI,NGJ,1) + CALL PHGR213(LNPMN2,HILF,GWSAVE,GIFAX,P,MLAT,MNAUF,NGI,NGJ,1) + + + HILF=exp(PSG)-exp(HILF) + + CALL STATIS(NGI,1,1,HILF,RMS,MW,SIG) + WRITE(*,'(A12,3F11.4)') 'STATISTICS: ',RMS,MW,SIG + + PSG=EXP(PSG) + HILF=PSG + CALL STATIS(NGI,1,1,HILF,RMS,MW,SIG) + WRITE(*,'(A12,3F11.4)') 'STATISTICS: ',RMS,MW,SIG + +111 FILENAME='fort.10' + CALL READSPECTRAL(FILENAME,XMN,MNAUF,2*MLEVEL,MLEVEL,(/131,132/),AK,BK) + +!! Transformieren des Windes auf das Gaussgitter + CALL PHGR213(XMN,UGVG,GWSAVE,GIFAX,P,MLAT,MNAUF,NGI,NGJ,2*MLEVEL) + DO K=1,MLEVEL +! North Pole + CALL JSPPOLE(XMN(:,K),1,MNAUF,.TRUE.,CUA(:,:,K)) + CALL JSPPOLE(XMN(:,MLEVEL+K),1,MNAUF,.TRUE.,CVA(:,:,K)) +! South Pole + CALL JSPPOLE(XMN(:,K),-1,MNAUF,.TRUE.,CUA(:,3:4,K)) + CALL JSPPOLE(XMN(:,MLEVEL+K),-1,MNAUF,.TRUE.,CVA(:,3:4,K)) + END DO + + DO K=1,2*MLEVEL + IF (MSMOOTH .ne. 0) CALL SPFILTER(XMN(:,K),MNAUF,MSMOOTH) + END DO + CALL PHGCUT(XMN,UV,WSAVE,IFAX,Z,MNAUF,MNAUF,MAUF,MANF,MAXL,MAXB,2*MLEVEL) + + +112 FILENAME='fort.13' + CALL READSPECTRAL(FILENAME,XMN,MNAUF,MLEVEL,MLEVEL,(/155/),AK,BK) +!! Transformieren der horizontalen Divergenz auf das Gaussgitter + CALL PHGR213(XMN,DG,GWSAVE,GIFAX,P,MLAT,MNAUF,NGI,NGJ,MLEVEL) + +!! Berechnung des Gradienten des Logarithmus des Bodendrucks auf dem Gaussgitter + CALL PHGRAD(LNPMN,DPSDL,DPSDM,GWSAVE,GIFAX,P,H,MLAT,MNAUF,NGI,NGJ,1) + +!! Berechnung der Vertikalgeschwindigkeit auf dem Gaussgitter + CALL CONTGL(HILF,DPSDL,DPSDM,DG,UGVG(:,1),UGVG(:,MLEVEL+1), & + GBREITE,ETAG,MLAT,AK,BK,NGI,NGJ,MLEVEL) + + CALL GRPH213(XMN,ETAG,GWSAVE,GIFAX,PP,WEIGHT,MLAT,MNAUF,NGI,NGJ,MLEVEL) + DO K=1,MLEVEL + IF (MSMOOTH .ne. 0) CALL SPFILTER(XMN(:,K),MNAUF,MSMOOTH) + END DO + CALL PHGCUT(XMN,ETA,WSAVE,IFAX,Z,MNAUF,MNAUF,MAUF,MANF,MAXL,MAXB,MLEVEL) + CALL GRPH213(XMN,HILF,GWSAVE,GIFAX,PP,WEIGHT,MLAT, MNAUF,NGI,NGJ,1) + + IF (MSMOOTH .ne. 0) CALL SPFILTER(XMN(:,1),MNAUF,MSMOOTH) + CALL PHGCUT(XMN,DPSDT,WSAVE,IFAX,Z,MNAUF,MNAUF,MAUF,MANF,MAXL,MAXB,1) +! GOTO 114 + + CALL STATIS(MAXL,MAXB,1,DPSDT,RMS,MW,SIG) + WRITE(*,'(A12,3F11.4)') 'STATISTICS DPSDT: ',RMS,MW,SIG + + IF (MOMEGADIFF .ne. 0) THEN +!! Berechnung von Omega auf dem Gaussgitter + + CALL OMEGA(PSG,DPSDL,DPSDM,DG,UGVG(:,1),UGVG(:,MLEVEL+1), & + GBREITE,ETAG,MLAT,AK,BK,NGI ,NGJ,MLEVEL) + CALL GRPH213(XMN,ETAG,GWSAVE,GIFAX,PP,WEIGHT,MLAT,MNAUF,NGI,NGJ,MLEVEL) + DO K=1,MLEVEL + IF (MSMOOTH .ne. 0) CALL SPFILTER(XMN(:,K),MNAUF,MSMOOTH) + END DO + CALL PHGCUT(XMN,OM,WSAVE,IFAX,Z,MNAUF,MNAUF,MAUF,MANF,MAXL,MAXB,MLEVEL) + + END IF ! MOMEGA + + CALL GRPH213(XMN,PSG,GWSAVE,GIFAX,PP,WEIGHT,MLAT,MNAUF,NGI,NGJ,1) + CALL PHGCUT(XMN,PS,WSAVE,IFAX,Z,MNAUF,MNAUF,MAUF,MANF,MAXL,MAXB,1) + + CALL STATIS(MAXL,MAXB,1,PS,RMS,MW,SIG) + WRITE(*,'(A12,3F11.4)') 'STATISTICS: ',RMS,MW,SIG + +114 DEALLOCATE(HILF,PSG,DPSDL,DPSDM,ETAG,DG,LNPMN) + +! ALLOCATE (UV(MAXL, MAXB, 2*MLEVEL)) +! CALL GRPH213(XMN,UGVG,GWSAVE,GIFAX,PP,WEIGHT,MLAT, +! *MNAUF,NGI,NGJ,2*MLEVEL) +! DO K=1,2*MLEVEL +! IF (MSMOOTH .ne. 0) CALL SPFILTER(XMN(:,K),MNAUF,MSMOOTH) +! END DO +! CALL PHGCUT(XMN,UV,WSAVE,IFAX,Z, +! *MNAUF,MNAUF,MAUF,MANF,MAXL,MAXB,2*MLEVEL) + DEALLOCATE(PP,P,UGVG,MLAT,GBREITE,WEIGHT,GWSAVE,XMN) +! CALL ETAGAUSS(Z,WSAVE +! *,BREITE,UV,ETA,OM,PS, +! *MAUF,MAXB,MAXL,MANF,MNAUF,MLEVEL,MSMOOTH) + + ELSE + +!----------------------------------------------------------------- +! READING OF PREPARED METEOROLOGICAL FIELDS +! +! THE FOLLOWING FIELDS ARE EXPECTED: +! +! UNIT 11: T,U,V (REGULAR GRID) +! UNIT 17: Q (REGULAR GRID) +! UNIT 13: D (REGULAR GRID) +! UNIT 12: LNSP (SPHERICAL HARMONICS) +! UNIT 14: SURFACE DATA (REGULAR GRID) +! UNIT 16: FLUX DATA (REGULAR GRID) +!------------------------------------------------------------------ + + ALLOCATE (MLAT(MAXB)) + MLAT=MAXL + ALLOCATE (Z(0:((MNAUF+3)*(MNAUF+4))/2,1)) + ALLOCATE (DPSDL(MAXL,MAXB),DPSDM(MAXL,MAXB)) + ALLOCATE (UV(MAXL, MAXB, 2*MLEVEL),DIV(MAXL,MAXB,MLEVEL)) + +!------------------------------------------------------------------ +!! READING OF SURFACE PRESSURE +!------------------------------------------------------------------ + + FILENAME='fort.12' + CALL READSPECTRAL(FILENAME,LNPS,MNAUF,1,MLEVEL,(/152/),AK,BK) + +!------------------------------------------------------------------ +!! READING OF U,V +!------------------------------------------------------------------ + +! OPENING OF UNBLOCKED GRIB FILE + + FILENAME='fort.10' + CALL READLATLON(FILENAME,UV,MAXL,MAXB,2*MLEVEL,(/131,132/)) + + PI=ACOS(-1.D0) + DO J=1,MAXB + BREITE(J)=SIN((RLA1-(J-1.D0)*(RLA1-RLA0)/(MAXB-1))*PI/180.D0) + END DO + +! Avoid possible Pole problem +! IF (RLA0 .EQ. -90.0) BREITE(MAXB)=sin(-89.99*PI/180.d0) +! IF (RLA1 .EQ. 90.0) BREITE(1)=sin(89.99*PI/180.d0) + + DO K=1,2*MLEVEL + DO J=1,MAXB + COSB=SQRT(1.0-(BREITE(J))*(BREITE(J))) + IF (RLA0 .EQ. -90.0 .AND. J .EQ. MAXB .OR. & + RLA1 .EQ. 90.0 .AND. J .EQ. 1) THEN + UV(:,J,K)=UV(:,J,K)/1.D6 + ELSE + UV(:,J,K)=UV(:,J,K)*COSB + END IF + END DO + END DO + +!------------------------------------------------------------------ +!! READING OF LNSP on grid +!------------------------------------------------------------------ + +! For debugging only +! FILENAME='LNSPG_G.20060330.600' +! INQUIRE(FILE=FILENAME,EXIST=EX) +! CALL READLATLON(FILENAME,QA, +! *MAXL,MAXB,1,1,(/152/)) + +!------------------------------------------------------------------ +!! READING OF DIVERGENCE +!------------------------------------------------------------------ + + IF (META .EQ. 0 .OR. METADIFF .EQ. 1) THEN + FILENAME='fort.13' + CALL READLATLON(FILENAME,DIV,MAXL,MAXB,MLEVEL,(/155/)) + END IF + + +!------------------------------------------------------------------ +! +! Calculation of etapoint --> total time derivative of +! ECMWF vertical coordinate eta multiplied by the derivative +! of pressure with respect to eta: +! \[\frac{\mathrm{d}\eta}{\mathrm{d}t}\frac{\partial p}{\partial \eta}\] +!------------------------------------------------------------------ + +!* Initialisieren Legendretransformation auf das LaT/LON Gitter +!! Without Gaussian grid calculation Legendre Polynomials are calculated +!! only for one latitude to save space + + + + DO J=1,MAXB + CALL PLGNFA(MNAUF,BREITE(J),Z(0,1)) + CALL PHGCUT(LNPS,PS(:,J,1),WSAVE,IFAX,Z,MNAUF,MNAUF,MAUF,MANF,MAXL,1,1) + IF (META .EQ. 0 .OR. METADIFF .EQ. 1 ) THEN + CALL PHGRACUT(LNPS,DPSDL(:,J),DPSDM(:,J),WSAVE,IFAX,Z,H,MAUF, & + MNAUF,MAXL,1,MANF,1) + END IF + END DO + + PS=EXP(PS) + +! For debugging only + CALL STATIS(MAXL,MAXB,1,PS(:,:,1),RMS,MW,SIG) + WRITE(*,'(A12,3F11.4)') 'STATISTICS: ',RMS,MW,SIG + + IF (MOMEGADIFF .ne. 0) THEN + CALL OMEGA(PS,DPSDL,DPSDM,DIV,UV(:,:,1),UV(:,:,MLEVEL+1), & + BREITE,OM,MLAT,AK,BK,MAXL*MAXB,MAXB,MLEVEL) + END IF + + IF (META .EQ. 0 .OR. METADIFF .ne. 0) THEN + DPSDT=PS + CALL CONTGL(DPSDT,DPSDL,DPSDM,DIV,UV(:,:,1),UV(:,:,MLEVEL+1), & + BREITE,ETA,MLAT,AK,BK,MAXL*MAXB,MAXB,MLEVEL) + END IF + + END IF ! sMGAUSS + +!! CREATE FILE VERTICAL.EC NEEDED BY POP MODEL + + OPEN(21,FILE='VERTICAL.EC') + WRITE(21,'(A)') + WRITE(21,'(A)') 'VERTICAL DISCRETIZATION OF POP MODEL' + WRITE(21,'(A)') + write(21,'(i3,a)') MLEVEL,' number of layers' + WRITE(21,'(A)') + WRITE(21,'(A)') '* A(NLEV+1)' + WRITE(21,'(A)') + DO 205 I=1,MLEVEL+1 +205 WRITE(21,'(F18.12)') AK(I) + WRITE(21,'(A)') + WRITE(21,'(A)') '* B(NLEV+1)' + WRITE(21,'(A)') + DO 210 I=1,MLEVEL+1 +210 WRITE(21,'(F18.12)') BK(I) + CLOSE(21) + +!------------------------------------------------------------------ +! READING OF OMEGA +!------------------------------------------------------------------ + + IF (MOMEGA .NE. 0 ) THEN + + ALLOCATE (OMR(MAXL, MAXB, MLEVEL)) + + FILENAME='fort.19' + CALL READLATLON(FILENAME,OMR,MAXL,MAXB,MLEVEL,(/135/)) + + IF (MOMEGADIFF .NE. 0) THEN + + DO K=1,MLEVEL + CALL STATIS(MAXL,MAXB,1,ETA(:,:,K),RMS,MW,SIG) + WRITE(*,'(A12,I3,3F11.4)') ' ETA: ',K,RMS,MW,SIG + CALL STATIS(MAXL,MAXB,1,OMR(:,:,K),RMS,MW,SIG) + WRITE(*,'(A12,I3,3F11.4)') ' OMEGA: ',K,RMS,MW,SIG + CALL STATIS(MAXL,MAXB,1,OM(:,:,K)-OMR(:,:,K),RMS,MW,SIG) + WRITE(*,'(A12,I3,3F11.4)') 'OMEGA DIFF: ',K,RMS,MW,SIG + END DO + + END IF + END IF + +!------------------------------------------------------------------ +! READING OF ETA +!------------------------------------------------------------------ + + IF (META .NE. 0 ) THEN + + ALLOCATE (ETAR(MAXL, MAXB, MLEVEL)) + + P00=101325. + FILENAME='fort.21' + CALL READLATLON(FILENAME,ETAR,MAXL,MAXB,MLEVEL,(/77/)) + + IF(MDPDETA .EQ. 1) THEN + DO K=1,MLEVEL + DAK=AK(K+1)-AK(K) + DBK=BK(K+1)-BK(K) + DO J=1,MAXB + DO I=1,MAXL + ETAR(I,J,K)=2*ETAR(I,J,K)*PS(I,J,1)*(DAK/PS(I,J,1)+DBK)/ & + (DAK/P00+DBK) + IF (K .GT. 1) ETAR(I,J,K)=ETAR(I,J,K)-ETAR(I,J,K-1) + END DO + END DO + END DO + END IF + + IF (METADIFF .NE. 0 ) THEN + + DO K=1,MLEVEL + CALL STATIS(MAXL,MAXB,1,ETA(:,:,K),RMS,MW,SIG) + WRITE(*,'(A12,I3,3F11.4)') ' ETA: ',K,RMS,MW,SIG + CALL STATIS(MAXL,MAXB,1,ETAR(:,:,K),RMS,MW,SIG) + WRITE(*,'(A12,I3,3F11.4)') ' ETAR: ',K,RMS,MW,SIG + CALL STATIS(MAXL,MAXB,1,ETA(:,:,K)-ETAR(:,:,K),RMS,MW,SIG) + WRITE(*,'(A12,I3,3F11.4)') 'ETA DIFF: ',K,RMS,MW,SIG + END DO + DO K=1,MLEVEL + WRITE(*,'(I3,2F11.4)') K,ETA(1,MAXB/2,K),ETAR(1,MAXB/2,K) + END DO + ELSE + ETA=ETAR + END IF + END IF + + ALLOCATE (T(MAXL, MAXB, MLEVEL)) + ALLOCATE (QA(MAXL, MAXB, MLEVEL)) + +!------------------------------------------------------------------ +!! READING OF T +!------------------------------------------------------------------ + +! OPENING OF UNBLOCKED GRIB FILE + + FILENAME='fort.11' + CALL READLATLON(FILENAME,T,MAXL,MAXB,MLEVEL,(/130/)) + +!------------------------------------------------------------------ +!! READING OF SPECIFIC HUMIDITY +!------------------------------------------------------------------ + + FILENAME='fort.17' + CALL READLATLON(FILENAME,QA,MAXL,MAXB,MLEVEL,(/133/)) + +!------------------------------------------------------------------ +! TEST READING OF UV from MARS (debug only) +!------------------------------------------------------------------ +! FILENAME='fort.22' +! CALL READLATLON(FILENAME,UV2,MAXL,MAXB,2*MLEVEL,2,(/131,132/)) + +!------------------------------------------------------------------ +!! WRITE MODEL LEVEL DATA TO fort.15 +!------------------------------------------------------------------ + +!! Calculation of etadot in CONTGL needed scaled winds (ucosphi,vcosphi) +!! Now we are transforming back to the usual winds. + + DO K=1,MLEVEL + DO J=2,MAXB-1 + COSB=SQRT(1.0-(BREITE(J))*(BREITE(J))) + UV(:,J,K)=UV(:,J,K)/COSB + UV(:,J,MLEVEL+K)=UV(:,J,MLEVEL+K)/COSB + END DO + +! special treatment for poles, if necessary. + DO J=1,MAXB,MAXB-1 + COSB=SQRT(1.0-(BREITE(J))*(BREITE(J))) + IF (1.0-BREITE(J)*BREITE(J) .GT. 0 .OR. MGAUSS .NE. 1) THEN + IF (RLA0 .EQ. -90.0 .AND. J .EQ. MAXB .OR. & + RLA1 .EQ. 90.0 .AND. J .EQ. 1) THEN + UV(:,J,K)=UV(:,J,K)*1.D6 + UV(:,J,MLEVEL+K)=UV(:,J,MLEVEL+K)*1.D6 + ELSE + UV(:,J,K)=UV(:,J,K)/COSB + UV(:,J,MLEVEL+K)=UV(:,J,MLEVEL+K)/COSB + END IF + ELSE + HILFUV(5:MAXL,:)=0. + HILFUV(1:2,:)=0. + IF (J.EQ.MAXB) THEN +! Suedpol + HILFUV(3:4,1)=CUA(:,4,K) + HILFUV(3:4,2)=CVA(:,4,K) + ELSE +! Nordpol + HILFUV(3:4,1)=CUA(:,2,K) + HILFUV(3:4,2)=CVA(:,2,K) + END IF + CALL RFOURTR(HILFUV(:,1),WSAVE,IFAX,MAXL/2-1,MAXL,-1) + DO I=0,MAXL-1 + IF (MANF+I .LE. MAXL) THEN + UV(I+1,J,K)=HILFUV(MANF+I,1) + ELSE + UV(I+1,J,K)=HILFUV(MANF-MAXL+I,1) + END IF + END DO + CALL RFOURTR(HILFUV(:,2),WSAVE,IFAX,MAXL/2-1,MAXL,-1) + DO I=0,MAXL-1 + IF (MANF+I .LE. MAXL) THEN + UV(I+1,J,MLEVEL+K)=HILFUV(MANF+I,2) + ELSE + UV(I+1,J,MLEVEL+K)=HILFUV(MANF-MAXL+I,2) + END IF + END DO + end if + END DO + END DO + +! open output file + call grib_open_file(LUNIT,'fort.15','w') + +! we use temperature on lat/lon on model levels as template for model level data + LUNIT2=0 + CALL GRIB_OPEN_FILE(LUNIT2,'fort.11','R') + CALL GRIB_NEW_FROM_FILE(LUNIT2,IGRIB(1), IRET) + CALL GRIB_CLOSE_FILE(LUNIT2) + + + CALL WRITELATLON & + (LUNIT,IGRIB(1),OGRIB,UV(:,:,1),MAXL,MAXB,MLEVEL,MLEVELIST,1,(/131/)) + + CALL WRITELATLON & + (LUNIT,IGRIB(1),OGRIB,UV(:,:,MLEVEL+1),MAXL,MAXB,MLEVEL,MLEVELIST,1,(/132/)) + + IF (MDPDETA .ne. 1 .AND. MGAUSS .EQ. 0 .and. META .eq. 1) THEN + CALL WRITELATLON & + (LUNIT,IGRIB(1),OGRIB,ETA,MAXL,MAXB,MLEVEL,MLEVELIST,1,(/77/)) + ELSE + CALL WRITELATLON & + (LUNIT,IGRIB(1),OGRIB,ETA,MAXL,MAXB,MLEVEL,MLEVELIST,1,(/METAPAR/)) + END IF + + CALL WRITELATLON(LUNIT,IGRIB(1),OGRIB,T,MAXL,MAXB,MLEVEL,MLEVELIST,1,(/130/)) + + CALL WRITELATLON(LUNIT,IGRIB(1),OGRIB,PS,MAXL,MAXB,1,'1',1,(/134/)) + + CALL GRIB_SET(IGRIB(1),"levelType","ml") + CALL GRIB_SET(IGRIB(1),"typeOfLevel","hybrid") + CALL WRITELATLON(LUNIT,IGRIB(1),OGRIB,QA,MAXL,MAXB,MLEVEL,MLEVELIST,1,(/133/)) + + + IF (MOMEGA .EQ. 1) THEN + CALL GRIB_OPEN_FILE(LUNIT2,'fort.25','w') + CALL WRITELATLON & + (LUNIT2,IGRIB(1),OGRIB,OMR,MAXL,MAXB,MLEVEL,MLEVELIST,1,(/135/)) + + IF (MOMEGADIFF .EQ. 1) THEN + CALL WRITELATLON(LUNIT2,IGRIB(1),OGRIB,DPSDT,MAXL,MAXB,1,'1',1,(/158/)) + OM=OM-OMR + CALL WRITELATLON & + (LUNIT2,IGRIB(1),OGRIB,OM,MAXL,MAXB,MLEVEL,MLEVELIST,1,(/001/)) + CALL GRIB_CLOSE_FILE(LUNIT2) + END IF + END IF + + IF (META .EQ. 1 .AND. METADIFF .EQ. 1) THEN + CALL GRIB_OPEN_FILE(LUNIT2,'fort.26','w') + CALL WRITELATLON & + (LUNIT2,IGRIB(1),OGRIB,ETAR,MAXL,MAXB,MLEVEL,MLEVELIST,1,(/135/)) +! IF (MOMEGADIFF .EQ. 1) THEN + CALL WRITELATLON(LUNIT2,IGRIB(1),OGRIB,DPSDT,MAXL,MAXB,1,'1',1,(/158/)) + OM=ETA-ETAR + CALL WRITELATLON & + (LUNIT2,IGRIB(1),OGRIB,OM,MAXL,MAXB,MLEVEL,MLEVELIST,1,(/001/)) + CALL GRIB_CLOSE_FILE(LUNIT2) +! END IF + END IF + + CALL GRIB_CLOSE_FILE(LUNIT) + +2000 STOP 'SUCCESSFULLY FINISHED CONVERT_PRE: CONGRATULATIONS' +3000 STOP 'ROUTINE CONVERT_PRE: ERROR' +9999 stop 'ROUTINE CONVERT_PRE: ERROR' + +END + +!------------------------------------------------------------------ +INTEGER FUNCTION IA (FIELD1,NI,NJ,NK,G) + + +!------------------------------------------------------------------ +!! Calculate something that is roughly log10( maxval(field1)/g ) [PS] +!------------------------------------------------------------------ + + + IMPLICIT NONE + + INTEGER :: I,J,K + INTEGER, INTENT(IN) :: NI,NJ,NK + REAL, INTENT(IN) :: FIELD1(NI,NJ,NK) + REAL INTENT(IN) :: G + REAL :: RMIN,RMAX,XMAX,A,A1,A2 + + RMAX=FIELD1(1,1,1) + RMIN=FIELD1(1,1,1) + + DO 100 K=1,NK + DO 100 J=1,NJ + DO 100 I=1,NI + IF (FIELD1(I,J,K) .GT. RMAX) RMAX=FIELD1(I,J,K) + IF (FIELD1(I,J,K) .LT. RMIN) RMIN=FIELD1(I,J,K) +100 CONTINUE + + IF (ABS(RMIN) .GT. RMAX .OR. ABS(RMIN) .EQ. RMAX) THEN + XMAX=ABS(RMIN) + ELSE + XMAX=RMAX + END IF + + IF (XMAX .EQ. 0) THEN + IA = 0 + RETURN + END IF + + A1=LOG10( (G/10.d0)/XMAX ) + A2=LOG10( G/XMAX ) + IF (A1 .gt. A2) THEN + A=A2 + ELSE + A=A1 + END IF + + IF (A .GT. 0) IA=INT(A) + IF (A .LT. 0) IA=INT(A-1.0) + + RETURN + +END + +SUBROUTINE STATIS (NI,NJ,NK,PHI,RMS,MW,SIG) + +!------------------------------------------------------------------ +!! calculate mean, rms, stdev +!------------------------------------------------------------------ + + IMPLICIT REAL (A-H,O-Z) + + REAL PHI(NI,NJ,NK),SIG,MW,RMS,P + + N=NI*NJ*NK + + RMS=0. + MW=0. + + DO 10 I=1,NI + DO 10 J=1,NJ + DO 10 K=1,NK + P=PHI(I,J,K) + RMS=RMS+P*P + MW=MW+P +10 CONTINUE + + RMS=SQRT(RMS/N) + MW=MW/N + + IF (RMS*RMS-MW*MW .LT. 0.) THEN + SIG=0.0 + ELSE + SIG=SQRT(RMS*RMS-MW*MW) + END IF + + RETURN + +END diff --git a/Documentation/FORD/V5/Doc_original/src/rwGRIB2.f90 b/Documentation/FORD/V6/Doc/src/rwGRIB2.f90 similarity index 62% rename from Documentation/FORD/V5/Doc_original/src/rwGRIB2.f90 rename to Documentation/FORD/V6/Doc/src/rwGRIB2.f90 index 734d06ca185685df6a584d4c91fbe617eddc26b6..6a3b7afb6a745b0e00fb66832d266aa2be934c74 100644 --- a/Documentation/FORD/V5/Doc_original/src/rwGRIB2.f90 +++ b/Documentation/FORD/V6/Doc/src/rwGRIB2.f90 @@ -1,15 +1,17 @@ - MODULE RWGRIB2 + MODULE RWGRIB2 - CONTAINS + CONTAINS - SUBROUTINE READLATLON(FILENAME,FELD,MAXL,MAXB,MLEVEL,MPAR) + SUBROUTINE READLATLON(FILENAME,FELD,MAXL,MAXB,MLEVEL,MPAR) - USE GRIB_API +!! Read a field from GRIB file on lat-lon grid - IMPLICIT NONE + USE GRIB_API - integer :: ifile - integer :: iret + IMPLICIT NONE + + integer :: ifile + integer :: iret integer :: n,mk,parid,nm integer :: i,k integer,dimension(:),allocatable :: igrib @@ -67,18 +69,18 @@ call grib_get(igrib(i),'level',level) kloop: do k=1,nm - if(parid .eq. mpar(k)) then + if (parid .eq. mpar(k)) then ! l(k)=l(k)+1 feld(:,:,(k-1)*div+level)=reshape(values,(/maxl,maxb/)) ! print*,(k-1)*div+l(k),parid exit kloop - endif - enddo kloop - if(k .gt. nm .and. parid .ne. mpar(nm)) then + end if + end do kloop + if (k .gt. nm .and. parid .ne. mpar(nm)) then write(*,*) k,nm,parid,mpar(nm) write(*,*) 'ERROR readlatlon: parameter ',parid,'is not',mpar stop - endif + end if ! print*,i END DO iloop @@ -91,88 +93,88 @@ deallocate(values) deallocate(igrib) - END SUBROUTINE READLATLON - - SUBROUTINE WRITELATLON(iunit,igrib,ogrib,FELD,MAXL,MAXB,MLEVEL,& - MLEVELIST,MSTRIDE,MPAR) - - USE GRIB_API - - IMPLICIT NONE - - INTEGER IFIELD,MLEVEL,MNAUF,I,J,K,L,MSTRIDE,IERR,JOUT - INTEGER MPAR(MSTRIDE),MAXL,MAXB,LEVMIN,LEVMAX - INTEGER IUNIT,igrib,ogrib - REAL ZSEC4(MAXL*MAXB) - REAL FELD(MAXL,MAXB,MLEVEL) - CHARACTER*(*) MLEVELIST - INTEGER ILEVEL(MLEVEL),MLINDEX(MLEVEL+1),LLEN - - ! parse MLEVELIST - - LLEN=len(trim(MLEVELIST)) - if(index(MLEVELIST,'to') .ne. 0 .or. index(MLEVELIST,'TO') .ne. 0) THEN - i=index(MLEVELIST,'/') - read(MLEVELIST(1:i-1),*) LEVMIN - i=index(MLEVELIST,'/',.true.) - read(MLEVELIST(i+1:LLEN),*) LEVMAX - l=0 - do i=LEVMIN,LEVMAX - l=l+1 - ILEVEL(l)=i - enddo - else - l=1 - MLINDEX(1)=0 - do i=1,LLEN - if(MLEVELIST(i:i) .eq. '/') THEN - l=l+1 - MLINDEX(l)=i - endif - enddo - MLINDEX(l+1)=LLEN+1 - do i=1,l - read(MLEVELIST(MLINDEX(i)+1:MLINDEX(i+1)-1),*) ILEVEL(i) - enddo - endif - - DO k=1,l - call grib_set(igrib,"level",ILEVEL(k)) - DO j=1,MSTRIDE - call grib_set(igrib,"paramId",MPAR(j)) -! if(MPAR(j) .eq. 87) then + END SUBROUTINE READLATLON + + SUBROUTINE WRITELATLON(iunit,igrib,ogrib,FELD,MAXL,MAXB,MLEVEL,& + MLEVELIST,MSTRIDE,MPAR) + +!! write a field on lat-lon grid to GRIB file + + USE GRIB_API + + IMPLICIT NONE + + INTEGER IFIELD,MLEVEL,MNAUF,I,J,K,L,MSTRIDE,IERR,JOUT + INTEGER MPAR(MSTRIDE),MAXL,MAXB,LEVMIN,LEVMAX + INTEGER IUNIT,igrib,ogrib + REAL ZSEC4(MAXL*MAXB) + REAL FELD(MAXL,MAXB,MLEVEL) + CHARACTER*(*) MLEVELIST + INTEGER ILEVEL(MLEVEL),MLINDEX(MLEVEL+1),LLEN + + ! parse MLEVELIST + + LLEN=len(trim(MLEVELIST)) + if (index(MLEVELIST,'to') .ne. 0 .or. index(MLEVELIST,'TO') .ne. 0) THEN + i=index(MLEVELIST,'/') + read(MLEVELIST(1:i-1),*) LEVMIN + i=index(MLEVELIST,'/',.true.) + read(MLEVELIST(i+1:LLEN),*) LEVMAX + l=0 + do i=LEVMIN,LEVMAX + l=l+1 + ILEVEL(l)=i + end do + else + l=1 + MLINDEX(1)=0 + do i=1,LLEN + if (MLEVELIST(i:i) .eq. '/') THEN + l=l+1 + MLINDEX(l)=i + end if + end do + MLINDEX(l+1)=LLEN+1 + do i=1,l + read(MLEVELIST(MLINDEX(i)+1:MLINDEX(i+1)-1),*) ILEVEL(i) + end do + end if + + DO k=1,l + call grib_set(igrib,"level",ILEVEL(k)) + DO j=1,MSTRIDE + call grib_set(igrib,"paramId",MPAR(j)) +! if (MPAR(j) .eq. 87) then ! call grib_set(igrib,"shortName","etadot") ! call grib_set(igrib,"units","Pa,s**-1") -! endif -! if(MPAR(j) .eq. 77) then +! end if +! if (MPAR(j) .eq. 77) then ! call grib_set(igrib,"shortName","etadot") ! call grib_set(igrib,"units","s**-1") -! endif - if(l .ne. mlevel) then - zsec4(1:maxl*maxb)=RESHAPE(FELD(:,:,ILEVEL(k)),(/maxl*maxb/)) - else - zsec4(1:maxl*maxb)=RESHAPE(FELD(:,:,k),(/maxl*maxb/)) - endif - call grib_set(igrib,"values",zsec4) - - call grib_write(igrib,iunit) - - ENDDO - ENDDO +! end if + if (l .ne. mlevel) then + zsec4(1:maxl*maxb)=RESHAPE(FELD(:,:,ILEVEL(k)),(/maxl*maxb/)) + else + zsec4(1:maxl*maxb)=RESHAPE(FELD(:,:,k),(/maxl*maxb/)) + end if + call grib_set(igrib,"values",zsec4) + call grib_write(igrib,iunit) + END DO + END DO - END SUBROUTINE WRITELATLON + END SUBROUTINE WRITELATLON - SUBROUTINE READSPECTRAL(FILENAME,CXMN,MNAUF,MLEVEL,& - MAXLEV,MPAR,A,B) + SUBROUTINE READSPECTRAL(FILENAME,CXMN,MNAUF,MLEVEL,MAXLEV,MPAR,A,B) - USE GRIB_API +!! read a GRIB file in spherical harmonics - IMPLICIT NONE + USE GRIB_API + IMPLICIT NONE - integer :: ifile + integer :: ifile integer :: iret integer :: n,mk,div,nm,k integer :: i,j,parid @@ -181,8 +183,8 @@ integer :: numberOfValues,maxlev REAL :: A(MAXLEV+1),B(MAXLEV+1),pv(2*MAXLEV+2) REAL:: CXMN(0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) -integer:: maxl,maxb,mlevel,mstride,mpar(:),mnauf,ioffset,ipar,ilev,l(size(mpar)) -character*(*):: filename + integer:: maxl,maxb,mlevel,mstride,mpar(:),mnauf,ioffset,ipar,ilev,l(size(mpar)) + character*(*):: filename call grib_open_file(ifile, TRIM(FILENAME),'r') @@ -225,22 +227,22 @@ character*(*):: filename ! CXMN(:,IOFFSET+ilev)=values(1:(MNAUF+1)*(MNAUF+2)) call grib_get(igrib(i),'paramId',parid) - nm=size(mpar) - div=mlevel/nm - kloop: do k=1,nm - if(parid .eq. mpar(k)) then + nm=size(mpar) + div=mlevel/nm + kloop: do k=1,nm + if (parid .eq. mpar(k)) then l(k)=l(k)+1 cxmn(:,(k-1)*div+l(k))=values(1:(MNAUF+1)*(MNAUF+2)) ! print*,(k-1)*div+l(k),parid exit kloop - endif + end if - enddo kloop - if(k .gt. nm .and. parid .ne. mpar(nm)) then + end do kloop + if (k .gt. nm .and. parid .ne. mpar(nm)) then write(*,*) k,nm,parid,mpar(nm) write(*,*) 'ERROR readspectral: parameter ',parid,'is not',mpar stop - endif + end if ! print*,i @@ -255,11 +257,9 @@ character*(*):: filename deallocate(values) deallocate(igrib) + A=pv(1:1+MAXLEV) + B=pv(2+MAXLEV:2*MAXLEV+2) + END SUBROUTINE READSPECTRAL - A=pv(1:1+MAXLEV) - B=pv(2+MAXLEV:2*MAXLEV+2) - - END SUBROUTINE READSPECTRAL - - END MODULE RWGRIB2 +END MODULE RWGRIB2 diff --git a/Documentation/FORD/V5/Doc_original/tipuesearch/img/loader.gif b/Documentation/FORD/V6/Doc/tipuesearch/img/loader.gif similarity index 100% rename from Documentation/FORD/V5/Doc_original/tipuesearch/img/loader.gif rename to Documentation/FORD/V6/Doc/tipuesearch/img/loader.gif diff --git a/Documentation/FORD/V5/Doc_original/tipuesearch/img/search.png b/Documentation/FORD/V6/Doc/tipuesearch/img/search.png similarity index 100% rename from Documentation/FORD/V5/Doc_original/tipuesearch/img/search.png rename to Documentation/FORD/V6/Doc/tipuesearch/img/search.png diff --git a/Documentation/FORD/V5/Doc_original/tipuesearch/tipuesearch.css b/Documentation/FORD/V6/Doc/tipuesearch/tipuesearch.css similarity index 100% rename from Documentation/FORD/V5/Doc_original/tipuesearch/tipuesearch.css rename to Documentation/FORD/V6/Doc/tipuesearch/tipuesearch.css diff --git a/Documentation/FORD/V5/Doc_original/tipuesearch/tipuesearch.js b/Documentation/FORD/V6/Doc/tipuesearch/tipuesearch.js similarity index 100% rename from Documentation/FORD/V5/Doc_original/tipuesearch/tipuesearch.js rename to Documentation/FORD/V6/Doc/tipuesearch/tipuesearch.js diff --git a/Documentation/FORD/V5/Doc_original/tipuesearch/tipuesearch.min.js b/Documentation/FORD/V6/Doc/tipuesearch/tipuesearch.min.js similarity index 100% rename from Documentation/FORD/V5/Doc_original/tipuesearch/tipuesearch.min.js rename to Documentation/FORD/V6/Doc/tipuesearch/tipuesearch.min.js diff --git a/Documentation/FORD/V6/Doc/tipuesearch/tipuesearch_content.js b/Documentation/FORD/V6/Doc/tipuesearch/tipuesearch_content.js new file mode 100644 index 0000000000000000000000000000000000000000..2012a7c43415b9fe55f69de885085e5217227314 --- /dev/null +++ b/Documentation/FORD/V6/Doc/tipuesearch/tipuesearch_content.js @@ -0,0 +1 @@ +var tipuesearch = {"pages":[{"text":"Flex_extract: Calculation of etadot Note for this version\nAll code transferred to free form.\nSome code cosmetics, should not have any effects Developer Info Leopold Haimberger 1 1 Univ. of Vienna, Dept. of Meteorology & Geophysics","tags":"home","loc":"index.html","title":" Flex_extract: Calculation of etadot "},{"text":"Files dependent on this one sourcefile~~rwgrib2.f90~~AfferentGraph sourcefile~rwgrib2.f90 rwGRIB2.f90 sourcefile~preconvert_new.f90 preconvert_new.f90 sourcefile~preconvert_new.f90->sourcefile~rwgrib2.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Modules RWGRIB2 Source Code rwGRIB2.f90 Source Code MODULE RWGRIB2 CONTAINS SUBROUTINE READLATLON ( FILENAME , FELD , MAXL , MAXB , MLEVEL , MPAR ) !! Read a field from GRIB file on lat-lon grid USE GRIB_API IMPLICIT NONE integer :: ifile integer :: iret integer :: n , mk , parid , nm integer :: i , k integer , dimension (:), allocatable :: igrib integer :: numberOfPointsAlongAParallel integer :: numberOfPointsAlongAMeridian real , dimension (:), allocatable :: values integer :: numberOfValues real , dimension ( maxl , maxb , mlevel ) :: feld integer :: maxl , maxb , mlevel , mstride , mpar (:), irest , div , level integer :: l ( size ( mpar )) character * ( * ) :: filename feld = 0. call grib_open_file ( ifile , TRIM ( FILENAME ), 'r' ) ! count the messages in the file call grib_count_in_file ( ifile , n ) allocate ( igrib ( n )) igrib =- 1 ! Load the messages from the file. DO i = 1 , n call grib_new_from_file ( ifile , igrib ( i ), iret ) END DO ! we can close the file call grib_close_file ( ifile ) nm = size ( mpar ) div = mlevel / nm l = 0 ! Loop on all the messages in memory iloop : DO i = 1 , n ! write(*,*) 'processing message number ',i ! get as a integer call grib_get ( igrib ( i ), 'numberOfPointsAlongAParallel' , & numberOfPointsAlongAParallel ) ! get as a integer call grib_get ( igrib ( i ), 'numberOfPointsAlongAMeridian' , & numberOfPointsAlongAMeridian ) call grib_get ( igrib ( i ), 'numberOfVerticalCoordinateValues' , mk ) call grib_get_size ( igrib ( i ), 'values' , numberOfValues ) ! write(*,*) 'numberOfValues=',numberOfValues allocate ( values ( numberOfValues ), stat = iret ) ! get data values call grib_get ( igrib ( i ), 'values' , values ) call grib_get ( igrib ( i ), 'paramId' , parid ) call grib_get ( igrib ( i ), 'level' , level ) kloop : do k = 1 , nm if ( parid . eq . mpar ( k )) then ! l(k)=l(k)+1 feld (:,:,( k - 1 ) * div + level ) = reshape ( values ,( / maxl , maxb / )) ! print*,(k-1)*div+l(k),parid exit kloop end if end do kloop if ( k . gt . nm . and . parid . ne . mpar ( nm )) then write ( * , * ) k , nm , parid , mpar ( nm ) write ( * , * ) 'ERROR readlatlon: parameter ' , parid , 'is not' , mpar stop end if ! print*,i END DO iloop write ( * , * ) 'readlatlon: ' , i - 1 , ' records read' DO i = 1 , n call grib_release ( igrib ( i )) END DO deallocate ( values ) deallocate ( igrib ) END SUBROUTINE READLATLON SUBROUTINE WRITELATLON ( iunit , igrib , ogrib , FELD , MAXL , MAXB , MLEVEL ,& MLEVELIST , MSTRIDE , MPAR ) !! write a field on lat-lon grid to GRIB file USE GRIB_API IMPLICIT NONE INTEGER IFIELD , MLEVEL , MNAUF , I , J , K , L , MSTRIDE , IERR , JOUT INTEGER MPAR ( MSTRIDE ), MAXL , MAXB , LEVMIN , LEVMAX INTEGER IUNIT , igrib , ogrib REAL ZSEC4 ( MAXL * MAXB ) REAL FELD ( MAXL , MAXB , MLEVEL ) CHARACTER * ( * ) MLEVELIST INTEGER ILEVEL ( MLEVEL ), MLINDEX ( MLEVEL + 1 ), LLEN ! parse MLEVELIST LLEN = len ( trim ( MLEVELIST )) if ( index ( MLEVELIST , 'to' ) . ne . 0 . or . index ( MLEVELIST , 'TO' ) . ne . 0 ) THEN i = index ( MLEVELIST , '/' ) read ( MLEVELIST ( 1 : i - 1 ), * ) LEVMIN i = index ( MLEVELIST , '/' ,. true .) read ( MLEVELIST ( i + 1 : LLEN ), * ) LEVMAX l = 0 do i = LEVMIN , LEVMAX l = l + 1 ILEVEL ( l ) = i end do else l = 1 MLINDEX ( 1 ) = 0 do i = 1 , LLEN if ( MLEVELIST ( i : i ) . eq . '/' ) THEN l = l + 1 MLINDEX ( l ) = i end if end do MLINDEX ( l + 1 ) = LLEN + 1 do i = 1 , l read ( MLEVELIST ( MLINDEX ( i ) + 1 : MLINDEX ( i + 1 ) - 1 ), * ) ILEVEL ( i ) end do end if DO k = 1 , l call grib_set ( igrib , \"level\" , ILEVEL ( k )) DO j = 1 , MSTRIDE call grib_set ( igrib , \"paramId\" , MPAR ( j )) ! if (MPAR(j) .eq. 87) then ! call grib_set(igrib,\"shortName\",\"etadot\") ! call grib_set(igrib,\"units\",\"Pa,s**-1\") ! end if ! if (MPAR(j) .eq. 77) then ! call grib_set(igrib,\"shortName\",\"etadot\") ! call grib_set(igrib,\"units\",\"s**-1\") ! end if if ( l . ne . mlevel ) then zsec4 ( 1 : maxl * maxb ) = RESHAPE ( FELD (:,:, ILEVEL ( k )),( / maxl * maxb / )) else zsec4 ( 1 : maxl * maxb ) = RESHAPE ( FELD (:,:, k ),( / maxl * maxb / )) end if call grib_set ( igrib , \"values\" , zsec4 ) call grib_write ( igrib , iunit ) END DO END DO END SUBROUTINE WRITELATLON SUBROUTINE READSPECTRAL ( FILENAME , CXMN , MNAUF , MLEVEL , MAXLEV , MPAR , A , B ) !! read a GRIB file in spherical harmonics USE GRIB_API IMPLICIT NONE integer :: ifile integer :: iret integer :: n , mk , div , nm , k integer :: i , j , parid integer , dimension (:), allocatable :: igrib real , dimension (:), allocatable :: values integer :: numberOfValues , maxlev REAL :: A ( MAXLEV + 1 ), B ( MAXLEV + 1 ), pv ( 2 * MAXLEV + 2 ) REAL :: CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) integer :: maxl , maxb , mlevel , mstride , mpar (:), mnauf , ioffset , ipar , ilev , l ( size ( mpar )) character * ( * ) :: filename call grib_open_file ( ifile , TRIM ( FILENAME ), 'r' ) ! count the messages in the file call grib_count_in_file ( ifile , n ) allocate ( igrib ( n )) igrib =- 1 ! Load the messages from the file. DO i = 1 , n call grib_new_from_file ( ifile , igrib ( i ), iret ) END DO ! we can close the file call grib_close_file ( ifile ) l = 0 ! Loop on all the messages in memory iloop : DO i = 1 , n ! write(*,*) 'processing message number ',i ! get as a integer call grib_get ( igrib ( i ), 'pentagonalResolutionParameterJ' , j ) call grib_get_size ( igrib ( i ), 'values' , numberOfValues ) ! write(*,*) 'numberOfValues=',numberOfValues call grib_get ( igrib ( i ), 'numberOfVerticalCoordinateValues' , mk ) call grib_get ( igrib ( i ), 'level' , ilev ) call grib_get ( igrib ( i ), 'pv' , pv ) allocate ( values ( numberOfValues ), stat = iret ) ! get data values call grib_get ( igrib ( i ), 'values' , values ) ! IOFFSET=mod(i-1,MSTRIDE)*(mk/2-1) ! CXMN(:,IOFFSET+ilev)=values(1:(MNAUF+1)*(MNAUF+2)) call grib_get ( igrib ( i ), 'paramId' , parid ) nm = size ( mpar ) div = mlevel / nm kloop : do k = 1 , nm if ( parid . eq . mpar ( k )) then l ( k ) = l ( k ) + 1 cxmn (:,( k - 1 ) * div + l ( k )) = values ( 1 :( MNAUF + 1 ) * ( MNAUF + 2 )) ! print*,(k-1)*div+l(k),parid exit kloop end if end do kloop if ( k . gt . nm . and . parid . ne . mpar ( nm )) then write ( * , * ) k , nm , parid , mpar ( nm ) write ( * , * ) 'ERROR readspectral: parameter ' , parid , 'is not' , mpar stop end if ! print*,i END DO iloop write ( * , * ) 'readspectral: ' , i - 1 , ' records read' DO i = 1 , n call grib_release ( igrib ( i )) END DO deallocate ( values ) deallocate ( igrib ) A = pv ( 1 : 1 + MAXLEV ) B = pv ( 2 + MAXLEV : 2 * MAXLEV + 2 ) END SUBROUTINE READSPECTRAL END MODULE RWGRIB2","tags":"","loc":"sourcefile/rwgrib2.f90.html","title":"rwGRIB2.f90 – Flex_extract: Calculation of etadot"},{"text":"This file depends on sourcefile~~preconvert_new.f90~~EfferentGraph sourcefile~preconvert_new.f90 preconvert_new.f90 sourcefile~rwgrib2.f90 rwGRIB2.f90 sourcefile~preconvert_new.f90->sourcefile~rwgrib2.f90 sourcefile~ftrafo.f90 ftrafo.f90 sourcefile~preconvert_new.f90->sourcefile~ftrafo.f90 sourcefile~phgrreal.f90 phgrreal.f90 sourcefile~preconvert_new.f90->sourcefile~phgrreal.f90 sourcefile~grphreal.f90 grphreal.f90 sourcefile~preconvert_new.f90->sourcefile~grphreal.f90 sourcefile~ftrafo.f90->sourcefile~phgrreal.f90 sourcefile~grphreal.f90->sourcefile~phgrreal.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Programs PRECONVERT Functions IA Subroutines STATIS Source Code preconvert_new.f90 Source Code PROGRAM PRECONVERT !! Prepare input data for FLEXPART, esp. vertical velocity as !! etadot or etadot * dp/deta !*---------------------------------------------------------------- ! author: L. Haimberger ! date: 03/2010 ! version: V4.0 ! !## Program PRECONVERT ! ! **Prepares input data for POP model meteorological preprocessor** ! !----------------------------------------------------------------- ! ! Calculation of etapoint on a regular \\lambda-\\phi grid and writing ! `U,V,ETAPOINT,T,PS,Q,SD,MSL,TCC,10U, 10V, 2T,2D,LSP,CP,SSHF,SSR, ! EWSS,NSSS` ! to an output file (input and output in GRIB 1 or 2 format). ! etapoint is defined as the total time derivative of ! ECMWF vertical coordinate eta multiplied by the derivative ! of pressure with respect to eta: ! \\frac{\\mathrm{d}\\eta}{\\mathrm{d}t}\\frac{\\partial p}{\\partial \\eta} ! !### Version history and authors: ! - 04/1994: Leopold Haimberger, Gerhard Wotawa ! ! - 2003-05-11: Alexander Beck ! ! - 12/2006: L. Haimberger V2.0, ! handle arbitrary regular grids and T799 resolution data ! ! - 03/2010: L. Haimberger V4.0, ! handle GRIB edition 2 fields and T1279 resolution data ! - 04-06/2019: Petra Seibert, ! beautify code and add FORD documentation ! !----------------------------------------------------------------- ! # !## Input required: ! ! UNIT FILE PARAMETER(S) DATA REPRESENTATION ! ! 11 fort.11 T,U,V regular lambda phi grid ! 12 fort.12 D regular lambda phi grid ! 13 fort.13 LNSP spherical harmonics ! 14 fort.14 SD,MSL,TCC,10U, ! 10V,2T,2D regular lambda phi grid ! 16 fort.16 LSP,CP,SSHF, ! SSR,EWSS,NSSS regular lambda phi grid ! 17 fort.17 Q regular lambda phi grid ! !------------------------------------------------------------------ ! !### Output produced: ! ! UNIT FILE PARAMETER(S) DATA REPRESENTATION ! ! 15 fort.15 `U,V,ETA,T,PS, ! `Q,SD,MSL,TCC,` ! `10U,10V,2T,2D,` regular lambda phi grid ! `LSP,CP,SSHF,` ! `SSR,EWSS,NSSS` ! !------------------------------------------------------------------ USE PHTOGR USE GRTOPH USE FTRAFO USE RWGRIB2 USE GRIB_API IMPLICIT NONE REAL , ALLOCATABLE , DIMENSION (:,:) :: LNPS REAL , ALLOCATABLE , DIMENSION (:,:) :: Z REAL , ALLOCATABLE , DIMENSION (:,:,:) :: T , UV , UV2 REAL , ALLOCATABLE , DIMENSION (:,:,:) :: QA , OM , OMR REAL , ALLOCATABLE , DIMENSION (:,:,:) :: DIV , ETA , ETAR REAL , ALLOCATABLE , DIMENSION (:,:) :: DPSDL , DPSDM REAL , ALLOCATABLE , DIMENSION (:,:,:) :: PS , DPSDT REAL , ALLOCATABLE , DIMENSION (:,:,:) :: SURF , FLUX , OROLSM REAL , ALLOCATABLE , DIMENSION (:) :: WSAVE , H , SINL , COSL , WSAVE2 REAL , ALLOCATABLE , DIMENSION (:) :: BREITE , GBREITE , AK , BK , pv ! Arrays for Gaussian grid calculations REAL :: X1 , X2 , RMS , MW , SIG , LAM REAL , ALLOCATABLE :: CUA (:,:,:), CVA (:,:,:) REAL , ALLOCATABLE , DIMENSION (:,:) :: P , PP , P2 REAL , ALLOCATABLE , DIMENSION (:,:) :: XMN , HILFUV REAL , ALLOCATABLE , DIMENSION (:) :: LNPMN , LNPMN2 , LNPMN3 REAL , ALLOCATABLE , DIMENSION (:) :: WEIGHT REAL , ALLOCATABLE , DIMENSION (:,:) :: UGVG REAL , ALLOCATABLE , DIMENSION (:,:) :: DG , ETAG REAL , ALLOCATABLE , DIMENSION (:,:) :: GWSAVE REAL , ALLOCATABLE , DIMENSION (:) :: PSG , HILF ! end arrays for Gaussian grid calculations INTEGER , ALLOCATABLE , DIMENSION (:) :: MLAT , MPSURF , MPFLUX , MPORO , MPAR INTEGER , ALLOCATABLE :: GIFAX (:,:) REAL PI , COSB , DAK , DBK , P00 REAL URLAR8 , JMIN1 , LLLAR8 , MAXBMIN1 , PIR8 , DCOSB INTEGER I , J , K , L , IERR , M , LTEST , MK , NGI , NGJ INTEGER MFLUX , MSURF , MORO INTEGER LUNIT , LUNIT2 INTEGER MAXL , MAXB , MLEVEL , LEVOUT , LEVMIN , LEVMAX INTEGER MOMEGA , MOMEGADIFF , MGAUSS , MSMOOTH , MNAUF , META , METADIFF INTEGER MDPDETA , METAPAR REAL RLO0 , RLO1 , RLA0 , RLA1 CHARACTER * 300 MLEVELIST INTEGER MAUF , MANF , IFAX ( 10 ) INTEGER IGRIB ( 1 ), iret , ogrib CHARACTER * 80 FILENAME NAMELIST / NAMGEN / & MAXL , MAXB , & MLEVEL , MLEVELIST , MNAUF , METAPAR , & RLO0 , RLO1 , RLA0 , RLA1 , & MOMEGA , MOMEGADIFF , MGAUSS , MSMOOTH , META , METADIFF ,& MDPDETA LTEST = 1 CALL POSNAM ( 4 , 'NAMGEN' ) READ ( 4 , NAMGEN ) MAUF = INT ( 36 0. * ( REAL ( MAXL ) - 1. ) / ( RLO1 - RLO0 ) + 0.0001 ) ! PRINT*, MAUF MANF = INT ( REAL ( MAUF ) / 36 0. * ( 36 0. + RLO0 ) + 1.0001 ) IF ( MANF . gt . MAUF ) MANF = MANF - MAUF !------------------------------------------------------------------ !! ALLOCATE VARIABLES !------------------------------------------------------------------ ALLOCATE ( LNPS ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , 1 )) ALLOCATE ( H ( 0 :( MNAUF + 2 ) * ( MNAUF + 3 ) / 2 )) ALLOCATE ( OM ( MAXL , MAXB , MLEVEL )) ALLOCATE ( ETA ( MAXL , MAXB , MLEVEL )) ALLOCATE ( PS ( MAXL , MAXB , 1 ), DPSDT ( MAXL , MAXB , 1 )) ALLOCATE ( WSAVE ( 4 * MAUF + 15 ), WSAVE2 ( 4 * MAUF + 15 )) ALLOCATE ( BREITE ( MAXB ), AK ( MLEVEL + 1 ), BK ( MLEVEL + 1 ), PV ( 2 * MLEVEL + 2 )) ALLOCATE ( MPAR ( 2 )) ALLOCATE ( COSL ( MAXL ), SINL ( MAXL )) ALLOCATE ( CUA ( 2 , 4 , MLEVEL ), CVA ( 2 , 4 , MLEVEL )) !------------------------------------------------------------------ ! GAUSS STUFF !------------------------------------------------------------------ IF ( MGAUSS . EQ . 1 ) THEN LUNIT = 0 FILENAME = 'fort.18' CALL GRIB_OPEN_FILE ( LUNIT , TRIM ( FILENAME ), 'R' ) CALL GRIB_NEW_FROM_FILE ( LUNIT , IGRIB ( 1 ), IRET ) ! we can close the file CALL GRIB_CLOSE_FILE ( LUNIT ) ! call grib_get(igrib(1),'gridType', j) NGJ = MNAUF + 1 ALLOCATE ( GWSAVE ( 8 * NGJ + 15 , NGJ / 2 )) ALLOCATE ( GIFAX ( 10 , NGJ )) ALLOCATE ( GBREITE ( NGJ ), WEIGHT ( NGJ )) ALLOCATE ( MLAT ( NGJ )) ALLOCATE ( P ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , NGJ / 2 )) ALLOCATE ( PP ( NGJ / 2 , 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 )) ALLOCATE ( Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , MAXB )) CALL GRIB_GET ( IGRIB ( 1 ), 'numberOfPointsAlongAMeridian' , NGJ ) get as a integer call grib_get ( igrib ( 1 ), 'pl' , MLAT ) NGI = SUM ( MLAT ) CALL GRIB_GET ( IGRIB ( 1 ), 'numberOfVerticalCoordinateValues' , MK ) IF ( MK / 2 - 1 . NE . MLEVEL ) THEN WRITE ( * , * ) 'FATAL: Number of model levels' , mk , & ' does not agree with' , MLEVEL , ' in namelist' STOP END IF call grib_get ( igrib ( 1 ), 'pv' , pv ) AK = PV ( 1 : 1 + MLEVEL ) BK = PV ( 2 + MLEVEL : 2 * MLEVEL + 2 ) ALLOCATE ( LNPMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 )) ALLOCATE ( LNPMN2 ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 )) ALLOCATE ( UGVG ( NGI , 2 * MLEVEL ), HILFUV ( 2 * MAXL , 2 )) ALLOCATE ( DPSDL ( NGI , 1 ), DPSDM ( NGI , 1 )) ALLOCATE ( PSG ( NGI ), HILF ( NGI )) ALLOCATE ( UV ( MAXL , MAXB , 2 * MLEVEL )) ! ALLOCATE (UV2(MAXL, MAXB, 2*MLEVEL)) ALLOCATE ( XMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , 2 * MLEVEL )) ALLOCATE ( DG ( NGI , MLEVEL ), ETAG ( NGI , MLEVEL )) !! Initialisieren Legendretransformation auf das LaT/LON Gitter PI = ACOS ( - 1.D0 ) !$OMP PARALLEL DO DO 20 J = 1 , MAXB BREITE ( J ) = SIN (( RLA1 - ( J - 1.D0 ) * ( RLA1 - RLA0 ) / ( MAXB - 1 )) * PI / 18 0.D0 ) CALL PLGNFA ( MNAUF , BREITE ( J ), Z ( 0 , J )) 20 CONTINUE !$OMP END PARALLEL DO ! Avoid possible Pole problem ! IF (RLA0 .EQ. -90.0) BREITE(MAXB)=sin(-89.99*PI/180.d0) ! IF (RLA1 .EQ. 90.0) BREITE(1)=sin(89.99*PI/180.d0) !* Initialisation of fields for FFT and Legendre transformation ! to Gaussian grid and back to phase space X1 =- 1.D0 X2 = 1.D0 CALL GAULEG ( X1 , X2 , GBREITE , WEIGHT , NGJ ) !$OMP PARALLEL DO PRIVATE(M) DO J = 1 , NGJ / 2 CALL PLGNFA ( MNAUF , GBREITE ( J ), P (:, J )) DO M = 0 ,( MNAUF + 3 ) * ( MNAUF + 4 ) / 2 PP ( J , M ) = P ( M , J ) END DO END DO !$OMP END PARALLEL DO ! MPAR(1)=152 FILENAME = 'fort.12' CALL READSPECTRAL ( FILENAME , LNPMN , MNAUF , 1 , MLEVEL ,( / 152 / ), AK , BK ) ! goto 111 CALL SET99 ( WSAVE , IFAX , mauf ) CALL PHGCUT ( LNPMN , PS , WSAVE , IFAX , Z , & MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , 1 ) CALL STATIS ( MAXL , MAXB , 1 , EXP ( PS ), RMS , MW , SIG ) WRITE ( * , '(A12,3F12.4)' ) 'STATISTICS: ' , RMS , MW , SIG DO J = 1 , NGJ / 2 CALL SET99 ( GWSAVE ( 1 , J ), GIFAX ( 1 , J ), MLAT ( J )) END DO CALL PHGR213 ( LNPMN , HILF , GWSAVE , GIFAX , P , MLAT , MNAUF , NGI , NGJ , 1 ) PSG = HILF CALL GRPH213 ( LNPMN2 , PSG , GWSAVE , GIFAX , PP , WEIGHT , MLAT , & MNAUF , NGI , NGJ , 1 ) CALL PHGR213 ( LNPMN2 , HILF , GWSAVE , GIFAX , P , MLAT , MNAUF , NGI , NGJ , 1 ) HILF = exp ( PSG ) - exp ( HILF ) CALL STATIS ( NGI , 1 , 1 , HILF , RMS , MW , SIG ) WRITE ( * , '(A12,3F11.4)' ) 'STATISTICS: ' , RMS , MW , SIG PSG = EXP ( PSG ) HILF = PSG CALL STATIS ( NGI , 1 , 1 , HILF , RMS , MW , SIG ) WRITE ( * , '(A12,3F11.4)' ) 'STATISTICS: ' , RMS , MW , SIG 111 FILENAME = 'fort.10' CALL READSPECTRAL ( FILENAME , XMN , MNAUF , 2 * MLEVEL , MLEVEL ,( / 131 , 132 / ), AK , BK ) !! Transformieren des Windes auf das Gaussgitter CALL PHGR213 ( XMN , UGVG , GWSAVE , GIFAX , P , MLAT , MNAUF , NGI , NGJ , 2 * MLEVEL ) DO K = 1 , MLEVEL ! North Pole CALL JSPPOLE ( XMN (:, K ), 1 , MNAUF ,. TRUE ., CUA (:,:, K )) CALL JSPPOLE ( XMN (:, MLEVEL + K ), 1 , MNAUF ,. TRUE ., CVA (:,:, K )) ! South Pole CALL JSPPOLE ( XMN (:, K ), - 1 , MNAUF ,. TRUE ., CUA (:, 3 : 4 , K )) CALL JSPPOLE ( XMN (:, MLEVEL + K ), - 1 , MNAUF ,. TRUE ., CVA (:, 3 : 4 , K )) END DO DO K = 1 , 2 * MLEVEL IF ( MSMOOTH . ne . 0 ) CALL SPFILTER ( XMN (:, K ), MNAUF , MSMOOTH ) END DO CALL PHGCUT ( XMN , UV , WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , 2 * MLEVEL ) 112 FILENAME = 'fort.13' CALL READSPECTRAL ( FILENAME , XMN , MNAUF , MLEVEL , MLEVEL ,( / 155 / ), AK , BK ) !! Transformieren der horizontalen Divergenz auf das Gaussgitter CALL PHGR213 ( XMN , DG , GWSAVE , GIFAX , P , MLAT , MNAUF , NGI , NGJ , MLEVEL ) !! Berechnung des Gradienten des Logarithmus des Bodendrucks auf dem Gaussgitter CALL PHGRAD ( LNPMN , DPSDL , DPSDM , GWSAVE , GIFAX , P , H , MLAT , MNAUF , NGI , NGJ , 1 ) !! Berechnung der Vertikalgeschwindigkeit auf dem Gaussgitter CALL CONTGL ( HILF , DPSDL , DPSDM , DG , UGVG (:, 1 ), UGVG (:, MLEVEL + 1 ), & GBREITE , ETAG , MLAT , AK , BK , NGI , NGJ , MLEVEL ) CALL GRPH213 ( XMN , ETAG , GWSAVE , GIFAX , PP , WEIGHT , MLAT , MNAUF , NGI , NGJ , MLEVEL ) DO K = 1 , MLEVEL IF ( MSMOOTH . ne . 0 ) CALL SPFILTER ( XMN (:, K ), MNAUF , MSMOOTH ) END DO CALL PHGCUT ( XMN , ETA , WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , MLEVEL ) CALL GRPH213 ( XMN , HILF , GWSAVE , GIFAX , PP , WEIGHT , MLAT , MNAUF , NGI , NGJ , 1 ) IF ( MSMOOTH . ne . 0 ) CALL SPFILTER ( XMN (:, 1 ), MNAUF , MSMOOTH ) CALL PHGCUT ( XMN , DPSDT , WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , 1 ) ! GOTO 114 CALL STATIS ( MAXL , MAXB , 1 , DPSDT , RMS , MW , SIG ) WRITE ( * , '(A12,3F11.4)' ) 'STATISTICS DPSDT: ' , RMS , MW , SIG IF ( MOMEGADIFF . ne . 0 ) THEN !! Berechnung von Omega auf dem Gaussgitter CALL OMEGA ( PSG , DPSDL , DPSDM , DG , UGVG (:, 1 ), UGVG (:, MLEVEL + 1 ), & GBREITE , ETAG , MLAT , AK , BK , NGI , NGJ , MLEVEL ) CALL GRPH213 ( XMN , ETAG , GWSAVE , GIFAX , PP , WEIGHT , MLAT , MNAUF , NGI , NGJ , MLEVEL ) DO K = 1 , MLEVEL IF ( MSMOOTH . ne . 0 ) CALL SPFILTER ( XMN (:, K ), MNAUF , MSMOOTH ) END DO CALL PHGCUT ( XMN , OM , WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , MLEVEL ) END IF ! MOMEGA CALL GRPH213 ( XMN , PSG , GWSAVE , GIFAX , PP , WEIGHT , MLAT , MNAUF , NGI , NGJ , 1 ) CALL PHGCUT ( XMN , PS , WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , MAXB , 1 ) CALL STATIS ( MAXL , MAXB , 1 , PS , RMS , MW , SIG ) WRITE ( * , '(A12,3F11.4)' ) 'STATISTICS: ' , RMS , MW , SIG 114 DEALLOCATE ( HILF , PSG , DPSDL , DPSDM , ETAG , DG , LNPMN ) ! ALLOCATE (UV(MAXL, MAXB, 2*MLEVEL)) ! CALL GRPH213(XMN,UGVG,GWSAVE,GIFAX,PP,WEIGHT,MLAT, ! *MNAUF,NGI,NGJ,2*MLEVEL) ! DO K=1,2*MLEVEL ! IF (MSMOOTH .ne. 0) CALL SPFILTER(XMN(:,K),MNAUF,MSMOOTH) ! END DO ! CALL PHGCUT(XMN,UV,WSAVE,IFAX,Z, ! *MNAUF,MNAUF,MAUF,MANF,MAXL,MAXB,2*MLEVEL) DEALLOCATE ( PP , P , UGVG , MLAT , GBREITE , WEIGHT , GWSAVE , XMN ) ! CALL ETAGAUSS(Z,WSAVE ! *,BREITE,UV,ETA,OM,PS, ! *MAUF,MAXB,MAXL,MANF,MNAUF,MLEVEL,MSMOOTH) ELSE !----------------------------------------------------------------- ! READING OF PREPARED METEOROLOGICAL FIELDS ! ! THE FOLLOWING FIELDS ARE EXPECTED: ! ! UNIT 11: T,U,V (REGULAR GRID) ! UNIT 17: Q (REGULAR GRID) ! UNIT 13: D (REGULAR GRID) ! UNIT 12: LNSP (SPHERICAL HARMONICS) ! UNIT 14: SURFACE DATA (REGULAR GRID) ! UNIT 16: FLUX DATA (REGULAR GRID) !------------------------------------------------------------------ ALLOCATE ( MLAT ( MAXB )) MLAT = MAXL ALLOCATE ( Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , 1 )) ALLOCATE ( DPSDL ( MAXL , MAXB ), DPSDM ( MAXL , MAXB )) ALLOCATE ( UV ( MAXL , MAXB , 2 * MLEVEL ), DIV ( MAXL , MAXB , MLEVEL )) !------------------------------------------------------------------ !! READING OF SURFACE PRESSURE !------------------------------------------------------------------ FILENAME = 'fort.12' CALL READSPECTRAL ( FILENAME , LNPS , MNAUF , 1 , MLEVEL ,( / 152 / ), AK , BK ) !------------------------------------------------------------------ !! READING OF U,V !------------------------------------------------------------------ ! OPENING OF UNBLOCKED GRIB FILE FILENAME = 'fort.10' CALL READLATLON ( FILENAME , UV , MAXL , MAXB , 2 * MLEVEL ,( / 131 , 132 / )) PI = ACOS ( - 1.D0 ) DO J = 1 , MAXB BREITE ( J ) = SIN (( RLA1 - ( J - 1.D0 ) * ( RLA1 - RLA0 ) / ( MAXB - 1 )) * PI / 18 0.D0 ) END DO ! Avoid possible Pole problem ! IF (RLA0 .EQ. -90.0) BREITE(MAXB)=sin(-89.99*PI/180.d0) ! IF (RLA1 .EQ. 90.0) BREITE(1)=sin(89.99*PI/180.d0) DO K = 1 , 2 * MLEVEL DO J = 1 , MAXB COSB = SQRT ( 1.0 - ( BREITE ( J )) * ( BREITE ( J ))) IF ( RLA0 . EQ . - 9 0.0 . AND . J . EQ . MAXB . OR . & RLA1 . EQ . 9 0.0 . AND . J . EQ . 1 ) THEN UV (:, J , K ) = UV (:, J , K ) / 1.D6 ELSE UV (:, J , K ) = UV (:, J , K ) * COSB END IF END DO END DO !------------------------------------------------------------------ !! READING OF LNSP on grid !------------------------------------------------------------------ ! For debugging only ! FILENAME='LNSPG_G.20060330.600' ! INQUIRE(FILE=FILENAME,EXIST=EX) ! CALL READLATLON(FILENAME,QA, ! *MAXL,MAXB,1,1,(/152/)) !------------------------------------------------------------------ !! READING OF DIVERGENCE !------------------------------------------------------------------ IF ( META . EQ . 0 . OR . METADIFF . EQ . 1 ) THEN FILENAME = 'fort.13' CALL READLATLON ( FILENAME , DIV , MAXL , MAXB , MLEVEL ,( / 155 / )) END IF !------------------------------------------------------------------ ! ! Calculation of etapoint --> total time derivative of ! ECMWF vertical coordinate eta multiplied by the derivative ! of pressure with respect to eta: ! \\frac{\\mathrm{d}\\eta}{\\mathrm{d}t}\\frac{\\partial p}{\\partial \\eta} !------------------------------------------------------------------ !* Initialisieren Legendretransformation auf das LaT/LON Gitter !! Without Gaussian grid calculation Legendre Polynomials are calculated !! only for one latitude to save space DO J = 1 , MAXB CALL PLGNFA ( MNAUF , BREITE ( J ), Z ( 0 , 1 )) CALL PHGCUT ( LNPS , PS (:, J , 1 ), WSAVE , IFAX , Z , MNAUF , MNAUF , MAUF , MANF , MAXL , 1 , 1 ) IF ( META . EQ . 0 . OR . METADIFF . EQ . 1 ) THEN CALL PHGRACUT ( LNPS , DPSDL (:, J ), DPSDM (:, J ), WSAVE , IFAX , Z , H , MAUF , & MNAUF , MAXL , 1 , MANF , 1 ) END IF END DO PS = EXP ( PS ) ! For debugging only CALL STATIS ( MAXL , MAXB , 1 , PS (:,:, 1 ), RMS , MW , SIG ) WRITE ( * , '(A12,3F11.4)' ) 'STATISTICS: ' , RMS , MW , SIG IF ( MOMEGADIFF . ne . 0 ) THEN CALL OMEGA ( PS , DPSDL , DPSDM , DIV , UV (:,:, 1 ), UV (:,:, MLEVEL + 1 ), & BREITE , OM , MLAT , AK , BK , MAXL * MAXB , MAXB , MLEVEL ) END IF IF ( META . EQ . 0 . OR . METADIFF . ne . 0 ) THEN DPSDT = PS CALL CONTGL ( DPSDT , DPSDL , DPSDM , DIV , UV (:,:, 1 ), UV (:,:, MLEVEL + 1 ), & BREITE , ETA , MLAT , AK , BK , MAXL * MAXB , MAXB , MLEVEL ) END IF END IF ! sMGAUSS !! CREATE FILE VERTICAL.EC NEEDED BY POP MODEL OPEN ( 21 , FILE = 'VERTICAL.EC' ) WRITE ( 21 , '(A)' ) WRITE ( 21 , '(A)' ) 'VERTICAL DISCRETIZATION OF POP MODEL' WRITE ( 21 , '(A)' ) write ( 21 , '(i3,a)' ) MLEVEL , ' number of layers' WRITE ( 21 , '(A)' ) WRITE ( 21 , '(A)' ) '* A(NLEV+1)' WRITE ( 21 , '(A)' ) DO 205 I = 1 , MLEVEL + 1 205 WRITE ( 21 , '(F18.12)' ) AK ( I ) WRITE ( 21 , '(A)' ) WRITE ( 21 , '(A)' ) '* B(NLEV+1)' WRITE ( 21 , '(A)' ) DO 210 I = 1 , MLEVEL + 1 210 WRITE ( 21 , '(F18.12)' ) BK ( I ) CLOSE ( 21 ) !------------------------------------------------------------------ ! READING OF OMEGA !------------------------------------------------------------------ IF ( MOMEGA . NE . 0 ) THEN ALLOCATE ( OMR ( MAXL , MAXB , MLEVEL )) FILENAME = 'fort.19' CALL READLATLON ( FILENAME , OMR , MAXL , MAXB , MLEVEL ,( / 135 / )) IF ( MOMEGADIFF . NE . 0 ) THEN DO K = 1 , MLEVEL CALL STATIS ( MAXL , MAXB , 1 , ETA (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F11.4)' ) ' ETA: ' , K , RMS , MW , SIG CALL STATIS ( MAXL , MAXB , 1 , OMR (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F11.4)' ) ' OMEGA: ' , K , RMS , MW , SIG CALL STATIS ( MAXL , MAXB , 1 , OM (:,:, K ) - OMR (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F11.4)' ) 'OMEGA DIFF: ' , K , RMS , MW , SIG END DO END IF END IF !------------------------------------------------------------------ ! READING OF ETA !------------------------------------------------------------------ IF ( META . NE . 0 ) THEN ALLOCATE ( ETAR ( MAXL , MAXB , MLEVEL )) P00 = 10132 5. FILENAME = 'fort.21' CALL READLATLON ( FILENAME , ETAR , MAXL , MAXB , MLEVEL ,( / 77 / )) IF ( MDPDETA . EQ . 1 ) THEN DO K = 1 , MLEVEL DAK = AK ( K + 1 ) - AK ( K ) DBK = BK ( K + 1 ) - BK ( K ) DO J = 1 , MAXB DO I = 1 , MAXL ETAR ( I , J , K ) = 2 * ETAR ( I , J , K ) * PS ( I , J , 1 ) * ( DAK / PS ( I , J , 1 ) + DBK ) / & ( DAK / P00 + DBK ) IF ( K . GT . 1 ) ETAR ( I , J , K ) = ETAR ( I , J , K ) - ETAR ( I , J , K - 1 ) END DO END DO END DO END IF IF ( METADIFF . NE . 0 ) THEN DO K = 1 , MLEVEL CALL STATIS ( MAXL , MAXB , 1 , ETA (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F11.4)' ) ' ETA: ' , K , RMS , MW , SIG CALL STATIS ( MAXL , MAXB , 1 , ETAR (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F11.4)' ) ' ETAR: ' , K , RMS , MW , SIG CALL STATIS ( MAXL , MAXB , 1 , ETA (:,:, K ) - ETAR (:,:, K ), RMS , MW , SIG ) WRITE ( * , '(A12,I3,3F11.4)' ) 'ETA DIFF: ' , K , RMS , MW , SIG END DO DO K = 1 , MLEVEL WRITE ( * , '(I3,2F11.4)' ) K , ETA ( 1 , MAXB / 2 , K ), ETAR ( 1 , MAXB / 2 , K ) END DO ELSE ETA = ETAR END IF END IF ALLOCATE ( T ( MAXL , MAXB , MLEVEL )) ALLOCATE ( QA ( MAXL , MAXB , MLEVEL )) !------------------------------------------------------------------ !! READING OF T !------------------------------------------------------------------ ! OPENING OF UNBLOCKED GRIB FILE FILENAME = 'fort.11' CALL READLATLON ( FILENAME , T , MAXL , MAXB , MLEVEL ,( / 130 / )) !------------------------------------------------------------------ !! READING OF SPECIFIC HUMIDITY !------------------------------------------------------------------ FILENAME = 'fort.17' CALL READLATLON ( FILENAME , QA , MAXL , MAXB , MLEVEL ,( / 133 / )) !------------------------------------------------------------------ ! TEST READING OF UV from MARS (debug only) !------------------------------------------------------------------ ! FILENAME='fort.22' ! CALL READLATLON(FILENAME,UV2,MAXL,MAXB,2*MLEVEL,2,(/131,132/)) !------------------------------------------------------------------ !! WRITE MODEL LEVEL DATA TO fort.15 !------------------------------------------------------------------ !! Calculation of etadot in CONTGL needed scaled winds (ucosphi,vcosphi) !! Now we are transforming back to the usual winds. DO K = 1 , MLEVEL DO J = 2 , MAXB - 1 COSB = SQRT ( 1.0 - ( BREITE ( J )) * ( BREITE ( J ))) UV (:, J , K ) = UV (:, J , K ) / COSB UV (:, J , MLEVEL + K ) = UV (:, J , MLEVEL + K ) / COSB END DO ! special treatment for poles, if necessary. DO J = 1 , MAXB , MAXB - 1 COSB = SQRT ( 1.0 - ( BREITE ( J )) * ( BREITE ( J ))) IF ( 1.0 - BREITE ( J ) * BREITE ( J ) . GT . 0 . OR . MGAUSS . NE . 1 ) THEN IF ( RLA0 . EQ . - 9 0.0 . AND . J . EQ . MAXB . OR . & RLA1 . EQ . 9 0.0 . AND . J . EQ . 1 ) THEN UV (:, J , K ) = UV (:, J , K ) * 1.D6 UV (:, J , MLEVEL + K ) = UV (:, J , MLEVEL + K ) * 1.D6 ELSE UV (:, J , K ) = UV (:, J , K ) / COSB UV (:, J , MLEVEL + K ) = UV (:, J , MLEVEL + K ) / COSB END IF ELSE HILFUV ( 5 : MAXL ,:) = 0. HILFUV ( 1 : 2 ,:) = 0. IF ( J . EQ . MAXB ) THEN ! Suedpol HILFUV ( 3 : 4 , 1 ) = CUA (:, 4 , K ) HILFUV ( 3 : 4 , 2 ) = CVA (:, 4 , K ) ELSE ! Nordpol HILFUV ( 3 : 4 , 1 ) = CUA (:, 2 , K ) HILFUV ( 3 : 4 , 2 ) = CVA (:, 2 , K ) END IF CALL RFOURTR ( HILFUV (:, 1 ), WSAVE , IFAX , MAXL / 2 - 1 , MAXL , - 1 ) DO I = 0 , MAXL - 1 IF ( MANF + I . LE . MAXL ) THEN UV ( I + 1 , J , K ) = HILFUV ( MANF + I , 1 ) ELSE UV ( I + 1 , J , K ) = HILFUV ( MANF - MAXL + I , 1 ) END IF END DO CALL RFOURTR ( HILFUV (:, 2 ), WSAVE , IFAX , MAXL / 2 - 1 , MAXL , - 1 ) DO I = 0 , MAXL - 1 IF ( MANF + I . LE . MAXL ) THEN UV ( I + 1 , J , MLEVEL + K ) = HILFUV ( MANF + I , 2 ) ELSE UV ( I + 1 , J , MLEVEL + K ) = HILFUV ( MANF - MAXL + I , 2 ) END IF END DO end if END DO END DO ! open output file call grib_open_file ( LUNIT , 'fort.15' , 'w' ) ! we use temperature on lat/lon on model levels as template for model level data LUNIT2 = 0 CALL GRIB_OPEN_FILE ( LUNIT2 , 'fort.11' , 'R' ) CALL GRIB_NEW_FROM_FILE ( LUNIT2 , IGRIB ( 1 ), IRET ) CALL GRIB_CLOSE_FILE ( LUNIT2 ) CALL WRITELATLON & ( LUNIT , IGRIB ( 1 ), OGRIB , UV (:,:, 1 ), MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 131 / )) CALL WRITELATLON & ( LUNIT , IGRIB ( 1 ), OGRIB , UV (:,:, MLEVEL + 1 ), MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 132 / )) IF ( MDPDETA . ne . 1 . AND . MGAUSS . EQ . 0 . and . META . eq . 1 ) THEN CALL WRITELATLON & ( LUNIT , IGRIB ( 1 ), OGRIB , ETA , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 77 / )) ELSE CALL WRITELATLON & ( LUNIT , IGRIB ( 1 ), OGRIB , ETA , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / METAPAR / )) END IF CALL WRITELATLON ( LUNIT , IGRIB ( 1 ), OGRIB , T , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 130 / )) CALL WRITELATLON ( LUNIT , IGRIB ( 1 ), OGRIB , PS , MAXL , MAXB , 1 , '1' , 1 ,( / 134 / )) CALL GRIB_SET ( IGRIB ( 1 ), \"levelType\" , \"ml\" ) CALL GRIB_SET ( IGRIB ( 1 ), \"typeOfLevel\" , \"hybrid\" ) CALL WRITELATLON ( LUNIT , IGRIB ( 1 ), OGRIB , QA , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 133 / )) IF ( MOMEGA . EQ . 1 ) THEN CALL GRIB_OPEN_FILE ( LUNIT2 , 'fort.25' , 'w' ) CALL WRITELATLON & ( LUNIT2 , IGRIB ( 1 ), OGRIB , OMR , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 135 / )) IF ( MOMEGADIFF . EQ . 1 ) THEN CALL WRITELATLON ( LUNIT2 , IGRIB ( 1 ), OGRIB , DPSDT , MAXL , MAXB , 1 , '1' , 1 ,( / 158 / )) OM = OM - OMR CALL WRITELATLON & ( LUNIT2 , IGRIB ( 1 ), OGRIB , OM , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 001 / )) CALL GRIB_CLOSE_FILE ( LUNIT2 ) END IF END IF IF ( META . EQ . 1 . AND . METADIFF . EQ . 1 ) THEN CALL GRIB_OPEN_FILE ( LUNIT2 , 'fort.26' , 'w' ) CALL WRITELATLON & ( LUNIT2 , IGRIB ( 1 ), OGRIB , ETAR , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 135 / )) ! IF (MOMEGADIFF .EQ. 1) THEN CALL WRITELATLON ( LUNIT2 , IGRIB ( 1 ), OGRIB , DPSDT , MAXL , MAXB , 1 , '1' , 1 ,( / 158 / )) OM = ETA - ETAR CALL WRITELATLON & ( LUNIT2 , IGRIB ( 1 ), OGRIB , OM , MAXL , MAXB , MLEVEL , MLEVELIST , 1 ,( / 001 / )) CALL GRIB_CLOSE_FILE ( LUNIT2 ) ! END IF END IF CALL GRIB_CLOSE_FILE ( LUNIT ) 2000 STOP 'SUCCESSFULLY FINISHED CONVERT_PRE: CONGRATULATIONS' 3000 STOP 'ROUTINE CONVERT_PRE: ERROR' 9999 stop 'ROUTINE CONVERT_PRE: ERROR' END !------------------------------------------------------------------ INTEGER FUNCTION IA ( FIELD1 , NI , NJ , NK , G ) !------------------------------------------------------------------ !! Calculate something that is roughly log10( maxval(field1)/g ) [PS] !------------------------------------------------------------------ IMPLICIT NONE INTEGER :: I , J , K INTEGER , INTENT ( IN ) :: NI , NJ , NK REAL , INTENT ( IN ) :: FIELD1 ( NI , NJ , NK ) REAL INTENT ( IN ) :: G REAL :: RMIN , RMAX , XMAX , A , A1 , A2 RMAX = FIELD1 ( 1 , 1 , 1 ) RMIN = FIELD1 ( 1 , 1 , 1 ) DO 100 K = 1 , NK DO 100 J = 1 , NJ DO 100 I = 1 , NI IF ( FIELD1 ( I , J , K ) . GT . RMAX ) RMAX = FIELD1 ( I , J , K ) IF ( FIELD1 ( I , J , K ) . LT . RMIN ) RMIN = FIELD1 ( I , J , K ) 100 CONTINUE IF ( ABS ( RMIN ) . GT . RMAX . OR . ABS ( RMIN ) . EQ . RMAX ) THEN XMAX = ABS ( RMIN ) ELSE XMAX = RMAX END IF IF ( XMAX . EQ . 0 ) THEN IA = 0 RETURN END IF A1 = LOG10 ( ( G / 1 0.d0 ) / XMAX ) A2 = LOG10 ( G / XMAX ) IF ( A1 . gt . A2 ) THEN A = A2 ELSE A = A1 END IF IF ( A . GT . 0 ) IA = INT ( A ) IF ( A . LT . 0 ) IA = INT ( A - 1.0 ) RETURN END SUBROUTINE STATIS ( NI , NJ , NK , PHI , RMS , MW , SIG ) !------------------------------------------------------------------ !! calculate mean, rms, stdev !------------------------------------------------------------------ IMPLICIT REAL ( A - H , O - Z ) REAL PHI ( NI , NJ , NK ), SIG , MW , RMS , P N = NI * NJ * NK RMS = 0. MW = 0. DO 10 I = 1 , NI DO 10 J = 1 , NJ DO 10 K = 1 , NK P = PHI ( I , J , K ) RMS = RMS + P * P MW = MW + P 10 CONTINUE RMS = SQRT ( RMS / N ) MW = MW / N IF ( RMS * RMS - MW * MW . LT . 0. ) THEN SIG = 0.0 ELSE SIG = SQRT ( RMS * RMS - MW * MW ) END IF RETURN END","tags":"","loc":"sourcefile/preconvert_new.f90.html","title":"preconvert_new.f90 – Flex_extract: Calculation of etadot"},{"text":"This file depends on sourcefile~~grphreal.f90~~EfferentGraph sourcefile~grphreal.f90 grphreal.f90 sourcefile~phgrreal.f90 phgrreal.f90 sourcefile~grphreal.f90->sourcefile~phgrreal.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Files dependent on this one sourcefile~~grphreal.f90~~AfferentGraph sourcefile~grphreal.f90 grphreal.f90 sourcefile~preconvert_new.f90 preconvert_new.f90 sourcefile~preconvert_new.f90->sourcefile~grphreal.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Modules GRTOPH Source Code grphreal.f90 Source Code MODULE GRTOPH USE PHTOGR CONTAINS SUBROUTINE GRPH213 ( CXMN , FELD , WSAVE , IFAX , Z , W , MLAT , MNAUF , MAXL , MAXB , MLEVEL ) !! DIE ROUTINE F]HRT EINE TRANSFORMATION EINER !! FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN !! RAUM AUF KUGELKOORDINATEN DURCH ! CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE ! CX00,CX01,CX11,CX02,....CXMNAUFMNAUF ! CXM = FOURIERKOEFFIZIENTEN - nur ein Hilfsfeld ! FELD = FELD DER METEOROLOGISCHEN VARIABLEN ! WSAVE = Working Array fuer Fouriertransformation ! Z = LEGENDREFUNKTIONSWERTE ! ! MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN ! MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN ! MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN ! MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN IMPLICIT REAL ( A - H , O - Z ) ! Anzahl der Gitterpunkte pro Breitenkreis des reduzierten ! Gauss'schen Gitters INTEGER MLAT ( MAXB ), ISIZE , IFAX ( 10 , MAXB ) ! FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL * 8 Z ( MAXB / 2 , 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 ) ! LOGICAL*1 USED(((216*217)/2+1)*160) DIMENSION CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MLEVEL ) DIMENSION WSAVE ( 8 * MAXB + 15 , MAXB / 2 ) REAL * 8 W ( MAXB ) DIMENSION IND ( MAXB ) IND ( 1 ) = 0 DO 6 J = 2 , MAXB / 2 IND ( j ) = IND ( J - 1 ) + MLAT ( J - 1 ) 6 CONTINUE !$OMP PARALLEL DO SCHEDULE(DYNAMIC) DO 16 L = 1 , MLEVEL CALL GRPHSUB ( L , IND , CXMN , FELD , WSAVE , IFAX , Z , W , MLAT , MNAUF , MAXL , MAXB , MLEVEL ) 16 CONTINUE !$omp end parallel do RETURN END SUBROUTINE GRPH213 SUBROUTINE GRPHSUB ( L , IND , CXMN , FELD , WSAVE , IFAX , Z , W , MLAT , MNAUF , MAXL , MAXB , MLEVEL ) !! DIE ROUTINE F]HRT EINE TRANSFORMATION EINER !! FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN !! RAUM AUF KUGELKOORDINATEN DURCH ! ! CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE ! CX00,CX01,CX11,CX02,....CXMNAUFMNAUF ! CXM = FOURIERKOEFFIZIENTEN - nur ein Hilfsfeld ! FELD = FELD DER METEOROLOGISCHEN VARIABLEN ! WSAVE = Working Array fuer Fouriertransformation ! Z = LEGENDREFUNKTIONSWERTE ! ! MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN ! MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN ! MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN ! MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN IMPLICIT REAL ( A - H , O - Z ) ! FELD DER FOURIERKOEFFIZIENTEN REAL CXMS ( 4 * ( MNAUF + 1 )) REAL CXMA ( 4 * ( MNAUF + 1 )) REAL , ALLOCATABLE :: CXM (:,:) ! Anzahl der Gitterpunkte pro Breitenkreis des reduzierten ! Gauss'schen Gitters INTEGER MLAT ( MAXB ), ISIZE ! FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( MAXB / 2 , 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 ) ! LOGICAL*1 USED(((216*217)/2+1)*160) REAL CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MLEVEL ) REAL WSAVE ( 8 * MAXB + 15 , MAXB / 2 ) INTEGER IFAX ( 10 , MAXB ) REAL W ( MAXB ) INTEGER IND ( MAXB ) ALLOCATE ( CXM ( 4 * MAXB , MAXB )) DO 5 J = 1 , MAXB / 2 CXMS ( 1 : MLAT ( J )) = FELD ( IND ( J ) + 1 : IND ( J ) + MLAT ( J ), L ) CALL RFOUFTR ( CXMS , WSAVE ( 1 , J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) CXMA ( 1 : MLAT ( J )) = FELD ( MAXL - IND ( J ) - MLAT ( J ) + 1 : MAXL - IND ( J ), L ) CALL RFOUFTR ( CXMA , WSAVE ( 1 , J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) DO 4 I = 1 , 2 * ( MNAUF + 1 ) CXM ( I , J ) = CXMS ( I ) + CXMA ( I ) CXM ( I , MAXB + 1 - J ) = CXMS ( I ) - CXMA ( I ) 4 CONTINUE 5 CONTINUE CALL LGTR213 ( CXMN ( 0 , L ), CXM , Z , W , MLAT , MNAUF , MAXB ) DEALLOCATE ( CXM ) RETURN END SUBROUTINE GRPHSUB ! SUBROUTINE LGTR213 ( CXMN , CXM , Z , W , MLAT , MNAUF , MAXB ) !! DIESE ROUTINE BERECHNET DIE KFFKs CXMN IMPLICIT REAL ( A - H , O - Z ) INTEGER MLAT ( MAXB ) DIMENSION CXM ( 0 : 4 * MAXB - 1 , MAXB ) DIMENSION CXMN ( 0 : 2 * ((( MNAUF + 1 ) * MNAUF ) / 2 + MNAUF ) + 1 ) REAL * 8 Z ( MAXB / 2 , 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 ) REAL * 8 W ( MAXB ), CR , CI , HILF LOGICAL EVEN LL = 0 LLP = 0 DO 1 I = 0 , MNAUF KM = 0 9 KM = KM + 1 IF ( MLAT ( KM ) . LE . 2 * I ) THEN GOTO 9 END IF DO 2 J = I , MNAUF CR = 0 CI = 0 EVEN = MOD ( I + J , 2 ) . EQ . 0 IF ( EVEN ) THEN DO 3 K = KM , MAXB / 2 HILF = W ( K ) * Z ( K , LLP ) CR = CR + CXM ( 2 * I , K ) * HILF CI = CI + CXM ( 2 * I + 1 , K ) * HILF 3 CONTINUE ELSE DO 4 K = KM , MAXB / 2 HILF = W ( K ) * Z ( K , LLP ) CR = CR + CXM ( 2 * I , MAXB + 1 - K ) * HILF CI = CI + CXM ( 2 * I + 1 , MAXB + 1 - K ) * HILF 4 CONTINUE END IF 5 CXMN ( 2 * LL ) = CR CXMN ( 2 * LL + 1 ) = CI LL = LL + 1 LLP = LLP + 1 2 CONTINUE LLP = LLP + 2 1 CONTINUE RETURN END SUBROUTINE LGTR213 SUBROUTINE RFOUFTR ( CXM , TRIGS , IFAX , MNAUF , MAXL , ISIGN ) ! ! BERECHNET DIE FOURIERSUMME MIT EINEM FFT-ALGORITHMUS IMPLICIT REAL ( A - H , O - Z ) DIMENSION CXM ( 0 : 2 * MAXL - 1 ) DIMENSION FELD ( MAXL ), TRIGS ( 2 * MAXL ) DIMENSION WSAVE ( MAXAUF ) INTEGER IFAX ( 10 ) ! NORMIERUNG... WSAVE ( 1 ) = CXM ( MAXL - 1 ) CXM ( 1 : MAXL ) = CXM ( 0 : MAXL - 1 ) / 2 CXM ( 0 ) = WSAVE ( 1 ) / 2 ! CALL CFFTF(MAXL,CXM,WSAVE) CALL FFT99 ( CXM , WSAVE , TRIGS , IFAX , 1 , 1 , MAXL , 1 , - 1 ) RETURN END SUBROUTINE RFOUFTR END MODULE GRTOPH","tags":"","loc":"sourcefile/grphreal.f90.html","title":"grphreal.f90 – Flex_extract: Calculation of etadot"},{"text":"Files dependent on this one sourcefile~~phgrreal.f90~~AfferentGraph sourcefile~phgrreal.f90 phgrreal.f90 sourcefile~ftrafo.f90 ftrafo.f90 sourcefile~ftrafo.f90->sourcefile~phgrreal.f90 sourcefile~preconvert_new.f90 preconvert_new.f90 sourcefile~preconvert_new.f90->sourcefile~phgrreal.f90 sourcefile~preconvert_new.f90->sourcefile~ftrafo.f90 sourcefile~grphreal.f90 grphreal.f90 sourcefile~preconvert_new.f90->sourcefile~grphreal.f90 sourcefile~grphreal.f90->sourcefile~phgrreal.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Modules PHTOGR Source Code phgrreal.f90 Source Code MODULE PHTOGR INTEGER , PARAMETER :: MAXAUF = 36000 CONTAINS SUBROUTINE PHGR213 ( CXMN , FELD , WSAVE , IFAX , Z , MLAT , MNAUF , MAXL , MAXB , MLEVEL ) !! DIE ROUTINE F]HRT EINE TRANSFORMATION EINER !! FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN !! RAUM AUF DAS REDUZIERTE GAUSS'SCHE GITTER DURCH ! ! CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE ! CX00,CX01,CX11,CX02,....CXMNAUFMNAUF ! FELD = FELD DER METEOROLOGISCHEN VARIABLEN !\tWSAVE = Working Array fuer Fouriertransformation ! Z \t = LEGENDREFUNKTIONSWERTE ! ! MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN ! MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN ! MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN ! MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN IMPLICIT NONE !\t\t\tAnzahl der Gitterpunkte auf jedem Breitenkreis INTEGER MLAT ( MAXB / 2 ) INTEGER K , MAXL , MAXB , MLEVEL , MNAUF INTEGER IND ( MAXB ) ! FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , MAXB / 2 ) REAL CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MLEVEL ) REAL WSAVE ( 8 * MAXB + 15 , MAXB / 2 ) INTEGER :: IFAX ( 10 , MAXB ) IND ( 1 ) = 0 DO 7 K = 2 , MAXB / 2 IND ( K ) = IND ( K - 1 ) + MLAT ( K - 1 ) 7 CONTINUE !$OMP PARALLEL DO SCHEDULE(DYNAMIC) DO 17 K = 1 , MAXB / 2 CALL PHSYM ( K , IND , CXMN , FELD , Z , WSAVE , IFAX , MLAT , MNAUF , MAXL , MAXB , MLEVEL ) 17 CONTINUE !$OMP END PARALLEL DO RETURN END SUBROUTINE PHGR213 SUBROUTINE PHSYM ( K , IND , CXMN , FELD , Z , WSAVE , IFAX , MLAT , MNAUF , MAXL , MAXB , MLEVEL ) IMPLICIT NONE INTEGER MLAT ( MAXB / 2 ) INTEGER K , L , I , J , LLS , LLPS , LL , LLP , MAXL , MAXB , MLEVEL , MNAUF INTEGER IND ( MAXB ) INTEGER :: IFAX ( 10 , MAXB ) ! FELD DER FOURIERKOEFFIZIENTEN REAL :: CXMS ( 0 : MAXAUF - 1 ), CXMA ( 0 : MAXAUF - 1 ) ! FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , MAXB / 2 ) REAL ACR , ACI , SCR , SCI REAL CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MLEVEL ) REAL WSAVE ( 8 * MAXB + 15 , MAXB / 2 ) DO 6 L = 1 , MLEVEL LL = 0 LLP = 0 DO 1 I = 0 , MNAUF SCR = 0.D0 SCI = 0.D0 ACR = 0.D0 ACI = 0.D0 LLS = LL LLPS = LLP IF ( 2 * I + 1 . LT . MLAT ( K )) THEN !\t Innerste Schleife aufgespalten um if-Abfrage zu sparen DO 18 J = I , MNAUF , 2 SCR = SCR + Z ( LLP , K ) * CXMN ( 2 * LL , L ) SCI = SCI + Z ( LLP , K ) * CXMN ( 2 * LL + 1 , L ) LL = LL + 2 LLP = LLP + 2 18 CONTINUE LL = LLS + 1 LLP = LLPS + 1 DO 19 J = I + 1 , MNAUF , 2 ACR = ACR + Z ( LLP , K ) * CXMN ( 2 * LL , L ) ACI = ACI + Z ( LLP , K ) * CXMN ( 2 * LL + 1 , L ) LL = LL + 2 LLP = LLP + 2 19 CONTINUE END IF LL = LLS + ( MNAUF - I + 1 ) LLP = LLPS + ( MNAUF - I + 3 ) CXMS ( 2 * I ) = SCR + ACR CXMS ( 2 * I + 1 ) = SCI + ACI CXMA ( 2 * I ) = SCR - ACR CXMA ( 2 * I + 1 ) = SCI - ACI 1 CONTINUE ! CALL FOURTR(CXMS,FELD(IND(k)+1,L),WSAVE(:,K),MNAUF,*MLAT(K),1) ! CALL FOURTR(CXMA,FELD(MAXL-IND(k)-MLAT(K)+1,L),WSAVE(:,K),MNAUF,MLAT(K),1) CALL RFOURTR ( CXMS , WSAVE (:, K ), IFAX (:, K ), MNAUF , MLAT ( K ), 1 ) FELD ( IND ( k ) + 1 : IND ( K ) + MLAT ( K ), L ) = CXMS ( 0 : MLAT ( K ) - 1 ) CALL RFOURTR ( CXMA , WSAVE (:, K ), IFAX (:, K ), MNAUF , MLAT ( K ), 1 ) FELD ( MAXL - IND ( k ) - MLAT ( K ) + 1 : MAXL - IND ( k ), L ) = CXMA ( 0 : MLAT ( K ) - 1 ) ! WRITE(*,*) IND+1,FELD(IND+1,L) 6 CONTINUE END SUBROUTINE PHSYM SUBROUTINE PHGCUT ( CXMN , FELD , WSAVE , IFAX , Z , & MNAUF , MMAX , MAUF , MANF , MAXL , MAXB , MLEVEL ) !! DIE ROUTINE FUEHRT EINE TRANSFORMATION EINER !! FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN !! RAUM AUF KUGELKOORDINATEN DURCH. Es kann ein Teilausschnitt !!\tDer Erde angegeben werden. Diese Routine ist langsamer als phgrph ! CXMN = SPEKTRALKOEFFIZIENTEN IN DER REIHENFOLGE ! CX00,CX01,CX11,CX02,....CXMNAUFMNAUF ! FELD = FELD DER METEOROLOGISCHEN VARIABLEN ! BREITE = SINUS DER GEOGRAFISCHEN BREITEN ! ! MNAUF ANZAHL DER FOURIERKOEFFIZIENTEN ! MAUF ANZAHL DER LAENGEN UND DER FOURIERKOEFFIZIENTEN ! MANF ANFANG DES LAENGENBEREICHS FUER DAS GITTER, ! AUF DAS INTERPOLIERT WERDEN SOLL ! MAXL ANZAHL DER FUER DAS GITTER BENUTZTEN LAENGEN ! MAXB ANZAHL DER FUER DAS GITTER BENOETIGTEN BREITEN ! MLEVEL ANZAHL DER LEVELS, DIE TRANSFORMIERT WERDEN IMPLICIT REAL ( A - H , O - Z ) ! FELD DER FOURIERKOEFFIZIENTEN ! FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( 0 :(( MMAX + 3 ) * ( MMAX + 4 )) / 2 , MAXB ) DIMENSION CXMN ( 0 :( MMAX + 1 ) * ( MMAX + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MAXB , MLEVEL ) DIMENSION WSAVE ( 4 * MAUF + 15 ) INTEGER :: IFAX ( 10 ) LOGICAL SYM ! write(*,*)mauf,mnauf,manf,maxl IF ( MAUF . LE . MNAUF ) WRITE ( * , * ) 'TOO COARSE LONGITUDE RESOLUTION' IF ( MANF . LT . 1 . OR . MAXL . LT . 1 . OR . & MANF . GT . MAUF . OR . MAXL . GT . MAUF )) THEN WRITE ( * , * ) 'WRONG LONGITUDE RANGE' , MANF , MAXL STOP END IF ! Pruefe, ob Ausgabegitter symmetrisch zum Aequator ist ! Wenn ja soll Symmetrie der Legendrepolynome ausgenutzt werden IF ( MAXB . GT . 4 ) THEN SYM = . TRUE . DO 11 J = 5 , 5 IF ( ABS ( ABS ( Z ( 100 , J )) - ABS ( Z ( 100 , MAXB + 1 - J ))) . GT . 1E-11 ) SYM = . FALSE . !\t WRITE(*,*) ABS(Z(100,J)),ABS(Z(100,MAXB+1-J)) 11 CONTINUE WRITE ( * , * ) 'Symmetrisch: ' , SYM ELSE SYM = . FALSE . END IF IF ( SYM ) THEN !$OMP PARALLEL DO DO J = 1 ,( MAXB + 1 ) / 2 CALL PHSYMCUT ( J , CXMN , FELD , Z , WSAVE , IFAX , MAUF , MNAUF , MAXL , MAXB , MLEVEL , MANF ) END DO !$OMP END PARALLEL DO ELSE !$OMP PARALLEL DO DO J = 1 , MAXB CALL PHGPNS ( CXMN , FELD , Z , WSAVE , IFAX , J , MNAUF , MAUF , MANF , MAXL , MAXB , MLEVEL ) END DO !$OMP END PARALLEL DO END IF RETURN END SUBROUTINE PHGCUT SUBROUTINE PHSYMCUT ( J , CXMN , FELD , Z , WSAVE , IFAX , MAUF , MNAUF , MAXL , MAXB , MLEVEL , MANF ) IMPLICIT REAL ( A - H , O - Z ) ! FELD DER FOURIERKOEFFIZIENTEN REAL :: CXM ( 0 : MAXAUF - 1 ), CXMA ( 0 : MAXAUF - 1 ) ! FELD DER LEGENDREPOLYNOME FUER EINE BREITE REAL Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , MAXB ) REAL SCR , SCI , ACR , ACI DIMENSION CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL FELD ( MAXL , MAXB , MLEVEL ) DIMENSION WSAVE ( 4 * MAUF + 15 ) INTEGER :: IFAX ( 10 ) DO 16 L = 1 , MLEVEL LL = 0 LLP = 0 DO 17 I = 0 , MNAUF SCR = 0.D0 SCI = 0.D0 ACR = 0.D0 ACI = 0.D0 LLS = LL LLPS = LLP !\t Innerste Schleife aufgespalten um if-Abfrage zu sparen DO 18 K = I , MNAUF , 2 SCR = SCR + Z ( LLP , J ) * CXMN ( 2 * LL , L ) SCI = SCI + Z ( LLP , J ) * CXMN ( 2 * LL + 1 , L ) LL = LL + 2 LLP = LLP + 2 18 CONTINUE LL = LLS + 1 LLP = LLPS + 1 DO 19 K = I + 1 , MNAUF , 2 ACR = ACR + Z ( LLP , J ) * CXMN ( 2 * LL , L ) ACI = ACI + Z ( LLP , J ) * CXMN ( 2 * LL + 1 , L ) LL = LL + 2 LLP = LLP + 2 19 CONTINUE LL = LLS + MNAUF - I + 1 LLP = LLPS + MNAUF - I + 3 CXM ( 2 * I ) = SCR + ACR CXM ( 2 * I + 1 ) = SCI + ACI CXMA ( 2 * I ) = SCR - ACR CXMA ( 2 * I + 1 ) = SCI - ACI 17 CONTINUE CALL RFOURTR ( CXM , WSAVE , IFAX , MNAUF , MAUF , 1 ) DO 26 I = 0 , MAXL - 1 IF ( MANF + I . LE . MAUF ) THEN FELD ( I + 1 , J , L ) = CXM ( MANF + I - 1 ) ELSE FELD ( I + 1 , J , L ) = CXM ( MANF - MAUF + I - 1 ) END IF 26 CONTINUE CALL RFOURTR ( CXMA , WSAVE , IFAX , MNAUF , MAUF , 1 ) DO 36 I = 0 , MAXL - 1 IF ( MANF + I . LE . MAUF ) THEN FELD ( I + 1 , MAXB + 1 - J , L ) = CXMA ( MANF + I - 1 ) ELSE FELD ( I + 1 , MAXB + 1 - J , L ) = CXMA ( MANF - MAUF + I - 1 ) END IF 36 CONTINUE 16 CONTINUE END SUBROUTINE PHSYMCUT SUBROUTINE PHGPNS ( CXMN , FELD , Z , WSAVE , IFAX , J , MNAUF , MAUF , MANF , MAXL , MAXB , MLEVEL ) IMPLICIT NONE INTEGER , INTENT ( IN ) :: MNAUF , MAUF , MANF , J , MAXL , MAXB , MLEVEL REAL :: CXM ( 0 : MAXAUF - 1 ) REAL , INTENT ( IN ) :: Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 , MAXB ) REAL , INTENT ( IN ) :: CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , MLEVEL ) REAL , INTENT ( IN ) :: WSAVE ( 4 * MAUF + 15 ) REAL :: FELD ( MAXL , MAXB , MLEVEL ) INTEGER :: IFAX ( 10 ) INTEGER I , L DO L = 1 , MLEVEL CALL LEGTR ( CXMN (:, L ), CXM , Z (:, J ), MNAUF , MAUF ) CALL RFOURTR ( CXM , WSAVE , IFAX , MNAUF , MAUF , 1 ) DO I = 0 , MAXL - 1 IF ( MANF + I . LE . MAUF ) THEN FELD ( I + 1 , J , L ) = CXM ( MANF + I - 1 ) ELSE FELD ( I + 1 , J , L ) = CXM ( MANF - MAUF + I - 1 ) END IF END DO END DO END SUBROUTINE PHGPNS SUBROUTINE LEGTR ( CXMN , CXM , Z , MNAUF , MAUF ) !! DIESE ROUTINE BERECHNET DIE FOURIERKOEFFIZIENTEN CXM IMPLICIT NONE INTEGER MNAUF , MAUF , LL , LLP , I , J REAL CXM ( 0 : MAXAUF - 1 ) REAL CXMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 ) REAL Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 ) REAL CI , CR LL = 0 LLP = 0 DO 1 I = 0 , MNAUF CR = 0.D0 CI = 0.D0 DO 2 J = I , MNAUF CR = CR + Z ( LLP ) * CXMN ( 2 * LL ) CI = CI + Z ( LLP ) * CXMN ( 2 * LL + 1 ) LL = LL + 1 LLP = LLP + 1 2 CONTINUE LLP = LLP + 2 CXM ( 2 * I ) = CR CXM ( 2 * I + 1 ) = CI 1 CONTINUE RETURN END SUBROUTINE LEGTR SUBROUTINE RFOURTR ( CXM , TRIGS , IFAX , MNAUF , MAXL , ISIGN ) !! BERECHNET DIE FOURIERSUMME MIT EINEM FFT-ALGORITHMUS IMPLICIT REAL ( A - H , O - Z ) DIMENSION CXM ( 0 : MAXAUF - 1 ) REAL :: WSAVE ( 2 * MAXL ), TRIGS ( 2 * MAXL ) INTEGER IFAX ( 10 ) DO I = MNAUF + 1 , MAXL - 1 CXM ( 2 * I ) = 0.0 CXM ( 2 * I + 1 ) = 0.0 END DO CALL FFT99 ( CXM , WSAVE , TRIGS , IFAX , 1 , 1 , MAXL , 1 , 1 ) DO I = 0 , MAXL - 1 CXM ( I ) = CXM ( I + 1 ) END DO RETURN END SUBROUTINE RFOURTR SUBROUTINE GAULEG ( X1 , X2 , X , W , N ) !! BERECHNET DIE GAUSS+SCHEN BREITEN IMPLICIT REAL ( A - H , O - Z ) DIMENSION X ( N ), W ( N ) PARAMETER ( EPS = 3.D-14 ) M = ( N + 1 ) / 2 XM = 0.5D0 * ( X2 + X1 ) XL = 0.5D0 * ( X2 - X1 ) DO 12 I = 1 , M Z = DCOS ( 3.141592654D0 * ( I - . 25 D0 ) / ( N + . 5 D0 )) 1 CONTINUE P1 = 1.D0 P2 = 0.D0 DO 11 J = 1 , N P3 = P2 P2 = P1 P1 = (( 2.D0 * J - 1.D0 ) * Z * P2 - ( J - 1.D0 ) * P3 ) / J 11 CONTINUE PP = N * ( Z * P1 - P2 ) / ( Z * Z - 1.D0 ) Z1 = Z Z = Z1 - P1 / PP IF ( ABS ( Z - Z1 ) . GT . EPS ) GO TO 1 X ( I ) = XM - XL * Z X ( N + 1 - I ) = XM + XL * Z W ( I ) = 2.D0 * XL / (( 1.D0 - Z * Z ) * PP * PP ) W ( N + 1 - I ) = W ( I ) 12 CONTINUE RETURN END SUBROUTINE GAULEG SUBROUTINE PLGNFA ( LL , X , Z ) !! PLGNDN BERECHNET ALLE NORMIERTEN ASSOZIIERTEN !! LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X) !! UND SCHREIBT SIE IN DAS FELD Z ! Die Polynome sind wie im ECMWF indiziert, d.h. ! P00,P10,P11,P20,P21,P22,... !\tAnsonsten ist die Routine analog zu PLGNDN ! X IST DER COSINUS DES ZENITWINKELS ODER ! DER SINUS DER GEOGRAFISCHEN BREITE IMPLICIT REAL ( A - H , O - Z ) DIMENSION Z ( 0 :(( LL + 3 ) * ( LL + 4 )) / 2 ) L = LL + 2 I = 1 Z ( 0 ) = 1.D0 FACT = 1.D0 POT = 1.D0 SOMX2 = DSQRT ( 1.D0 - X * X ) DO 14 J = 0 , L DJ = DBLE ( J ) IF ( J . GT . 0 ) THEN FACT = FACT * ( 2.D0 * DJ - 1.D0 ) / ( 2.D0 * DJ ) POT = POT * SOMX2 Z ( I ) = DSQRT (( 2.D0 * DJ + 1.D0 ) * FACT ) * POT I = I + 1 END IF IF ( J . LT . L ) THEN Z ( I ) = X * DSQRT (( 4.D0 * DJ * DJ + 8.D0 * DJ + 3.D0 ) / ( 2.D0 * DJ + 1.D0 )) * Z ( I - 1 ) I = I + 1 END IF DK = DJ + 2.D0 DO 14 K = J + 2 , L DDK = ( DK * DK - DJ * DJ ) Z ( I ) = X * DSQRT (( 4.D0 * DK * DK - 1.D0 ) / DDK ) * Z ( I - 1 ) - & DSQRT ((( 2.D0 * DK + 1.D0 ) * ( DK - DJ - 1.D0 ) * ( DK + DJ - 1.D0 )) / & (( 2.D0 * DK - 3.D0 ) * DDK )) * Z ( I - 2 ) DK = DK + 1.D0 I = I + 1 14 CONTINUE RETURN END SUBROUTINE PLGNFA SUBROUTINE DPLGND ( MNAUF , Z , DZ ) !! DPLGND BERECHNET DIE ABLEITUNG DER NORMIERTEN ASSOZIIERTEN !! LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X) !! UND SCHREIBT SIE IN DAS FELD DZ ! DIE REIHENFOLGE IST ! P00(X),P01(X),P11(X),P02(X),P12(X),P22(X),..PLL(X) IMPLICIT REAL ( A - H , O - Z ) DIMENSION Z ( 0 :(( MNAUF + 3 ) * ( MNAUF + 4 )) / 2 ) DIMENSION DZ ( 0 :(( MNAUF + 2 ) * ( MNAUF + 3 )) / 2 ) IF ( Z ( 0 ) . NE . 1.D0 ) THEN WRITE ( * , * ) 'DPLGND: Z(0) must be 1.0' STOP END IF LLP = 0 LLH = 0 DO 1 I = 0 , MNAUF + 1 DO 2 J = I , MNAUF + 1 IF ( I . EQ . J ) THEN WURZELA = DSQRT ( DBLE (( J + 1 ) * ( J + 1 ) - I * I ) / DBLE ( 4 * ( J + 1 ) * ( J + 1 ) - 1 )) DZ ( LLH ) = DBLE ( J ) * WURZELA * Z ( LLP + 1 ) ELSE WURZELB = DSQRT ( DBLE (( J + 1 ) * ( J + 1 ) - I * I ) / DBLE ( 4 * ( J + 1 ) * ( J + 1 ) - 1 )) DZ ( LLH ) = DBLE ( J ) * WURZELB * Z ( LLP + 1 ) - DBLE ( J + 1 ) * WURZELA * Z ( LLP - 1 ) WURZELA = WURZELB END IF LLH = LLH + 1 LLP = LLP + 1 2 CONTINUE LLP = LLP + 1 1 CONTINUE RETURN END SUBROUTINE DPLGND SUBROUTINE SPFILTER ( FELDMN , MM , MMAX ) !! Spectral Filter of Sardeshmukh and Hoskins (1984, MWR) ! MM=Spectral truncation of field ! MMAX= Spectral truncation of filter IMPLICIT NONE INTEGER MM , MMAX , I , J , K , L REAL FELDMN ( 0 :( MM + 1 ) * ( MM + 2 ) - 1 ) REAL KMAX , SMAX , FAK SMAX = 0.1 KMAX =- ALOG ( SMAX ) KMAX = KMAX / ( float ( MMAX ) * float ( MMAX + 1 )) ** 2 ! WRITE(*,*)'alogsmax',alog(smax),'KMAX:',KMAX L = 0 DO I = 0 , MM DO J = I , MM ! WRITE(*,*) I,J,FELD(K),FELD(K)*EXP(-KMAX*(J*(J+1))**2) IF ( J . LE . MMAX ) THEN ! FAK=EXP(-KMAX*(J*(J+1))**2) FAK = 1.0 FELDMN ( 2 * L ) = FELDMN ( 2 * L ) * FAK FELDMN ( 2 * L + 1 ) = FELDMN ( 2 * L + 1 ) * FAK ELSE FELDMN ( 2 * L ) = 0. FELDMN ( 2 * L + 1 ) = 0. END IF L = L + 1 END DO END DO END SUBROUTINE SPFILTER END MODULE PHTOGR","tags":"","loc":"sourcefile/phgrreal.f90.html","title":"phgrreal.f90 – Flex_extract: Calculation of etadot"},{"text":"Contents Subroutines POSNAM Source Code posnam.f90 Source Code SUBROUTINE POSNAM ( KULNAM , CDNAML ) !! position in namelist file. ! author: Mats Hamrud, ECMWF INTEGER , INTENT ( IN ) :: KULNAM CHARACTER * ( * ), INTENT ( IN ) :: CDNAML CHARACTER * 120 CLINE CHARACTER * 1 CLTEST REWIND ( KULNAM ) ILEN = LEN ( CDNAML ) 102 CONTINUE CLINE = ' ' READ ( KULNAM , '(A)' ) CLINE IND1 = INDEX ( CLINE , '&' // CDNAML ) IF ( IND1 . EQ . 0 ) GO TO 102 CLTEST = CLINE ( IND1 + ILEN + 1 : IND1 + ILEN + 1 ) IF ( LGE ( CLTEST , '0' ) . AND . LLE ( CLTEST , '9' ) . OR . & LGE ( CLTEST , 'A' ) . AND . LLE ( CLTEST , 'Z' )) GOTO 102 BACKSPACE ( KULNAM ) RETURN END SUBROUTINE POSNAM","tags":"","loc":"sourcefile/posnam.f90.html","title":"posnam.f90 – Flex_extract: Calculation of etadot"},{"text":"This file depends on sourcefile~~ftrafo.f90~~EfferentGraph sourcefile~ftrafo.f90 ftrafo.f90 sourcefile~phgrreal.f90 phgrreal.f90 sourcefile~ftrafo.f90->sourcefile~phgrreal.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Files dependent on this one sourcefile~~ftrafo.f90~~AfferentGraph sourcefile~ftrafo.f90 ftrafo.f90 sourcefile~preconvert_new.f90 preconvert_new.f90 sourcefile~preconvert_new.f90->sourcefile~ftrafo.f90 Help × Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\n is dependent upon another if the latter must be compiled before the former\n can be. Contents Modules FTRAFO Source Code ftrafo.f90 Source Code MODULE FTRAFO !! Implementation of the spectral transformation using reduced the Gaussian grid CONTAINS ! Implementierung der spektralen Transformationsmethode unter Verwendung ! des reduzierten Gauss'schen Gitters SUBROUTINE VDTOUV ( XMN , XLAM , XPHI , GWSAVE , IFAX , P , MLAT , MNAUF , NI , NJ , NK ) !! Berechnung der scale winds aus Vorticity und Divergenz !! uebergibt man in XMN die Divergenz, so wird der divergente Anteil des !! Windes (XPHI=Ud,XPHI=Vd) zurueckgegeben, uebergibt man die Vorticity, so !! erhaelt man den rotationellen Wind (XLAM=Vrot,XPHI=-Urot). !! Summiert man beide, erhaelt man den gesamten Scale wind ! GWSAVE ist ein Hilfsfeld fuer die FFT ! P enthaelt die assoziierten Legendrepolynome, H deren Ableitung ! MLAT enthaelt die Anzahl der Gitterpunkte pro Breitenkreis ! MNAUF gibt die spektrale Aufloesung an, ! NI = Anzahl der Gauss'schen Gitterpunkte pro Flaeche ! NJ = Anzahl der Gauss'schen Breiten, ! NK = Anzahl der Niveaus USE PHTOGR IMPLICIT NONE INTEGER J , N , NI , NJ , NK , MNAUF , GGIND ( NJ / 2 ) INTEGER MLAT ( NJ ), IFAX ( 10 , NJ ) REAL XMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , NK ) REAL P ( 0 :( MNAUF + 3 ) * ( MNAUF + 4 ) / 2 , NJ / 2 ) REAL H ( 0 :( MNAUF + 2 ) * ( MNAUF + 3 ) / 2 ) REAL XLAM ( NI , NK ), XPHI ( NI , NK ) REAL GWSAVE ( 8 * NJ + 15 , NJ / 2 ) REAL SCR , SCI , ACR , ACI , MUSCR , MUSCI , MUACR , MUACI REAL RT , IT GGIND ( 1 ) = 0 DO 4 J = 2 , NJ / 2 GGIND ( J ) = GGIND ( J - 1 ) + MLAT ( J - 1 ) 4 CONTINUE !$OMP PARALLEL DO SCHEDULE(DYNAMIC) DO 5 J = 1 , NJ / 2 CALL VDUVSUB ( J , XMN , XLAM , XPHI , GWSAVE , IFAX , P , GGIND ( J ), MLAT , MNAUF , NI , NJ , NK ) 5 CONTINUE !$OMP END PARALLEL DO RETURN END SUBROUTINE VDTOUV SUBROUTINE VDUVSUB ( J , XMN , XLAM , XPHI , GWSAVE , IFAX , P , GGIND , MLAT , MNAUF , NI , NJ , NK ) USE PHTOGR IMPLICIT NONE INTEGER J , K , M , N , NI , NJ , NK , MNAUF , GGIND , LL , LLP , LLH , LLS , LLPS , LLHS INTEGER MLAT ( NJ ), IFAX ( 10 , NJ ) REAL UFOUC ( 0 : MAXAUF ), MUFOUC ( 0 : MAXAUF ) REAL VFOUC ( 0 : MAXAUF ), MVFOUC ( 0 : MAXAUF ) REAL XMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , NK ) REAL P ( 0 :( MNAUF + 3 ) * ( MNAUF + 4 ) / 2 , NJ / 2 ) REAL H ( 0 :( MNAUF + 2 ) * ( MNAUF + 3 ) / 2 ) REAL XLAM ( NI , NK ), XPHI ( NI , NK ) REAL GWSAVE ( 8 * NJ + 15 , NJ / 2 ) REAL ERAD , SCR , SCI , ACR , ACI , MUSCR , MUSCI , MUACR , MUACI REAL FAC ( 0 : MNAUF ), RT , IT ERAD = 636747 0.D0 FAC ( 0 ) = 0.D0 DO 12 N = 1 , MNAUF FAC ( N ) =- ERAD / DBLE ( N ) / DBLE ( N + 1 ) 12 CONTINUE CALL DPLGND ( MNAUF , P ( 0 , J ), H ) DO 3 K = 1 , NK LL = 0 LLP = 0 LLH = 0 DO 2 M = 0 , MNAUF SCR = 0.D0 SCI = 0.D0 ACR = 0.D0 ACI = 0.D0 MUSCR = 0.D0 MUSCI = 0.D0 MUACR = 0.D0 MUACI = 0.D0 LLS = LL LLPS = LLP LLHS = LLH IF ( 2 * M + 1 . LT . MLAT ( J )) THEN DO 1 N = M , MNAUF , 2 RT = XMN ( 2 * LL , K ) * FAC ( N ) IT = XMN ( 2 * LL + 1 , K ) * FAC ( N ) SCR = SCR + RT * P ( LLP , J ) SCI = SCI + IT * P ( LLP , J ) MUACR = MUACR + RT * H ( LLH ) MUACI = MUACI + IT * H ( LLH ) LL = LL + 2 LLP = LLP + 2 LLH = LLH + 2 1 CONTINUE LL = LLS + 1 LLP = LLPS + 1 LLH = LLHS + 1 DO 11 N = M + 1 , MNAUF , 2 RT = XMN ( 2 * LL , K ) * FAC ( N ) IT = XMN ( 2 * LL + 1 , K ) * FAC ( N ) ACR = ACR + RT * P ( LLP , J ) ACI = ACI + IT * P ( LLP , J ) MUSCR = MUSCR + RT * H ( LLH ) MUSCI = MUSCI + IT * H ( LLH ) LL = LL + 2 LLP = LLP + 2 LLH = LLH + 2 11 CONTINUE END IF LL = LLS + ( MNAUF - M + 1 ) LLP = LLPS + ( MNAUF - M + 3 ) LLH = LLHS + ( MNAUF - M + 2 ) UFOUC ( 2 * M ) =- M * ( SCI - ACI ) UFOUC ( 2 * M + 1 ) = M * ( SCR - ACR ) VFOUC ( 2 * M ) =- M * ( SCI + ACI ) VFOUC ( 2 * M + 1 ) = M * ( SCR + ACR ) MUFOUC ( 2 * M ) =- ( MUSCR - MUACR ) MUFOUC ( 2 * M + 1 ) =- ( MUSCI - MUACI ) MVFOUC ( 2 * M ) =- ( MUSCR + MUACR ) MVFOUC ( 2 * M + 1 ) =- ( MUSCI + MUACI ) 2 CONTINUE CALL RFOURTR ( VFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XLAM ( GGIND + 1 : GGIND + MLAT ( J ), K ) = VFOUC ( 0 : MLAT ( J ) - 1 ) CALL RFOURTR ( UFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XLAM ( NI - GGIND - MLAT ( J ) + 1 : NI - GGIND , K ) = UFOUC ( 0 : MLAT ( J ) - 1 ) CALL RFOURTR ( MVFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XPHI ( GGIND + 1 : GGIND + MLAT ( J ), K ) = MVFOUC ( 0 : MLAT ( J ) - 1 ) CALL RFOURTR ( MUFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XPHI ( NI - GGIND - MLAT ( J ) + 1 : NI - GGIND , K ) = MUFOUC ( 0 : MLAT ( J ) - 1 ) 3 CONTINUE RETURN END SUBROUTINE VDUVSUB SUBROUTINE PHGRAD ( XMN , XLAM , XPHI , GWSAVE , IFAX , P , H , MLAT , MNAUF , NI , NJ , NK ) !! Berechnung des Gradienten eines Skalars aus dem Feld des !! Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der !! Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. ! GWSAVE ist ein Hilfsfeld fuer die FFT ! P enthaelt die assoziierten Legendrepolynome, H deren Ableitung ! MLAT enthaelt die Anzahl der Gitterpunkte pro Breitenkreis ! MNAUF gibt die spektrale Aufloesung an, ! NI = Anzahl der Gauss'schen Gitterpunkte, ! NJ = Anzahl der Gauss'schen Breiten, ! NK = Anzahl der Niveaus USE PHTOGR IMPLICIT NONE INTEGER J , K , M , N , NI , NJ , NK , MNAUF , GGIND , LL , LLP , LLH , LLS , LLPS , LLHS INTEGERMLAT ( NJ ), IFAX ( 10 , NJ ) REAL UFOUC ( 0 : MAXAUF ), MUFOUC ( 0 : MAXAUF ) REAL VFOUC ( 0 : MAXAUF ), MVFOUC ( 0 : MAXAUF ) REAL XMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , NK ) REAL P ( 0 :( MNAUF + 3 ) * ( MNAUF + 4 ) / 2 , NJ / 2 ) REAL H ( 0 :( MNAUF + 2 ) * ( MNAUF + 3 ) / 2 ) REAL XLAM ( NI , NK ), XPHI ( NI , NK ) REAL GWSAVE ( 8 * NJ + 15 , NJ / 2 ) REAL ERAD REAL SCR , SCI , ACR , ACI , MUSCR , MUSCI , MUACR , MUACI , RT , IT ERAD = 636747 0.0 GGIND = 0 DO 4 J = 1 , NJ / 2 CALL DPLGND ( MNAUF , P ( 0 , J ), H ) DO 3 K = 1 , NK LL = 0 LLP = 0 LLH = 0 DO 2 M = 0 , MNAUF SCR = 0.D0 SCI = 0.D0 ACR = 0.D0 ACI = 0.D0 MUSCR = 0.D0 MUSCI = 0.D0 MUACR = 0.D0 MUACI = 0.D0 LLS = LL LLPS = LLP LLHS = LLH IF ( 2 * M + 1 . LT . MLAT ( J )) THEN DO 1 N = M , MNAUF , 2 RT = XMN ( 2 * LL , K ) IT = XMN ( 2 * LL + 1 , K ) SCR = SCR + RT * P ( LLP , J ) SCI = SCI + IT * P ( LLP , J ) MUACR = MUACR + RT * H ( LLH ) MUACI = MUACI + IT * H ( LLH ) LL = LL + 2 LLP = LLP + 2 LLH = LLH + 2 1 CONTINUE LL = LLS + 1 LLP = LLPS + 1 LLH = LLHS + 1 DO 11 N = M + 1 , MNAUF , 2 RT = XMN ( 2 * LL , K ) IT = XMN ( 2 * LL + 1 , K ) ACR = ACR + RT * P ( LLP , J ) ACI = ACI + IT * P ( LLP , J ) MUSCR = MUSCR + RT * H ( LLH ) MUSCI = MUSCI + IT * H ( LLH ) LL = LL + 2 LLP = LLP + 2 LLH = LLH + 2 11 CONTINUE END IF LL = LLS + ( MNAUF - M + 1 ) LLP = LLPS + ( MNAUF - M + 3 ) LLH = LLHS + ( MNAUF - M + 2 ) UFOUC ( 2 * M ) =- M * ( SCI - ACI ) / ERAD UFOUC ( 2 * M + 1 ) = M * ( SCR - ACR ) / ERAD VFOUC ( 2 * M ) =- M * ( SCI + ACI ) / ERAD VFOUC ( 2 * M + 1 ) = M * ( SCR + ACR ) / ERAD MUFOUC ( 2 * M ) =- ( MUSCR - MUACR ) / ERAD MUFOUC ( 2 * M + 1 ) =- ( MUSCI - MUACI ) / ERAD MVFOUC ( 2 * M ) =- ( MUSCR + MUACR ) / ERAD MVFOUC ( 2 * M + 1 ) =- ( MUSCI + MUACI ) / ERAD 2 CONTINUE CALL RFOURTR ( VFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XLAM ( GGIND + 1 : GGIND + MLAT ( J ), K ) = VFOUC ( 0 : MLAT ( J ) - 1 ) CALL RFOURTR ( UFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XLAM ( NI - GGIND - MLAT ( J ) + 1 : NI - GGIND , K ) = UFOUC ( 0 : MLAT ( J ) - 1 ) CALL RFOURTR ( MVFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XPHI ( GGIND + 1 : GGIND + MLAT ( J ), K ) = MVFOUC ( 0 : MLAT ( J ) - 1 ) CALL RFOURTR ( MUFOUC , GWSAVE (:, J ), IFAX (:, J ), MNAUF , MLAT ( J ), 1 ) XPHI ( NI - GGIND - MLAT ( J ) + 1 : NI - GGIND , K ) = MUFOUC ( 0 : MLAT ( J ) - 1 ) 3 CONTINUE GGIND = GGIND + MLAT ( J ) 4 CONTINUE RETURN END SUBROUTINE PHGRAD SUBROUTINE PHGRACUT ( XMN , XLAM , XPHI , GWSAVE , IFAX , P , H , MAUF , MNAUF , NI , NJ , MANF , NK ) !! Berechnung des Gradienten eines Skalars aus dem Feld des !! Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der !! Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. ! GWSAVE ist ein Hilfsfeld fuer die FFT ! P enthaelt die assoziierten Legendrepolynome, H deren Ableitung ! MLAT enthaelt die Anzahl der Gitterpunkte pro Breitenkreis ! MNAUF gibt die spektrale Aufloesung an, ! NI = Anzahl der Gauss'schen Gitterpunkte, ! NJ = Anzahl der Gauss'schen Breiten, ! NK = Anzahl der Niveaus USE PHTOGR IMPLICIT NONE INTEGER J , K , M , N , NI , NJ , NK , MNAUF , GGIND , LL , LLP , LLH , LLS , LLPS , LLHS INTEGER MAUF , MANF , I , IFAX ( 10 ) REAL UFOUC ( 0 : MAXAUF ), MUFOUC ( 0 : MAXAUF ) REAL VFOUC ( 0 : MAXAUF ), MVFOUC ( 0 : MAXAUF ) REAL XMN ( 0 :( MNAUF + 1 ) * ( MNAUF + 2 ) - 1 , NK ) REAL P ( 0 :( MNAUF + 3 ) * ( MNAUF + 4 ) / 2 , NJ ) REAL H ( 0 :( MNAUF + 2 ) * ( MNAUF + 3 ) / 2 ) REAL XLAM ( NI , NJ , NK ), XPHI ( NI , NJ , NK ) REAL HLAM ( MAXAUF , 2 ), HPHI ( MAXAUF , 2 ) REAL GWSAVE ( 4 * MAUF + 15 ) REAL ERAD REAL SCR , SCI , ACR , ACI , MUSCR , MUSCI , MUACR , MUACI , RT , IT ERAD = 636747 0.0 GGIND = 0 DO 4 J = 1 , NJ CALL DPLGND ( MNAUF , P ( 0 , J ), H ) DO 3 K = 1 , NK LL = 0 LLP = 0 LLH = 0 DO 2 M = 0 , MNAUF SCR = 0.D0 SCI = 0.D0 ACR = 0.D0 ACI = 0.D0 MUSCR = 0.D0 MUSCI = 0.D0 MUACR = 0.D0 MUACI = 0.D0 LLS = LL LLPS = LLP LLHS = LLH IF ( 2 * M + 1 . LT . MAUF ) THEN DO 1 N = M , MNAUF , 2 RT = XMN ( 2 * LL , K ) IT = XMN ( 2 * LL + 1 , K ) SCR = SCR + RT * P ( LLP , J ) SCI = SCI + IT * P ( LLP , J ) MUACR = MUACR + RT * H ( LLH ) MUACI = MUACI + IT * H ( LLH ) LL = LL + 2 LLP = LLP + 2 LLH = LLH + 2 1 CONTINUE LL = LLS + 1 LLP = LLPS + 1 LLH = LLHS + 1 DO 11 N = M + 1 , MNAUF , 2 RT = XMN ( 2 * LL , K ) IT = XMN ( 2 * LL + 1 , K ) ACR = ACR + RT * P ( LLP , J ) ACI = ACI + IT * P ( LLP , J ) MUSCR = MUSCR + RT * H ( LLH ) MUSCI = MUSCI + IT * H ( LLH ) LL = LL + 2 LLP = LLP + 2 LLH = LLH + 2 11 CONTINUE END IF LL = LLS + ( MNAUF - M + 1 ) LLP = LLPS + ( MNAUF - M + 3 ) LLH = LLHS + ( MNAUF - M + 2 ) UFOUC ( 2 * M ) =- M * ( SCI - ACI ) / ERAD UFOUC ( 2 * M + 1 ) = M * ( SCR - ACR ) / ERAD VFOUC ( 2 * M ) =- M * ( SCI + ACI ) / ERAD VFOUC ( 2 * M + 1 ) = M * ( SCR + ACR ) / ERAD MUFOUC ( 2 * M ) =- ( MUSCR - MUACR ) / ERAD MUFOUC ( 2 * M + 1 ) =- ( MUSCI - MUACI ) / ERAD MVFOUC ( 2 * M ) =- ( MUSCR + MUACR ) / ERAD MVFOUC ( 2 * M + 1 ) =- ( MUSCI + MUACI ) / ERAD 2 CONTINUE CALL RFOURTR ( VFOUC , GWSAVE , IFAX , MNAUF , MAUF , 1 ) CALL RFOURTR ( MVFOUC , GWSAVE , IFAX , MNAUF , MAUF , 1 ) DO 6 I = 0 , NI - 1 IF ( MANF + I . LE . MAUF ) THEN XLAM ( I + 1 , J , K ) = VFOUC ( MANF + I - 1 ) XPHI ( I + 1 , J , K ) = MVFOUC ( MANF + I - 1 ) ELSE XLAM ( I + 1 , J , K ) = VFOUC ( MANF - MAUF + I - 1 ) XPHI ( I + 1 , J , K ) = MVFOUC ( MANF - MAUF + I - 1 ) END IF 6 CONTINUE 3 CONTINUE GGIND = GGIND + MAUF 4 CONTINUE RETURN END SUBROUTINE PHGRACUT SUBROUTINE CONTGL ( PS , DPSDL , DPSDM , DIV , U , V , BREITE , ETA , MLAT , A , B , NI , NJ , NK ) !! Berechnung der Divergenz aus dem Windfeld (U,V) !! im Phasenraum. Zurueckgegeben werden die Felder der !! Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. ! GWSAVE ist ein Hilfsfeld fuer die FFT ! P enthaelt die assoziierten Legendrepolynome, H deren Ableitung ! MLAT enthaelt die Anzahl der Gitterpunkte pro Breitenkreis ! MNAUF gibt die spektrale Aufloesung an, ! NI = Anzahl der Gauss'schen Gitterpunkte, ! NJ = Anzahl der Gauss'schen Breiten, ! NK = Anzahl der Niveaus ! Beachte, dass das Windfeld eine um 1 erhoehte Aufloesung in mu-Richtung hat. IMPLICIT NONE INTEGER NI , NJ , NK , I , J , K , MLAT ( NJ ), L REAL A ( NK + 1 ), B ( NK + 1 ) REAL PS ( NI ), DPSDL ( NI ), DPSDM ( NI ) REAL DIV ( NI , NK ), U ( NI , NK ), V ( NI , NK ), ETA ( NI , NK ) REAL BREITE ( NJ ) REAL DIVT1 , DIVT2 , POB , PUN , DPSDT , COSB L = 0 DO 4 J = 1 , NJ COSB = ( 1.0 - BREITE ( J ) * BREITE ( J )) DO 3 I = 1 , MLAT ( J ) L = L + 1 DIVT1 = 0.0 DIVT2 = 0.0 DO 1 K = 1 , NK POB = A ( K ) + B ( K ) * PS ( L ) PUN = A ( K + 1 ) + B ( K + 1 ) * PS ( L ) DIVT1 = DIVT1 + DIV ( L , K ) * ( PUN - POB ) IF ( COSB . GT . 0. ) THEN DIVT2 = DIVT2 + ( B ( K + 1 ) - B ( K )) * PS ( L ) * & ( U ( L , K ) * DPSDL ( L ) + V ( L , K ) * DPSDM ( L )) / COSB END IF ETA ( L , K ) =- DIVT1 - DIVT2 1 CONTINUE DPSDT = ( - DIVT1 - DIVT2 ) / PS ( L ) DO 2 K = 1 , NK ETA ( L , K ) = ETA ( L , K ) - DPSDT * B ( K + 1 ) * PS ( L ) 2 CONTINUE PS ( L ) = DPSDT * PS ( L ) 3 CONTINUE 4 CONTINUE RETURN END SUBROUTINE CONTGL SUBROUTINE OMEGA ( PS , DPSDL , DPSDM , DIV , U , V , BREITE , E , MLAT , A , B , NGI , NGJ , MKK ) !! calculates $\\omega$ in the hybrid ($\\eta$-) coordinate system ! OMEGA berechnet omega im Hybridkoordinatensystem ! PS ist der Bodendruck, ! DPSDL,DPSDM sind die Komponenten des Gradienten des Logarithmus des ! Bodendrucks ! DIV,U,V sind die horizontale Divergenz und das horizontale Windfeld ! BREITE ist das Feld der Gauss'schen Breiten ! E ist omega, IMPLICIT NONE INTEGER I , J , K , L , NGI , NGJ , MKK , MLAT ( NGJ ) REAL PS ( NGI ), DPSDL ( NGI ), DPSDM ( NGI ), A ( MKK + 1 ), B ( MKK + 1 ) REAL DIV ( NGI , MKK ), U ( NGI , MKK ), V ( NGI , MKK ), E ( NGI , MKK ) REAL BREITE ( NGJ ) REAL DIVT1 , DIVT2 , POB , PUN , DP , X , Y , COSB REAL DIVT3 ( MKK + 2 ) L = 0 DO 4 J = 1 , NGJ COSB = ( 1.0 - BREITE ( J ) * BREITE ( J )) DO 3 I = 1 , MLAT ( J ) L = L + 1 DIVT1 = 0.0 DIVT2 = 0.0 DIVT3 ( 1 ) = 0.0 DO 1 K = 1 , MKK POB = A ( K ) + B ( K ) * PS ( L ) PUN = A ( K + 1 ) + B ( K + 1 ) * PS ( L ) DP = PUN - POB Y = PS ( L ) * ( U ( L , K ) * DPSDL ( L ) + V ( L , K ) * DPSDM ( L )) / COSB IF ( K . LT . 3 ) THEN X = 0.0 ELSE X = ( B ( K + 1 ) - B ( K )) * Y END IF DIVT1 = DIVT1 + DIV ( L , K ) * DP DIVT2 = DIVT2 + X DIVT3 ( K + 1 ) =- DIVT1 - DIVT2 IF ( K . GT . 1 ) THEN E ( L , K ) = 0.5 * ( POB + PUN ) / & DP * Y * (( B ( K + 1 ) - B ( K )) + ( A ( K + 1 ) * B ( K ) - A ( K ) * B ( K + 1 )) / DP * LOG ( PUN / POB )) ELSE E ( L , K ) = 0.0 END IF E ( L , K ) = E ( L , K ) + 0.5 * ( DIVT3 ( K ) + DIVT3 ( K + 1 )) 1 CONTINUE 3 CONTINUE 4 CONTINUE RETURN END SUBROUTINE OMEGA END MODULE FTRAFO","tags":"","loc":"sourcefile/ftrafo.f90.html","title":"ftrafo.f90 – Flex_extract: Calculation of etadot"},{"text":"function IA(FIELD1, NI, NJ, NK, G) Calculate something that is roughly log10( maxval(field1)/g ) [PS] Arguments Type Intent Optional Attributes Name real, intent(in) :: FIELD1 (NI,NJ,NK) integer, intent(in) :: NI integer, intent(in) :: NJ integer, intent(in) :: NK real :: G Return Value integer Contents None","tags":"","loc":"proc/ia.html","title":"IA – Flex_extract: Calculation of etadot"},{"text":"subroutine STATIS(NI, NJ, NK, PHI, RMS, MW, SIG) calculate mean, rms, stdev Arguments Type Intent Optional Attributes Name integer :: NI integer :: NJ integer :: NK real :: PHI (NI,NJ,NK) real :: RMS real :: MW real :: SIG Called by proc~~statis~~CalledByGraph proc~statis STATIS program~preconvert PRECONVERT program~preconvert->proc~statis Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/statis.html","title":"STATIS – Flex_extract: Calculation of etadot"},{"text":"subroutine POSNAM(KULNAM, CDNAML) position in namelist file. Arguments Type Intent Optional Attributes Name integer, intent(in) :: KULNAM character(len=*), intent(in) :: CDNAML Called by proc~~posnam~~CalledByGraph proc~posnam POSNAM program~preconvert PRECONVERT program~preconvert->proc~posnam Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/posnam.html","title":"POSNAM – Flex_extract: Calculation of etadot"},{"text":"public subroutine READLATLON(filename, feld, maxl, maxb, mlevel, mpar) Uses GRIB_API proc~~readlatlon~~UsesGraph proc~readlatlon READLATLON GRIB_API GRIB_API proc~readlatlon->GRIB_API Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Read a field from GRIB file on lat-lon grid Arguments Type Intent Optional Attributes Name character(len=*) :: filename real, dimension(maxl,maxb,mlevel) :: feld integer :: maxl integer :: maxb integer :: mlevel integer :: mpar (:) Calls proc~~readlatlon~~CallsGraph proc~readlatlon READLATLON grib_count_in_file grib_count_in_file proc~readlatlon->grib_count_in_file grib_close_file grib_close_file proc~readlatlon->grib_close_file Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~readlatlon~~CalledByGraph proc~readlatlon READLATLON program~preconvert PRECONVERT program~preconvert->proc~readlatlon Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/readlatlon.html","title":"READLATLON – Flex_extract: Calculation of etadot"},{"text":"public subroutine WRITELATLON(IUNIT, igrib, ogrib, FELD, MAXL, MAXB, MLEVEL, MLEVELIST, MSTRIDE, MPAR) Uses GRIB_API proc~~writelatlon~~UsesGraph proc~writelatlon WRITELATLON GRIB_API GRIB_API proc~writelatlon->GRIB_API Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. write a field on lat-lon grid to GRIB file Arguments Type Intent Optional Attributes Name integer :: IUNIT integer :: igrib integer :: ogrib real :: FELD (MAXL,MAXB,MLEVEL) integer :: MAXL integer :: MAXB integer :: MLEVEL character(len=*) :: MLEVELIST integer :: MSTRIDE integer :: MPAR (MSTRIDE) Calls proc~~writelatlon~~CallsGraph proc~writelatlon WRITELATLON grib_write grib_write proc~writelatlon->grib_write grib_set grib_set proc~writelatlon->grib_set Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/writelatlon.html","title":"WRITELATLON – Flex_extract: Calculation of etadot"},{"text":"public subroutine READSPECTRAL(filename, CXMN, mnauf, mlevel, maxlev, mpar, A, B) Uses GRIB_API proc~~readspectral~~UsesGraph proc~readspectral READSPECTRAL GRIB_API GRIB_API proc~readspectral->GRIB_API Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. read a GRIB file in spherical harmonics Arguments Type Intent Optional Attributes Name character(len=*) :: filename real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) integer :: mnauf integer :: mlevel integer :: maxlev integer :: mpar (:) real :: A (MAXLEV+1) real :: B (MAXLEV+1) Calls proc~~readspectral~~CallsGraph proc~readspectral READSPECTRAL grib_count_in_file grib_count_in_file proc~readspectral->grib_count_in_file grib_close_file grib_close_file proc~readspectral->grib_close_file Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~readspectral~~CalledByGraph proc~readspectral READSPECTRAL program~preconvert PRECONVERT program~preconvert->proc~readspectral Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/readspectral.html","title":"READSPECTRAL – Flex_extract: Calculation of etadot"},{"text":"public subroutine GRPH213(CXMN, FELD, WSAVE, IFAX, Z, W, MLAT, MNAUF, MAXL, MAXB, MLEVEL) DIE ROUTINE F]HRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF KUGELKOORDINATEN DURCH Arguments Type Intent Optional Attributes Name real :: CXMN real :: FELD (MAXL,MLEVEL) real :: WSAVE integer :: IFAX (10,MAXB) real(kind=8) :: Z (MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) real(kind=8) :: W (MAXB) integer :: MLAT (MAXB) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL Calls proc~~grph213~~CallsGraph proc~grph213 GRPH213 ind ind proc~grph213->ind proc~grphsub GRPHSUB proc~grph213->proc~grphsub Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~grph213~~CalledByGraph proc~grph213 GRPH213 program~preconvert PRECONVERT program~preconvert->proc~grph213 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/grph213.html","title":"GRPH213 – Flex_extract: Calculation of etadot"},{"text":"public subroutine GRPHSUB(L, IND, CXMN, FELD, WSAVE, IFAX, Z, W, MLAT, MNAUF, MAXL, MAXB, MLEVEL) DIE ROUTINE F]HRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF KUGELKOORDINATEN DURCH Arguments Type Intent Optional Attributes Name integer :: L integer :: IND (MAXB) real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MLEVEL) real :: WSAVE (8*MAXB+15,MAXB/2) integer :: IFAX (10,MAXB) real :: Z (MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) real :: W (MAXB) integer :: MLAT (MAXB) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL Called by proc~~grphsub~~CalledByGraph proc~grphsub GRPHSUB proc~grph213 GRPH213 proc~grph213->proc~grphsub program~preconvert PRECONVERT program~preconvert->proc~grph213 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/grphsub.html","title":"GRPHSUB – Flex_extract: Calculation of etadot"},{"text":"public subroutine LGTR213(CXMN, CXM, Z, W, MLAT, MNAUF, MAXB) DIESE ROUTINE BERECHNET DIE KFFKs CXMN Arguments Type Intent Optional Attributes Name real :: CXMN real :: CXM real(kind=8) :: Z (MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) real(kind=8) :: W (MAXB) integer :: MLAT (MAXB) integer :: MNAUF integer :: MAXB Contents None","tags":"","loc":"proc/lgtr213.html","title":"LGTR213 – Flex_extract: Calculation of etadot"},{"text":"public subroutine RFOUFTR(CXM, TRIGS, IFAX, MNAUF, MAXL, ISIGN) Arguments Type Intent Optional Attributes Name real :: CXM real :: TRIGS integer :: IFAX (10) integer :: MNAUF integer :: MAXL integer :: ISIGN Calls proc~~rfouftr~~CallsGraph proc~rfouftr RFOUFTR wsave wsave proc~rfouftr->wsave fft99 fft99 proc~rfouftr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/rfouftr.html","title":"RFOUFTR – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHGR213(CXMN, FELD, WSAVE, IFAX, Z, MLAT, MNAUF, MAXL, MAXB, MLEVEL) DIE ROUTINE F]HRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF DAS REDUZIERTE GAUSS'SCHE GITTER DURCH Arguments Type Intent Optional Attributes Name real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MLEVEL) real :: WSAVE (8*MAXB+15,MAXB/2) integer :: IFAX (10,MAXB) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB/2) integer :: MLAT (MAXB/2) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL Calls proc~~phgr213~~CallsGraph proc~phgr213 PHGR213 proc~phsym PHSYM proc~phgr213->proc~phsym Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~phgr213~~CalledByGraph proc~phgr213 PHGR213 program~preconvert PRECONVERT program~preconvert->proc~phgr213 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phgr213.html","title":"PHGR213 – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHSYM(K, IND, CXMN, FELD, Z, WSAVE, IFAX, MLAT, MNAUF, MAXL, MAXB, MLEVEL) Arguments Type Intent Optional Attributes Name integer :: K integer :: IND (MAXB) real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MLEVEL) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB/2) real :: WSAVE (8*MAXB+15,MAXB/2) integer :: IFAX (10,MAXB) integer :: MLAT (MAXB/2) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL Called by proc~~phsym~~CalledByGraph proc~phsym PHSYM proc~phgr213 PHGR213 proc~phgr213->proc~phsym program~preconvert PRECONVERT program~preconvert->proc~phgr213 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phsym.html","title":"PHSYM – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHGCUT(CXMN, FELD, WSAVE, IFAX, Z, MNAUF, MMAX, MAUF, MANF, MAXL, MAXB, MLEVEL) DIE ROUTINE FUEHRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF KUGELKOORDINATEN DURCH. Es kann ein Teilausschnitt\n Der Erde angegeben werden. Diese Routine ist langsamer als phgrph Arguments Type Intent Optional Attributes Name real :: CXMN real :: FELD (MAXL,MAXB,MLEVEL) real :: WSAVE integer :: IFAX (10) real :: Z (0:((MMAX+3)*(MMAX+4))/2,MAXB) integer :: MNAUF integer :: MMAX integer :: MAUF integer :: MANF integer :: MAXL integer :: MAXB integer :: MLEVEL Calls proc~~phgcut~~CallsGraph proc~phgcut PHGCUT proc~phsymcut PHSYMCUT proc~phgcut->proc~phsymcut proc~phgpns PHGPNS proc~phgcut->proc~phgpns proc~rfourtr RFOURTR proc~phsymcut->proc~rfourtr proc~phgpns->proc~rfourtr fft99 fft99 proc~rfourtr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~phgcut~~CalledByGraph proc~phgcut PHGCUT program~preconvert PRECONVERT program~preconvert->proc~phgcut Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phgcut.html","title":"PHGCUT – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHSYMCUT(J, CXMN, FELD, Z, WSAVE, IFAX, MAUF, MNAUF, MAXL, MAXB, MLEVEL, MANF) Arguments Type Intent Optional Attributes Name integer :: J real :: CXMN real :: FELD (MAXL,MAXB,MLEVEL) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB) real :: WSAVE integer :: IFAX (10) integer :: MAUF integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL integer :: MANF Calls proc~~phsymcut~~CallsGraph proc~phsymcut PHSYMCUT proc~rfourtr RFOURTR proc~phsymcut->proc~rfourtr fft99 fft99 proc~rfourtr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~phsymcut~~CalledByGraph proc~phsymcut PHSYMCUT proc~phgcut PHGCUT proc~phgcut->proc~phsymcut program~preconvert PRECONVERT program~preconvert->proc~phgcut Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phsymcut.html","title":"PHSYMCUT – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHGPNS(CXMN, FELD, Z, WSAVE, IFAX, J, MNAUF, MAUF, MANF, MAXL, MAXB, MLEVEL) Arguments Type Intent Optional Attributes Name real, intent(in) :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MAXB,MLEVEL) real, intent(in) :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB) real, intent(in) :: WSAVE (4*MAUF+15) integer :: IFAX (10) integer, intent(in) :: J integer, intent(in) :: MNAUF integer, intent(in) :: MAUF integer, intent(in) :: MANF integer, intent(in) :: MAXL integer, intent(in) :: MAXB integer, intent(in) :: MLEVEL Calls proc~~phgpns~~CallsGraph proc~phgpns PHGPNS proc~rfourtr RFOURTR proc~phgpns->proc~rfourtr fft99 fft99 proc~rfourtr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~phgpns~~CalledByGraph proc~phgpns PHGPNS proc~phgcut PHGCUT proc~phgcut->proc~phgpns program~preconvert PRECONVERT program~preconvert->proc~phgcut Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phgpns.html","title":"PHGPNS – Flex_extract: Calculation of etadot"},{"text":"public subroutine LEGTR(CXMN, CXM, Z, MNAUF, MAUF) DIESE ROUTINE BERECHNET DIE FOURIERKOEFFIZIENTEN CXM Arguments Type Intent Optional Attributes Name real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1) real :: CXM (0:MAXAUF-1) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2) integer :: MNAUF integer :: MAUF Contents None","tags":"","loc":"proc/legtr.html","title":"LEGTR – Flex_extract: Calculation of etadot"},{"text":"public subroutine RFOURTR(CXM, TRIGS, IFAX, MNAUF, MAXL, ISIGN) BERECHNET DIE FOURIERSUMME MIT EINEM FFT-ALGORITHMUS Arguments Type Intent Optional Attributes Name real :: CXM real :: TRIGS (2*MAXL) integer :: IFAX (10) integer :: MNAUF integer :: MAXL integer :: ISIGN Calls proc~~rfourtr~~CallsGraph proc~rfourtr RFOURTR fft99 fft99 proc~rfourtr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~rfourtr~~CalledByGraph proc~rfourtr RFOURTR proc~phsymcut PHSYMCUT proc~phsymcut->proc~rfourtr proc~phgpns PHGPNS proc~phgpns->proc~rfourtr proc~phgracut PHGRACUT proc~phgracut->proc~rfourtr proc~phgcut PHGCUT proc~phgcut->proc~phsymcut proc~phgcut->proc~phgpns program~preconvert PRECONVERT program~preconvert->proc~phgcut Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/rfourtr.html","title":"RFOURTR – Flex_extract: Calculation of etadot"},{"text":"public subroutine GAULEG(X1, X2, X, W, N) BERECHNET DIE GAUSS+SCHEN BREITEN Arguments Type Intent Optional Attributes Name real :: X1 real :: X2 real :: X real :: W integer :: N Calls proc~~gauleg~~CallsGraph proc~gauleg GAULEG dcos dcos proc~gauleg->dcos Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~gauleg~~CalledByGraph proc~gauleg GAULEG program~preconvert PRECONVERT program~preconvert->proc~gauleg Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/gauleg.html","title":"GAULEG – Flex_extract: Calculation of etadot"},{"text":"public subroutine PLGNFA(LL, X, Z) PLGNDN BERECHNET ALLE NORMIERTEN ASSOZIIERTEN\n LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X)\n UND SCHREIBT SIE IN DAS FELD Z Arguments Type Intent Optional Attributes Name integer :: LL real :: X real :: Z Contents None","tags":"","loc":"proc/plgnfa.html","title":"PLGNFA – Flex_extract: Calculation of etadot"},{"text":"public subroutine DPLGND(MNAUF, Z, DZ) DPLGND BERECHNET DIE ABLEITUNG DER NORMIERTEN ASSOZIIERTEN\n LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X)\n UND SCHREIBT SIE IN DAS FELD DZ Arguments Type Intent Optional Attributes Name integer :: MNAUF real :: Z real :: DZ Contents None","tags":"","loc":"proc/dplgnd.html","title":"DPLGND – Flex_extract: Calculation of etadot"},{"text":"public subroutine SPFILTER(FELDMN, MM, MMAX) Spectral Filter of Sardeshmukh and Hoskins (1984, MWR) Arguments Type Intent Optional Attributes Name real :: FELDMN (0:(MM+1)*(MM+2)-1) integer :: MM integer :: MMAX Calls proc~~spfilter~~CallsGraph proc~spfilter SPFILTER float float proc~spfilter->float alog alog proc~spfilter->alog Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/spfilter.html","title":"SPFILTER – Flex_extract: Calculation of etadot"},{"text":"public subroutine VDTOUV(XMN, XLAM, XPHI, GWSAVE, IFAX, P, MLAT, MNAUF, NI, NJ, NK) Uses PHTOGR proc~~vdtouv~~UsesGraph proc~vdtouv VDTOUV module~phtogr PHTOGR proc~vdtouv->module~phtogr Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Berechnung der scale winds aus Vorticity und Divergenz\n uebergibt man in XMN die Divergenz, so wird der divergente Anteil des\n Windes (XPHI=Ud,XPHI=Vd) zurueckgegeben, uebergibt man die Vorticity, so\n erhaelt man den rotationellen Wind (XLAM=Vrot,XPHI=-Urot).\n Summiert man beide, erhaelt man den gesamten Scale wind Arguments Type Intent Optional Attributes Name real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NK) real :: XPHI (NI,NK) real :: GWSAVE (8*NJ+15,NJ/2) integer :: IFAX (10,NJ) real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ/2) integer :: MLAT (NJ) integer :: MNAUF integer :: NI integer :: NJ integer :: NK Contents None","tags":"","loc":"proc/vdtouv.html","title":"VDTOUV – Flex_extract: Calculation of etadot"},{"text":"public subroutine VDUVSUB(J, XMN, XLAM, XPHI, GWSAVE, IFAX, P, GGIND, MLAT, MNAUF, NI, NJ, NK) Uses PHTOGR proc~~vduvsub~~UsesGraph proc~vduvsub VDUVSUB module~phtogr PHTOGR proc~vduvsub->module~phtogr Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Arguments Type Intent Optional Attributes Name integer :: J real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NK) real :: XPHI (NI,NK) real :: GWSAVE (8*NJ+15,NJ/2) integer :: IFAX (10,NJ) real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ/2) integer :: GGIND integer :: MLAT (NJ) integer :: MNAUF integer :: NI integer :: NJ integer :: NK Contents None","tags":"","loc":"proc/vduvsub.html","title":"VDUVSUB – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHGRAD(XMN, XLAM, XPHI, GWSAVE, IFAX, P, H, MLAT, MNAUF, NI, NJ, NK) Uses PHTOGR proc~~phgrad~~UsesGraph proc~phgrad PHGRAD module~phtogr PHTOGR proc~phgrad->module~phtogr Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Berechnung des Gradienten eines Skalars aus dem Feld des\n Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der\n Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. Arguments Type Intent Optional Attributes Name real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NK) real :: XPHI (NI,NK) real :: GWSAVE (8*NJ+15,NJ/2) integer :: IFAX real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ/2) real :: H (0:(MNAUF+2)*(MNAUF+3)/2) integer :: MLAT integer :: MNAUF integer :: NI integer :: NJ integer :: NK Calls proc~~phgrad~~CallsGraph proc~phgrad PHGRAD integermlat integermlat proc~phgrad->integermlat Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Called by proc~~phgrad~~CalledByGraph proc~phgrad PHGRAD program~preconvert PRECONVERT program~preconvert->proc~phgrad Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phgrad.html","title":"PHGRAD – Flex_extract: Calculation of etadot"},{"text":"public subroutine PHGRACUT(XMN, XLAM, XPHI, GWSAVE, IFAX, P, H, MAUF, MNAUF, NI, NJ, MANF, NK) Uses PHTOGR proc~~phgracut~~UsesGraph proc~phgracut PHGRACUT module~phtogr PHTOGR proc~phgracut->module~phtogr Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Berechnung des Gradienten eines Skalars aus dem Feld des\n Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der\n Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. Arguments Type Intent Optional Attributes Name real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NJ,NK) real :: XPHI (NI,NJ,NK) real :: GWSAVE (4*MAUF+15) integer :: IFAX (10) real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ) real :: H (0:(MNAUF+2)*(MNAUF+3)/2) integer :: MAUF integer :: MNAUF integer :: NI integer :: NJ integer :: MANF integer :: NK Calls proc~~phgracut~~CallsGraph proc~phgracut PHGRACUT proc~rfourtr RFOURTR proc~phgracut->proc~rfourtr fft99 fft99 proc~rfourtr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents None","tags":"","loc":"proc/phgracut.html","title":"PHGRACUT – Flex_extract: Calculation of etadot"},{"text":"public subroutine CONTGL(PS, DPSDL, DPSDM, DIV, U, V, BREITE, ETA, MLAT, A, B, NI, NJ, NK) Berechnung der Divergenz aus dem Windfeld (U,V)\n im Phasenraum. Zurueckgegeben werden die Felder der\n Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. Arguments Type Intent Optional Attributes Name real :: PS (NI) real :: DPSDL (NI) real :: DPSDM (NI) real :: DIV (NI,NK) real :: U (NI,NK) real :: V (NI,NK) real :: BREITE (NJ) real :: ETA (NI,NK) integer :: MLAT (NJ) real :: A (NK+1) real :: B (NK+1) integer :: NI integer :: NJ integer :: NK Contents None","tags":"","loc":"proc/contgl.html","title":"CONTGL – Flex_extract: Calculation of etadot"},{"text":"public subroutine OMEGA(PS, DPSDL, DPSDM, DIV, U, V, BREITE, E, MLAT, A, B, NGI, NGJ, MKK) calculates $\\omega$ in the hybrid ($\\eta$-) coordinate system Arguments Type Intent Optional Attributes Name real :: PS (NGI) real :: DPSDL (NGI) real :: DPSDM (NGI) real :: DIV (NGI,MKK) real :: U (NGI,MKK) real :: V (NGI,MKK) real :: BREITE (NGJ) real :: E (NGI,MKK) integer :: MLAT (NGJ) real :: A (MKK+1) real :: B (MKK+1) integer :: NGI integer :: NGJ integer :: MKK Contents None","tags":"","loc":"proc/omega.html","title":"OMEGA – Flex_extract: Calculation of etadot"},{"text":"Used by module~~rwgrib2~~UsedByGraph module~rwgrib2 RWGRIB2 program~preconvert PRECONVERT program~preconvert->module~rwgrib2 Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Contents Subroutines READLATLON WRITELATLON READSPECTRAL Subroutines public subroutine READLATLON (filename, feld, maxl, maxb, mlevel, mpar) Read a field from GRIB file on lat-lon grid Arguments Type Intent Optional Attributes Name character(len=*) :: filename real, dimension(maxl,maxb,mlevel) :: feld integer :: maxl integer :: maxb integer :: mlevel integer :: mpar (:) public subroutine WRITELATLON (IUNIT, igrib, ogrib, FELD, MAXL, MAXB, MLEVEL, MLEVELIST, MSTRIDE, MPAR) write a field on lat-lon grid to GRIB file Arguments Type Intent Optional Attributes Name integer :: IUNIT integer :: igrib integer :: ogrib real :: FELD (MAXL,MAXB,MLEVEL) integer :: MAXL integer :: MAXB integer :: MLEVEL character(len=*) :: MLEVELIST integer :: MSTRIDE integer :: MPAR (MSTRIDE) public subroutine READSPECTRAL (filename, CXMN, mnauf, mlevel, maxlev, mpar, A, B) read a GRIB file in spherical harmonics Arguments Type Intent Optional Attributes Name character(len=*) :: filename real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) integer :: mnauf integer :: mlevel integer :: maxlev integer :: mpar (:) real :: A (MAXLEV+1) real :: B (MAXLEV+1)","tags":"","loc":"module/rwgrib2.html","title":"RWGRIB2 – Flex_extract: Calculation of etadot"},{"text":"Uses PHTOGR module~~grtoph~~UsesGraph module~grtoph GRTOPH module~phtogr PHTOGR module~grtoph->module~phtogr Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Used by module~~grtoph~~UsedByGraph module~grtoph GRTOPH program~preconvert PRECONVERT program~preconvert->module~grtoph Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Contents Subroutines GRPH213 GRPHSUB LGTR213 RFOUFTR Subroutines public subroutine GRPH213 (CXMN, FELD, WSAVE, IFAX, Z, W, MLAT, MNAUF, MAXL, MAXB, MLEVEL) DIE ROUTINE F]HRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF KUGELKOORDINATEN DURCH Arguments Type Intent Optional Attributes Name real :: CXMN real :: FELD (MAXL,MLEVEL) real :: WSAVE integer :: IFAX (10,MAXB) real(kind=8) :: Z (MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) real(kind=8) :: W (MAXB) integer :: MLAT (MAXB) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL public subroutine GRPHSUB (L, IND, CXMN, FELD, WSAVE, IFAX, Z, W, MLAT, MNAUF, MAXL, MAXB, MLEVEL) DIE ROUTINE F]HRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF KUGELKOORDINATEN DURCH Arguments Type Intent Optional Attributes Name integer :: L integer :: IND (MAXB) real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MLEVEL) real :: WSAVE (8*MAXB+15,MAXB/2) integer :: IFAX (10,MAXB) real :: Z (MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) real :: W (MAXB) integer :: MLAT (MAXB) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL public subroutine LGTR213 (CXMN, CXM, Z, W, MLAT, MNAUF, MAXB) Read more… Arguments Type Intent Optional Attributes Name real :: CXMN real :: CXM real(kind=8) :: Z (MAXB/2,0:((MNAUF+3)*(MNAUF+4))/2) real(kind=8) :: W (MAXB) integer :: MLAT (MAXB) integer :: MNAUF integer :: MAXB public subroutine RFOUFTR (CXM, TRIGS, IFAX, MNAUF, MAXL, ISIGN) Arguments Type Intent Optional Attributes Name real :: CXM real :: TRIGS integer :: IFAX (10) integer :: MNAUF integer :: MAXL integer :: ISIGN","tags":"","loc":"module/grtoph.html","title":"GRTOPH – Flex_extract: Calculation of etadot"},{"text":"Used by module~~phtogr~~UsedByGraph module~phtogr PHTOGR proc~vduvsub VDUVSUB proc~vduvsub->module~phtogr proc~phgrad PHGRAD proc~phgrad->module~phtogr module~grtoph GRTOPH module~grtoph->module~phtogr proc~vdtouv VDTOUV proc~vdtouv->module~phtogr proc~phgracut PHGRACUT proc~phgracut->module~phtogr program~preconvert PRECONVERT program~preconvert->module~phtogr program~preconvert->module~grtoph Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Contents Variables MAXAUF Subroutines PHGR213 PHSYM PHGCUT PHSYMCUT PHGPNS LEGTR RFOURTR GAULEG PLGNFA DPLGND SPFILTER Variables Type Visibility Attributes Name Initial integer, public, parameter :: MAXAUF = 36000 Subroutines public subroutine PHGR213 (CXMN, FELD, WSAVE, IFAX, Z, MLAT, MNAUF, MAXL, MAXB, MLEVEL) DIE ROUTINE F]HRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF DAS REDUZIERTE GAUSS'SCHE GITTER DURCH Arguments Type Intent Optional Attributes Name real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MLEVEL) real :: WSAVE (8*MAXB+15,MAXB/2) integer :: IFAX (10,MAXB) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB/2) integer :: MLAT (MAXB/2) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL public subroutine PHSYM (K, IND, CXMN, FELD, Z, WSAVE, IFAX, MLAT, MNAUF, MAXL, MAXB, MLEVEL) Arguments Type Intent Optional Attributes Name integer :: K integer :: IND (MAXB) real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MLEVEL) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB/2) real :: WSAVE (8*MAXB+15,MAXB/2) integer :: IFAX (10,MAXB) integer :: MLAT (MAXB/2) integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL public subroutine PHGCUT (CXMN, FELD, WSAVE, IFAX, Z, MNAUF, MMAX, MAUF, MANF, MAXL, MAXB, MLEVEL) DIE ROUTINE FUEHRT EINE TRANSFORMATION EINER\n FELDVARIABLEN VOM PHASENRAUM IN DEN PHYSIKALISCHEN\n RAUM AUF KUGELKOORDINATEN DURCH. Es kann ein Teilausschnitt\n Der Erde angegeben werden. Diese Routine ist langsamer als phgrph Arguments Type Intent Optional Attributes Name real :: CXMN real :: FELD (MAXL,MAXB,MLEVEL) real :: WSAVE integer :: IFAX (10) real :: Z (0:((MMAX+3)*(MMAX+4))/2,MAXB) integer :: MNAUF integer :: MMAX integer :: MAUF integer :: MANF integer :: MAXL integer :: MAXB integer :: MLEVEL public subroutine PHSYMCUT (J, CXMN, FELD, Z, WSAVE, IFAX, MAUF, MNAUF, MAXL, MAXB, MLEVEL, MANF) Arguments Type Intent Optional Attributes Name integer :: J real :: CXMN real :: FELD (MAXL,MAXB,MLEVEL) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB) real :: WSAVE integer :: IFAX (10) integer :: MAUF integer :: MNAUF integer :: MAXL integer :: MAXB integer :: MLEVEL integer :: MANF public subroutine PHGPNS (CXMN, FELD, Z, WSAVE, IFAX, J, MNAUF, MAUF, MANF, MAXL, MAXB, MLEVEL) Arguments Type Intent Optional Attributes Name real, intent(in) :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL) real :: FELD (MAXL,MAXB,MLEVEL) real, intent(in) :: Z (0:((MNAUF+3)*(MNAUF+4))/2,MAXB) real, intent(in) :: WSAVE (4*MAUF+15) integer :: IFAX (10) integer, intent(in) :: J integer, intent(in) :: MNAUF integer, intent(in) :: MAUF integer, intent(in) :: MANF integer, intent(in) :: MAXL integer, intent(in) :: MAXB integer, intent(in) :: MLEVEL public subroutine LEGTR (CXMN, CXM, Z, MNAUF, MAUF) DIESE ROUTINE BERECHNET DIE FOURIERKOEFFIZIENTEN CXM Arguments Type Intent Optional Attributes Name real :: CXMN (0:(MNAUF+1)*(MNAUF+2)-1) real :: CXM (0:MAXAUF-1) real :: Z (0:((MNAUF+3)*(MNAUF+4))/2) integer :: MNAUF integer :: MAUF public subroutine RFOURTR (CXM, TRIGS, IFAX, MNAUF, MAXL, ISIGN) Read more… Arguments Type Intent Optional Attributes Name real :: CXM real :: TRIGS (2*MAXL) integer :: IFAX (10) integer :: MNAUF integer :: MAXL integer :: ISIGN public subroutine GAULEG (X1, X2, X, W, N) BERECHNET DIE GAUSS+SCHEN BREITEN Arguments Type Intent Optional Attributes Name real :: X1 real :: X2 real :: X real :: W integer :: N public subroutine PLGNFA (LL, X, Z) PLGNDN BERECHNET ALLE NORMIERTEN ASSOZIIERTEN\n LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X)\n UND SCHREIBT SIE IN DAS FELD Z Arguments Type Intent Optional Attributes Name integer :: LL real :: X real :: Z public subroutine DPLGND (MNAUF, Z, DZ) DPLGND BERECHNET DIE ABLEITUNG DER NORMIERTEN ASSOZIIERTEN\n LEGENDREFUNKTIONEN VON P00(X) BIS PLL(X)\n UND SCHREIBT SIE IN DAS FELD DZ Arguments Type Intent Optional Attributes Name integer :: MNAUF real :: Z real :: DZ public subroutine SPFILTER (FELDMN, MM, MMAX) Spectral Filter of Sardeshmukh and Hoskins (1984, MWR) Arguments Type Intent Optional Attributes Name real :: FELDMN (0:(MM+1)*(MM+2)-1) integer :: MM integer :: MMAX","tags":"","loc":"module/phtogr.html","title":"PHTOGR – Flex_extract: Calculation of etadot"},{"text":"Implementation of the spectral transformation using reduced the Gaussian grid Used by module~~ftrafo~~UsedByGraph module~ftrafo FTRAFO program~preconvert PRECONVERT program~preconvert->module~ftrafo Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Contents Subroutines VDTOUV VDUVSUB PHGRAD PHGRACUT CONTGL OMEGA Subroutines public subroutine VDTOUV (XMN, XLAM, XPHI, GWSAVE, IFAX, P, MLAT, MNAUF, NI, NJ, NK) Berechnung der scale winds aus Vorticity und Divergenz\n uebergibt man in XMN die Divergenz, so wird der divergente Anteil des\n Windes (XPHI=Ud,XPHI=Vd) zurueckgegeben, uebergibt man die Vorticity, so\n erhaelt man den rotationellen Wind (XLAM=Vrot,XPHI=-Urot).\n Summiert man beide, erhaelt man den gesamten Scale wind Arguments Type Intent Optional Attributes Name real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NK) real :: XPHI (NI,NK) real :: GWSAVE (8*NJ+15,NJ/2) integer :: IFAX (10,NJ) real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ/2) integer :: MLAT (NJ) integer :: MNAUF integer :: NI integer :: NJ integer :: NK public subroutine VDUVSUB (J, XMN, XLAM, XPHI, GWSAVE, IFAX, P, GGIND, MLAT, MNAUF, NI, NJ, NK) Arguments Type Intent Optional Attributes Name integer :: J real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NK) real :: XPHI (NI,NK) real :: GWSAVE (8*NJ+15,NJ/2) integer :: IFAX (10,NJ) real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ/2) integer :: GGIND integer :: MLAT (NJ) integer :: MNAUF integer :: NI integer :: NJ integer :: NK public subroutine PHGRAD (XMN, XLAM, XPHI, GWSAVE, IFAX, P, H, MLAT, MNAUF, NI, NJ, NK) Berechnung des Gradienten eines Skalars aus dem Feld des\n Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der\n Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. Arguments Type Intent Optional Attributes Name real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NK) real :: XPHI (NI,NK) real :: GWSAVE (8*NJ+15,NJ/2) integer :: IFAX real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ/2) real :: H (0:(MNAUF+2)*(MNAUF+3)/2) integer :: MLAT integer :: MNAUF integer :: NI integer :: NJ integer :: NK public subroutine PHGRACUT (XMN, XLAM, XPHI, GWSAVE, IFAX, P, H, MAUF, MNAUF, NI, NJ, MANF, NK) Berechnung des Gradienten eines Skalars aus dem Feld des\n Skalars XMN im Phasenraum. Zurueckgegeben werden die Felder der\n Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. Arguments Type Intent Optional Attributes Name real :: XMN (0:(MNAUF+1)*(MNAUF+2)-1,NK) real :: XLAM (NI,NJ,NK) real :: XPHI (NI,NJ,NK) real :: GWSAVE (4*MAUF+15) integer :: IFAX (10) real :: P (0:(MNAUF+3)*(MNAUF+4)/2,NJ) real :: H (0:(MNAUF+2)*(MNAUF+3)/2) integer :: MAUF integer :: MNAUF integer :: NI integer :: NJ integer :: MANF integer :: NK public subroutine CONTGL (PS, DPSDL, DPSDM, DIV, U, V, BREITE, ETA, MLAT, A, B, NI, NJ, NK) Berechnung der Divergenz aus dem Windfeld (U,V)\n im Phasenraum. Zurueckgegeben werden die Felder der\n Komponenten des horizontalen Gradienten XLAM,XPHI auf dem Gauss'schen Gitter. Arguments Type Intent Optional Attributes Name real :: PS (NI) real :: DPSDL (NI) real :: DPSDM (NI) real :: DIV (NI,NK) real :: U (NI,NK) real :: V (NI,NK) real :: BREITE (NJ) real :: ETA (NI,NK) integer :: MLAT (NJ) real :: A (NK+1) real :: B (NK+1) integer :: NI integer :: NJ integer :: NK public subroutine OMEGA (PS, DPSDL, DPSDM, DIV, U, V, BREITE, E, MLAT, A, B, NGI, NGJ, MKK) calculates $\\omega$ in the hybrid ($\\eta$-) coordinate system Arguments Type Intent Optional Attributes Name real :: PS (NGI) real :: DPSDL (NGI) real :: DPSDM (NGI) real :: DIV (NGI,MKK) real :: U (NGI,MKK) real :: V (NGI,MKK) real :: BREITE (NGJ) real :: E (NGI,MKK) integer :: MLAT (NGJ) real :: A (MKK+1) real :: B (MKK+1) integer :: NGI integer :: NGJ integer :: MKK","tags":"","loc":"module/ftrafo.html","title":"FTRAFO – Flex_extract: Calculation of etadot"},{"text":"Uses PHTOGR GRTOPH FTRAFO RWGRIB2 GRIB_API program~~preconvert~~UsesGraph program~preconvert PRECONVERT module~phtogr PHTOGR program~preconvert->module~phtogr module~rwgrib2 RWGRIB2 program~preconvert->module~rwgrib2 module~ftrafo FTRAFO program~preconvert->module~ftrafo module~grtoph GRTOPH program~preconvert->module~grtoph GRIB_API GRIB_API program~preconvert->GRIB_API module~grtoph->module~phtogr Help × Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\n descended from. Dashed arrows point from a module or program unit to \n modules which it uses. Prepare input data for FLEXPART, esp. vertical velocity as \n etadot or etadot * dp/deta author: L. Haimberger\n date: 03/2010\n version: V4.0 Program PRECONVERT Prepares input data for POP model meteorological preprocessor Calculation of etapoint on a regular \\lambda-\\phi grid and writing U,V,ETAPOINT,T,PS,Q,SD,MSL,TCC,10U, 10V, 2T,2D,LSP,CP,SSHF,SSR, \n EWSS,NSSS to an output file (input and output in GRIB 1 or 2 format). etapoint is defined as the total time derivative of \n ECMWF vertical coordinate eta multiplied by the derivative\n of pressure with respect to eta: \\frac{\\mathrm{d}\\eta}{\\mathrm{d}t}\\frac{\\partial p}{\\partial \\eta} Version history and authors: 04/1994: Leopold Haimberger, Gerhard Wotawa 2003-05-11: Alexander Beck 12/2006: L. Haimberger V2.0,\n handle arbitrary regular grids and T799 resolution data 03/2010: L. Haimberger V4.0,\n handle GRIB edition 2 fields and T1279 resolution data 04-06/2019: Petra Seibert, \n beautify code and add FORD documentation # Input required: UNIT FILE PARAMETER(S) DATA REPRESENTATION\n\n 11 fort.11 T,U,V regular lambda phi grid\n 12 fort.12 D regular lambda phi grid \n 13 fort.13 LNSP spherical harmonics\n 14 fort.14 SD,MSL,TCC,10U, \n 10V,2T,2D regular lambda phi grid \n 16 fort.16 LSP,CP,SSHF, \n SSR,EWSS,NSSS regular lambda phi grid\n 17 fort.17 Q regular lambda phi grid Output produced: UNIT FILE PARAMETER(S) DATA REPRESENTATION\n\n15 fort.15 `U,V,ETA,T,PS, \n `Q,SD,MSL,TCC,` \n `10U,10V,2T,2D,` regular lambda phi grid \n `LSP,CP,SSHF,` \n `SSR,EWSS,NSSS` ALLOCATE VARIABLES Initialisieren Legendretransformation auf das LaT/LON Gitter Initialisation of fields for FFT and Legendre transformation\n to Gaussian grid and back to phase space\n Transformieren des Windes auf das Gaussgitter Transformieren der horizontalen Divergenz auf das Gaussgitter Berechnung des Gradienten des Logarithmus des Bodendrucks auf dem Gaussgitter Berechnung der Vertikalgeschwindigkeit auf dem Gaussgitter Berechnung von Omega auf dem Gaussgitter READING OF SURFACE PRESSURE READING OF U,V READING OF LNSP on grid READING OF DIVERGENCE Initialisieren Legendretransformation auf das LaT/LON Gitter\n Without Gaussian grid calculation Legendre Polynomials are calculated\n only for one latitude to save space CREATE FILE VERTICAL.EC NEEDED BY POP MODEL READING OF T READING OF SPECIFIC HUMIDITY WRITE MODEL LEVEL DATA TO fort.15 Calculation of etadot in CONTGL needed scaled winds (ucosphi,vcosphi)\n Now we are transforming back to the usual winds. Calls program~~preconvert~~CallsGraph program~preconvert PRECONVERT proc~readspectral READSPECTRAL program~preconvert->proc~readspectral proc~phgcut PHGCUT program~preconvert->proc~phgcut proc~grph213 GRPH213 program~preconvert->proc~grph213 grib_close_file grib_close_file program~preconvert->grib_close_file proc~statis STATIS program~preconvert->proc~statis proc~phgr213 PHGR213 program~preconvert->proc~phgr213 proc~gauleg GAULEG program~preconvert->proc~gauleg grib_open_file grib_open_file program~preconvert->grib_open_file set99 set99 program~preconvert->set99 proc~posnam POSNAM program~preconvert->proc~posnam proc~readlatlon READLATLON program~preconvert->proc~readlatlon proc~phgrad PHGRAD program~preconvert->proc~phgrad proc~readspectral->grib_close_file grib_count_in_file grib_count_in_file proc~readspectral->grib_count_in_file proc~phsymcut PHSYMCUT proc~phgcut->proc~phsymcut proc~phgpns PHGPNS proc~phgcut->proc~phgpns proc~grphsub GRPHSUB proc~grph213->proc~grphsub ind ind proc~grph213->ind proc~phsym PHSYM proc~phgr213->proc~phsym dcos dcos proc~gauleg->dcos proc~readlatlon->grib_close_file proc~readlatlon->grib_count_in_file integermlat integermlat proc~phgrad->integermlat proc~rfourtr RFOURTR proc~phsymcut->proc~rfourtr proc~phgpns->proc~rfourtr fft99 fft99 proc~rfourtr->fft99 Help × Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \n arrows point from an interface to procedures which implement that interface.\n This could include the module procedures in a generic interface or the\n implementation in a submodule of an interface in a parent module. Contents Variables LNPS Z T UV UV2 QA OM OMR DIV ETA ETAR DPSDL DPSDM PS DPSDT SURF FLUX OROLSM WSAVE H SINL COSL WSAVE2 BREITE GBREITE AK BK pv X1 X2 RMS MW SIG LAM CUA CVA P PP P2 XMN HILFUV LNPMN LNPMN2 LNPMN3 WEIGHT UGVG DG ETAG GWSAVE PSG HILF MLAT MPSURF MPFLUX MPORO MPAR GIFAX PI COSB DAK DBK P00 URLAR8 JMIN1 LLLAR8 MAXBMIN1 PIR8 DCOSB I J K L IERR M LTEST MK NGI NGJ MFLUX MSURF MORO LUNIT LUNIT2 MAXL MAXB MLEVEL LEVOUT LEVMIN LEVMAX MOMEGA MOMEGADIFF MGAUSS MSMOOTH MNAUF META METADIFF MDPDETA METAPAR RLO0 RLO1 RLA0 RLA1 MLEVELIST MAUF MANF IFAX IGRIB iret ogrib FILENAME Variables Type Attributes Name Initial real, ALLOCATABLE, DIMENSION (:,:) :: LNPS real, ALLOCATABLE, DIMENSION (:,:) :: Z real, ALLOCATABLE, DIMENSION (:,:,:) :: T real, ALLOCATABLE, DIMENSION (:,:,:) :: UV real, ALLOCATABLE, DIMENSION (:,:,:) :: UV2 real, ALLOCATABLE, DIMENSION (:,:,:) :: QA real, ALLOCATABLE, DIMENSION (:,:,:) :: OM real, ALLOCATABLE, DIMENSION (:,:,:) :: OMR real, ALLOCATABLE, DIMENSION (:,:,:) :: DIV real, ALLOCATABLE, DIMENSION (:,:,:) :: ETA real, ALLOCATABLE, DIMENSION (:,:,:) :: ETAR real, ALLOCATABLE, DIMENSION (:,:) :: DPSDL real, ALLOCATABLE, DIMENSION (:,:) :: DPSDM real, ALLOCATABLE, DIMENSION (:,:,:) :: PS real, ALLOCATABLE, DIMENSION (:,:,:) :: DPSDT real, ALLOCATABLE, DIMENSION (:,:,:) :: SURF real, ALLOCATABLE, DIMENSION (:,:,:) :: FLUX real, ALLOCATABLE, DIMENSION (:,:,:) :: OROLSM real, ALLOCATABLE, DIMENSION (:) :: WSAVE real, ALLOCATABLE, DIMENSION (:) :: H real, ALLOCATABLE, DIMENSION (:) :: SINL real, ALLOCATABLE, DIMENSION (:) :: COSL real, ALLOCATABLE, DIMENSION (:) :: WSAVE2 real, ALLOCATABLE, DIMENSION (:) :: BREITE real, ALLOCATABLE, DIMENSION (:) :: GBREITE real, ALLOCATABLE, DIMENSION (:) :: AK real, ALLOCATABLE, DIMENSION (:) :: BK real, ALLOCATABLE, DIMENSION (:) :: pv real :: X1 real :: X2 real :: RMS real :: MW real :: SIG real :: LAM real, ALLOCATABLE :: CUA (:,:,:) real, ALLOCATABLE :: CVA (:,:,:) real, ALLOCATABLE, DIMENSION (:,:) :: P real, ALLOCATABLE, DIMENSION (:,:) :: PP real, ALLOCATABLE, DIMENSION (:,:) :: P2 real, ALLOCATABLE, DIMENSION (:,:) :: XMN real, ALLOCATABLE, DIMENSION (:,:) :: HILFUV real, ALLOCATABLE, DIMENSION (:) :: LNPMN real, ALLOCATABLE, DIMENSION (:) :: LNPMN2 real, ALLOCATABLE, DIMENSION (:) :: LNPMN3 real, ALLOCATABLE, DIMENSION (:) :: WEIGHT real, ALLOCATABLE, DIMENSION (:,:) :: UGVG real, ALLOCATABLE, DIMENSION (:,:) :: DG real, ALLOCATABLE, DIMENSION (:,:) :: ETAG real, ALLOCATABLE, DIMENSION (:,:) :: GWSAVE real, ALLOCATABLE, DIMENSION (:) :: PSG real, ALLOCATABLE, DIMENSION (:) :: HILF integer, ALLOCATABLE, DIMENSION (:) :: MLAT integer, ALLOCATABLE, DIMENSION (:) :: MPSURF integer, ALLOCATABLE, DIMENSION (:) :: MPFLUX integer, ALLOCATABLE, DIMENSION (:) :: MPORO integer, ALLOCATABLE, DIMENSION (:) :: MPAR integer, ALLOCATABLE :: GIFAX (:,:) real :: PI real :: COSB real :: DAK real :: DBK real :: P00 real :: URLAR8 real :: JMIN1 real :: LLLAR8 real :: MAXBMIN1 real :: PIR8 real :: DCOSB integer :: I integer :: J integer :: K integer :: L integer :: IERR integer :: M integer :: LTEST integer :: MK integer :: NGI integer :: NGJ integer :: MFLUX integer :: MSURF integer :: MORO integer :: LUNIT integer :: LUNIT2 integer :: MAXL integer :: MAXB integer :: MLEVEL integer :: LEVOUT integer :: LEVMIN integer :: LEVMAX integer :: MOMEGA integer :: MOMEGADIFF integer :: MGAUSS integer :: MSMOOTH integer :: MNAUF integer :: META integer :: METADIFF integer :: MDPDETA integer :: METAPAR real :: RLO0 real :: RLO1 real :: RLA0 real :: RLA1 character(len=300) :: MLEVELIST integer :: MAUF integer :: MANF integer :: IFAX (10) integer :: IGRIB (1) integer :: iret integer :: ogrib character(len=80) :: FILENAME","tags":"","loc":"program/preconvert.html","title":"PRECONVERT – Flex_extract: Calculation of etadot"}]} \ No newline at end of file diff --git a/Documentation/FORD/V5/Doc_original/tipuesearch/tipuesearch_set.js b/Documentation/FORD/V6/Doc/tipuesearch/tipuesearch_set.js similarity index 100% rename from Documentation/FORD/V5/Doc_original/tipuesearch/tipuesearch_set.js rename to Documentation/FORD/V6/Doc/tipuesearch/tipuesearch_set.js diff --git a/Documentation/FORD/V6/flexpart_logo_90x90.png b/Documentation/FORD/V6/flexpart_logo_90x90.png new file mode 100644 index 0000000000000000000000000000000000000000..6b908d7d4c613960844591ef842a1aacf07a4aa4 Binary files /dev/null and b/Documentation/FORD/V6/flexpart_logo_90x90.png differ diff --git a/Documentation/FORD/V6/fmw.md b/Documentation/FORD/V6/fmw.md new file mode 100644 index 0000000000000000000000000000000000000000..ff1895ec72a2c3c79db03c1849e43c44ad640e3b --- /dev/null +++ b/Documentation/FORD/V6/fmw.md @@ -0,0 +1,30 @@ +project: Flex_extract: Calculation of etadot +project_website: https://flexpart.eu/ +project_download: https://www.flexpart.eu/downloads +favicon: ./fp_favicon.png +src_dir: ../../../source/fortran/New +output_dir: ./Doc +summary: Calculation of vertical velocity for FLEXPART +author: Leopold Haimberger<sup>1</sup> +author_description: <sup>1</sup>Univ. of Vienna, Dept. of Meteorology & Geophysics +author_pic: ./fplogo.jpg +docmark: ! +predocmark: > +media_dir: ./Doc +docmark_alt: * +predocmark_alt: < +creation_date: +coloured_edges: +display: public + protected + private +source: public + protected + private +graph: true +warn: false +license: by +version: 7.1.work +@Note for this version +All code transferred to free form. +Some code cosmetics, should not have any effects diff --git a/Documentation/FORD/V6/fp_favicon.png b/Documentation/FORD/V6/fp_favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..d697f4d7acd14cae987bdb7f715a764060025739 Binary files /dev/null and b/Documentation/FORD/V6/fp_favicon.png differ diff --git a/Documentation/FORD/V6/fplogo.jpg b/Documentation/FORD/V6/fplogo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f57b0b3ad46dddea75d729fb3d054239ef929936 Binary files /dev/null and b/Documentation/FORD/V6/fplogo.jpg differ diff --git a/For_developers/todo b/For_developers/todo new file mode 100644 index 0000000000000000000000000000000000000000..cd10924cf0e0f0220a2f7a87b72920a1c6a1b244 --- /dev/null +++ b/For_developers/todo @@ -0,0 +1,3 @@ +-note that Test has been moved to Testing +- rename directory flex_extract/Testing/Installation/Convert to FortranEtadot + diff --git a/Source/Fortran/Makefile.CRAY b/Source/Fortran/makefile.CRAY similarity index 100% rename from Source/Fortran/Makefile.CRAY rename to Source/Fortran/makefile.CRAY diff --git a/Source/Fortran/Makefile.gfortran b/Source/Fortran/makefile.ecgate similarity index 100% rename from Source/Fortran/Makefile.gfortran rename to Source/Fortran/makefile.ecgate diff --git a/Source/Fortran/Makefile.local.gfortran b/Source/Fortran/makefile.local.gfortran similarity index 100% rename from Source/Fortran/Makefile.local.gfortran rename to Source/Fortran/makefile.local.gfortran diff --git a/Source/Fortran/Makefile.local.ifort b/Source/Fortran/makefile.local.ifort similarity index 100% rename from Source/Fortran/Makefile.local.ifort rename to Source/Fortran/makefile.local.ifort diff --git a/Source/Fortran/makefile_debug2 b/Source/Fortran/makefile_debug2 new file mode 100644 index 0000000000000000000000000000000000000000..c950176147a957f046cbec65881ecb0f03690609 --- /dev/null +++ b/Source/Fortran/makefile_debug2 @@ -0,0 +1,66 @@ +############################################################################### +# +# Makefile for flex_extract, Fortran code to calculate etadot +# +# Copyright: Leopold Haimberger, Petra Seibert +# SPDX-License-Identifier: GPL-2.0 +# +# Version for a machine with grib_api installed on standard paths +# full debugging +# +############################################################################### + + +GRIB_API_INCLUDE_DIR=/usr/include +GRIB_API_LIB= -Bstatic -lgrib_api_f77 -lgrib_api_f90 -lgrib_api -Bdynamic -lm -ljasper +EMOSLIB=-lemosR64 + +LIB = $(GRIB_API_LIB) $(EMOSLIB) + +F90 = gfortran -m64 -fdefault-real-8 -fcray-pointer -fno-second-underscore -ffixed-line-length-132 -fopenmp -fconvert=big-endian + +F90FLAGS = -I. -I$(GRIB_API_INCLUDE_DIR) + +OPT = -g -fbacktrace -fbounds-check + +BINDIR = . +EXE = calc_etadot_debug.out + +.f.o: + $(F90) -c $(F90FLAGS) $(OPT) $*.f +.f90.o: + $(F90) -c $(F90FLAGS) $(OPT) $*.f90 + +all: ${EXE} + +clean: + rm *.o *.mod #${EXE} + +preconvert.o: preconvert.f90 + $(F90) -c $(OPT) $(F90FLAGS) preconvert.f90 + +phgrreal.o: phgrreal.f + $(F90) -c $(OPT) phgrreal.f + +rwGRIB2.o: rwGRIB2.f90 + $(F90) -c $(OPT) $(F90FLAGS) rwGRIB2.f90 + +grphreal.o: grphreal.f + $(F90) -c $(OPT) grphreal.f + +ftrafo.o: ftrafo.f + $(F90) -c $(OPT) ftrafo.f +rpassm.o: rpassm.f + $(F90) -c $(OPT) rpassm.f + +$(BINDIR)/${EXE}: phgrreal.o grphreal.o ftrafo.o rwGRIB2.o posnam.o preconvert.o rpassm.o + + $(F90) $(OPT) -o $(BINDIR)/${EXE} ftrafo.o phgrreal.o grphreal.o rwGRIB2.o posnam.o preconvert.o rpassm.o ${LIB} + + +############################################################################### +# +# End of the Makefile +# +############################################################################### + diff --git a/Test/Controls/CONTROL.req.test b/Testing/Controls/CONTROL.req.test similarity index 100% rename from Test/Controls/CONTROL.req.test rename to Testing/Controls/CONTROL.req.test diff --git a/Test/Controls/CONTROL.test b/Testing/Controls/CONTROL.test similarity index 100% rename from Test/Controls/CONTROL.test rename to Testing/Controls/CONTROL.test diff --git a/Test/Controls/CONTROL.worktest b/Testing/Controls/CONTROL.worktest similarity index 100% rename from Test/Controls/CONTROL.worktest rename to Testing/Controls/CONTROL.worktest diff --git a/Test/Dir/FCOG__ML.20160410.40429.16424.grb b/Testing/Dir/FCOG__ML.20160410.40429.16424.grb similarity index 100% rename from Test/Dir/FCOG__ML.20160410.40429.16424.grb rename to Testing/Dir/FCOG__ML.20160410.40429.16424.grb diff --git a/Test/Dir/FCOG__SL.20160410.40429.16424.grb b/Testing/Dir/FCOG__SL.20160410.40429.16424.grb similarity index 100% rename from Test/Dir/FCOG__SL.20160410.40429.16424.grb rename to Testing/Dir/FCOG__SL.20160410.40429.16424.grb diff --git a/Test/Dir/FCSH__ML.20160410.40429.16424.grb b/Testing/Dir/FCSH__ML.20160410.40429.16424.grb similarity index 100% rename from Test/Dir/FCSH__ML.20160410.40429.16424.grb rename to Testing/Dir/FCSH__ML.20160410.40429.16424.grb diff --git a/Test/Dir/FCSH__SL.20160410.40429.16424.grb b/Testing/Dir/FCSH__SL.20160410.40429.16424.grb similarity index 100% rename from Test/Dir/FCSH__SL.20160410.40429.16424.grb rename to Testing/Dir/FCSH__SL.20160410.40429.16424.grb diff --git a/Test/Dir/SubTestDir/OG_OROLSM__SL.20160410.40429.16424.grb b/Testing/Dir/SubTestDir/OG_OROLSM__SL.20160410.40429.16424.grb similarity index 100% rename from Test/Dir/SubTestDir/OG_OROLSM__SL.20160410.40429.16424.grb rename to Testing/Dir/SubTestDir/OG_OROLSM__SL.20160410.40429.16424.grb diff --git a/Test/Dir/SubTestDir/SubSubTestDir/FCGG__SL.20160410.40429.16424.grb b/Testing/Dir/SubTestDir/SubSubTestDir/FCGG__SL.20160410.40429.16424.grb similarity index 100% rename from Test/Dir/SubTestDir/SubSubTestDir/FCGG__SL.20160410.40429.16424.grb rename to Testing/Dir/SubTestDir/SubSubTestDir/FCGG__SL.20160410.40429.16424.grb diff --git a/Test/Dir/SubTestDir2/FCOG_acc_SL.20160409.40429.16424.grb b/Testing/Dir/SubTestDir2/FCOG_acc_SL.20160409.40429.16424.grb similarity index 100% rename from Test/Dir/SubTestDir2/FCOG_acc_SL.20160409.40429.16424.grb rename to Testing/Dir/SubTestDir2/FCOG_acc_SL.20160409.40429.16424.grb diff --git a/Test/Installation/Convert/README b/Testing/Installation/Convert/README similarity index 100% rename from Test/Installation/Convert/README rename to Testing/Installation/Convert/README diff --git a/Test/Installation/Convert/fort.10 b/Testing/Installation/Convert/fort.10 similarity index 100% rename from Test/Installation/Convert/fort.10 rename to Testing/Installation/Convert/fort.10 diff --git a/Test/Installation/Convert/fort.11 b/Testing/Installation/Convert/fort.11 similarity index 100% rename from Test/Installation/Convert/fort.11 rename to Testing/Installation/Convert/fort.11 diff --git a/Test/Installation/Convert/fort.12 b/Testing/Installation/Convert/fort.12 similarity index 100% rename from Test/Installation/Convert/fort.12 rename to Testing/Installation/Convert/fort.12 diff --git a/Test/Installation/Convert/fort.13 b/Testing/Installation/Convert/fort.13 similarity index 100% rename from Test/Installation/Convert/fort.13 rename to Testing/Installation/Convert/fort.13 diff --git a/Test/Installation/Convert/fort.16 b/Testing/Installation/Convert/fort.16 similarity index 100% rename from Test/Installation/Convert/fort.16 rename to Testing/Installation/Convert/fort.16 diff --git a/Test/Installation/Convert/fort.17 b/Testing/Installation/Convert/fort.17 similarity index 100% rename from Test/Installation/Convert/fort.17 rename to Testing/Installation/Convert/fort.17 diff --git a/Test/Installation/Convert/fort.18 b/Testing/Installation/Convert/fort.18 similarity index 100% rename from Test/Installation/Convert/fort.18 rename to Testing/Installation/Convert/fort.18 diff --git a/Test/Installation/Convert/fort.19 b/Testing/Installation/Convert/fort.19 similarity index 100% rename from Test/Installation/Convert/fort.19 rename to Testing/Installation/Convert/fort.19 diff --git a/Test/Installation/Convert/fort.21 b/Testing/Installation/Convert/fort.21 similarity index 100% rename from Test/Installation/Convert/fort.21 rename to Testing/Installation/Convert/fort.21 diff --git a/Test/Installation/Convert/fort.22 b/Testing/Installation/Convert/fort.22 similarity index 100% rename from Test/Installation/Convert/fort.22 rename to Testing/Installation/Convert/fort.22 diff --git a/Test/Installation/Convert/fort.4 b/Testing/Installation/Convert/fort.4 similarity index 100% rename from Test/Installation/Convert/fort.4 rename to Testing/Installation/Convert/fort.4 diff --git a/Test/Regression/Compare_gribfiles/7.0.4/Controls/CONTROL_EA5.compare b/Testing/Regression/Compare_gribfiles/7.0.4/Controls/CONTROL_EA5.compare similarity index 100% rename from Test/Regression/Compare_gribfiles/7.0.4/Controls/CONTROL_EA5.compare rename to Testing/Regression/Compare_gribfiles/7.0.4/Controls/CONTROL_EA5.compare diff --git a/Test/Regression/Compare_gribfiles/7.0.4/EA5/EA18120100 b/Testing/Regression/Compare_gribfiles/7.0.4/EA5/EA18120100 similarity index 100% rename from Test/Regression/Compare_gribfiles/7.0.4/EA5/EA18120100 rename to Testing/Regression/Compare_gribfiles/7.0.4/EA5/EA18120100 diff --git a/Test/Regression/Compare_gribfiles/7.0.4/EA5/EA18120103 b/Testing/Regression/Compare_gribfiles/7.0.4/EA5/EA18120103 similarity index 100% rename from Test/Regression/Compare_gribfiles/7.0.4/EA5/EA18120103 rename to Testing/Regression/Compare_gribfiles/7.0.4/EA5/EA18120103 diff --git a/Test/Regression/Compare_gribfiles/7.0.4/EA5/EA18120106 b/Testing/Regression/Compare_gribfiles/7.0.4/EA5/EA18120106 similarity index 100% rename from Test/Regression/Compare_gribfiles/7.0.4/EA5/EA18120106 rename to Testing/Regression/Compare_gribfiles/7.0.4/EA5/EA18120106 diff --git a/Test/Regression/Compare_gribfiles/7.0.4/EA5/EA18120109 b/Testing/Regression/Compare_gribfiles/7.0.4/EA5/EA18120109 similarity index 100% rename from Test/Regression/Compare_gribfiles/7.0.4/EA5/EA18120109 rename to Testing/Regression/Compare_gribfiles/7.0.4/EA5/EA18120109 diff --git a/Test/Regression/Compare_gribfiles/7.0.4/EA5/EA18120112 b/Testing/Regression/Compare_gribfiles/7.0.4/EA5/EA18120112 similarity index 100% rename from Test/Regression/Compare_gribfiles/7.0.4/EA5/EA18120112 rename to Testing/Regression/Compare_gribfiles/7.0.4/EA5/EA18120112 diff --git a/Test/Regression/Compare_gribfiles/7.0.4/EA5/EA18120115 b/Testing/Regression/Compare_gribfiles/7.0.4/EA5/EA18120115 similarity index 100% rename from Test/Regression/Compare_gribfiles/7.0.4/EA5/EA18120115 rename to Testing/Regression/Compare_gribfiles/7.0.4/EA5/EA18120115 diff --git a/Test/Regression/Compare_gribfiles/7.0.4/EA5/EA18120118 b/Testing/Regression/Compare_gribfiles/7.0.4/EA5/EA18120118 similarity index 100% rename from Test/Regression/Compare_gribfiles/7.0.4/EA5/EA18120118 rename to Testing/Regression/Compare_gribfiles/7.0.4/EA5/EA18120118 diff --git a/Test/Regression/Compare_gribfiles/7.0.4/EA5/EA18120121 b/Testing/Regression/Compare_gribfiles/7.0.4/EA5/EA18120121 similarity index 100% rename from Test/Regression/Compare_gribfiles/7.0.4/EA5/EA18120121 rename to Testing/Regression/Compare_gribfiles/7.0.4/EA5/EA18120121 diff --git a/Test/Regression/Compare_gribfiles/7.1/Controls/CONTROL_EA5.compare b/Testing/Regression/Compare_gribfiles/7.1/Controls/CONTROL_EA5.compare similarity index 100% rename from Test/Regression/Compare_gribfiles/7.1/Controls/CONTROL_EA5.compare rename to Testing/Regression/Compare_gribfiles/7.1/Controls/CONTROL_EA5.compare diff --git a/Test/Regression/Compare_gribfiles/7.1/EA5/EA18120100 b/Testing/Regression/Compare_gribfiles/7.1/EA5/EA18120100 similarity index 100% rename from Test/Regression/Compare_gribfiles/7.1/EA5/EA18120100 rename to Testing/Regression/Compare_gribfiles/7.1/EA5/EA18120100 diff --git a/Test/Regression/Compare_gribfiles/7.1/EA5/EA18120103 b/Testing/Regression/Compare_gribfiles/7.1/EA5/EA18120103 similarity index 100% rename from Test/Regression/Compare_gribfiles/7.1/EA5/EA18120103 rename to Testing/Regression/Compare_gribfiles/7.1/EA5/EA18120103 diff --git a/Test/Regression/Compare_gribfiles/7.1/EA5/EA18120106 b/Testing/Regression/Compare_gribfiles/7.1/EA5/EA18120106 similarity index 100% rename from Test/Regression/Compare_gribfiles/7.1/EA5/EA18120106 rename to Testing/Regression/Compare_gribfiles/7.1/EA5/EA18120106 diff --git a/Test/Regression/Compare_gribfiles/7.1/EA5/EA18120109 b/Testing/Regression/Compare_gribfiles/7.1/EA5/EA18120109 similarity index 100% rename from Test/Regression/Compare_gribfiles/7.1/EA5/EA18120109 rename to Testing/Regression/Compare_gribfiles/7.1/EA5/EA18120109 diff --git a/Test/Regression/Compare_gribfiles/7.1/EA5/EA18120112 b/Testing/Regression/Compare_gribfiles/7.1/EA5/EA18120112 similarity index 100% rename from Test/Regression/Compare_gribfiles/7.1/EA5/EA18120112 rename to Testing/Regression/Compare_gribfiles/7.1/EA5/EA18120112 diff --git a/Test/Regression/Compare_gribfiles/7.1/EA5/EA18120115 b/Testing/Regression/Compare_gribfiles/7.1/EA5/EA18120115 similarity index 100% rename from Test/Regression/Compare_gribfiles/7.1/EA5/EA18120115 rename to Testing/Regression/Compare_gribfiles/7.1/EA5/EA18120115 diff --git a/Test/Regression/Compare_gribfiles/7.1/EA5/EA18120118 b/Testing/Regression/Compare_gribfiles/7.1/EA5/EA18120118 similarity index 100% rename from Test/Regression/Compare_gribfiles/7.1/EA5/EA18120118 rename to Testing/Regression/Compare_gribfiles/7.1/EA5/EA18120118 diff --git a/Test/Regression/Compare_gribfiles/7.1/EA5/EA18120121 b/Testing/Regression/Compare_gribfiles/7.1/EA5/EA18120121 similarity index 100% rename from Test/Regression/Compare_gribfiles/7.1/EA5/EA18120121 rename to Testing/Regression/Compare_gribfiles/7.1/EA5/EA18120121 diff --git a/Test/Regression/Compare_gribfiles/New_files/EA13080800 b/Testing/Regression/Compare_gribfiles/New_files/EA13080800 similarity index 100% rename from Test/Regression/Compare_gribfiles/New_files/EA13080800 rename to Testing/Regression/Compare_gribfiles/New_files/EA13080800 diff --git a/Test/Regression/Compare_gribfiles/New_files/EA13080803 b/Testing/Regression/Compare_gribfiles/New_files/EA13080803 similarity index 100% rename from Test/Regression/Compare_gribfiles/New_files/EA13080803 rename to Testing/Regression/Compare_gribfiles/New_files/EA13080803 diff --git a/Test/Regression/Compare_gribfiles/New_files/EA13080806 b/Testing/Regression/Compare_gribfiles/New_files/EA13080806 similarity index 100% rename from Test/Regression/Compare_gribfiles/New_files/EA13080806 rename to Testing/Regression/Compare_gribfiles/New_files/EA13080806 diff --git a/Test/Regression/Compare_gribfiles/New_files/EA13080809 b/Testing/Regression/Compare_gribfiles/New_files/EA13080809 similarity index 100% rename from Test/Regression/Compare_gribfiles/New_files/EA13080809 rename to Testing/Regression/Compare_gribfiles/New_files/EA13080809 diff --git a/Test/Regression/Compare_gribfiles/New_files/EA13080812 b/Testing/Regression/Compare_gribfiles/New_files/EA13080812 similarity index 100% rename from Test/Regression/Compare_gribfiles/New_files/EA13080812 rename to Testing/Regression/Compare_gribfiles/New_files/EA13080812 diff --git a/Test/Regression/Compare_gribfiles/New_files/EA13080815 b/Testing/Regression/Compare_gribfiles/New_files/EA13080815 similarity index 100% rename from Test/Regression/Compare_gribfiles/New_files/EA13080815 rename to Testing/Regression/Compare_gribfiles/New_files/EA13080815 diff --git a/Test/Regression/Compare_gribfiles/New_files/EA13080818 b/Testing/Regression/Compare_gribfiles/New_files/EA13080818 similarity index 100% rename from Test/Regression/Compare_gribfiles/New_files/EA13080818 rename to Testing/Regression/Compare_gribfiles/New_files/EA13080818 diff --git a/Test/Regression/Compare_gribfiles/New_files/EA13080821 b/Testing/Regression/Compare_gribfiles/New_files/EA13080821 similarity index 100% rename from Test/Regression/Compare_gribfiles/New_files/EA13080821 rename to Testing/Regression/Compare_gribfiles/New_files/EA13080821 diff --git a/Test/Regression/Compare_gribfiles/Reference_files/EA13080800 b/Testing/Regression/Compare_gribfiles/Reference_files/EA13080800 similarity index 100% rename from Test/Regression/Compare_gribfiles/Reference_files/EA13080800 rename to Testing/Regression/Compare_gribfiles/Reference_files/EA13080800 diff --git a/Test/Regression/Compare_gribfiles/Reference_files/EA13080803 b/Testing/Regression/Compare_gribfiles/Reference_files/EA13080803 similarity index 100% rename from Test/Regression/Compare_gribfiles/Reference_files/EA13080803 rename to Testing/Regression/Compare_gribfiles/Reference_files/EA13080803 diff --git a/Test/Regression/Compare_gribfiles/Reference_files/EA13080806 b/Testing/Regression/Compare_gribfiles/Reference_files/EA13080806 similarity index 100% rename from Test/Regression/Compare_gribfiles/Reference_files/EA13080806 rename to Testing/Regression/Compare_gribfiles/Reference_files/EA13080806 diff --git a/Test/Regression/Compare_gribfiles/Reference_files/EA13080809 b/Testing/Regression/Compare_gribfiles/Reference_files/EA13080809 similarity index 100% rename from Test/Regression/Compare_gribfiles/Reference_files/EA13080809 rename to Testing/Regression/Compare_gribfiles/Reference_files/EA13080809 diff --git a/Test/Regression/Compare_gribfiles/Reference_files/EA13080812 b/Testing/Regression/Compare_gribfiles/Reference_files/EA13080812 similarity index 100% rename from Test/Regression/Compare_gribfiles/Reference_files/EA13080812 rename to Testing/Regression/Compare_gribfiles/Reference_files/EA13080812 diff --git a/Test/Regression/Compare_gribfiles/Reference_files/EA13080815 b/Testing/Regression/Compare_gribfiles/Reference_files/EA13080815 similarity index 100% rename from Test/Regression/Compare_gribfiles/Reference_files/EA13080815 rename to Testing/Regression/Compare_gribfiles/Reference_files/EA13080815 diff --git a/Test/Regression/Compare_gribfiles/Reference_files/EA13080818 b/Testing/Regression/Compare_gribfiles/Reference_files/EA13080818 similarity index 100% rename from Test/Regression/Compare_gribfiles/Reference_files/EA13080818 rename to Testing/Regression/Compare_gribfiles/Reference_files/EA13080818 diff --git a/Test/Regression/Compare_gribfiles/Reference_files/EA13080821 b/Testing/Regression/Compare_gribfiles/Reference_files/EA13080821 similarity index 100% rename from Test/Regression/Compare_gribfiles/Reference_files/EA13080821 rename to Testing/Regression/Compare_gribfiles/Reference_files/EA13080821 diff --git a/Test/Regression/Compare_gribfiles/test_cmp_grib_file.py b/Testing/Regression/Compare_gribfiles/test_cmp_grib_file.py similarity index 100% rename from Test/Regression/Compare_gribfiles/test_cmp_grib_file.py rename to Testing/Regression/Compare_gribfiles/test_cmp_grib_file.py diff --git a/Testing/Regression/FortranEtadot/mk_outputdirs.sh b/Testing/Regression/FortranEtadot/mk_outputdirs.sh new file mode 100755 index 0000000000000000000000000000000000000000..6930f30d25ed34ecc1ba049184ee34afbba98530 --- /dev/null +++ b/Testing/Regression/FortranEtadot/mk_outputdirs.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +# Testing environment for Fortran code in flex_extract v7 +# Create reference output dirs for test cases found in "Inputs" +# +# Copyright Petra Seibert, 2019 +# SPDX-License-Identifier: MIT-0 + + +for d in `ls Inputs`; do + for exe in 'debug' 'fast'; do + newdir='Outputs/Output_ref_'${d}'_'${exe} + mkdir -pv $newdir + done +done diff --git a/Testing/Regression/FortranEtadot/run_ref.sh b/Testing/Regression/FortranEtadot/run_ref.sh new file mode 100755 index 0000000000000000000000000000000000000000..ad1a3dbbae9aa2b5e22d81f7d687b851fea819a6 --- /dev/null +++ b/Testing/Regression/FortranEtadot/run_ref.sh @@ -0,0 +1,105 @@ +#!/bin/bash + +# Do the reference runs and compare output of fast and debug + +# Copyright Petra Seibert, 2019 +# SPDX-License-Identifier: MIT-0 + +export OMP_NUM_THREADS=4 +export OMP_PLACES=sockets +testhome=`pwd` +path1=../../../Source/Fortran/ +path=../${path1} +exedebug=calc_etadot_debug.out +exefast=calc_etadot_fast.out +hash=$(git log --abbrev-commit --pretty=oneline -n 1 --pretty=format:'%h') +exitonfail=true +rm -f log.run_ref failed + +# loop over all reference runs +rm -f log.run_ref + +if [ "$1" = omithigh ]; then # for fast testing, not for production + inputs=`ls Inputs | grep -v high` +else + inputs=`ls Inputs` +fi +for ref in $inputs; do + + echo 'Working on test case =' $ref + + # loop over debug and fast runs + for exe in 'debug' 'fast'; do + + cd Work + echo ' Run code version "'${exe}'"' + + thisexe=calc_etadot_${exe}.out + ln ../Inputs/${ref}/fort.* . + ( time ${path}${thisexe} ) >& log + + # check whether runs completeted properly + outdir='Outputs/Output_ref_'${ref}'_'${exe} + grep -q CONGRATULATIONS log + if [ $? = "0" ]; then + echo ' CONGRATULATIONS found' >> ../log.run_ref + mv log ../${outdir} + else + echo ' missing CONGRATULATIONS. Test failed.' + echo $ref $exe 'FAILED' >> ${testhome}/failed + if [ "${exitonfail}" = true ]; then exit; fi + fi + for outfile in 'fort.15' 'VERTICAL.EC'; do + if [ -e $outfile ]; then + mv ${outfile} ../${outdir} + else + echo ' missing '${outfile}' Test failed.' + echo $ref $exe 'FAILED' >> ${testhome}/failed + if [ "${exitonfail}" = true ]; then exit; fi + fi + done + + cd .. + rm Work/* # this is for being more safe + + done # end of exe loop + + # compare debug and fast + # omega case also produces fort.25 - need to add this + for outfile in 'fort.15' 'VERTICAL.EC'; do + outdebug='Outputs/Output_ref_'${ref}'_debug/'$outfile + outfast='Outputs/Output_ref_'${ref}'_fast/'$outfile + test=$(cmp $outdebug $outfast) + if $test; then + echo $outfile ' equal for debug and fast' >> log.run_ref + else + echo 'WARNING:' $outfile ' not equal for debug and fast, test failed' + echo $ref $exe 'FAILED' >> ${testhome}/failed + if [ "${exitonfail}" = true ]; then exit; fi + fi + done + + # save and show runtimes + for exe in 'debug' 'fast'; do + log='Outputs/Output_ref_'${ref}'_'${exe}'/log' + times=$(tail -3 ${log}) + real=$(echo $times | grep real | awk '{print $2}') + user=$(echo $times | grep user | awk '{print $4}') + sys=$( echo $times | grep sys | awk '{print $6}') + echo $hash, "'"reference"'", "'"${ref}'_'${exe}"'", ${real}, ${user}, ${sys} >> runtimes.csv + tail -1 runtimes.csv >> log.run_ref + done + + echo # go to next reference run + +done +echo +echo More information in log.run_ref + +# the following code is executed only if exitonfail is not set to 'true'. +if [ -e failed ]; then + echo + echo Some tests failed, see file "failed": + echo + cat failed|sort -u +fi diff --git a/Testing/Regression/FortranEtadot/runtimes.csv b/Testing/Regression/FortranEtadot/runtimes.csv new file mode 100644 index 0000000000000000000000000000000000000000..811aeb2dd95c374df3b8d19201408edea5385488 --- /dev/null +++ b/Testing/Regression/FortranEtadot/runtimes.csv @@ -0,0 +1,16 @@ +0007a71, 'reference', 'etadot_debug', 0m0.429s, 0m0.500s, 0m0.024s +0007a71, 'reference', 'etadot_fast', 0m0.280s, 0m0.428s, 0m0.012s +0007a71, 'reference', 'etadotall_debug', 0m0.474s, 0m0.648s, 0m0.004s +0007a71, 'reference', 'etadotall_fast', 0m0.377s, 0m0.524s, 0m0.004s +0007a71, 'reference', 'etadothigh_debug', 24m19.804s, 16m9.556s, 1m8.256s +0007a71, 'reference', 'etadothigh_fast', 24m23.613s, 15m27.048s, 1m4.508s +0007a71, 'reference', 'gauss_debug', 0m3.557s, 0m13.264s, 0m0.164s +0007a71, 'reference', 'gauss_fast', 0m1.923s, 0m5.844s, 0m0.160s +0007a71, 'reference', 'gaussall_debug', 0m13.951s, 1m2.824s, 0m0.492s +0007a71, 'reference', 'gaussall_fast', 0m7.571s, 0m28.964s, 0m0.400s +0007a71, 'reference', 'gausshigh_debug', 6m8.635s, 35m42.308s, 0m7.280s +0007a71, 'reference', 'gausshigh_fast', 4m7.206s, 21m46.420s, 0m8.460s +0007a71, 'reference', 'latlon_debug', 0m0.383s, 0m0.520s, 0m0.008s +0007a71, 'reference', 'latlon_fast', 0m0.369s, 0m0.568s, 0m0.012s +0007a71, 'reference', 'latlonall_debug', 0m0.405s, 0m0.536s, 0m0.008s +0007a71, 'reference', 'latlonall_fast', 0m0.350s, 0m0.496s, 0m0.004s diff --git a/Testing/Regression/FortranEtadot/runtimes.imp7 b/Testing/Regression/FortranEtadot/runtimes.imp7 new file mode 100644 index 0000000000000000000000000000000000000000..c709fb5868139ce18593dd33f9d589be2691397e --- /dev/null +++ b/Testing/Regression/FortranEtadot/runtimes.imp7 @@ -0,0 +1,16 @@ +949379e, 'reference', 'etadot_debug', 0m0.572s, 0m7.520s, 0m0.172s +949379e, 'reference', 'etadot_fast', 0m0.550s, 0m6.740s, 0m0.236s +949379e, 'reference', 'etadotall_debug', 0m0.729s, 0m7.280s, 0m0.168s +949379e, 'reference', 'etadotall_fast', 0m0.675s, 0m6.568s, 0m0.148s +949379e, 'reference', 'etadothigh_debug', 17m0.724s, 32m54.368s, 0m48.492s +949379e, 'reference', 'etadothigh_fast', 15m50.120s, 26m22.308s, 0m42.076s +949379e, 'reference', 'gauss_debug', 0m2.532s, 0m25.768s, 0m1.452s +949379e, 'reference', 'gauss_fast', 0m1.996s, 0m16.732s, 0m0.900s +949379e, 'reference', 'gaussall_debug', 0m7.884s, 1m21.248s, 0m1.852s +949379e, 'reference', 'gaussall_fast', 0m5.914s, 0m42.856s, 0m2.356s +949379e, 'reference', 'gausshigh_debug', 2m35.415s, 37m38.284s, 4m54.992s +949379e, 'reference', 'gausshigh_fast', 2m10.102s, 23m22.540s, 5m51.612s +949379e, 'reference', 'latlon_debug', 0m0.691s, 0m7.176s, 0m0.172s +949379e, 'reference', 'latlon_fast', 0m0.673s, 0m7.032s, 0m0.152s +949379e, 'reference', 'latlonall_debug', 0m0.777s, 0m6.772s, 0m0.620s +949379e, 'reference', 'latlonall_fast', 0m0.687s, 0m7.064s, 0m0.196s diff --git a/Test/Regression/Mars_request/7.0.3/EA5.highres_mr.csv b/Testing/Regression/Mars_request/7.0.3/EA5.highres_mr.csv similarity index 100% rename from Test/Regression/Mars_request/7.0.3/EA5.highres_mr.csv rename to Testing/Regression/Mars_request/7.0.3/EA5.highres_mr.csv diff --git a/Test/Regression/Mars_request/7.0.3/EA5.public_mr.csv b/Testing/Regression/Mars_request/7.0.3/EA5.public_mr.csv similarity index 100% rename from Test/Regression/Mars_request/7.0.3/EA5.public_mr.csv rename to Testing/Regression/Mars_request/7.0.3/EA5.public_mr.csv diff --git a/Test/Regression/Mars_request/7.0.3/EA5_mr.csv b/Testing/Regression/Mars_request/7.0.3/EA5_mr.csv similarity index 100% rename from Test/Regression/Mars_request/7.0.3/EA5_mr.csv rename to Testing/Regression/Mars_request/7.0.3/EA5_mr.csv diff --git a/Test/Regression/Mars_request/7.0.4/CERA.public_mr.csv b/Testing/Regression/Mars_request/7.0.4/CERA.public_mr.csv similarity index 100% rename from Test/Regression/Mars_request/7.0.4/CERA.public_mr.csv rename to Testing/Regression/Mars_request/7.0.4/CERA.public_mr.csv diff --git a/Test/Regression/Mars_request/7.0.4/CERA_mr.csv b/Testing/Regression/Mars_request/7.0.4/CERA_mr.csv similarity index 100% rename from Test/Regression/Mars_request/7.0.4/CERA_mr.csv rename to Testing/Regression/Mars_request/7.0.4/CERA_mr.csv diff --git a/Test/Regression/Mars_request/7.0.4/CF_mr.csv b/Testing/Regression/Mars_request/7.0.4/CF_mr.csv similarity index 100% rename from Test/Regression/Mars_request/7.0.4/CF_mr.csv rename to Testing/Regression/Mars_request/7.0.4/CF_mr.csv diff --git a/Test/Regression/Mars_request/7.0.4/CV_mr.csv b/Testing/Regression/Mars_request/7.0.4/CV_mr.csv similarity index 100% rename from Test/Regression/Mars_request/7.0.4/CV_mr.csv rename to Testing/Regression/Mars_request/7.0.4/CV_mr.csv diff --git a/Test/Regression/Mars_request/7.0.4/EA5.highres_mr.csv b/Testing/Regression/Mars_request/7.0.4/EA5.highres_mr.csv similarity index 100% rename from Test/Regression/Mars_request/7.0.4/EA5.highres_mr.csv rename to Testing/Regression/Mars_request/7.0.4/EA5.highres_mr.csv diff --git a/Test/Regression/Mars_request/7.0.4/EA5.public_mr.csv b/Testing/Regression/Mars_request/7.0.4/EA5.public_mr.csv similarity index 100% rename from Test/Regression/Mars_request/7.0.4/EA5.public_mr.csv rename to Testing/Regression/Mars_request/7.0.4/EA5.public_mr.csv diff --git a/Test/Regression/Mars_request/7.0.4/EA5_mr.csv b/Testing/Regression/Mars_request/7.0.4/EA5_mr.csv similarity index 100% rename from Test/Regression/Mars_request/7.0.4/EA5_mr.csv rename to Testing/Regression/Mars_request/7.0.4/EA5_mr.csv diff --git a/Test/Regression/Mars_request/7.0.4/EI.public_mr.csv b/Testing/Regression/Mars_request/7.0.4/EI.public_mr.csv similarity index 100% rename from Test/Regression/Mars_request/7.0.4/EI.public_mr.csv rename to Testing/Regression/Mars_request/7.0.4/EI.public_mr.csv diff --git a/Test/Regression/Mars_request/7.0.4/EI_mr.csv b/Testing/Regression/Mars_request/7.0.4/EI_mr.csv similarity index 100% rename from Test/Regression/Mars_request/7.0.4/EI_mr.csv rename to Testing/Regression/Mars_request/7.0.4/EI_mr.csv diff --git a/Test/Regression/Mars_request/7.0.4/OD.ELDA.FC.eta.ens.double_mr.csv b/Testing/Regression/Mars_request/7.0.4/OD.ELDA.FC.eta.ens.double_mr.csv similarity index 100% rename from Test/Regression/Mars_request/7.0.4/OD.ELDA.FC.eta.ens.double_mr.csv rename to Testing/Regression/Mars_request/7.0.4/OD.ELDA.FC.eta.ens.double_mr.csv diff --git a/Test/Regression/Mars_request/7.0.4/OD.ENFO.CF_mr.csv b/Testing/Regression/Mars_request/7.0.4/OD.ENFO.CF_mr.csv similarity index 100% rename from Test/Regression/Mars_request/7.0.4/OD.ENFO.CF_mr.csv rename to Testing/Regression/Mars_request/7.0.4/OD.ENFO.CF_mr.csv diff --git a/Test/Regression/Mars_request/7.0.4/OD.ENFO.PF_mr.csv b/Testing/Regression/Mars_request/7.0.4/OD.ENFO.PF_mr.csv similarity index 100% rename from Test/Regression/Mars_request/7.0.4/OD.ENFO.PF_mr.csv rename to Testing/Regression/Mars_request/7.0.4/OD.ENFO.PF_mr.csv diff --git a/Test/Regression/Mars_request/7.0.4/OD.OPER.4V.operational_mr.csv b/Testing/Regression/Mars_request/7.0.4/OD.OPER.4V.operational_mr.csv similarity index 100% rename from Test/Regression/Mars_request/7.0.4/OD.OPER.4V.operational_mr.csv rename to Testing/Regression/Mars_request/7.0.4/OD.OPER.4V.operational_mr.csv diff --git a/Test/Regression/Mars_request/7.0.4/OD.OPER.FC.36hours_mr.csv b/Testing/Regression/Mars_request/7.0.4/OD.OPER.FC.36hours_mr.csv similarity index 100% rename from Test/Regression/Mars_request/7.0.4/OD.OPER.FC.36hours_mr.csv rename to Testing/Regression/Mars_request/7.0.4/OD.OPER.FC.36hours_mr.csv diff --git a/Test/Regression/Mars_request/7.0.4/OD.OPER.FC.twiceaday_mr.csv b/Testing/Regression/Mars_request/7.0.4/OD.OPER.FC.twiceaday_mr.csv similarity index 100% rename from Test/Regression/Mars_request/7.0.4/OD.OPER.FC.twiceaday_mr.csv rename to Testing/Regression/Mars_request/7.0.4/OD.OPER.FC.twiceaday_mr.csv diff --git a/Test/Regression/Mars_request/7.0.4/OD.OPER.global.025_mr.csv b/Testing/Regression/Mars_request/7.0.4/OD.OPER.global.025_mr.csv similarity index 100% rename from Test/Regression/Mars_request/7.0.4/OD.OPER.global.025_mr.csv rename to Testing/Regression/Mars_request/7.0.4/OD.OPER.global.025_mr.csv diff --git a/Test/Regression/Mars_request/7.0.4/OD.OPER.highres.eta_mr.csv b/Testing/Regression/Mars_request/7.0.4/OD.OPER.highres.eta_mr.csv similarity index 100% rename from Test/Regression/Mars_request/7.0.4/OD.OPER.highres.eta_mr.csv rename to Testing/Regression/Mars_request/7.0.4/OD.OPER.highres.eta_mr.csv diff --git a/Test/Regression/Mars_request/7.0.4/OD.OPER.highres.gauss_mr.csv b/Testing/Regression/Mars_request/7.0.4/OD.OPER.highres.gauss_mr.csv similarity index 100% rename from Test/Regression/Mars_request/7.0.4/OD.OPER.highres.gauss_mr.csv rename to Testing/Regression/Mars_request/7.0.4/OD.OPER.highres.gauss_mr.csv diff --git a/Test/Regression/Mars_request/7.1/CERA.public_mr.csv b/Testing/Regression/Mars_request/7.1/CERA.public_mr.csv similarity index 100% rename from Test/Regression/Mars_request/7.1/CERA.public_mr.csv rename to Testing/Regression/Mars_request/7.1/CERA.public_mr.csv diff --git a/Test/Regression/Mars_request/7.1/CERA_mr.csv b/Testing/Regression/Mars_request/7.1/CERA_mr.csv similarity index 100% rename from Test/Regression/Mars_request/7.1/CERA_mr.csv rename to Testing/Regression/Mars_request/7.1/CERA_mr.csv diff --git a/Test/Regression/Mars_request/7.1/CF_mr.csv b/Testing/Regression/Mars_request/7.1/CF_mr.csv similarity index 100% rename from Test/Regression/Mars_request/7.1/CF_mr.csv rename to Testing/Regression/Mars_request/7.1/CF_mr.csv diff --git a/Test/Regression/Mars_request/7.1/CV_mr.csv b/Testing/Regression/Mars_request/7.1/CV_mr.csv similarity index 100% rename from Test/Regression/Mars_request/7.1/CV_mr.csv rename to Testing/Regression/Mars_request/7.1/CV_mr.csv diff --git a/Test/Regression/Mars_request/7.1/EA5.highres_mr.csv b/Testing/Regression/Mars_request/7.1/EA5.highres_mr.csv similarity index 100% rename from Test/Regression/Mars_request/7.1/EA5.highres_mr.csv rename to Testing/Regression/Mars_request/7.1/EA5.highres_mr.csv diff --git a/Test/Regression/Mars_request/7.1/EA5.public_mr.csv b/Testing/Regression/Mars_request/7.1/EA5.public_mr.csv similarity index 100% rename from Test/Regression/Mars_request/7.1/EA5.public_mr.csv rename to Testing/Regression/Mars_request/7.1/EA5.public_mr.csv diff --git a/Test/Regression/Mars_request/7.1/EA5_mr.csv b/Testing/Regression/Mars_request/7.1/EA5_mr.csv similarity index 100% rename from Test/Regression/Mars_request/7.1/EA5_mr.csv rename to Testing/Regression/Mars_request/7.1/EA5_mr.csv diff --git a/Test/Regression/Mars_request/7.1/EI.public_mr.csv b/Testing/Regression/Mars_request/7.1/EI.public_mr.csv similarity index 100% rename from Test/Regression/Mars_request/7.1/EI.public_mr.csv rename to Testing/Regression/Mars_request/7.1/EI.public_mr.csv diff --git a/Test/Regression/Mars_request/7.1/EI_mr.csv b/Testing/Regression/Mars_request/7.1/EI_mr.csv similarity index 100% rename from Test/Regression/Mars_request/7.1/EI_mr.csv rename to Testing/Regression/Mars_request/7.1/EI_mr.csv diff --git a/Test/Regression/Mars_request/7.1/OD.ELDA.FC.eta.ens.double_mr.csv b/Testing/Regression/Mars_request/7.1/OD.ELDA.FC.eta.ens.double_mr.csv similarity index 100% rename from Test/Regression/Mars_request/7.1/OD.ELDA.FC.eta.ens.double_mr.csv rename to Testing/Regression/Mars_request/7.1/OD.ELDA.FC.eta.ens.double_mr.csv diff --git a/Test/Regression/Mars_request/7.1/OD.ENFO.CF_mr.csv b/Testing/Regression/Mars_request/7.1/OD.ENFO.CF_mr.csv similarity index 100% rename from Test/Regression/Mars_request/7.1/OD.ENFO.CF_mr.csv rename to Testing/Regression/Mars_request/7.1/OD.ENFO.CF_mr.csv diff --git a/Test/Regression/Mars_request/7.1/OD.ENFO.PF_mr.csv b/Testing/Regression/Mars_request/7.1/OD.ENFO.PF_mr.csv similarity index 100% rename from Test/Regression/Mars_request/7.1/OD.ENFO.PF_mr.csv rename to Testing/Regression/Mars_request/7.1/OD.ENFO.PF_mr.csv diff --git a/Test/Regression/Mars_request/7.1/OD.OPER.4V.operational_mr.csv b/Testing/Regression/Mars_request/7.1/OD.OPER.4V.operational_mr.csv similarity index 100% rename from Test/Regression/Mars_request/7.1/OD.OPER.4V.operational_mr.csv rename to Testing/Regression/Mars_request/7.1/OD.OPER.4V.operational_mr.csv diff --git a/Test/Regression/Mars_request/7.1/OD.OPER.FC.36hours_mr.csv b/Testing/Regression/Mars_request/7.1/OD.OPER.FC.36hours_mr.csv similarity index 100% rename from Test/Regression/Mars_request/7.1/OD.OPER.FC.36hours_mr.csv rename to Testing/Regression/Mars_request/7.1/OD.OPER.FC.36hours_mr.csv diff --git a/Test/Regression/Mars_request/7.1/OD.OPER.FC.twiceaday_mr.csv b/Testing/Regression/Mars_request/7.1/OD.OPER.FC.twiceaday_mr.csv similarity index 100% rename from Test/Regression/Mars_request/7.1/OD.OPER.FC.twiceaday_mr.csv rename to Testing/Regression/Mars_request/7.1/OD.OPER.FC.twiceaday_mr.csv diff --git a/Test/Regression/Mars_request/7.1/OD.OPER.global.025_mr.csv b/Testing/Regression/Mars_request/7.1/OD.OPER.global.025_mr.csv similarity index 100% rename from Test/Regression/Mars_request/7.1/OD.OPER.global.025_mr.csv rename to Testing/Regression/Mars_request/7.1/OD.OPER.global.025_mr.csv diff --git a/Test/Regression/Mars_request/7.1/OD.OPER.highres.eta_mr.csv b/Testing/Regression/Mars_request/7.1/OD.OPER.highres.eta_mr.csv similarity index 100% rename from Test/Regression/Mars_request/7.1/OD.OPER.highres.eta_mr.csv rename to Testing/Regression/Mars_request/7.1/OD.OPER.highres.eta_mr.csv diff --git a/Test/Regression/Mars_request/7.1/OD.OPER.highres.gauss_mr.csv b/Testing/Regression/Mars_request/7.1/OD.OPER.highres.gauss_mr.csv similarity index 100% rename from Test/Regression/Mars_request/7.1/OD.OPER.highres.gauss_mr.csv rename to Testing/Regression/Mars_request/7.1/OD.OPER.highres.gauss_mr.csv diff --git a/Test/Regression/Mars_request/COMMANDS.txt b/Testing/Regression/Mars_request/COMMANDS.txt similarity index 100% rename from Test/Regression/Mars_request/COMMANDS.txt rename to Testing/Regression/Mars_request/COMMANDS.txt diff --git a/Test/Regression/Mars_request/Controls/CONTROL_CERA.public_mr b/Testing/Regression/Mars_request/Controls/CONTROL_CERA.public_mr similarity index 100% rename from Test/Regression/Mars_request/Controls/CONTROL_CERA.public_mr rename to Testing/Regression/Mars_request/Controls/CONTROL_CERA.public_mr diff --git a/Test/Regression/Mars_request/Controls/CONTROL_CERA_mr b/Testing/Regression/Mars_request/Controls/CONTROL_CERA_mr similarity index 100% rename from Test/Regression/Mars_request/Controls/CONTROL_CERA_mr rename to Testing/Regression/Mars_request/Controls/CONTROL_CERA_mr diff --git a/Test/Regression/Mars_request/Controls/CONTROL_CF_mr b/Testing/Regression/Mars_request/Controls/CONTROL_CF_mr similarity index 100% rename from Test/Regression/Mars_request/Controls/CONTROL_CF_mr rename to Testing/Regression/Mars_request/Controls/CONTROL_CF_mr diff --git a/Test/Regression/Mars_request/Controls/CONTROL_CV_mr b/Testing/Regression/Mars_request/Controls/CONTROL_CV_mr similarity index 100% rename from Test/Regression/Mars_request/Controls/CONTROL_CV_mr rename to Testing/Regression/Mars_request/Controls/CONTROL_CV_mr diff --git a/Test/Regression/Mars_request/Controls/CONTROL_EA5.highres_mr b/Testing/Regression/Mars_request/Controls/CONTROL_EA5.highres_mr similarity index 100% rename from Test/Regression/Mars_request/Controls/CONTROL_EA5.highres_mr rename to Testing/Regression/Mars_request/Controls/CONTROL_EA5.highres_mr diff --git a/Test/Regression/Mars_request/Controls/CONTROL_EA5.public_mr b/Testing/Regression/Mars_request/Controls/CONTROL_EA5.public_mr similarity index 100% rename from Test/Regression/Mars_request/Controls/CONTROL_EA5.public_mr rename to Testing/Regression/Mars_request/Controls/CONTROL_EA5.public_mr diff --git a/Test/Regression/Mars_request/Controls/CONTROL_EA5_mr b/Testing/Regression/Mars_request/Controls/CONTROL_EA5_mr similarity index 100% rename from Test/Regression/Mars_request/Controls/CONTROL_EA5_mr rename to Testing/Regression/Mars_request/Controls/CONTROL_EA5_mr diff --git a/Test/Regression/Mars_request/Controls/CONTROL_EI.public_mr b/Testing/Regression/Mars_request/Controls/CONTROL_EI.public_mr similarity index 100% rename from Test/Regression/Mars_request/Controls/CONTROL_EI.public_mr rename to Testing/Regression/Mars_request/Controls/CONTROL_EI.public_mr diff --git a/Test/Regression/Mars_request/Controls/CONTROL_EI_mr b/Testing/Regression/Mars_request/Controls/CONTROL_EI_mr similarity index 100% rename from Test/Regression/Mars_request/Controls/CONTROL_EI_mr rename to Testing/Regression/Mars_request/Controls/CONTROL_EI_mr diff --git a/Test/Regression/Mars_request/Controls/CONTROL_OD.ELDA.FC.eta.ens.double_mr b/Testing/Regression/Mars_request/Controls/CONTROL_OD.ELDA.FC.eta.ens.double_mr similarity index 100% rename from Test/Regression/Mars_request/Controls/CONTROL_OD.ELDA.FC.eta.ens.double_mr rename to Testing/Regression/Mars_request/Controls/CONTROL_OD.ELDA.FC.eta.ens.double_mr diff --git a/Test/Regression/Mars_request/Controls/CONTROL_OD.ENFO.CF_mr b/Testing/Regression/Mars_request/Controls/CONTROL_OD.ENFO.CF_mr similarity index 100% rename from Test/Regression/Mars_request/Controls/CONTROL_OD.ENFO.CF_mr rename to Testing/Regression/Mars_request/Controls/CONTROL_OD.ENFO.CF_mr diff --git a/Test/Regression/Mars_request/Controls/CONTROL_OD.ENFO.PF_mr b/Testing/Regression/Mars_request/Controls/CONTROL_OD.ENFO.PF_mr similarity index 100% rename from Test/Regression/Mars_request/Controls/CONTROL_OD.ENFO.PF_mr rename to Testing/Regression/Mars_request/Controls/CONTROL_OD.ENFO.PF_mr diff --git a/Test/Regression/Mars_request/Controls/CONTROL_OD.OPER.4V.operational_mr b/Testing/Regression/Mars_request/Controls/CONTROL_OD.OPER.4V.operational_mr similarity index 100% rename from Test/Regression/Mars_request/Controls/CONTROL_OD.OPER.4V.operational_mr rename to Testing/Regression/Mars_request/Controls/CONTROL_OD.OPER.4V.operational_mr diff --git a/Test/Regression/Mars_request/Controls/CONTROL_OD.OPER.FC.36hours_mr b/Testing/Regression/Mars_request/Controls/CONTROL_OD.OPER.FC.36hours_mr similarity index 100% rename from Test/Regression/Mars_request/Controls/CONTROL_OD.OPER.FC.36hours_mr rename to Testing/Regression/Mars_request/Controls/CONTROL_OD.OPER.FC.36hours_mr diff --git a/Test/Regression/Mars_request/Controls/CONTROL_OD.OPER.FC.twiceaday_mr b/Testing/Regression/Mars_request/Controls/CONTROL_OD.OPER.FC.twiceaday_mr similarity index 100% rename from Test/Regression/Mars_request/Controls/CONTROL_OD.OPER.FC.twiceaday_mr rename to Testing/Regression/Mars_request/Controls/CONTROL_OD.OPER.FC.twiceaday_mr diff --git a/Test/Regression/Mars_request/Controls/CONTROL_OD.OPER.global.025_mr b/Testing/Regression/Mars_request/Controls/CONTROL_OD.OPER.global.025_mr similarity index 100% rename from Test/Regression/Mars_request/Controls/CONTROL_OD.OPER.global.025_mr rename to Testing/Regression/Mars_request/Controls/CONTROL_OD.OPER.global.025_mr diff --git a/Test/Regression/Mars_request/Controls/CONTROL_OD.OPER.highres.eta_mr b/Testing/Regression/Mars_request/Controls/CONTROL_OD.OPER.highres.eta_mr similarity index 100% rename from Test/Regression/Mars_request/Controls/CONTROL_OD.OPER.highres.eta_mr rename to Testing/Regression/Mars_request/Controls/CONTROL_OD.OPER.highres.eta_mr diff --git a/Test/Regression/Mars_request/Controls/CONTROL_OD.OPER.highres.gauss_mr b/Testing/Regression/Mars_request/Controls/CONTROL_OD.OPER.highres.gauss_mr similarity index 100% rename from Test/Regression/Mars_request/Controls/CONTROL_OD.OPER.highres.gauss_mr rename to Testing/Regression/Mars_request/Controls/CONTROL_OD.OPER.highres.gauss_mr diff --git a/Test/Regression/Mars_request/Log/log_2019-07-17_11-05-47 b/Testing/Regression/Mars_request/Log/log_2019-07-17_11-05-47 similarity index 100% rename from Test/Regression/Mars_request/Log/log_2019-07-17_11-05-47 rename to Testing/Regression/Mars_request/Log/log_2019-07-17_11-05-47 diff --git a/Test/Regression/Mars_request/Log/log_2019-07-17_11-37-01 b/Testing/Regression/Mars_request/Log/log_2019-07-17_11-37-01 similarity index 100% rename from Test/Regression/Mars_request/Log/log_2019-07-17_11-37-01 rename to Testing/Regression/Mars_request/Log/log_2019-07-17_11-37-01 diff --git a/Test/Regression/Mars_request/Log/log_2019-07-17_11-40-56 b/Testing/Regression/Mars_request/Log/log_2019-07-17_11-40-56 similarity index 100% rename from Test/Regression/Mars_request/Log/log_2019-07-17_11-40-56 rename to Testing/Regression/Mars_request/Log/log_2019-07-17_11-40-56 diff --git a/Test/Regression/Mars_request/Log/log_2019-07-17_11-42-31 b/Testing/Regression/Mars_request/Log/log_2019-07-17_11-42-31 similarity index 100% rename from Test/Regression/Mars_request/Log/log_2019-07-17_11-42-31 rename to Testing/Regression/Mars_request/Log/log_2019-07-17_11-42-31 diff --git a/Test/Regression/Mars_request/Log/log_2019-07-17_11-42-58 b/Testing/Regression/Mars_request/Log/log_2019-07-17_11-42-58 similarity index 100% rename from Test/Regression/Mars_request/Log/log_2019-07-17_11-42-58 rename to Testing/Regression/Mars_request/Log/log_2019-07-17_11-42-58 diff --git a/Test/Regression/Mars_request/Log/log_2019-07-17_11-43-13 b/Testing/Regression/Mars_request/Log/log_2019-07-17_11-43-13 similarity index 100% rename from Test/Regression/Mars_request/Log/log_2019-07-17_11-43-13 rename to Testing/Regression/Mars_request/Log/log_2019-07-17_11-43-13 diff --git a/Test/Regression/Mars_request/Log/log_2019-07-17_11-43-50 b/Testing/Regression/Mars_request/Log/log_2019-07-17_11-43-50 similarity index 100% rename from Test/Regression/Mars_request/Log/log_2019-07-17_11-43-50 rename to Testing/Regression/Mars_request/Log/log_2019-07-17_11-43-50 diff --git a/Test/Regression/Mars_request/Log/log_2019-07-17_11-47-22 b/Testing/Regression/Mars_request/Log/log_2019-07-17_11-47-22 similarity index 100% rename from Test/Regression/Mars_request/Log/log_2019-07-17_11-47-22 rename to Testing/Regression/Mars_request/Log/log_2019-07-17_11-47-22 diff --git a/Test/Regression/Mars_request/Log/log_2019-07-17_11-47-44 b/Testing/Regression/Mars_request/Log/log_2019-07-17_11-47-44 similarity index 100% rename from Test/Regression/Mars_request/Log/log_2019-07-17_11-47-44 rename to Testing/Regression/Mars_request/Log/log_2019-07-17_11-47-44 diff --git a/Test/Regression/Mars_request/Log/log_2019-07-17_11-47-59 b/Testing/Regression/Mars_request/Log/log_2019-07-17_11-47-59 similarity index 100% rename from Test/Regression/Mars_request/Log/log_2019-07-17_11-47-59 rename to Testing/Regression/Mars_request/Log/log_2019-07-17_11-47-59 diff --git a/Test/Regression/Mars_request/Log/log_2019-07-17_11-49-07 b/Testing/Regression/Mars_request/Log/log_2019-07-17_11-49-07 similarity index 100% rename from Test/Regression/Mars_request/Log/log_2019-07-17_11-49-07 rename to Testing/Regression/Mars_request/Log/log_2019-07-17_11-49-07 diff --git a/Test/Regression/Mars_request/Log/log_2019-07-17_11-50-37 b/Testing/Regression/Mars_request/Log/log_2019-07-17_11-50-37 similarity index 100% rename from Test/Regression/Mars_request/Log/log_2019-07-17_11-50-37 rename to Testing/Regression/Mars_request/Log/log_2019-07-17_11-50-37 diff --git a/Test/Regression/Mars_request/Log/log_2019-07-17_11-51-09 b/Testing/Regression/Mars_request/Log/log_2019-07-17_11-51-09 similarity index 100% rename from Test/Regression/Mars_request/Log/log_2019-07-17_11-51-09 rename to Testing/Regression/Mars_request/Log/log_2019-07-17_11-51-09 diff --git a/Test/Regression/Mars_request/Log/log_2019-07-17_11-51-24 b/Testing/Regression/Mars_request/Log/log_2019-07-17_11-51-24 similarity index 100% rename from Test/Regression/Mars_request/Log/log_2019-07-17_11-51-24 rename to Testing/Regression/Mars_request/Log/log_2019-07-17_11-51-24 diff --git a/Test/Regression/Mars_request/Log/log_2019-07-17_11-51-35 b/Testing/Regression/Mars_request/Log/log_2019-07-17_11-51-35 similarity index 100% rename from Test/Regression/Mars_request/Log/log_2019-07-17_11-51-35 rename to Testing/Regression/Mars_request/Log/log_2019-07-17_11-51-35 diff --git a/Test/Regression/Mars_request/Log/log_2019-07-17_11-52-51 b/Testing/Regression/Mars_request/Log/log_2019-07-17_11-52-51 similarity index 100% rename from Test/Regression/Mars_request/Log/log_2019-07-17_11-52-51 rename to Testing/Regression/Mars_request/Log/log_2019-07-17_11-52-51 diff --git a/Test/Regression/Mars_request/Log/log_2019-07-17_11-53-25 b/Testing/Regression/Mars_request/Log/log_2019-07-17_11-53-25 similarity index 100% rename from Test/Regression/Mars_request/Log/log_2019-07-17_11-53-25 rename to Testing/Regression/Mars_request/Log/log_2019-07-17_11-53-25 diff --git a/Test/Regression/Mars_request/Log/log_2019-07-17_11-55-07 b/Testing/Regression/Mars_request/Log/log_2019-07-17_11-55-07 similarity index 100% rename from Test/Regression/Mars_request/Log/log_2019-07-17_11-55-07 rename to Testing/Regression/Mars_request/Log/log_2019-07-17_11-55-07 diff --git a/Test/Regression/Mars_request/Log/log_2019-07-17_11-55-54 b/Testing/Regression/Mars_request/Log/log_2019-07-17_11-55-54 similarity index 100% rename from Test/Regression/Mars_request/Log/log_2019-07-17_11-55-54 rename to Testing/Regression/Mars_request/Log/log_2019-07-17_11-55-54 diff --git a/Test/Regression/Mars_request/Log/log_2019-07-17_11-56-03 b/Testing/Regression/Mars_request/Log/log_2019-07-17_11-56-03 similarity index 100% rename from Test/Regression/Mars_request/Log/log_2019-07-17_11-56-03 rename to Testing/Regression/Mars_request/Log/log_2019-07-17_11-56-03 diff --git a/Test/Regression/Mars_request/Log/log_2019-07-17_11-56-52 b/Testing/Regression/Mars_request/Log/log_2019-07-17_11-56-52 similarity index 100% rename from Test/Regression/Mars_request/Log/log_2019-07-17_11-56-52 rename to Testing/Regression/Mars_request/Log/log_2019-07-17_11-56-52 diff --git a/Test/Regression/Mars_request/run_local.sh b/Testing/Regression/Mars_request/run_local.sh similarity index 100% rename from Test/Regression/Mars_request/run_local.sh rename to Testing/Regression/Mars_request/run_local.sh diff --git a/Test/Regression/Mars_request/test_cmp_mars_requests.py b/Testing/Regression/Mars_request/test_cmp_mars_requests.py similarity index 100% rename from Test/Regression/Mars_request/test_cmp_mars_requests.py rename to Testing/Regression/Mars_request/test_cmp_mars_requests.py diff --git a/Test/Unit/InstallTar/mk_install_tar.sh b/Testing/Unit/InstallTar/mk_install_tar.sh similarity index 100% rename from Test/Unit/InstallTar/mk_install_tar.sh rename to Testing/Unit/InstallTar/mk_install_tar.sh diff --git a/Test/Unit/InstallTar/un_install_tar.sh b/Testing/Unit/InstallTar/un_install_tar.sh similarity index 100% rename from Test/Unit/InstallTar/un_install_tar.sh rename to Testing/Unit/InstallTar/un_install_tar.sh diff --git a/Test/Unit/Testfiles/ECMWF_ENV.test b/Testing/Unit/Testfiles/ECMWF_ENV.test similarity index 100% rename from Test/Unit/Testfiles/ECMWF_ENV.test rename to Testing/Unit/Testfiles/ECMWF_ENV.test diff --git a/Test/Unit/Testfiles/compilejob.test b/Testing/Unit/Testfiles/compilejob.test similarity index 100% rename from Test/Unit/Testfiles/compilejob.test rename to Testing/Unit/Testfiles/compilejob.test diff --git a/Test/Unit/Testfiles/convert.nl.test b/Testing/Unit/Testfiles/convert.nl.test similarity index 100% rename from Test/Unit/Testfiles/convert.nl.test rename to Testing/Unit/Testfiles/convert.nl.test diff --git a/Test/Unit/Testfiles/job.temp.test b/Testing/Unit/Testfiles/job.temp.test similarity index 100% rename from Test/Unit/Testfiles/job.temp.test rename to Testing/Unit/Testfiles/job.temp.test diff --git a/Test/Unit/Testfiles/test_put_to_ecserver.txt b/Testing/Unit/Testfiles/test_put_to_ecserver.txt similarity index 100% rename from Test/Unit/Testfiles/test_put_to_ecserver.txt rename to Testing/Unit/Testfiles/test_put_to_ecserver.txt diff --git a/Test/testecmwfapi.py b/Testing/testecmwfapi.py similarity index 100% rename from Test/testecmwfapi.py rename to Testing/testecmwfapi.py