gphys 1.5.0 → 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/ChangeLog +7414 -0
- data/LICENSE.txt +1 -1
- data/Rakefile +0 -2
- data/doc/derivative/math-doc/document/images.log +385 -0
- data/doc/ep_flux/math-doc/document/images.log +1375 -0
- data/doc/ganalysis/doc/NumRu.html +203 -0
- data/doc/ganalysis/doc/NumRu/GAnalysis.html +931 -0
- data/doc/ganalysis/doc/NumRu/GAnalysis/BetaPlane.html +574 -0
- data/doc/ganalysis/doc/NumRu/GAnalysis/Fitting.html +576 -0
- data/doc/ganalysis/doc/NumRu/GAnalysis/LogP.html +425 -0
- data/doc/ganalysis/doc/NumRu/GAnalysis/Met.html +2021 -0
- data/doc/ganalysis/doc/NumRu/GAnalysis/MetZ.html +524 -0
- data/doc/ganalysis/doc/NumRu/GAnalysis/Planet.html +1047 -0
- data/doc/ganalysis/doc/NumRu/GAnalysis/QG.html +794 -0
- data/doc/ganalysis/doc/NumRu/GAnalysis/QG/Uninitialized.html +215 -0
- data/doc/ganalysis/doc/NumRu/GAnalysis/QG_common.html +603 -0
- data/doc/ganalysis/doc/NumRu/GAnalysis/QG_sphere.html +760 -0
- data/doc/ganalysis/doc/NumRu/GAnalysis/QG_sphere_common.html +251 -0
- data/doc/ganalysis/doc/NumRu/GAnalysis/QG_sphere_div.html +424 -0
- data/doc/ganalysis/doc/NumRu/GAnalysis/SigmaCoord.html +321 -0
- data/doc/ganalysis/doc/NumRu/GGraph.html +334 -0
- data/doc/ganalysis/doc/NumRu/GPhys.html +579 -0
- data/doc/ganalysis/doc/Object.html +210 -0
- data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/beta_plane_rb.html +60 -0
- data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/covariance_rb.html +56 -0
- data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/eof_rb.html +64 -0
- data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/fitting_rb.html +54 -0
- data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/histogram_rb.html +58 -0
- data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/log_p_rb.html +60 -0
- data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/met_rb.html +60 -0
- data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/met_z_rb.html +58 -0
- data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/planet_rb.html +58 -0
- data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/qg_rb.html +64 -0
- data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/sigma_coord_rb.html +56 -0
- data/doc/ganalysis/doc/__/__/lib/numru/ganalysis_rb.html +98 -0
- data/doc/ganalysis/doc/created.rid +13 -0
- data/doc/ganalysis/doc/images/brick.png +0 -0
- data/doc/ganalysis/doc/images/brick_link.png +0 -0
- data/doc/ganalysis/doc/images/bug.png +0 -0
- data/doc/ganalysis/doc/images/bullet_black.png +0 -0
- data/doc/ganalysis/doc/images/bullet_toggle_minus.png +0 -0
- data/doc/ganalysis/doc/images/bullet_toggle_plus.png +0 -0
- data/doc/ganalysis/doc/images/date.png +0 -0
- data/doc/ganalysis/doc/images/find.png +0 -0
- data/doc/ganalysis/doc/images/loadingAnimation.gif +0 -0
- data/doc/ganalysis/doc/images/macFFBgHack.png +0 -0
- data/doc/ganalysis/doc/images/package.png +0 -0
- data/doc/ganalysis/doc/images/page_green.png +0 -0
- data/doc/ganalysis/doc/images/page_white_text.png +0 -0
- data/doc/ganalysis/doc/images/page_white_width.png +0 -0
- data/doc/ganalysis/doc/images/plugin.png +0 -0
- data/doc/ganalysis/doc/images/ruby.png +0 -0
- data/doc/ganalysis/doc/images/tag_green.png +0 -0
- data/doc/ganalysis/doc/images/wrench.png +0 -0
- data/doc/ganalysis/doc/images/wrench_orange.png +0 -0
- data/doc/ganalysis/doc/images/zoom.png +0 -0
- data/doc/ganalysis/doc/index.html +383 -0
- data/doc/ganalysis/doc/js/darkfish.js +118 -0
- data/doc/ganalysis/doc/js/jquery.js +32 -0
- data/doc/ganalysis/doc/js/quicksearch.js +114 -0
- data/doc/ganalysis/doc/js/thickbox-compressed.js +10 -0
- data/doc/ganalysis/doc/rdoc.css +763 -0
- data/ext/numru/gphys/ext_init.c +1 -0
- data/ext/numru/gphys/quad_mesh_sample.c +478 -0
- data/gphys.gemspec +2 -2
- data/lib/numru/dclext.rb +394 -14
- data/lib/numru/derivative.rb +6 -0
- data/lib/numru/ganalysis/qg.rb +6 -4
- data/lib/numru/ggraph.rb +41 -8
- data/lib/numru/gphys/gphys.rb +62 -14
- data/lib/numru/gphys/gphys_io.rb +4 -4
- data/lib/numru/gphys/version.rb +2 -2
- metadata +84 -79
- data/.gitignore +0 -14
- data/TODO_ep_flux +0 -6
- data/gphys-bigmem.gemspec +0 -44
- data/install.rb +0 -130
- data/sample/cira86_to_nc.rb +0 -122
- data/sample/druby_cli1.rb +0 -23
- data/sample/druby_cli2.rb +0 -28
- data/sample/druby_serv1.rb +0 -30
- data/sample/druby_serv2.rb +0 -51
- data/sample/ep_flux/demo_NCEP_1.rb +0 -48
- data/sample/ep_flux/demo_NCEP_2.rb +0 -57
- data/sample/ep_flux/demo_NCEP_3.rb +0 -81
- data/sample/ggraph_latlon_labelling_dr002690.rb +0 -159
- data/sample/ggraph_mapfit-axes_dr002687.rb +0 -131
- data/sample/map_projection.rb +0 -121
- data/sample/ncep_theta_coord.rb +0 -79
- data/test_old/eof_slp.rb +0 -28
- data/test_old/mltbit.dat +0 -0
- data/test_old/test_ep_flux.rb +0 -533
- data/test_old/test_multibitIO.rb +0 -19
@@ -0,0 +1,215 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
3
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
4
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
5
|
+
<head>
|
6
|
+
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
|
7
|
+
|
8
|
+
<title>Class: NumRu::GAnalysis::QG::Uninitialized</title>
|
9
|
+
|
10
|
+
<link rel="stylesheet" href="../../../rdoc.css" type="text/css" media="screen" />
|
11
|
+
|
12
|
+
<script src="../../../js/jquery.js" type="text/javascript" charset="utf-8"></script>
|
13
|
+
<script src="../../../js/thickbox-compressed.js" type="text/javascript" charset="utf-8"></script>
|
14
|
+
<script src="../../../js/quicksearch.js" type="text/javascript" charset="utf-8"></script>
|
15
|
+
<script src="../../../js/darkfish.js" type="text/javascript" charset="utf-8"></script>
|
16
|
+
|
17
|
+
</head>
|
18
|
+
<body id="top" class="class">
|
19
|
+
|
20
|
+
<div id="metadata">
|
21
|
+
<div id="home-metadata">
|
22
|
+
<div id="home-section" class="section">
|
23
|
+
<h3 class="section-header">
|
24
|
+
<a href="../../../index.html">Home</a>
|
25
|
+
<a href="../../../index.html#classes">Classes</a>
|
26
|
+
<a href="../../../index.html#methods">Methods</a>
|
27
|
+
</h3>
|
28
|
+
</div>
|
29
|
+
</div>
|
30
|
+
|
31
|
+
<div id="file-metadata">
|
32
|
+
<div id="file-list-section" class="section">
|
33
|
+
<h3 class="section-header">In Files</h3>
|
34
|
+
<div class="section-body">
|
35
|
+
<ul>
|
36
|
+
|
37
|
+
<li><a href="../../../__/__/lib/numru/ganalysis/qg_rb.html?TB_iframe=true&height=550&width=785"
|
38
|
+
class="thickbox" title="../../lib/numru/ganalysis/qg.rb">../../lib/numru/ganalysis/qg.rb</a></li>
|
39
|
+
|
40
|
+
</ul>
|
41
|
+
</div>
|
42
|
+
</div>
|
43
|
+
|
44
|
+
|
45
|
+
</div>
|
46
|
+
|
47
|
+
<div id="class-metadata">
|
48
|
+
|
49
|
+
<!-- Parent Class -->
|
50
|
+
<div id="parent-class-section" class="section">
|
51
|
+
<h3 class="section-header">Parent</h3>
|
52
|
+
|
53
|
+
<p class="link"><a href="../../../Object.html">Object</a></p>
|
54
|
+
|
55
|
+
</div>
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
|
60
|
+
|
61
|
+
|
62
|
+
|
63
|
+
<!-- Method Quickref -->
|
64
|
+
<div id="method-list-section" class="section">
|
65
|
+
<h3 class="section-header">Methods</h3>
|
66
|
+
<ul class="link-list">
|
67
|
+
|
68
|
+
<li><a href="#method-i-method_missing">#method_missing</a></li>
|
69
|
+
|
70
|
+
</ul>
|
71
|
+
</div>
|
72
|
+
|
73
|
+
|
74
|
+
|
75
|
+
</div>
|
76
|
+
|
77
|
+
<div id="project-metadata">
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
<div id="classindex-section" class="section project-section">
|
82
|
+
<h3 class="section-header">Class/Module Index
|
83
|
+
<span class="search-toggle"><img src="../../../images/find.png"
|
84
|
+
height="16" width="16" alt="[+]"
|
85
|
+
title="show/hide quicksearch" /></span></h3>
|
86
|
+
<form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
|
87
|
+
<fieldset>
|
88
|
+
<legend>Quicksearch</legend>
|
89
|
+
<input type="text" name="quicksearch" value=""
|
90
|
+
class="quicksearch-field" />
|
91
|
+
</fieldset>
|
92
|
+
</form>
|
93
|
+
|
94
|
+
<ul class="link-list">
|
95
|
+
|
96
|
+
<li><a href="../../../NumRu.html">NumRu</a></li>
|
97
|
+
|
98
|
+
<li><a href="../../../NumRu/GAnalysis.html">NumRu::GAnalysis</a></li>
|
99
|
+
|
100
|
+
<li><a href="../../../NumRu/GAnalysis/BetaPlane.html">NumRu::GAnalysis::BetaPlane</a></li>
|
101
|
+
|
102
|
+
<li><a href="../../../NumRu/GAnalysis/Fitting.html">NumRu::GAnalysis::Fitting</a></li>
|
103
|
+
|
104
|
+
<li><a href="../../../NumRu/GAnalysis/LogP.html">NumRu::GAnalysis::LogP</a></li>
|
105
|
+
|
106
|
+
<li><a href="../../../NumRu/GAnalysis/Met.html">NumRu::GAnalysis::Met</a></li>
|
107
|
+
|
108
|
+
<li><a href="../../../NumRu/GAnalysis/MetZ.html">NumRu::GAnalysis::MetZ</a></li>
|
109
|
+
|
110
|
+
<li><a href="../../../NumRu/GAnalysis/Planet.html">NumRu::GAnalysis::Planet</a></li>
|
111
|
+
|
112
|
+
<li><a href="../../../NumRu/GAnalysis/QG.html">NumRu::GAnalysis::QG</a></li>
|
113
|
+
|
114
|
+
<li><a href="../../../NumRu/GAnalysis/QG/Uninitialized.html">NumRu::GAnalysis::QG::Uninitialized</a></li>
|
115
|
+
|
116
|
+
<li><a href="../../../NumRu/GAnalysis/QG_common.html">NumRu::GAnalysis::QG_common</a></li>
|
117
|
+
|
118
|
+
<li><a href="../../../NumRu/GAnalysis/QG_sphere.html">NumRu::GAnalysis::QG_sphere</a></li>
|
119
|
+
|
120
|
+
<li><a href="../../../NumRu/GAnalysis/QG_sphere_common.html">NumRu::GAnalysis::QG_sphere_common</a></li>
|
121
|
+
|
122
|
+
<li><a href="../../../NumRu/GAnalysis/QG_sphere_div.html">NumRu::GAnalysis::QG_sphere_div</a></li>
|
123
|
+
|
124
|
+
<li><a href="../../../NumRu/GAnalysis/SigmaCoord.html">NumRu::GAnalysis::SigmaCoord</a></li>
|
125
|
+
|
126
|
+
<li><a href="../../../NumRu/GGraph.html">NumRu::GGraph</a></li>
|
127
|
+
|
128
|
+
<li><a href="../../../NumRu/GPhys.html">NumRu::GPhys</a></li>
|
129
|
+
|
130
|
+
<li><a href="../../../Object.html">Object</a></li>
|
131
|
+
|
132
|
+
</ul>
|
133
|
+
<div id="no-class-search-results" style="display: none;">No matching classes.</div>
|
134
|
+
</div>
|
135
|
+
|
136
|
+
|
137
|
+
</div>
|
138
|
+
</div>
|
139
|
+
|
140
|
+
<div id="documentation">
|
141
|
+
<h1 class="class">NumRu::GAnalysis::QG::Uninitialized</h1>
|
142
|
+
|
143
|
+
<div id="description" class="description">
|
144
|
+
|
145
|
+
<p>This class is for internal use only</p>
|
146
|
+
|
147
|
+
</div><!-- description -->
|
148
|
+
|
149
|
+
|
150
|
+
|
151
|
+
|
152
|
+
<div id="5Buntitled-5D" class="documentation-section">
|
153
|
+
|
154
|
+
|
155
|
+
|
156
|
+
|
157
|
+
|
158
|
+
|
159
|
+
|
160
|
+
|
161
|
+
<!-- Methods -->
|
162
|
+
|
163
|
+
<div id="public-instance-method-details" class="method-section section">
|
164
|
+
<h3 class="section-header">Public Instance Methods</h3>
|
165
|
+
|
166
|
+
|
167
|
+
<div id="method_missing-method" class="method-detail ">
|
168
|
+
<a name="method-i-method_missing"></a>
|
169
|
+
|
170
|
+
|
171
|
+
<div class="method-heading">
|
172
|
+
<span class="method-name">method_missing</span><span
|
173
|
+
class="method-args">(method_name)</span>
|
174
|
+
<span class="method-click-advice">click to toggle source</span>
|
175
|
+
</div>
|
176
|
+
|
177
|
+
|
178
|
+
<div class="method-description">
|
179
|
+
|
180
|
+
|
181
|
+
|
182
|
+
|
183
|
+
|
184
|
+
<div class="method-source-code" id="method_missing-source">
|
185
|
+
<pre>
|
186
|
+
<span class="ruby-comment"># File ../../lib/numru/ganalysis/qg.rb, line 253</span>
|
187
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">method_missing</span>(<span class="ruby-identifier">method_name</span>)
|
188
|
+
<span class="ruby-identifier">raise</span>(<span class="ruby-string">"Reference latitude has not been set. Call QG::set_lat0 to use the module QG."</span>)
|
189
|
+
<span class="ruby-keyword">end</span></pre>
|
190
|
+
</div><!-- method_missing-source -->
|
191
|
+
|
192
|
+
</div>
|
193
|
+
|
194
|
+
|
195
|
+
|
196
|
+
|
197
|
+
</div><!-- method_missing-method -->
|
198
|
+
|
199
|
+
|
200
|
+
</div><!-- public-instance-method-details -->
|
201
|
+
|
202
|
+
</div><!-- 5Buntitled-5D -->
|
203
|
+
|
204
|
+
|
205
|
+
</div><!-- documentation -->
|
206
|
+
|
207
|
+
<div id="validator-badges">
|
208
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
209
|
+
<p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
|
210
|
+
Rdoc Generator</a> 2</small>.</p>
|
211
|
+
</div>
|
212
|
+
|
213
|
+
</body>
|
214
|
+
</html>
|
215
|
+
|
@@ -0,0 +1,603 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
3
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
4
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
5
|
+
<head>
|
6
|
+
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
|
7
|
+
|
8
|
+
<title>Module: NumRu::GAnalysis::QG_common</title>
|
9
|
+
|
10
|
+
<link rel="stylesheet" href="../../rdoc.css" type="text/css" media="screen" />
|
11
|
+
|
12
|
+
<script src="../../js/jquery.js" type="text/javascript" charset="utf-8"></script>
|
13
|
+
<script src="../../js/thickbox-compressed.js" type="text/javascript" charset="utf-8"></script>
|
14
|
+
<script src="../../js/quicksearch.js" type="text/javascript" charset="utf-8"></script>
|
15
|
+
<script src="../../js/darkfish.js" type="text/javascript" charset="utf-8"></script>
|
16
|
+
|
17
|
+
</head>
|
18
|
+
<body id="top" class="module">
|
19
|
+
|
20
|
+
<div id="metadata">
|
21
|
+
<div id="home-metadata">
|
22
|
+
<div id="home-section" class="section">
|
23
|
+
<h3 class="section-header">
|
24
|
+
<a href="../../index.html">Home</a>
|
25
|
+
<a href="../../index.html#classes">Classes</a>
|
26
|
+
<a href="../../index.html#methods">Methods</a>
|
27
|
+
</h3>
|
28
|
+
</div>
|
29
|
+
</div>
|
30
|
+
|
31
|
+
<div id="file-metadata">
|
32
|
+
<div id="file-list-section" class="section">
|
33
|
+
<h3 class="section-header">In Files</h3>
|
34
|
+
<div class="section-body">
|
35
|
+
<ul>
|
36
|
+
|
37
|
+
<li><a href="../../__/__/lib/numru/ganalysis/qg_rb.html?TB_iframe=true&height=550&width=785"
|
38
|
+
class="thickbox" title="../../lib/numru/ganalysis/qg.rb">../../lib/numru/ganalysis/qg.rb</a></li>
|
39
|
+
|
40
|
+
</ul>
|
41
|
+
</div>
|
42
|
+
</div>
|
43
|
+
|
44
|
+
|
45
|
+
</div>
|
46
|
+
|
47
|
+
<div id="class-metadata">
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
<!-- Method Quickref -->
|
56
|
+
<div id="method-list-section" class="section">
|
57
|
+
<h3 class="section-header">Methods</h3>
|
58
|
+
<ul class="link-list">
|
59
|
+
|
60
|
+
<li><a href="#method-c-cut_bottom">::cut_bottom</a></li>
|
61
|
+
|
62
|
+
<li><a href="#method-c-extend_bottom">::extend_bottom</a></li>
|
63
|
+
|
64
|
+
<li><a href="#method-c-gp2gpref">::gp2gpref</a></li>
|
65
|
+
|
66
|
+
<li><a href="#method-c-gpd2qzz">::gpd2qzz</a></li>
|
67
|
+
|
68
|
+
<li><a href="#method-c-gph2gpd_gpref">::gph2gpd_gpref</a></li>
|
69
|
+
|
70
|
+
<li><a href="#method-c-gph2gpref">::gph2gpref</a></li>
|
71
|
+
|
72
|
+
<li><a href="#method-c-gpref2n2">::gpref2n2</a></li>
|
73
|
+
|
74
|
+
<li><a href="#method-i-div_waf">#div_waf</a></li>
|
75
|
+
|
76
|
+
</ul>
|
77
|
+
</div>
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
</div>
|
82
|
+
|
83
|
+
<div id="project-metadata">
|
84
|
+
|
85
|
+
|
86
|
+
|
87
|
+
<div id="classindex-section" class="section project-section">
|
88
|
+
<h3 class="section-header">Class/Module Index
|
89
|
+
<span class="search-toggle"><img src="../../images/find.png"
|
90
|
+
height="16" width="16" alt="[+]"
|
91
|
+
title="show/hide quicksearch" /></span></h3>
|
92
|
+
<form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
|
93
|
+
<fieldset>
|
94
|
+
<legend>Quicksearch</legend>
|
95
|
+
<input type="text" name="quicksearch" value=""
|
96
|
+
class="quicksearch-field" />
|
97
|
+
</fieldset>
|
98
|
+
</form>
|
99
|
+
|
100
|
+
<ul class="link-list">
|
101
|
+
|
102
|
+
<li><a href="../../NumRu.html">NumRu</a></li>
|
103
|
+
|
104
|
+
<li><a href="../../NumRu/GAnalysis.html">NumRu::GAnalysis</a></li>
|
105
|
+
|
106
|
+
<li><a href="../../NumRu/GAnalysis/BetaPlane.html">NumRu::GAnalysis::BetaPlane</a></li>
|
107
|
+
|
108
|
+
<li><a href="../../NumRu/GAnalysis/Fitting.html">NumRu::GAnalysis::Fitting</a></li>
|
109
|
+
|
110
|
+
<li><a href="../../NumRu/GAnalysis/LogP.html">NumRu::GAnalysis::LogP</a></li>
|
111
|
+
|
112
|
+
<li><a href="../../NumRu/GAnalysis/Met.html">NumRu::GAnalysis::Met</a></li>
|
113
|
+
|
114
|
+
<li><a href="../../NumRu/GAnalysis/MetZ.html">NumRu::GAnalysis::MetZ</a></li>
|
115
|
+
|
116
|
+
<li><a href="../../NumRu/GAnalysis/Planet.html">NumRu::GAnalysis::Planet</a></li>
|
117
|
+
|
118
|
+
<li><a href="../../NumRu/GAnalysis/QG.html">NumRu::GAnalysis::QG</a></li>
|
119
|
+
|
120
|
+
<li><a href="../../NumRu/GAnalysis/QG/Uninitialized.html">NumRu::GAnalysis::QG::Uninitialized</a></li>
|
121
|
+
|
122
|
+
<li><a href="../../NumRu/GAnalysis/QG_common.html">NumRu::GAnalysis::QG_common</a></li>
|
123
|
+
|
124
|
+
<li><a href="../../NumRu/GAnalysis/QG_sphere.html">NumRu::GAnalysis::QG_sphere</a></li>
|
125
|
+
|
126
|
+
<li><a href="../../NumRu/GAnalysis/QG_sphere_common.html">NumRu::GAnalysis::QG_sphere_common</a></li>
|
127
|
+
|
128
|
+
<li><a href="../../NumRu/GAnalysis/QG_sphere_div.html">NumRu::GAnalysis::QG_sphere_div</a></li>
|
129
|
+
|
130
|
+
<li><a href="../../NumRu/GAnalysis/SigmaCoord.html">NumRu::GAnalysis::SigmaCoord</a></li>
|
131
|
+
|
132
|
+
<li><a href="../../NumRu/GGraph.html">NumRu::GGraph</a></li>
|
133
|
+
|
134
|
+
<li><a href="../../NumRu/GPhys.html">NumRu::GPhys</a></li>
|
135
|
+
|
136
|
+
<li><a href="../../Object.html">Object</a></li>
|
137
|
+
|
138
|
+
</ul>
|
139
|
+
<div id="no-class-search-results" style="display: none;">No matching classes.</div>
|
140
|
+
</div>
|
141
|
+
|
142
|
+
|
143
|
+
</div>
|
144
|
+
</div>
|
145
|
+
|
146
|
+
<div id="documentation">
|
147
|
+
<h1 class="module">NumRu::GAnalysis::QG_common</h1>
|
148
|
+
|
149
|
+
<div id="description" class="description">
|
150
|
+
|
151
|
+
<p><a href="QG_common.html">QG_common</a>: collection of common methods for <a
|
152
|
+
href="QG.html">QG</a>, <a href="QG_sphere.html">QG_sphere</a>, and <a
|
153
|
+
href="QG_sphere_div.html">QG_sphere_div</a>.</p>
|
154
|
+
|
155
|
+
</div><!-- description -->
|
156
|
+
|
157
|
+
|
158
|
+
|
159
|
+
|
160
|
+
<div id="5Buntitled-5D" class="documentation-section">
|
161
|
+
|
162
|
+
|
163
|
+
|
164
|
+
|
165
|
+
|
166
|
+
|
167
|
+
|
168
|
+
|
169
|
+
<!-- Methods -->
|
170
|
+
|
171
|
+
<div id="public-class-method-details" class="method-section section">
|
172
|
+
<h3 class="section-header">Public Class Methods</h3>
|
173
|
+
|
174
|
+
|
175
|
+
<div id="cut_bottom-method" class="method-detail ">
|
176
|
+
<a name="method-c-cut_bottom"></a>
|
177
|
+
|
178
|
+
|
179
|
+
<div class="method-heading">
|
180
|
+
<span class="method-name">cut_bottom</span><span
|
181
|
+
class="method-args">(z)</span>
|
182
|
+
<span class="method-click-advice">click to toggle source</span>
|
183
|
+
</div>
|
184
|
+
|
185
|
+
|
186
|
+
<div class="method-description">
|
187
|
+
|
188
|
+
|
189
|
+
|
190
|
+
|
191
|
+
|
192
|
+
<div class="method-source-code" id="cut_bottom-source">
|
193
|
+
<pre>
|
194
|
+
<span class="ruby-comment"># File ../../lib/numru/ganalysis/qg.rb, line 154</span>
|
195
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">cut_bottom</span>(<span class="ruby-identifier">z</span>)
|
196
|
+
<span class="ruby-identifier">pdim</span> = <span class="ruby-constant">Met</span>.<span class="ruby-identifier">find_prs_d</span>(<span class="ruby-identifier">z</span>)
|
197
|
+
<span class="ruby-identifier">plev</span> = <span class="ruby-identifier">z</span>.<span class="ruby-identifier">coord</span>(<span class="ruby-identifier">pdim</span>).<span class="ruby-identifier">val</span>
|
198
|
+
<span class="ruby-keyword">if</span> <span class="ruby-identifier">plev</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">-</span> <span class="ruby-identifier">plev</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">></span> <span class="ruby-value">0</span>
|
199
|
+
<span class="ruby-identifier">z</span>[ *([<span class="ruby-keyword">true</span>]*<span class="ruby-identifier">pdim</span> <span class="ruby-operator">+</span> [<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>,<span class="ruby-keyword">false</span>]) ]
|
200
|
+
<span class="ruby-keyword">else</span>
|
201
|
+
<span class="ruby-identifier">z</span>[ *([<span class="ruby-keyword">true</span>]*<span class="ruby-identifier">pdim</span> <span class="ruby-operator">+</span> [<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">-2</span>,<span class="ruby-keyword">false</span>]) ]
|
202
|
+
<span class="ruby-keyword">end</span>
|
203
|
+
<span class="ruby-keyword">end</span></pre>
|
204
|
+
</div><!-- cut_bottom-source -->
|
205
|
+
|
206
|
+
</div>
|
207
|
+
|
208
|
+
|
209
|
+
|
210
|
+
|
211
|
+
</div><!-- cut_bottom-method -->
|
212
|
+
|
213
|
+
|
214
|
+
<div id="extend_bottom-method" class="method-detail ">
|
215
|
+
<a name="method-c-extend_bottom"></a>
|
216
|
+
|
217
|
+
|
218
|
+
<div class="method-heading">
|
219
|
+
<span class="method-name">extend_bottom</span><span
|
220
|
+
class="method-args">(z, val_extended=nil)</span>
|
221
|
+
<span class="method-click-advice">click to toggle source</span>
|
222
|
+
</div>
|
223
|
+
|
224
|
+
|
225
|
+
<div class="method-description">
|
226
|
+
|
227
|
+
<pre>def gpd2qzz(gp, b)
|
228
|
+
pdim = Met.find_prs_d(gp)
|
229
|
+
p = gp.axis(pdim).to_gphys
|
230
|
+
gp_z = LogP.pcdata_dz( gp )
|
231
|
+
qzz = LogP.pcdata_dz( gp_z * (p/b) ) / p
|
232
|
+
qzz.name = "qzz"
|
233
|
+
qzz.long_name = "z-deriv term in QG PV"
|
234
|
+
qzz
|
235
|
+
end</pre>
|
236
|
+
|
237
|
+
<p># Extend the bottom pressure level by the lowest thickness # (a
|
238
|
+
hypothetical “Under-ground” level is created) # If value of the extended
|
239
|
+
bottom level is set to # val_extended (Numeric or NArray etc), if it is
|
240
|
+
specified (non nil). # If nil, the value at the original bottom level is
|
241
|
+
simply copied.</p>
|
242
|
+
|
243
|
+
|
244
|
+
|
245
|
+
<div class="method-source-code" id="extend_bottom-source">
|
246
|
+
<pre>
|
247
|
+
<span class="ruby-comment"># File ../../lib/numru/ganalysis/qg.rb, line 127</span>
|
248
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">extend_bottom</span>(<span class="ruby-identifier">z</span>, <span class="ruby-identifier">val_extended</span>=<span class="ruby-keyword">nil</span>)
|
249
|
+
<span class="ruby-identifier">pdim</span> = <span class="ruby-constant">Met</span>.<span class="ruby-identifier">find_prs_d</span>(<span class="ruby-identifier">z</span>)
|
250
|
+
<span class="ruby-identifier">plev</span> = <span class="ruby-identifier">z</span>.<span class="ruby-identifier">coord</span>(<span class="ruby-identifier">pdim</span>).<span class="ruby-identifier">val</span>
|
251
|
+
<span class="ruby-identifier">raise</span>(<span class="ruby-string">"Only one pressure level is found; 2 or more needed"</span>) <span class="ruby-keyword">if</span> (<span class="ruby-identifier">plev</span><span class="ruby-operator">==</span><span class="ruby-value">1</span>)
|
252
|
+
<span class="ruby-identifier">bottom_first</span> = ( <span class="ruby-identifier">plev</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">-</span> <span class="ruby-identifier">plev</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">></span> <span class="ruby-value">0</span> )
|
253
|
+
<span class="ruby-identifier">np</span> = <span class="ruby-identifier">z</span>.<span class="ruby-identifier">shape</span>[<span class="ruby-identifier">pdim</span>]
|
254
|
+
<span class="ruby-identifier">idx</span> = (<span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-identifier">np</span>).<span class="ruby-identifier">collect</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">i</span>}
|
255
|
+
<span class="ruby-keyword">if</span> <span class="ruby-identifier">bottom_first</span> <span class="ruby-comment"># The first level is the bottom one</span>
|
256
|
+
<span class="ruby-identifier">idx</span>.<span class="ruby-identifier">unshift</span>(<span class="ruby-value">0</span>) <span class="ruby-comment"># idx => [0,0,1,2,...,np-1]</span>
|
257
|
+
<span class="ruby-identifier">ihb</span> = <span class="ruby-value">0</span> <span class="ruby-comment"># index of the extended bottom level</span>
|
258
|
+
<span class="ruby-identifier">dp</span> = <span class="ruby-identifier">plev</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">-</span> <span class="ruby-identifier">plev</span>[<span class="ruby-value">1</span>]
|
259
|
+
<span class="ruby-identifier">phb</span> = <span class="ruby-identifier">plev</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">+</span> <span class="ruby-identifier">dp</span> <span class="ruby-comment"># pressure of the extended bottom level</span>
|
260
|
+
<span class="ruby-keyword">else</span> <span class="ruby-comment"># The last level is the bottom one</span>
|
261
|
+
<span class="ruby-identifier">idx</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">np</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>) <span class="ruby-comment"># idx => [0,1,2,...,np-1,np-1]</span>
|
262
|
+
<span class="ruby-identifier">ihb</span> = <span class="ruby-identifier">np</span> <span class="ruby-comment"># index of the extended bottom level</span>
|
263
|
+
<span class="ruby-identifier">dp</span> = <span class="ruby-identifier">plev</span>[<span class="ruby-value">-1</span>] <span class="ruby-operator">-</span> <span class="ruby-identifier">plev</span>[<span class="ruby-value">-2</span>]
|
264
|
+
<span class="ruby-identifier">phb</span> = <span class="ruby-identifier">plev</span>[<span class="ruby-value">-1</span>] <span class="ruby-operator">+</span> <span class="ruby-identifier">dp</span> <span class="ruby-comment"># pressure of the extended bottom level</span>
|
265
|
+
<span class="ruby-keyword">end</span>
|
266
|
+
<span class="ruby-identifier">ze</span> = <span class="ruby-identifier">z</span>[ *([<span class="ruby-keyword">true</span>]*<span class="ruby-identifier">pdim</span> <span class="ruby-operator">+</span> [<span class="ruby-identifier">idx</span>,<span class="ruby-keyword">false</span>]) ].<span class="ruby-identifier">copy</span> <span class="ruby-comment"># add one level below</span>
|
267
|
+
<span class="ruby-identifier">ze</span>.<span class="ruby-identifier">coord</span>(<span class="ruby-identifier">pdim</span>)[<span class="ruby-identifier">ihb</span>] = <span class="ruby-identifier">phb</span>
|
268
|
+
<span class="ruby-keyword">if</span> <span class="ruby-identifier">val_extended</span>
|
269
|
+
<span class="ruby-identifier">ze</span>[ *([<span class="ruby-keyword">true</span>]*<span class="ruby-identifier">pdim</span> <span class="ruby-operator">+</span> [<span class="ruby-identifier">ihb</span>,<span class="ruby-keyword">false</span>]) ] = <span class="ruby-identifier">val_extended</span>
|
270
|
+
<span class="ruby-keyword">end</span>
|
271
|
+
<span class="ruby-identifier">ze</span>
|
272
|
+
<span class="ruby-keyword">end</span></pre>
|
273
|
+
</div><!-- extend_bottom-source -->
|
274
|
+
|
275
|
+
</div>
|
276
|
+
|
277
|
+
|
278
|
+
|
279
|
+
|
280
|
+
</div><!-- extend_bottom-method -->
|
281
|
+
|
282
|
+
|
283
|
+
<div id="gp2gpref-method" class="method-detail ">
|
284
|
+
<a name="method-c-gp2gpref"></a>
|
285
|
+
|
286
|
+
|
287
|
+
<div class="method-heading">
|
288
|
+
<span class="method-name">gp2gpref</span><span
|
289
|
+
class="method-args">(gp)</span>
|
290
|
+
<span class="method-click-advice">click to toggle source</span>
|
291
|
+
</div>
|
292
|
+
|
293
|
+
|
294
|
+
<div class="method-description">
|
295
|
+
|
296
|
+
<p>geopotential (multi-D) -> reference geopotential profile (1D)</p>
|
297
|
+
|
298
|
+
|
299
|
+
|
300
|
+
<div class="method-source-code" id="gp2gpref-source">
|
301
|
+
<pre>
|
302
|
+
<span class="ruby-comment"># File ../../lib/numru/ganalysis/qg.rb, line 24</span>
|
303
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">gp2gpref</span>(<span class="ruby-identifier">gp</span>)
|
304
|
+
<span class="ruby-identifier">gpref</span> = <span class="ruby-constant">Planet</span><span class="ruby-operator">::</span><span class="ruby-identifier">ave_s</span>(<span class="ruby-identifier">gp</span>) <span class="ruby-comment"># horizontal ave (spherical)</span>
|
305
|
+
<span class="ruby-keyword">if</span> <span class="ruby-identifier">gpref</span>.<span class="ruby-identifier">rank</span> <span class="ruby-operator">>=</span> <span class="ruby-value">2</span>
|
306
|
+
<span class="ruby-comment"># likely a time sequence. need to reduce more.</span>
|
307
|
+
<span class="ruby-identifier">pdim</span> = <span class="ruby-constant">Met</span>.<span class="ruby-identifier">find_prs_d</span>(<span class="ruby-identifier">gpref</span>)
|
308
|
+
<span class="ruby-identifier">idxs</span> = (<span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-identifier">gpref</span>.<span class="ruby-identifier">rank</span>).<span class="ruby-identifier">collect</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">i</span>}
|
309
|
+
<span class="ruby-identifier">idxs</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">pdim</span>)
|
310
|
+
<span class="ruby-identifier">gpref</span> = <span class="ruby-identifier">gpref</span>.<span class="ruby-identifier">mean</span>(*<span class="ruby-identifier">idxs</span>)
|
311
|
+
<span class="ruby-keyword">end</span>
|
312
|
+
<span class="ruby-identifier">gpref</span>.<span class="ruby-identifier">name</span> = <span class="ruby-string">"gpref"</span>
|
313
|
+
<span class="ruby-identifier">gpref</span>.<span class="ruby-identifier">long_name</span> = <span class="ruby-string">"Reference geopotential"</span>
|
314
|
+
<span class="ruby-identifier">gpref</span>
|
315
|
+
<span class="ruby-keyword">end</span></pre>
|
316
|
+
</div><!-- gp2gpref-source -->
|
317
|
+
|
318
|
+
</div>
|
319
|
+
|
320
|
+
|
321
|
+
|
322
|
+
|
323
|
+
</div><!-- gp2gpref-method -->
|
324
|
+
|
325
|
+
|
326
|
+
<div id="gpd2qzz-method" class="method-detail ">
|
327
|
+
<a name="method-c-gpd2qzz"></a>
|
328
|
+
|
329
|
+
|
330
|
+
<div class="method-heading">
|
331
|
+
<span class="method-name">gpd2qzz</span><span
|
332
|
+
class="method-args">(gp, b)</span>
|
333
|
+
<span class="method-click-advice">click to toggle source</span>
|
334
|
+
</div>
|
335
|
+
|
336
|
+
|
337
|
+
<div class="method-description">
|
338
|
+
|
339
|
+
<p>[ (p/b) gp_z ]_z /p</p>
|
340
|
+
|
341
|
+
|
342
|
+
|
343
|
+
<div class="method-source-code" id="gpd2qzz-source">
|
344
|
+
<pre>
|
345
|
+
<span class="ruby-comment"># File ../../lib/numru/ganalysis/qg.rb, line 65</span>
|
346
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">gpd2qzz</span>(<span class="ruby-identifier">gp</span>, <span class="ruby-identifier">b</span>)
|
347
|
+
<span class="ruby-identifier">bunits</span> = <span class="ruby-constant">Units</span>[<span class="ruby-string">"s-2"</span>] <span class="ruby-comment"># this is assumed!</span>
|
348
|
+
<span class="ruby-identifier">pdim</span> = <span class="ruby-constant">Met</span>.<span class="ruby-identifier">find_prs_d</span>(<span class="ruby-identifier">gp</span>)
|
349
|
+
<span class="ruby-identifier">p</span> = <span class="ruby-identifier">gp</span>.<span class="ruby-identifier">coord</span>(<span class="ruby-identifier">pdim</span>)
|
350
|
+
<span class="ruby-identifier">z</span> = <span class="ruby-constant">LogP</span>.<span class="ruby-identifier">p2z</span>(<span class="ruby-identifier">p</span>)
|
351
|
+
<span class="ruby-identifier">zunits</span> = <span class="ruby-identifier">z</span>.<span class="ruby-identifier">units</span>
|
352
|
+
<span class="ruby-identifier">g</span> = <span class="ruby-constant">Derivative</span><span class="ruby-operator">::</span><span class="ruby-identifier">b_expand_linear_ext</span>( <span class="ruby-identifier">gp</span>.<span class="ruby-identifier">val</span>, <span class="ruby-identifier">pdim</span> )
|
353
|
+
<span class="ruby-identifier">z</span> = <span class="ruby-constant">Derivative</span><span class="ruby-operator">::</span><span class="ruby-identifier">b_expand_linear_ext</span>( <span class="ruby-identifier">z</span>.<span class="ruby-identifier">val</span>, <span class="ruby-value">0</span> )
|
354
|
+
<span class="ruby-identifier">p</span> = <span class="ruby-constant">Derivative</span><span class="ruby-operator">::</span><span class="ruby-identifier">b_expand_linear_ext</span>( <span class="ruby-identifier">p</span>.<span class="ruby-identifier">val</span>, <span class="ruby-value">0</span> )
|
355
|
+
<span class="ruby-identifier">b</span> = <span class="ruby-identifier">b</span>.<span class="ruby-identifier">val</span>
|
356
|
+
<span class="ruby-identifier">b</span> = <span class="ruby-identifier">b</span>.<span class="ruby-identifier">to_na</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">b</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value">:to_na</span>) <span class="ruby-comment"># likely a NArrayMiss</span>
|
357
|
+
<span class="ruby-identifier">b</span> = <span class="ruby-constant">Derivative</span><span class="ruby-operator">::</span><span class="ruby-identifier">b_expand_linear_ext</span>( <span class="ruby-identifier">b</span>, <span class="ruby-value">0</span> )
|
358
|
+
<span class="ruby-identifier">pb</span> = <span class="ruby-identifier">p</span><span class="ruby-operator">/</span><span class="ruby-identifier">b</span>
|
359
|
+
|
360
|
+
<span class="ruby-identifier">pbm</span> = (<span class="ruby-identifier">pb</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">-2</span>] <span class="ruby-operator">+</span> <span class="ruby-identifier">pb</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>]) <span class="ruby-operator">/</span> <span class="ruby-value">2.0</span> <span class="ruby-comment"># pb_{i+1/2} (for i=0..-2)</span>
|
361
|
+
<span class="ruby-identifier">pbm01</span> = <span class="ruby-identifier">pbm</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">-2</span>] <span class="ruby-comment"># pb_{i-1/2} (for i=1..-2)</span>
|
362
|
+
<span class="ruby-identifier">pbm12</span> = <span class="ruby-identifier">pbm</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>] <span class="ruby-comment"># pb_{i+1/2} (for i=1..-2)</span>
|
363
|
+
<span class="ruby-identifier">dz20</span> = <span class="ruby-identifier">z</span>[<span class="ruby-value">2</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>] <span class="ruby-operator">-</span> <span class="ruby-identifier">z</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">-3</span>] <span class="ruby-comment"># z_{i+1} - z_{i-1} (for i=1..-2)</span>
|
364
|
+
<span class="ruby-identifier">dz21</span> = <span class="ruby-identifier">z</span>[<span class="ruby-value">2</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>] <span class="ruby-operator">-</span> <span class="ruby-identifier">z</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-2</span>] <span class="ruby-comment"># z_{i+1} - z_{i} (for i=1..-2)</span>
|
365
|
+
<span class="ruby-identifier">dz10</span> = <span class="ruby-identifier">z</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-2</span>] <span class="ruby-operator">-</span> <span class="ruby-identifier">z</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">-3</span>] <span class="ruby-comment"># z_{i} - x_{i-1} (for i=1..-2)</span>
|
366
|
+
<span class="ruby-identifier">pc</span> = <span class="ruby-identifier">p</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-2</span>] <span class="ruby-comment"># p_{i} (for i=1..-2)</span>
|
367
|
+
|
368
|
+
<span class="ruby-identifier">a2</span> = <span class="ruby-value">2</span>*<span class="ruby-identifier">pbm12</span><span class="ruby-operator">/</span>(<span class="ruby-identifier">dz21</span>*<span class="ruby-identifier">dz20</span>)<span class="ruby-operator">/</span><span class="ruby-identifier">pc</span>
|
369
|
+
<span class="ruby-identifier">a0</span> = <span class="ruby-value">2</span>*<span class="ruby-identifier">pbm01</span><span class="ruby-operator">/</span>(<span class="ruby-identifier">dz10</span>*<span class="ruby-identifier">dz20</span>)<span class="ruby-operator">/</span><span class="ruby-identifier">pc</span>
|
370
|
+
<span class="ruby-identifier">a1</span> = <span class="ruby-operator">-</span><span class="ruby-identifier">a2</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">a0</span>
|
371
|
+
|
372
|
+
<span class="ruby-identifier">to_rankD</span> = [<span class="ruby-value">1</span>]*<span class="ruby-identifier">pdim</span> <span class="ruby-operator">+</span> [<span class="ruby-keyword">true</span>] <span class="ruby-operator">+</span> [<span class="ruby-value">1</span>]*(<span class="ruby-identifier">gp</span>.<span class="ruby-identifier">rank</span><span class="ruby-operator">-</span><span class="ruby-identifier">pdim</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>)
|
373
|
+
<span class="ruby-identifier">a2</span> = <span class="ruby-identifier">a2</span>.<span class="ruby-identifier">reshape</span>(*<span class="ruby-identifier">to_rankD</span>)
|
374
|
+
<span class="ruby-identifier">a1</span> = <span class="ruby-identifier">a1</span>.<span class="ruby-identifier">reshape</span>(*<span class="ruby-identifier">to_rankD</span>)
|
375
|
+
<span class="ruby-identifier">a0</span> = <span class="ruby-identifier">a0</span>.<span class="ruby-identifier">reshape</span>(*<span class="ruby-identifier">to_rankD</span>)
|
376
|
+
|
377
|
+
<span class="ruby-identifier">vqzz</span> = <span class="ruby-identifier">g</span>[ *([<span class="ruby-keyword">true</span>]*<span class="ruby-identifier">pdim</span><span class="ruby-operator">+</span>[<span class="ruby-value">2</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>,<span class="ruby-keyword">false</span>]) ] * <span class="ruby-identifier">a2</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">g</span>[ *([<span class="ruby-keyword">true</span>]*<span class="ruby-identifier">pdim</span><span class="ruby-operator">+</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-2</span>,<span class="ruby-keyword">false</span>]) ] * <span class="ruby-identifier">a1</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">g</span>[ *([<span class="ruby-keyword">true</span>]*<span class="ruby-identifier">pdim</span><span class="ruby-operator">+</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">-3</span>,<span class="ruby-keyword">false</span>]) ] * <span class="ruby-identifier">a0</span>
|
378
|
+
|
379
|
+
<span class="ruby-identifier">qzz</span> = <span class="ruby-identifier">gp</span>.<span class="ruby-identifier">copy</span>
|
380
|
+
<span class="ruby-identifier">qzz</span>.<span class="ruby-identifier">data</span>.<span class="ruby-identifier">replace_val</span>(<span class="ruby-identifier">vqzz</span>)
|
381
|
+
<span class="ruby-identifier">qzz</span>.<span class="ruby-identifier">name</span> = <span class="ruby-string">"qzz"</span>
|
382
|
+
<span class="ruby-identifier">qzz</span>.<span class="ruby-identifier">long_name</span> = <span class="ruby-string">"z-deriv term in QG PV"</span>
|
383
|
+
<span class="ruby-identifier">qzz</span>.<span class="ruby-identifier">units</span> = <span class="ruby-identifier">qzz</span>.<span class="ruby-identifier">units</span> <span class="ruby-operator">/</span> <span class="ruby-identifier">zunits</span><span class="ruby-operator">**</span><span class="ruby-value">2</span> <span class="ruby-operator">/</span> <span class="ruby-identifier">bunits</span>
|
384
|
+
<span class="ruby-identifier">qzz</span>
|
385
|
+
<span class="ruby-keyword">end</span></pre>
|
386
|
+
</div><!-- gpd2qzz-source -->
|
387
|
+
|
388
|
+
</div>
|
389
|
+
|
390
|
+
|
391
|
+
|
392
|
+
|
393
|
+
</div><!-- gpd2qzz-method -->
|
394
|
+
|
395
|
+
|
396
|
+
<div id="gph2gpd_gpref-method" class="method-detail ">
|
397
|
+
<a name="method-c-gph2gpd_gpref"></a>
|
398
|
+
|
399
|
+
|
400
|
+
<div class="method-heading">
|
401
|
+
<span class="method-name">gph2gpd_gpref</span><span
|
402
|
+
class="method-args">(gph)</span>
|
403
|
+
<span class="method-click-advice">click to toggle source</span>
|
404
|
+
</div>
|
405
|
+
|
406
|
+
|
407
|
+
<div class="method-description">
|
408
|
+
|
409
|
+
<p>geopotential height to geopotential deviation from the global&time mean</p>
|
410
|
+
|
411
|
+
|
412
|
+
|
413
|
+
<div class="method-source-code" id="gph2gpd_gpref-source">
|
414
|
+
<pre>
|
415
|
+
<span class="ruby-comment"># File ../../lib/numru/ganalysis/qg.rb, line 40</span>
|
416
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">gph2gpd_gpref</span>(<span class="ruby-identifier">gph</span>)
|
417
|
+
<span class="ruby-identifier">gp</span> = <span class="ruby-identifier">gph</span> * <span class="ruby-constant">Met</span><span class="ruby-operator">::</span><span class="ruby-identifier">g</span>
|
418
|
+
<span class="ruby-identifier">gpref</span> = <span class="ruby-identifier">gp2gpref</span>(<span class="ruby-identifier">gp</span>)
|
419
|
+
<span class="ruby-identifier">gpd</span> = <span class="ruby-identifier">gp</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">gpref</span>
|
420
|
+
<span class="ruby-identifier">gpd</span>.<span class="ruby-identifier">name</span> = <span class="ruby-string">"gpd"</span>
|
421
|
+
<span class="ruby-identifier">gpd</span>.<span class="ruby-identifier">long_name</span> = <span class="ruby-string">"Geopotential deviation"</span>
|
422
|
+
[<span class="ruby-identifier">gpd</span>, <span class="ruby-identifier">gpref</span>]
|
423
|
+
<span class="ruby-keyword">end</span></pre>
|
424
|
+
</div><!-- gph2gpd_gpref-source -->
|
425
|
+
|
426
|
+
</div>
|
427
|
+
|
428
|
+
|
429
|
+
|
430
|
+
|
431
|
+
</div><!-- gph2gpd_gpref-method -->
|
432
|
+
|
433
|
+
|
434
|
+
<div id="gph2gpref-method" class="method-detail ">
|
435
|
+
<a name="method-c-gph2gpref"></a>
|
436
|
+
|
437
|
+
|
438
|
+
<div class="method-heading">
|
439
|
+
<span class="method-name">gph2gpref</span><span
|
440
|
+
class="method-args">(gph)</span>
|
441
|
+
<span class="method-click-advice">click to toggle source</span>
|
442
|
+
</div>
|
443
|
+
|
444
|
+
|
445
|
+
<div class="method-description">
|
446
|
+
|
447
|
+
<p>geopotential height (multi-D) -> reference geopotential profile (1D)</p>
|
448
|
+
|
449
|
+
|
450
|
+
|
451
|
+
<div class="method-source-code" id="gph2gpref-source">
|
452
|
+
<pre>
|
453
|
+
<span class="ruby-comment"># File ../../lib/numru/ganalysis/qg.rb, line 18</span>
|
454
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">gph2gpref</span>(<span class="ruby-identifier">gph</span>)
|
455
|
+
<span class="ruby-identifier">gp2gpref</span>(<span class="ruby-identifier">gph</span>) * <span class="ruby-constant">Met</span><span class="ruby-operator">::</span><span class="ruby-identifier">g</span>
|
456
|
+
<span class="ruby-keyword">end</span></pre>
|
457
|
+
</div><!-- gph2gpref-source -->
|
458
|
+
|
459
|
+
</div>
|
460
|
+
|
461
|
+
|
462
|
+
|
463
|
+
|
464
|
+
</div><!-- gph2gpref-method -->
|
465
|
+
|
466
|
+
|
467
|
+
<div id="gpref2n2-method" class="method-detail ">
|
468
|
+
<a name="method-c-gpref2n2"></a>
|
469
|
+
|
470
|
+
|
471
|
+
<div class="method-heading">
|
472
|
+
<span class="method-name">gpref2n2</span><span
|
473
|
+
class="method-args">(gpref)</span>
|
474
|
+
<span class="method-click-advice">click to toggle source</span>
|
475
|
+
</div>
|
476
|
+
|
477
|
+
|
478
|
+
<div class="method-description">
|
479
|
+
|
480
|
+
<p>reference geopotential -> buoyancy frequency squared</p>
|
481
|
+
|
482
|
+
|
483
|
+
|
484
|
+
<div class="method-source-code" id="gpref2n2-source">
|
485
|
+
<pre>
|
486
|
+
<span class="ruby-comment"># File ../../lib/numru/ganalysis/qg.rb, line 51</span>
|
487
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">gpref2n2</span>(<span class="ruby-identifier">gpref</span>)
|
488
|
+
<span class="ruby-identifier">gp_z</span> = <span class="ruby-constant">LogP</span>.<span class="ruby-identifier">pcdata_dz</span>( <span class="ruby-identifier">gpref</span> )
|
489
|
+
<span class="ruby-identifier">gp_zz</span> = <span class="ruby-constant">LogP</span>.<span class="ruby-identifier">pcdata_dz2</span>( <span class="ruby-identifier">gpref</span> )
|
490
|
+
<span class="ruby-identifier">gp_zz</span>[<span class="ruby-value">0</span>] = <span class="ruby-identifier">gp_zz</span>[<span class="ruby-value">1</span>] <span class="ruby-comment"># At boundary, it's safer to extend lapse rate</span>
|
491
|
+
<span class="ruby-identifier">gp_zz</span>[<span class="ruby-value">-1</span>] = <span class="ruby-identifier">gp_zz</span>[<span class="ruby-value">-2</span>] <span class="ruby-comment"># At boundary, it's safer to extend lapse rate</span>
|
492
|
+
<span class="ruby-identifier">n2</span> = <span class="ruby-identifier">gp_zz</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">gp_z</span> * (<span class="ruby-constant">Met</span><span class="ruby-operator">::</span><span class="ruby-constant">Kappa</span> <span class="ruby-operator">/</span> <span class="ruby-constant">LogP</span>.<span class="ruby-identifier">h</span>)
|
493
|
+
<span class="ruby-identifier">n2</span>.<span class="ruby-identifier">name</span> = <span class="ruby-string">"N2"</span>
|
494
|
+
<span class="ruby-identifier">n2</span>.<span class="ruby-identifier">long_name</span> = <span class="ruby-string">"N**2 (log-p)"</span>
|
495
|
+
<span class="ruby-comment">#p "@@@@@ N2 @@@@",n2.coord(0).val.to_a, n2.val.sqrt.to_a</span>
|
496
|
+
<span class="ruby-identifier">n2</span>
|
497
|
+
<span class="ruby-keyword">end</span></pre>
|
498
|
+
</div><!-- gpref2n2-source -->
|
499
|
+
|
500
|
+
</div>
|
501
|
+
|
502
|
+
|
503
|
+
|
504
|
+
|
505
|
+
</div><!-- gpref2n2-method -->
|
506
|
+
|
507
|
+
|
508
|
+
</div><!-- public-class-method-details -->
|
509
|
+
|
510
|
+
<div id="public-instance-method-details" class="method-section section">
|
511
|
+
<h3 class="section-header">Public Instance Methods</h3>
|
512
|
+
|
513
|
+
|
514
|
+
<div id="div_waf-method" class="method-detail ">
|
515
|
+
<a name="method-i-div_waf"></a>
|
516
|
+
|
517
|
+
|
518
|
+
<div class="method-heading">
|
519
|
+
<span class="method-name">div_waf</span><span
|
520
|
+
class="method-args">(fx, fy, fz, bottom_treatment=true)</span>
|
521
|
+
<span class="method-click-advice">click to toggle source</span>
|
522
|
+
</div>
|
523
|
+
|
524
|
+
|
525
|
+
<div class="method-description">
|
526
|
+
|
527
|
+
<p>div of WAF</p>
|
528
|
+
|
529
|
+
<p>(p cos_phi)^-1 div(p waf) = (cos_phi)^-1 ( div_h(fx,fy) + p^-1 d_z (p fz) )</p>
|
530
|
+
<ul><li>
|
531
|
+
<p>fx, fy, fz (<a href="../GPhys.html">GPhys</a>) : the x, y and z components
|
532
|
+
of waf</p>
|
533
|
+
</li><li>
|
534
|
+
<p>bottom_treatment (true (==default) or false) : If true, the lowest level
|
535
|
+
vertical divergence is computed by assuming that fz is zero at the
|
536
|
+
extended “underground” level. The thickness assumed (=<a
|
537
|
+
href="http://1">p</a>-<a href="http://0">p</a>) is consistent with the
|
538
|
+
((<<a
|
539
|
+
href="QG_common.html#method-c-extend_bottom">extend_bottom</a>>))
|
540
|
+
method.</p>
|
541
|
+
</li></ul>
|
542
|
+
|
543
|
+
|
544
|
+
|
545
|
+
<div class="method-source-code" id="div_waf-source">
|
546
|
+
<pre>
|
547
|
+
<span class="ruby-comment"># File ../../lib/numru/ganalysis/qg.rb, line 185</span>
|
548
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">div_waf</span>(<span class="ruby-identifier">fx</span>, <span class="ruby-identifier">fy</span>, <span class="ruby-identifier">fz</span>, <span class="ruby-identifier">bottom_treatment</span>=<span class="ruby-keyword">true</span>)
|
549
|
+
<span class="ruby-identifier">cosphi</span> = <span class="ruby-identifier">cos_phi</span>(<span class="ruby-identifier">fx</span>)
|
550
|
+
<span class="ruby-identifier">p</span> = <span class="ruby-constant">Met</span>.<span class="ruby-identifier">get_prs</span>(<span class="ruby-identifier">fx</span>)
|
551
|
+
|
552
|
+
<span class="ruby-identifier">fz_z</span> = <span class="ruby-constant">LogP</span>.<span class="ruby-identifier">pcdata_dz</span>( <span class="ruby-identifier">fz</span>*<span class="ruby-identifier">p</span> ) <span class="ruby-operator">/</span> <span class="ruby-identifier">p</span>
|
553
|
+
|
554
|
+
<span class="ruby-comment">#>>>>>> the lowest layer treatment consistent with qb, in which</span>
|
555
|
+
<span class="ruby-comment"># geopotential (or stream function) is extended by extend_bottom. </span>
|
556
|
+
<span class="ruby-comment"># Assumption: the first level is the lowest (bottom) one</span>
|
557
|
+
<span class="ruby-keyword">if</span> <span class="ruby-identifier">bottom_treatment</span>
|
558
|
+
<span class="ruby-comment"># using the relation p^{-1} d/dz = -H^{-1} d/dp </span>
|
559
|
+
<span class="ruby-comment"># and assuming fz=0 below the bottom (the "underground" level),</span>
|
560
|
+
<span class="ruby-comment"># p^{-1} d/dz (p fz) = -H^{-1} d/dp (p fz),</span>
|
561
|
+
<span class="ruby-comment"># which is H^{-1} p fz / delta_p, at the lowest level with a</span>
|
562
|
+
<span class="ruby-comment"># "thickness" of delta_p. </span>
|
563
|
+
<span class="ruby-identifier">w</span> = <span class="ruby-identifier">p</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">1</span>].<span class="ruby-identifier">val</span>
|
564
|
+
<span class="ruby-identifier">dp</span> = <span class="ruby-identifier">w</span>[<span class="ruby-value">1</span>] <span class="ruby-operator">-</span> <span class="ruby-identifier">w</span>[<span class="ruby-value">0</span>]
|
565
|
+
<span class="ruby-identifier">p0</span> = <span class="ruby-identifier">w</span>[<span class="ruby-value">0</span>]
|
566
|
+
<span class="ruby-identifier">pdim</span> = <span class="ruby-constant">Met</span>.<span class="ruby-identifier">find_prs_d</span>(<span class="ruby-identifier">fz</span>)
|
567
|
+
<span class="ruby-identifier">sel0</span> = [<span class="ruby-keyword">true</span>]*<span class="ruby-identifier">pdim</span> <span class="ruby-operator">+</span> [<span class="ruby-value">0</span>,<span class="ruby-keyword">false</span>] <span class="ruby-comment"># to specify the first level</span>
|
568
|
+
<span class="ruby-identifier">fz_z</span>[*<span class="ruby-identifier">sel0</span>] = <span class="ruby-identifier">fz</span>[*<span class="ruby-identifier">sel0</span>]*<span class="ruby-identifier">p0</span> <span class="ruby-operator">/</span> (<span class="ruby-constant">LogP</span>.<span class="ruby-identifier">h</span>*<span class="ruby-identifier">dp</span>)
|
569
|
+
<span class="ruby-keyword">end</span>
|
570
|
+
<span class="ruby-comment">#<<<<<<</span>
|
571
|
+
|
572
|
+
<span class="ruby-identifier">divh</span> = ( <span class="ruby-identifier">div_h</span>(<span class="ruby-identifier">fx</span>, <span class="ruby-identifier">fy</span>) <span class="ruby-operator">+</span> <span class="ruby-identifier">fz_z</span> ) <span class="ruby-operator">/</span> <span class="ruby-identifier">cosphi</span>
|
573
|
+
<span class="ruby-comment"># ^ div_h is defined in QG, QG_sphere,..., but not in QG_common</span>
|
574
|
+
<span class="ruby-identifier">divh</span>.<span class="ruby-identifier">name</span> = <span class="ruby-string">"divwaf"</span>
|
575
|
+
<span class="ruby-identifier">divh</span>.<span class="ruby-identifier">long_name</span> = <span class="ruby-node">"div of waf (#{fx.name},..)"</span>
|
576
|
+
<span class="ruby-identifier">divh</span>
|
577
|
+
<span class="ruby-keyword">end</span></pre>
|
578
|
+
</div><!-- div_waf-source -->
|
579
|
+
|
580
|
+
</div>
|
581
|
+
|
582
|
+
|
583
|
+
|
584
|
+
|
585
|
+
</div><!-- div_waf-method -->
|
586
|
+
|
587
|
+
|
588
|
+
</div><!-- public-instance-method-details -->
|
589
|
+
|
590
|
+
</div><!-- 5Buntitled-5D -->
|
591
|
+
|
592
|
+
|
593
|
+
</div><!-- documentation -->
|
594
|
+
|
595
|
+
<div id="validator-badges">
|
596
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
597
|
+
<p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
|
598
|
+
Rdoc Generator</a> 2</small>.</p>
|
599
|
+
</div>
|
600
|
+
|
601
|
+
</body>
|
602
|
+
</html>
|
603
|
+
|