ruby-dcl 1.6.2

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 (319) hide show
  1. data/ChangeLog +321 -0
  2. data/GenWrapper/Makefile +14 -0
  3. data/GenWrapper/cproto2init.rb +41 -0
  4. data/GenWrapper/dcl_narrayed_funcs.rb +181 -0
  5. data/GenWrapper/dcl_rb_footing +29 -0
  6. data/GenWrapper/dcl_rb_heading +129 -0
  7. data/GenWrapper/def.rb +20 -0
  8. data/GenWrapper/elim_ary_size.rb +398 -0
  9. data/GenWrapper/etc/Mk_proto +375 -0
  10. data/GenWrapper/etc/dcl_gen +13 -0
  11. data/GenWrapper/etc/p_header +63 -0
  12. data/GenWrapper/etc/p_init +410 -0
  13. data/GenWrapper/pparse.rb +137 -0
  14. data/GenWrapper/proto/Makefile +35 -0
  15. data/GenWrapper/proto/grph1_00 +17 -0
  16. data/GenWrapper/proto/grph1_csgi.fp +27 -0
  17. data/GenWrapper/proto/grph1_scpack.fp +442 -0
  18. data/GenWrapper/proto/grph1_sgpack.fp +1406 -0
  19. data/GenWrapper/proto/grph1_slpack.fp +316 -0
  20. data/GenWrapper/proto/grph1_stpack.fp +411 -0
  21. data/GenWrapper/proto/grph1_swpack.fp +746 -0
  22. data/GenWrapper/proto/grph2_00 +16 -0
  23. data/GenWrapper/proto/grph2_grpack.fp +139 -0
  24. data/GenWrapper/proto/grph2_ucpack.fp +522 -0
  25. data/GenWrapper/proto/grph2_udpack.fp +692 -0
  26. data/GenWrapper/proto/grph2_uepack.fp +601 -0
  27. data/GenWrapper/proto/grph2_ugpack.fp +436 -0
  28. data/GenWrapper/proto/grph2_uhpack.fp +246 -0
  29. data/GenWrapper/proto/grph2_ulpack.fp +516 -0
  30. data/GenWrapper/proto/grph2_umpack.fp +676 -0
  31. data/GenWrapper/proto/grph2_uspack.fp +989 -0
  32. data/GenWrapper/proto/grph2_uupack.fp +663 -0
  33. data/GenWrapper/proto/grph2_uvpack.fp +246 -0
  34. data/GenWrapper/proto/grph2_uwpack.fp +203 -0
  35. data/GenWrapper/proto/grph2_uxpack.fp +295 -0
  36. data/GenWrapper/proto/grph2_uypack.fp +295 -0
  37. data/GenWrapper/proto/grph2_uzpack.fp +574 -0
  38. data/GenWrapper/proto/math1_00 +12 -0
  39. data/GenWrapper/proto/math1_blklib.fp +58 -0
  40. data/GenWrapper/proto/math1_chrlib.fp +83 -0
  41. data/GenWrapper/proto/math1_fnclib.fp +79 -0
  42. data/GenWrapper/proto/math1_gnmlib.fp +118 -0
  43. data/GenWrapper/proto/math1_gt2dlib.fp +144 -0
  44. data/GenWrapper/proto/math1_ifalib.fp +123 -0
  45. data/GenWrapper/proto/math1_indxlib.fp +222 -0
  46. data/GenWrapper/proto/math1_intlib.fp +46 -0
  47. data/GenWrapper/proto/math1_lrllib.fp +276 -0
  48. data/GenWrapper/proto/math1_maplib.fp +24 -0
  49. data/GenWrapper/proto/math1_oslib.fp +28 -0
  50. data/GenWrapper/proto/math1_rfalib.fp +420 -0
  51. data/GenWrapper/proto/math1_rfblib.fp +51 -0
  52. data/GenWrapper/proto/math1_sublib.fp +60 -0
  53. data/GenWrapper/proto/math1_syslib.fp +767 -0
  54. data/GenWrapper/proto/math1_vialib.fp +339 -0
  55. data/GenWrapper/proto/math1_viblib.fp +264 -0
  56. data/GenWrapper/proto/math1_vralib.fp +339 -0
  57. data/GenWrapper/proto/math1_vrblib.fp +264 -0
  58. data/GenWrapper/proto/math1_xfclib.fp +68 -0
  59. data/GenWrapper/proto/math2_00 +12 -0
  60. data/GenWrapper/proto/math2_fftlib.fp +803 -0
  61. data/GenWrapper/proto/math2_intrlib.fp +32 -0
  62. data/GenWrapper/proto/math2_odelib.fp_notused +568 -0
  63. data/GenWrapper/proto/math2_rnmlib.fp +54 -0
  64. data/GenWrapper/proto/math2_shtlib.fp +1292 -0
  65. data/GenWrapper/proto/math2_shtlib.fp_old +1294 -0
  66. data/GenWrapper/proto/math2_vstlib.fp +84 -0
  67. data/GenWrapper/proto/misc1_00 +17 -0
  68. data/GenWrapper/proto/misc1_chnlib.fp +47 -0
  69. data/GenWrapper/proto/misc1_datelib.fp +352 -0
  70. data/GenWrapper/proto/misc1_fmtlib.fp +19 -0
  71. data/GenWrapper/proto/misc1_misclib.fp +26 -0
  72. data/GenWrapper/proto/misc1_randlib.fp +36 -0
  73. data/GenWrapper/proto/misc1_timelib.fp +151 -0
  74. data/GenWrapper/proto2c.rb +13 -0
  75. data/GenWrapper/prototype.rb +209 -0
  76. data/GenWrapper/util.rb +9 -0
  77. data/GenWrapper/variable.rb +671 -0
  78. data/README +29 -0
  79. data/Rakefile +44 -0
  80. data/ToDo +2 -0
  81. data/dcl_cary2obj.c +354 -0
  82. data/dcl_narrayed_funcs.c +518 -0
  83. data/dcl_obj2cary.c +512 -0
  84. data/dcl_rubydcloriginal.c +129 -0
  85. data/demo/gokuraku/hop/hop.rb +26 -0
  86. data/demo/gokuraku/jump/jump1.rb +64 -0
  87. data/demo/gokuraku/jump/jump2.rb +50 -0
  88. data/demo/gokuraku/layout/lay1.rb +46 -0
  89. data/demo/gokuraku/layout/lay2.rb +44 -0
  90. data/demo/gokuraku/step/step0.rb +34 -0
  91. data/demo/gokuraku/step/step1.rb +84 -0
  92. data/demo/gokuraku/step/step2.rb +62 -0
  93. data/demo/gokuraku/u1d/u1d1.rb +37 -0
  94. data/demo/gokuraku/u1d/u1d2.rb +50 -0
  95. data/demo/gokuraku/u2d/u2d1.rb +46 -0
  96. data/demo/gokuraku/u2d/u2d2.rb +49 -0
  97. data/demo/gokuraku/u2d/u2d3.rb +45 -0
  98. data/demo/gokuraku/u2d/u2d4.rb +61 -0
  99. data/demo/grph1/scpack/scpkt2.rb +40 -0
  100. data/demo/grph1/scpack/scpkt3.rb +102 -0
  101. data/demo/grph1/scpack/scpkt6.rb +84 -0
  102. data/demo/grph1/scpack/scpkt7.rb +59 -0
  103. data/demo/grph1/scpack/scpkt8.rb +60 -0
  104. data/demo/grph1/scpack/t810630.dat +296 -0
  105. data/demo/grph1/scpack/t811231.dat +296 -0
  106. data/demo/grph1/sgpack/sgfont.rb +52 -0
  107. data/demo/grph1/sgpack/sgfonz.rb +53 -0
  108. data/demo/grph1/sgpack/sgksx1.rb +44 -0
  109. data/demo/grph1/sgpack/sgksx2.rb +90 -0
  110. data/demo/grph1/sgpack/sgksx3.rb +75 -0
  111. data/demo/grph1/sgpack/sglidx.rb +40 -0
  112. data/demo/grph1/sgpack/sgltyp.rb +48 -0
  113. data/demo/grph1/sgpack/sgpk01.rb +39 -0
  114. data/demo/grph1/sgpack/sgpk02.rb +79 -0
  115. data/demo/grph1/sgpack/sgpk03.rb +107 -0
  116. data/demo/grph1/sgpack/sgpk04.rb +86 -0
  117. data/demo/grph1/sgpack/sgpk05.rb +66 -0
  118. data/demo/grph1/sgpack/sgpk06.rb +91 -0
  119. data/demo/grph1/sgpack/sgpk07.rb +66 -0
  120. data/demo/grph1/sgpack/sgpk08.rb +67 -0
  121. data/demo/grph1/sgpack/sgpk09.rb +61 -0
  122. data/demo/grph1/sgpack/sgpk10.rb +58 -0
  123. data/demo/grph1/sgpack/sgtclr.rb +59 -0
  124. data/demo/grph1/sgpack/sgtone.rb +70 -0
  125. data/demo/grph1/sgpack/sgtonz.rb +66 -0
  126. data/demo/grph1/slpack/slpk01.rb +37 -0
  127. data/demo/grph1/slpack/slpk02.rb +29 -0
  128. data/demo/grph1/slpack/slpk03.rb +36 -0
  129. data/demo/grph1/slpack/slpk04.rb +36 -0
  130. data/demo/grph2/g2pack/g2pk01.rb +78 -0
  131. data/demo/grph2/g2pack/g2pk02.rb +75 -0
  132. data/demo/grph2/grpack/grpk01.rb +65 -0
  133. data/demo/grph2/ucpack/ucpk01.rb +95 -0
  134. data/demo/grph2/ucpack/ucpk02.rb +95 -0
  135. data/demo/grph2/udegpk/u2df01.rb +50 -0
  136. data/demo/grph2/udegpk/u2df02.rb +76 -0
  137. data/demo/grph2/udegpk/u2df03.rb +80 -0
  138. data/demo/grph2/udegpk/u2df04.rb +52 -0
  139. data/demo/grph2/udegpk/u2df05.rb +70 -0
  140. data/demo/grph2/udegpk/u2df06.rb +59 -0
  141. data/demo/grph2/udegpk/u2df07.rb +68 -0
  142. data/demo/grph2/udegpk/u2df08.rb +91 -0
  143. data/demo/grph2/udegpk/u2df09b.rb +88 -0
  144. data/demo/grph2/udegpk/u2df09c.rb +89 -0
  145. data/demo/grph2/udegpk/u2df09e.rb +88 -0
  146. data/demo/grph2/udegpk/u2df09f.rb +89 -0
  147. data/demo/grph2/ulpack/ulpk01.rb +111 -0
  148. data/demo/grph2/ulpack/ulpk01n.rb +111 -0
  149. data/demo/grph2/ulpack/ulpk02.rb +111 -0
  150. data/demo/grph2/ulpack/ulpk02n.rb +111 -0
  151. data/demo/grph2/umpack/t811231.dat +296 -0
  152. data/demo/grph2/umpack/test01.rb +69 -0
  153. data/demo/grph2/umpack/test02.rb +64 -0
  154. data/demo/grph2/umpack/test03.rb +84 -0
  155. data/demo/grph2/umpack/test04.rb +54 -0
  156. data/demo/grph2/umpack/test05.rb +85 -0
  157. data/demo/grph2/umpack/test06.rb +44 -0
  158. data/demo/grph2/umpack/test07.rb +43 -0
  159. data/demo/grph2/umpack/test08.rb +37 -0
  160. data/demo/grph2/umpack/test09.rb +86 -0
  161. data/demo/grph2/umpack/test10.rb +52 -0
  162. data/demo/grph2/umpack/umpk01.rb +65 -0
  163. data/demo/grph2/umpack/umpk02.rb +54 -0
  164. data/demo/grph2/umpack/umpk03.rb +46 -0
  165. data/demo/grph2/umpack/umpk04.rb +65 -0
  166. data/demo/grph2/umpack/umpk05.rb +84 -0
  167. data/demo/grph2/uspack/uspk01.rb +39 -0
  168. data/demo/grph2/uspack/uspk02.rb +47 -0
  169. data/demo/grph2/uspack/uspk03.rb +38 -0
  170. data/demo/grph2/uspack/uspk04.rb +64 -0
  171. data/demo/grph2/uspack/uspk05.rb +68 -0
  172. data/demo/grph2/uspack/uspk06.rb +43 -0
  173. data/demo/grph2/uspack/uspk07.rb +62 -0
  174. data/demo/grph2/uspack/uspk08.rb +46 -0
  175. data/demo/grph2/uspack/uspk09.rb +89 -0
  176. data/demo/grph2/uspack/uspk10.rb +48 -0
  177. data/demo/grph2/uspack/uspk11.rb +71 -0
  178. data/demo/grph2/uspack/uspk12.rb +51 -0
  179. data/demo/grph2/uupack/uupk01.rb +50 -0
  180. data/demo/grph2/uupack/uupk02.rb +74 -0
  181. data/demo/grph2/uupack/uupk03.rb +56 -0
  182. data/demo/grph2/uupack/uupk04.rb +84 -0
  183. data/demo/grph2/uupack/uupk05.rb +74 -0
  184. data/demo/grph2/uupack/uupk06.rb +77 -0
  185. data/demo/grph2/uupack/uupk07.rb +88 -0
  186. data/demo/grph2/uxyzpk/uxyz01.rb +38 -0
  187. data/demo/grph2/uxyzpk/uxyz02.rb +36 -0
  188. data/demo/grph2/uxyzpk/uxyz03.rb +37 -0
  189. data/demo/grph2/uxyzpk/uxyz04.rb +54 -0
  190. data/demo/grph2/uxyzpk/uxyz05.rb +41 -0
  191. data/demo/grph2/uxyzpk/uxyz06.rb +42 -0
  192. data/demo/grph2/uxyzpk/uxyz07.rb +38 -0
  193. data/demo/grph2/uxyzpk/uxyz08.rb +60 -0
  194. data/demo/grph2/uxyzpk/uxyz09.rb +52 -0
  195. data/demo/grph2/uxyzpk/uxyz10.rb +57 -0
  196. data/demo/grph2/ximage/MEMO +23 -0
  197. data/demo/grph2/ximage/tomsclm.dat +1344 -0
  198. data/demo/grph2/ximage/ximg01.rb +145 -0
  199. data/demo/math1/gt2dlib/gt2d01.rb +33 -0
  200. data/demo/math2/fftlib/fftl01.rb +28 -0
  201. data/demo/math2/fftlib/fftl02.rb +224 -0
  202. data/demo/math2/intrlib/intr01.rb +22 -0
  203. data/demo/math2/rnmlib/rnml01.rb +21 -0
  204. data/demo/math2/vstlib/vstl01.rb +29 -0
  205. data/demo/math2/vstlib/vstl02.rb +38 -0
  206. data/demo/rakuraku/color/color1.rb +61 -0
  207. data/demo/rakuraku/color/color2.rb +57 -0
  208. data/demo/rakuraku/color/color3.rb +81 -0
  209. data/demo/rakuraku/kihon/kihon1.rb +39 -0
  210. data/demo/rakuraku/kihon/kihon2.rb +56 -0
  211. data/demo/rakuraku/kihon/kihon3.rb +57 -0
  212. data/demo/rakuraku/kihon/kihon4.rb +70 -0
  213. data/demo/rakuraku/kihon/kihon5.rb +56 -0
  214. data/demo/rakuraku/kihon/kihon6.rb +40 -0
  215. data/demo/rakuraku/kihon/kihon7.rb +98 -0
  216. data/demo/rakuraku/kihon/kihon8.rb +93 -0
  217. data/demo/rakuraku/kihon/kihon9.rb +77 -0
  218. data/demo/rakuraku/kihon/kihona.rb +123 -0
  219. data/demo/rakuraku/kihon/kihonb.rb +73 -0
  220. data/demo/rakuraku/kihon/kihonc.rb +110 -0
  221. data/demo/rakuraku/layout/lay1.rb +29 -0
  222. data/demo/rakuraku/layout/lay2.rb +28 -0
  223. data/demo/rakuraku/layout/lay3.rb +29 -0
  224. data/demo/rakuraku/map3d/map3d1.rb +68 -0
  225. data/demo/rakuraku/map3d/map3d2.rb +67 -0
  226. data/demo/rakuraku/map3d/map3d3.rb +66 -0
  227. data/demo/rakuraku/map3d/map3d4.rb +107 -0
  228. data/demo/rakuraku/map3d/map3d5.rb +118 -0
  229. data/demo/rakuraku/map3d/map3d6.rb +96 -0
  230. data/demo/rakuraku/map3d/map3d7.rb +98 -0
  231. data/demo/rakuraku/miss/miss1.rb +76 -0
  232. data/demo/rakuraku/miss/miss2.rb +60 -0
  233. data/demo/rakuraku/quick/quick1.rb +35 -0
  234. data/demo/rakuraku/quick/quick2.rb +33 -0
  235. data/demo/rakuraku/quick/quick3.rb +46 -0
  236. data/demo/rakuraku/quick/quick4.rb +47 -0
  237. data/demo/rakuraku/quick/quick5.rb +46 -0
  238. data/demo/rakuraku/u2d/u2d1.rb +50 -0
  239. data/demo/rakuraku/u2d/u2d2.rb +51 -0
  240. data/demo/rakuraku/u2d/u2d3.rb +70 -0
  241. data/demo/rakuraku/u2d/u2d4.rb +59 -0
  242. data/demo/rakuraku/u2d/u2d5.rb +61 -0
  243. data/demo/rakuraku/u2d/u2d6.rb +57 -0
  244. data/demo/rakuraku/u2d/u2d7.rb +103 -0
  245. data/demo/rakuraku/uspack/uspac1.rb +35 -0
  246. data/demo/rakuraku/uspack/uspac2.rb +66 -0
  247. data/demo/rakuraku/uspack/uspac3.rb +37 -0
  248. data/demo/rakuraku/uspack/uspac4.rb +49 -0
  249. data/demo/rakuraku/uxyz/uxyz1.rb +37 -0
  250. data/demo/rakuraku/uxyz/uxyz2.rb +35 -0
  251. data/demo/rakuraku/uxyz/uxyz3.rb +38 -0
  252. data/demo/rakuraku/uxyz/uxyz4.rb +36 -0
  253. data/demo/rakuraku/uxyz/uxyz5.rb +57 -0
  254. data/demo/rakuraku/uxyz/uxyz6.rb +43 -0
  255. data/demo/rakuraku/uxyz/uxyz7.rb +39 -0
  256. data/demo/rakuraku/uxyz/uxyz8.rb +56 -0
  257. data/demo/rubydcloriginal/uemrkz1.rb +37 -0
  258. data/dummy.c +9 -0
  259. data/extconf.rb +133 -0
  260. data/grph1_csgi.c +119 -0
  261. data/grph1_scpack.c +1388 -0
  262. data/grph1_sgpack.c +3876 -0
  263. data/grph1_slpack.c +432 -0
  264. data/grph1_stpack.c +1044 -0
  265. data/grph1_swpack.c +1922 -0
  266. data/grph1_zgpack.c.org +141 -0
  267. data/grph2_grpack.c +368 -0
  268. data/grph2_ucpack.c +1232 -0
  269. data/grph2_udpack.c +1404 -0
  270. data/grph2_uepack.c +1443 -0
  271. data/grph2_ugpack.c +1073 -0
  272. data/grph2_uhpack.c +943 -0
  273. data/grph2_ulpack.c +1304 -0
  274. data/grph2_umpack.c +1540 -0
  275. data/grph2_uspack.c +2481 -0
  276. data/grph2_uupack.c +1689 -0
  277. data/grph2_uvpack.c +943 -0
  278. data/grph2_uwpack.c +552 -0
  279. data/grph2_uxpack.c +555 -0
  280. data/grph2_uypack.c +555 -0
  281. data/grph2_uzpack.c +1455 -0
  282. data/init.c.default +187 -0
  283. data/init.c.gtk +189 -0
  284. data/lib/dcl.rb +5084 -0
  285. data/math1_blklib.c +227 -0
  286. data/math1_chrlib.c +239 -0
  287. data/math1_fnclib.c +254 -0
  288. data/math1_gnmlib.c +356 -0
  289. data/math1_gt2dlib.c +514 -0
  290. data/math1_ifalib.c +427 -0
  291. data/math1_indxlib.c +709 -0
  292. data/math1_intlib.c +167 -0
  293. data/math1_lrllib.c +817 -0
  294. data/math1_maplib.c +172 -0
  295. data/math1_oslib.c +111 -0
  296. data/math1_rfalib.c +1417 -0
  297. data/math1_rfblib.c +232 -0
  298. data/math1_sublib.c +221 -0
  299. data/math1_syslib.c +2025 -0
  300. data/math1_vialib.c +1156 -0
  301. data/math1_viblib.c +1027 -0
  302. data/math1_vralib.c +1156 -0
  303. data/math1_vrblib.c +1027 -0
  304. data/math1_xfclib.c +142 -0
  305. data/math2_fftlib.c +833 -0
  306. data/math2_intrlib.c +138 -0
  307. data/math2_rnmlib.c +226 -0
  308. data/math2_shtlib.c +1568 -0
  309. data/math2_vstlib.c +366 -0
  310. data/misc1_chnlib.c +179 -0
  311. data/misc1_datelib.c +953 -0
  312. data/misc1_fmtlib.c +99 -0
  313. data/misc1_misclib.c +118 -0
  314. data/misc1_randlib.c +142 -0
  315. data/misc1_timelib.c +380 -0
  316. data/obsolete/README +2 -0
  317. data/obsolete/dcl_ext.html +112 -0
  318. data/obsolete/dcl_ext.rb +313 -0
  319. metadata +433 -0
@@ -0,0 +1,145 @@
1
+ #
2
+ # ximg01.rb
3
+ #
4
+ # $Id: ximg01.rb,v 1.1.1.1 2011-02-23 07:21:27 horinout Exp $
5
+ #
6
+
7
+ #-----------------------------------------------------------------------
8
+ # TOMS OZONE DISTRIBUTION (MONTHLY MEAN CLIMATOLOGY)
9
+ #-----------------------------------------------------------------------
10
+
11
+ require "narray"
12
+ require "numru/dcl"
13
+
14
+ include NumRu
15
+ include Math
16
+
17
+
18
+ KXBK = 12
19
+ IXBK = KXBK*2+1
20
+ JXBK = 37
21
+ IXBG = 73
22
+ JXBG = 37
23
+ IXGX = 361
24
+ JXGX = 181
25
+ NCL = 100
26
+ NCL1 = NCL+1
27
+
28
+ bkdata = NArray.sfloat(IXBK*JXBK)
29
+ bgdata = NArray.sfloat(IXBG, JXBG)
30
+ gxdata = NArray.sfloat(IXGX, JXGX)
31
+ tlevn = NArray.sfloat(NCL1)
32
+
33
+ def fftezb(fc, nx)
34
+ nn = 0
35
+ maxwn = fc.shape[0]
36
+
37
+ nmax = 512
38
+ if (nx > nmax)
39
+ cmsg = format("WORKING AREA IS NOT ENOUGH / NX SHOULD BE .LE. %4d.", nmax)
40
+ DCL::msgdmp('E', 'FFTEZB', cmsg)
41
+ end
42
+ if (nx < maxwn*2)
43
+ cmsg = "MAXWN CANNOT BE CALCULATED / NX SOULD BE .GE. MAXWN*2.0"
44
+ DCL::msgdmp('E', 'FFTEZB', cmsg)
45
+ end
46
+
47
+ if (nx != nn)
48
+ wsave = DCL::rffti(nx)
49
+ nn=nx
50
+ end
51
+ y = Array.new(nx, 0)
52
+ y[0] = fc[0]
53
+ 1.step(maxwn-1, 2) do |i|
54
+ y[i] = fc[i] * 0.5
55
+ y[i+1] = fc[i+1] * -0.5
56
+ end
57
+ y = DCL::rfftb(y, wsave)
58
+ end
59
+
60
+ def bktobg(bkdata, bgdata)
61
+ rmiss = DCL::glrget('RMISS')
62
+ # CALL DTPGET('MAXWN',KX)
63
+ for j in 0..JXBG-1
64
+ if (bkdata[0,j] == rmiss)
65
+ bgdata[true,j] = rmiss
66
+ else
67
+ wk = fftezb(bkdata[true,j], IXBG-1)
68
+ bgdata[0..-2, j] = wk
69
+ bgdata[-1,j]=bgdata[0,j]
70
+ end
71
+ end
72
+ end
73
+
74
+ #-- data ---
75
+ ipatn = []
76
+ for i in 0..NCL-1
77
+ ipatn[i] = ([11, i+1].max) *1000 + 999
78
+ end
79
+ tlevn.indgen(203.0, 3.0)
80
+
81
+ cdsn = 'tomsclm.dat'
82
+ file = open(cdsn, "r")
83
+
84
+ DCL::swlstx('LWAIT', false)
85
+ DCL::swlstx('LWAIT0', false)
86
+ DCL::swlstx('LDUMP', false)
87
+ DCL::swistx('IPOSX', 200)
88
+ DCL::swistx('IPOSY', 200)
89
+ DCL::swistx('IWIDTH', 800)
90
+ DCL::swistx('IHEIGHT', 400)
91
+
92
+ #-- graph ---
93
+ iws = (ARGV[0] || (puts ' WORKSTATION ID (I) ? ;'; DCL::sgpwsn; gets)).to_i
94
+ DCL::gropn iws
95
+ DCL::gllset('LMISS', true)
96
+ rmiss = DCL::glrget('RMISS')
97
+ DCL::sglset('LFULL', true)
98
+ DCL::sglset('LSOFTF', false)
99
+ DCL::umlset('LGLOBE', true)
100
+ DCL::slrat(1.0, 0.5)
101
+
102
+ for m in 1..12
103
+ mon = file.gets.split(" ")[-1].to_i
104
+ bkdata.reshape(IXBK*JXBK)
105
+ i = 0
106
+ (JXBK*3).times do |j|
107
+ file.gets.split(" ").each do |data|
108
+ bkdata[i] = data.to_f
109
+ i += 1
110
+ end
111
+ end
112
+ bktobg(bkdata.reshape(IXBK, JXBK), bgdata)
113
+ gxdata.fill!(rmiss)
114
+ for j in 0..JXBG-1
115
+ for i in 0..IXBG-1
116
+ gxdata[i*5, j*5] = bgdata[i,j]
117
+ end
118
+ wk = DCL::vrintr(gxdata[true, j*5], IXGX, 1)
119
+ gxdata[true, j*5] = wk
120
+ end
121
+ for i in 0..IXGX-1
122
+ wk = DCL::vrintr(gxdata[i, true], JXGX, 1)
123
+ gxdata[i, true] = wk
124
+ end
125
+
126
+ DCL::grfrm
127
+ DCL::grswnd(0.0, 360.0, -90.0, 90.0)
128
+ DCL::grsmpl(180.0, 90.0, 0.0)
129
+ DCL::grstrn(DCL::isgtrc('HMR'))
130
+ DCL::umpfit
131
+ DCL::grstrf
132
+
133
+ DCL::slpwwr(1)
134
+ DCL::ueitlv
135
+ DCL::uestln(tlevn, ipatn)
136
+ DCL::uetonf(gxdata)
137
+
138
+ DCL::umpgrd
139
+ DCL::umplim
140
+ DCL::umpmap('coast_world')
141
+ end
142
+ file.close
143
+
144
+ DCL::grcls
145
+
@@ -0,0 +1,33 @@
1
+ #
2
+ # program gt2d01
3
+ #
4
+ # T Horinouchi 2004/11/11
5
+
6
+ require "numru/dcl"
7
+ include NumRu
8
+ include NMath
9
+
10
+ nx=15
11
+ ny=15
12
+
13
+ ux = NArray.sfloat(nx).indgen!/(nx-1.0) - 0.5
14
+ terrain = 0.1 * exp(-24*ux**2)
15
+ uy = NArray.sfloat(ny).indgen!/(ny-1.0)
16
+
17
+ cx = NArray.sfloat(nx,ny)
18
+ cx[0,0] = DCL::glrget('rundef')
19
+ cy = uy.reshape(1,ny)*(1.0-terrain) + terrain
20
+
21
+ DCL::g2sctr(ux,uy, cx,cy)
22
+
23
+ print "terrain following coordinate\n"
24
+
25
+ uxp = 0.2
26
+ uyp = 0.3
27
+ print "original ux, uy:", uxp, " ", uyp,"\n"
28
+
29
+ cxp, cyp = DCL::g2fctr(uxp, uyp)
30
+ print "transformed cx, cy:", cxp, " ", cyp,"\n"
31
+ uxp, uyp = DCL::g2ictr(cxp, cyp)
32
+ print "inverted ux, uy:", uxp, " ", uyp,"\n"
33
+ print "(...Note that DCL uses single precision floats.)\n"
@@ -0,0 +1,28 @@
1
+ #
2
+ # fftl01.rb
3
+ #
4
+ # $Id: fftl01.rb,v 1.1.1.1 2011-02-23 07:21:28 horinout Exp $
5
+ #
6
+
7
+ require "narray"
8
+ require "numru/dcl"
9
+
10
+ include NumRu
11
+ include Math
12
+
13
+
14
+ N = 12
15
+ NW = N/2
16
+ NWS = 3*N+15
17
+
18
+ rx = [0, 1, 2, 3, 4, 3, 2, 1, 0, -1, -2, -1].collect{|i| i.to_f}
19
+ #rx = [0, 1, 2, 3, 2, 1, 0, -1, -2, -3, -2, -1].collect{|i| i.to_f}
20
+
21
+ wsave = DCL::ezffti(N)
22
+ printf " LIST OF RX : %s\n", "%5.1f"*N % rx
23
+ a0, ak, bk = DCL::ezfftf(rx, wsave)
24
+ printf " LIST OF CX : %8.3f%s\n", a0, "%8.3f"*NW % ak.to_a
25
+ printf " LIST OF SX : %s%s\n", " "*8, "%8.3f"*NW % bk.to_a
26
+ rx = DCL::ezfftb(a0, ak, bk, wsave)
27
+ printf " LIST OF RX : %s\n", "%5.1f"*N % rx.to_a
28
+
@@ -0,0 +1,224 @@
1
+ #
2
+ # fftl02.rb
3
+ #
4
+ # $Id: fftl02.rb,v 1.1.1.1 2011-02-23 07:21:28 horinout Exp $
5
+ #
6
+
7
+ require "narray"
8
+ require "numru/dcl"
9
+
10
+ include NumRu
11
+ include Math
12
+
13
+
14
+ #-----------------------------------------------------------------------
15
+ module Tfftp
16
+ #
17
+ #
18
+ # PURPOSE TO DEMONSTRATE THE USE OF FFTPACK, AND TO
19
+ # TEST THE PERFORMANCE OF FFTPACK ON ONE
20
+ # WELL-CONDITIONED PROBLEM.
21
+ #
22
+ # USAGE CALL TFFTPK (IERROR)
23
+ #
24
+ # ARGUMENTS
25
+ #
26
+ # ON OUTPUT IERROR
27
+ # INTEGER VARIABLE SET TO ZERO IF FFTPACK
28
+ # CORRECTLY SOLVED THE TEST PROBLEM, AND
29
+ # ONE IF FFTPACK FAILED.
30
+ #
31
+ # I/O IF THE TEST SUCCEEDS(FAILS), THE MESSAGE
32
+ #
33
+ # FFTPACK TEST SUCCESSFUL (UNSUCCESSFUL)
34
+ #
35
+ # IS WRITTEN ON UNIT 6. IN THE CASE OF FAILURE,
36
+ # ADDITIONAL MESSAGES ARE WRITTEN IDENTIFYING THE
37
+ # FAILURE MORE EXPLICITLY.
38
+ #
39
+ # PRECISION SINGLE
40
+ #
41
+ # REQUIRED LIBRARY NONE
42
+ # FILES
43
+ #
44
+ # LANGUAGE FORTRAN
45
+ #
46
+ # HISTORY WRITTEN BY MEMBERS OF THE SCIENTIFIC
47
+ # COMPUTING DIVISION OF NCAR,
48
+ # BOULDER COLORADO.
49
+ #
50
+ # ALGORITHM FOR EACH OF THE ROUTINES, RFFTF, RFFTB, EZFFTF,
51
+ # AND EZFFTB IN THE FFTPACK PACKAGE A SIMILAR
52
+ # TEST IS RUN. AN APPROPIATE VECTOR, FOR WHICH
53
+ # THE EXACT TRANSFORM IS KNOWN IS USED AS THE
54
+ # INPUT VECTOR. THE ROUTINE IS CALLED TO PERFORM
55
+ # THE TRANSFORM. THE CALCULATED TRANSFORM VECTOR
56
+ # IS COMPARED WITH THE EXACT TRANSFORM TO SEE
57
+ # WHETHER THE PERFORMANCE CRITERION IS MET WITHIN
58
+ # THE SPECIFED TOLERANCE.
59
+ #
60
+ # FOR RFFTF AND EZFFTF, A REAL VECTOR, THE ELEMEN
61
+ # WHICH ARE EQUAL TO ONE, IS USED AS INPUT. THE
62
+ # TRANSFORMED VECTOR HAS THE FIRST ELEMENT EQUAL
63
+ # TO THE LENGTH OF THE INPUT VECTOR. ALL OTHER
64
+ # ELEMENTS ARE EQUAL TO ZERO.
65
+ #
66
+ # FOR RFFTB AND EZFFTB, THE INPUT VECTOR HAS FIRS
67
+ # ELEMENT EQUAL TO ONE AND ALL THE OTHER ELEMENTS
68
+ # EQUAL TO ZERO. THE TRANSFORMED VECTOR HAS ALL
69
+ # COMPONENTS EQUAL TO ONE.
70
+ #
71
+ # PORTABILITY ANSI STANDARD
72
+ #
73
+ #
74
+ N = 36
75
+ DIM1 = 2*N+15
76
+ DIM2 = 3*N+15
77
+ ND2 = N/2
78
+ TOL = 0.01
79
+
80
+ M998 = " FFTPACK TEST SUCCESSFUL\n"
81
+ M999 = " FFTPACK TEST UNSUCCESSFUL\n"
82
+ M1001 = " IN FFTPACK, ENTRY RFFTF RESULTS IN ERROR\n"
83
+ M1002 = " IN FFTPACK, ENTRY RFFTB RESULTS IN ERROR\n"
84
+ M1003 = " IN FFTPACK, ENTRY EZFFTF RESULTS IN ERROR\n"
85
+ M1004 = " IN FFTPACK, ENTRY EZFFTB RESULTS IN ERROR\n"
86
+
87
+ # def stores(x)
88
+ #
89
+ # FORCES THE ARGUMENT VALUE X TO BE STORED IN MEMORY LOCATION V.
90
+ #
91
+ # common /value/ v
92
+ # v=x
93
+ # end
94
+ def trunc(x)
95
+ #
96
+ # TRUNC IS A PORTABLE FORTRAN FUNCTION WHICH TRUNCATES A VALUE TO THE
97
+ # MACHINE SINGLE PRECISION WORD SIZE, REGARDLESS OF WHETHER LONGER
98
+ # PRECISION INTERNAL REGISTERS ARE USED FOR FLOATING POINT ARITHMETIC IN
99
+ # COMPUTING THE VALUE INPUT TO TRUNC. THE METHOD USED IS TO FORCE A
100
+ # STORE INTO MEMORY BY USING A COMMON BLOCK IN ANOTHER SUBROUTINE.
101
+ #
102
+ # common /value/ v
103
+ # stores(x)
104
+ # trunc=v
105
+ x.to_f #????
106
+ end
107
+ #
108
+ # STATEMENT FUNCTION SMALL(EX) IS FOR TESTING WHETHER X IS CLOSE TO ZERO
109
+ # INDEPENDENTLY OF MACHINE WORD SIZE. SMALL(EX) IS EXACTLY ZERO ONLY IF
110
+ # ABS(X) .LT. EPS/TOL, WHERE EPS IS THE MACHINE PRECESION AND TOL IS A
111
+ # TOLERANCE FACTOR USED TO CONTROL THE STRICTNESS OF THE TEST.
112
+ #
113
+ def small(ex)
114
+ trunc(1.0+TOL*ex.abs)-1.0
115
+ end
116
+
117
+ def fft_test
118
+ rldat = NArray.sfloat(N)
119
+ #
120
+ # CALL INITIALIZATION ROUTINE FOR RFFTF AND RFFTB.
121
+ #
122
+ wrfft = DCL::rffti(N)
123
+ #
124
+ # TEST OF RFFTF.
125
+ #
126
+ rldat.fill!(1.0)
127
+ #
128
+ result = DCL::rfftf(rldat, wrfft)
129
+ #
130
+ # TEST RESULTS OF RFFTF
131
+ #
132
+ error = (N.to_f - result[0]).abs
133
+ for i in 1..N-1
134
+ error = [error, (result[i]).abs].max
135
+ end
136
+ if (small(error) == 0)
137
+ ier1 = 0
138
+ else
139
+ ier1 = 1
140
+ print M1001
141
+ end
142
+ #
143
+ # TEST OF RFFTB.
144
+ #
145
+ rldat.fill!(0.0)
146
+ rldat[0] = 1.0
147
+ #
148
+ result = DCL::rfftb(rldat, wrfft)
149
+ #
150
+ # TEST RESULTS OF RFFTB
151
+ #
152
+ error = 0.0
153
+ for i in 0..N-1
154
+ error = [error, (1.0 - result[i]).abs].max
155
+ end
156
+ if (small(error) == 0)
157
+ ier2 = 0
158
+ else
159
+ ier2 = 1
160
+ print M1002
161
+ end
162
+ #
163
+ # CALL INITIALIZATION ROUTINE EZFFTI FOR EZFFTF AND EZFFTB
164
+ #
165
+ wezfft = DCL::ezffti(N)
166
+ #
167
+ # TEST OF EZFFTF.
168
+ #
169
+ rldat.fill!(1.0)
170
+ #
171
+ #
172
+ azero, a, b = DCL::ezfftf(rldat, wezfft)
173
+ #
174
+ # TEST RESULTS OF EZFFTF
175
+ #
176
+ error = (azero - 1.0).abs
177
+ for i in 0..ND2-1
178
+ error = [(a[i]).abs + (b[i]).abs, error].max
179
+ end
180
+ if (small(error) == 0)
181
+ ier3 = 0
182
+ else
183
+ ier3 = 1
184
+ print M1003
185
+ end
186
+ #
187
+ # TEST OF EZFFTB.
188
+ #
189
+ azero = 1.0
190
+ a[0..ND2-1] = 0.0
191
+ b[0..ND2-1] = 0.0
192
+ #
193
+ result = DCL::ezfftb(azero, a, b, wezfft)
194
+ #
195
+ # TEST RESULTS OF EZFFTB
196
+ #
197
+ error = 0.0
198
+ for i in 0..N-1
199
+ error = [(1.0 - result[i]).abs, error].max
200
+ end
201
+ if (small(error) == 0)
202
+ ier4 = 0
203
+ else
204
+ ier4 = 1
205
+ print M1004
206
+ end
207
+ #
208
+ #
209
+ ierror = ier1 + ier2 + ier3 + ier4
210
+ if (ierror == 0)
211
+ print M998
212
+ else
213
+ ierror = 1
214
+ print M999
215
+ end
216
+ ierror
217
+ end
218
+ end
219
+
220
+
221
+ include Tfftp
222
+
223
+ ier = Tfftp::fft_test
224
+
@@ -0,0 +1,22 @@
1
+ #
2
+ # intr01.rb
3
+ #
4
+ # $Id: intr01.rb,v 1.1.1.1 2011-02-23 07:21:28 horinout Exp $
5
+ #
6
+
7
+ require "narray"
8
+ require "numru/dcl"
9
+
10
+ include NumRu
11
+ include Math
12
+
13
+
14
+ N = 12
15
+
16
+ rx = [0, 1, 2, 999, 4, 3, 999, 999, 0, -1, -2, 999].collect{|i| i.to_f}
17
+
18
+ printf " LIST OF RX : %s\n", "%5.0f"*N % rx.to_a
19
+ rx = DCL::vrintr(rx, N, 1)
20
+ print " AFTER CALLING VRINTR(RX,12,1)\n"
21
+ printf " LIST OF RX : %s\n", "%5.0f"*N % rx.to_a
22
+