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.
Files changed (94) hide show
  1. checksums.yaml +7 -0
  2. data/ChangeLog +7414 -0
  3. data/LICENSE.txt +1 -1
  4. data/Rakefile +0 -2
  5. data/doc/derivative/math-doc/document/images.log +385 -0
  6. data/doc/ep_flux/math-doc/document/images.log +1375 -0
  7. data/doc/ganalysis/doc/NumRu.html +203 -0
  8. data/doc/ganalysis/doc/NumRu/GAnalysis.html +931 -0
  9. data/doc/ganalysis/doc/NumRu/GAnalysis/BetaPlane.html +574 -0
  10. data/doc/ganalysis/doc/NumRu/GAnalysis/Fitting.html +576 -0
  11. data/doc/ganalysis/doc/NumRu/GAnalysis/LogP.html +425 -0
  12. data/doc/ganalysis/doc/NumRu/GAnalysis/Met.html +2021 -0
  13. data/doc/ganalysis/doc/NumRu/GAnalysis/MetZ.html +524 -0
  14. data/doc/ganalysis/doc/NumRu/GAnalysis/Planet.html +1047 -0
  15. data/doc/ganalysis/doc/NumRu/GAnalysis/QG.html +794 -0
  16. data/doc/ganalysis/doc/NumRu/GAnalysis/QG/Uninitialized.html +215 -0
  17. data/doc/ganalysis/doc/NumRu/GAnalysis/QG_common.html +603 -0
  18. data/doc/ganalysis/doc/NumRu/GAnalysis/QG_sphere.html +760 -0
  19. data/doc/ganalysis/doc/NumRu/GAnalysis/QG_sphere_common.html +251 -0
  20. data/doc/ganalysis/doc/NumRu/GAnalysis/QG_sphere_div.html +424 -0
  21. data/doc/ganalysis/doc/NumRu/GAnalysis/SigmaCoord.html +321 -0
  22. data/doc/ganalysis/doc/NumRu/GGraph.html +334 -0
  23. data/doc/ganalysis/doc/NumRu/GPhys.html +579 -0
  24. data/doc/ganalysis/doc/Object.html +210 -0
  25. data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/beta_plane_rb.html +60 -0
  26. data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/covariance_rb.html +56 -0
  27. data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/eof_rb.html +64 -0
  28. data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/fitting_rb.html +54 -0
  29. data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/histogram_rb.html +58 -0
  30. data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/log_p_rb.html +60 -0
  31. data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/met_rb.html +60 -0
  32. data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/met_z_rb.html +58 -0
  33. data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/planet_rb.html +58 -0
  34. data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/qg_rb.html +64 -0
  35. data/doc/ganalysis/doc/__/__/lib/numru/ganalysis/sigma_coord_rb.html +56 -0
  36. data/doc/ganalysis/doc/__/__/lib/numru/ganalysis_rb.html +98 -0
  37. data/doc/ganalysis/doc/created.rid +13 -0
  38. data/doc/ganalysis/doc/images/brick.png +0 -0
  39. data/doc/ganalysis/doc/images/brick_link.png +0 -0
  40. data/doc/ganalysis/doc/images/bug.png +0 -0
  41. data/doc/ganalysis/doc/images/bullet_black.png +0 -0
  42. data/doc/ganalysis/doc/images/bullet_toggle_minus.png +0 -0
  43. data/doc/ganalysis/doc/images/bullet_toggle_plus.png +0 -0
  44. data/doc/ganalysis/doc/images/date.png +0 -0
  45. data/doc/ganalysis/doc/images/find.png +0 -0
  46. data/doc/ganalysis/doc/images/loadingAnimation.gif +0 -0
  47. data/doc/ganalysis/doc/images/macFFBgHack.png +0 -0
  48. data/doc/ganalysis/doc/images/package.png +0 -0
  49. data/doc/ganalysis/doc/images/page_green.png +0 -0
  50. data/doc/ganalysis/doc/images/page_white_text.png +0 -0
  51. data/doc/ganalysis/doc/images/page_white_width.png +0 -0
  52. data/doc/ganalysis/doc/images/plugin.png +0 -0
  53. data/doc/ganalysis/doc/images/ruby.png +0 -0
  54. data/doc/ganalysis/doc/images/tag_green.png +0 -0
  55. data/doc/ganalysis/doc/images/wrench.png +0 -0
  56. data/doc/ganalysis/doc/images/wrench_orange.png +0 -0
  57. data/doc/ganalysis/doc/images/zoom.png +0 -0
  58. data/doc/ganalysis/doc/index.html +383 -0
  59. data/doc/ganalysis/doc/js/darkfish.js +118 -0
  60. data/doc/ganalysis/doc/js/jquery.js +32 -0
  61. data/doc/ganalysis/doc/js/quicksearch.js +114 -0
  62. data/doc/ganalysis/doc/js/thickbox-compressed.js +10 -0
  63. data/doc/ganalysis/doc/rdoc.css +763 -0
  64. data/ext/numru/gphys/ext_init.c +1 -0
  65. data/ext/numru/gphys/quad_mesh_sample.c +478 -0
  66. data/gphys.gemspec +2 -2
  67. data/lib/numru/dclext.rb +394 -14
  68. data/lib/numru/derivative.rb +6 -0
  69. data/lib/numru/ganalysis/qg.rb +6 -4
  70. data/lib/numru/ggraph.rb +41 -8
  71. data/lib/numru/gphys/gphys.rb +62 -14
  72. data/lib/numru/gphys/gphys_io.rb +4 -4
  73. data/lib/numru/gphys/version.rb +2 -2
  74. metadata +84 -79
  75. data/.gitignore +0 -14
  76. data/TODO_ep_flux +0 -6
  77. data/gphys-bigmem.gemspec +0 -44
  78. data/install.rb +0 -130
  79. data/sample/cira86_to_nc.rb +0 -122
  80. data/sample/druby_cli1.rb +0 -23
  81. data/sample/druby_cli2.rb +0 -28
  82. data/sample/druby_serv1.rb +0 -30
  83. data/sample/druby_serv2.rb +0 -51
  84. data/sample/ep_flux/demo_NCEP_1.rb +0 -48
  85. data/sample/ep_flux/demo_NCEP_2.rb +0 -57
  86. data/sample/ep_flux/demo_NCEP_3.rb +0 -81
  87. data/sample/ggraph_latlon_labelling_dr002690.rb +0 -159
  88. data/sample/ggraph_mapfit-axes_dr002687.rb +0 -131
  89. data/sample/map_projection.rb +0 -121
  90. data/sample/ncep_theta_coord.rb +0 -79
  91. data/test_old/eof_slp.rb +0 -28
  92. data/test_old/mltbit.dat +0 -0
  93. data/test_old/test_ep_flux.rb +0 -533
  94. data/test_old/test_multibitIO.rb +0 -19
@@ -0,0 +1,1047 @@
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::Planet</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/planet_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
38
+ class="thickbox" title="../../lib/numru/ganalysis/planet.rb">../../lib/numru/ganalysis/planet.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-i-absvor_s">#absvor_s</a></li>
61
+
62
+ <li><a href="#method-i-ave_s">#ave_s</a></li>
63
+
64
+ <li><a href="#method-i-div_s">#div_s</a></li>
65
+
66
+ <li><a href="#method-i-find_lon_lat_dims">#find_lon_lat_dims</a></li>
67
+
68
+ <li><a href="#method-i-get_lambda_phi">#get_lambda_phi</a></li>
69
+
70
+ <li><a href="#method-i-grad_s">#grad_s</a></li>
71
+
72
+ <li><a href="#method-i-grad_sx">#grad_sx</a></li>
73
+
74
+ <li><a href="#method-i-grad_sy">#grad_sy</a></li>
75
+
76
+ <li><a href="#method-i-grad_sy_cosphifact">#grad_sy_cosphifact</a></li>
77
+
78
+ <li><a href="#method-i-init">#init</a></li>
79
+
80
+ <li><a href="#method-i-latbc">#latbc</a></li>
81
+
82
+ <li><a href="#method-i-omega">#omega</a></li>
83
+
84
+ <li><a href="#method-i-omega-3D">#omega=</a></li>
85
+
86
+ <li><a href="#method-i-radius">#radius</a></li>
87
+
88
+ <li><a href="#method-i-radius-3D">#radius=</a></li>
89
+
90
+ <li><a href="#method-i-rot_s">#rot_s</a></li>
91
+
92
+ <li><a href="#method-i-vor_s">#vor_s</a></li>
93
+
94
+ <li><a href="#method-i-weight_cosphi">#weight_cosphi</a></li>
95
+
96
+ <li><a href="#method-i-weight_sinphi">#weight_sinphi</a></li>
97
+
98
+ <li><a href="#method-i-weight_tanphi">#weight_tanphi</a></li>
99
+
100
+ </ul>
101
+ </div>
102
+
103
+
104
+
105
+ </div>
106
+
107
+ <div id="project-metadata">
108
+
109
+
110
+
111
+ <div id="classindex-section" class="section project-section">
112
+ <h3 class="section-header">Class/Module Index
113
+ <span class="search-toggle"><img src="../../images/find.png"
114
+ height="16" width="16" alt="[+]"
115
+ title="show/hide quicksearch" /></span></h3>
116
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
117
+ <fieldset>
118
+ <legend>Quicksearch</legend>
119
+ <input type="text" name="quicksearch" value=""
120
+ class="quicksearch-field" />
121
+ </fieldset>
122
+ </form>
123
+
124
+ <ul class="link-list">
125
+
126
+ <li><a href="../../NumRu.html">NumRu</a></li>
127
+
128
+ <li><a href="../../NumRu/GAnalysis.html">NumRu::GAnalysis</a></li>
129
+
130
+ <li><a href="../../NumRu/GAnalysis/BetaPlane.html">NumRu::GAnalysis::BetaPlane</a></li>
131
+
132
+ <li><a href="../../NumRu/GAnalysis/Fitting.html">NumRu::GAnalysis::Fitting</a></li>
133
+
134
+ <li><a href="../../NumRu/GAnalysis/LogP.html">NumRu::GAnalysis::LogP</a></li>
135
+
136
+ <li><a href="../../NumRu/GAnalysis/Met.html">NumRu::GAnalysis::Met</a></li>
137
+
138
+ <li><a href="../../NumRu/GAnalysis/MetZ.html">NumRu::GAnalysis::MetZ</a></li>
139
+
140
+ <li><a href="../../NumRu/GAnalysis/Planet.html">NumRu::GAnalysis::Planet</a></li>
141
+
142
+ <li><a href="../../NumRu/GAnalysis/QG.html">NumRu::GAnalysis::QG</a></li>
143
+
144
+ <li><a href="../../NumRu/GAnalysis/QG/Uninitialized.html">NumRu::GAnalysis::QG::Uninitialized</a></li>
145
+
146
+ <li><a href="../../NumRu/GAnalysis/QG_common.html">NumRu::GAnalysis::QG_common</a></li>
147
+
148
+ <li><a href="../../NumRu/GAnalysis/QG_sphere.html">NumRu::GAnalysis::QG_sphere</a></li>
149
+
150
+ <li><a href="../../NumRu/GAnalysis/QG_sphere_common.html">NumRu::GAnalysis::QG_sphere_common</a></li>
151
+
152
+ <li><a href="../../NumRu/GAnalysis/QG_sphere_div.html">NumRu::GAnalysis::QG_sphere_div</a></li>
153
+
154
+ <li><a href="../../NumRu/GAnalysis/SigmaCoord.html">NumRu::GAnalysis::SigmaCoord</a></li>
155
+
156
+ <li><a href="../../NumRu/GGraph.html">NumRu::GGraph</a></li>
157
+
158
+ <li><a href="../../NumRu/GPhys.html">NumRu::GPhys</a></li>
159
+
160
+ <li><a href="../../Object.html">Object</a></li>
161
+
162
+ </ul>
163
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
164
+ </div>
165
+
166
+
167
+ </div>
168
+ </div>
169
+
170
+ <div id="documentation">
171
+ <h1 class="module">NumRu::GAnalysis::Planet</h1>
172
+
173
+ <div id="description" class="description">
174
+
175
+ <p>Library for spherical planets (thin spherical shell; default: <a
176
+ href="Planet.html#Earth">Earth</a>)</p>
177
+
178
+ <p>ASSUMPTIONS</p>
179
+ <ul><li>
180
+ <p>longitude is assumed to increase in the eastward direction.</p>
181
+ </li><li>
182
+ <p>latitude is assumed to increase in the northward direction, and it is zero
183
+ at the equator.</p>
184
+ </li></ul>
185
+
186
+ </div><!-- description -->
187
+
188
+
189
+
190
+
191
+ <div id="5Buntitled-5D" class="documentation-section">
192
+
193
+
194
+
195
+
196
+
197
+ <!-- Constants -->
198
+ <div id="constants-list" class="section">
199
+ <h3 class="section-header">Constants</h3>
200
+ <dl>
201
+
202
+ <dt><a name="Earth">Earth</a></dt>
203
+
204
+ <dd class="description"><p>&lt; Pre-defined planets &gt;</p></dd>
205
+
206
+
207
+ </dl>
208
+ </div>
209
+
210
+
211
+
212
+
213
+ <!-- Methods -->
214
+
215
+ <div id="public-instance-method-details" class="method-section section">
216
+ <h3 class="section-header">Public Instance Methods</h3>
217
+
218
+
219
+ <div id="absvor_s-method" class="method-detail ">
220
+ <a name="method-i-absvor_s"></a>
221
+
222
+
223
+ <div class="method-heading">
224
+ <span class="method-name">absvor_s</span><span
225
+ class="method-args">(u,v)</span>
226
+ <span class="method-click-advice">click to toggle source</span>
227
+ </div>
228
+
229
+
230
+ <div class="method-description">
231
+
232
+
233
+
234
+
235
+
236
+ <div class="method-source-code" id="absvor_s-source">
237
+ <pre>
238
+ <span class="ruby-comment"># File ../../lib/numru/ganalysis/planet.rb, line 105</span>
239
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">absvor_s</span>(<span class="ruby-identifier">u</span>,<span class="ruby-identifier">v</span>)
240
+ <span class="ruby-identifier">avor</span> = <span class="ruby-identifier">vor_s</span>(<span class="ruby-identifier">u</span>,<span class="ruby-identifier">v</span>) <span class="ruby-operator">+</span> <span class="ruby-identifier">@@phi</span>.<span class="ruby-identifier">sin</span> * (<span class="ruby-value">2</span>*<span class="ruby-identifier">@@Ome</span>)
241
+ <span class="ruby-identifier">avor</span>.<span class="ruby-identifier">long_name</span> = <span class="ruby-string">&quot;Absolute Vorticity&quot;</span>
242
+ <span class="ruby-identifier">avor</span>.<span class="ruby-identifier">name</span> = <span class="ruby-string">&quot;avor&quot;</span>
243
+ <span class="ruby-identifier">avor</span>
244
+ <span class="ruby-keyword">end</span></pre>
245
+ </div><!-- absvor_s-source -->
246
+
247
+ </div>
248
+
249
+
250
+
251
+
252
+ </div><!-- absvor_s-method -->
253
+
254
+
255
+ <div id="ave_s-method" class="method-detail ">
256
+ <a name="method-i-ave_s"></a>
257
+
258
+
259
+ <div class="method-heading">
260
+ <span class="method-name">ave_s</span><span
261
+ class="method-args">(s)</span>
262
+ <span class="method-click-advice">click to toggle source</span>
263
+ </div>
264
+
265
+
266
+ <div class="method-description">
267
+
268
+ <p>horizontal averaging considering the spherical geometry</p>
269
+
270
+
271
+
272
+ <div class="method-source-code" id="ave_s-source">
273
+ <pre>
274
+ <span class="ruby-comment"># File ../../lib/numru/ganalysis/planet.rb, line 66</span>
275
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">ave_s</span>(<span class="ruby-identifier">s</span>)
276
+ <span class="ruby-identifier">lam</span>, <span class="ruby-identifier">phi</span>, <span class="ruby-identifier">lond</span>, <span class="ruby-identifier">latd</span> = <span class="ruby-identifier">get_lambda_phi</span>(<span class="ruby-identifier">s</span>)
277
+ <span class="ruby-identifier">xmean</span> = <span class="ruby-identifier">s</span>.<span class="ruby-identifier">mean</span>(<span class="ruby-identifier">lond</span>)
278
+ <span class="ruby-identifier">cos_phi</span> = <span class="ruby-identifier">phi</span>.<span class="ruby-identifier">cos</span>
279
+
280
+ <span class="ruby-identifier">lond</span>,<span class="ruby-identifier">latd</span> = <span class="ruby-identifier">find_lon_lat_dims</span>(<span class="ruby-identifier">xmean</span>) <span class="ruby-comment"># find latd again</span>
281
+ <span class="ruby-identifier">wgt</span> = <span class="ruby-identifier">cos_phi</span> <span class="ruby-operator">/</span> <span class="ruby-identifier">cos_phi</span>.<span class="ruby-identifier">sum</span>
282
+ (<span class="ruby-identifier">xmean</span> * <span class="ruby-identifier">wgt</span>).<span class="ruby-identifier">sum</span>(<span class="ruby-identifier">latd</span>)
283
+ <span class="ruby-keyword">end</span></pre>
284
+ </div><!-- ave_s-source -->
285
+
286
+ </div>
287
+
288
+
289
+
290
+
291
+ </div><!-- ave_s-method -->
292
+
293
+
294
+ <div id="div_s-method" class="method-detail ">
295
+ <a name="method-i-div_s"></a>
296
+
297
+
298
+ <div class="method-heading">
299
+ <span class="method-name">div_s</span><span
300
+ class="method-args">(u,v)</span>
301
+ <span class="method-click-advice">click to toggle source</span>
302
+ </div>
303
+
304
+
305
+ <div class="method-description">
306
+
307
+
308
+
309
+
310
+
311
+ <div class="method-source-code" id="div_s-source">
312
+ <pre>
313
+ <span class="ruby-comment"># File ../../lib/numru/ganalysis/planet.rb, line 87</span>
314
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">div_s</span>(<span class="ruby-identifier">u</span>,<span class="ruby-identifier">v</span>)
315
+ <span class="ruby-identifier">lam</span>, <span class="ruby-identifier">phi</span>, <span class="ruby-identifier">lond</span>, <span class="ruby-identifier">latd</span> = <span class="ruby-identifier">get_lambda_phi</span>(<span class="ruby-identifier">u</span>)
316
+ <span class="ruby-identifier">cos_phi</span> = <span class="ruby-identifier">phi</span>.<span class="ruby-identifier">cos</span>
317
+ <span class="ruby-identifier">du_dlam</span> = <span class="ruby-identifier">u</span>.<span class="ruby-identifier">cderiv</span>(<span class="ruby-identifier">lond</span>,<span class="ruby-identifier">@@lonbc</span>,<span class="ruby-identifier">lam</span>)
318
+ <span class="ruby-identifier">dvc_dphi</span> = (<span class="ruby-identifier">v</span>*<span class="ruby-identifier">cos_phi</span>).<span class="ruby-identifier">cderiv</span>(<span class="ruby-identifier">latd</span>,<span class="ruby-identifier">latbc</span>(<span class="ruby-identifier">phi</span>),<span class="ruby-identifier">phi</span>)
319
+ <span class="ruby-identifier">rot</span> = (<span class="ruby-identifier">du_dlam</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">dvc_dphi</span>) <span class="ruby-operator">/</span> (<span class="ruby-identifier">@@R</span>*<span class="ruby-identifier">cos_phi</span>)
320
+ <span class="ruby-identifier">rot</span>.<span class="ruby-identifier">long_name</span> = <span class="ruby-node">&quot;div(#{u.name},#{v.name})&quot;</span>
321
+ <span class="ruby-identifier">rot</span>.<span class="ruby-identifier">name</span> = <span class="ruby-string">&quot;div&quot;</span>
322
+ <span class="ruby-identifier">rot</span>
323
+ <span class="ruby-keyword">end</span></pre>
324
+ </div><!-- div_s-source -->
325
+
326
+ </div>
327
+
328
+
329
+
330
+
331
+ </div><!-- div_s-method -->
332
+
333
+
334
+ <div id="find_lon_lat_dims-method" class="method-detail ">
335
+ <a name="method-i-find_lon_lat_dims"></a>
336
+
337
+
338
+ <div class="method-heading">
339
+ <span class="method-name">find_lon_lat_dims</span><span
340
+ class="method-args">(gp, err_raise=false)</span>
341
+ <span class="method-click-advice">click to toggle source</span>
342
+ </div>
343
+
344
+
345
+ <div class="method-description">
346
+
347
+ <p>Find longitude and latitude coordinates.</p>
348
+
349
+ <p>ARGUMENTS</p>
350
+ <ul><li>
351
+ <p>gp : <a href="../GPhys.html">GPhys</a> to inspect</p>
352
+ </li><li>
353
+ <p>err_raise (OPTIONAL; default:false) : if true, exception is raised if
354
+ longitude or latitude coordinate is not found.</p>
355
+ </li></ul>
356
+
357
+ <p>SEARCH CRITERIA (1) Find coord having units “degrees_east” (lon) or</p>
358
+
359
+ <pre>&quot;degrees_north&quot; (lat)</pre>
360
+
361
+ <p>(2) Investigate coordinate name matches (to find a lonitude coord,</p>
362
+
363
+ <pre>/longitude/i for long_name or standard_name, or /^lon/ for name)
364
+ and match units compatible with &quot;degrees&quot;.</pre>
365
+
366
+ <p>RETURN VALUE</p>
367
+ <ul><li><dl class="rdoc-list"><dt>lond,latd</dt>
368
+ <dd></dd></dl>
369
+ <ul><li>
370
+ <p>lond: dimension number of longitude (0,1,..) if found / nil if not found</p>
371
+ </li><li>
372
+ <p>latd: dimension number of latitude (0,1,..) if found / nil if not found</p>
373
+ </li></ul>
374
+ </li></ul>
375
+
376
+
377
+
378
+ <div class="method-source-code" id="find_lon_lat_dims-source">
379
+ <pre>
380
+ <span class="ruby-comment"># File ../../lib/numru/ganalysis/planet.rb, line 221</span>
381
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">find_lon_lat_dims</span>(<span class="ruby-identifier">gp</span>, <span class="ruby-identifier">err_raise</span>=<span class="ruby-keyword">false</span>)
382
+ <span class="ruby-identifier">lond</span> = <span class="ruby-keyword">nil</span>
383
+ <span class="ruby-identifier">latd</span> = <span class="ruby-keyword">nil</span>
384
+ (<span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-identifier">gp</span>.<span class="ruby-identifier">rank</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">dim</span><span class="ruby-operator">|</span>
385
+ <span class="ruby-identifier">crd</span> = <span class="ruby-identifier">gp</span>.<span class="ruby-identifier">coord</span>(<span class="ruby-identifier">dim</span>)
386
+ <span class="ruby-keyword">if</span> <span class="ruby-regexp">/^degrees?_east$/</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">crd</span>.<span class="ruby-identifier">get_att</span>(<span class="ruby-string">&quot;units&quot;</span>)
387
+ <span class="ruby-identifier">lond</span> = <span class="ruby-identifier">dim</span>
388
+ <span class="ruby-keyword">break</span>
389
+ <span class="ruby-keyword">elsif</span> ( ( <span class="ruby-regexp">/longitude/</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">crd</span>.<span class="ruby-identifier">long_name</span> <span class="ruby-operator">||</span>
390
+ <span class="ruby-regexp">/^lon/</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">crd</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">||</span>
391
+ (<span class="ruby-identifier">nm</span>=<span class="ruby-identifier">crd</span>.<span class="ruby-identifier">get_att</span>(<span class="ruby-string">&quot;standard_name&quot;</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-regexp">/longitude/</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">nm</span> ) <span class="ruby-operator">&amp;&amp;</span>
392
+ (<span class="ruby-identifier">crd</span>.<span class="ruby-identifier">units</span> <span class="ruby-operator">=~</span> <span class="ruby-constant">Units</span>[<span class="ruby-string">&quot;degrees_east&quot;</span>]) ) )
393
+ <span class="ruby-identifier">lond</span> = <span class="ruby-identifier">dim</span>
394
+ <span class="ruby-keyword">break</span>
395
+ <span class="ruby-keyword">end</span>
396
+ <span class="ruby-keyword">end</span>
397
+ (<span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-identifier">gp</span>.<span class="ruby-identifier">rank</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">dim</span><span class="ruby-operator">|</span>
398
+ <span class="ruby-keyword">next</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">dim</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">lond</span>
399
+ <span class="ruby-identifier">crd</span> = <span class="ruby-identifier">gp</span>.<span class="ruby-identifier">coord</span>(<span class="ruby-identifier">dim</span>)
400
+ <span class="ruby-keyword">if</span> <span class="ruby-regexp">/^degrees?_north$/</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">crd</span>.<span class="ruby-identifier">get_att</span>(<span class="ruby-string">&quot;units&quot;</span>)
401
+ <span class="ruby-identifier">latd</span> = <span class="ruby-identifier">dim</span>
402
+ <span class="ruby-keyword">break</span>
403
+ <span class="ruby-keyword">elsif</span> ( ( <span class="ruby-regexp">/latitude/</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">crd</span>.<span class="ruby-identifier">long_name</span> <span class="ruby-operator">||</span>
404
+ <span class="ruby-regexp">/^lat/</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">crd</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">||</span>
405
+ (<span class="ruby-identifier">nm</span>=<span class="ruby-identifier">crd</span>.<span class="ruby-identifier">get_att</span>(<span class="ruby-string">&quot;standard_name&quot;</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-regexp">/latitude/</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">nm</span> ) <span class="ruby-operator">&amp;&amp;</span>
406
+ (<span class="ruby-identifier">crd</span>.<span class="ruby-identifier">units</span> <span class="ruby-operator">=~</span> <span class="ruby-constant">Units</span>[<span class="ruby-string">&quot;degrees_north&quot;</span>]) ) )
407
+ <span class="ruby-identifier">latd</span> = <span class="ruby-identifier">dim</span>
408
+ <span class="ruby-keyword">break</span>
409
+ <span class="ruby-keyword">end</span>
410
+ <span class="ruby-keyword">end</span>
411
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">err_raise</span>
412
+ <span class="ruby-identifier">raise</span>(<span class="ruby-string">&quot;Longitude dimension was not found&quot;</span>) <span class="ruby-keyword">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">lond</span>
413
+ <span class="ruby-identifier">raise</span>(<span class="ruby-string">&quot;Latitude dimension was not found&quot;</span>) <span class="ruby-keyword">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">latd</span>
414
+ <span class="ruby-keyword">end</span>
415
+ [<span class="ruby-identifier">lond</span>,<span class="ruby-identifier">latd</span>]
416
+ <span class="ruby-keyword">end</span></pre>
417
+ </div><!-- find_lon_lat_dims-source -->
418
+
419
+ </div>
420
+
421
+
422
+
423
+
424
+ </div><!-- find_lon_lat_dims-method -->
425
+
426
+
427
+ <div id="get_lambda_phi-method" class="method-detail ">
428
+ <a name="method-i-get_lambda_phi"></a>
429
+
430
+
431
+ <div class="method-heading">
432
+ <span class="method-name">get_lambda_phi</span><span
433
+ class="method-args">(gp, err_raise=true)</span>
434
+ <span class="method-click-advice">click to toggle source</span>
435
+ </div>
436
+
437
+
438
+ <div class="method-description">
439
+
440
+ <p>Find longitude and latitude coordinates and convert into radian.</p>
441
+
442
+ <p>RETURN VALUE</p>
443
+ <ul><li><dl class="rdoc-list"><dt>lam, phi, lond, latd</dt>
444
+ <dd></dd></dl>
445
+ <ul><li>
446
+ <p>lam (<a href="../GPhys.html">GPhys</a>): longitude in radian (lambda).
447
+ (nil if not found &amp;&amp; !err_raise)</p>
448
+ </li><li>
449
+ <p>phi (<a href="../GPhys.html">GPhys</a>): latitude in radian (lambda). (nil
450
+ if not found &amp;&amp; !err_raise)</p>
451
+ </li><li>
452
+ <p>lond : Interger to show that longitude is the lon-th dim if found; (nil if
453
+ not found &amp;&amp; !err_raise)</p>
454
+ </li><li>
455
+ <p>latd : Interger to show that latitude is the lat-th dim iffound; (nil if
456
+ not found &amp;&amp; !err_raise)</p>
457
+ </li></ul>
458
+ </li></ul>
459
+
460
+
461
+
462
+ <div class="method-source-code" id="get_lambda_phi-source">
463
+ <pre>
464
+ <span class="ruby-comment"># File ../../lib/numru/ganalysis/planet.rb, line 188</span>
465
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">get_lambda_phi</span>(<span class="ruby-identifier">gp</span>, <span class="ruby-identifier">err_raise</span>=<span class="ruby-keyword">true</span>)
466
+ <span class="ruby-identifier">lond</span>, <span class="ruby-identifier">latd</span> = <span class="ruby-identifier">find_lon_lat_dims</span>(<span class="ruby-identifier">gp</span>, <span class="ruby-identifier">err_raise</span>)
467
+ <span class="ruby-identifier">lam</span> = <span class="ruby-identifier">lond</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">gp</span>.<span class="ruby-identifier">axis</span>(<span class="ruby-identifier">lond</span>).<span class="ruby-identifier">to_gphys</span>.<span class="ruby-identifier">convert_units</span>(<span class="ruby-string">&quot;rad&quot;</span>) <span class="ruby-comment"># lon in rad</span>
468
+ <span class="ruby-identifier">lam</span>.<span class="ruby-identifier">units</span> = <span class="ruby-string">&quot;&quot;</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">lond</span> <span class="ruby-comment"># treat as non-dim</span>
469
+ <span class="ruby-identifier">phi</span> = <span class="ruby-identifier">latd</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">gp</span>.<span class="ruby-identifier">axis</span>(<span class="ruby-identifier">latd</span>).<span class="ruby-identifier">to_gphys</span>.<span class="ruby-identifier">convert_units</span>(<span class="ruby-string">&quot;rad&quot;</span>) <span class="ruby-comment"># lat in rad</span>
470
+ <span class="ruby-identifier">phi</span>.<span class="ruby-identifier">units</span> = <span class="ruby-string">&quot;&quot;</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">latd</span> <span class="ruby-comment"># treat as non-dim</span>
471
+ <span class="ruby-identifier">@@lam</span> = <span class="ruby-identifier">lam</span>
472
+ <span class="ruby-identifier">@@phi</span> = <span class="ruby-identifier">phi</span>
473
+ [<span class="ruby-identifier">lam</span>, <span class="ruby-identifier">phi</span>, <span class="ruby-identifier">lond</span>, <span class="ruby-identifier">latd</span>]
474
+ <span class="ruby-keyword">end</span></pre>
475
+ </div><!-- get_lambda_phi-source -->
476
+
477
+ </div>
478
+
479
+
480
+
481
+
482
+ </div><!-- get_lambda_phi-method -->
483
+
484
+
485
+ <div id="grad_s-method" class="method-detail ">
486
+ <a name="method-i-grad_s"></a>
487
+
488
+
489
+ <div class="method-heading">
490
+ <span class="method-name">grad_s</span><span
491
+ class="method-args">(s)</span>
492
+ <span class="method-click-advice">click to toggle source</span>
493
+ </div>
494
+
495
+
496
+ <div class="method-description">
497
+
498
+
499
+
500
+
501
+
502
+ <div class="method-source-code" id="grad_s-source">
503
+ <pre>
504
+ <span class="ruby-comment"># File ../../lib/numru/ganalysis/planet.rb, line 112</span>
505
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">grad_s</span>(<span class="ruby-identifier">s</span>)
506
+ <span class="ruby-identifier">lam</span>, <span class="ruby-identifier">phi</span>, <span class="ruby-identifier">lond</span>, <span class="ruby-identifier">latd</span> = <span class="ruby-identifier">get_lambda_phi</span>(<span class="ruby-identifier">s</span>)
507
+ <span class="ruby-identifier">cos_phi</span> = <span class="ruby-identifier">phi</span>.<span class="ruby-identifier">cos</span>
508
+ <span class="ruby-identifier">xs</span> = <span class="ruby-identifier">s</span>.<span class="ruby-identifier">cderiv</span>(<span class="ruby-identifier">lond</span>,<span class="ruby-identifier">@@lonbc</span>,<span class="ruby-identifier">lam</span>) <span class="ruby-operator">/</span> (<span class="ruby-identifier">@@R</span>*<span class="ruby-identifier">cos_phi</span>)
509
+ <span class="ruby-identifier">ys</span> = <span class="ruby-identifier">s</span>.<span class="ruby-identifier">cderiv</span>(<span class="ruby-identifier">latd</span>,<span class="ruby-identifier">latbc</span>(<span class="ruby-identifier">phi</span>),<span class="ruby-identifier">phi</span>) <span class="ruby-operator">/</span> <span class="ruby-identifier">@@R</span>
510
+ <span class="ruby-identifier">xs</span>.<span class="ruby-identifier">long_name</span> = <span class="ruby-node">&quot;xgrad(#{s.name})&quot;</span>
511
+ <span class="ruby-identifier">xs</span>.<span class="ruby-identifier">name</span> = <span class="ruby-string">&quot;xgrad&quot;</span>
512
+ <span class="ruby-identifier">ys</span>.<span class="ruby-identifier">long_name</span> = <span class="ruby-node">&quot;ygrad(#{s.name})&quot;</span>
513
+ <span class="ruby-identifier">ys</span>.<span class="ruby-identifier">name</span> = <span class="ruby-string">&quot;ygrad&quot;</span>
514
+ [<span class="ruby-identifier">xs</span>,<span class="ruby-identifier">ys</span>]
515
+ <span class="ruby-keyword">end</span></pre>
516
+ </div><!-- grad_s-source -->
517
+
518
+ </div>
519
+
520
+
521
+
522
+
523
+ </div><!-- grad_s-method -->
524
+
525
+
526
+ <div id="grad_sx-method" class="method-detail ">
527
+ <a name="method-i-grad_sx"></a>
528
+
529
+
530
+ <div class="method-heading">
531
+ <span class="method-name">grad_sx</span><span
532
+ class="method-args">(s)</span>
533
+ <span class="method-click-advice">click to toggle source</span>
534
+ </div>
535
+
536
+
537
+ <div class="method-description">
538
+
539
+
540
+
541
+
542
+
543
+ <div class="method-source-code" id="grad_sx-source">
544
+ <pre>
545
+ <span class="ruby-comment"># File ../../lib/numru/ganalysis/planet.rb, line 124</span>
546
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">grad_sx</span>(<span class="ruby-identifier">s</span>)
547
+ <span class="ruby-identifier">lam</span>, <span class="ruby-identifier">phi</span>, <span class="ruby-identifier">lond</span>, <span class="ruby-identifier">latd</span> = <span class="ruby-identifier">get_lambda_phi</span>(<span class="ruby-identifier">s</span>)
548
+ <span class="ruby-identifier">cos_phi</span> = <span class="ruby-identifier">phi</span>.<span class="ruby-identifier">cos</span>
549
+ <span class="ruby-identifier">xs</span> = <span class="ruby-identifier">s</span>.<span class="ruby-identifier">cderiv</span>(<span class="ruby-identifier">lond</span>,<span class="ruby-identifier">@@lonbc</span>,<span class="ruby-identifier">lam</span>) <span class="ruby-operator">/</span> (<span class="ruby-identifier">@@R</span>*<span class="ruby-identifier">cos_phi</span>)
550
+ <span class="ruby-identifier">xs</span>.<span class="ruby-identifier">long_name</span> = <span class="ruby-node">&quot;xgrad(#{s.name})&quot;</span>
551
+ <span class="ruby-identifier">xs</span>.<span class="ruby-identifier">name</span> = <span class="ruby-string">&quot;xgrad&quot;</span>
552
+ <span class="ruby-identifier">xs</span>
553
+ <span class="ruby-keyword">end</span></pre>
554
+ </div><!-- grad_sx-source -->
555
+
556
+ </div>
557
+
558
+
559
+
560
+
561
+ </div><!-- grad_sx-method -->
562
+
563
+
564
+ <div id="grad_sy-method" class="method-detail ">
565
+ <a name="method-i-grad_sy"></a>
566
+
567
+
568
+ <div class="method-heading">
569
+ <span class="method-name">grad_sy</span><span
570
+ class="method-args">(s)</span>
571
+ <span class="method-click-advice">click to toggle source</span>
572
+ </div>
573
+
574
+
575
+ <div class="method-description">
576
+
577
+
578
+
579
+
580
+
581
+ <div class="method-source-code" id="grad_sy-source">
582
+ <pre>
583
+ <span class="ruby-comment"># File ../../lib/numru/ganalysis/planet.rb, line 133</span>
584
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">grad_sy</span>(<span class="ruby-identifier">s</span>)
585
+ <span class="ruby-identifier">lam</span>, <span class="ruby-identifier">phi</span>, <span class="ruby-identifier">lond</span>, <span class="ruby-identifier">latd</span> = <span class="ruby-identifier">get_lambda_phi</span>(<span class="ruby-identifier">s</span>)
586
+ <span class="ruby-identifier">cos_phi</span> = <span class="ruby-identifier">phi</span>.<span class="ruby-identifier">cos</span>
587
+ <span class="ruby-identifier">ys</span> = <span class="ruby-identifier">s</span>.<span class="ruby-identifier">cderiv</span>(<span class="ruby-identifier">latd</span>,<span class="ruby-identifier">latbc</span>(<span class="ruby-identifier">phi</span>),<span class="ruby-identifier">phi</span>) <span class="ruby-operator">/</span> <span class="ruby-identifier">@@R</span>
588
+ <span class="ruby-identifier">ys</span>.<span class="ruby-identifier">long_name</span> = <span class="ruby-node">&quot;ygrad(#{s.name})&quot;</span>
589
+ <span class="ruby-identifier">ys</span>.<span class="ruby-identifier">name</span> = <span class="ruby-string">&quot;ygrad&quot;</span>
590
+ <span class="ruby-identifier">ys</span>
591
+ <span class="ruby-keyword">end</span></pre>
592
+ </div><!-- grad_sy-source -->
593
+
594
+ </div>
595
+
596
+
597
+
598
+
599
+ </div><!-- grad_sy-method -->
600
+
601
+
602
+ <div id="grad_sy_cosphifact-method" class="method-detail ">
603
+ <a name="method-i-grad_sy_cosphifact"></a>
604
+
605
+
606
+ <div class="method-heading">
607
+ <span class="method-name">grad_sy_cosphifact</span><span
608
+ class="method-args">(s,cosphi_exponent)</span>
609
+ <span class="method-click-advice">click to toggle source</span>
610
+ </div>
611
+
612
+
613
+ <div class="method-description">
614
+
615
+
616
+
617
+
618
+
619
+ <div class="method-source-code" id="grad_sy_cosphifact-source">
620
+ <pre>
621
+ <span class="ruby-comment"># File ../../lib/numru/ganalysis/planet.rb, line 142</span>
622
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">grad_sy_cosphifact</span>(<span class="ruby-identifier">s</span>,<span class="ruby-identifier">cosphi_exponent</span>)
623
+ <span class="ruby-identifier">lam</span>, <span class="ruby-identifier">phi</span>, <span class="ruby-identifier">lond</span>, <span class="ruby-identifier">latd</span> = <span class="ruby-identifier">get_lambda_phi</span>(<span class="ruby-identifier">s</span>)
624
+ <span class="ruby-identifier">cos_phi</span> = <span class="ruby-identifier">phi</span>.<span class="ruby-identifier">cos</span>
625
+ <span class="ruby-identifier">cos_phi_factor</span> = <span class="ruby-identifier">cos_phi</span><span class="ruby-operator">**</span><span class="ruby-identifier">cosphi_exponent</span>
626
+ <span class="ruby-identifier">ys</span> = (<span class="ruby-identifier">s</span>*<span class="ruby-identifier">cos_phi_factor</span>).<span class="ruby-identifier">cderiv</span>(<span class="ruby-identifier">latd</span>,<span class="ruby-identifier">latbc</span>(<span class="ruby-identifier">phi</span>),<span class="ruby-identifier">phi</span>)<span class="ruby-operator">/</span><span class="ruby-identifier">cos_phi_factor</span> <span class="ruby-operator">/</span> <span class="ruby-identifier">@@R</span>
627
+ <span class="ruby-identifier">ys</span>.<span class="ruby-identifier">long_name</span> = <span class="ruby-node">&quot;ygrad(#{s.name})&quot;</span>
628
+ <span class="ruby-identifier">ys</span>.<span class="ruby-identifier">name</span> = <span class="ruby-string">&quot;ygrad&quot;</span>
629
+ <span class="ruby-identifier">ys</span>
630
+ <span class="ruby-keyword">end</span></pre>
631
+ </div><!-- grad_sy_cosphifact-source -->
632
+
633
+ </div>
634
+
635
+
636
+
637
+
638
+ </div><!-- grad_sy_cosphifact-method -->
639
+
640
+
641
+ <div id="init-method" class="method-detail ">
642
+ <a name="method-i-init"></a>
643
+
644
+
645
+ <div class="method-heading">
646
+ <span class="method-name">init</span><span
647
+ class="method-args">(planet)</span>
648
+ <span class="method-click-advice">click to toggle source</span>
649
+ </div>
650
+
651
+
652
+ <div class="method-description">
653
+
654
+
655
+
656
+
657
+
658
+ <div class="method-source-code" id="init-source">
659
+ <pre>
660
+ <span class="ruby-comment"># File ../../lib/numru/ganalysis/planet.rb, line 19</span>
661
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">init</span>(<span class="ruby-identifier">planet</span>)
662
+ <span class="ruby-keyword">case</span> <span class="ruby-identifier">planet</span>
663
+ <span class="ruby-keyword">when</span> <span class="ruby-constant">Earth</span>
664
+ <span class="ruby-identifier">@@R</span> = <span class="ruby-constant">UNumeric</span>[<span class="ruby-value">6.37e6</span>, <span class="ruby-string">&quot;m&quot;</span>]
665
+ <span class="ruby-identifier">@@Ome</span> = <span class="ruby-constant">UNumeric</span>[<span class="ruby-value">2</span>*<span class="ruby-constant">Math</span><span class="ruby-operator">::</span><span class="ruby-constant">PI</span><span class="ruby-operator">/</span><span class="ruby-value">8.64e4</span>,<span class="ruby-string">&quot;s-1&quot;</span>]
666
+ <span class="ruby-keyword">else</span>
667
+ <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unsupported predefined planet: #{planet}.&quot;</span>
668
+ <span class="ruby-keyword">end</span>
669
+ <span class="ruby-keyword">end</span></pre>
670
+ </div><!-- init-source -->
671
+
672
+ </div>
673
+
674
+
675
+
676
+
677
+ </div><!-- init-method -->
678
+
679
+
680
+ <div id="latbc-method" class="method-detail ">
681
+ <a name="method-i-latbc"></a>
682
+
683
+
684
+ <div class="method-heading">
685
+ <span class="method-name">latbc</span><span
686
+ class="method-args">(phi)</span>
687
+ <span class="method-click-advice">click to toggle source</span>
688
+ </div>
689
+
690
+
691
+ <div class="method-description">
692
+
693
+ <p>&lt; Differentian at the planets’s near surface. With suffix “_s” &gt;</p>
694
+
695
+
696
+
697
+ <div class="method-source-code" id="latbc-source">
698
+ <pre>
699
+ <span class="ruby-comment"># File ../../lib/numru/ganalysis/planet.rb, line 48</span>
700
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">latbc</span>(<span class="ruby-identifier">phi</span>)
701
+ <span class="ruby-comment"> # not so good
702
+ pi2 = Math::PI/2
703
+ eps = 0.1
704
+ xs = phi[0..1].val
705
+ xe = phi[-2..-1].val
706
+ if (pi2-xs[0].abs) / (xs[0]-xs[1]).abs &lt; eps and
707
+ (pi2-xe[-1].abs) / (xe[-1]-xe[-2]).abs &lt; eps
708
+ GPhys::Derivative::MIRROR_B
709
+ else
710
+ GPhys::Derivative::LINEAR_EXT
711
+ end
712
+ </span> <span class="ruby-constant">GPhys</span><span class="ruby-operator">::</span><span class="ruby-constant">Derivative</span><span class="ruby-operator">::</span><span class="ruby-constant">LINEAR_EXT</span>
713
+ <span class="ruby-keyword">end</span></pre>
714
+ </div><!-- latbc-source -->
715
+
716
+ </div>
717
+
718
+
719
+
720
+
721
+ </div><!-- latbc-method -->
722
+
723
+
724
+ <div id="omega-method" class="method-detail ">
725
+ <a name="method-i-omega"></a>
726
+
727
+
728
+ <div class="method-heading">
729
+ <span class="method-name">omega</span><span
730
+ class="method-args">()</span>
731
+ <span class="method-click-advice">click to toggle source</span>
732
+ </div>
733
+
734
+
735
+ <div class="method-description">
736
+
737
+
738
+
739
+
740
+
741
+ <div class="method-source-code" id="omega-source">
742
+ <pre>
743
+ <span class="ruby-comment"># File ../../lib/numru/ganalysis/planet.rb, line 36</span>
744
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">omega</span>; <span class="ruby-identifier">@@Ome</span>; <span class="ruby-keyword">end</span></pre>
745
+ </div><!-- omega-source -->
746
+
747
+ </div>
748
+
749
+
750
+
751
+
752
+ </div><!-- omega-method -->
753
+
754
+
755
+ <div id="omega-3D-method" class="method-detail ">
756
+ <a name="method-i-omega-3D"></a>
757
+
758
+
759
+ <div class="method-heading">
760
+ <span class="method-name">omega=</span><span
761
+ class="method-args">(o)</span>
762
+ <span class="method-click-advice">click to toggle source</span>
763
+ </div>
764
+
765
+
766
+ <div class="method-description">
767
+
768
+
769
+
770
+
771
+
772
+ <div class="method-source-code" id="omega-3D-source">
773
+ <pre>
774
+ <span class="ruby-comment"># File ../../lib/numru/ganalysis/planet.rb, line 34</span>
775
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">omega=</span>(<span class="ruby-identifier">o</span>); <span class="ruby-identifier">@@Ome</span> = <span class="ruby-identifier">o</span>; <span class="ruby-keyword">end</span></pre>
776
+ </div><!-- omega-3D-source -->
777
+
778
+ </div>
779
+
780
+
781
+
782
+
783
+ </div><!-- omega-3D-method -->
784
+
785
+
786
+ <div id="radius-method" class="method-detail ">
787
+ <a name="method-i-radius"></a>
788
+
789
+
790
+ <div class="method-heading">
791
+ <span class="method-name">radius</span><span
792
+ class="method-args">()</span>
793
+ <span class="method-click-advice">click to toggle source</span>
794
+ </div>
795
+
796
+
797
+ <div class="method-description">
798
+
799
+
800
+
801
+
802
+
803
+ <div class="method-source-code" id="radius-source">
804
+ <pre>
805
+ <span class="ruby-comment"># File ../../lib/numru/ganalysis/planet.rb, line 35</span>
806
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">radius</span>; <span class="ruby-identifier">@@R</span>; <span class="ruby-keyword">end</span></pre>
807
+ </div><!-- radius-source -->
808
+
809
+ </div>
810
+
811
+
812
+
813
+
814
+ </div><!-- radius-method -->
815
+
816
+
817
+ <div id="radius-3D-method" class="method-detail ">
818
+ <a name="method-i-radius-3D"></a>
819
+
820
+
821
+ <div class="method-heading">
822
+ <span class="method-name">radius=</span><span
823
+ class="method-args">(r)</span>
824
+ <span class="method-click-advice">click to toggle source</span>
825
+ </div>
826
+
827
+
828
+ <div class="method-description">
829
+
830
+ <p>&lt; Adjustable planetary settings &gt;</p>
831
+
832
+
833
+
834
+ <div class="method-source-code" id="radius-3D-source">
835
+ <pre>
836
+ <span class="ruby-comment"># File ../../lib/numru/ganalysis/planet.rb, line 33</span>
837
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">radius=</span>(<span class="ruby-identifier">r</span>); <span class="ruby-identifier">@@R</span> = <span class="ruby-identifier">r</span>; <span class="ruby-keyword">end</span></pre>
838
+ </div><!-- radius-3D-source -->
839
+
840
+ </div>
841
+
842
+
843
+
844
+
845
+ </div><!-- radius-3D-method -->
846
+
847
+
848
+ <div id="rot_s-method" class="method-detail ">
849
+ <a name="method-i-rot_s"></a>
850
+
851
+
852
+ <div class="method-heading">
853
+ <span class="method-name">rot_s</span><span
854
+ class="method-args">(u,v)</span>
855
+ <span class="method-click-advice">click to toggle source</span>
856
+ </div>
857
+
858
+
859
+ <div class="method-description">
860
+
861
+
862
+
863
+
864
+
865
+ <div class="method-source-code" id="rot_s-source">
866
+ <pre>
867
+ <span class="ruby-comment"># File ../../lib/numru/ganalysis/planet.rb, line 76</span>
868
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">rot_s</span>(<span class="ruby-identifier">u</span>,<span class="ruby-identifier">v</span>)
869
+ <span class="ruby-identifier">lam</span>, <span class="ruby-identifier">phi</span>, <span class="ruby-identifier">lond</span>, <span class="ruby-identifier">latd</span> = <span class="ruby-identifier">get_lambda_phi</span>(<span class="ruby-identifier">u</span>)
870
+ <span class="ruby-identifier">cos_phi</span> = <span class="ruby-identifier">phi</span>.<span class="ruby-identifier">cos</span>
871
+ <span class="ruby-identifier">dv_dlam</span> = <span class="ruby-identifier">v</span>.<span class="ruby-identifier">cderiv</span>(<span class="ruby-identifier">lond</span>,<span class="ruby-identifier">@@lonbc</span>,<span class="ruby-identifier">lam</span>)
872
+ <span class="ruby-identifier">duc_dphi</span> = (<span class="ruby-identifier">u</span>*<span class="ruby-identifier">cos_phi</span>).<span class="ruby-identifier">cderiv</span>(<span class="ruby-identifier">latd</span>,<span class="ruby-identifier">latbc</span>(<span class="ruby-identifier">phi</span>),<span class="ruby-identifier">phi</span>)
873
+ <span class="ruby-identifier">rot</span> = (<span class="ruby-identifier">dv_dlam</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">duc_dphi</span>) <span class="ruby-operator">/</span> (<span class="ruby-identifier">@@R</span>*<span class="ruby-identifier">cos_phi</span>)
874
+ <span class="ruby-identifier">rot</span>.<span class="ruby-identifier">long_name</span> = <span class="ruby-node">&quot;rot(#{u.name},#{v.name})&quot;</span>
875
+ <span class="ruby-identifier">rot</span>.<span class="ruby-identifier">name</span> = <span class="ruby-string">&quot;rot&quot;</span>
876
+ <span class="ruby-identifier">rot</span>
877
+ <span class="ruby-keyword">end</span></pre>
878
+ </div><!-- rot_s-source -->
879
+
880
+ </div>
881
+
882
+
883
+
884
+
885
+ </div><!-- rot_s-method -->
886
+
887
+
888
+ <div id="vor_s-method" class="method-detail ">
889
+ <a name="method-i-vor_s"></a>
890
+
891
+
892
+ <div class="method-heading">
893
+ <span class="method-name">vor_s</span><span
894
+ class="method-args">(u,v)</span>
895
+ <span class="method-click-advice">click to toggle source</span>
896
+ </div>
897
+
898
+
899
+ <div class="method-description">
900
+
901
+
902
+
903
+
904
+
905
+ <div class="method-source-code" id="vor_s-source">
906
+ <pre>
907
+ <span class="ruby-comment"># File ../../lib/numru/ganalysis/planet.rb, line 98</span>
908
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">vor_s</span>(<span class="ruby-identifier">u</span>,<span class="ruby-identifier">v</span>)
909
+ <span class="ruby-identifier">vor</span> = <span class="ruby-identifier">rot_s</span>(<span class="ruby-identifier">u</span>,<span class="ruby-identifier">v</span>)
910
+ <span class="ruby-identifier">vor</span>.<span class="ruby-identifier">long_name</span> = <span class="ruby-string">&quot;Relative Vorticity&quot;</span>
911
+ <span class="ruby-identifier">vor</span>.<span class="ruby-identifier">name</span> = <span class="ruby-string">&quot;vor&quot;</span>
912
+ <span class="ruby-identifier">vor</span>
913
+ <span class="ruby-keyword">end</span></pre>
914
+ </div><!-- vor_s-source -->
915
+
916
+ </div>
917
+
918
+
919
+
920
+
921
+ </div><!-- vor_s-method -->
922
+
923
+
924
+ <div id="weight_cosphi-method" class="method-detail ">
925
+ <a name="method-i-weight_cosphi"></a>
926
+
927
+
928
+ <div class="method-heading">
929
+ <span class="method-name">weight_cosphi</span><span
930
+ class="method-args">(s, cos_exp, r_exp)</span>
931
+ <span class="method-click-advice">click to toggle source</span>
932
+ </div>
933
+
934
+
935
+ <div class="method-description">
936
+
937
+
938
+
939
+
940
+
941
+ <div class="method-source-code" id="weight_cosphi-source">
942
+ <pre>
943
+ <span class="ruby-comment"># File ../../lib/numru/ganalysis/planet.rb, line 159</span>
944
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">weight_cosphi</span>(<span class="ruby-identifier">s</span>, <span class="ruby-identifier">cos_exp</span>, <span class="ruby-identifier">r_exp</span>)
945
+ <span class="ruby-identifier">lam</span>, <span class="ruby-identifier">phi</span>, <span class="ruby-identifier">lond</span>, <span class="ruby-identifier">latd</span> = <span class="ruby-identifier">get_lambda_phi</span>(<span class="ruby-identifier">s</span>)
946
+ <span class="ruby-identifier">cos_phi</span> = <span class="ruby-identifier">phi</span>.<span class="ruby-identifier">cos</span>
947
+ <span class="ruby-identifier">ys</span> = <span class="ruby-identifier">s</span> * (<span class="ruby-identifier">cos_phi</span><span class="ruby-operator">**</span><span class="ruby-identifier">cos_exp</span> * <span class="ruby-identifier">@@R</span><span class="ruby-operator">**</span><span class="ruby-identifier">r_exp</span>)
948
+ <span class="ruby-identifier">ys</span>
949
+ <span class="ruby-keyword">end</span></pre>
950
+ </div><!-- weight_cosphi-source -->
951
+
952
+ </div>
953
+
954
+
955
+
956
+
957
+ </div><!-- weight_cosphi-method -->
958
+
959
+
960
+ <div id="weight_sinphi-method" class="method-detail ">
961
+ <a name="method-i-weight_sinphi"></a>
962
+
963
+
964
+ <div class="method-heading">
965
+ <span class="method-name">weight_sinphi</span><span
966
+ class="method-args">(s, sin_exp, r_exp)</span>
967
+ <span class="method-click-advice">click to toggle source</span>
968
+ </div>
969
+
970
+
971
+ <div class="method-description">
972
+
973
+
974
+
975
+
976
+
977
+ <div class="method-source-code" id="weight_sinphi-source">
978
+ <pre>
979
+ <span class="ruby-comment"># File ../../lib/numru/ganalysis/planet.rb, line 166</span>
980
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">weight_sinphi</span>(<span class="ruby-identifier">s</span>, <span class="ruby-identifier">sin_exp</span>, <span class="ruby-identifier">r_exp</span>)
981
+ <span class="ruby-identifier">lam</span>, <span class="ruby-identifier">phi</span>, <span class="ruby-identifier">lond</span>, <span class="ruby-identifier">latd</span> = <span class="ruby-identifier">get_lambda_phi</span>(<span class="ruby-identifier">s</span>)
982
+ <span class="ruby-identifier">sin_phi</span> = <span class="ruby-identifier">phi</span>.<span class="ruby-identifier">sin</span>
983
+ <span class="ruby-identifier">ys</span> = <span class="ruby-identifier">s</span> * (<span class="ruby-identifier">sin_phi</span><span class="ruby-operator">**</span><span class="ruby-identifier">sin_exp</span> * <span class="ruby-identifier">@@R</span><span class="ruby-operator">**</span><span class="ruby-identifier">r_exp</span>)
984
+ <span class="ruby-identifier">ys</span>
985
+ <span class="ruby-keyword">end</span></pre>
986
+ </div><!-- weight_sinphi-source -->
987
+
988
+ </div>
989
+
990
+
991
+
992
+
993
+ </div><!-- weight_sinphi-method -->
994
+
995
+
996
+ <div id="weight_tanphi-method" class="method-detail ">
997
+ <a name="method-i-weight_tanphi"></a>
998
+
999
+
1000
+ <div class="method-heading">
1001
+ <span class="method-name">weight_tanphi</span><span
1002
+ class="method-args">(s, tan_exp, r_exp)</span>
1003
+ <span class="method-click-advice">click to toggle source</span>
1004
+ </div>
1005
+
1006
+
1007
+ <div class="method-description">
1008
+
1009
+
1010
+
1011
+
1012
+
1013
+ <div class="method-source-code" id="weight_tanphi-source">
1014
+ <pre>
1015
+ <span class="ruby-comment"># File ../../lib/numru/ganalysis/planet.rb, line 152</span>
1016
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">weight_tanphi</span>(<span class="ruby-identifier">s</span>, <span class="ruby-identifier">tan_exp</span>, <span class="ruby-identifier">r_exp</span>)
1017
+ <span class="ruby-identifier">lam</span>, <span class="ruby-identifier">phi</span>, <span class="ruby-identifier">lond</span>, <span class="ruby-identifier">latd</span> = <span class="ruby-identifier">get_lambda_phi</span>(<span class="ruby-identifier">s</span>)
1018
+ <span class="ruby-identifier">tan_phi</span> = <span class="ruby-identifier">phi</span>.<span class="ruby-identifier">tan</span>
1019
+ <span class="ruby-identifier">ys</span> = <span class="ruby-identifier">s</span> * (<span class="ruby-identifier">tan_phi</span><span class="ruby-operator">**</span><span class="ruby-identifier">tan_exp</span> * <span class="ruby-identifier">@@R</span><span class="ruby-operator">**</span><span class="ruby-identifier">r_exp</span>)
1020
+ <span class="ruby-identifier">ys</span>
1021
+ <span class="ruby-keyword">end</span></pre>
1022
+ </div><!-- weight_tanphi-source -->
1023
+
1024
+ </div>
1025
+
1026
+
1027
+
1028
+
1029
+ </div><!-- weight_tanphi-method -->
1030
+
1031
+
1032
+ </div><!-- public-instance-method-details -->
1033
+
1034
+ </div><!-- 5Buntitled-5D -->
1035
+
1036
+
1037
+ </div><!-- documentation -->
1038
+
1039
+ <div id="validator-badges">
1040
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
1041
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
1042
+ Rdoc Generator</a> 2</small>.</p>
1043
+ </div>
1044
+
1045
+ </body>
1046
+ </html>
1047
+