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.
- data/ChangeLog +321 -0
- data/GenWrapper/Makefile +14 -0
- data/GenWrapper/cproto2init.rb +41 -0
- data/GenWrapper/dcl_narrayed_funcs.rb +181 -0
- data/GenWrapper/dcl_rb_footing +29 -0
- data/GenWrapper/dcl_rb_heading +129 -0
- data/GenWrapper/def.rb +20 -0
- data/GenWrapper/elim_ary_size.rb +398 -0
- data/GenWrapper/etc/Mk_proto +375 -0
- data/GenWrapper/etc/dcl_gen +13 -0
- data/GenWrapper/etc/p_header +63 -0
- data/GenWrapper/etc/p_init +410 -0
- data/GenWrapper/pparse.rb +137 -0
- data/GenWrapper/proto/Makefile +35 -0
- data/GenWrapper/proto/grph1_00 +17 -0
- data/GenWrapper/proto/grph1_csgi.fp +27 -0
- data/GenWrapper/proto/grph1_scpack.fp +442 -0
- data/GenWrapper/proto/grph1_sgpack.fp +1406 -0
- data/GenWrapper/proto/grph1_slpack.fp +316 -0
- data/GenWrapper/proto/grph1_stpack.fp +411 -0
- data/GenWrapper/proto/grph1_swpack.fp +746 -0
- data/GenWrapper/proto/grph2_00 +16 -0
- data/GenWrapper/proto/grph2_grpack.fp +139 -0
- data/GenWrapper/proto/grph2_ucpack.fp +522 -0
- data/GenWrapper/proto/grph2_udpack.fp +692 -0
- data/GenWrapper/proto/grph2_uepack.fp +601 -0
- data/GenWrapper/proto/grph2_ugpack.fp +436 -0
- data/GenWrapper/proto/grph2_uhpack.fp +246 -0
- data/GenWrapper/proto/grph2_ulpack.fp +516 -0
- data/GenWrapper/proto/grph2_umpack.fp +676 -0
- data/GenWrapper/proto/grph2_uspack.fp +989 -0
- data/GenWrapper/proto/grph2_uupack.fp +663 -0
- data/GenWrapper/proto/grph2_uvpack.fp +246 -0
- data/GenWrapper/proto/grph2_uwpack.fp +203 -0
- data/GenWrapper/proto/grph2_uxpack.fp +295 -0
- data/GenWrapper/proto/grph2_uypack.fp +295 -0
- data/GenWrapper/proto/grph2_uzpack.fp +574 -0
- data/GenWrapper/proto/math1_00 +12 -0
- data/GenWrapper/proto/math1_blklib.fp +58 -0
- data/GenWrapper/proto/math1_chrlib.fp +83 -0
- data/GenWrapper/proto/math1_fnclib.fp +79 -0
- data/GenWrapper/proto/math1_gnmlib.fp +118 -0
- data/GenWrapper/proto/math1_gt2dlib.fp +144 -0
- data/GenWrapper/proto/math1_ifalib.fp +123 -0
- data/GenWrapper/proto/math1_indxlib.fp +222 -0
- data/GenWrapper/proto/math1_intlib.fp +46 -0
- data/GenWrapper/proto/math1_lrllib.fp +276 -0
- data/GenWrapper/proto/math1_maplib.fp +24 -0
- data/GenWrapper/proto/math1_oslib.fp +28 -0
- data/GenWrapper/proto/math1_rfalib.fp +420 -0
- data/GenWrapper/proto/math1_rfblib.fp +51 -0
- data/GenWrapper/proto/math1_sublib.fp +60 -0
- data/GenWrapper/proto/math1_syslib.fp +767 -0
- data/GenWrapper/proto/math1_vialib.fp +339 -0
- data/GenWrapper/proto/math1_viblib.fp +264 -0
- data/GenWrapper/proto/math1_vralib.fp +339 -0
- data/GenWrapper/proto/math1_vrblib.fp +264 -0
- data/GenWrapper/proto/math1_xfclib.fp +68 -0
- data/GenWrapper/proto/math2_00 +12 -0
- data/GenWrapper/proto/math2_fftlib.fp +803 -0
- data/GenWrapper/proto/math2_intrlib.fp +32 -0
- data/GenWrapper/proto/math2_odelib.fp_notused +568 -0
- data/GenWrapper/proto/math2_rnmlib.fp +54 -0
- data/GenWrapper/proto/math2_shtlib.fp +1292 -0
- data/GenWrapper/proto/math2_shtlib.fp_old +1294 -0
- data/GenWrapper/proto/math2_vstlib.fp +84 -0
- data/GenWrapper/proto/misc1_00 +17 -0
- data/GenWrapper/proto/misc1_chnlib.fp +47 -0
- data/GenWrapper/proto/misc1_datelib.fp +352 -0
- data/GenWrapper/proto/misc1_fmtlib.fp +19 -0
- data/GenWrapper/proto/misc1_misclib.fp +26 -0
- data/GenWrapper/proto/misc1_randlib.fp +36 -0
- data/GenWrapper/proto/misc1_timelib.fp +151 -0
- data/GenWrapper/proto2c.rb +13 -0
- data/GenWrapper/prototype.rb +209 -0
- data/GenWrapper/util.rb +9 -0
- data/GenWrapper/variable.rb +671 -0
- data/README +29 -0
- data/Rakefile +44 -0
- data/ToDo +2 -0
- data/dcl_cary2obj.c +354 -0
- data/dcl_narrayed_funcs.c +518 -0
- data/dcl_obj2cary.c +512 -0
- data/dcl_rubydcloriginal.c +129 -0
- data/demo/gokuraku/hop/hop.rb +26 -0
- data/demo/gokuraku/jump/jump1.rb +64 -0
- data/demo/gokuraku/jump/jump2.rb +50 -0
- data/demo/gokuraku/layout/lay1.rb +46 -0
- data/demo/gokuraku/layout/lay2.rb +44 -0
- data/demo/gokuraku/step/step0.rb +34 -0
- data/demo/gokuraku/step/step1.rb +84 -0
- data/demo/gokuraku/step/step2.rb +62 -0
- data/demo/gokuraku/u1d/u1d1.rb +37 -0
- data/demo/gokuraku/u1d/u1d2.rb +50 -0
- data/demo/gokuraku/u2d/u2d1.rb +46 -0
- data/demo/gokuraku/u2d/u2d2.rb +49 -0
- data/demo/gokuraku/u2d/u2d3.rb +45 -0
- data/demo/gokuraku/u2d/u2d4.rb +61 -0
- data/demo/grph1/scpack/scpkt2.rb +40 -0
- data/demo/grph1/scpack/scpkt3.rb +102 -0
- data/demo/grph1/scpack/scpkt6.rb +84 -0
- data/demo/grph1/scpack/scpkt7.rb +59 -0
- data/demo/grph1/scpack/scpkt8.rb +60 -0
- data/demo/grph1/scpack/t810630.dat +296 -0
- data/demo/grph1/scpack/t811231.dat +296 -0
- data/demo/grph1/sgpack/sgfont.rb +52 -0
- data/demo/grph1/sgpack/sgfonz.rb +53 -0
- data/demo/grph1/sgpack/sgksx1.rb +44 -0
- data/demo/grph1/sgpack/sgksx2.rb +90 -0
- data/demo/grph1/sgpack/sgksx3.rb +75 -0
- data/demo/grph1/sgpack/sglidx.rb +40 -0
- data/demo/grph1/sgpack/sgltyp.rb +48 -0
- data/demo/grph1/sgpack/sgpk01.rb +39 -0
- data/demo/grph1/sgpack/sgpk02.rb +79 -0
- data/demo/grph1/sgpack/sgpk03.rb +107 -0
- data/demo/grph1/sgpack/sgpk04.rb +86 -0
- data/demo/grph1/sgpack/sgpk05.rb +66 -0
- data/demo/grph1/sgpack/sgpk06.rb +91 -0
- data/demo/grph1/sgpack/sgpk07.rb +66 -0
- data/demo/grph1/sgpack/sgpk08.rb +67 -0
- data/demo/grph1/sgpack/sgpk09.rb +61 -0
- data/demo/grph1/sgpack/sgpk10.rb +58 -0
- data/demo/grph1/sgpack/sgtclr.rb +59 -0
- data/demo/grph1/sgpack/sgtone.rb +70 -0
- data/demo/grph1/sgpack/sgtonz.rb +66 -0
- data/demo/grph1/slpack/slpk01.rb +37 -0
- data/demo/grph1/slpack/slpk02.rb +29 -0
- data/demo/grph1/slpack/slpk03.rb +36 -0
- data/demo/grph1/slpack/slpk04.rb +36 -0
- data/demo/grph2/g2pack/g2pk01.rb +78 -0
- data/demo/grph2/g2pack/g2pk02.rb +75 -0
- data/demo/grph2/grpack/grpk01.rb +65 -0
- data/demo/grph2/ucpack/ucpk01.rb +95 -0
- data/demo/grph2/ucpack/ucpk02.rb +95 -0
- data/demo/grph2/udegpk/u2df01.rb +50 -0
- data/demo/grph2/udegpk/u2df02.rb +76 -0
- data/demo/grph2/udegpk/u2df03.rb +80 -0
- data/demo/grph2/udegpk/u2df04.rb +52 -0
- data/demo/grph2/udegpk/u2df05.rb +70 -0
- data/demo/grph2/udegpk/u2df06.rb +59 -0
- data/demo/grph2/udegpk/u2df07.rb +68 -0
- data/demo/grph2/udegpk/u2df08.rb +91 -0
- data/demo/grph2/udegpk/u2df09b.rb +88 -0
- data/demo/grph2/udegpk/u2df09c.rb +89 -0
- data/demo/grph2/udegpk/u2df09e.rb +88 -0
- data/demo/grph2/udegpk/u2df09f.rb +89 -0
- data/demo/grph2/ulpack/ulpk01.rb +111 -0
- data/demo/grph2/ulpack/ulpk01n.rb +111 -0
- data/demo/grph2/ulpack/ulpk02.rb +111 -0
- data/demo/grph2/ulpack/ulpk02n.rb +111 -0
- data/demo/grph2/umpack/t811231.dat +296 -0
- data/demo/grph2/umpack/test01.rb +69 -0
- data/demo/grph2/umpack/test02.rb +64 -0
- data/demo/grph2/umpack/test03.rb +84 -0
- data/demo/grph2/umpack/test04.rb +54 -0
- data/demo/grph2/umpack/test05.rb +85 -0
- data/demo/grph2/umpack/test06.rb +44 -0
- data/demo/grph2/umpack/test07.rb +43 -0
- data/demo/grph2/umpack/test08.rb +37 -0
- data/demo/grph2/umpack/test09.rb +86 -0
- data/demo/grph2/umpack/test10.rb +52 -0
- data/demo/grph2/umpack/umpk01.rb +65 -0
- data/demo/grph2/umpack/umpk02.rb +54 -0
- data/demo/grph2/umpack/umpk03.rb +46 -0
- data/demo/grph2/umpack/umpk04.rb +65 -0
- data/demo/grph2/umpack/umpk05.rb +84 -0
- data/demo/grph2/uspack/uspk01.rb +39 -0
- data/demo/grph2/uspack/uspk02.rb +47 -0
- data/demo/grph2/uspack/uspk03.rb +38 -0
- data/demo/grph2/uspack/uspk04.rb +64 -0
- data/demo/grph2/uspack/uspk05.rb +68 -0
- data/demo/grph2/uspack/uspk06.rb +43 -0
- data/demo/grph2/uspack/uspk07.rb +62 -0
- data/demo/grph2/uspack/uspk08.rb +46 -0
- data/demo/grph2/uspack/uspk09.rb +89 -0
- data/demo/grph2/uspack/uspk10.rb +48 -0
- data/demo/grph2/uspack/uspk11.rb +71 -0
- data/demo/grph2/uspack/uspk12.rb +51 -0
- data/demo/grph2/uupack/uupk01.rb +50 -0
- data/demo/grph2/uupack/uupk02.rb +74 -0
- data/demo/grph2/uupack/uupk03.rb +56 -0
- data/demo/grph2/uupack/uupk04.rb +84 -0
- data/demo/grph2/uupack/uupk05.rb +74 -0
- data/demo/grph2/uupack/uupk06.rb +77 -0
- data/demo/grph2/uupack/uupk07.rb +88 -0
- data/demo/grph2/uxyzpk/uxyz01.rb +38 -0
- data/demo/grph2/uxyzpk/uxyz02.rb +36 -0
- data/demo/grph2/uxyzpk/uxyz03.rb +37 -0
- data/demo/grph2/uxyzpk/uxyz04.rb +54 -0
- data/demo/grph2/uxyzpk/uxyz05.rb +41 -0
- data/demo/grph2/uxyzpk/uxyz06.rb +42 -0
- data/demo/grph2/uxyzpk/uxyz07.rb +38 -0
- data/demo/grph2/uxyzpk/uxyz08.rb +60 -0
- data/demo/grph2/uxyzpk/uxyz09.rb +52 -0
- data/demo/grph2/uxyzpk/uxyz10.rb +57 -0
- data/demo/grph2/ximage/MEMO +23 -0
- data/demo/grph2/ximage/tomsclm.dat +1344 -0
- data/demo/grph2/ximage/ximg01.rb +145 -0
- data/demo/math1/gt2dlib/gt2d01.rb +33 -0
- data/demo/math2/fftlib/fftl01.rb +28 -0
- data/demo/math2/fftlib/fftl02.rb +224 -0
- data/demo/math2/intrlib/intr01.rb +22 -0
- data/demo/math2/rnmlib/rnml01.rb +21 -0
- data/demo/math2/vstlib/vstl01.rb +29 -0
- data/demo/math2/vstlib/vstl02.rb +38 -0
- data/demo/rakuraku/color/color1.rb +61 -0
- data/demo/rakuraku/color/color2.rb +57 -0
- data/demo/rakuraku/color/color3.rb +81 -0
- data/demo/rakuraku/kihon/kihon1.rb +39 -0
- data/demo/rakuraku/kihon/kihon2.rb +56 -0
- data/demo/rakuraku/kihon/kihon3.rb +57 -0
- data/demo/rakuraku/kihon/kihon4.rb +70 -0
- data/demo/rakuraku/kihon/kihon5.rb +56 -0
- data/demo/rakuraku/kihon/kihon6.rb +40 -0
- data/demo/rakuraku/kihon/kihon7.rb +98 -0
- data/demo/rakuraku/kihon/kihon8.rb +93 -0
- data/demo/rakuraku/kihon/kihon9.rb +77 -0
- data/demo/rakuraku/kihon/kihona.rb +123 -0
- data/demo/rakuraku/kihon/kihonb.rb +73 -0
- data/demo/rakuraku/kihon/kihonc.rb +110 -0
- data/demo/rakuraku/layout/lay1.rb +29 -0
- data/demo/rakuraku/layout/lay2.rb +28 -0
- data/demo/rakuraku/layout/lay3.rb +29 -0
- data/demo/rakuraku/map3d/map3d1.rb +68 -0
- data/demo/rakuraku/map3d/map3d2.rb +67 -0
- data/demo/rakuraku/map3d/map3d3.rb +66 -0
- data/demo/rakuraku/map3d/map3d4.rb +107 -0
- data/demo/rakuraku/map3d/map3d5.rb +118 -0
- data/demo/rakuraku/map3d/map3d6.rb +96 -0
- data/demo/rakuraku/map3d/map3d7.rb +98 -0
- data/demo/rakuraku/miss/miss1.rb +76 -0
- data/demo/rakuraku/miss/miss2.rb +60 -0
- data/demo/rakuraku/quick/quick1.rb +35 -0
- data/demo/rakuraku/quick/quick2.rb +33 -0
- data/demo/rakuraku/quick/quick3.rb +46 -0
- data/demo/rakuraku/quick/quick4.rb +47 -0
- data/demo/rakuraku/quick/quick5.rb +46 -0
- data/demo/rakuraku/u2d/u2d1.rb +50 -0
- data/demo/rakuraku/u2d/u2d2.rb +51 -0
- data/demo/rakuraku/u2d/u2d3.rb +70 -0
- data/demo/rakuraku/u2d/u2d4.rb +59 -0
- data/demo/rakuraku/u2d/u2d5.rb +61 -0
- data/demo/rakuraku/u2d/u2d6.rb +57 -0
- data/demo/rakuraku/u2d/u2d7.rb +103 -0
- data/demo/rakuraku/uspack/uspac1.rb +35 -0
- data/demo/rakuraku/uspack/uspac2.rb +66 -0
- data/demo/rakuraku/uspack/uspac3.rb +37 -0
- data/demo/rakuraku/uspack/uspac4.rb +49 -0
- data/demo/rakuraku/uxyz/uxyz1.rb +37 -0
- data/demo/rakuraku/uxyz/uxyz2.rb +35 -0
- data/demo/rakuraku/uxyz/uxyz3.rb +38 -0
- data/demo/rakuraku/uxyz/uxyz4.rb +36 -0
- data/demo/rakuraku/uxyz/uxyz5.rb +57 -0
- data/demo/rakuraku/uxyz/uxyz6.rb +43 -0
- data/demo/rakuraku/uxyz/uxyz7.rb +39 -0
- data/demo/rakuraku/uxyz/uxyz8.rb +56 -0
- data/demo/rubydcloriginal/uemrkz1.rb +37 -0
- data/dummy.c +9 -0
- data/extconf.rb +133 -0
- data/grph1_csgi.c +119 -0
- data/grph1_scpack.c +1388 -0
- data/grph1_sgpack.c +3876 -0
- data/grph1_slpack.c +432 -0
- data/grph1_stpack.c +1044 -0
- data/grph1_swpack.c +1922 -0
- data/grph1_zgpack.c.org +141 -0
- data/grph2_grpack.c +368 -0
- data/grph2_ucpack.c +1232 -0
- data/grph2_udpack.c +1404 -0
- data/grph2_uepack.c +1443 -0
- data/grph2_ugpack.c +1073 -0
- data/grph2_uhpack.c +943 -0
- data/grph2_ulpack.c +1304 -0
- data/grph2_umpack.c +1540 -0
- data/grph2_uspack.c +2481 -0
- data/grph2_uupack.c +1689 -0
- data/grph2_uvpack.c +943 -0
- data/grph2_uwpack.c +552 -0
- data/grph2_uxpack.c +555 -0
- data/grph2_uypack.c +555 -0
- data/grph2_uzpack.c +1455 -0
- data/init.c.default +187 -0
- data/init.c.gtk +189 -0
- data/lib/dcl.rb +5084 -0
- data/math1_blklib.c +227 -0
- data/math1_chrlib.c +239 -0
- data/math1_fnclib.c +254 -0
- data/math1_gnmlib.c +356 -0
- data/math1_gt2dlib.c +514 -0
- data/math1_ifalib.c +427 -0
- data/math1_indxlib.c +709 -0
- data/math1_intlib.c +167 -0
- data/math1_lrllib.c +817 -0
- data/math1_maplib.c +172 -0
- data/math1_oslib.c +111 -0
- data/math1_rfalib.c +1417 -0
- data/math1_rfblib.c +232 -0
- data/math1_sublib.c +221 -0
- data/math1_syslib.c +2025 -0
- data/math1_vialib.c +1156 -0
- data/math1_viblib.c +1027 -0
- data/math1_vralib.c +1156 -0
- data/math1_vrblib.c +1027 -0
- data/math1_xfclib.c +142 -0
- data/math2_fftlib.c +833 -0
- data/math2_intrlib.c +138 -0
- data/math2_rnmlib.c +226 -0
- data/math2_shtlib.c +1568 -0
- data/math2_vstlib.c +366 -0
- data/misc1_chnlib.c +179 -0
- data/misc1_datelib.c +953 -0
- data/misc1_fmtlib.c +99 -0
- data/misc1_misclib.c +118 -0
- data/misc1_randlib.c +142 -0
- data/misc1_timelib.c +380 -0
- data/obsolete/README +2 -0
- data/obsolete/dcl_ext.html +112 -0
- data/obsolete/dcl_ext.rb +313 -0
- 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
|
+
|