gphys 1.2.2.1 → 1.4.3

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 (405) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +8 -17
  3. data/.rspec +2 -0
  4. data/.travis.yml +3 -0
  5. data/ChangeLog +5762 -753
  6. data/LICENSE.txt +30 -18
  7. data/Rakefile +1 -0
  8. data/bin/console +14 -0
  9. data/bin/gpcat +43 -2
  10. data/bin/gpcut +16 -0
  11. data/bin/gpvect +167 -15
  12. data/bin/gpview +254 -51
  13. data/bin/setup +7 -0
  14. data/dim_op.c +1220 -0
  15. data/doc/attribute.html +19 -0
  16. data/doc/attributenetcdf.html +15 -0
  17. data/doc/axis.html +387 -0
  18. data/doc/coordmapping.html +111 -0
  19. data/doc/coordtransform.html +36 -0
  20. data/doc/dclext.html +821 -0
  21. data/doc/derivative/gphys-derivative.html +100 -0
  22. data/doc/derivative/index.html +21 -0
  23. data/doc/derivative/index.rd +14 -0
  24. data/doc/derivative/math-doc/document.pdf +0 -0
  25. data/doc/derivative/math-doc/document.tex +158 -0
  26. data/doc/derivative/math-doc/document/document.css +30 -0
  27. data/doc/derivative/math-doc/document/document.html +57 -0
  28. data/doc/derivative/math-doc/document/images.aux +1 -0
  29. data/doc/derivative/math-doc/document/images.log +385 -0
  30. data/doc/derivative/math-doc/document/images.pl +186 -0
  31. data/doc/derivative/math-doc/document/images.tex +364 -0
  32. data/doc/derivative/math-doc/document/img1.png +0 -0
  33. data/doc/derivative/math-doc/document/img10.png +0 -0
  34. data/doc/derivative/math-doc/document/img11.png +0 -0
  35. data/doc/derivative/math-doc/document/img12.png +0 -0
  36. data/doc/derivative/math-doc/document/img13.png +0 -0
  37. data/doc/derivative/math-doc/document/img14.png +0 -0
  38. data/doc/derivative/math-doc/document/img15.png +0 -0
  39. data/doc/derivative/math-doc/document/img16.png +0 -0
  40. data/doc/derivative/math-doc/document/img17.png +0 -0
  41. data/doc/derivative/math-doc/document/img18.png +0 -0
  42. data/doc/derivative/math-doc/document/img19.png +0 -0
  43. data/doc/derivative/math-doc/document/img2.png +0 -0
  44. data/doc/derivative/math-doc/document/img20.png +0 -0
  45. data/doc/derivative/math-doc/document/img21.png +0 -0
  46. data/doc/derivative/math-doc/document/img22.png +0 -0
  47. data/doc/derivative/math-doc/document/img23.png +0 -0
  48. data/doc/derivative/math-doc/document/img24.png +0 -0
  49. data/doc/derivative/math-doc/document/img25.png +0 -0
  50. data/doc/derivative/math-doc/document/img26.png +0 -0
  51. data/doc/derivative/math-doc/document/img27.png +0 -0
  52. data/doc/derivative/math-doc/document/img28.png +0 -0
  53. data/doc/derivative/math-doc/document/img29.png +0 -0
  54. data/doc/derivative/math-doc/document/img3.png +0 -0
  55. data/doc/derivative/math-doc/document/img30.png +0 -0
  56. data/doc/derivative/math-doc/document/img4.png +0 -0
  57. data/doc/derivative/math-doc/document/img5.png +0 -0
  58. data/doc/derivative/math-doc/document/img6.png +0 -0
  59. data/doc/derivative/math-doc/document/img7.png +0 -0
  60. data/doc/derivative/math-doc/document/img8.png +0 -0
  61. data/doc/derivative/math-doc/document/img9.png +0 -0
  62. data/doc/derivative/math-doc/document/index.html +57 -0
  63. data/doc/derivative/math-doc/document/labels.pl +13 -0
  64. data/doc/derivative/math-doc/document/next.png +0 -0
  65. data/doc/derivative/math-doc/document/next_g.png +0 -0
  66. data/doc/derivative/math-doc/document/node1.html +238 -0
  67. data/doc/derivative/math-doc/document/node2.html +75 -0
  68. data/doc/derivative/math-doc/document/prev.png +0 -0
  69. data/doc/derivative/math-doc/document/prev_g.png +0 -0
  70. data/doc/derivative/math-doc/document/up.png +0 -0
  71. data/doc/derivative/math-doc/document/up_g.png +0 -0
  72. data/doc/derivative/numru-derivative.html +158 -0
  73. data/doc/ep_flux/ep_flux.html +469 -0
  74. data/doc/ep_flux/ggraph_on_merdional_section.html +71 -0
  75. data/doc/ep_flux/index.html +31 -0
  76. data/doc/ep_flux/index.rd +24 -0
  77. data/doc/ep_flux/math-doc/document.pdf +0 -0
  78. data/doc/ep_flux/math-doc/document.tex +2018 -0
  79. data/doc/ep_flux/math-doc/document/WARNINGS +1 -0
  80. data/doc/ep_flux/math-doc/document/contents.png +0 -0
  81. data/doc/ep_flux/math-doc/document/crossref.png +0 -0
  82. data/doc/ep_flux/math-doc/document/document.css +30 -0
  83. data/doc/ep_flux/math-doc/document/document.html +101 -0
  84. data/doc/ep_flux/math-doc/document/images.aux +1 -0
  85. data/doc/ep_flux/math-doc/document/images.log +1375 -0
  86. data/doc/ep_flux/math-doc/document/images.pl +1328 -0
  87. data/doc/ep_flux/math-doc/document/images.tex +1471 -0
  88. data/doc/ep_flux/math-doc/document/img1.png +0 -0
  89. data/doc/ep_flux/math-doc/document/img10.png +0 -0
  90. data/doc/ep_flux/math-doc/document/img100.png +0 -0
  91. data/doc/ep_flux/math-doc/document/img101.png +0 -0
  92. data/doc/ep_flux/math-doc/document/img102.png +0 -0
  93. data/doc/ep_flux/math-doc/document/img103.png +0 -0
  94. data/doc/ep_flux/math-doc/document/img104.png +0 -0
  95. data/doc/ep_flux/math-doc/document/img105.png +0 -0
  96. data/doc/ep_flux/math-doc/document/img106.png +0 -0
  97. data/doc/ep_flux/math-doc/document/img107.png +0 -0
  98. data/doc/ep_flux/math-doc/document/img108.png +0 -0
  99. data/doc/ep_flux/math-doc/document/img109.png +0 -0
  100. data/doc/ep_flux/math-doc/document/img11.png +0 -0
  101. data/doc/ep_flux/math-doc/document/img110.png +0 -0
  102. data/doc/ep_flux/math-doc/document/img111.png +0 -0
  103. data/doc/ep_flux/math-doc/document/img112.png +0 -0
  104. data/doc/ep_flux/math-doc/document/img113.png +0 -0
  105. data/doc/ep_flux/math-doc/document/img114.png +0 -0
  106. data/doc/ep_flux/math-doc/document/img115.png +0 -0
  107. data/doc/ep_flux/math-doc/document/img116.png +0 -0
  108. data/doc/ep_flux/math-doc/document/img117.png +0 -0
  109. data/doc/ep_flux/math-doc/document/img118.png +0 -0
  110. data/doc/ep_flux/math-doc/document/img119.png +0 -0
  111. data/doc/ep_flux/math-doc/document/img12.png +0 -0
  112. data/doc/ep_flux/math-doc/document/img120.png +0 -0
  113. data/doc/ep_flux/math-doc/document/img121.png +0 -0
  114. data/doc/ep_flux/math-doc/document/img122.png +0 -0
  115. data/doc/ep_flux/math-doc/document/img123.png +0 -0
  116. data/doc/ep_flux/math-doc/document/img124.png +0 -0
  117. data/doc/ep_flux/math-doc/document/img125.png +0 -0
  118. data/doc/ep_flux/math-doc/document/img126.png +0 -0
  119. data/doc/ep_flux/math-doc/document/img127.png +0 -0
  120. data/doc/ep_flux/math-doc/document/img128.png +0 -0
  121. data/doc/ep_flux/math-doc/document/img129.png +0 -0
  122. data/doc/ep_flux/math-doc/document/img13.png +0 -0
  123. data/doc/ep_flux/math-doc/document/img130.png +0 -0
  124. data/doc/ep_flux/math-doc/document/img131.png +0 -0
  125. data/doc/ep_flux/math-doc/document/img132.png +0 -0
  126. data/doc/ep_flux/math-doc/document/img133.png +0 -0
  127. data/doc/ep_flux/math-doc/document/img134.png +0 -0
  128. data/doc/ep_flux/math-doc/document/img135.png +0 -0
  129. data/doc/ep_flux/math-doc/document/img136.png +0 -0
  130. data/doc/ep_flux/math-doc/document/img137.png +0 -0
  131. data/doc/ep_flux/math-doc/document/img138.png +0 -0
  132. data/doc/ep_flux/math-doc/document/img139.png +0 -0
  133. data/doc/ep_flux/math-doc/document/img14.png +0 -0
  134. data/doc/ep_flux/math-doc/document/img140.png +0 -0
  135. data/doc/ep_flux/math-doc/document/img141.png +0 -0
  136. data/doc/ep_flux/math-doc/document/img142.png +0 -0
  137. data/doc/ep_flux/math-doc/document/img143.png +0 -0
  138. data/doc/ep_flux/math-doc/document/img144.png +0 -0
  139. data/doc/ep_flux/math-doc/document/img145.png +0 -0
  140. data/doc/ep_flux/math-doc/document/img146.png +0 -0
  141. data/doc/ep_flux/math-doc/document/img147.png +0 -0
  142. data/doc/ep_flux/math-doc/document/img148.png +0 -0
  143. data/doc/ep_flux/math-doc/document/img149.png +0 -0
  144. data/doc/ep_flux/math-doc/document/img15.png +0 -0
  145. data/doc/ep_flux/math-doc/document/img150.png +0 -0
  146. data/doc/ep_flux/math-doc/document/img151.png +0 -0
  147. data/doc/ep_flux/math-doc/document/img152.png +0 -0
  148. data/doc/ep_flux/math-doc/document/img153.png +0 -0
  149. data/doc/ep_flux/math-doc/document/img154.png +0 -0
  150. data/doc/ep_flux/math-doc/document/img155.png +0 -0
  151. data/doc/ep_flux/math-doc/document/img156.png +0 -0
  152. data/doc/ep_flux/math-doc/document/img157.png +0 -0
  153. data/doc/ep_flux/math-doc/document/img158.png +0 -0
  154. data/doc/ep_flux/math-doc/document/img159.png +0 -0
  155. data/doc/ep_flux/math-doc/document/img16.png +0 -0
  156. data/doc/ep_flux/math-doc/document/img160.png +0 -0
  157. data/doc/ep_flux/math-doc/document/img161.png +0 -0
  158. data/doc/ep_flux/math-doc/document/img162.png +0 -0
  159. data/doc/ep_flux/math-doc/document/img163.png +0 -0
  160. data/doc/ep_flux/math-doc/document/img164.png +0 -0
  161. data/doc/ep_flux/math-doc/document/img165.png +0 -0
  162. data/doc/ep_flux/math-doc/document/img166.png +0 -0
  163. data/doc/ep_flux/math-doc/document/img167.png +0 -0
  164. data/doc/ep_flux/math-doc/document/img168.png +0 -0
  165. data/doc/ep_flux/math-doc/document/img169.png +0 -0
  166. data/doc/ep_flux/math-doc/document/img17.png +0 -0
  167. data/doc/ep_flux/math-doc/document/img170.png +0 -0
  168. data/doc/ep_flux/math-doc/document/img171.png +0 -0
  169. data/doc/ep_flux/math-doc/document/img172.png +0 -0
  170. data/doc/ep_flux/math-doc/document/img173.png +0 -0
  171. data/doc/ep_flux/math-doc/document/img174.png +0 -0
  172. data/doc/ep_flux/math-doc/document/img175.png +0 -0
  173. data/doc/ep_flux/math-doc/document/img176.png +0 -0
  174. data/doc/ep_flux/math-doc/document/img177.png +0 -0
  175. data/doc/ep_flux/math-doc/document/img178.png +0 -0
  176. data/doc/ep_flux/math-doc/document/img179.png +0 -0
  177. data/doc/ep_flux/math-doc/document/img18.png +0 -0
  178. data/doc/ep_flux/math-doc/document/img180.png +0 -0
  179. data/doc/ep_flux/math-doc/document/img181.png +0 -0
  180. data/doc/ep_flux/math-doc/document/img182.png +0 -0
  181. data/doc/ep_flux/math-doc/document/img183.png +0 -0
  182. data/doc/ep_flux/math-doc/document/img184.png +0 -0
  183. data/doc/ep_flux/math-doc/document/img185.png +0 -0
  184. data/doc/ep_flux/math-doc/document/img186.png +0 -0
  185. data/doc/ep_flux/math-doc/document/img187.png +0 -0
  186. data/doc/ep_flux/math-doc/document/img188.png +0 -0
  187. data/doc/ep_flux/math-doc/document/img189.png +0 -0
  188. data/doc/ep_flux/math-doc/document/img19.png +0 -0
  189. data/doc/ep_flux/math-doc/document/img190.png +0 -0
  190. data/doc/ep_flux/math-doc/document/img191.png +0 -0
  191. data/doc/ep_flux/math-doc/document/img192.png +0 -0
  192. data/doc/ep_flux/math-doc/document/img193.png +0 -0
  193. data/doc/ep_flux/math-doc/document/img194.png +0 -0
  194. data/doc/ep_flux/math-doc/document/img195.png +0 -0
  195. data/doc/ep_flux/math-doc/document/img196.png +0 -0
  196. data/doc/ep_flux/math-doc/document/img197.png +0 -0
  197. data/doc/ep_flux/math-doc/document/img198.png +0 -0
  198. data/doc/ep_flux/math-doc/document/img199.png +0 -0
  199. data/doc/ep_flux/math-doc/document/img2.png +0 -0
  200. data/doc/ep_flux/math-doc/document/img20.png +0 -0
  201. data/doc/ep_flux/math-doc/document/img200.png +0 -0
  202. data/doc/ep_flux/math-doc/document/img21.png +0 -0
  203. data/doc/ep_flux/math-doc/document/img22.png +0 -0
  204. data/doc/ep_flux/math-doc/document/img23.png +0 -0
  205. data/doc/ep_flux/math-doc/document/img24.png +0 -0
  206. data/doc/ep_flux/math-doc/document/img25.png +0 -0
  207. data/doc/ep_flux/math-doc/document/img26.png +0 -0
  208. data/doc/ep_flux/math-doc/document/img27.png +0 -0
  209. data/doc/ep_flux/math-doc/document/img28.png +0 -0
  210. data/doc/ep_flux/math-doc/document/img29.png +0 -0
  211. data/doc/ep_flux/math-doc/document/img3.png +0 -0
  212. data/doc/ep_flux/math-doc/document/img30.png +0 -0
  213. data/doc/ep_flux/math-doc/document/img31.png +0 -0
  214. data/doc/ep_flux/math-doc/document/img32.png +0 -0
  215. data/doc/ep_flux/math-doc/document/img33.png +0 -0
  216. data/doc/ep_flux/math-doc/document/img34.png +0 -0
  217. data/doc/ep_flux/math-doc/document/img35.png +0 -0
  218. data/doc/ep_flux/math-doc/document/img36.png +0 -0
  219. data/doc/ep_flux/math-doc/document/img37.png +0 -0
  220. data/doc/ep_flux/math-doc/document/img38.png +0 -0
  221. data/doc/ep_flux/math-doc/document/img39.png +0 -0
  222. data/doc/ep_flux/math-doc/document/img4.png +0 -0
  223. data/doc/ep_flux/math-doc/document/img40.png +0 -0
  224. data/doc/ep_flux/math-doc/document/img41.png +0 -0
  225. data/doc/ep_flux/math-doc/document/img42.png +0 -0
  226. data/doc/ep_flux/math-doc/document/img43.png +0 -0
  227. data/doc/ep_flux/math-doc/document/img44.png +0 -0
  228. data/doc/ep_flux/math-doc/document/img45.png +0 -0
  229. data/doc/ep_flux/math-doc/document/img46.png +0 -0
  230. data/doc/ep_flux/math-doc/document/img47.png +0 -0
  231. data/doc/ep_flux/math-doc/document/img48.png +0 -0
  232. data/doc/ep_flux/math-doc/document/img49.png +0 -0
  233. data/doc/ep_flux/math-doc/document/img5.png +0 -0
  234. data/doc/ep_flux/math-doc/document/img50.png +0 -0
  235. data/doc/ep_flux/math-doc/document/img51.png +0 -0
  236. data/doc/ep_flux/math-doc/document/img52.png +0 -0
  237. data/doc/ep_flux/math-doc/document/img53.png +0 -0
  238. data/doc/ep_flux/math-doc/document/img54.png +0 -0
  239. data/doc/ep_flux/math-doc/document/img55.png +0 -0
  240. data/doc/ep_flux/math-doc/document/img56.png +0 -0
  241. data/doc/ep_flux/math-doc/document/img57.png +0 -0
  242. data/doc/ep_flux/math-doc/document/img58.png +0 -0
  243. data/doc/ep_flux/math-doc/document/img59.png +0 -0
  244. data/doc/ep_flux/math-doc/document/img6.png +0 -0
  245. data/doc/ep_flux/math-doc/document/img60.png +0 -0
  246. data/doc/ep_flux/math-doc/document/img61.png +0 -0
  247. data/doc/ep_flux/math-doc/document/img62.png +0 -0
  248. data/doc/ep_flux/math-doc/document/img63.png +0 -0
  249. data/doc/ep_flux/math-doc/document/img64.png +0 -0
  250. data/doc/ep_flux/math-doc/document/img65.png +0 -0
  251. data/doc/ep_flux/math-doc/document/img66.png +0 -0
  252. data/doc/ep_flux/math-doc/document/img67.png +0 -0
  253. data/doc/ep_flux/math-doc/document/img68.png +0 -0
  254. data/doc/ep_flux/math-doc/document/img69.png +0 -0
  255. data/doc/ep_flux/math-doc/document/img7.png +0 -0
  256. data/doc/ep_flux/math-doc/document/img70.png +0 -0
  257. data/doc/ep_flux/math-doc/document/img71.png +0 -0
  258. data/doc/ep_flux/math-doc/document/img72.png +0 -0
  259. data/doc/ep_flux/math-doc/document/img73.png +0 -0
  260. data/doc/ep_flux/math-doc/document/img74.png +0 -0
  261. data/doc/ep_flux/math-doc/document/img75.png +0 -0
  262. data/doc/ep_flux/math-doc/document/img76.png +0 -0
  263. data/doc/ep_flux/math-doc/document/img77.png +0 -0
  264. data/doc/ep_flux/math-doc/document/img78.png +0 -0
  265. data/doc/ep_flux/math-doc/document/img79.png +0 -0
  266. data/doc/ep_flux/math-doc/document/img8.png +0 -0
  267. data/doc/ep_flux/math-doc/document/img80.png +0 -0
  268. data/doc/ep_flux/math-doc/document/img81.png +0 -0
  269. data/doc/ep_flux/math-doc/document/img82.png +0 -0
  270. data/doc/ep_flux/math-doc/document/img83.png +0 -0
  271. data/doc/ep_flux/math-doc/document/img84.png +0 -0
  272. data/doc/ep_flux/math-doc/document/img85.png +0 -0
  273. data/doc/ep_flux/math-doc/document/img86.png +0 -0
  274. data/doc/ep_flux/math-doc/document/img87.png +0 -0
  275. data/doc/ep_flux/math-doc/document/img88.png +0 -0
  276. data/doc/ep_flux/math-doc/document/img89.png +0 -0
  277. data/doc/ep_flux/math-doc/document/img9.png +0 -0
  278. data/doc/ep_flux/math-doc/document/img90.png +0 -0
  279. data/doc/ep_flux/math-doc/document/img91.png +0 -0
  280. data/doc/ep_flux/math-doc/document/img92.png +0 -0
  281. data/doc/ep_flux/math-doc/document/img93.png +0 -0
  282. data/doc/ep_flux/math-doc/document/img94.png +0 -0
  283. data/doc/ep_flux/math-doc/document/img95.png +0 -0
  284. data/doc/ep_flux/math-doc/document/img96.png +0 -0
  285. data/doc/ep_flux/math-doc/document/img97.png +0 -0
  286. data/doc/ep_flux/math-doc/document/img98.png +0 -0
  287. data/doc/ep_flux/math-doc/document/img99.png +0 -0
  288. data/doc/ep_flux/math-doc/document/index.html +101 -0
  289. data/doc/ep_flux/math-doc/document/internals.pl +258 -0
  290. data/doc/ep_flux/math-doc/document/labels.pl +265 -0
  291. data/doc/ep_flux/math-doc/document/next.png +0 -0
  292. data/doc/ep_flux/math-doc/document/next_g.png +0 -0
  293. data/doc/ep_flux/math-doc/document/node1.html +104 -0
  294. data/doc/ep_flux/math-doc/document/node10.html +164 -0
  295. data/doc/ep_flux/math-doc/document/node11.html +86 -0
  296. data/doc/ep_flux/math-doc/document/node12.html +166 -0
  297. data/doc/ep_flux/math-doc/document/node13.html +897 -0
  298. data/doc/ep_flux/math-doc/document/node14.html +1065 -0
  299. data/doc/ep_flux/math-doc/document/node15.html +72 -0
  300. data/doc/ep_flux/math-doc/document/node16.html +81 -0
  301. data/doc/ep_flux/math-doc/document/node2.html +82 -0
  302. data/doc/ep_flux/math-doc/document/node3.html +91 -0
  303. data/doc/ep_flux/math-doc/document/node4.html +149 -0
  304. data/doc/ep_flux/math-doc/document/node5.html +330 -0
  305. data/doc/ep_flux/math-doc/document/node6.html +99 -0
  306. data/doc/ep_flux/math-doc/document/node7.html +98 -0
  307. data/doc/ep_flux/math-doc/document/node8.html +83 -0
  308. data/doc/ep_flux/math-doc/document/node9.html +140 -0
  309. data/doc/ep_flux/math-doc/document/prev.png +0 -0
  310. data/doc/ep_flux/math-doc/document/prev_g.png +0 -0
  311. data/doc/ep_flux/math-doc/document/up.png +0 -0
  312. data/doc/ep_flux/math-doc/document/up_g.png +0 -0
  313. data/doc/gdir.html +412 -0
  314. data/doc/gdir_client.html +16 -0
  315. data/doc/gdir_connect_ftp-like.html +61 -0
  316. data/doc/gdir_server.html +45 -0
  317. data/doc/ggraph.html +1119 -0
  318. data/doc/gpcat.html +45 -0
  319. data/doc/gpcut.html +47 -0
  320. data/doc/gphys.html +624 -0
  321. data/doc/gphys_fft.html +324 -0
  322. data/doc/gphys_grads_io.html +69 -0
  323. data/doc/gphys_grib_io.html +82 -0
  324. data/doc/gphys_io.html +183 -0
  325. data/doc/gphys_io_common.html +18 -0
  326. data/doc/gphys_netcdf_io.html +283 -0
  327. data/doc/gplist.html +24 -0
  328. data/doc/gpmath.html +52 -0
  329. data/doc/gpmaxmin.html +32 -0
  330. data/doc/gpprint.html +35 -0
  331. data/doc/gpview.html +349 -0
  332. data/doc/grads2nc_with_gphys.html +21 -0
  333. data/doc/grads_gridded.html +307 -0
  334. data/doc/grib.html +149 -0
  335. data/doc/grid.html +224 -0
  336. data/doc/index.html +145 -0
  337. data/doc/index.rd +138 -0
  338. data/doc/netcdf_convention.html +136 -0
  339. data/doc/unumeric.html +176 -0
  340. data/doc/update +69 -0
  341. data/doc/update_rdoc +8 -0
  342. data/doc/varray.html +299 -0
  343. data/doc/varraycomposite.html +67 -0
  344. data/ext_init.c +1 -0
  345. data/extconf.rb +16 -6
  346. data/gphys.gemspec +33 -26
  347. data/interpo.c +1 -1
  348. data/lib/numru/dclext.rb +718 -546
  349. data/lib/numru/derivative.rb +2 -0
  350. data/lib/numru/ganalysis.rb +38 -0
  351. data/lib/numru/ganalysis/beta_plane.rb +103 -0
  352. data/lib/numru/ganalysis/eof.rb +3 -2
  353. data/lib/numru/ganalysis/fitting.rb +559 -0
  354. data/lib/numru/ganalysis/histogram.rb +36 -19
  355. data/lib/numru/ganalysis/log_p.rb +130 -0
  356. data/lib/numru/ganalysis/met.rb +396 -2
  357. data/lib/numru/ganalysis/met_z.rb +300 -0
  358. data/lib/numru/ganalysis/planet.rb +17 -7
  359. data/lib/numru/ganalysis/qg.rb +685 -0
  360. data/lib/numru/ganalysis/sigma_coord.rb +90 -0
  361. data/lib/numru/gdir.rb +2 -1
  362. data/lib/numru/ggraph.rb +204 -60
  363. data/lib/numru/ggraph_on_merdional_section.rb +1 -1
  364. data/lib/numru/gphys.rb +6 -0
  365. data/lib/numru/gphys/assoccoords.rb +18 -3
  366. data/lib/numru/gphys/axis.rb +209 -8
  367. data/lib/numru/gphys/derivative.rb +11 -0
  368. data/lib/numru/gphys/gphys.rb +539 -48
  369. data/lib/numru/gphys/gphys_dim_op.rb +331 -0
  370. data/lib/numru/gphys/gphys_fft.rb +48 -2
  371. data/lib/numru/gphys/gphys_io.rb +241 -13
  372. data/lib/numru/gphys/gphys_netcdf_io.rb +77 -39
  373. data/lib/numru/gphys/gphys_nusdas_io.rb +3 -0
  374. data/lib/numru/gphys/grib.rb +133 -54
  375. data/lib/numru/gphys/grib_params.rb +26 -3
  376. data/lib/numru/gphys/grid.rb +75 -34
  377. data/lib/numru/gphys/interpolate.rb +24 -10
  378. data/lib/numru/gphys/mdstorage.rb +160 -0
  379. data/lib/numru/gphys/netcdf_convention.rb +4 -2
  380. data/lib/numru/gphys/subsetmapping.rb +0 -1
  381. data/lib/numru/gphys/unumeric.rb +50 -5
  382. data/lib/numru/gphys/varray.rb +15 -30
  383. data/lib/numru/gphys/varraycomposite.rb +107 -24
  384. data/lib/numru/gphys/varraynetcdf.rb +9 -3
  385. data/lib/numru/gphys/version.rb +5 -0
  386. data/sample/druby_cli1.rb +2 -0
  387. data/sample/druby_cli2.rb +0 -6
  388. data/sample/druby_serv2.rb +0 -13
  389. data/spec/gphys_spec.rb +11 -0
  390. data/spec/spec_helper.rb +2 -0
  391. data/test/test_assoccoords.rb +102 -0
  392. data/test/test_axis.rb +61 -0
  393. data/test/test_fitting.rb +116 -0
  394. data/test/test_gphys.rb +20 -0
  395. data/test/test_met_z.rb +96 -0
  396. data/test/test_sigma_coord.rb +50 -0
  397. data/{test → test_old}/eof_slp.rb +0 -0
  398. data/{test → test_old}/mltbit.dat +0 -0
  399. data/{test → test_old}/test_ep_flux.rb +0 -0
  400. data/{test → test_old}/test_multibitIO.rb +0 -0
  401. metadata +530 -191
  402. data/README.md +0 -29
  403. data/lib/gphys.rb +0 -2
  404. data/lib/numru/dclext_datetime_ax.rb +0 -220
  405. data/lib/version.rb +0 -3
@@ -0,0 +1,158 @@
1
+ <?xml version="1.0" ?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+ <html xmlns="http://www.w3.org/1999/xhtml">
6
+ <head>
7
+ <title>../../lib/numru/derivative.rb</title>
8
+ </head>
9
+ <body>
10
+ <h1><a name="label-0" id="label-0">module NumRu::Derivative in derivative.rb</a></h1><!-- RDLabel: "module NumRu::Derivative in derivative.rb" -->
11
+ <h2><a name="label-1" id="label-1">todo</a></h2><!-- RDLabel: "todo" -->
12
+ <ul>
13
+ <li>decide argument of b_expand_linear_ext is Symbol or Numeric.
14
+ <ul>
15
+ <li>now is Numeric.</li>
16
+ <li>it denpends the treatment of dRuby.</li>
17
+ </ul></li>
18
+ <li>support other boundary conditions.</li>
19
+ </ul>
20
+ <h2><a name="label-2" id="label-2">Index</a></h2><!-- RDLabel: "Index" -->
21
+ <ul>
22
+ <li><a href="#label-3">module NumRu::Derivative</a>
23
+ <ul>
24
+ <li><a href="#label-4">threepoint_O2nd_deriv</a>
25
+ <ul>
26
+ <li>First derivative (2nd Order difference use three point.)</li>
27
+ </ul></li>
28
+ <li><a href="#label-5">cderiv</a>
29
+ <ul>
30
+ <li>First derivative (center difference use two point.)</li>
31
+ </ul></li>
32
+ <li><!-- Reference, RDLabel "deriv2d" doesn't exist --><em class="label-not-found">deriv2d</em><!-- Reference end -->
33
+ <ul>
34
+ <li>2nd derivative</li>
35
+ </ul></li>
36
+ <li><a href="#label-7">b_expand_linear_ext</a>
37
+ <ul>
38
+ <li>return array extended boundaries with linear extention.</li>
39
+ </ul></li>
40
+ <li><a href="#label-8">cdiff</a>
41
+ <ul>
42
+ <li>return difference. (center difference)</li>
43
+ </ul></li>
44
+ </ul></li>
45
+ </ul>
46
+ <h1><a name="label-3" id="label-3">module NumRu::Derivative</a></h1><!-- RDLabel: "module NumRu::Derivative" -->
47
+ <p>Module functions of Derivative Operater for NArray.</p>
48
+ <dl>
49
+ <dt><h4><a name="label-4" id="label-4"><code>threepoint_O2nd_deriv(<var>z</var>, <var>x</var>, <var>dim</var>, <var>bc</var>=<var>LINEAR_EXT</var>)</code></a></h4></dt><!-- RDLabel: "threepoint_O2nd_deriv" -->
50
+ <dd>
51
+ <p>Derivate of <code>z</code> with respect to <code>dim</code> th dim using a 2nd
52
+ order 3-point differentiation valid for non-uniform grid: </p>
53
+ <pre>(s**2*z_{i+1} + (t**2 - s**2)*f_{i} - t**2*f_{i-1}) / (s*t*(s + t))</pre>
54
+ <p>Here, s represents (x_{i} - x_{i-1}) ,t represents (x_{i+1} - x_{i})
55
+ and _{i} represents the suffix of {i} th element in the <!-- Reference, RDLabel "dim" doesn't exist --><em class="label-not-found">dim</em><!-- Reference end --> th
56
+ dimension of the array. ).</p>
57
+ <p>ARGUMENTS</p>
58
+ <ul>
59
+ <li>z (NArray): a NArray which you want to derivative.</li>
60
+ <li>x (NArray): a NArray represents the dimension which derivative respect to.
61
+ z.rank must be 1.</li>
62
+ <li>dim (Numeric): a Numeric represents the dimention which derivative respect to.
63
+ you can give number count backward (<!-- Reference, RDLabel "dim" doesn't exist --><em class="label-not-found">dim</em><!-- Reference end -->&lt;0), but <!-- Reference, RDLabel "z.rank ��dim" doesn't exist --><em class="label-not-found">z.rank ��dim</em><!-- Reference end --> must be &gt; 0. </li>
64
+ <li>bc (Numeric) : a Numeric to represent boundary condition.
65
+ Supported conditions are expressed in terms of boundary extension
66
+ applied before differentiation:
67
+ <ul>
68
+ <li>LINEAR_EXT(=1): default value. linear extension using two
69
+ grid points at the boundaries.</li>
70
+ <li>CYCLIC_EXT(=2): cyclic extension as k,0,1,..,k,0 for indices 0,1,..,k</li>
71
+ <li>MIRROR_A(=3): for indices 0,1,..,k, extends as 0,0,1,..,k,k
72
+ (good for cell interior values with the Neumann condition)</li>
73
+ <li>MIRROR_B(=4): for indices 0,1,..,k, extends as 1,0,1,..,k,k-1
74
+ (good for cell boundary values with the Neumann condition)</li>
75
+ </ul></li>
76
+ </ul>
77
+ <p>RETURN VALUE</p>
78
+ <ul>
79
+ <li>O2nd_deriv_data (NArray): (s**2*z_{i+1} + (t**2 - s**2)*f_{i} - t**2*f_{i-1}) / (s*t*(s + t))</li>
80
+ </ul></dd>
81
+ <dt><h4><a name="label-5" id="label-5"><code>cderiv(<var>z</var>, <var>x</var>, <var>dim</var>, <var>bc</var>=<var>LINEAR_EXT</var>)</code></a></h4></dt><!-- RDLabel: "cderiv" -->
82
+ <dd>
83
+ <p>Derivate of <code>z</code> with respect to <code>dim</code> th dim using centeral
84
+ differenciation: (z_{i+1} - z_{i-1}) / (x_{i+1} - x_{i-1})</p>
85
+ <p>ARGUMENTS</p>
86
+ <ul>
87
+ <li>z (NArray): a NArray which you want to derivative.</li>
88
+ <li>x (NArray): a NArray represents the dimension which derivative respect
89
+ to. z.rank must be 1.</li>
90
+ <li>dim (Numeric): a Numeric represents the dimention which derivative
91
+ respect to. you can give number count backward (<!-- Reference, RDLabel "dim" doesn't exist --><em class="label-not-found">dim</em><!-- Reference end -->&lt;0), but
92
+ <!-- Reference, RDLabel "z.rank ��dim" doesn't exist --><em class="label-not-found">z.rank ��dim</em><!-- Reference end --> must be &gt; 0. </li>
93
+ <li>bc (Numeric) : a Numeric to represent boundary condition.
94
+ See <a href="#label-4">threepoint_O2nd_deriv</a> for supported conditions.</li>
95
+ </ul>
96
+ <p>RETURN VALUE</p>
97
+ <ul>
98
+ <li>cderiv_data (NArray): (z_{i+1} - z_{i-1}) / (x_{i+1} - x_{i-1})</li>
99
+ </ul></dd>
100
+ <dt><h4><a name="label-6" id="label-6"><code>deriv2nd(<var>z</var>, <var>x</var>, <var>dim</var>, <var>bc</var>=<var>LINEAR_EXT</var>)</code></a></h4></dt><!-- RDLabel: "deriv2nd" -->
101
+ <dd>
102
+ <p>2nd Derivate of <code>z</code> with respect to <code>dim</code>-th dim
103
+ covering non-uniform grids. Based on:</p>
104
+ <pre>( (z_{i+1}-z_{i})/(x_{i+1}-x_{i}) - (z_{i}-z_{i-1})/(x_{i}-x_{i-1}) )
105
+ / ((x_{i+1}-x_{i-1})/2)</pre>
106
+ <p>ARGUMENTS</p>
107
+ <ul>
108
+ <li>z (NArray): a NArray which you want to derivative.</li>
109
+ <li>x (NArray): a NArray represents the dimension which derivative respect
110
+ to. z.rank must be 1.</li>
111
+ <li>dim (Numeric): a Numeric represents the dimention which derivative
112
+ respect to. you can give number count backward (<!-- Reference, RDLabel "dim" doesn't exist --><em class="label-not-found">dim</em><!-- Reference end -->&lt;0), but
113
+ <!-- Reference, RDLabel "z.rank ��dim" doesn't exist --><em class="label-not-found">z.rank ��dim</em><!-- Reference end --> must be &gt; 0. </li>
114
+ <li>bc (Numeric) : a Numeric to represent boundary condition.
115
+ See <a href="#label-4">threepoint_O2nd_deriv</a> for supported conditions.</li>
116
+ </ul>
117
+ <p>RETURN VALUE</p>
118
+ <ul>
119
+ <li>cderiv_data (NArray): (z_{i+1} - z_{i-1}) / (x_{i+1} - x_{i-1})</li>
120
+ </ul></dd>
121
+ <dt><h4><a name="label-7" id="label-7"><code>b_expand_linear_ext(<var>z</var>, <var>dim</var>)</code></a></h4></dt><!-- RDLabel: "b_expand_linear_ext" -->
122
+ <dd>
123
+ <p>expand boundary with linear value. extend array with 1 grid at each
124
+ boundary with <!-- Reference, RDLabel "dim" doesn't exist --><em class="label-not-found">dim</em><!-- Reference end --> th dimension, and assign th value which diffrential
125
+ value between a grid short of boundary and boundary grid in original array.
126
+ (on other wards, 2*z_{0}-z_{1} or 2*z_{n-1}-z_{n-2}: now _{i} represents the </p>
127
+ <pre>suffix of {i} th element in the ((&lt;dim&gt;)) th dimension of array. ).</pre>
128
+ <p>ARGUMENTS</p>
129
+ <ul>
130
+ <li>z (NArray): a NArray which you want to expand boundary.</li>
131
+ <li>dim (Numeric): a Numeric represents the dimention which derivative
132
+ respect to. you can give number count backward (<!-- Reference, RDLabel "dim" doesn't exist --><em class="label-not-found">dim</em><!-- Reference end -->&lt;0), but
133
+ <!-- Reference, RDLabel "z.rank ��dim" doesn't exist --><em class="label-not-found">z.rank ��dim</em><!-- Reference end --> must be &gt; 0. </li>
134
+ </ul>
135
+ <p>RETURN VALUE</p>
136
+ <ul>
137
+ <li>expand_data (NArray): </li>
138
+ </ul></dd>
139
+ <dt><h4><a name="label-8" id="label-8"><code>cdiff(<var>x</var>, <var>dim</var>)</code></a></h4></dt><!-- RDLabel: "cdiff" -->
140
+ <dd>
141
+ <p>Diffrence operater. return an NArray which a difference <!-- Reference, RDLabel "x" doesn't exist --><em class="label-not-found">x</em><!-- Reference end -->
142
+ ( in other wards, (x_{i+1} - x_{i-1}): now _{i} represents the suffix of
143
+ {i} th element in the <!-- Reference, RDLabel "dim" doesn't exist --><em class="label-not-found">dim</em><!-- Reference end --> th dimension of array. ).</p>
144
+ <p>ARGUMENTS</p>
145
+ <ul>
146
+ <li>x (NArray): a NArray which you want to get difference.</li>
147
+ <li>dim (Numeric): a Numeric representing the dimention which derivative
148
+ respect to. you can give number count backward (<!-- Reference, RDLabel "dim" doesn't exist --><em class="label-not-found">dim</em><!-- Reference end -->&lt;0), but
149
+ <!-- Reference, RDLabel "z.rank ��dim" doesn't exist --><em class="label-not-found">z.rank ��dim</em><!-- Reference end --> must be &gt; 0. </li>
150
+ </ul>
151
+ <p>RETURN VALUE</p>
152
+ <ul>
153
+ <li>cdiff_data (NArray): (x_{i+1} - x_{i-1})</li>
154
+ </ul></dd>
155
+ </dl>
156
+
157
+ </body>
158
+ </html>
@@ -0,0 +1,469 @@
1
+ <?xml version="1.0" ?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+ <html xmlns="http://www.w3.org/1999/xhtml">
6
+ <head>
7
+ <title>../../lib/numru/gphys/ep_flux.rb</title>
8
+ </head>
9
+ <body>
10
+ <h1><a name="label:0" id="label:0">module NumRu::GPhys::EP_Flux in ep_flux.</a></h1><!-- RDLabel: "module NumRu::GPhys::EP_Flux in ep_flux." -->
11
+ <h2><a name="label:1" id="label:1">Testprogram</a></h2><!-- RDLabel: "Testprogram" -->
12
+ <p>Test script path is 'test/test_ep_flux.rb' in expand dir of gphys.tar.gz.</p>
13
+ <h2><a name="label:2" id="label:2">Index</a></h2><!-- RDLabel: "Index" -->
14
+ <ul>
15
+ <li><a href="#label:3">module NumRu::GPhys::EP_Flux</a>
16
+ <ul>
17
+ <li><a href="#label:4">Functions:</a>
18
+ <ul>
19
+ <li><a href="#label:5">ep_full_sphere</a>
20
+ <ul>
21
+ <li>calculate EP Flux with full set equations on spherical coordinate.</li>
22
+ </ul></li>
23
+ <li><a href="#label:6">div_sphere</a>
24
+ <ul>
25
+ <li>calculate divergence on spherical coordinate, Not only for EP Flux!</li>
26
+ </ul></li>
27
+ <li><a href="#label:34">strm_rmean</a>
28
+ <ul>
29
+ <li>calculate residual mass stream function in spherical coordinate
30
+ (it might be good precision, but enough test has not done yet.)</li>
31
+ </ul></li>
32
+ <li><a href="#label:9">scale_height</a>
33
+ <ul>
34
+ <li>get the scale height.</li>
35
+ </ul></li>
36
+ <li><a href="#label:10">scale_height=</a>
37
+ <ul>
38
+ <li>set the scale height.</li>
39
+ </ul></li>
40
+ <li><a href="#label:11">radius</a>
41
+ <ul>
42
+ <li>get the radus of planet.</li>
43
+ </ul></li>
44
+ <li><a href="#label:12">radius=</a>
45
+ <ul>
46
+ <li>set the radus of planet.</li>
47
+ </ul></li>
48
+ <li><a href="#label:13">rot_period</a>
49
+ <ul>
50
+ <li>get the rotation period of planet.</li>
51
+ </ul></li>
52
+ <li><a href="#label:14">rot_period=</a>
53
+ <ul>
54
+ <li>set the rotation period of planet.</li>
55
+ </ul></li>
56
+ <li><a href="#label:15">g_forces</a>
57
+ <ul>
58
+ <li>get the gravitational acceleration in surface.</li>
59
+ </ul></li>
60
+ <li><a href="#label:16">g_forces=</a>
61
+ <ul>
62
+ <li>set the gravitational acceleration in surface.</li>
63
+ </ul></li>
64
+ <li><a href="#label:17">p00</a>
65
+ <ul>
66
+ <li>get the reference surface pressure.</li>
67
+ </ul></li>
68
+ <li><a href="#label:18">p00=</a>
69
+ <ul>
70
+ <li>set the reference surface pressure.</li>
71
+ </ul></li>
72
+ <li><a href="#label:19">cp</a>
73
+ <ul>
74
+ <li>get the the specific heat at constant pressure of the atmosphere.</li>
75
+ </ul></li>
76
+ <li><a href="#label:20">cp=</a>
77
+ <ul>
78
+ <li>set the the specific heat at constant pressure of the atmosphere.</li>
79
+ </ul></li>
80
+ <li><a href="#label:21">gas_const</a>
81
+ <ul>
82
+ <li>get the specific heat at constant pressure of the atmosphere.</li>
83
+ </ul></li>
84
+ <li><a href="#label:22">gas_const=</a>
85
+ <ul>
86
+ <li>set the specific heat at constant pressure of the atmosphere.</li>
87
+ </ul></li>
88
+ <li><a href="#label:23">get_constants</a>
89
+ <ul>
90
+ <li>get the module variables</li>
91
+ </ul></li>
92
+ <li><a href="#label:24">set_constants</a>
93
+ <ul>
94
+ <li>set the module variables</li>
95
+ </ul></li>
96
+ <li><a href="#label:25">make_gphys</a>
97
+ <ul>
98
+ <li>convert <!-- Reference, RDLabel "Axis" doesn't exist --><em class="label-not-found">Axis</em><!-- Reference end --> to <!-- Reference, RDLabel "GPhys" doesn't exist --><em class="label-not-found">GPhys</em><!-- Reference end -->.</li>
99
+ </ul></li>
100
+ <li><a href="#label:26">to_w_if_omega</a>
101
+ <ul>
102
+ <li>convert to velocity if <!-- Reference, RDLabel "gp" doesn't exist --><em class="label-not-found">gp</em><!-- Reference end --> is pressure velocity.</li>
103
+ </ul></li>
104
+ <li><a href="#label:27">to_z_if_pressure</a>
105
+ <ul>
106
+ <li>convert to altitude if <!-- Reference, RDLabel "gp" doesn't exist --><em class="label-not-found">gp</em><!-- Reference end --> is pressure.</li>
107
+ </ul></li>
108
+ <li><a href="#label:28">to_p_if_altitude</a>
109
+ <ul>
110
+ <li>convert to pressure if <!-- Reference, RDLabel "gp" doesn't exist --><em class="label-not-found">gp</em><!-- Reference end --> is altitude.</li>
111
+ </ul></li>
112
+ <li><a href="#label:29">to_theta_if_temperature</a>
113
+ <ul>
114
+ <li>convert to potential temperature of temperature if <!-- Reference, RDLabel "flag" doesn't exist --><em class="label-not-found">flag</em><!-- Reference end --> is true.</li>
115
+ </ul></li>
116
+ <li><a href="#label:30">to_rad_if_deg</a>
117
+ <ul>
118
+ <li>convert to radian if <!-- Reference, RDLabel "gp" doesn't exist --><em class="label-not-found">gp</em><!-- Reference end --> is degrees.</li>
119
+ </ul></li>
120
+ <li><a href="#label:31">eddy_products</a>
121
+ <ul>
122
+ <li>calculate eddy flux respect to <!-- Reference, RDLabel "dimname" doesn't exist --><em class="label-not-found">dimname</em><!-- Reference end -->.</li>
123
+ </ul></li>
124
+ <li><a href="#label:32">remove_0_at_poles</a>
125
+ <ul>
126
+ <li>set value if the cos(phi) is 0 at poles (phi is latitude).</li>
127
+ </ul></li>
128
+ <li><a href="#label:33">preparate_for_vector_on_merdional_section</a>
129
+ <ul>
130
+ <li>preparate for <!-- Reference, RDLabel "GGraph::vector_on_merdional_section" doesn't exist --><em class="label-not-found">GGraph::vector_on_merdional_section</em><!-- Reference end -->
131
+ in vector_on_merdional_section.rb</li>
132
+ </ul></li>
133
+ </ul></li>
134
+ <li><a href="#label:35">Constants:</a>
135
+ <ul>
136
+ <li><a href="#label:36">Deriv_methods</a>
137
+ <ul>
138
+ <li>derivative method names.</li>
139
+ </ul></li>
140
+ </ul></li>
141
+ </ul></li>
142
+ </ul>
143
+ <h1><a name="label:3" id="label:3">module NumRu::GPhys::EP_Flux</a></h1><!-- RDLabel: "module NumRu::GPhys::EP_Flux" -->
144
+ <p>Module functions of EP_Flux Operater for GPhys.</p>
145
+ <h2><a name="label:4" id="label:4">Functions:</a></h2><!-- RDLabel: "Functions:" -->
146
+ <dl>
147
+ <dt><a name="label:5" id="label:5"><code>ep_full_sphere(<var>gp_u</var>, <var>gp_v</var>, <var>gp_w_or_omega</var>, <var>gp_temp_or_theta</var>, <var>flag_temp_or_theta</var>, <var>xyzdims</var>=[<var>0</var>,<var>1</var>,<var>2</var>])</code></a></dt><!-- RDLabel: "ep_full_sphere" -->
148
+ <dd>
149
+ <p>Calculate Eliassen-Palm Flux(EP-Flux) from full set equations on the
150
+ spherical coordinate. this method calculates EP-Flux from 4 GPhys objects,
151
+ zonal-wind velocity(U), merdional-wind velocity(V), vertical-wind velocity(W)
152
+ or pressure velocity(Omega), and temperature(T) or potential(Theta)
153
+ temperature. check the equations on documents. </p>
154
+ <p>Furthermore, Residual mean merdional circulation (0, v*, w*) can be calculated.</p>
155
+ <p>ARGUMENTS</p>
156
+ <ul>
157
+ <li>gp_u (GPhys): a GPhys which data is U.</li>
158
+ <li>gp_v (GPhys): a GPhys which data is V.</li>
159
+ <li>gp_w_or_omega (GPhys): a GPhys which data is W or Omega. if you give
160
+ gp_omega, convert to W in this method and calculate EP-Flux.</li>
161
+ <li>gp_temp_or_theta (GPhys): a GPhys which data is T or Theta.</li>
162
+ <li><p>xyzdims (Array): an Array which represents location of upper gphyses's </p>
163
+ <pre>coordinate. if coordinate configuration is
164
+ (longitude, latitude, z), then xyzdims = [0, 1, 2].
165
+ else if coordinate configuration is
166
+ (z, latitude, longitude), then xyzdims = [2, 1, 0].</pre></li>
167
+ </ul>
168
+ <p>RETURN VALUE</p>
169
+ <ul>
170
+ <li>epflx_y (GPhys): EP-Flux y-component. it is on the merdional hoge.</li>
171
+ <li>epflx_z (GPhys): EP-Flux z-component.</li>
172
+ <li>v_rmean (GPhys): residual zonal mean V.</li>
173
+ <li>w_rmean (GPhys): residual zonal mean W.</li>
174
+ <li>gp_lat (GPhys): latitude (its units is radian)</li>
175
+ <li>gp_z (GPhys): from vertical axis (z)</li>
176
+ <li>u_mean (GPhys): zonal-mean U.</li>
177
+ <li>theta_mean (GPhys): zonal-mean Theta.</li>
178
+ <li>uv_dash (GPhys): zonal mean of zonal-eddy products U and V.</li>
179
+ <li>vt_dash (GPhys): zonal mean of zonal-eddy products V and Theta.</li>
180
+ <li>uw_dash (GPhys): zonal mean of zonal-eddy products U and W.</li>
181
+ <li>dtheta_dz (GPhys): zonal mean Theta derivate with z.</li>
182
+ </ul></dd>
183
+ <dt><a name="label:6" id="label:6"><code>div_sphere(<var>gp_y</var>, <var>gp_z</var>)</code></a></dt><!-- RDLabel: "div_sphere" -->
184
+ <dd>
185
+ <p>Calculate divergence on the spherical coordinate. it is exclusive to in
186
+ merdional cross section.</p>
187
+ <p>ARGUMENTS</p>
188
+ <ul>
189
+ <li><p>gp_y (GPhys): a GPhys which is merdional component you want to calculate</p>
190
+ <pre>divergence.</pre></li>
191
+ <li><p>gp_z (GPhys): a GPhys which is vertical component you want to calculate </p>
192
+ <pre>divergence.</pre></li>
193
+ </ul>
194
+ <p>RETURN VALUE</p>
195
+ <ul>
196
+ <li>gp_div (GPhys): a GPhys which is divergence on the spherical coordinate.</li>
197
+ </ul></dd>
198
+ <dt><a name="label:7" id="label:7"><code>set_deriv_method( <var>method_name</var> )</code></a></dt><!-- RDLabel: "set_deriv_method" -->
199
+ <dd>
200
+ <p>Set derivative method. methods are defined in <!-- Reference, RDLabel "GPhys::derivative" doesn't exist --><em class="label-not-found">GPhys::derivative</em><!-- Reference end -->.
201
+ Now <!-- Reference, RDLabel "cderiv" doesn't exist --><em class="label-not-found">cderiv</em><!-- Reference end --> and <!-- Reference, RDLabel "threepoint_O2nd_deriv" doesn't exist --><em class="label-not-found">threepoint_O2nd_deriv</em><!-- Reference end --> supported</p>
202
+ <p>ARGUMENTS</p>
203
+ <ul>
204
+ <li>method_name (String): derivative method name.</li>
205
+ </ul>
206
+ <p>RETURN VALUE</p>
207
+ <ul>
208
+ <li>nil</li>
209
+ </ul></dd>
210
+ <dt><a name="label:8" id="label:8"><code>deriv( *<var>args</var> )</code></a></dt><!-- RDLabel: "deriv" -->
211
+ <dd>
212
+ <p>Call derivative method defined in <!-- Reference, RDLabel "GPhys::Derivative" doesn't exist --><em class="label-not-found">GPhys::Derivative</em><!-- Reference end --> refer to
213
+ <!-- Reference, RDLabel "@@deriv_method" doesn't exist --><em class="label-not-found">@@deriv_method</em><!-- Reference end -->. </p>
214
+ <p>ARGUMENTS</p>
215
+ <ul>
216
+ <li>args : Option for derivative method. Pleaase see <!-- Reference, RDLabel "GPhys::Derivative" doesn't exist --><em class="label-not-found">GPhys::Derivative</em><!-- Reference end -->.</li>
217
+ </ul>
218
+ <p>RETURN VALUE</p>
219
+ <ul>
220
+ <li>nil</li>
221
+ </ul></dd>
222
+ <dt><a name="label:9" id="label:9"><code>scale_height</code></a></dt><!-- RDLabel: "scale_height" -->
223
+ <dd>
224
+ <p>return a value of the scale height on the log-pressure coordinate.
225
+ default value is "7000 m".</p>
226
+ <pre>RETURN VALUE
227
+ * scale height (UNumeric)</pre></dd>
228
+ <dt><a name="label:10" id="label:10"><code>scale_height=(<var>h</var>)</code></a></dt><!-- RDLabel: "scale_height=" -->
229
+ <dd>
230
+ <p>set a value of the scale height on the log-pressure coordinate.</p>
231
+ <pre>RETURN VALUE
232
+ * nil</pre></dd>
233
+ <dt><a name="label:11" id="label:11"><code>radius</code></a></dt><!-- RDLabel: "radius" -->
234
+ <dd>
235
+ <p>return a value of the radius of the planet. default value is "6.37E6 m".</p>
236
+ <pre>RETURN VALUE
237
+ * radius (UNumeric)</pre></dd>
238
+ <dt><a name="label:12" id="label:12"><code>radius=(<var>a</var>)</code></a></dt><!-- RDLabel: "radius=" -->
239
+ <dd>
240
+ <p>set a value of the radius of the planet.</p>
241
+ <pre>RETURN VALUE
242
+ * nil</pre></dd>
243
+ <dt><a name="label:13" id="label:13"><code>rot_period</code></a></dt><!-- RDLabel: "rot_period" -->
244
+ <dd>
245
+ <p>return a value of the rotation period of the planet.
246
+ default value is "8.64E4 s".</p>
247
+ <pre>RETURN VALUE
248
+ * rotation period (UNumeric)</pre></dd>
249
+ <dt><a name="label:14" id="label:14"><code>rot_period=(<var>rp</var>)</code></a></dt><!-- RDLabel: "rot_period=" -->
250
+ <dd>
251
+ <p>set a value of the rotation period of the planet.</p>
252
+ <pre>RETURN VALUE
253
+ * nil</pre></dd>
254
+ <dt><a name="label:15" id="label:15"><code>g_forces</code></a></dt><!-- RDLabel: "g_forces" -->
255
+ <dd>
256
+ <p>return a value of the gravitational acceleration on the surface.
257
+ default value is "9.81 m/s2".</p>
258
+ <pre>RETURN VALUE
259
+ * rotation period (UNumeric)</pre></dd>
260
+ <dt><a name="label:16" id="label:16"><code>g_forces=(<var>g</var>)</code></a></dt><!-- RDLabel: "g_forces=" -->
261
+ <dd>
262
+ <p>set a value of the gravitational acceleration on the surface.</p>
263
+ <pre>RETURN VALUE
264
+ * nil</pre></dd>
265
+ <dt><a name="label:17" id="label:17"><code>p00</code></a></dt><!-- RDLabel: "p00" -->
266
+ <dd>
267
+ <p>return a value of the reference surface pressure.
268
+ default value is "1.0E5 Pa".</p>
269
+ <pre>RETURN VALUE
270
+ * reference surface pressure (UNumeric)</pre></dd>
271
+ <dt><a name="label:18" id="label:18"><code>p00=(<var>p00</var>)</code></a></dt><!-- RDLabel: "p00=" -->
272
+ <dd>
273
+ <p>set a value of the reference surface pressure.</p>
274
+ <pre>RETURN VALUE
275
+ * nil</pre></dd>
276
+ <dt><a name="label:19" id="label:19"><code>cp</code></a></dt><!-- RDLabel: "cp" -->
277
+ <dd>
278
+ <p>return a value of the specific heat at constant pressure of the atmosphere.
279
+ default value is "1004.0[J.K-1.kg-1]"</p>
280
+ <pre>RETURN VALUE
281
+ * reference surface pressure (UNumeric)</pre></dd>
282
+ <dt><a name="label:20" id="label:20"><code>cp=(<var>cp</var>)</code></a></dt><!-- RDLabel: "cp=" -->
283
+ <dd>
284
+ <p>set a value of the specific heat at constant pressure of the atmosphere.</p>
285
+ <pre>RETURN VALUE
286
+ * nil</pre></dd>
287
+ <dt><a name="label:21" id="label:21"><code>gas_const</code></a></dt><!-- RDLabel: "gas_const" -->
288
+ <dd>
289
+ <p>return a value of the gas constant divided by molecular mass.
290
+ default value is "287.0[J.K-1.kg-1]".</p>
291
+ <pre>RETURN VALUE
292
+ * reference surface pressure (UNumeric)</pre></dd>
293
+ <dt><a name="label:22" id="label:22"><code>gas_const=(<var>r</var>)</code></a></dt><!-- RDLabel: "gas_const=" -->
294
+ <dd>
295
+ <p>set a value of the gas constant divided by molecular mass.</p>
296
+ <pre>RETURN VALUE
297
+ * nil</pre></dd>
298
+ <dt><a name="label:23" id="label:23"><code>get_constants</code></a></dt><!-- RDLabel: "get_constants" -->
299
+ <dd>
300
+ <p>return values of the scale height, radius, rotation period,
301
+ gravitational acceleration, reference surface pressure, specific heat,
302
+ gas constant.</p>
303
+ <pre>RETURN VALUE
304
+ * scale height (UNumeric)
305
+ * radius (UNumeric)
306
+ * rotation period (UNumeric)
307
+ * gravitational acceleration (UNumeric)
308
+ * reference surface pressure (UNumeric)
309
+ * specific heat at constant pressure of the atmosphere (UNumeric)
310
+ * gas constant divided by molecular mass (UNumeric)</pre></dd>
311
+ <dt><a name="label:24" id="label:24"><code>set_constants(<var>scale_height</var>, <var>radius</var>, <var>rot_period</var>, <var>g_forces</var>, <var>p00</var>, <var>cp</var>, <var>gas_const</var>)</code></a></dt><!-- RDLabel: "set_constants" -->
312
+ <dd>
313
+ <p>set values of the scale height, radius, rotation period, and gravitational
314
+ acceleration.</p>
315
+ <pre>ARGUMENTS
316
+ * scale height (UNumeric)
317
+ * radius (UNumeric)
318
+ * rotation period (UNumeric)
319
+ * gravitational acceleration (UNumeric)
320
+ * reference surface pressure (UNumeric)
321
+ * specific heat at constant pressure of the atmosphere (UNumeric)
322
+ * gas constant divided by molecular mass (UNumeric)
323
+
324
+ RETURN VALUE
325
+ * nil</pre></dd>
326
+ <dt><a name="label:25" id="label:25"><code>make_gphys(*<var>ax_ary</var>)</code></a></dt><!-- RDLabel: "make_gphys" -->
327
+ <dd>
328
+ <p>make GPhys objects from Axis or VArray. data components is VArray of
329
+ <!-- Reference, RDLabel "Axis.pos" doesn't exist --><em class="label-not-found">Axis.pos</em><!-- Reference end -->.</p>
330
+ <p>ARGUMENTS</p>
331
+ <ul>
332
+ <li>ax_ary (Array): an Array each objects are <!-- Reference, RDLabel "Axis" doesn't exist --><em class="label-not-found">Axis</em><!-- Reference end --> or <!-- Reference, RDLabel "VArray" doesn't exist --><em class="label-not-found">VArray</em><!-- Reference end -->.</li>
333
+ </ul>
334
+ <p>RETURN VALUE</p>
335
+ <ul>
336
+ <li>gp_ary (Array): an Array each objects are <!-- Reference, RDLabel "GPhys" doesn't exist --><em class="label-not-found">GPhys</em><!-- Reference end -->.</li>
337
+ </ul></dd>
338
+ <dt><a name="label:26" id="label:26"><code>to_w_if_omega(<var>gp</var>, <var>z</var>)</code></a></dt><!-- RDLabel: "to_w_if_omega" -->
339
+ <dd>
340
+ <p>convert to velocity(W) if <!-- Reference, RDLabel "gp" doesn't exist --><em class="label-not-found">gp</em><!-- Reference end --> is pressure velocity(Omega).
341
+ decide from units <!-- Reference, RDLabel "gp.data.units" doesn't exist --><em class="label-not-found">gp.data.units</em><!-- Reference end -->. if it compatible with "m/s" then
342
+ deem it <!-- Reference, RDLabel "W" doesn't exist --><em class="label-not-found">W</em><!-- Reference end -->, else if "Pa/s" then deem it <!-- Reference, RDLabel "Omega" doesn't exist --><em class="label-not-found">Omega</em><!-- Reference end -->.</p>
343
+ <p>ARGUMENTS</p>
344
+ <ul>
345
+ <li>gp(GPhys): a GPhys which data represents velocity or pressure velocity.</li>
346
+ <li>z(GPhys): a GPhys which data represents z-coordinate.</li>
347
+ </ul>
348
+ <p>RETURN VALUE</p>
349
+ <ul>
350
+ <li>gp_w(GPhys): a GPhys which data represents velocity or pressure velocity</li>
351
+ </ul></dd>
352
+ <dt><a name="label:27" id="label:27"><code>to_z_if_pressure(<var>gp</var>)</code></a></dt><!-- RDLabel: "to_z_if_pressure" -->
353
+ <dd>
354
+ <p>convert to altitude(z) if <!-- Reference, RDLabel "gp" doesn't exist --><em class="label-not-found">gp</em><!-- Reference end --> is pressure coordinate (p).
355
+ decide from units <!-- Reference, RDLabel "gp.data.units" doesn't exist --><em class="label-not-found">gp.data.units</em><!-- Reference end -->. if it compatible with "Pa" then
356
+ deem it (p).</p>
357
+ <p>ARGUMENTS</p>
358
+ <ul>
359
+ <li>gp(GPhys): a GPhys which data represents z or pressure coordinate.</li>
360
+ </ul>
361
+ <p>RETURN VALUE</p>
362
+ <ul>
363
+ <li>gp_z(GPhys): a GPhys which data represents z-coordinate.</li>
364
+ </ul></dd>
365
+ <dt><a name="label:28" id="label:28"><code>to_p_if_altitude(<var>gp</var>)</code></a></dt><!-- RDLabel: "to_p_if_altitude" -->
366
+ <dd>
367
+ <p>convert to pressure(p) if <!-- Reference, RDLabel "gp" doesn't exist --><em class="label-not-found">gp</em><!-- Reference end --> is altitude(z).
368
+ decide from units <!-- Reference, RDLabel "gp.data.units" doesn't exist --><em class="label-not-found">gp.data.units</em><!-- Reference end -->. if it compatible with "m" then
369
+ deem it (z).</p>
370
+ <p>ARGUMENTS</p>
371
+ <ul>
372
+ <li>gp(GPhys): a GPhys which data represents z or pressure coordinate.</li>
373
+ </ul>
374
+ <p>RETURN VALUE</p>
375
+ <ul>
376
+ <li>gp_p(GPhys): a GPhys which data represents p-coordinate.</li>
377
+ </ul></dd>
378
+ <dt><a name="label:29" id="label:29"><code>to_theta_if_temperature(<var>gp_t</var>, <var>z</var>, <var>flag_temp_or_theta</var>=<var>true</var>)</code></a></dt><!-- RDLabel: "to_theta_if_temperature" -->
379
+ <dd>
380
+ <p>convert <!-- Reference, RDLabel "gp" doesn't exist --><em class="label-not-found">gp</em><!-- Reference end --> to potential temperature(\theta) if
381
+ <!-- Reference, RDLabel "flag_temp_or_theta" doesn't exist --><em class="label-not-found">flag_temp_or_theta</em><!-- Reference end --> is true. </p>
382
+ <p>ARGUMENTS</p>
383
+ <ul>
384
+ <li><p>gp_t(GPhys): a GPhys which data represents potential temperature or </p>
385
+ <pre>temperature.</pre></li>
386
+ <li>z(GPhys) : a GPhys which data represents z-coordinate.</li>
387
+ <li>flag_temp_or_theta(True or False): a flagment if <!-- Reference, RDLabel "gp_t" doesn't exist --><em class="label-not-found">gp_t</em><!-- Reference end --> convert to.</li>
388
+ </ul>
389
+ <p>RETURN VALUE</p>
390
+ <ul>
391
+ <li>gp_theta(GPhys): a GPhys which data represents potential temperature.</li>
392
+ </ul></dd>
393
+ <dt><a name="label:30" id="label:30"><code>to_rad_if_deg(<var>gp</var>)</code></a></dt><!-- RDLabel: "to_rad_if_deg" -->
394
+ <dd>
395
+ <p>convert to radian if <!-- Reference, RDLabel "gp.data.units" doesn't exist --><em class="label-not-found">gp.data.units</em><!-- Reference end --> is degrees. </p>
396
+ <p>ARGUMENTS</p>
397
+ <ul>
398
+ <li>gp(GPhys): a GPhys which represents angle (radian or degree).</li>
399
+ </ul>
400
+ <p>RETURN VALUE</p>
401
+ <ul>
402
+ <li>gp_rad(GPhys): a GPhys which units is radian.</li>
403
+ </ul></dd>
404
+ <dt><a name="label:31" id="label:31"><code>eddy_products(<var>gp_u</var>, <var>gp_v</var>, <var>gp_w</var>, <var>gp_t</var>, <var>dimname</var>)</code></a></dt><!-- RDLabel: "eddy_products" -->
405
+ <dd>
406
+ <p>calculate eddy products along "dimname" dimension. now in this documents,
407
+ ' means eddy from zonal mean, and () means zonal mean.</p>
408
+ <p>ARGUMENTS</p>
409
+ <ul>
410
+ <li>gp_u(GPhys): a GPhys which data represents zonal-wind velocity(m/s).</li>
411
+ <li>gp_v(GPhys): a GPhys which data represents merdional-wind velocity(m/s).</li>
412
+ <li>gp_w(GPhys): a GPhys which data represents vertical-wind velocity(m/s).</li>
413
+ <li>gp_t(GPhys): a GPhys which data represents temperature(K).</li>
414
+ </ul>
415
+ <p>RETURN VALUE</p>
416
+ <ul>
417
+ <li>uv_dash(GPhys): a GPhys which represents (gp_u'*gp_v').</li>
418
+ <li>vt_dash(GPhys): a GPhys which represents (gp_v'*gp_t').</li>
419
+ <li>uw_dash(GPhys): a GPhys which represents (gp_u'*gp_w').</li>
420
+ </ul></dd>
421
+ <dt><a name="label:32" id="label:32"><code>remove_0_at_poles(<var>cos_gp</var>)</code></a></dt><!-- RDLabel: "remove_0_at_poles" -->
422
+ <dd>
423
+ <p>set value if the cos(latitude) is nearly equal to 0 (|x|&lt; 1e-6) at poles.
424
+ at North pole, new value is <a href="(a_cos_lat.val[0] + a_cos_lat.val[1])">2</a>
425
+ and at South pole <a href="(a_cos_lat.val[-1] + a_cos_lat.val[-2])">2</a></p>
426
+ <pre>ARGUMENTS
427
+ * cos_gp(GPhys): a GPhys which represents latitude.
428
+
429
+ RETURN VALUE
430
+ * new_cos_gp(GPhys): a GPhys which value at poles displaceed.</pre></dd>
431
+ <dt><a name="label:33" id="label:33"><code>preparate_for_vector_on_merdional_section(<var>xax</var>, <var>yax</var>)</code></a></dt><!-- RDLabel: "preparate_for_vector_on_merdional_section" -->
432
+ <dd>
433
+ <p>preparate for <!-- Reference, RDLabel "GGraph::vector_on_merdional_section" doesn't exist --><em class="label-not-found">GGraph::vector_on_merdional_section</em><!-- Reference end --> in
434
+ vector_on_merdional_section. </p>
435
+ <ol>
436
+ <li>check <!-- Reference, RDLabel "yax" doesn't exist --><em class="label-not-found">yax</em><!-- Reference end --> if it is proportional to p </li>
437
+ <li>get axis ( a*phi, z ) </li>
438
+ </ol>
439
+ <pre>ARGUMENTS
440
+ * xax(VArray): a VArray which represents x axis.
441
+ * yax(VArray): a VArray which represents y axis.
442
+
443
+ RETURN VALUE
444
+ * va_aphi(VArray): a VArray which represents x-coordinate(radius * phi).
445
+ * va_z(VArray): a VArray which represents z-coordinate.
446
+ * was_proportional_to_p(True or False): flag original axis proportional to
447
+ pressure or z.</pre></dd>
448
+ <dt><a name="label:34" id="label:34"><code>strm_rmean(<var>v_rmean</var>, <var>yzdims</var>=[<var>0</var>,<var>1</var>])</code></a></dt><!-- RDLabel: "strm_rmean" -->
449
+ <dd>
450
+ <p>Calculate mass stream function for residual zonal mean circulation. </p>
451
+ <p>ARGUMENTS</p>
452
+ <ul>
453
+ <li>v_rmean (GPhys): a GPhys which is residual zonal mean V.</li>
454
+ <li>yzdims (Array): an Array which represents axis.</li>
455
+ </ul>
456
+ <p>RETURN VALUE</p>
457
+ <ul>
458
+ <li>gp_strm (GPhys): a GPhys which is mass stream function on merdional section.</li>
459
+ </ul></dd>
460
+ </dl>
461
+ <h2><a name="label:35" id="label:35">Constants:</a></h2><!-- RDLabel: "Constants:" -->
462
+ <dl>
463
+ <dt><a name="label:36" id="label:36"><code>Deriv_methods</code></a></dt><!-- RDLabel: "Deriv_methods" -->
464
+ <dd>
465
+ <p>derivative method name [ 'cderiv', 'threepoint_O2nd_deriv' ]</p></dd>
466
+ </dl>
467
+
468
+ </body>
469
+ </html>